首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python watchdog用于监控github存储库的更改

Python watchdog用于监控github存储库的更改
EN

Stack Overflow用户
提问于 2021-03-25 05:45:42
回答 2查看 108关注 0票数 0

我需要一个帮助来创建一个python看门狗系统来监控GitHub存储库。想法是:每次在repo (master)上推送新的东西时,我想用新的提交/推送更新我在服务器上的repo。

你知道怎么做到这一点吗?我为我的英语感到抱歉。在此之前,非常感谢您。

EN

回答 2

Stack Overflow用户

发布于 2021-08-06 19:31:08

OK!我已经为这个找到了两个解决方案

1.如果您拥有想要查看的存储库,则为

  • 在you‘s repo页面中,转到settings
  • 单击webhooks,new webhook (右上角)
  • 提供您的ip/端点并根据您的喜好设置所有内容
  • 使用任何服务器(例如在@
  • answer中)获取通知

2.不是你的回购

接受你想要的url,即https://github.com/fire17/gd-xo/

  • 在末尾添加/commits/master.atom,如:

https://github.com/fire17/gd-xo/commits/master.atom

  • 使用您想要获取页面内容的任何库,例如:

响应导入请求;

= requests.get("http://api.open-notify.org/astros.json").text

  • 会过滤出所需的键,例如元素

response.split("")1.split("") '2021-08-06T19:01:53Z'

  • 创建一个循环,每隔一段时间对此进行检查,如果此字符串已更改,则可以发起克隆/拉取请求或执行任何您喜欢的操作:)

我很高兴终于实现了这个功能希望这对我有帮助!

票数 2
EN

Stack Overflow用户

发布于 2021-03-25 05:56:00

一种解决方案是使用github 'push' webhook。这意味着,您可以设置一个web服务,其中github可以告诉您何时发生了推送,而不是不断轮询repo以获取更改。

使用flask的一个非常基本的示例可能如下所示

代码语言:javascript
复制
from flask import Flask, request, abort
import hmac

app = Flask(__name__)

@app.route("/myhook", methods=['POST'])
def github_push_webhook():
    signature = request.headers.get("X-Hub-Signature")
    digest = hmac.new(GITHUB_SECRET.encode(), request.data, hashlib.sha1).hexdigest()

    if not hmac.compare_digest(signature, "sha1=" + digest):
        abort(400, "Bad Request")

    webhook_data = request.get_json()
    changed_repository = webhook_data.get('repository')
    # clone the repoisitory...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66789861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档