7839

雑草魂エンジニアブログ

個人のタスク管理をGitHub Projectsでやることにした

仕事のタスクに追われて、個人的な興味関心の学習などが最近疎かになっていたので、タスク管理を導入してみた。Trelloなどの様々なツールがあるが、今回GitHubのProjectsでやることにした。導入してみて、意外に使いやすいかもwと思ったので、今回紹介してみることにした。(もっと使いやすい方法などありましたら、是非教えてください。)

タスク管理の流れ

GitHubのProjectも、Trello同様に、かんばん方式でCardをToDo / In progress / Doneに移動することができる。

タスク管理のフローは、以下のようにした。

  1. タスクをissueとして登録する
  2. 今週やるべきことをmilestoneに登録する
  3. 着手したissueはToDoからIn progressに移動する
  4. 完了したissueはIn progressからDoneに移動する(もしくは、issueをcloseする)

2のタスクの振り返りに関しては、週1回行うこととした。

milestoneで各週のタスクをきちんと設定することで、自分を追い込むようにしているw(期限がないと、ついサボってしまったり、やらなかったりするので。)

設定方法

設定に関しては、任意のRepositoryを用意して、以下の作業を実施する。(私は、学習記録用に別途Repositoryを用意した。)

  1. Projectを作成する
  2. issueのラベルを作成する
  3. issueのテンプレートを作成する
  4. issueに自動的にProjectを設定するために、GitHub Actionsを設定する
  5. issueを登録する
  6. milestoneを作成する
  7. 今週実施するissueにmilestoneを設定する

2~4については、設定しなくても問題ないが、設定したほうが運用が楽なので、設定することをオススメする。issueのテンプレートで、Projectまで指定できればいいが、指定できなかったので、issueにtodoのラベルが付与された場合にのみ、該当のissueに指定のProjectを自動的に付与するようにした。

この設定に関しては、以下を参考にした。 github.community

1. Projectを作成する

Projectsのタブを選択し、「New project」ボタンから新規にProjectを作成する。

f:id:serip39:20211123173523p:plain

Project template のおすすめは Automated Kanban である。issue を登録する際に、該当するProjectを指定すると、自動的にToDoカラムに追加してくれたり、issueのclose時に、自動でDoneカラムに移動してくれる。

Templateの詳細は、以下の公式ドキュメントを確認ください。 docs.github.com

2. issueのラベルを作成する

Issuesのタブを選択し、「Labels」ボタンを選択する。ラベルの一覧が表示されるので、右上にある「New label」ボタンからtodoラベルを作成する。 f:id:serip39:20211123174916p:plain

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

Settingsのタブを選択する。Optionsのページの「Features」にあるissuesの「Set up templates」を選択する。 f:id:serip39:20211123175419p:plain

「Add template」から「Custom template」を選択する。

今回は、個人一人だけのタスク管理なので、毎回Assigneesを設定するのが面倒なので、defaultで自分を設定しておく。また、Lablesに関しては、todoを設定しておく。

f:id:serip39:20211123175928p:plain

設定が確定したら、右上の「Propose changes」ボタンから今回の設定内容をcommitする。

4. GitHub Actionsを設定する

issueに自動的にProjectを設定するために、GitHub Actionsを設定する。Actionsのタブから、「New workflow」で以下を追加する。

name: Auto Assign Issue to Project

on:
  issues:
    types: [labeled]

env:
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
  assign_to_project:
    runs-on: ubuntu-latest
    name: Assign to Project
    steps:
    - name: Assign issues with todo label to Project "ToDo List"
      uses: srggrs/assign-one-project-github-action@1.2.1
      if: contains(github.event.issue.labels.*.name, 'todo')
      with:
        project: 'https://github.com/<repository-name>/projects/<project No.>'

project No.に関しては、作成したProjectのページのURLから確認することができる。

secrets.GITHUB_TOKENについては、以下を参考にしてください。 docs.github.com

5. issueを登録する

Issuesタブの「New issue」ボタンを選択する。先ほど追加したTemplateが表示されるので、選択する。

あとは、追加したいタスク内容を記載して、登録する。

詳細の部分で、「チェックマーク」を使うことで小タスクとして認識されるので便利である。小タスクは、issueにも変換することができる。

6. milestoneを作成する

Issuesタブの「Milestones」ボタンを選択する。「New milestone」で、タイトルと期限を設定する。

期限に関しては、各週(月曜始まり)で設定するようにした。

7. 今週実施するissueにmilestoneを設定する

最後に、登録したissueがProjectのToDoに登録されているので、今週実施するissueにのみ、今週のmilestoneを設定する。

まとめ

まだ試行錯誤している最中ではあるが、GitHubのProjectを利用した個人のタスク管理手法に関して、書いてみた。このRepositoryの中に、色々考えたことなどもメモしているので、後々見返した際にもいいかもしれないと思っている。

また、アップデートがあれば、情報を更新していきたい。