個人のタスク管理をGitHub Projectsでやることにした
仕事のタスクに追われて、個人的な興味関心の学習などが最近疎かになっていたので、タスク管理を導入してみた。Trelloなどの様々なツールがあるが、今回GitHubのProjectsでやることにした。導入してみて、意外に使いやすいかもwと思ったので、今回紹介してみることにした。(もっと使いやすい方法などありましたら、是非教えてください。)
タスク管理の流れ
GitHubのProjectも、Trello同様に、かんばん方式でCardをToDo
/ In progress
/ Done
に移動することができる。
タスク管理のフローは、以下のようにした。
- タスクをissueとして登録する
- 今週やるべきことをmilestoneに登録する
- 着手したissueは
ToDo
からIn progress
に移動する - 完了したissueは
In progress
からDone
に移動する(もしくは、issueをcloseする)
2のタスクの振り返りに関しては、週1回行うこととした。
milestoneで各週のタスクをきちんと設定することで、自分を追い込むようにしているw(期限がないと、ついサボってしまったり、やらなかったりするので。)
設定方法
設定に関しては、任意のRepositoryを用意して、以下の作業を実施する。(私は、学習記録用に別途Repositoryを用意した。)
- Projectを作成する
- issueのラベルを作成する
- issueのテンプレートを作成する
- issueに自動的にProjectを設定するために、GitHub Actionsを設定する
- issueを登録する
- milestoneを作成する
- 今週実施するissueにmilestoneを設定する
2~4については、設定しなくても問題ないが、設定したほうが運用が楽なので、設定することをオススメする。issueのテンプレートで、Projectまで指定できればいいが、指定できなかったので、issueにtodo
のラベルが付与された場合にのみ、該当のissueに指定のProjectを自動的に付与するようにした。
この設定に関しては、以下を参考にした。 github.community
1. Projectを作成する
Projectsのタブを選択し、「New project」ボタンから新規にProjectを作成する。
Project template のおすすめは Automated Kanban
である。issue を登録する際に、該当するProjectを指定すると、自動的にToDoカラムに追加してくれたり、issueのclose時に、自動でDoneカラムに移動してくれる。
Templateの詳細は、以下の公式ドキュメントを確認ください。 docs.github.com
2. issueのラベルを作成する
Issuesのタブを選択し、「Labels」ボタンを選択する。ラベルの一覧が表示されるので、右上にある「New label」ボタンからtodo
ラベルを作成する。
3. issueのテンプレートを作成する
Settingsのタブを選択する。Optionsのページの「Features」にあるissuesの「Set up templates」を選択する。
「Add template」から「Custom template」を選択する。
今回は、個人一人だけのタスク管理なので、毎回Assigneesを設定するのが面倒なので、defaultで自分を設定しておく。また、Lablesに関しては、todo
を設定しておく。
設定が確定したら、右上の「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の中に、色々考えたことなどもメモしているので、後々見返した際にもいいかもしれないと思っている。
また、アップデートがあれば、情報を更新していきたい。