什么是Travis-CI API中讨论的“存储库ID”?

时间:2014-07-07 18:45:34

标签: git github travis-ci

要使用描述here的TravisCI API获取构建列表,它表示您需要将存储库ID放在请求地址中。

我想知道,这个ID是什么,我在哪里可以找到它?它是否与存储库slug不同,即username/reponame?

3 个答案:

答案 0 :(得分:3)

存储库ID是Repov密钥,显示在Travis CI API响应中。

这可以通过以下方式检索:

$ curl -L http://api.travis-ci.org/repos/user_name/repo_name

或者如果您安装了travis命令,请尝试:

$ travis show -r user_name/repo_name

以下是Ruby中的相应代码:

require 'travis'
repos = Travis::Repository.find_all(owner_name: 'user_name')
repos.each do |repo|
  puts repo.slug
end

在上面的示例中,将user_namerepo_name更改为正确的值。

答案 1 :(得分:1)

通过TravisCI API读取,存储库ID与slug不同。它是Travis分配给存储库的编号,与Github存储库ID无关。

例如:curl https://api.travis-ci.org/repos/schwern/URI-Find将返回...

{ "id":527875, "slug":"schwern/URI-Find", "description":"Perl module to find URIs in arbitrary text", "public_key":"...", "last_build_id":29287626, "last_build_number":"10", "last_build_status":0, "last_build_result":0, "last_build_duration":28, "last_build_language":null, "last_build_started_at":"2014-07-07T03:43:28Z", "last_build_finished_at":"2014-07-07T03:44:03Z" }

您也可以使用id访问存储库。 curl https://api.travis-ci.org/repos/527875将返回相同的内容。

正如您在https://api.github.com/repos/schwern/URI-Find中看到的那样,Travis存储库ID与Github存储库ID不同。

我认为使用id与slug的优点是slug可能会改变,可以重命名存储库并转移所有权,但id可能不会。

答案 2 :(得分:1)

您可以从您正在查看的存储库的有效负载中获取存储库ID,请参阅http://docs.travis-ci.com/api/#repositories。此端点的有效内容中的id是您可以用于/builds端点的ID。

也就是说,您可以使用slug或id来获取该存储库的构建,因此这两个产生相同的结果:https://api.travis-ci.org/builds?repository_id=82https://api.travis-ci.org/repos/sinatra/sinatra/builds