よしたく blog

ITエンジニアとして自分が知らなかったことをまとめています

GitHub Actionsを使って、個人タスク用のissueを毎日作成する

GitHub の issue で個人的なタスクを管理する方法を知った。 プログラマではないので普段から GitHub を使うことはないのだけれども、タスクの管理場所に迷っていたのでひとまず手を出してみようと思う。 毎日issueを作成するのも大変で、少しでもハードルを下げることを意識してGitHub Actionsで毎日自動的に作成するようにしてみた。 今回はその実現方法を記しておく。

issueのテンプレートを作成する

まずはissueを作成するためのテンプレートを作成する。 これから始めるのでまずはシンプルなものを作成し、今後必要があればカスタマイズする方向で進める。

今回はworkリポジトリを作成し、配下に.github/ISSUE_TEMPLATE/todolist.mdを作成した。

---
name: TODO リスト
about: 今日終わらせることの終了済み状態を書こう
title: ''
labels: 'tasks' 
assignees: 'yoshitaku-jp'

---

GitHub Actionsを作成する

次に毎日作成したいのでGitHub Actionsを設定する。

引き続きworkリポジトリ配下に.github/workflows/create_todolist.ymlを作成した。

GitHub ActionsはUTCで実行されるため、JSTの5時で実行されるようにした。 また、スケジュール実行の調査中に時刻通りに動いてくれないことも発生したため、手動実行の手段も残しておいた。

他の部分は参考にさせてもらった記事から引用させてもらった。

<2020/01/06 追記>

id:chatii0079 さんにコメントにて、issueのタイトルに挿入される日時が日本時間になっていないご指摘と修正方法をご連絡いただきました。ありがとうございます! 下記ymlは修正済みのものです。 <追記ここまで>

name: create_todolist
on:
  schedule:
    - cron: "5 20 * * *"
  workflow_dispatch:
  
jobs:
  create_todolist:
    name: Create Todolist
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
      
    - name: Get current date
      id: date
      run: echo "::set-output name=date::$(TZ=Asia/Tokyo date +'%Y/%m/%d')"
      
    - name: Create a new issue
      uses: imjohnbo/issue-bot@v2.3
      with:
        title: Today Tasks - ${{ steps.date.outputs.date }}
        pinned: false
        close-previous: true
        template: ".github/ISSUE_TEMPLATE/todolist.md"
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

qiita.com