Skip to content

Commit c9e63ea

Browse files
committed
branch name logic
1 parent 161b8e4 commit c9e63ea

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

internal/gitsemver/gitsemver.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,15 @@ func (vs *GitSemVer) GetTag(repo string) (tag string, match bool, err error) {
155155
}
156156

157157
func (vs *GitSemVer) getBranchGitHub(repo string) (branchName string, err error) {
158-
if branchName = strings.TrimSpace(vs.Env.Getenv("GITHUB_BASE_REF")); branchName != "" {
158+
// Pull request events expose the source branch as GITHUB_HEAD_REF.
159+
// Prefer this so PR builds are not mistaken for base-branch releases.
160+
if branchName = strings.TrimSpace(vs.Env.Getenv("GITHUB_HEAD_REF")); branchName != "" {
159161
return
160162
}
161163
refName := strings.TrimSpace(vs.Env.Getenv("GITHUB_REF_NAME"))
162164
if refName == "" {
165+
// Fallback for contexts that only expose a base branch.
166+
branchName = strings.TrimSpace(vs.Env.Getenv("GITHUB_BASE_REF"))
163167
return
164168
}
165169
if strings.TrimSpace(vs.Env.Getenv("GITHUB_REF_TYPE")) != "tag" {

internal/gitsemver/gitsemver_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,18 @@ func Test_VersionStringer_GetBranch(t *testing.T) {
163163
delete(env, "GITHUB_REF_NAME")
164164
git.branch = ""
165165

166+
git.branch = "detached"
167+
env["GITHUB_HEAD_REF"] = "feature/foo"
168+
env["GITHUB_BASE_REF"] = "main"
169+
env["GITHUB_REF_NAME"] = "123/merge"
170+
name, err = vs.GetBranch(".")
171+
isEqual(t, err, nil)
172+
isEqual(t, "feature/foo", name)
173+
delete(env, "GITHUB_HEAD_REF")
174+
delete(env, "GITHUB_BASE_REF")
175+
delete(env, "GITHUB_REF_NAME")
176+
git.branch = ""
177+
166178
git.branch = "detached"
167179
env["GITHUB_REF_TYPE"] = "tag"
168180
env["GITHUB_REF_NAME"] = "v1.0.0"

0 commit comments

Comments
 (0)