LoginSignup
15
5

More than 3 years have passed since last update.

Github ActionsでJira Cloudと連携してみた

Last updated at Posted at 2020-12-10

この記事は セゾン情報システムズ Advent Calendar 2020 11日目の記事です。

最近Actions熱が高まっており、いろいろと触って遊んでみました。
手始めに、ニーズがあるかというと微妙な感じですが、ActionsとJiraを連携させてみました。

利用したActions

Marketplaceに公開されていたAtlassian公式のActionsを利用させていただきました。

事前準備

  • Github.comに任意のリポジトリを作成する
  • Jira Cloudに任意のプロジェクトを作成する
    ※両方Freeプランで利用可能です

環境変数(Secret)を設定

Actionsから利用するSecretをリポジトリの「Settings」→「Secrets」に追加する
image.png

  • JIRA_API_TOKEN
  • JIRA_BASE_URL
    • JiraインスタンスのURL。 例:https://{yourdomain}.atlassian.net
  • JIRA_USER_EMAIL
    • アクセストークンを作成したユーザーのメールアドレス

Githubにissuesが作成されたらJiraのタスクを起票する

「Actions」タブの「New workflow」から新規ワークフローを作成

create-issues.yml

name: Jira Example

on:
  issues:
  push:
    types: [opened]

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:
        # プロジェクトキーを指定
        project: AC
        # 課題タイプを指定
        issuetype: Task
        # issuesのタイトルが要約になるように設定
        summary: ${{ github.event.issue.title}}
        # issuesの本文が説明になるように設定
        description: ${{ github.event.issue.body}}

issuesを作成してみると。。。
image.png

ワークフローが動き出し。。。
image.png

Jiraにタスクが作成されました!!
image.png

変更がプッシュされたら課題を「進行中」に遷移させる

今作ったisssuesに対応したソースコードをプッシュした際にJira側のタスクもステータスを遷移してもらいます。

もう一つワークフローを作成

transition-issues.yml
on:
  push

name: Transition Issue

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: "進行中"

ブラウザで適当にREADME.mdを更新してコミット
※本来はローカルでちゃんとブランチ切ってPRを出しましょうw
コミットメッセージに先程作成された「AC-4」という課題キーを含める
image.png

ワークフローが起動し。。。
image.png

ステータスが遷移しました!!!
image.png

おわりに

今回試した機能はJiraのGithub用アドオン、スマートコミットでもできることではありますが、他にも面白い連携(コード内のTODOコメントを検知して課題を作成したり)がありますので引き続き触ってみようと思いました。

またGithub内の豊富なトリガーから起動できる点はアドオンには再現できないので、もっとユースケースが増えていくことを期待します。

15
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
5