title | tags | description |
---|---|---|
GitHub for project management |
Project Management, GitHub, Talk |
View the slide with "Slide Mode". |
Julian Pistorius
- Full-stack developer
- University of Arizona, lots of industry before that
- Ham (amateur radio) - KG7SIL
- Online Git repositories
- Including free private repositories
Note:
- For keeping track of changes to source code
- Organizations
- Teams
- Projects
- Issues
- Milestones
- Pull requests
- Wikis
- Discussions
- Pages
- And still more...
"Organization accounts allow your team to plan, build, review, and ship software — all while tracking bugs and discussing ideas."
You can create an organization for your lab and have all of your projects and repositories associated with this organization.
- Go to your Github profile
- Click the
+
next to your avatar. - Select New Organization and follow the prompts
For example, the Cyber Carpentry organization.
- Roles and permissions
- Sub-teams
- Flexible repository access
- Team mentions (e.g.
@rodent-lab/mouse-wranglers
)
To create a new Team:
Inside your organiztion, click the Teams tab and then click the big green New team
button.
For example, the Cyber Carpentry Participants Team.
- Track todos, bugs, feature requests, etc.
- Apply labels
- Issue templates
- Every issue is in a particular state
Issues are associated with a repository. Let's look them on this repository:
Github for Project Management Example
Go to the repository and click the Issues tab.
You can create a new issue by clicking the big green New Issue
button.
With each issue you can:
- Assign a person who will work on the issue
- Assign a label that categorizes the issue. You can use the built-in labels and create your own to suit your needs.
- Assign to a project. We will see more about projects later.
- Close the issue with the reason it was closed (e.g. it was fixd and how, could not reproduce, etc.)
When you create a commit (commit changes to your repository), you can associate a commit with an issue by putting Issue #X
, e.g. Issue #1
, at the beginning of your commit message. GitHub will automatically link that commit to the issue and show it in the issue details. You can see an example here.
Example commit message:
Issue #1: added section on using GitHub issues
- Kanban boards (like Trello)
- Organization, team, user, or repository level
- Sort tasks
- Plan your project
- Automate your workflow
- Track progress
- Share status
Note:
- Help you organize and prioritize your work. You can create project boards for specific feature work, comprehensive roadmaps, or even release checklists.
- You can link multiple repositories to a project
Projects can be associated with your personal GitHub profile or an organization. Let's look at Cyber Carpentry.
On the Cyber Carpentry organization page, click the Projects tab. You will see a list of projects we have created.
Create a new project by clicking the big gree New Project
button.
You can also get to your personal projects by clicking on your avatar and selecting Your projects
.
Note:
Let's start a new project. I am going to click the big green New project
button.
Notice the Project template
options.
You can setup a project with automations.
Automations mean that changes to the state of an Issue will automatically move the issue in your Kanban board.
Look at the Project Kanban. Notice the issue is In progress
.
If I close the issue it will be moved to the Done
column.
- Collections of Issues and Pull Requests for a particular release or project
- Can have a due date
You can create new Milestones on the Issue details page in the Milstone widget.
- A simple way to let others contribute content
- Documentation, examples, support, etc.
- Can restrict editing to specific teams
Note:
- Any GitHub user can create and edit pages
- Wikis are per repository only
- Help you collaborate on code with other people
- Pull request templates
Note:
- Code review is an effective way to find bugs.
- We recommend to review code after all mechanical checks have passed.
- Use code review to share knowledge within the team.
Pull requests are requests to pull in changes from repository to another.
Pull requests can be associated with an issues like commits.
You can only make pull requests from repositories that were forked.
I will show an example.
- Threads of conversation around topics
- Like Slack but slower, and you don't have to pay to read older conversations
Discussions are don with teams. We saw Teams earlier. Let's go back to the Cyber Carpentry Teams.
Notice the Project Management Workshop
team. Click on it and you will see the discussions. You can add a topic or comment on an existing one.
Only the people on the team will be able to start topics.
- Host your personal, organization, or project website from a GitHub repository
- your-org.github.io or your own domain
- Contributions
- Visitors
- Clones
- New activity on an issue, discussion, etc.
- Configurable
Note:
- When something happens that needs your attention
You can subscribe to notifications on issues. When the status changes you will get a notification. You are automatically subscribed to issue notifications if you started the issue, were assigned to the issue, or commented on the issue. Otherwise, if you want to keep up with the issue, click the Notifications
button.
- Automate things (e.g. continuous integration)
- Link to other systems (JIRA, Slack, Polls)
- See GitHub Marketplace
Note:
- 2FA
- Audit logs
- Security alerts
Note:
- Two-factor authentication adds an additional layer of security to your account by requiring more than just a password to log in.
- Audit logs: Who did what to organization settings?
- Security alerts: Known vulnerabilities in code
Don't forget GitLab
- Very similar to GitHub
- Free and FREE (Open source)
- Self-hostable (if you want)
- You can go a long way with just GitHub or GitLab
- Try it out - you don't have to adopt everything at once
You can find me on:
- GitHub: JulianPistorius
- UA Data Science Institute: https://datascience.arizona.edu/person/julian-pistorius