diff --git a/cli/internal/ci/vendors.go b/cli/internal/ci/vendors.go index f619140bc8ef4..66fdc2cf22946 100644 --- a/cli/internal/ci/vendors.go +++ b/cli/internal/ci/vendors.go @@ -21,6 +21,9 @@ type Vendor struct { // The name of the environment variable that contains the current checked out branch BranchEnvVar string + + // The name of the environment variable that contains the user using turbo + UsernameEnvVar string } // Vendors is a list of common CI/CD vendors (from https://github.com/watson/ci-info/blob/master/vendors.json) @@ -112,12 +115,14 @@ var Vendors = []Vendor{ Constant: "EAS", Env: vendorEnvs{Any: []string{"EAS_BUILD"}}, }, + // https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables { - Name: "GitHub Actions", - Constant: "GITHUB_ACTIONS", - Env: vendorEnvs{Any: []string{"GITHUB_ACTIONS"}}, - ShaEnvVar: "GITHUB_SHA", - BranchEnvVar: "GITHUB_REF_NAME", + Name: "GitHub Actions", + Constant: "GITHUB_ACTIONS", + Env: vendorEnvs{Any: []string{"GITHUB_ACTIONS"}}, + ShaEnvVar: "GITHUB_SHA", + BranchEnvVar: "GITHUB_REF_NAME", + UsernameEnvVar: "GITHUB_ACTOR", }, { Name: "GitLab CI", @@ -231,12 +236,14 @@ var Vendors = []Vendor{ Constant: "TRAVIS", Env: vendorEnvs{Any: []string{"TRAVIS"}}, }, + // https://vercel.com/docs/concepts/projects/environment-variables/system-environment-variables { - Name: "Vercel", - Constant: "VERCEL", - Env: vendorEnvs{Any: []string{"NOW_BUILDER", "VERCEL"}}, - ShaEnvVar: "VERCEL_GIT_COMMIT_SHA", - BranchEnvVar: "VERCEL_GIT_COMMIT_REF", + Name: "Vercel", + Constant: "VERCEL", + Env: vendorEnvs{Any: []string{"NOW_BUILDER", "VERCEL"}}, + ShaEnvVar: "VERCEL_GIT_COMMIT_SHA", + BranchEnvVar: "VERCEL_GIT_COMMIT_REF", + UsernameEnvVar: "VERCEL_GIT_COMMIT_AUTHOR_LOGIN", }, { Name: "Visual Studio App Center", diff --git a/cli/internal/runsummary/run_summary.go b/cli/internal/runsummary/run_summary.go index ab870823e2066..d2dd1bfaf9ece 100644 --- a/cli/internal/runsummary/run_summary.go +++ b/cli/internal/runsummary/run_summary.go @@ -11,7 +11,9 @@ import ( "github.com/mitchellh/cli" "github.com/segmentio/ksuid" + "github.com/vercel/turbo/cli/internal/ci" "github.com/vercel/turbo/cli/internal/client" + "github.com/vercel/turbo/cli/internal/env" "github.com/vercel/turbo/cli/internal/spinner" "github.com/vercel/turbo/cli/internal/turbopath" "github.com/vercel/turbo/cli/internal/util" @@ -112,6 +114,7 @@ func NewRunSummary( Tasks: []*TaskSummary{}, GlobalHashSummary: globalHashSummary, SCM: getSCMState(repoRoot), + User: getUser(), }, ui: ui, runType: runType, @@ -329,3 +332,15 @@ func (rsm *Meta) postTaskSummaries(runID string) []error { return nil } + +func getUser() string { + allEnvVars := env.GetEnvMap() + + var username string + if ci.IsCi() { + vendor := ci.Info() + username = allEnvVars[vendor.UsernameEnvVar] + } + + return username +}