🐧

GitHub ActionsでPullRequestのDescriptionに追記する

2024/03/29に公開

はじめに

GitHub Actionsを用いて、PullRequestのDescriptionに動的な文字列を自動で追記する方法を紹介します。

ブランチ名からタスクのURLを作りPullRequestに追記する、というケースで利用ができます。

Github Actionsのサンプル

以下のサンプルコードは、PullRequestのDescriptionの先頭に追記するワークフローです。

- uses: actions/checkout@v4

- name: update PR description
  env:
    GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
  run: |
    DESCRIPTION=$(gh pr view ${{ github.event.pull_request.number }} --json body --jq .body)
    gh pr edit ${{ github.event.pull_request.number }} --body  "{{追記したいコンテンツ}}
    ---
    ${DESCRIPTION}"

動作詳細

GitHub CLIを使って以下をしています。

  1. 現在のDescriptionの取得
  2. Descriptionの更新

1. 現在のDescriptionの取得

gh pr viewコマンドを利用して現在のDescriptionを取得します。
Pull Requestテンプレートや手動でDescriptionを設定している場合などに、現在の内容が消えないようにするために取得しています。

--json bodyオプションを指定することで、JSON形式でDescriptionを取得できます。
--jq .bodyオプションを使って、JSON形式の情報のうち、bodyプロパティのみを抽出します。

DESCRIPTION=$(gh pr view ${{ github.event.pull_request.number }} --json body --jq .body)

2. Descriptionの更新

gh pr editコマンドでDescriptionを更新しています。

--bodyオプションは、PullRequestのDescriptionを設定するオプションです。追記したい文字列と現在のDescriptionを結合して設定します。

gh pr edit ${{ github.event.pull_request.number }} --body  "{{追記したいコンテンツ}}
---
${DESCRIPTION}"

参考

Discussion