S McCrohan
S McCrohan

Reputation: 6693

GitHub API: Identify the branches that contain a given commit

Given the SHA of a specific commit in my repo, I want to identify the branches which contain the commit, using the GitHub API.

I'm aware I can do this locally using git directly in a variety of ways, including

git branch --contains <commit>

but this is for an integrated page that's pulling data from several platforms, so I really need to be using the API.

This question had an accepted answer saying this wasn't possible back in 2013, but I'm hoping something along these lines has been added to the API since.

Is anyone aware of a way to get this information short of querying for a list of ALL commits in the branches of interest and iterating through them to compare?

Upvotes: 13

Views: 2961

Answers (2)

mgarciaisaia
mgarciaisaia

Reputation: 15650

None of the Repository Commit, Git Commit nor Git References endpoints provide that data, so I think the API just doesn't do it.

But the website shows that data, so if you desperately need it you could try scraping the commit's page (https://github.com/:user/:repo/commit/:sha) and getting the commit-branches div.

Finally, Github's Support is great, so you should ask them - worst-case scenario is they tell you it's not implemented, but maybe they put it on the TO-DO list.

Upvotes: 6

xiphe
xiphe

Reputation: 526

Could not find s.th. neither, ended up using unofficial API (I guess):

https://github.com/:user/:repo/branch_commits/:commit

You still need to scrape the response, but it's much shorter and faster. If the response just contains whitespace, there is no branch for that commit.

Upvotes: 8

Related Questions