@@ -229,11 +229,12 @@ func runTests(cmd *cobra.Command, args []string) error {
229229 var req * backend.CreateDriftRunRequest
230230
231231 if isValidation {
232- // Validation mode: no CI metadata needed
233232 req = & backend.CreateDriftRunRequest {
234233 ObservableServiceId : cfg .Service .ID ,
235234 CliVersion : version .Version ,
236235 IsValidationRun : true ,
236+ CommitSha : stringPtr (getCommitSHAFromEnv ()),
237+ BranchName : stringPtr (getBranchFromEnv ()),
237238 }
238239 } else {
239240 // Regular CI mode: validate and include CI metadata
@@ -1015,15 +1016,7 @@ func validateCIMetadata(metadata CIMetadata) (CIMetadata, error) {
10151016 // Only populate from environment variables if in CI
10161017 if inCI {
10171018 if metadata .CommitSha == "" {
1018- if isGitHub {
1019- if sha := getGitHubPRHeadSHA (); sha != "" {
1020- metadata .CommitSha = sha
1021- } else {
1022- metadata .CommitSha = os .Getenv ("GITHUB_SHA" )
1023- }
1024- } else if isGitLab {
1025- metadata .CommitSha = os .Getenv ("CI_COMMIT_SHA" )
1026- }
1019+ metadata .CommitSha = getCommitSHAFromEnv ()
10271020 }
10281021
10291022 if metadata .PRNumber == "" {
@@ -1114,6 +1107,24 @@ func stringPtr(s string) *string {
11141107 return & s
11151108}
11161109
1110+ // getCommitSHAFromEnv returns the commit SHA from CI environment variables.
1111+ // Returns empty string if no SHA can be determined from the environment.
1112+ func getCommitSHAFromEnv () string {
1113+ isGitHub := os .Getenv ("GITHUB_ACTIONS" ) == "true"
1114+ isGitLab := os .Getenv ("GITLAB_CI" ) == "true"
1115+
1116+ if isGitHub {
1117+ if sha := getGitHubPRHeadSHA (); sha != "" {
1118+ return sha
1119+ }
1120+ return os .Getenv ("GITHUB_SHA" )
1121+ } else if isGitLab {
1122+ return os .Getenv ("CI_COMMIT_SHA" )
1123+ }
1124+
1125+ return ""
1126+ }
1127+
11171128// getBranchFromEnv returns the branch name from CI environment variables
11181129// Returns empty string if no branch can be determined from environment
11191130func getBranchFromEnv () string {
0 commit comments