It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

How to find a merge-commit for the pull-request via Stash REST API?

Ivan Lezhankin Oct 06, 2013

I have the merged pull-request id, and I want to get the hash of it's merge-commit.

How can I do it?

1 answer

1 accepted

0 votes
Answer accepted
Charles O'Farrell Oct 06, 2013

Hi Ivan,

I hope I don't lead you astray but I'm not actually sure if that's possible from REST. We certainly have to the from/to refs in the core REST API, but that's not quite what you're after?

This might sound a little strange but you _could_ just use Git's smart HTTP ref advertisement instead. This is what Git uses as part of fetch/clone. You can see what I mean by running the following:

GIT_CURL_VERBOSE=1 git ls-remote origin

The environment variable is just so you can see the URL, which looks like:

curl "http://host:port/scm/PROJECT/repo.git/info/refs?service=git-upload-pack"

At that point you could just grep for the hash against refs/pull-requests/$PR/merge-clean.*

Does that help?

Charles

* Just FYI in an upcoming version of Stash we're planning on cleaning up some of these refs and merge-clean will most likely become merge. Just so you know.

Ivan Lezhankin Oct 06, 2013

GIT_CURL_VERBOSE=1 doesn't work for me, but your point is clear.

Charles O'Farrell Oct 06, 2013

Hi Ivan,

As one of my colleagues just pointed out, if you're looking for the commit that was actually merged then my previous advice is going to be wrong. merge-clean is an internal ref that will always differ from the final merge commit.

Apologies for the confusion. I can't think of anything that will return the commit hash you're looking for. :(

Charles

Suggest an answer

Log in or Sign up to answer
This widget could not be displayed.
This widget could not be displayed.
Community showcase
Published in Bitbucket Pipelines

Building a Bitbucket Pipe as a casual coder

...ipe.sh :  #!/bin/bash source "$(dirname "$0")/common.sh" enable_debug extra_args="" if [[ "${DEBUG}" == "true" ]]; then extra_args="--verbose" fi # mandatory variables R...

3,329 views 3 22
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you