Skip to content

Commit 4559e1f

Browse files
matthew-daileyRobert Fink
authored and
Robert Fink
committed
Add non-abbreviated GitHash as gitHashFull (#68)
1 parent 42d3d04 commit 4559e1f

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

src/main/groovy/com/palantir/gradle/gitversion/GitVersionPlugin.groovy

+12-2
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,11 @@ class GitVersionPlugin implements Plugin<Project> {
6464
verifyPrefix(args.prefix)
6565
String description = stripPrefix(gitDescribe(project, args.prefix), args.prefix)
6666
String hash = gitHash(project)
67+
String fullHash = gitHashFull(project)
6768
String branchName = gitBranchName(project)
6869
boolean isClean = isClean(project)
6970

70-
return new VersionDetails(description, hash, branchName, isClean)
71+
return new VersionDetails(description, hash, fullHash, branchName, isClean)
7172
}
7273

7374
@Memoized
@@ -96,12 +97,21 @@ class GitVersionPlugin implements Plugin<Project> {
9697

9798
@Memoized
9899
private String gitHash(Project project) {
100+
String gitHashFull = gitHashFull(project)
101+
if (gitHashFull == null) {
102+
return null
103+
}
104+
return gitHashFull.substring(0, VERSION_ABBR_LENGTH)
105+
}
106+
107+
@Memoized
108+
private String gitHashFull(Project project) {
99109
Git git = gitRepo(project)
100110
ObjectId objectId = git.getRepository().getRef("HEAD").getObjectId();
101111
if (objectId == null) {
102112
return null
103113
}
104-
return objectId.abbreviate(VERSION_ABBR_LENGTH).name()
114+
return objectId.name()
105115
}
106116

107117
@Memoized

src/main/groovy/com/palantir/gradle/gitversion/VersionDetails.groovy

+3-1
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,14 @@ class VersionDetails implements Serializable {
2929

3030
final String description;
3131
final String gitHash;
32+
final String gitHashFull;
3233
final String branchName;
3334
final boolean isClean;
3435

35-
public VersionDetails(String description, String gitHash, String branchName, boolean isClean) {
36+
public VersionDetails(String description, String gitHash, String gitHashFull, String branchName, boolean isClean) {
3637
this.description = description;
3738
this.gitHash = gitHash;
39+
this.gitHashFull = gitHashFull;
3840
this.branchName = branchName;
3941
this.isClean = isClean;
4042
}

src/test/groovy/com/palantir/gradle/gitversion/GitVersionPluginTests.groovy

+3-2
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ class GitVersionPluginTests extends Specification {
298298
BuildResult buildResult = with('printVersionDetails').build()
299299

300300
then:
301-
buildResult.output.contains(':printVersionDetails\ncom.palantir.gradle.gitversion.VersionDetails(null, null, null, false)\n')
301+
buildResult.output.contains(':printVersionDetails\ncom.palantir.gradle.gitversion.VersionDetails(null, null, null, null, false)\n')
302302
}
303303

304304
def 'version details on commit with a tag' () {
@@ -312,6 +312,7 @@ class GitVersionPluginTests extends Specification {
312312
println versionDetails().lastTag
313313
println versionDetails().commitDistance
314314
println versionDetails().gitHash
315+
println versionDetails().gitHashFull
315316
println versionDetails().branchName
316317
println versionDetails().isCleanTag
317318
}
@@ -326,7 +327,7 @@ class GitVersionPluginTests extends Specification {
326327
BuildResult buildResult = with('printVersionDetails').build()
327328

328329
then:
329-
buildResult.output =~ ":printVersionDetails\n1.0.0\n0\n[a-z0-9]{10}\nmaster\ntrue\n"
330+
buildResult.output =~ ":printVersionDetails\n1.0.0\n0\n[a-z0-9]{10}\n[a-z0-9]{40}\nmaster\ntrue\n"
330331
}
331332

332333
def 'version details when commit distance to tag is > 0' () {

0 commit comments

Comments
 (0)