RareJob Tech Blog

レアジョブテクノロジーズのエンジニア・デザイナーによる技術ブログです

ゆるりと始めるJira自動化

どうもCTOの@jumboOrNotです。 最近は「小手返し 一手」をマスターするために週末は寿司を握っています。 何のことかわからない人は一度「将太の寿司」を読んで唇をめくりあげてきてください。

さて、寿司を握る時間を捻出するためには自動化が必要です。 今日はJiraの自動化の話をしようと思います。

Jira Automation

www.atlassian.com

Jira Automationは簡単に始めることができ、自分たちのJiraプロジェクトでまだ有効化してないようであれば、ぜひテンプレートを見るだけでも見てみてほしいです。例えば以下のようなことができます。

コレ以外にも数多くの自動化設定が用意されており、課題を管理したり、状態の変化を通知したり、付随するドキュメントを自動生成したりが可能です。 またテンプレートを参考に自分でもカスタマイズ・作成が可能で、これにより様々なプロセスの改善が見込めます。

基本的な設定方法

基本的な概念としては

  • トリガー(何によって発火するか。ex. リリース、日時、課題の状態変更時など)
  • アクション(何を実施するか。ex. 子課題を完了状態にするなど)
  • 条件(実施の条件はなにか。ex. 名前にAAが含まれるリリースなど)
  • ブランチ(状態をどう分割するか。ex. 前のコンポーネントに関連する課題で分割など)

の4つのコンポーネントでそれぞれで用意されている変数(Jira smart value)や状態を利用して様々な自動化を実現します。

トリガー

Jira Automation のトリガー | Automation for Jira Data Center および Server 8.1 | アトラシアン ドキュメント

思いつきそうなトリガーはだいたい用意されています。それ以外にも

  • Webhook
  • スケジュール(任意のタイミング。ex.月曜の9:00など)
  • 手動実行

など工夫し甲斐の有りそうなものまで用意されています。

アクション

Jira Automation のアクション | Automation for Jira Data Center および Server 8.1 | アトラシアン ドキュメント

こちらも思いつきそうなアクションはだいたい用意されています。他には

  • コンフルにページを作成
  • AWS SSM ドキュメントを実行
  • Webリクエストを送信(CURL実行)

などがあり、こちらもいろんなことができちゃいます。

例えば「すべてのストーリーが完了したら → エピックを閉じる」といった自動化であれば以下のような設定になります。

ブランチが少しややこしいと思いますが、上記の例は課題の遷移時にその親であるエピックを対象条件としてフローの中で指定し直しています。 この中で、特定のエピックのみ実施したいなどあれば「条件」を追加し、更にチケットの状態を変更したければ「アクション」を追加して、あなたのプロジェクトに最適なフローを作成しましょう。

ちょっと工夫してみる

「リリース実施時に紐づく課題をslackへ流す」というのを作りたいとします。 意外とテンプレートにないので自分で作る必要があります。具体的な下記のようなコンポーネント設定になります。

トリガーに関しては言わずもがなですが以下のような工夫が入っています。

工夫

値を取得するための smart value で {{version.issues}} のように取得できればいいのですが、Jiraの「リリース」は「課題」とは異なる概念のため、リリースは関連する課題を smart value object の中に含みません。

Jira smart values - issues | Cloud automation Cloud | Atlassian Support

そのため課題を検索するためのDDLであるJQLを使って対象の課題を検索します。検索の結果は {{lookupIssues}} という形で取得できます。 その結果得られた smart value object を使って下記のようにslackに投稿します。

■  {{version.name}} をリリース!

{{#lookupIssues}}
<{{url}}|{{summary}}>
{{/}}

お疲れさまでした :bow:

さいごに

工夫した例も記載しましたが、テンプレートの設定でも十分便利なのでぜひ設定画面から自動化設定を見てみてください。 そして寿司を握りましょう!よろしくおねがいします!