Skip to content

fix(ci): pass github.token via env mapping instead of direct run interpolation#29719

Merged
pelikhan merged 2 commits intomainfrom
copilot/fix-secret-interpolation-ci-yml
May 2, 2026
Merged

fix(ci): pass github.token via env mapping instead of direct run interpolation#29719
pelikhan merged 2 commits intomainfrom
copilot/fix-secret-interpolation-ci-yml

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 2, 2026

Directly interpolating ${{ github.token }} inside a run: block embeds the token as plain text in the shell script before execution, exposing it to log output, process listings, and shell injection if the value contains metacharacters.

Change

Move github.token out of the shell script body and into the step's env: mapping in the "Clone github/gh-aw-marketplace repository" step of ci.yml.

# Before — token literal in shell script
run: |
  AUTH_HEADER=$(printf 'x-access-token:%s' '${{ github.token }}' | base64 | tr -d '\n')

# After — token injected as env var
env:
  GH_TOKEN: ${{ github.token }}
run: |
  AUTH_HEADER=$(printf 'x-access-token:%s' "${GH_TOKEN}" | base64 | tr -d '\n')

Resolves RGS-008 (runner-guard static analysis finding, severity: High).

… run block (RGS-008)

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/10fad895-6771-48d7-b155-3c87986a598c

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix secret directly interpolated in run block in ci.yml fix(ci): pass github.token via env mapping instead of direct run interpolation May 2, 2026
Copilot AI requested a review from pelikhan May 2, 2026 09:40
@pelikhan pelikhan marked this pull request as ready for review May 2, 2026 09:44
Copilot AI review requested due to automatic review settings May 2, 2026 09:44
@pelikhan pelikhan merged commit 16c7ed1 into main May 2, 2026
24 of 25 checks passed
@pelikhan pelikhan deleted the copilot/fix-secret-interpolation-ci-yml branch May 2, 2026 09:44
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the CI workflow to avoid embedding ${{ github.token }} directly inside a run: script by passing it via the step’s env: mapping, addressing a runner-guard finding (RGS-008).

Changes:

  • Add env: GH_TOKEN: ${{ github.token }} to the “Clone github/gh-aw-marketplace repository” step.
  • Update the shell script to reference ${GH_TOKEN} instead of inlining the expression.
Show a summary per file
File Description
.github/workflows/ci.yml Moves github.token usage out of the shell script body into env for the marketplace clone step.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 1/1 changed files
  • Comments generated: 1

Comment thread .github/workflows/ci.yml
Comment on lines +782 to 783
AUTH_HEADER=$(printf 'x-access-token:%s' "${GH_TOKEN}" | base64 | tr -d '\n')
git -c http.https://github.com/.extraheader="Authorization: Basic ${AUTH_HEADER}" clone --depth 1 https://github.com/github/gh-aw-marketplace.git
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[static-analysis] RGS-008: Secret Directly Interpolated in run Block in ci.yml

3 participants