Skip to content

Commit b41a71e

Browse files
committed
fix: add reviewer-related env vars to GitLab and Dagger ListEnvVars
Add CI_PROJECT_PATH, CI_JOB_TOKEN, and CI_MERGE_REQUEST_PROJECT_PATH to the GitLab runner's ListEnvVars so they are resolved via ResolveEnvVars and available in the envVars map for reviewer fetching. Also add them to the Dagger runner for GitLab-in-Dagger contexts. Signed-off-by: Jose I. Paris <jiparis@chainloop.dev>
1 parent 85d8e71 commit b41a71e

4 files changed

Lines changed: 24 additions & 1 deletion

File tree

pkg/attestation/crafter/runners/daggerpipeline.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ func (r *DaggerPipeline) ListEnvVars() []*EnvVarDefinition {
6868
{"CI_MERGE_REQUEST_SOURCE_BRANCH_NAME", true},
6969
{"CI_MERGE_REQUEST_TARGET_BRANCH_NAME", true},
7070
{"CI_MERGE_REQUEST_PROJECT_URL", true},
71+
{"CI_MERGE_REQUEST_PROJECT_PATH", true},
72+
{"CI_SERVER_URL", true},
73+
{"CI_PROJECT_PATH", true},
74+
{"CI_JOB_TOKEN", true},
7175
{"GITLAB_USER_LOGIN", true},
7276
}
7377
}

pkg/attestation/crafter/runners/daggerpipeline_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ func (s *daggerPipelineSuite) TestListEnvVars() {
7878
{"CI_MERGE_REQUEST_SOURCE_BRANCH_NAME", true},
7979
{"CI_MERGE_REQUEST_TARGET_BRANCH_NAME", true},
8080
{"CI_MERGE_REQUEST_PROJECT_URL", true},
81+
{"CI_MERGE_REQUEST_PROJECT_PATH", true},
82+
{"CI_SERVER_URL", true},
83+
{"CI_PROJECT_PATH", true},
84+
{"CI_JOB_TOKEN", true},
8185
{"GITLAB_USER_LOGIN", true},
8286
}
8387
assert.Equal(s.T(), expected, s.runner.ListEnvVars())

pkg/attestation/crafter/runners/gitlabpipeline.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ func (r *GitlabPipeline) ListEnvVars() []*EnvVarDefinition {
7878
{"CI_RUNNER_VERSION", false},
7979
{"CI_RUNNER_DESCRIPTION", true},
8080
{"CI_COMMIT_REF_NAME", false},
81+
{"CI_PROJECT_PATH", false},
82+
{"CI_JOB_TOKEN", true},
8183
// MR-specific variables (optional - only present in MR contexts)
8284
{"CI_PIPELINE_SOURCE", true},
8385
{"CI_MERGE_REQUEST_IID", true},
@@ -86,6 +88,7 @@ func (r *GitlabPipeline) ListEnvVars() []*EnvVarDefinition {
8688
{"CI_MERGE_REQUEST_SOURCE_BRANCH_NAME", true},
8789
{"CI_MERGE_REQUEST_TARGET_BRANCH_NAME", true},
8890
{"CI_MERGE_REQUEST_PROJECT_URL", true},
91+
{"CI_MERGE_REQUEST_PROJECT_PATH", true},
8992
}
9093
}
9194

pkg/attestation/crafter/runners/gitlabpipeline_test.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//
2-
// Copyright 2023-2025 The Chainloop Authors.
2+
// Copyright 2023-2026 The Chainloop Authors.
33
//
44
// Licensed under the Apache License, Version 2.0 (the "License");
55
// you may not use this file except in compliance with the License.
@@ -91,13 +91,16 @@ func (s *gitlabPipelineSuite) TestListEnvVars() {
9191
{"CI_RUNNER_VERSION", false},
9292
{"CI_RUNNER_DESCRIPTION", true},
9393
{"CI_COMMIT_REF_NAME", false},
94+
{"CI_PROJECT_PATH", false},
95+
{"CI_JOB_TOKEN", true},
9496
{"CI_PIPELINE_SOURCE", true},
9597
{"CI_MERGE_REQUEST_IID", true},
9698
{"CI_MERGE_REQUEST_TITLE", true},
9799
{"CI_MERGE_REQUEST_DESCRIPTION", true},
98100
{"CI_MERGE_REQUEST_SOURCE_BRANCH_NAME", true},
99101
{"CI_MERGE_REQUEST_TARGET_BRANCH_NAME", true},
100102
{"CI_MERGE_REQUEST_PROJECT_URL", true},
103+
{"CI_MERGE_REQUEST_PROJECT_PATH", true},
101104
}, s.runner.ListEnvVars())
102105
}
103106

@@ -115,13 +118,16 @@ func (s *gitlabPipelineSuite) TestResolveEnvVars() {
115118
"CI_RUNNER_DESCRIPTION": "chainloop-runner",
116119
"CI_COMMIT_REF_NAME": "main",
117120
"CI_SERVER_URL": "https://gitlab.com",
121+
"CI_PROJECT_PATH": "chainloop/chainloop",
122+
"CI_JOB_TOKEN": "gitlab-job-token",
118123
"CI_PIPELINE_SOURCE": "merge_request_event",
119124
"CI_MERGE_REQUEST_IID": "42",
120125
"CI_MERGE_REQUEST_TITLE": "Add new feature",
121126
"CI_MERGE_REQUEST_DESCRIPTION": "Implements awesome feature",
122127
"CI_MERGE_REQUEST_SOURCE_BRANCH_NAME": "feature/awesome",
123128
"CI_MERGE_REQUEST_TARGET_BRANCH_NAME": "main",
124129
"CI_MERGE_REQUEST_PROJECT_URL": "https://gitlab.com/chainloop/chainloop/-/merge_requests/42",
130+
"CI_MERGE_REQUEST_PROJECT_PATH": "chainloop/chainloop",
125131
}, resolvedEnvVars)
126132
}
127133

@@ -135,6 +141,8 @@ func (s *gitlabPipelineSuite) TestResolveEnvVarsWithoutRunnerDescription() {
135141
s.T().Setenv("CI_MERGE_REQUEST_SOURCE_BRANCH_NAME", "")
136142
s.T().Setenv("CI_MERGE_REQUEST_TARGET_BRANCH_NAME", "")
137143
s.T().Setenv("CI_MERGE_REQUEST_PROJECT_URL", "")
144+
s.T().Setenv("CI_MERGE_REQUEST_PROJECT_PATH", "")
145+
s.T().Setenv("CI_JOB_TOKEN", "")
138146

139147
resolvedEnvVars, errors := s.runner.ResolveEnvVars()
140148
s.Empty(errors, "Should not error when optional variables are missing")
@@ -149,6 +157,7 @@ func (s *gitlabPipelineSuite) TestResolveEnvVarsWithoutRunnerDescription() {
149157
"CI_RUNNER_VERSION": "13.10.0",
150158
"CI_COMMIT_REF_NAME": "main",
151159
"CI_SERVER_URL": "https://gitlab.com",
160+
"CI_PROJECT_PATH": "chainloop/chainloop",
152161
}
153162
s.Equal(expected, resolvedEnvVars)
154163
}
@@ -184,6 +193,9 @@ func (s *gitlabPipelineSuite) SetupTest() {
184193
t.Setenv("CI_MERGE_REQUEST_SOURCE_BRANCH_NAME", "feature/awesome")
185194
t.Setenv("CI_MERGE_REQUEST_TARGET_BRANCH_NAME", "main")
186195
t.Setenv("CI_MERGE_REQUEST_PROJECT_URL", "https://gitlab.com/chainloop/chainloop/-/merge_requests/42")
196+
t.Setenv("CI_PROJECT_PATH", "chainloop/chainloop")
197+
t.Setenv("CI_JOB_TOKEN", "gitlab-job-token")
198+
t.Setenv("CI_MERGE_REQUEST_PROJECT_PATH", "chainloop/chainloop")
187199
}
188200

189201
// Run the tests

0 commit comments

Comments
 (0)