リポジトリGETだぜ!(???)
はじめに
この記事はあくあたん工房 GWアドベントカレンダー 2020,2日目の記事です.ぜひ他の記事も見てみて下さい! gw-advent.9wick.com
GitHub便利だけど多機能すぎて把握しきれてないなぁと思ったので勉強も兼ねてまとめてみました.
基本的にリポジトリの管理者が使える便利機能をGitHubのタブの順に紹介していきます. 詳しい使い方とかまでは書けなかったので概要のみ紹介します.
Code
概要
リポジトリの概要を書いたりリンクを貼ったりできます.
Topic
リポジトリにTopicを付けることができます. Topicをつけることで他の人が検索しやすくなったり,GitHubを使って研究している人がデータを集めやすくなったりするのでぜひ付けましょう
Issues
issueには様々なものを紐付けて管理できます.
Assignees
誰がこのissueを担当するかを任命することができます. 任命できるのは自分か後述するCollaborator(協力者)のみです.
Labels
issueの内容が分かりやすくなるようにissueにラベルをつけることができます. デフォルトで9種類のラベルが用意されていて自分で新しく作ることもできます.
Milestone
開発の目標や期日を設定することができます.
issueへの紐付け
コミットメッセージissue番号を含めるとissueと紐付けることができます. issueの画面で関連するコミットが見えるので非常に分かりやすいです.
git commit -m "Update README.md #1"
ちなみにclose issue番号
のようにするとissueを閉じてくれます.
git commit -m "Update README.md close #1"
Pull requests
こちらもIssueと同じくAssignees, Labels, Milestoneなどを設定できます. 追加で設定できるReviewers, Linked issuesについて説明します.
Reviewers
名前の通りレビュー担当者を設定することができます.
Linked issues
issue と pull requestを紐付けることができます. 直接Linked issuesを選択してもいいんですが,先程のコミットメッセージのようにCommentに「Close #1」というふうにするとマージされたときにissueを自動で閉じたりしてくれます.
File changed
そのプルリクでの差分を確認できます.
Actions
テストは自動化する時代がもうそこまできている! っていうかもう来ていますね. 今まで使ったことなかったので今回初挑戦しました. おすすめのworkflowみたいなのがでてきたのでTopicsとかから自動で判別してくれてるのかな? 分からないですが今回はDjangoのリポジトリなのでDjangoのWorkflowを選択. ここで自由にテストを記述することができるっぽいです.
ほとんど使ったことがないため詳しく説明できないのですが,こちらの記事を見れば結構簡単に設定できそうです.
GitHubの新機能「GitHub Actions」で試すCI/CD | さくらのナレッジ
Projects
この機能も初めて使いました. TrelloやPlannerのようなタスク管理機能ですね.
GitHubでは基本的にはIssueなどで作業を管理すると思っていたのですが,Issueなどにはしないコードと関係ないような内容などを管理するのに使えそうです. あとここで作成したタスクをIssueにするなどの使い方もできます.
僕は普段Trelloを利用してるんですが,GitHubならではの機能もありますが,Trelloのほうが機能が充実してて使いやすいなと感じました. まだ機能を把握しきれていないだけかもしれないですが.
Wiki
簡易なWiki機能が利用できます. Markdownなどの形式で簡単な記事を書いていくことができます. チームのWikiがない場合や,プロジェクトに紐づけて管理する場合は便利そうですね.
Security
チームの参加者に見せるためのセキュリティポリシーを書いたり,依存関係のアラートを設定したりできます. セキュリティポリシーは有名なリポジトリを見ても書かれていない場合もあったので必ずしも設定してるわけではなさそうですし,READMEなど他の場所でセキュリティについて書いていたりしそうです.
依存関係のアラートはデフォルトで有効になっています. Dependabotというのが動いていて問題のあるライブラリなどを使用していると自動で更新してくれるプルリクを生成してくれて便利です. 現在サポートしているのは以下の言語です.
Insights
誰がどれくらい貢献しているかや,このリポジトリを訪問した回数やcloneした回数などを確認できます.
Settings
リポジトリに関する設定が色々できます. リポジトリ名の変更や公開・非公開の設定などはここでします. 一部設定を紹介します.
Manage access
Collaboratorはここで招待できます. CollaboratorはReviewerやAssigneeに設定できる他,Wikiを書く権限などを付与できます.
Branch protection rules
Branchesから設定できます. 設定したブランチにマージするプルリクに対し,レビューを必須にするなどの条件を設定できます.
Webhooks
ここを設定することでマージ時に自動でデプロイするなどを設定できるそうです.
その他
GitHub Pages
GitHubにpushしたリポジトリをサイトとして公開できます. 静的なサイトしか公開できませんが,HPとして使うには十分です. あくあたん工房のHPもこの機能で公開しています. 自分でもっているドメインを設定することもできます.
GitHub Pages を使ってみる - GitHub ヘルプ
最後に
改めて今まで全然GitHubを使いこなせてなかったなと思いました. 実際1人で開発する分には必要ないというか,使っていたら余計な労力が掛かりそうな部分もありました.
Actionsはすごく便利だと感じたので,今後は積極的に使っていきたいと思います.
Projects,Wikiなどは複数人で開発するときに有効活用したいです. もしかするとここらをきちんと書いておけば,外部からプロジェクトに参入してもらえるのかもしれません.