GitHubGitHubActions

Issue Metrics Action を使って issues/pull requests/discussions の activity を集計する

はじめに

Issue Metrics Action は GitHub の Open Source Program Office (OSPO) がメンテナンスしているツールです。

Issue Metrics Action 以外にも様々なツールが提供されています。

Open Source Program Office (OSPO)

設定する

今回は、Issue Metrics Action の README.md に記載されている Yml をベースに一部検索の条件を変更して設定しました。

検索の条件は GitHub Docs に記載されているオプションを指定可能です。

今回は、「私がオーナーである」「Public repository である」等の条件を追加しています。
そのままでは利用できませんが、参考までに作成した Yaml を貼っておきます。

name: Monthly issue metrics
on:
  workflow_dispatch:

permissions:
  contents: read

jobs:
  build:
    name: issue metrics
    runs-on: ubuntu-latest
    permissions:
      issues: write
      pull-requests: read
    steps:
      - name: Get dates for last month
        shell: bash
        run: |
          # Calculate the first day of the previous month
          first_day=$(date -d "last month" +%Y-%m-01)
          # Calculate the last day of the previous month
          last_day=$(date -d "$first_day +1 month -1 day" +%Y-%m-%d)
          #Set an environment variable with the date range
          echo "$first_day..$last_day"
          echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV"
      - name: Run issue-metrics tool
        uses: github/issue-metrics@v3
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SEARCH_QUERY: '-reason:"not planned" owner:mziyut is:public created:${{ env.last_month }}'

      - name: Create issue
        uses: peter-evans/create-issue-from-file@v5
        with:
          title: Monthly issue metrics report
          token: ${{ secrets.GITHUB_TOKEN }}
          content-filepath: ./issue_metrics.md

実際に動かしてみた結果はこちらです。

さいごに

今回は記事を作成するために簡単かつわかりやすい条件で Metrics を生成しましたが、 対象を Issue や Pull request だけに絞ったりと活用の幅は広いのではないでしょうか。

Ref