如何使用Python识别/列出所有GITHUB webhooks(URL)?

时间:2018-05-23 16:07:15

标签: python url github python-requests webhooks

我正在处理请求和Github python库,基本上是在某些条件下构建一个脚本来更新github中的webhooks(URL)。

使用以下代码,我得到一些信息,如GitHub组织,GitHub用户和GitHub存储库(仅举几个例子):

**from github import Github
import json
import requests
def function_example():
    gh = Github('MY_TOKEN_HERE', base_url='https://MY-GITHUB-DOMAIN/api/v3')
    get_users = gh.get_user().name
    print("USERNAME: ", get_users)
    print(" ")
    # user_repos = gh.repos.list().all()
    user_repos = gh.get_repos()
    print("REPOS: ", user_repos)
    print(" ")
    orgs = gh.get_organization('MY_GITHUB_ORG_HERE')
    print("ORGS: ", orgs)
    print(" ")
if __name__ == '__main__':
    function_example()
# Eof**

但是,我需要识别webhooks URL(位于Github - > Repo - >设置 - > Webhooks),以便使用新域更新它们。问题是我还没有找到如何获取或列出特定存储库的所有webhook。

我一直在阅读一个名为smartsheet的许可库,看起来就像使用该库一样 我们可以处理webhooks ...但是我没有安装这个库: - (

是否可以使用这些python库(请求和/或Github)列出/识别URL webhooks?

如果是这样,有人可以给我一个例子吗?

我真的很感激!

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

看起来有一个Github Webhooks API:https://developer.github.com/v3/repos/hooks/#list-hooks

使用请求,您应该能够在每个回购广告的webhook上执行CRUD操作。

列出repo的钩子的调用看起来像这样:

import requests
token = "YOUR_OAUTH_OR_PERSONAL_ACCESS_TOKEN"
repo = "connect4"
user = "dreslan"
url = "https://api.github.com/repos/{}/{}/hooks".format(user, repo)
headers = {"Authorization": "token {}".format(token)}
r = requests.get(url, headers=headers)
# r.content will display the result