Skip to content

Commit 8b4296d

Browse files
authored
Merge pull request #103 from commonquail/fix-committer-time
Fix commit.committer.time provider
2 parents b4dd65a + 58f8ae2 commit 8b4296d

File tree

3 files changed

+49
-3
lines changed

3 files changed

+49
-3
lines changed

src/main/java/pl/project13/core/GitDataProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,9 @@ protected void loadGitData(@Nonnull String evaluateOnCommit, @Nonnull Map<String
286286
maybePut(properties, GitCommitPropertyConstant.COMMIT_ID_ABBREV, this::getAbbrevCommitId);
287287
// git.dirty
288288
maybePut(properties, GitCommitPropertyConstant.DIRTY, () -> Boolean.toString(isDirty()));
289-
// git.commit.author.name
289+
// git.commit.user.name
290290
maybePut(properties, GitCommitPropertyConstant.COMMIT_AUTHOR_NAME, this::getCommitAuthorName);
291-
// git.commit.author.email
291+
// git.commit.user.email
292292
maybePut(properties, GitCommitPropertyConstant.COMMIT_AUTHOR_EMAIL, this::getCommitAuthorEmail);
293293
// git.commit.message.full
294294
maybePut(properties, GitCommitPropertyConstant.COMMIT_MESSAGE_FULL, this::getCommitMessageFull);
@@ -299,7 +299,7 @@ protected void loadGitData(@Nonnull String evaluateOnCommit, @Nonnull Map<String
299299
// commit.author.time
300300
maybePut(properties, GitCommitPropertyConstant.COMMIT_AUTHOR_TIME, this::getCommitAuthorTime);
301301
// commit.committer.time
302-
maybePut(properties, GitCommitPropertyConstant.COMMIT_COMMITTER_TIME, this::getCommitAuthorTime);
302+
maybePut(properties, GitCommitPropertyConstant.COMMIT_COMMITTER_TIME, this::getCommitCommitterTime);
303303
// git remote.origin.url
304304
maybePut(properties, GitCommitPropertyConstant.REMOTE_ORIGIN_URL, this::getRemoteOriginUrl);
305305

src/test/java/pl/project13/core/AvailableGitTestRepo.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,13 @@ public enum AvailableGitTestRepo {
6767
*/
6868
WITH_TAG_ON_DIFFERENT_BRANCH("src/test/resources/_git_with_tag_on_different_branch"),
6969
WITH_ONE_COMMIT_WITH_SPECIAL_CHARACTERS("src/test/resources/_git_one_commit_with_umlaut"),
70+
/**
71+
* <pre>
72+
* $ log --date=iso-strict --format='%h | cd=%cd | ad=%ad'
73+
* 7002d5c | cd=2014-09-19T17:23:04+02:00 | ad=2012-07-04T15:54:01+02:00
74+
* </pre>
75+
*/
76+
COMMITTER_DIFFERENT_FROM_AUTHOR("src/test/resources/_git_one_commit_with_umlaut"),
7077
/**
7178
* <pre>
7279
* b0c6d28b3b83bf7b905321bae67d9ca4c75a203f 2015-06-04 00:50:18 +0200 (HEAD, master)

src/test/java/pl/project13/core/GitCommitIdPluginIntegrationTest.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1069,6 +1069,45 @@ public void shouldGenerateClosestTagInformationWhenCommitHasTwoTags(boolean useN
10691069
assertPropertyPresentAndEqual(properties, "git.closest.tag.commit.count", "0");
10701070
}
10711071

1072+
@Test
1073+
@Parameters(method = "useNativeGit")
1074+
public void shouldGenerateCommitterAndAuthorInformation(boolean useNativeGit) throws Exception {
1075+
// given
1076+
File dotGitDirectory = createTmpDotGitDirectory(AvailableGitTestRepo.COMMITTER_DIFFERENT_FROM_AUTHOR);
1077+
1078+
GitCommitIdPlugin.Callback cb =
1079+
new GitCommitIdTestCallback()
1080+
.setDotGitDirectory(dotGitDirectory)
1081+
.setDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX")
1082+
.setDateFormatTimeZone("UTC")
1083+
.setUseNativeGit(useNativeGit)
1084+
.build();
1085+
Properties properties = new Properties();
1086+
1087+
// when
1088+
GitCommitIdPlugin.runPlugin(cb, properties);
1089+
1090+
// then
1091+
assertThat(properties)
1092+
.containsKeys(
1093+
"git.commit.time",
1094+
"git.commit.committer.time",
1095+
"git.commit.author.time",
1096+
"git.commit.user.email",
1097+
"git.commit.user.name");
1098+
1099+
assertThat(properties.getProperty("git.commit.committer.time")).isNotEqualTo(properties.getProperty("git.commit.author.time"));
1100+
1101+
// Committer
1102+
assertPropertyPresentAndEqual(properties, "git.commit.committer.time", "2014-09-19T15:23:04Z");
1103+
assertThat(properties.getProperty("git.commit.committer.time")).isEqualTo(properties.getProperty("git.commit.time"));
1104+
1105+
// Author
1106+
assertPropertyPresentAndEqual(properties, "git.commit.author.time", "2012-07-04T13:54:01Z");
1107+
assertPropertyPresentAndEqual(properties, "git.commit.user.email", "john.doe@domain.com");
1108+
assertPropertyPresentAndEqual(properties, "git.commit.user.name", "John Doe");
1109+
}
1110+
10721111
@Test
10731112
@Parameters(method = "useNativeGit")
10741113
public void shouldUseDateFormatTimeZone(boolean useNativeGit) throws Exception {

0 commit comments

Comments
 (0)