add runner hostname to CI invocation context (#356)

* add runner hostname to CI invocation context

* update test
This commit is contained in:
Sahil Bansal
2026-07-01 17:23:59 +05:30
committed by GitHub
parent f9ca26d112
commit 0fb6faa951
2 changed files with 21 additions and 4 deletions
+7 -3
View File
@@ -20,9 +20,9 @@ func (r *githubActionsEnvResolver) Provider() controltowerv1.EndpointCIProvider
}
func (r *githubActionsEnvResolver) RunId() string { return os.Getenv("GITHUB_RUN_ID") }
func (r *githubActionsEnvResolver) Repository() string { return os.Getenv("GITHUB_REPOSITORY") }
func (r *githubActionsEnvResolver) CommitSha() string { return os.Getenv("GITHUB_SHA") }
func (r *githubActionsEnvResolver) Actor() string { return os.Getenv("GITHUB_ACTOR") }
func (r *githubActionsEnvResolver) Repository() string { return os.Getenv("GITHUB_REPOSITORY") }
func (r *githubActionsEnvResolver) CommitSha() string { return os.Getenv("GITHUB_SHA") }
func (r *githubActionsEnvResolver) Actor() string { return os.Getenv("GITHUB_ACTOR") }
func (r *githubActionsEnvResolver) Branch() string {
if headRef := os.Getenv("GITHUB_HEAD_REF"); headRef != "" {
@@ -57,6 +57,10 @@ func (r *githubActionsEnvResolver) Metadata() map[string]string {
}
}
if hostname, err := os.Hostname(); err == nil && hostname != "" {
metadata["hostname"] = hostname
}
if len(metadata) == 0 {
return nil
}
@@ -1,6 +1,7 @@
package audit
import (
"os"
"testing"
controltowerv1 "buf.build/gen/go/safedep/api/protocolbuffers/go/safedep/messages/controltower/v1"
@@ -55,6 +56,11 @@ func TestGithubActionsResolverMetadata(t *testing.T) {
assert.Equal(t, "build", metadata["job"])
assert.Equal(t, "1", metadata["run_attempt"])
assert.Equal(t, "https://github.com", metadata["server_url"])
hostname, err := os.Hostname()
if err == nil && hostname != "" {
assert.Equal(t, hostname, metadata["hostname"])
}
}
func TestGithubActionsResolverMetadataEmpty(t *testing.T) {
@@ -64,7 +70,14 @@ func TestGithubActionsResolverMetadataEmpty(t *testing.T) {
t.Setenv("GITHUB_SERVER_URL", "")
resolver := newGithubActionsCIResolver()
assert.Nil(t, resolver.Metadata())
metadata := resolver.Metadata()
hostname, err := os.Hostname()
if err == nil && hostname != "" {
assert.Equal(t, map[string]string{"hostname": hostname}, metadata)
} else {
assert.Nil(t, metadata)
}
}
func TestGithubActionsResolverNonPRRef(t *testing.T) {