GitHub API: Tag a commit belongs to ( parallel for git describe --tag <sha> )

风格不统一 提交于 2020-01-24 00:21:23

问题


I am experimenting with GitHub API using octokit ruby gem. My goal is to be able to extract the 'tag' that a commit SHA belongs to.

Now I can easily do this on command line using

> git describe 688ae0b --tags

and get output

> 3.0.1-122-g688ae0b

which tells me Tag, commits since tags, and last commit hash.

How do I get same info from GitHub API?

Answers using GitHub API or Octokit client would both do, as I can translate from one other just fine.

I have looked at a bunch of things like, releases, tags, commits etc.. but none of them give me this information that I can get in one line from command line.

I am not looking for 'how to use github api'. I am looking for specific request or set of requests that will let me derive this information.


回答1:


Since there is no easy way to run a query like git describe with the GitHub API, that leaves you with an iterative process involving:

  • listing all tags
  • trying to diff a tag against your specific commit, with the compare 2 commits API

    GET /repos/:owner/:repo/compare/:base...:head
    

(with base being the commit, and head being the tag)

If there are any result, the commit is accessible from the tag.

(I use a similar approach in "Github API: Finding untagged commits")



来源:https://stackoverflow.com/questions/31667564/github-api-tag-a-commit-belongs-to-parallel-for-git-describe-tag-sha

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!