标签: pygithub

如何将新文件推送到GitHub?

我在github.com上创建了一个新的存储库,然后将其克隆到我的本地机器上

git clone https://github.com/usrname/mathematics.git
Run Code Online (Sandbox Code Playgroud)

我在该文件夹下添加了3个新文件 mathematics

$ tree 
.
??? LICENSE
??? numerical_analysis
?   ??? regression_analysis
?       ??? simple_regression_analysis.md
?       ??? simple_regression_analysis.png
?       ??? simple_regression_analysis.py
Run Code Online (Sandbox Code Playgroud)

现在,我想使用Python,更具体地说,PyGithub将3个新文件上传到我的GitHub .这是我尝试过的:

#!/usr/bin/env python
# *-* coding: utf-8 *-*
from github import Github

def main():
    # Step 1: Create a Github instance:
    g = Github("usrname", "passwd")
    repo = g.get_user().get_repo('mathematics')

    # Step 2: Prepare files to upload to GitHub
    files = ['mathematics/numerical_analysis/regression_analysis/simple_regression_analysis.py', 'mathematics/numerical_analysis/regression_analysis/simple_regression_analysis.png']

    # Step 3: Make a commit and push
    commit_message = 'Add …
Run Code Online (Sandbox Code Playgroud)

python git github pygithub

13
推荐指数
2
解决办法
2万
查看次数

当我未超出速率限制时收到 Github APi 403 错误

我正在通过 PyGithub 从 Github 上抓取数据。我的问题是我在抓取过程中收到此错误:

github.GithubException.GithubException: 403 {'documentation_url': ' https://developer.github.com/v3/#rate-limiting ', 'message': '超出 XXXXX 的 API 速率限制。'}

卷曲 api 后我收到:

curl -i https://api.github.com/users/XXXXXX
HTTP/1.1 200 OK
Server: GitHub.com
Date: Thu, 14 Jul 2016 15:03:51 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 1301
Status: 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 52
X-RateLimit-Reset: 1468509718
Cache-Control: public, max-age=60, s-maxage=60
Vary: Accept
Last-Modified: Wed, 08 Jun 2016 13:29:08 GMT
Run Code Online (Sandbox Code Playgroud)

请注意速率限制标签:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 52
X-RateLimit-Reset: 1468509718
Run Code Online (Sandbox Code Playgroud)

如果我再次运行我的 Python 程序,我将收到另一条超出 API 速率限制的消息。我阅读了 github 的 API 文档,据我所知 - 我还剩下 …

python github rate-limiting github-api pygithub

7
推荐指数
1
解决办法
9871
查看次数

Github API 生成的带注释的标签未显示在 git describe 中

我正在尝试编写一个脚本来使用自定义 CI 触发器自动设置 github 版本。我有一个pygithub用于自动创建标签和发布的 python 脚本。

# roughly the following code:
repo.create_git_tag(...)
repo.create_git_ref(...)
repo.create_git_release(...)
Run Code Online (Sandbox Code Playgroud)

运行脚本后,一切都显示在 GitHub Web UI 中,在 之后git fetch origin && git tag -l,我可以在本地看到标签。但是当我使用git describe(甚至使用--tags)时,它失败了fatal: No tags can describe '<head_commit_hash>'

使用git show-ref --tags,我得到如下内容:

hash1 refs/tags/releases/1.0.0
hash2 refs/tags/releases/1.1.0
hash3 refs/tags/releases/1.1.1
Run Code Online (Sandbox Code Playgroud)

然后git cat-file -p hash1给我:

object hash_of_commit_at_tag
type commit
tag releases/1.0.0
tagger ...

Release: 1.0.0
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用 自己创建并推送标签git tag -a releases/1.0.0 hash_of_commit -m "Release 1.0.0",则会为我 …

git github-api python-3.x pygithub

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

如何通过 API 在 Github 中授权 ssh 密钥

我的 Github 组织要求对所有成员进行 SAML SSO 身份验证,这需要将新的 ssh 密钥添加到要授权的帐户(https://help.github.com/en/github/authenticating-to-github/authorizing-an-ssh-用于 saml 单点登录的密钥)。我尝试研究和查看他们的 API 文档,但我找不到任何有关通过 API 授权 ssh 密钥的信息。

谁能帮我吗?

python api github python-requests pygithub

7
推荐指数
1
解决办法
520
查看次数

使用 PyGitHub 读取 GitHub 中的文件内容

让\xe2\x80\x99s 说“sample.txt”文件位于GitHub 中的“Demo”存储库[Demo/sample.txt] 下。如何使用PyGitHub读取example.txt的内容而不是从 API 获取?

\n

否则,我们是否有其他包来读取此类文件内容?

\n

python github readfile pygithub

7
推荐指数
1
解决办法
6800
查看次数

是否有可能通过 pyGithub 获得发布

我还没有使用过 PyGithub,但我很好奇是否有可能从存储库(例如https://github.com/{username}/{repo-name}/releases)获取发布列表。我在此处的文档中看不到任何相关信息。

python github-api pygithub

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

如何使用 GitHub API 关闭问题

我正在尝试找出如何通过 Github API 关闭问题。

具体来说,我尝试通过 pyGitHub 和 python 来完成此操作,但知道如何通过 GitHub API 关闭问题就足以让我弄清楚。

有人能指出我正确的方向吗?我确信这很简单,但我在文档中找不到它

python github issue-tracking github-api pygithub

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

PyGithub - 如何获取特定分支的所有提交的列表?

我需要检查对 github 上特定分支所做的所有提交。

我知道

repo.get_commits() 
Run Code Online (Sandbox Code Playgroud)

但这会返回该存储库的所有分支的提交,我猜。我在Commit 类Gitcommit 类中都没有找到任何分支属性。

Branch 类中也没有像 .get_commits() 这样的东西

解决这个问题的正确方法是什么?

github-api pygithub

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

PyGithub 中的 JWT 令牌身份验证问题

我想在python中创建一个github应用程序,我被困在身份验证部分。由于默认情况下它们不支持python,因此我必须使用第三方库。生成 JWT 令牌后,我可以成功使用 curl 进行身份验证,但不能使用库进行身份验证。

我试过使用 PyGithub 和 Github.py 并且都返回了“错误的凭据”错误,所以我一定忽略了一些东西。

import jwt
from github import Github
from dotenv import load_dotenv


load_dotenv()
GITHUB_PRIVATE_KEY = os.getenv('GITHUB_PRIVATE_KEY')
GITHUB_APP_IDENTIFIER = os.getenv('GITHUB_APP_IDENTIFIER')
GITHUB_WEBHOOK_SECRET = os.getenv('GITHUB_WEBHOOK_SECRET')

message = {'iat': int(time.time()),
           'exp': int(time.time()) + (10 * 60),
           'iss': GITHUB_APP_IDENTIFIER}

token = jwt.encode(message, GITHUB_PRIVATE_KEY.strip().encode(), 'RS256')

gh = Github(jwt=token.decode())

for repo in gh.get_user().get_repos():
    print(repo.name)
Run Code Online (Sandbox Code Playgroud)

此 curl 命令返回我的应用程序的详细信息:

curl -i -H "Authorization: Bearer YOUR_JWT" -H "Accept: application/vnd.github.machine-man-preview+json" https://api.github.com/app
Run Code Online (Sandbox Code Playgroud)

我希望代码能够验证并打印我的回购,但是我得到

Traceback (most recent call last):
  File "C:/python/jeev/testing.py", line 21, in <module> …
Run Code Online (Sandbox Code Playgroud)

python jwt github3.py pygithub

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

在 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
查看次数