Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Can't detect cherry-picked vs. local user commits via REST API

Justin Rush September 19, 2017

There is an end case that I am trying to detect in our BitBucket Pre-Receive script. The case is quite simple. A developer creates a bugfix branch off of master and begins doing work. They perform some local commits then push their bugfix branch into BitBucket.

I want to determine if the user is creating a new commit or has cherry-picked an existing commit from another branch (previously committed and pushed to master).

For lack of a better approach I would like to use the REST API to check each commit hash to see if its been previously committed.

My calls to

http://<our bitbucket instance>/rest/api/1.0/users/testuser/repos/testrepo/commits/<commit hash>

should return a 404 for new commits.

When I type a random commit hash I get a 404 via CURL which is expected

When I type a previously committed hash I get valid commit details via CURL which is expected

When I iterate through the list of commits in a Pre-Receive hook all new and old commits are found via the REST call. Does BitBucket internalize all commits before the Pre-Receive hook is executed? Is there any other way to detect this case via a REST call?

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events