📝
Github ActionsでPRにコメントを付ける際、元のコメントを更新する方法
はじめに結論
gh pr comment
コマンドを使い、 --edit-last --create-if-none
オプションを付ければよいです。
--edit-last
だけだと1回目のコメントの場合にエラーになってしまうため、 --create-if-none
を付ける必要があります。
対象となるコメントは同じユーザーの最後のコメントになるため、他のユーザーのコメントを上書きしてしまう心配はありません。
コメントの更新ではなく削除して新規にコメントしたい場合には、代わりに --delete-last --yes
オプションを付けてください。
Github Actionsのサンプル
permissions:
contents: read
pull-requests: write # この権限を追加しないとエラーになります。
jobs:
<ジョブ名>:
steps:
# 省略
- name: Create comment body
run: |
# 変数等で渡すよりも、ファイルを作って次のステップで参照するほうがシンプルに値の受け渡しができます。
echo "これはコメントです。" > comment.txt
echo "追加のメッセージです。" >> comment.txt
- name: Post a comment on PR
env:
# secrets.GITHUB_TOKEN は github.token と同じです。
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh pr comment ${{ github.event.number }} --edit-last --create-if-none --body-file comment.txt
特定のコメントを削除したい場合
最後のコメントではなく特定のコメントを削除したい場合には、専用のコマンドがないため直接APIを叩いて実行します。
gh api --method DELETE -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/<オーナー名>/<レポジトリ名>/pulls/comments/<コメントID>
Discussion