标签: github-api

RESTful API 设计:CRUD 轻量级连接的最佳方式?

(请原谅问题标题;很难总结这个问题。)

在 Facebook 上,你的like东西。在推特上,你们这些follow人。在 GitHub 上,您还可以看到follow人员、star存储库和要点。

所有这些情况都非常相似:这些连接是轻量级的,本身并不是真正的“资源”。例如,这三个 API 都没有公开此类连接的公共 ID。

这就提出了一个问题:公开用于创建/查询/删除这些连接的 API 的“最佳”(就 REST 而言)方法是什么?


Facebook 的做法 [ 1 ]:

  • GET /:id/likes查询某个对象的喜欢程度(更准确地说,喜欢该对象的用户)

  • POST /:id/likes喜欢某事(代表经过授权的用户;不需要请求正文)

  • DELETE /:id/likes不喜欢某些东西(代表经过授权的用户)

查询和创建是有意义的,但DELETE有点“非 RESTful”,因为您实际上并没有删除/:id/likes资源(喜欢该对象的用户数组)。

这种差异在另一种情况下也表现出来[ 2 ]:

  • GET /me/likes/:id询问你是否喜欢某事

因此,查询连接是查询与创建或删除它完全不同的资源。


GitHub倾向于/me/likes/:id以下用户和明星存储库的风格[ 3 ]:

(请注意,GitHub/user代表经过身份验证的用户,如 Facebook 的/me。)

  • GET /user/starred/:owner/:repo用于查询您是否有一个已加星标的存储库(返回 204 或 404,两者都没有正文)

  • PUT /user/starred/:owner/:repo用于为回购加注星标(请求中不需要正文)

  • DELETE /user/starred/:owner/:repo用于取消仓库星标

这更加一致,但不幸的是,这将个体“明星”与群体分开: …

api rest web-services github-api facebook-graph-api

6
推荐指数
1
解决办法
1601
查看次数

如何获取GitHub组织中的所有用户?

我尝试在 GitHub 中获取我的组织中的所有用户。我可以获得用户,但我在分页方面遇到问题 - 我不知道需要浏览多少页。

curl -i -s -u "user:pass" 'https://api.github.com/orgs/:org/members?page=1&per_page=100'
Run Code Online (Sandbox Code Playgroud)

当然,我可以迭代所有页面,直到我的请求不会返回“0”,但我认为这不是一个好主意)

也许 GitHub 有标准方法来获取组织中的所有用户?

github-api

6
推荐指数
1
解决办法
1万
查看次数

如何通过 GitHub API 将参与者添加到问题?

我正在寻找一种使用 GitHub API 将参与者列表添加到 GitHub 问题的方法。

我试过了:

  1. 通过 GitHub API 分配问题。
    • 作品,添加参与者,但可能过于直接,并且有 10 个受让人的限制。
  2. 在描述和评论中@提及用户。
    • 不添加参与者

我的最终目标是创建一个代表部署的问题,并@提及每个部署了 PR 的人,以便他们知道帮助测试。我希望每个人都能在创建问题时收到有关该问题的 GitHub 通知。将他们添加到参与者列表中似乎应该是实现这一目标的最佳方式。

github github-api

6
推荐指数
0
解决办法
816
查看次数

如何使用 GitHub API 一次检索多个用户?

我能够获取单个用户或自时间戳创建的所有用户,或者与 GitHub API 有一些搜索匹配的地方。

https://developer.github.com/v3/users/#get-a-single-user https://developer.github.com/v3/users/#get-all-users https://developer.github。 com/v3/search/#search-users

我一直无法弄清楚是否有办法发送诸如登录列表之类的内容并立即取回所有这些用户。

我的用例是我从组织中拉回成员列表。这为我提供了足够的数据,我可以遍历每个用户并以这种方式获取我需要的详细用户数据,但如果没有必要,我宁愿不使用一堆额外的请求来敲打 GitHub 的 API。

github github-api

6
推荐指数
1
解决办法
556
查看次数

将多个游标作为变量传递给 GitHub GraphQL API?

我正在根据组织 ID 列表查找组织成员。每个组织都有一个分页的成员列表,带有endCursor. 由于每个endCursor都不同,并且每个组织都有不同数量的成员(和不同数量的页面),我如何将不同的游标作为变量传回?如果是这样,每个游标如何与上一个查询中的组织 ID 相关联?

query($orgIds:[ID!]!, $page_cursor:String) { // not sure how to pass in the cursor when different length lists are returned
    nodes(ids:$orgIds) {
        ... on Organization {
            id
            members(first: 100, after: $page_cursor) {
            edges {
                node {
                    id
                }
            }
            pageInfo {
                endCursor
                hasNextPage
            }
        }    
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了http://graphql.org/learn/pagination/,但我没有看到任何与为同一个边列表传递多个游标相关的内容。

github-api graphql

6
推荐指数
1
解决办法
497
查看次数

有效的 GitHub api v4 查询不断返回错误“解析 JSON 的问题”

以下是对 GitHub api v4 的 cURL 查询示例,该查询不断返回错误:

curl -H "Authorization: bearer token" -X POST -d " \
 { \
   \"query\": \"query { repositoryOwner(login: \"brianzelip\") { id } }\" \
 } \
" https:\/\/api.github.com\/graphql
Run Code Online (Sandbox Code Playgroud)

返回的错误:

{
  "message": "Problems parsing JSON",
  "documentation_url": "https://developer.github.com/v3"
}
Run Code Online (Sandbox Code Playgroud)

为什么我一直收到这个错误?


根据关于形成查询调用的GH api v4 文档,上述 cURL 命令是有效的。以下是文档所说的支持我关于上述 cURL 命令有效的说法:

{
  "message": "Problems parsing JSON",
  "documentation_url": "https://developer.github.com/v3"
}
Run Code Online (Sandbox Code Playgroud)

注意:“query”的字符串值必须转义换行符,否则架构将无法正确解析它。对于 POST 正文,使用外部双引号和转义的内部双引号。

当我在GitHub GraphQL API Explorer 中输入上述查询时,我得到了预期的结果。对于 GH GraphQL Explorer,上述 cURL 命令的格式如下所示:

{
  repositoryOwner(login: …
Run Code Online (Sandbox Code Playgroud)

curl github-api graphql github-graphql

6
推荐指数
1
解决办法
3754
查看次数

以编程方式为存储库启用 Github Pages

有没有办法通过api启用Github页面?不是请求页面构建,我的意思是最初启用该功能并指向一个分支。

javascript github github-api github-pages

6
推荐指数
1
解决办法
287
查看次数

从 Github 企业 API 获取日期范围内的问题

我想获取使用 Github 企业 api 在特定日期范围内创建的问题列表。我想要做的相当于在问题页面上进行搜索,如下图所示:

问题搜索

我尝试了以下命令:curl -H "Authorization: token myToken" "https://github.mydomain.com/api/v3/repos/owner/repo/issues?state=all&since=2015-09-01" > issues.json但这并没有给我我需要的东西,因为since根据Api 文档的参数被描述为:

仅返回在此时间或之后更新的问题。这是 ISO 8601 格式的时间戳:YYYY-MM-DDTHH:MM:SSZ

提前致谢!

github-api github-enterprise

6
推荐指数
1
解决办法
2059
查看次数

来自单页 React 应用程序的 OAuth GitHub 身份验证

我正在尝试将我的单页 React 应用程序与 GitHub 集成。

我成功运行了第一阶段的身份验证,即code从https://github.com/login/oauth/authorize接收重定向

问题是第二部分,即 POST 到https://github.com/login/oauth/access_token

我无法通过 JavaScript 或 JQuery 从我的网页本身执行 POST 或 GET。使用$.ajax或$.post全部以 error 结束Access-Control-Allow-Origin。

该应用程序是create-react-app使用npm start.

如何避免Access-Control-Allow-Origin我的场景中的错误?有没有办法以其他方式为 GitHub API 获取 GitHub 令牌?

我试过用 POST ,它没有抱怨Access-Control-Allow-Origin. 事实上,在.submit()我收到预期的响应之后(根据https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow)但它作为一个文件出现,Chrome立即下载。

github-api reactjs

6
推荐指数
0
解决办法
887
查看次数

如何搜索具有特定文件名的文件的 Github 存储库?

例如:我想找到Dockerfile其存储库中的所有 CRM 。

我检查了github help,但没有找到任何合适的搜索限定符。有只是filename:and in:file:,但它不是我想要的,我需要类似has_file:或in:filename

任何解决方法?

github github-api

6
推荐指数
1
解决办法
478
查看次数