0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バグが起きたら自動でJiraにチケット作成してほしい…

Posted at

はじめに

こんにちは!!
Firebase Functionsを使っていると、時々エラーが発生しますよね。そんな時、手動でエラーログを確認し、Jiraにバグのチケットを作成するのは手間がかかります。
そこで、Firebase Functionsでエラーが発生した際に、Jiraに自動でチケットを作成する方法をご紹介します。使用する言語はTypeScript、Node.js、そしてHTTPリクエストにはaxiosを使用します。

何を書いたか

この記事では、Firebase Functionsでエラーが発生した際に、自動でJiraにバグのチケットを作成する方法について詳しく説明します。

なぜ書いたか

エラー発生時に迅速に対応するためには、エラーログを確認し、バグのチケットを作成することが重要です。しかし、手動でこれを行うのは非効率です。そこで、自動化することでエラー対応を迅速かつ効率的に行えるようにこの記事を書きました。

対象読者は、Firebase Functionsを使用しているエンジニアや、エラー処理を自動化したいと考えている方々です。

本題

必要なもの

  • Firebase Functions
  • Jiraアカウント
  • axiosライブラリ
  • TypeScript

手順

  1. axiosのインストール
    HTTPリクエストを送信するためのaxiosライブラリをインストールします。
npm install axios
  1. Jira APIトークンの取得
    JiraのAPIトークンを取得します。Jiraのアカウント設定からAPIトークンを生成します。

  2. 関数の作成
    エラーが発生した際にJiraにチケットを作成する関数を作成します。

import axios from 'axios'

const JIRA_API_TOKEN = 'YOUR_JIRA_API_TOKEN'
const JIRA_HOST = 'your-domain.atlassian.net'
const JIRA_ISSUE_TYPE = '10010' // BugのID
const JIRA_PROJECT_KEY = 'YOUR_PROJECT_KEY'
const JIRA_USERNAME = 'your-email@example.com'

const createJiraIssue = async (funcName: string, message: string): Promise<void> => {
  const jiraIssueData = {
    fields: {
      summary: `${funcName}関数でエラーが発生しました`,
      description: {
        version: 1,
        type: 'doc',
        content: [
          {
            type: 'paragraph',
            content: [
              {
                type: 'text',
                text: message
              }
            ]
          }
        ]
      },
      assignee: null,
      issuetype: {
        id: JIRA_ISSUE_TYPE
      },
      project: {
        key: JIRA_PROJECT_KEY
      }
    }
  }

  try {
    await axios.post(`https://${JIRA_HOST}/rest/api/3/issue`, jiraIssueData, {
      auth: {
        username: JIRA_USERNAME,
        password: JIRA_API_TOKEN
      },
      headers: {
        'Content-Type': 'application/json'
      }
    })
    console.log('Jiraチケットを正常に作成しました')
  } catch (err) {
    console.error('Jiraチケットの作成に失敗しました:', JSON.stringify(err))
  }
}

参考文献

公式ドキュメント

最後に

最後まで読んでいただきありがとうございます。
質問やフィードバックがあれば、ぜひコメントしてください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?