0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitHub Action 内で .github/workflow 配下のファイルを変更したい

Last updated at Posted at 2023-11-22

はじめに

git-auto-commit-action という github action があります

レポジトリの説明を引用すると

A GitHub Action to detect changed files during a Workflow run and to commit and push them back to the GitHub repository. By default, the commit is made in the name of "GitHub Actions" and co-authored by the user that made the last commit.

とのことで、要するに Github Action のなかで加えられたファイルの変更を検知して、それを実際にレポジトリに commit & push してくれる action です。

どのように使うかというと、例えば npm run format などと合わせて、以下のような Actions を定義すると Github Action のなかで npm run format を実行し、結果をそのままブランチにプッシュしてくれます。

      - name: Run format
        run: npm run format
      - uses: stefanzweifel/git-auto-commit-action@v3.0.0
        with:
          commit_message: Format by GitHub Actions

今回遭遇した問題

通常であれば上記のような記述だけで問題なく実行できるのですが、今回私が .github/workflows 配下の deploy.yml に変更を加えたとき、問題が起こりました。

[main 9a01a11] Format by GitHub Actions
 Author: kromiii <kromiii@users.noreply.github.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
To https://github.com/kromiii/astro-notion-blog
 ! [remote rejected] main -> main (refusing to allow a GitHub App to create or update workflow `.github/workflows/deploy.yml` without `workflows` permission)
error: failed to push some refs to 'https://github.com/kromiii/astro-notion-blog'
##[debug]Docker Action run completed with exit code 1
##[debug]Finishing: Run stefanzweifel/git-auto-commit-action@v3.0.0

npm run format により、GithubAction のなかで deploy.yml に変更が加えられたのですが、その変更を push しようとした時に権限がないとエラーになってしまっているようでした。

最初は Github Workflow の権限が足りないのではないか?と疑って色々設定を見たのですが、どうも権限は正しく設定されていそうです。

image.png

では何が問題なのか?

エラー文の中に少し気になる一文がありました

refusing to allow a GitHub App to create or update workflow

エラー文でググってみると以下の記事がヒット

どうやら Github Workflow で Actions の定義ファイルを変更するには特別なパーミッションが必要なようです

解決方法

と言うわけで、workflow を変更する権限を持った専用の PAT を発行してみる

image.png

workflow にチェックを入れるのがポイント

ここで発行した PAT を Github Action の Secret Token に適当な名前で入れます

今回は PAT_GRANTED としました

これを actions/checkout の引数に渡してあげます
stefanzweifel/git-auto-commit-action の引数でないことに注意)

        uses: actions/checkout@v4
        with:
          token: ${{ secrets.PAT_GRANTED }}

さて、結果はいかに・・・

[main e9282fc] Format by GitHub Actions
 Author: kromiii <kromiii@users.noreply.github.com>
 1 file changed, 1 insertion(+), 1 deletion(-)
To https://github.com/kromiii/astro-notion-blog
   b9d9aa5..e9282fc  main -> main

git-auto-commit-action が成功しました :tada:

まとめ

Github Actions で .github/workflow 配下のファイルを変更する場合は特別な権限が必要みたいなので注意です

そう言う場合は個別にPATを発行して Actions で指定してあげましょう

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?