我在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) 我正在通过 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 文档,据我所知 - 我还剩下 …
我正在尝试编写一个脚本来使用自定义 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",则会为我 …
我的 Github 组织要求对所有成员进行 SAML SSO 身份验证,这需要将新的 ssh 密钥添加到要授权的帐户(https://help.github.com/en/github/authenticating-to-github/authorizing-an-ssh-用于 saml 单点登录的密钥)。我尝试研究和查看他们的 API 文档,但我找不到任何有关通过 API 授权 ssh 密钥的信息。
谁能帮我吗?
让\xe2\x80\x99s 说“sample.txt”文件位于GitHub 中的“Demo”存储库[Demo/sample.txt] 下。如何使用PyGitHub读取example.txt的内容而不是从 API 获取?
\n否则,我们是否有其他包来读取此类文件内容?
\n我还没有使用过 PyGithub,但我很好奇是否有可能从存储库(例如https://github.com/{username}/{repo-name}/releases)获取发布列表。我在此处的文档中看不到任何相关信息。
我正在尝试找出如何通过 Github API 关闭问题。
具体来说,我尝试通过 pyGitHub 和 python 来完成此操作,但知道如何通过 GitHub API 关闭问题就足以让我弄清楚。
有人能指出我正确的方向吗?我确信这很简单,但我在文档中找不到它
我需要检查对 github 上特定分支所做的所有提交。
我知道
repo.get_commits()
Run Code Online (Sandbox Code Playgroud)
但这会返回该存储库的所有分支的提交,我猜。我在Commit 类 和Gitcommit 类中都没有找到任何分支属性。
Branch 类中也没有像 .get_commits() 这样的东西
解决这个问题的正确方法是什么?
我想在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) 如何使用 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)
我本来希望注释掉的行会起作用。
另外,我不想克隆存储库或任何东西。我需要能够在不克隆的情况下与事物交互。
还有其他方法可以做到这一点吗?
pygithub ×10
python ×7
github-api ×6
github ×5
git ×2
python-3.x ×2
api ×1
github3.py ×1
jwt ×1
readfile ×1