Quick answer: Add the Bugnet SDK to your game, connect your repository under Integrate > GitHub/GitLab with a fine-grained personal access token (Issues: read and write), and switch on Auto-create issues. Every new bug, whether an auto-captured crash or a report a player filed in-game, opens an issue with the description (stack trace and recent logs for crashes), priority and category labels and the Bugnet report number. Repeat crashes stack in Bugnet instead of opening new issues. The free plan includes one repository.
For a lot of indie developers, GitHub Issues is the bug tracker: it is free, it sits next to the code, and closing an issue from a commit message feels great. What it cannot do is hear about bugs. Players will not file issues on your repository, and a crash on someone's laptop never reaches it. This guide wires the two together, so crashes and player reports open issues on their own, with enough context to fix them.
What an auto-created issue looks like
When a new bug arrives in Bugnet and auto-create is on, Bugnet opens an issue in your repository:
Title: NullReferenceException in PlayerInventory.LoadItems
NullReferenceException: Object reference not set to an instance of an object
at PlayerInventory.LoadItems () [0x00012] in SaveManager.cs:84
at SaveManager.RestoreState () in SaveManager.cs:221
…recent log lines…
---
**Priority:** critical
**Category:** crash
**Bugnet Report:** #1247 (project: crashy-quest)
- Description: the report text. For auto-captured crashes that includes the error, the stack trace and recent logs.
- Labels: a category label such as
crashorvisual(none for other), and for critical and high bugs a priority label such aspriority:critical. - Issue type: on GitHub, the issue is given the Bug type where the repository supports issue types.
- Cross-reference: the Bugnet report number and project, so anyone can jump to the screenshot, device details and full log.
Setting it up on GitHub
1. Add Bugnet to the game
Create a free Bugnet project, copy the API key and add the SDK for your engine (Unity, Unreal, Godot, GameMaker, Construct 3, Pygame or web; see the SDK docs). Crashes and errors are captured from the first run. Bind the in-game report widget to a key or menu button so players can report the bugs that do not crash.
2. Create a fine-grained token
- On GitHub, open Settings > Developer settings > Personal access tokens > Fine-grained tokens and choose Generate new token.
- Name it something like Bugnet issues and pick an expiration.
- Under Repository access, choose Only select repositories and select your game's repository.
- Under Repository permissions, set Issues to Read and write. Metadata is read-only and selected automatically.
- Generate the token and copy it.
If the repository belongs to an organisation, an owner may need to approve fine-grained token access. A classic token with the repo scope also works, but grants far more than this needs.
3. Connect and switch on auto-create
In Bugnet, open Integrate > GitHub/GitLab, choose GitHub, enter the repository URL (for example https://github.com/your-studio/your-game), paste the token and choose Connect. Then toggle Auto-create issues on.
Setting it up on GitLab
The same flow works with GitLab.com. Create a personal access token under Preferences > Access Tokens with the api scope, choose GitLab in Bugnet, enter your project URL (for example https://gitlab.com/your-studio/your-game), paste the token and connect. Labels and the issue format match GitHub's.
Keeping the issue list readable
The fear with auto-created issues is a repository buried in noise. Three things prevent it:
- Grouping happens first. A report with the same title as an existing bug stacks onto it as another occurrence and does not open a new issue. A crash hit by 2,000 players is one issue, and the occurrence count lives in Bugnet.
- Labels do the sorting. Filter on
label:crashorlabel:priority:criticalto see what matters today. - You can stay manual. Leave auto-create off and use the bug page to create an issue for a specific bug, or link it to an issue that already exists. The link is shown on the bug in Bugnet either way.
If you would rather auto-file only high-priority bugs into a planning tool, Bugnet's Linear, ClickUp, Asana, Trello and Notion connections have a priority filter; see sending bug reports to Linear for that pattern.
Closing the loop
The GitHub and GitLab integration opens and links issues; it does not change a bug's status in Bugnet when you close the issue. When the fix ships, resolve the bug in Bugnet. That emails the player who reported it (if they left an address), updates your public known-issues page and roadmap, and puts the fix in your next auto-drafted changelog. Bugnet also tracks crash-free sessions per game version, so you can check the next build really fixed it.
Token hygiene
If the token expires or is revoked, Bugnet cannot create issues for new reports until you update it under Integrate > GitHub/GitLab. Put the token's expiry date in your calendar, or use a dedicated bot account's token so a team member leaving does not break the integration.
Plans
The free plan includes GitHub or GitLab for one repository, along with crash capture, the in-game widget and up to 100 bug reports. Studio ($19 a month) connects a repository on every project, private repositories included, with up to 10,000 reports and 20 team members. More detail is in the GitHub and GitLab docs, and Bugnet vs GitHub Issues covers when GitHub Issues alone is enough.
Frequently asked questions
Can game crashes create GitHub issues automatically?
Yes. With the Bugnet SDK capturing crashes and the GitHub integration's Auto-create issues setting on, every new bug opens an issue in your repository with the stack trace, recent logs, priority and category labels and the Bugnet report number.
What permissions does the GitHub token need?
A fine-grained personal access token limited to your game's repository, with Issues set to read and write. Metadata read-only access is added automatically. A classic token with the repo scope also works but grants more access than needed.
Will the same crash open many GitHub issues?
No. Reports with the same title stack onto the existing Bugnet bug as occurrences, and stacked occurrences do not create new issues.
Does closing the GitHub issue resolve the bug in Bugnet?
No. The integration creates and links issues but does not sync status back. Resolve the bug in Bugnet when the fix ships, which also notifies the player and updates your public pages and changelog.
Does it work with GitLab?
Yes. Connect a GitLab.com project with a personal access token that has the api scope. Issues use the same format and labels as on GitHub.
GitHub is a great place to fix bugs and a terrible place to hear about them. Let the game do the reporting.