リリース時に関連課題へ通知する
リリースタグの作成をトリガーに、前回タグからのコミットに含まれる課題キーを抽出し、各課題にリリースバージョンをコメントします。あわせて、GitHub Release の本文を Backlog ドキュメントとしても投稿します。
name: Notify Backlog Issues on Releaseon: release: types: [published]
# actions/checkout が contents: read を必要とするため明示的に指定permissions: contents: read
env: BACKLOG_API_KEY: ${{ secrets.BACKLOG_API_KEY }} BACKLOG_SPACE: ${{ secrets.BACKLOG_SPACE }} # ドキュメント投稿先のプロジェクトキー BACKLOG_PROJECT: MY_PROJECT # ドキュメントの親フォルダ ID(空の場合はルートに作成) DOCUMENT_PARENT_ID: ""
jobs: notify: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v4 with: fetch-depth: 0
# 前回タグから現在のタグまでのコミットに含まれる課題キーを収集する - name: Collect issue keys from commits since last tag id: collect run: | PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "") if [ -n "$PREV_TAG" ]; then RANGE="${PREV_TAG}..HEAD" echo "Range: ${PREV_TAG}..HEAD" else RANGE="HEAD" echo "Range: all commits (no previous tag)" fi KEYS=$(git log "$RANGE" --oneline | grep -oE '[A-Z_]+-[0-9]+' | sort -u | tr '\n' ' ') echo "Detected issue keys: ${KEYS:-(none)}" echo "issue_keys=$KEYS" >> "$GITHUB_OUTPUT"
# 各課題にリリースバージョンをコメントする - name: Comment release info on each issue if: steps.collect.outputs.issue_keys != '' run: | for KEY in $ISSUE_KEYS; do echo "Commenting on: $KEY (release $TAG_NAME)" npx @nulab/bee issue comment "$KEY" \ --body "リリース [$TAG_NAME]($RELEASE_URL) に含まれています" \ || echo "::warning::Failed to process $KEY" done env: ISSUE_KEYS: ${{ steps.collect.outputs.issue_keys }} TAG_NAME: ${{ github.event.release.tag_name }} RELEASE_URL: ${{ github.event.release.html_url }}
# GitHub Release の本文を Backlog ドキュメントとして投稿する - name: Post release notes to Backlog document run: | echo "Creating document: $TAG_NAME" npx @nulab/bee document create \ --project "$BACKLOG_PROJECT" \ --title "リリースノート $TAG_NAME" \ --body "$RELEASE_BODY" \ --parent-id "$DOCUMENT_PARENT_ID" \ || echo "::warning::Failed to create release document" env: TAG_NAME: ${{ github.event.release.tag_name }} RELEASE_BODY: ${{ github.event.release.body }}カスタマイズ
Section titled “カスタマイズ”- ドキュメント投稿が不要
- 「Post release notes to Backlog document」ステップと
BACKLOG_PROJECT・DOCUMENT_PARENT_ID環境変数を削除してください。 - 課題への通知が不要
- 「Collect issue keys …」と「Comment release info …」の2ステップを削除してください。
- ドキュメントを特定のフォルダに入れたい
DOCUMENT_PARENT_IDにフォルダのドキュメント ID を設定してください。
関連するコマンド
Section titled “関連するコマンド” issue comment 課題へのコメント
document create ドキュメントの作成