我尝试使用 gh actions cli 设置存储库变量 RUN_ID 的值: 代码如下:
name: test3
on:
workflow_dispatch:
inputs:
runid:
required: false
type: number
env:
RUNID: ${{github['run_id']}}
GITHUB_ENV: ${{ toJSON(github) }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN}}ß
jobs:
Test:
permissions: write-all
runs-on: ubuntu-latest
environment: TWIST_DEV
steps:
- uses: actions/checkout@v3
- name: Display the input value
run: |
echo "${{env.runid}}"
- name: Update environment file with 'run_id' value
run: |
echo "${{github['run_id']}}" > file
cat file
- name: List directories
run: |
ls -la
- name: Change mode to file
run: chmod 777 file
- name: List directories
run: |
ls -la
- name: Inputs runid (workflow call)
if: ${{ inputs.runid }} != ''
run: 'gh variable set RUN_ID < file'
- name: Set runid variable
run: echo "${{vars.runid}}"
手动运行管道时,我收到以下错误消息:
无法设置变量“RUN_ID”:HTTP 403:必须拥有存储库的管理员权限
我会很高兴你能帮助我。
提前致谢
根据列出环境变量及其相关API,您需要一个具有repo
范围权限(具体来说,
repo:public_repo
范围)的PAT(个人访问令牌):
您必须使用具有
范围的访问令牌进行身份验证才能使用此端点。repo
一旦您的 PAT 具有所需的范围,您就需要将其设置为您的环境机密,以供 GitHub CLI (
gh
) 使用。
除此之外,在您的工作流程中,您正在使用
environment
。要操作环境中的变量,您还需要指定 --env
或 -e
标志。请参阅gh variable list
。 set
和 delete
也同样如此。
这是一个例子:
name: gh_cli_variable_test
on: workflow_dispatch
jobs:
ci:
runs-on: ubuntu-latest
environment: Dev
env:
GITHUB_TOKEN: ${{ secrets.GH_VARIABLE_PAT }}
TEST_VAR: 'test_var_value'
TEST_VAR_ENV: 'test_var_value_env'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Delete
run: |
gh variable delete TEST_VAR
gh variable delete TEST_VAR_ENV --env Dev
- name: List (repo)
run: gh variable list
- name: List (env Dev)
run: gh variable list --env Dev
- name: Set (repo)
run: gh variable set TEST_VAR --body "$TEST_VAR"
- name: Set (env Dev)
run: gh variable set TEST_VAR_ENV --body "$TEST_VAR_ENV" --env Dev
- name: List (repo)
run: gh variable list
- name: List (env Dev)
run: gh variable list --env Dev
- name: Dump
run: |
echo 'TEST_VAR: ${{ vars.TEST_VAR }}'
echo 'TEST_VAR_ENV: ${{ vars.TEST_VAR_ENV }}'
输出: