我想使用Groovy,HttpBuilder和REST API来访问我们公司的onsidte GitHub设备。 GitHub开发人员的网站https://developer.github.com/v3/显示了以下网址:https://api.github.com。因此,如果我公司的GitHub URL是:http://github.mycompany.com,那么我的REST API端点URL是什么?例如如果我想列出所有用户,那么正确的URL是什么?
当我访问此网址时:https://github.mycompany.com/api/v3,它会给我一个错误:
github.mycompany.com拒绝连接。 ERR_CONNECTION_REFUSED
答案 0 :(得分:7)
根据“API Enterprise 2.5”:
所有API端点(Management Console API端点除外)都以以下网址为前缀:
http(s)://hostname/api/v3/
但您需要进行身份验证:
验证
您的Enterprise安装的API端点接受the same authentication methods作为GitHub.com API。具体来说,您可以使用 OAuth tokens 进行身份验证(可以使用Authorizations API) 或basic authentication创建。
每个Enterprise API端点只能由GitHub Enterprise网站管理员访问,但Management Console API除外,该Management Console password API只能通过{{3}}访问。
答案 1 :(得分:3)
TLTR;这些是端点
+----+------------------------------------------+--------------------------------+
| | Enterprise | GitHub |
+----+------------------------------------------+--------------------------------+
| v3 | https://[YOUR_HOST]/api/v3 | https://api.github.com |
| v4 | https://[YOUR_HOST]/api/graphql | https://api.github.com/graphql |
+----+------------------------------------------+--------------------------------+
这里有一些示例,以防您想要尝试它们。您需要创建ACCESS_TOKEN
<强>企业强>
curl -H "Authorization: bearer [ACCESS_TOKEN]" https://[YOUR_HOST]/api/v3/organizations
curl -H "authorization: bearer [ACCESS_TOKEN]" https://[YOUR_HOST]/api/graphql -d "{\"query\": \"query { viewer { login } }\"}"
<强> GitHub的强>
curl -H "Authorization: bearer [ACCESS_TOKEN]" https://api.github.com/organizations
curl -H "authorization: bearer [ACCESS_TOKEN]" https://api.github.com/graphql -d "{\"query\": \"query { viewer { login } }\"}"
答案 2 :(得分:2)
如果您不使用https,则为“http://github.mycompany.com/api/v3/”。
答案 3 :(得分:2)
您收到该邮件是因为该请求未经过身份验证。
首先,您必须弄清楚您的服务器接受哪种身份验证,然后将其合并到请求的标头或(查询字符串)中。
例如,这就是我获取可以访问的组织的列表(使用标题方法)的方式:
`url -k -H "Authorization: token xxxxxx...xxx" \ https://git.acme.com/api/v3/organizations`
请注意,xxxxx ... xxx是我创建的个人访问令牌的占位符,我使用对我的回购的只读访问权限。文档将此称为OAUTH_TOKEN。您可以选择将令牌作为查询字符串插入。在不的情况下,您必须输入用户名,因为服务器会从令牌中找出该用户名。