标签: github-api

使用curl使用Github API v3创建新的要点

经过相当长的一段时间,使用他们的API V3向Github发布私人要点后,我几乎放弃了.几乎.也许有些人也遇到过类似问题或者知道可能是以下行为的原因:

现在curl命令如下所示:

curl -H "Authorization: bearer MY_AUTHORIZATION_TOKE" -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"public":false,"files":{"test.txt":{"content":"String file contents"}}}' https://api.github.com/gists
Run Code Online (Sandbox Code Playgroud)

我也试过了

curl -H "Authorization: bearer MY_AUTHORIZATION_TOKE" -X POST -d '{"public":false,"files":{"test.txt":{"content":"String file contents"}}}' https://api.github.com/gists
Run Code Online (Sandbox Code Playgroud)

我可以使用完全相同的数据创建没有授权令牌的gist:

curl -X POST -d '{"public":true,"files":{"test.txt":{"content":"String file contents"}}}' https://api.github.com/gists
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,它将是匿名的

如果我想将其公之于众,那么结果相同

无论如何,Github都会回来

HTTP/1.1 404 Not Found
{
  "message": "Not Found"
}
Run Code Online (Sandbox Code Playgroud)

我很确定我已经获得授权,因为curl -H "Authorization: bearer MY_AUTHORIZATION_TOKE" https://api.github.com/user我将用户详细信息返回给我.

适用范围如下:

https://github.com/login/oauth/authorize?client_id=...&scope=gist

因此,它应该具有读取和写入权限.

json curl gist github-api

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

使用github API从拉取请求号中获取拉取请求合并提交sha

我正在尝试使用github api(通过githubot https://github.com/iangreenleaf/githubot)从拉取请求号获取拉取请求合并提交sha。

我能够得到正确的响应(例如此处的“获取单个拉取请求”下的示例:https : //developer.github.com/v3/pulls/),但是merge_commit_sha给了我这个错误:

fatal: bad object 304fc816f33f808080c9c87895eea2d66081d373
Run Code Online (Sandbox Code Playgroud)

当我在github上比较两个页面时,我在提交页面上看到了merge_commit_sha,但是在拉请求合并页面上看到了一个不同的提交。父母双方相同,但合并提交不同。从api调用返回的一个无效,但另一个让我通过以下方式还原请求请求的提交

git revert -m 1 commit_sha
Run Code Online (Sandbox Code Playgroud)

这是一些示例屏幕截图 在此处输入图片说明 在此处输入图片说明

因此,这引出了两个问题:-这两个提交sha之间有什么区别?为什么只有一个工作才能还原拉取请求?

  • 如何使用github API获取合并请求请求提交sha?

谢谢。

git git-revert github-api hubot

6
推荐指数
2
解决办法
3712
查看次数

当 PR 描述更改时,是否有 GitHub 挂钩可以收听?

当拉取请求的描述或标题发生变化时,是否有任何事件或方法可以推送通知(webhook)?

我目前列出了pull_request事件,但它只在 PR 被“打开”、“关闭”、“同步”或“重新打开”时触发。

我正在跟踪 PR 描述中的一些链接/标签/单词,在 PR 审查期间,作者可能会更改描述,但我找不到在发生这种情况时收到通知的方法。

一种方法可能是检查 api 的更改(轮询),但我需要一些更好的方法来接收(推送)。

github github-api

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

如何为合并拉取请求获取合并提交SHA?

有一个相关的问题GET pull请求使用github api从pull请求号合并提交sha,但是没有答案.

根据GitHub API,一旦Pull Request被合并,它就会触发pull_request事件action: closed.事件也可以从Events API获得.但是,只有merged(即true如果合并了pull请求)并且不推荐使用merge_commit_sha(临时合并提交的SHA,而不是合并拉取请求的实际提交)字段.

还有用于处理拉取请求的API ; 但是,根据文档,它也只会返回是否合并了pull请求,以及什么是临时提交SHA(在不推荐使用的字段中).

Pull请求显然与合并提交有关,因为提交SHA显示在pull请求页面上:

在此输入图像描述

有没有办法以编程方式获取提交的SHA,拉动请求被合并到基础,知道拉取请求ID?

github github-api

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

Github webhooks - 预推钩

我的要求是,每当开发人员推送到github时,那么在推送之前,CI构建应该在Jenkins服务器上触发.如果该构建失败,则应拒绝推送到github.我需要为此编写钩子,但我不想编写客户端钩子,因为开发人员可以禁用它们.我想要服务器端github webhooks或预接收挂钩.

现在,这甚至可能实现吗?如果是,那么从哪里开始?我需要Rest API的知识吗?我需要编写shell脚本吗?

webhooks githooks github-api

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

GitHub API - 获取repo的分支数量而不列出其所有分支

我目前正在使用GitHub API v3编写一个小项目.

我一直在根据repo包含的分支数进行计算.在没有请求列出该回购的所有分支的情况下,我似乎无法找到这样做的方法.需要请求repo的分支会增加不必要的运行时间,特别是在处理数百个repos时,每个repos包含数十个分支.

显然缺乏这样做的能力让我感到意外,因为通过这样做可以轻松获得一个非常类似的操作,获得组织的回购数量:

  1. 获得一个组织.例如GET https://api.github.com/orgs/cloudify-cosmo,使用适当的GitHub身份验证凭据.
  2. 假设验证成功,在响应正文中有两个名为public_repos和的字段total_private_repos
  3. 要获取repos的数量,只需添加这两个字段的值即可.

那么,我错过了什么吗?是否有一种类似方便的方式(或任何方式)获得回购的分支数量而不必列出其分支?

github-api

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

使用github api上传文件到github目录

我想使用 api 将文件从我的系统上传到 github repo 中的目录。是否有任何允许我这样做的 api 端点。

github github-api

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

Github 状态示例

我正在尝试使用 github statuses,但文档不够清楚

假设我的回购项目是https://github.com/politrons/proyectV

他们在文档中声称该帖子应该是

POST /repos/:owner/:repo/statuses/:sha
Run Code Online (Sandbox Code Playgroud)

带着身体

{
  "state": "success",
  "target_url": "https://example.com/build/status",
  "description": "The build succeeded!",
  "context": "continuous-integration/jenkins"
}
Run Code Online (Sandbox Code Playgroud)

所以就我而言,我正在尝试

发布https://github.com/repos/politrons/proyectV/statuses/1

与身体

{
      "state": "success",
      "target_url": "https://example.com/build/status",
      "description": "The build succeeded!",
      "context": "continuous-integration/jenkins"
    }
Run Code Online (Sandbox Code Playgroud)

但是github返回404。

知道我做错了什么吗?一些关于这个的卷曲例子会很棒!!

编辑:

我在分支 Test-status 上创建了一个拉取请求,当我尝试时

   curl -v -X GET "https://api.github.com/repos/politrons/proyectV/pulls/1"
Run Code Online (Sandbox Code Playgroud)

我收到了包含大量信息的 json。然后我获取标题的 sha 信息并发送此 POST 命令

curl --request POST --data '{"state": "success", "description": "It works!", "target_url": "http://localhost"}' https://api.github.com/repos/politrons/projectV/statuses/5f4927adcfdc238ba8f46442b737d8ab912cc6ee
Run Code Online (Sandbox Code Playgroud)

但后来我收到

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

git github github-api jenkins

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

如何从github API获取存储库中一行代码的责备信息

我搜索了这里发现的所有现有的github API,以获取源文件中某一行代码的责备信息,但我找不到实现它的方法,这种API没有列在上面的网站中.任何人都可以指出我的方法来获取源文件的一行代码的责备信息,该文件托管在github repos中而不克隆它并在git blame本地运行.

提前致谢

git github-api

6
推荐指数
2
解决办法
1272
查看次数

如何在github动作中捆绑安装私人gem

我想priv_gem_a通过github操作在gem上运行rspec(称之为)。

priv_gem_a取决于私人仓库中的另一个宝石(称为priv_gem_b)。但是priv_gem_b由于权限无效,我无法捆绑安装。

错误:

Fetching gem metadata from https://rubygems.org/..........
Fetching git@github.com:myorg/priv_gem_b
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Host key verification failed.
Retrying `git clone 'git@github.com:myorg/priv_gem_b' "/opt/hostedtoolcache/Ruby/2.6.3/x64/lib/ruby/gems/2.6.0/cache/bundler/git/priv_gem_b-886cdb130fe04681e92ab5365f7a1c690be8e62b" --bare --no-hardlinks --quiet` due to error (2/4): Bundler::Source::Git::GitCommandError Git error: command `git clone 'git@github.com:myorg/priv_gem_b' "/opt/hostedtoolcache/Ruby/2.6.3/x64/lib/ruby/gems/2.6.0/cache/bundler/git/priv_gem_b-886cdb130fe04681e92ab5365f7a1c690be8e62b" --bare --no-hardlinks --quiet` in directory /home/runner/work/priv_gem_a/priv_gem_a has failed.
Run Code Online (Sandbox Code Playgroud)

我认为这与跑步者无法访问同一组织中不同的私有存储库有关。

因此,我尝试将环境变量添加到我的工作流文件include GITHUB_TOKEN,但这不起作用:

name: Test Code …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems github-api github-actions

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