问题标签 [github-api-v4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
494 浏览

github - 从差异中提取请求评论评论错误的位置?

我有一个监听所有代码审查的 webhook,然后我获取此 PR 审查的评论,以便获得评论在差异中的位置。我正在使用 GitHub REST API,但我遇到的问题与 GraphQL API 相同。

所以工作流程是:

  1. 从 webhook 中获取评论 ID
  2. 获取该评论的评论列表
  3. 对于每条评论,获取 diff hunk 和找到编辑行的位置

所有这些在 99% 的时间里都能正常工作。有时我null在这个位置上,我忽略了这些评论。

但这一次,我遇到了另一个奇怪的问题。通常,位置是指 diff 中行的索引。

例如,在:

如果位置为 3,则编辑的行为+# sedy-test

问题是对于某些评论,我得到的位置不能在差异内。例如,请参阅此 PR

当我尝试通过以下请求获取评论的评论位置时:

响应如下:

位置是 71,但差异不包含超过 40 行。

如果是 GitHub API,或者我不理解 position 字段的意义,那么这是一个错误吗?

注意:我在 GitHub 论坛上发布了同样的问题

0 投票
0 回答
35 浏览

javascript - 通过 Github API v4 检索引用问题的 PR

我有一个 graphql 查询,它使我能够检索存储库的所有问题,并按某些条件进行过滤。现在在我的团队中,我们有一个代码存储库和一个问题存储库,因此外部人员可以提交问题,而无需访问我们的内部讨论。

当我们进行 PR 时,我们会在问题 repo 中引用原始问题。

我想要做的是在第二个 repo 中获取所有 PRs,这些 PRs 在第一个 repo 中引用了问题。

到目前为止我有

这让我在第一个 repo 中获得了问题,但是我可以在同一个 GraphQL 调用中获得第二个 PR,还是应该在 TS 端收集问题 ID 并进行不同的查询?

0 投票
2 回答
8802 浏览

graphql - 基于字段特定值的 GraphQL 查询

我希望能够使用他们的 GraphQL API 从 GitHub 检索特定存储库的最新版本。为此,我需要获取 isDraft 和 isPrerelease 为假的最新版本。我设法获得了第一部分,但无法弄清楚如何执行查询的“位置”部分。

这是我得到的基本查询(https://developer.github.com/v4/explorer/):

返回:

我似乎无法找到一种方法来做到这一点。部分原因是我是 GraphQL 新手(第一次尝试进行查询),我不确定如何提出我的问题。

只能基于那些支持参数的类型(如下面的存储库和发布)“查询”吗?似乎应该有一种方法可以在字段值上指定过滤器。

存储库:https ://developer.github.com/v4/object/repository/

发布:https ://developer.github.com/v4/object/releaseconnection/

节点:https ://developer.github.com/v4/object/release/

0 投票
0 回答
37 浏览

github - 如何使用 github 获取合并的拉取请求的版本/标签(反映更改的地方)?

我想获取反映合并 PR 更改的版本/标签。为此,我尝试使用 git API 为 master 分支构建提交树repos/:owner/:name/commits?sha=<MASTER_SHA>。构建树后,我会将所有找到的版本/标签映射到树中的提交。所有未映射的中间节点都根据它们所在的版本分配版本/标签。一旦我拥有了 master 分支的所有版本和版本,我尝试在树中找到合并的 PR。这将帮助我将 PR 映射到版本。这是最优策略吗?或者有没有其他策略可以让 PR 到版本映射。

0 投票
1 回答
169 浏览

github - 如何使用 github graphQL API 获取分支的 zipballUrl?

我正在尝试以编程方式下载已签出到特定分支的存储库的 zip 文件。为此,我需要通过github graphQL API获取我指定的分支头部的 zipballUrl 。

此答案指定如何获取默认分支的 zipballUrl,但我无法将其更改为我的要求。感谢有人可以提供帮助。

PS:运行 git clone 命令并签出到分支不是一个选项,因为我使用的编程语言(芭蕾舞女演员)还不支持 shell 命令。

0 投票
1 回答
453 浏览

c# - 您可以使用原始 graphQL 语法使用 octokit.net 库在 c# 中查询 github API v4 吗?

我正在尝试使用 graphQL 来查询存储库及其内容,但无法弄清楚如何在 LinQ 中构建所需的查询。有什么方法可以执行原始 GraphQL 查询,避免 LinQ 语法?

我的功能GraphQL查询如下所示:

使用LinQ语法我到了这一点:

而且我找不到在 Blob 选择器上实现这些的方法

编辑:

Cyril Durand的答案有效,但不幸的是不使用 Octokit.net 客户端,因此您无法将结果解析为上述库中包含的类。您可以做的是创建自定义类以完全适合 json 结果。

首先查询数据。

然后将其设为 JSON 字符串。(需要Newtonsoft.Json库)

并且您使用json2csharp转换器创建具有 JSON 字符串属性的确切类。

对于此查询,生成的类如下所示

现在您可以使用您的数据了。

这种方法不是最好的,但解决了我的大部分查询问题,因此我将其标记为正确答案。如果您有更好的解决方案的想法(也许您可以实际使用 octokit 库),请随时回答:)

0 投票
1 回答
233 浏览

graphql - Github API v4 GraphQL 未按 tagName 返回版本

我正在尝试检索特定版本的 Django 的发布信息。但是,发布总是返回一个空响应。在下面的示例中,我试图检索Django 的 1.11 版本的信息:

以上返回:

我是否误解了如何执行 GraphQL 查询?我可以使用以下针对此版本的查询在我自己的个人公共存储库上使用相同的查询:

我的个人存储库返回以下结果:

Github API v4 GraphQL 库对 2 个公共存储库的处理方式对我来说没有任何意义。我正在使用的 Github 访问令牌对所有内容具有完全权限;我检查了所有可能的权限和子权限。

更新: (2019-09-14) Github 的 GraphQL API 有一个支持论坛。我发现这个线程确定了相同的问题并且也在那里发布。

0 投票
1 回答
353 浏览

graphql - GraphQL API 保护分支

我在我的一个项目中使用GITHUB API V3现在我们正在迁移到GraraphQL API V4。我想列出 repo 的所有分支,并且我想检查它是否是受保护的分支。在GITHUB API V3中,它有一个分支API,它将列出所有分支以及它是受保护的密钥,因此很容易检查。现在在 GraphQL 中,我可以获得所有分支列表,但无法检查分支是否受保护。

有人可以协助解决这个问题吗?

如果那无法实现,refs那么有没有办法单独列出所有受保护的分支

0 投票
1 回答
111 浏览

github - 如何使用 graphql (v4 api) 访问 github 存储库内容?

如果我使用 github v3api 使用以下查询访问公共存储库的目录内容:

graphql 中的等价物是什么?

例如,我可以通过将以下内容发送到: https ://api.github.com/graphql来获取存储库的描述

但是如何获取存储库目录的内容?

0 投票
1 回答
1204 浏览

github - 用于访问私有存储库的 Github 个人访问令牌:/repos/:user/:repo/contents

我正在尝试使用个人访问令牌来访问存储库的内容

如果存储库是公共的,我可以使用 v3 和 v4 api 来实现这一点。以下两个请求都返回内容:

v3:

v4:

现在我已经生成了一个个人访问令牌,用于在我的一个私有存储库中执行此操作,但它从不返回任何内容:

v3(带有授权令牌):

结果:

v4(带有授权令牌):

结果:

我尝试read在生成令牌时检查所有复选框,但没有。我究竟做错了什么?