1
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?

GitHub Actionsで特定のタイトルのIssueを自動でクローズする

Posted at

はじめに

以下の記事で、日報用のIssueをGitHub Actionsで自動生成するワークフローファイルについてまとめました。


このワークフローに前日のIssueを自動でクローズする処理も追加したため、こちらも備忘録としてまとめます。

GitHub Actionsで特定のタイトルのIssueを自動でクローズする

↑の記事で紹介したワークフローファイルに前日のIssueをクローズするフ処理を追加します。

ファイル全体は次のようになりました。

.github/workflows/daily-report.yml
name: Today I Learned Issue Creator

permissions:
  issues: write
  contents: read

on:
  schedule:
    - cron: '0 22 * * *'
  workflow_dispatch:

jobs:
  create-daily-issue:
    runs-on: ubuntu-latest

    steps:
      - name: リポジトリのチェックアウト
        uses: actions/checkout@v4

      - name: 変数の設定  # 前日の日付を追加
        run: |
          echo "TODAY=$(TZ=Asia/Tokyo date +'%Y-%m-%d')" >> $GITHUB_ENV
          echo "YESTERDAY=$(TZ=Asia/Tokyo date --date='yesterday' +'%Y-%m-%d')" >> $GITHUB_ENV

      - name: 昨日の Issue をクローズ  # フローを追加
        run: |
          ISSUE_TITLE="TIL - ${{ env.YESTERDAY }}"
          ISSUE_NUMBERS=$(gh issue list --state open --search "${ISSUE_TITLE} in:title" --json number --jq '.[].number')

          if [ -n "$ISSUE_NUMBERS" ]; then
            for ISSUE_NUMBER in $ISSUE_NUMBERS; do
              gh issue close $ISSUE_NUMBER --comment "前日の日報をクローズします。"
              echo "Issue #$ISSUE_NUMBER をクローズしました。"
            done
          else
            echo "前日のIssueは存在ないか、既にクローズされています。"
          fi
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: 今日の Issue を作成
        run: |
          cat << 'EOF' | gh issue create --label "Today I Learned" --title "TIL - ${{ env.TODAY }}" --body-file -
          ## 今日やること
          - [ ] 今日やることを書く

          ## 学んだこと
          - 

          ## ネクストアクション
          - 
          EOF
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

このワークフローではTIL - 2024-11-24のようにTIL - 日付の形式でタイトルを付与しています。

そのためecho "YESTERDAY=$(TZ=Asia/Tokyo date --date='yesterday' +'%Y-%m-%d')" >> $GITHUB_ENVで昨日の日付を取得しタイトル検索することで、前日のIssueを抽出できます。

上記のワークフローファイルにより、コメントを投稿した上で自動的にIssueをクローズできるようになりました。

image.png

おわりに

まだ始めて数日ですが、日報を書くのは良い習慣だと感じています。

この調子で続けていきたいです。

参考

1
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
1
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?