#概要
jiraを利用することでタスクをチケットという形で発行することが出来ます。
githubを組み合わせることで効率的に開発をすすめることが出来るのでそのやり方を書きます。
#jiraの設定
まずはjiraの登録を済ませていきます。(参考記事1が読みやすかったです。)
次に上の歯車マークからアプリを選択してgithub for jiraを選択します。(下の画像)
#githubの設定
github actionsを登録していきます。
githubの対象のリポジトリに移動してメニューからActionsに移動して、以下の画像の中のいずれかを選択して適当にベースとなるgithub actionsのworkflowsファイルを作成します。作成したら下にstart commitというボタンがあるのでクリックしてgithub actionsを有効にします。
##issueの作成
まずは、issueの作成をします。
流れとしては、以下のようになります。
jiraへログイン→issueからチケットの発行
コードは以下を参考にしました(てか解説以外同じ)
name: Create issue
# githubのissueが開かれたときに作動(type->[colosed]で湿られたとき)
on:
issues:
push:
types: [opened]
#ここからworkflow
jobs:
build:
runs-on: ubuntu-latest
name: Jira Example
if: github.event.action == 'opened'
steps:
- name: Login
uses: atlassian/gajira-login@master
env:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
- name: Jira Create issue
uses: atlassian/gajira-create@v2.0.1
with:
# 付けたいチケット名を選択(jiraのAPItokenのlabelに合わせる)
project: {プロジェクト名}
# 課題タイプを指定
issuetype: Task
# issuesのタイトルが要約になるように設定
summary: ${{ github.event.issue.title}}
# issuesの本文が説明になるように設定
description: ${{ github.event.issue.body}}
envに関してはSettings -> Secretsより設定ができる。
・JIRA_BASE_URLについては、jiraのプロジェクトまで行ってから検索バーからurlをコピーして以下まで切り抜けば良い。
https://{登録した名前}.atlassian.net
・JIRA_USER_EMAILは登録したメール・アドレスでjiraのタスク画面から自分のアイコンをクリックしてプロフィールから確認できる。
・JIRA_API_TOKENは以下のサイトから発行することが出来る。
https://confluence.atlassian.com/cloud/api-tokens-938839638.html
##taskの移動
実際にブランチにpushしたときに自動的にタスクの進行度が変わるgithub actionsを実装します。
基本的にはmasterブランチへpushされたときにタスクを完了にして、developブランチなどmasterブランチ以外へpushされたときにタスクを進行中にするなどが良いでしょう。
これらを考慮したworkflowはいかのようになります。
↓master以外のブランチへpushされたとき
on:
push:
branches:
- '*'
- '!master'
name: Transition Issue for progress
jobs:
test-transition-issue:
name: Transition Issue
runs-on: ubuntu-latest
steps:
- name: Login
uses: atlassian/gajira-login@master
env:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
# プッシュされたコミットに記載された課題キーを抽出する
- name: Find in commit messages
id: find
uses: atlassian/gajira-find-issue-key@master
with:
string: ${{ github.event.ref }}
# 課題キーが特定できればJiraに対してトランジションを発行
- name: Transition issue
uses: atlassian/gajira-transition@master
# 課題キーが含まれていなければスルー
if: ${{ steps.find.outputs.issue }}
with:
# 前のステップのアウトプットを参照
issue: ${{ steps.find.outputs.issue }}
transition: "進行中"
masterブランチへpushされたとき
# マスターブランチにpushされたとき
on:
push:
branches:
- master
name: Transition Issue for complete
jobs:
test-transition-issue:
name: Transition Issue
runs-on: ubuntu-latest
steps:
- name: Login
uses: atlassian/gajira-login@master
env:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
# プッシュされたコミットに記載された課題キーを抽出する
- name: Find in commit messages
id: find
uses: atlassian/gajira-find-issue-key@master
with:
string: ${{ github.event.ref }}
# 課題キーが特定できればJiraに対してトランジションを発行
- name: Transition issue
uses: atlassian/gajira-transition@master
# 課題キーが含まれていなければスルー
if: ${{ steps.find.outputs.issue }}
with:
# 前のステップのアウトプットを参照
issue: ${{ steps.find.outputs.issue }}
transition: "完了"
これらのファイルを作成した後githubにpushすると以下のように作成したタスクがバックログから進行中に移動していることがわかります。
これらを取り入れることでやった感もでるし、イケてるプロジェクトを回している感じも出るのでおすすめです。
jiraを取り入れてよい開発ライフを送りましょう!
#参考記事