We are a web SaaS company using gitflow and JIRA. As we are 'done' (QA approved) with a feature, we move the story/ticket forward in Jira to a 'done' status. At that point we wait until it gets approved for release which means a developer merges that to develop and will get assigned a fixVersion in JIRA. As bugs are finished, they also get assigned a fixversion.
That means, in theory, all the tickets in a fixversion should match what is on develop and if a release branch is made, it would match perfectly.
However, in practice, we find that of course people forget to add tickets to a fixversion, or the ticket status wasn't moved forward but was merged, etc. So we have tickets that are in a JIRA fixversion that are expected to be released, but are still on a branch, and other tickets that are committed and will get released, but aren't expected to. This forces a developer prepping the release to manually check commit messages to confirm each ticket is in fact represented and there aren't some missing. This is manual and quite time-consuming.
Are there tools or integrations or anything that would solve this problem? Or a process change (of course, I can tell people to do a better job, but manual processes will always fail at some point).
I've started building my own tool using JIRA and Bitbucket (or github) API's to do that match automatically, but would love to find someone who already has solved this problem.