命令行应用程序的最简单的github授权?

时间:2018-04-20 11:16:52

标签: python python-requests github-api

我编写了一个简短的命令行应用程序来自动化我的工作中涉及github的一些无聊部分。很可能这个实用程序脚本将在95%的时间由我使用,5%的时间由另一个开发人员使用 - 它不需要大量生产,我可以自己处理共享身份验证机密,所以我只是想创造一个永远不会改变的秘密。

该脚本运行良好,除了在最后一行我需要使用方法POST完全调用github API,并且我认为身份验证失败,因为我得到了404结果我使用POST,但是当我尝试GET时,我不会这样做。

以下是详细信息。

我正在使用我非常熟悉的流行Python库requests

在GitHub上,我创建了一个OAuth应用程序,并将客户端ID复制到代码中,并复制了Client Secret,它是在运行时从未检入的文件中读取的。

根据this documentation,然后我发出创建新版本的请求,传递身份验证如下:

url = 'https://api.github.com/repos/rec/testy/releases'
data = {
    'tag_name': 'v1.0.1',
    'target_commitish': 'master',
    'name': 'name',
    'body': 'release body',
    'client_id': CLIENT_ID,
    'client_secret': CLIENT_SECRET,
}

res = requests.post(url, data=data)
print(res, res.text)

如果我将requests.post替换为requests.get,我会获得有关版本的预期信息,这就是为什么我认为我的身份验证错误。

最简单的方法是调整我的请求来完成这项工作,因为它基本上是一个供个人使用的一次性脚本?

1 个答案:

答案 0 :(得分:1)

创建令牌:https://github.com/settings/tokens 在您的数据块中使用 'token': <YOUR_TOKEN>

而不是client_id和client_secret。 或者,请参阅:https://github.com/PyGithub/PyGithub