Is there a way via API to pull the commit history for a particular branch or tag?

Chris Forman Orth January 8, 2016

I am trying to validate that fixes from one branch or release are merged forward. We tend to maintain a lot of version simultaneously. Online I found that in a git repo I can do something like 

git rev-list branch1 | grep $(git rev-parse branch2)

But we don't want to have to clone every repo either (we have a lot of those too).

Any ideas?

Thank you.

2 answers

2 votes
TimP
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 10, 2016

Hi Chris,

There is a REST API that allows you to retrieve the commits for a particular branch:

/rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/commits?until={branch_name}

You can also limit how many commits to return by providing a since parameter specifying the earliest commit/ref to return. The REST API is paged for performance and scalability reasons, so you will have to make quite a few calls to retrieve the full commit history. It may be more efficient to write an add-on that works directly against the Java API instead. If that sounds like a reasonable option, I recommend starting with our developer documentation.

cheers,

Tim

0 votes
Chris Forman Orth January 11, 2016

Thank you so much for the pointer. I'd read about and played with the commits API but somehow missed that "until" took a ref as well as a SHA. I'd dismissed "since" and "until" as time-based and not that useful to my problem, but being able to pass a ref helps a lot more. I'm hoping that we'll mostly be looking at nearby branches and won't need to pull that much data since we at most need to go back to a common ancestor, but I'll keep the plugin approach in mind. 

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events