如何通过Github API创建组织名称而不是手动创建?

时间:2015-02-08 01:05:05

标签: git curl github github-api

我正在尝试使用github api来创建组织和存储库,而不是手动创建它们。我在看这个site,讨论如何在特定组织下创建存储库。

我的github实例网址就像这样 - https://github.host.com

我希望我的存储库在创建之后就像这样 -

https://github.host.com/Mobile/CustomerSystem

此处Mobile是组织名称,CustomerSystem是存储库名称。在我的情况下,我之前没有创建Mobile组织名称,因为我想通过Github API以及存储库创建它。

所以我在curl url下面执行,认为它会在它们下面创建组织名称和存储库,但每次我得到404 Not Found -

curl -i -u david -d '{ "name": "CustomerSystem", "auto_init": true, "private": true, "gitignore_template": "nanoc" }' https://github.host.com/api/v3/orgs/Mobile/repos

以下是我得到的结果 -

HTTP/1.1 404 Not Found
Server: GitHub.com
Date: Sat, 07 Feb 2015 20:43:32 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 102
Status: 404 Not Found
X-GitHub-Media-Type: github.v3
X-XSS-Protection: 1; mode=block
X-Frame-Options: deny
Content-Security-Policy: default-src 'none'
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
Access-Control-Allow-Origin: *
X-GitHub-Request-Id: fv4af52e-617c-4ga1-br2f-5cb51b1df3bb
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Content-Type-Options: nosniff

{
  "message": "Not Found",
  "documentation_url": "https://developer.github.com/enterprise/2.0/v3"
}

我在做什么事吗?

在我看来,如果已经创建了组织名称,那么我上面的CURL调用工作正常,并且存储库被创建得很好而没有任何问题。但如果组织名称不存在,那么它会给我404错误消息。

有没有办法通过github API创建组织名称?在某些情况下,我之前可能已经创建了组织名称,因此我将在它们下面创建新的存储库,但在某些情况下,我之前可能没有创建组织名称,所以我需要通过Github API创建组织名称。

4 个答案:

答案 0 :(得分:4)

  

有没有办法通过github API创建组织名称?

目前无法通过GitHub API创建组织或用户帐户。

答案 1 :(得分:1)

您可以查看 go-gihub 等包装器如何向manage an organization提出建议,反映Organization API

您可以列出,获取或编辑组织,但显然不是创建组织。

答案 2 :(得分:1)

GitHub并未为此提供公共API。

但是请说,如果要自动化组织创建过程,则可以在此页面上检查网络活动(在浏览器中按F12键并导航到“网络”标签)

https://github.com/account/organizations/new

找出用于检查名称可用性和创建组织的专用api,然后将请求导出为curl命令,将其放入shell脚本中并参数化组织名称。

我不会在这里详细介绍或发布脚本,因为该脚本编写起来相当琐碎,并且会泄漏我的浏览器cookie和会话信息

顺便说一句,如果您使用的是GitHub Enterprise,则在此处记录

https://developer.github.com/enterprise/2.16/v3/enterprise-admin/orgs/ https://github.com/aws-quickstart/quickstart-github-enterprise/blob/master/scripts/adminuser_org_repo.sh

更新:

警告!!! 注意不要创建太多的组织。目前,我已经用我的个人帐户创建了500多个组织。现在,每次我登录并登录帐户时都访问github上的页面时,加载或根本不加载都需要几秒钟,显示出像https://github.com/503.html这样的独角兽页面。如果我注销帐户,页面将再次快速加载。我已经放弃使用github Web ui了。

答案 3 :(得分:0)

你可以试试这样的事情

curl --include -u victor-raul-hernandez-contreras:your-personal-access-token-here -X POST https://github.hpe.com/api/v3/admin/organizations --data '{"login":"loko200","profile_name":"lokosoft, inc.", "admin":"victor-raul-hernandez-contreras"}'

它在github企业中为我工作。