Tickets are an important part of GitHub for tracking issues and features requests related to projects hosted on GitHub. They allow developers and project managers to organize work, prioritize bugs and requests, and collaborate with others on projects.
Some key things to know about GitHub tickets:
What are tickets?
Tickets on GitHub refer to issues and pull requests. An issue is a request to fix a bug or problem with a project, while a pull request is a request to merge new code or changes into a project. Both are tracked using the same ticketing system on GitHub.
Where are tickets located?
Tickets are located in the “Issues” tab of a GitHub repository. Each project repository can have its own tickets specific to that project.
Who can create tickets?
Any user with read access to a repository can create an issue in that repository’s Issue tab. To create a pull request, you need write access so you can push code changes to the repo.
Why are tickets useful?
Tickets provide an organized way to track bugs, new features, improvements, and other development tasks. Key benefits include:
- Allows developers to prioritize work and know what needs to be fixed or implemented.
- Project managers can use tickets to assign work and track progress.
- Users can see known issues and vote or comment on the ones that matter to them.
- The development team can collaborate and discuss tickets all in one place.
What info is in a ticket?
GitHub tickets contain the following information:
- Title – Short summary of the issue or feature request.
- Description – Detailed explanation of the problem or proposal.
- Labels – Categories to organize and filter tickets.
- Milestone – Release or project phase it’s associated with.
- Assignee – Person responsible for working on the ticket.
- Comments – Discussion about the ticket.
Additional info can be added via custom fields if desired.
Working with GitHub Tickets
Now that we’ve covered the basics, let’s look at how to actually use tickets on GitHub. Here are some common tasks and workflows:
Creating Tickets
To create a new ticket:
- Navigate to the Issues tab of the repository.
- Click the “New issue” button.
- Enter a title and description for your ticket.
- Apply any labels that fit the ticket.
- Click “Submit new issue” when done.
Make sure to provide as much context and detail as possible in the description.
Assigning Tickets
When creating a ticket, you can immediately assign it to someone by selecting their name in the right sidebar.
To change assignment later:
- Navigate to the ticket.
- Click “Assignees” in the right sidebar.
- Select the user to assign the ticket to.
Best practice is to only assign tickets to those actively working on them.
Tracking Progress
Ticket status is displayed in a few ways:
- Labels – Color-coded labels like “bug”, “enhancement”, “pending review” can show status.
- Milestones – Grouping tickets in upcoming milestones provides a progress overview.
- Assignee – A ticket assigned to someone signals it’s in progress.
- Comments – Discussion in the comments provides context on progress.
Labels are very flexible and commonly used for tracking progress.
Closing Tickets
Tickets can be closed in a few ways:
- Comment that the issue is resolved or request is implemented, then close.
- Merge a pull request to automatically close associated ticket.
- Manually change the ticket status to “closed”.
Best practice is to comment when closing a ticket to explain why.
Notifications
To get updates on ticket activity:
- Watch the repository to get notifications for all ticket activity.
- Comment on a ticket to get notifications just for that ticket.
- Enable email updates in your account settings.
GitHub Ticket Templates
One way to streamline ticket creation and ensure issues have necessary details is to use ticket templates.
GitHub supports issue and pull request templates for each repository. To use them:
- Create a .github/ISSUE_TEMPLATE folder in the repository.
- Add markdown or YAML template files (like bug_report.md).
- The template will auto-populate when a user creates an issue.
Templates help users create uniform, detailed tickets.
Some common sections in an issue template:
- Title – Leave blank for user to fill in.
- Description – Prompt for details on bug or proposal.
- Steps to Reproduce – For bug reports, ask for exact steps.
- Expected Behavior – What should have happened?
- Additional Context – Anything else relevant?
Managing GitHub Tickets
There are many ways teams can manage GitHub tickets to stay organized as projects grow. Here are some top tips:
Use Labels Extensively
Labels allow you to categorize, filter, and manage tickets. Some label ideas:
- Type: bug, enhancement, question
- Priority: high, medium, low
- Status: pending, in progress, on hold
- Category: UI, API, docs, etc.
Create customized labels that make sense for each project. Apply labels liberally to divid tickets into logical groups.
Leverage Milestones
Milestones in GitHub map tickets to future releases or project phases. Set milestones like:
- Version 1.2
- January Sprint
- Redesign Project
Assign tickets to milestones to group what will be delivered in upcoming iterations.
Use Project Boards
GitHub project boards provide visual kanban workflows to manage and prioritize tickets. Columns can represent progress:
- To Do
- In Progress
- Under Review
- Done
Drag-and-drop tickets between columns as work progresses.
Integrate with External Tools
GitHub supports integration with useful external tools, like:
- Slack – Get notifications and update tickets right in Slack.
- ZenHub – Get advanced kanban boards and reporting.
- Waffle.io – Tool for agile project management.
Get Organized from the Start
Implement structures like labels, milestones, and templates when starting projects rather than later. Having a consistent, organized approach from the beginning makes ticket management easier as things scale up.
GitHub Tickets vs. External Tools
For issue and project tracking, GitHub tickets provide a lightweight solution out of the box. But full-featured external tools like JIRA offer some additional capabilities:
GitHub Tickets | External Tools (like JIRA) |
---|---|
– Built into GitHub | – More features and customization |
– Simple, flexible | – Advanced functions like time tracking |
– Open workflows | – Structured processes and SLAs |
– Free for public repos | – Paid tool with licensing costs |
– Lightweight | – More complexity |
Factors like team size, workflow needs, and cost may determine if an external tool is warranted over GitHub’s built-in tickets.
Some benefits of JIRA over GitHub issues:
- More robust workflows for different teams like dev, QA, product.
- Time tracking on ticket work.
- Reporting across projects and versions.
- SLAs and due dates for ticket resolution.
- Greater customization of fields, views, permissions.
For simple cases, GitHub may be sufficient. For large teams and enterprises, a tool like JIRA can provide better visibility and project management capabilities.
Conclusion
GitHub tickets provide an approachable yet flexible way to track issues and feature requests on projects. They allow developers and managers to:
- Log bugs and ideas in one place connected to code.
- Discuss and collaborate on tickets.
- Prioritize work using labels, milestones, and assignments.
- Manage sprints and releases by mapping tickets to milestones.
- Get notifications and project visibility as tickets progress.
Starting with a systematic approach is key to using GitHub tickets effectively as projects and teams grow. Built-in capabilities make issue tracking seamless, while integrations and external tools can add functionality for organizations with more advanced needs. With a little planning, GitHub tickets can provide an effective lightweight system for managing software projects and launching great products.