Skip to content

Commit 8e216c6

Browse files
authoredMay 8, 2022
feat: support GITHUB_REF_NAME & GITHUB_REF_TYPE (#1142)
* feat: support `_REF_NAME` & `_REF_TYPE` * chore: fix `step_test::TestSetupEnv` * fix: logic & test * test: delete `GITHUB_REF_NAME`, `GITHUB_REF_TYPE`
1 parent dfca2c5 commit 8e216c6

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed
 

Diff for: ‎pkg/model/github_context.go

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ type GithubContext struct {
1818
EventName string `json:"event_name"`
1919
Sha string `json:"sha"`
2020
Ref string `json:"ref"`
21+
RefName string `json:"ref_name"`
22+
RefType string `json:"ref_type"`
2123
HeadRef string `json:"head_ref"`
2224
BaseRef string `json:"base_ref"`
2325
Token string `json:"token"`

Diff for: ‎pkg/runner/run_context.go

+11
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,15 @@ func (rc *RunContext) getGithubContext() *model.GithubContext {
549549

550550
ghc.SetRefAndSha(rc.Config.DefaultBranch, repoPath)
551551

552+
// https://docs.github.com/en/actions/learn-github-actions/environment-variables
553+
if strings.HasPrefix(ghc.Ref, "refs/tags/") {
554+
ghc.RefType = "tag"
555+
ghc.RefName = ghc.Ref[len("refs/tags/"):]
556+
} else if strings.HasPrefix(ghc.Ref, "refs/heads/") {
557+
ghc.RefType = "branch"
558+
ghc.RefName = ghc.Ref[len("refs/heads/"):]
559+
}
560+
552561
return ghc
553562
}
554563

@@ -624,6 +633,8 @@ func (rc *RunContext) withGithubEnv(env map[string]string) map[string]string {
624633
env["GITHUB_WORKSPACE"] = github.Workspace
625634
env["GITHUB_SHA"] = github.Sha
626635
env["GITHUB_REF"] = github.Ref
636+
env["GITHUB_REF_NAME"] = github.RefName
637+
env["GITHUB_REF_TYPE"] = github.RefType
627638
env["GITHUB_TOKEN"] = github.Token
628639
env["GITHUB_SERVER_URL"] = "https://github.com"
629640
env["GITHUB_API_URL"] = "https://api.github.com"

Diff for: ‎pkg/runner/step_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ func TestSetupEnv(t *testing.T) {
154154

155155
// These are commit or system specific
156156
delete((env), "GITHUB_REF")
157+
delete((env), "GITHUB_REF_NAME")
158+
delete((env), "GITHUB_REF_TYPE")
157159
delete((env), "GITHUB_SHA")
158160
delete((env), "GITHUB_WORKSPACE")
159161
delete((env), "GITHUB_REPOSITORY")

0 commit comments

Comments
 (0)