We did have a similar situation and did try out a few options. Let me suggest them and you can choose if they suit your need.
We had Jira for User Story (requirements), Bitbucket for SCM, Jenkins for CI orchestration, to name a few. Am not going into the other components since they may not be relevant from what I understand based on the description.
So, to start with, Jira would hold our (developer) user stories, and the developers start analysis based on that. Once they are clear, they pull the relevant code base from Bitbucket straight into the IDE (Eclipse) using git plugins, complete the work and push code back into Bitbucket. Two things were needed to be followed 'as part of the comment given during commit':
- The Jira ID for the user story for which the change is being made
- The actual comments for the change
E.g., [JIR-BBA]:: Code updated to pull correct URL from database.
Then, in the Jenkins job, we strip down the same into 'JIR-BBA', i.e. Jira ID, and the comment. The Jira ID would then be fed into the Bitbucket plugin which would directly update the corresponding Jira story. And this would also provide a hyperlink in Bitbucket which would directly take you to the job run in Jenkins, thus providing a 2-way communication.
Now the other part in your question, about the status of the build. For this we followed the below steps:
- Created a Python script that would connect to Jira and can be run from the command prompt. This is easily available if you search for those 2 terms. The script would take in 4 parameters: i. Jira URL, ii. Jira credential, iii. Jira ID, iv. Comments
- In Jenkins, we called the python script which would connect to Jira using the above credentials, and update the correct Jira task with the comments the developer provided (from the build job) and the job completion status (from SIT Deploy, SIT Test, UAT Deploy, etc.)
- Now, inside Jira, once you go to the task, you shall find comments being updated for each of the jobs like 'Dev done', 'QA done', etc. depending on how you would want to get it update for each of the Jenkins jobs.
That way, you are maintaining a traceability for each of the requirements so that you know which stage each of them are deployed into or test failed.
Thus you do not need to go into Jenkins each time for the status as the latest is already available in Jira.