GitHub Action を使って、次のようにリポジトリ上の a.txt を更新して push を試みると、
エラー「The requested URL returned error: 403
」が発生し、Push に失敗する.
このときの対策方法が見つけ難かったので、書き出しておく.
エラー発生時の状況
実行環境
GitHub-hosted runner
.github/workflows/gitpush.yml
name: push text file
on: push
jobs:
push_a:
runs-on: ubuntu-latest
steps:
- name: Push a.txt
run: |
git init
git remote add origin "https://$GITHUB_ACTOR:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY.git"
git config --global user.email "mybot@example.com"
git config --global user.name "mybot"
git fetch
git checkout master
git branch --set-upstream-to=origin/master
git pull
date >> a.txt
git add -A
git commit -m "update a.txt"
git push
Action 実行結果
git push origin master
remote: Permission to xxxx/yyyy.git denied to github-actions[bot].
fatal: unable to access 'https://github.com/xxxx/yyyy.git/': (見易さのために改行する)
The requested URL returned error: 403🛑
Error: Process completed with exit code 128.
対策
次の行頭「+」行のように追加してやると、Push に成功した.
.github/workflows/gitpush.yml
(略)
push_a:
+ permissions:
+ actions: write
+ checks: write
+ contents: write
+ deployments: write
+ issues: write
+ packages: write
+ pull-requests: write
+ repository-projects: write
+ security-events: write
+ statuses: write
runs-on: ubuntu-latest
steps:
- name: Push a.txt
(略)
該当ドキュメント
https://docs.github.com/ja/actions/using-jobs/assigning-permissions-to-jobs
以上