标签: github-api

在 pygithub 中使用 SSH 密钥

如何使用 pygithub 和 ssh 密钥向 github.com 进行身份验证?

我可以使用访问令牌进行身份验证。出于各种公司类型的原因,对于我正在编写的脚本使用 SSH 密钥将非常方便。

我发现了一些关于在“git”库中使用 SSH 密钥的文章。但是,它们似乎主要对已经克隆的存储库的本地数据进行操作,并且它似乎不适用于 pygithub。

conn = github.Github(ACC_TOKEN)
#conn =github.Github("~/.ssh/id_rsa.pub") # it would be wonderful if this worked.

repo = conn.get_repo(reponame) 
Run Code Online (Sandbox Code Playgroud)

我本来希望注释掉的行会起作用。

另外,我不想克隆存储库或任何东西。我需要能够在不克隆的情况下与事物交互。

还有其他方法可以做到这一点吗?

github-api python-3.x pygithub

5
推荐指数
0
解决办法
747
查看次数

Github Api 授权问题

我正在尝试使用 Github Api 进行授权请求,传递用户名和密码。但它不起作用,我收到 401 状态代码。

在文档中有一部分说

To use Basic Authentication with the GitHub API, simply send the username and password associated with the account.
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

this.api
        .post('/user', { username: 'Example', password: '1234' })
        .then(res => resolve(res.data))
        .catch(err => reject(err));
Run Code Online (Sandbox Code Playgroud)

javascript authorization github-api axios

5
推荐指数
1
解决办法
4183
查看次数

通过 GitHub API 获取 Git 标签中的所有提交仅返回第一个提交

我正在尝试将 git 标签中的所有提交都扔到 github api 中。我检查了这个堆栈溢出问题 ,但通过这种方式,它要求我比较两个标签,并且它只返回第一次提交。我想获取特定标签的所有提交。我用的是

https://api.github.com/repos/:org/:repo/compare/:tag_1...:tag_2
Run Code Online (Sandbox Code Playgroud)

因为我想要特定的标签,所以我添加了相同的标签

https://api.github.com/repos/xxxx/ant-design/compare/3.13.2...3.13.2
Run Code Online (Sandbox Code Playgroud)

它返回给我仅有的 2 个提交,但在标签中我有很多提交,如您在此处看到的。 在此输入图像描述

github github-api

5
推荐指数
1
解决办法
1824
查看次数

如何允许公共应用程序在没有访问令牌的情况下连接到 GitHub API v4?

我决定尝试在 GitHub 上管理我的一个应用程序的发布,就像使用 GitHub Actions 一样,我可以在 Mac、Linux 和 Windows 上进行构建,并自动将工件推送到 GitHub 发布页面,任何人都可以从该页面下载该应用程序。

但是,我希望我的应用程序能够自我更新,因此应用程序本身还需要能够查询存储库版本中的最新版本,然后下载用户操作系统的相关资产......我认为这将是一个不是问题...但是,如果没有 OAuth 应用程序或个人访问令牌,则无法访问 GitHub API v4。

我不需要 OAuth 应用程序,因为我的应用程序的用户绝对不会是 GitHub 客户。因此,我尝试使用个人访问令牌,其唯一范围是访问公共发布资产(同样,这是任何人都可以手动下载的公共资源)。

由于此令牌无法执行您或其他任何人无法手动执行的任何操作,即使没有 GitHub 帐户,我认为将令牌放在我的应用程序的源代码中就可以了,但是 GitHub 在检测到时会撤销该令牌它在提交上。

有没有好的方法来解决这个问题?我应该将令牌放入 GitHub 秘密中,然后在编译期间尝试用它替换占位符吗?我想避免这种情况,因为这让我很难在本地测试应用程序,而且,它不能解决任何问题,因为任何人都可以轻松反编译应用程序并在那里找到令牌(假设 GitHub 不会检测到秘密存在于编译期间“已处理”的源)。

任何建议,将不胜感激。

security release github-api

5
推荐指数
1
解决办法
1896
查看次数

使用 GitHub API 在一次提交中编辑多个文件

我在 C# Web 应用程序(使用 Blazor)中使用 GitHub API。我希望能够创建单个提交来添加、删除和编辑存储库中文件夹中的多个文件。我知道我可以向包含这些内容的 URL 发送 PUT 请求来https://api.github.com/repos/[username]/[repository]/contents/[file]创建文件(并且我还可以通过添加 SHA 哈希来编辑文件):

{
    "message": "[Commit message]",
    "content": "[Content encoded in base64]",
    "committer": {
        "name": "[Committer name]",
        "email": "[Committer email]"
    }
}
Run Code Online (Sandbox Code Playgroud)

但这会为每个文件更改创建一次提交。有什么方法可以在一次提交中执行多个操作(使用 GitHub API 或其他方式)?我会使用 libgit2sharp 之类的东西,但我不想将存储库克隆到文件系统上的文件夹。

c# git github github-api git-commit

5
推荐指数
1
解决办法
3422
查看次数

Github Actions: [远程拒绝] master -> master (不允许浅更新),错误:无法推送一些参考文献

在我的 Github 工作流程中,我正在检查两个存储库。随后,我将工作流程存储库“repoA”的两个目录与​​存储库“repoB”合并。当推送到 repoB 时,出现错误:

From ../repoA
 * [new branch]      master     -> workspace/master
Automatic merge went well; stopped before committing as requested
[master cbd72fe] Update
To https://github.com/username/repoB.git
 ! [remote rejected] master -> master (shallow update not allowed)
error: failed to push some refs to 'https://username@github.com/username/repoB.git'
##[error]Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我的仓库很浅以及如何修复它。Github 工作流程文件:

name: test
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout current repo
      uses: actions/checkout@v2
      with:
        path: repoA
    - name: Checkout other repo
      uses: actions/checkout@v2
      with: …
Run Code Online (Sandbox Code Playgroud)

github github-api github-actions

5
推荐指数
1
解决办法
2313
查看次数

使用 Github GraphQL API 在一个 Promise.All 中获取不同数组的结果

我正在为 Gatsby 制作一个自定义源插件,它将从 GitHub 存储库获取 Markdown 文件。存储库具有单独的文件(blob)和文件夹(树),它们又包含文件。我需要将所有文件(包括文件夹内的文件)放在一个中Promise.all,但我不知道如何做到这一点。我已经设法从存储库中获取单个文件,并且有一个函数可以从树中返回文件数组。但我不知道如何将它们结合起来。

这是我的代码。GraphQL 查询以获取存储库、树和文件信息:

const repositoryQuery = `
{
  viewer {
    repository(name: "repository-name") {
      object(expression: "master:") {
        ... on Tree {
          entries {
            name
            oid
            type
          }
        }
      }
    }
  }
}
`

const treeQuery = `
  query getTree($id: GitObjectID!) {
    viewer {
      repository(name: "repository-name") {
        object(oid: $id) {
          ... on Tree {
            entries {
              name
              oid
              type
            }
          }
        }
      }
    }
  }
`

const fileQuery = `
  query getFile($id: GitObjectID!) { …
Run Code Online (Sandbox Code Playgroud)

javascript github-api graphql gatsby

5
推荐指数
1
解决办法
2495
查看次数

使用 Octokit API 从 GitHub Actions 获取最新的工作流程运行

我正在使用Octokit API来请求特定的工作流程运行。我可以在文档中看到,我可以通过提供工作流运行 ID 来请求特定的工作流运行。不过,我希望始终请求运行最新的工作流程。如果我不知道 ID 是什么,我该如何实现这一目标?

例如,这里的值workflow-run-latest总是在变化。

octokit.actions.getWorkflowRun({
    owner: owner,
    repo: repo-name,
    run_id: workflow-run-latest,
});
Run Code Online (Sandbox Code Playgroud)

谢谢!

github github-api octokit github-actions

5
推荐指数
1
解决办法
1800
查看次数

是否可以使用 GitHub API 更改私有存储库的可见性?

我一直在寻找一种将我的私有存储库转换为公共存储库的方法,但由于它们有很多,我更喜欢用简单的方法并诉诸 GitHub API,但就我而言,这个find,仅允许编辑公共存储库的可见性。查看最新的文档,我意识到经过身份验证时可访问的唯一端点是(存储库、可用端点):

  • GET /user/repos
  • POST /user/repos
  • POST /user/projects

我还尝试使用浏览器控制台并在请求更改可见性时生成日志,但它似乎没有向 GitHub API 发出任何请求。

github github-api

5
推荐指数
2
解决办法
4045
查看次数

Github GraphQL API 获取特定日期的问题计数

我正在使用 GitHub Graphql API 来提取存储库的问题。查询如下所示:

query { 
  repository(owner:"OWNER", name:"REPOSITORYNAME") { 
    issues(states:OPEN) {
      totalCount
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

响应有效负载包含存储库的未解决问题的计数。

{
  "data": {
    "repository": {
      "issues": {
        "totalCount": 375
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

搜索文档但找不到任何相关内容,有没有办法我们可以查询历史日期中未解决的问题的数量?例如,totalCount2020 年 10 月 12 日存储库的未解决问题是什么?

github-api graphql

5
推荐指数
1
解决办法
908
查看次数