はじめに
- Issueをつくる
- ブランチを切る
- 細かくコミットする
- プルリクエストする
洗練された開発プロセスですね。
今回は
- 「1. Issueをつくる」
- 「4. プルリクエストする」
をサポートするルールを作成しようと思います。
1️⃣ プルリクエスト テンプレートを作る
この章でやること
- プルリクエスト テンプレートを作成する
- Githubのルールを利用し、プルリクエストにIssueを関連付ける
Issueを関連付ける方法
Issueをプルリクエストに関連付けることができます。
具体的には、以下の記述をします。
KEYWORD #ISSUE-NUMBER
例
resolve #1
close #1
fix #1
.github/pull_request_template.md
を作成
.github/pull_request_template.md
# Issue_number
resolve #
# Summary
注意事項
-
.github
は、プロジェクトのルートディレクトリに作成します -
.github/workflows/
に作成しないよう注意してください - 複数のIssueを関連付ける場合、都度
KEYWORD #Issue_number
と記述します
2️⃣ Github Actionsのセットアップ
この章でやること
- Github Actionを作成する
- プルリクエストが
#Issue_number
含むかチェックする
.github/workflows/check-issue-link.yml
を作成
.github/workflows/check-issue-link.yml
name: Check Issue Link in PR
on:
pull_request:
jobs:
check-issue-link:
runs-on: ubuntu-latest
steps:
- name: Check PR for Issue Link
run: |
PR_BODY=$(jq -r '.pull_request.body' "$GITHUB_EVENT_PATH")
echo "$PR_BODY"
if ! echo "$PR_BODY" | grep -qiE "(close[sd]?|fix(ed|es)?|resolve[sd]?) #[0-9]+"; then
echo "Error: PR description must include a linked Issue (e.g., 'resolve #123')."
exit 1
fi
注意事項
- 先ほどとは違い
.github/workflows
ディレクトリに作成しています
3️⃣ ブランチ保護ルールの設定
この章でやること
- Issueを含まないプルリクエストをマージできないようにする
Settings ->Branches
|
名前・ステータス・ターゲットブランチを設定 |
---|---|
![]() |
![]() |
作成したactionを適用 | |
![]() |
注意事項
-
Create
を押して適用するのを忘れずに
おわりに
以上、「Issueを必須にするルール作り」でした。
「mainブランチにプッシュさせない設定」もオススメです。