"Ticket" => GitHub issue
"status" => current column on GitHub project. This includes "is the ticket ready for me", "am I done with a ticket", "is the ticket ready for QA", "did QA reject the ticket", etc. -- each of these is a column in the project board.
"who is working on it" => assignee(s)
The fact that there are a lot of ways to track these issues well was exactly my point.
You need some way of tracking these things. I've used JIRA and it got the job done. I've also used other tools which worked as well. What doesn't scale is not tracking issues.
It doesn't support custom attributes, workflows, approval hierarchies, statuses etc.
There is a reason ZenHub had to be invented after all.
Workflows: set up one or more project boards and PR merge restrictions
Approval hierarchies: where the above is inadequate, use CODEOWNERS files.
Statuses: use project columns and labels
Agree with most of what you say aside from this bit. I find most similar systems are in the same ballpark in terms of being able to track what I care about.
Mainly:
- Is the ticket ready for me to work on? (Do I have the designs I need to work it?)
- Who is working on a given ticket right now?
- Am I done with a ticket?
- Is the ticket ready for QA?
- Did QA reject the ticket and I need to fix something on the ticket?
Pivotal does these things fairly well. There is also the obligatory pointing system, but the above is the bulk of what I care about. Pivotal also lets me create queries so I can zero in on the work which I'm doing as opposed to the entire project.