Thanks to everyone for voting and commenting on this suggestion. We have new features to verify the commits which consequently help in push traceability:
- Bitbucket Server 5.0 included Committer Verification hook which verifies that the committer for each new new commit being pushed matches the credentials of the person doing the push.
- Bitbucket Server 5.1 included Verify Commit Signature hook to require GPG-signed commits in order to push. When it is is enabled, each new commit or tag must be GPG-signed with a valid key, and that key must be associated with an active user account on the server. Otherwise the push is rejected.
Enabling both these hooks, you can assure that all the commits pushed to Bitbucket are valid and secure.
Also, with the above hooks, we satisfy the original request but, we are keeping the issue open as many of you are asking for push traceability for auditing/compliance which is currently under consideration. However, we're not able to provide a timeline for when it will be released. We're currently looking into what solution or solutions would best satisfy the needs we've heard from you. Learn more about our process here.
Product Manager - Bitbucket Server
Original request description
When performing a push, the author that is displayed by Stash is just taken from the author in the local git configuration, so essentially another developer can commit code against another developer's name and push it to the server to make it appear like that developer committed the code change.
In other words, when performing a push, stash doesn't ensure that the user performing the push is the same user as the GIT comitter. This allowed an authenticated user to push updates that appear to come from a different user by configuring their local GIT client with a different username/email address. I can see we may be able to work around this by implementing a GIT hookthat checks the REMOTE_USER variable exposed by Stash.
Are there plans to implement this functionality directly into the product to improve security?
We need to have complete traceability on the push to the shared repository, is there a way of achieving this with Stash