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

はじめに

『達人プログラマー』を読み、その中で言及されていた「エンジニアリング日誌を書く」習慣を確立しようと考えました。


以下のブログを見て良さそうだったので、自分もGitHubのIssueを活用し作成を自動化することにしました。


そのためのGitHub Actionsのワークフローファイルを備忘録としてまとめます。

GitHub ActionsのワークフローでIssueを自動作成する

以下のワークフローファイルを使えばIssueを自動生成できます。

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

permissions:
  issues: write  # Issue作成のみの権限を付与
  contents: read # リポジトリの読み取り権限

on:
  schedule:
    - cron: '0 22 * * *'  # 毎日22:00 UTCに実行(日本時間翌朝7:00 JST)
  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

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

このワークフローファイルでは--label "Today I Learned"の部分でラベルを付与していますが、このToday I Learnedというラベルは事前にGitHub上で作成が必要です(もちろんなんでもいいし、やらなくても良い)

リポジトリのmainブランチにpushすると翌朝7時に以下のIssueが作成されます。

image.png


TIL(= Today I Learned)というフレーズを知ったため、これを採用しています(もちろんなんでもいい)

テンプレートもなんでもいいのですが、単なるTODOリストではなく毎日のフィードバックサイクルを確立したいため、「学んだこと」「ネクストアクション」など、次の行動へ落とし込むための項目を設けています。

マークダウンが狙い通りに反映されずハマった

マークダウン形式のテンプレートが正しく反映されず手こずりました。

image.png


試行錯誤したのですが、最終的に--body-fileを使ったこの形に落ち着きました。

自分の知識不足なだけで本来は難しいポイントではなさそうに思います。

また、テンプレートの- [ ] 今日やることを書くの部分で今日やることを書くと文言を初期設定しているのは、これを書かないとチェックボックスとしてではなく- [ ]という文字列として表示されてしまうからです↓

image.png

おわりに

せっかく作ったからには習慣化してフィードバックサイクルを確立したいと思います。

今後は、前日のIssueを自動的にクローズするフローも追加する予定です。

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?