GitHub Action
Backlog Notify
Notify commit messages to Backlog.com issue.
GitHub 上のプッシュとプルリクエストを Backlog 課題に連携する GitHub Action です。キーワードによる課題の状態変更も可能です。
個人が開発した Action です。ヌーラボさまへのお問い合わせはご遠慮ください。
- Backlog のプロジェクトに移動します。
- プロジェクト設定 → 参加ユーザー → 新しいユーザの追加はこちらから を選択します。
- クラシックプランの場合は
一般ユーザ
、新プランの場合はゲスト
を選択します。 - 登録します。
- 登録した BOT アカウントにログインします。
- 個人設定 → API → 登録 で API キーを発行します。
- GitHub のリポジトリページに移動します。
- Setting → Secrets → Add a new secret を選択します。
- Name は
BACKLOG_API_KEY
とし、 Value に API キーをそのまま貼り付けます。 - 登録します。
プライベートリポジトリの場合は下記の操作を行う必要はありません。
パブリックリポジトリの場合は、collaborator からの workflow の実行を制限してください。
- Setting → Actions → Fork pull request workflows from outside collaborators を開きます。
Require approval for all outside collaborators
を選択します。
GitHub Actions workflow を作成します (例: .github/workflows/backlog-notify.yml
)。
下記のような形式である必要があります。
name: Backlog Notify
on:
- push
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Backlog Notify
uses: bicstone/backlog-notify@v3
with:
# 必須設定 (The following are required settings)
project_key: PROJECT_KEY
api_host: example.backlog.jp
api_key: ${{ secrets.BACKLOG_API_KEY }}
# 任意設定 (The following are optional settings)
fix_keywords: |-
#fix
#fixes
#fixed
close_keywords: |-
#close
#closes
#closed
push_comment_template: |-
<%= commits[0].author.name %>さんが[<%= ref.name %>](<%= ref.url %>)にプッシュしました
<% commits.forEach(commit=>{ %>
+ <%= commit.comment %> ([<% print(commit.id.slice(0, 7)) %>](<%= commit.url %>))<% }); %>
commit_message_reg_template: "\
^\
(<%= projectKey %>\\-\\d+)\\s?\
(.*?)?\\s?\
(<% print(fixKeywords.join('|')) %>|<% print(closeKeywords.join('|')) %>)?\
$\
"
fix_status_id: 3
close_status_id: 4
設定名 | 説明 |
---|---|
project_key |
Backlog プロジェクトキー (必須) |
api_host |
Backlog のホスト (必須) |
api_key |
Backlog API キー (必須) |
fix_keywords |
処理済みにするキーワード |
close_keywords |
完了にするキーワード |
push_comment_template |
プッシュ時のコメント雛形 |
commit_message_reg_template |
コミットメッセージ解析の正規表現雛形 |
fix_status_id |
処理済みの 状態 ID |
close_status_id |
完了の 状態 ID |
プッシュ時のコメントの雛形を変更できます。
構文については lodash/template をご参照ください。
使用可能な変数
変数名 | 型 |
---|---|
commits |
ParsedCommit[] |
ref |
ParsedRef |
ParsedCommit
変数名 | 型 |
---|---|
id |
string |
tree_id |
string |
distinct |
boolean |
message |
string |
timestamp |
string |
url |
string |
author |
Committer |
committer |
Committer |
added |
string[] |
modified |
string[] |
removed |
string[] |
issueKey |
string |
comment |
string |
keywords |
string |
isFix |
boolean |
isClose |
boolean |
ParsedRef
変数名 | 型 |
---|---|
name |
string |
url |
string |
Committer
変数名 | 型 |
---|---|
name |
string |
email |
string | null |
date |
string | undefined |
username |
string | undefined |
コミットメッセージ解析の正規表現雛形を変更できます。
構文については lodash/template をご参照ください。
使用可能な変数
変数名 | 型 |
---|---|
projectKey |
string |
fixKeywords |
string[] |
closeKeywords |
string[] |
Backlog の Git と同様です。課題キーは先頭にある 1 つ目のキーのみ認識します。
付加機能として、コミットログで課題を操作することができます。
#fix
#fixes
#fixed
のどれかで処理済み#close
#closes
#closed
のどれかで完了
例えば下記のようにコミットメッセージを設定してください。
PROJECT-123 不具合修正 #fix
大量にプッシュするとそのまま投稿され、 Backlog に負荷がかかるのでご注意ください。
-
何をプッシュしても実行に失敗し、ログに 401 エラーとある
→API キーが誤っている可能性があります。 -
プロジェクトキーと課題キーが正しいのに実行に失敗し、ログに 404 エラーとある
→ 該当 API キーのユーザーがプロジェクトに参加していない可能性があります。
コントリビューターの皆様に感謝いたします。
Thanks goes to these contributors.
Oishi Takanori 🤔 💻 🚧 💬 📖 👀 |
takeshi.kondo 🐛 💻 |
Kenta SUZUKI 📖 |
mantaroh 🤔 |
Hyunjoon KIM 🤔 💻 |
貢献はいつでも大歓迎です。事前に CONTRIBUTING.md をご確認ください。
Contributions of any kind welcome! Please read CONTRIBUTING.md.
MIT License