Repositories
Issues that connect to the work
An issue tracker earns its place by how well it links to everything else, not by how many fields it has.
One number sequence
Issues and pull requests share a counter, so a number means one thing in a repository. `#12` resolves whether it is an issue or a pull request, and it resolves in commit messages, in other issues, and in review comments.
The number is allocated atomically, so two things created at the same moment cannot be handed the same one.
References parsed the way people write them
`#12`, `owner/repo#12`, `@handle`, and bare commit SHAs are all recognised, and each one is deliberately conservative about what it will not touch.
- Nothing inside a code fence or inline code is linked
- A URL fragment is not mistaken for an issue reference
- An email address is not mistaken for a mention
Closing keywords that cannot misfire
`fixes #12` in a commit message closes issue 12. That runs on push and on merge, which means a false positive closes somebody's work. So the keyword has to be its own word, the reference has to follow it directly, and documentation showing how to write a closing keyword does not close anything.
Labels, milestones, and a lock that holds
Every repository starts with a usable label vocabulary rather than an empty list, and label colours pick readable text automatically. Locking a conversation holds against everyone who is not maintaining the repository.
A tracker that stays out of the way
The parsing rules are tested against the ways text lies.