This is for fellows who work for the first time as a group on github. All features mentioned are available for free accounts.
Here is my little TODO list after repo creation.
- create a project board
- plug Github to a dedicated Slack workplace
- set templates for issue and PR
- Protect branches
Official doc here
In one word, Github project board is your project trello. The visual layout is a kanban. Issues and PRs goes to different columns, with the right config, they go to corresponding columns automatically.
A project can be specific to a repo, or not. To create
- a repo project, go to repo page => project tab => create a project
- a multi-repo project, go to personal profile => projects => create a project
Don't rush over during the creation: Github provides project board templates. I've tried Automated kanban with review
, which, on top of having the traditionnal Trello view, automatically moves PR in review to the Review
column. If you did rush over, it is always possible to edit the layout later in the setting
tab, but the automatization on Review
and bug triggers are only possible at creation.
The setting
tab of project allows inviting collaborators, with either writing or reading access.
In a multi-repo project (created from personaly profile), it is possible to link related repos in setting
tab of the project.
Official doc here
Github sends out emails on review requests and comments. Personally I am not a email person when I code in a project. Slack, however, has me locked anyway. It is possible to subscribe a Slack workspace to specified Github repos, but you need to have admin right on the Slack workspace. It is also possible to create a free and restrained Slack workspace before doing exactly what the doc says.
Once Slack and Github are communicating, create a dedicated channel to subscribe to corresponding repo. By default, new issues, PR and merges will trigger notif in the subscribed channel.
Official doc for issue template here
Official doc for PR template here
A well written issue and PR reduces useless exchange, serves as a checklist and makes integration easier. They are also source of futur doc. Github provides possibilities to enforce a template on issues and PRs, with bug report and feature requests predefined. There are many PR templates online. The one adapted to your team if always the best.
Official doc here
Examples of stuffs we can do
- Set default target branch of merge from
master
todelivery
- Enforces n reviews before the button
merge
be ope - Enforces n checks/ branch be update with master to merge
Force pushes are by default forbidden and can be unlocked.