用于git部署的webhook接收器

webhooks-git-automata的Python项目详细描述


用于git部署的webhook接收器

这个项目开始时是一个肮脏的快速黑客来执行一些部署操作 由Git Webhook触发。

我看了一下其他的项目,没有找到一个适合我的 需要,所以我开始了这个项目…然后它长了一点变成 比最初的快速攻击更通用的东西。

这个项目的目标是具有git存储库的devops或sysadmin,通常 有一个VIP分店,自动部署。你可能想有不同的分支 对于舞台和制作或设置不同的推送权限 树枝。当接收到webhook时,此实用程序将更新本地git存储库 执行设置中的命令。

快速启动

  • 创建并激活虚拟环境:
virtualenv --python=/usr/bin/python3 /path/to/venv
source /path/to/venv/bin/activate
  • 安装程序包:pip install webhooks_git_automata
  • 创建一个settings.yaml
  • 设置一个服务(例如systemdservice文件),该服务可以执行以下操作:
/path/to/venv/bin/wh-gitd /path/to/settings.yaml

设置

额外的cli功能

若要在不部署的情况下强制执行和拉取命令,可以使用 内置的wh-git-trigger命令。示例用法:

wh-git-trigger /path/to/setings.yaml myrepoentry

这将强制git拉取并执行命令。此工具的未来版本将 包括更多的细粒度控制——例如避免提取、干运行、显示状态信息……

实施细节

此项目包含一个最小的flask服务器,该服务器应答发送的post webhook 通过gitlab、github或gogs这样的git服务器。服务器通过 烧瓶法。

不需要太多流量,但您可能需要在前面设置一个反向代理 或者添加一些更奇特的方法,比如wsgi或uwsgi或类似的层。

典型的git服务器期望webhook发送一个快速的回复(一般来说,http 连接是短暂的),因此有一个worker/tasks方法。在那里 是一个非常简单的基于Threading和共享Queue的实现。更复杂 将来可能会添加实现(欢迎拉取请求)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无法使用windows x86上的Java验证在linux x64上签名的数字签名   java Firebase通过键从子级检索数据   Java缓存网络文件   java独立jdbcpool实现内存泄漏   java为什么MVN在成功构建时返回1?   java maven正在抛出BoundsException数组   Java:是否可以有“嵌套”映射方法(Java.util.stream)?   java无法使用GSON解析JSON文件   java Spring Groovy集成   java使用SAX解析器,需要所有xml元素(在特定元素下)作为字符串   java列出内容提供商Android 3.1中的内容   java如何使用带有spring api的JPA查询进行软删除?   java隐藏我的socket构造函数以隐藏IP和端口   Java将(JEP359)记录为Spring控制器请求和响应DTO   java在数组中循环时忽略空值   RESTAPI端点的java发现模式   java HTTPs在jmeter中发布带有头的请求测试,并将测试结果保存在mongodb中,并在grafana中显示