利用Python和webhook实现自动提交代码
最近在为公司书写项目的api文档,计划利用码云的wiki管理整个项目,公司自有git作为项目内容依托,这样全员都可参与,而我定期向码云推送就可以了。
问题
根据需求遇见了这样一个问题:我每次从git上拉取更新再向码云wiki推送,最后再通过钉钉向大家通知的过程,过于繁琐。于是计划用Python实现部分流程自动化
代码
1.引入的头文件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/9/25 上午10:52
# @Author : liuyonghu
# @Site : https://www.lyonghu.com
# @File : autoGitPush.py
# @Software: PyCharm
import subprocess
import time
from tools.sendMessageToDD import sendMessage
2.add 方法
def add():
cmd = "git add ."
process = subprocess.Popen(cmd, shell=True)
process.wait()
returnCode = process.returncode
if returnCode != 0:
print(" add returnCode", returnCode)
else:
commit()
3.commit 方法
commitMessage = ""
def commit():
global commitMessage
commitMessage = time.strftime("%Y/%m/%d %H:%M")
cmd = "git commit -m '{}'".format(commitMessage)
# print("cmd = " + cmd)
process = subprocess.Popen(cmd, shell=True)
process.wait()
push()
4.push 方法
def push():
cmd = "git push origin master"
process = subprocess.Popen(cmd, shell=True)
process.wait()
returnCode = process.returncode
if returnCode != 0:
print("push returnCode", returnCode)
else:
sendMessage({
"fileName": "api文档 : \n\n已更新,请注意查看! \n" +"\n更新信息: {}".format(
commitMessage),
"text": time.strftime("%Y/%m/%d %H:%M"),
"error": False
})
5.最后调用
add()
注意
代码调用顺序
由此除了项目成员向wiki推送状态无法获取外其他事件基本可以省去很多手动操作。如果大家知道更好的办法欢迎讨论指导
利用Python和webhook实现自动提交代码的更多相关文章
- 利用github的webhook进行自动部署
利用github的webhook进行自动部署 github提供了webhook功能,大概意思就是,当你提交了代码,git检测到你进行了push,可以调起你一个你知道的url. 这个功能有什么用了?比如 ...
- .NET Core下操作Git,自动提交代码到 GitHub
.NET Core 3.0 预览版发布已经好些时日了,博客园也已将其用于生产环境中,可见 .NET Core 日趋成熟 回归正题,你想盖大楼吗?想 GitHub 首页一片绿吗?今天拿她玩玩自动化提交代 ...
- # .NET Core下操作Git,自动提交代码到
.NET Core下操作Git,自动提交代码到 转自博客园(阿星Plus) .NET Core 3.0 预览版发布已经好些时日了,博客园也已将其用于生产环境中,可见 .NET Core 日趋成熟 回归 ...
- centos7 在docker swarm中运行Jenkins,利用gitlab的webhook触发自动部署脚本
1.宿主机中创建目录 mkdir -p /jenkins_home 2.编辑compose文件,文件名jenkins.yml version: '3.4' services: jenkins-upgr ...
- 自动提交Git branch代码评审到Review Board系统
背景 敏捷软件开发中,越小的反馈环,意味着软件质量越容易得到保证. 作为组件团队,我们的开发任务中,往往存在一些特性涉及到几十个功能点,开发周期持续数周或数月的情况.如何在开发过程中保证软件质量,是个 ...
- 利用Python模拟登录pastebin.com
任务 在https://pastebin.com网站注册一个账号,利用python实现用户的自动登录和创建paste.该任务需要分成如下两步利用python实现: 账号的自动登录 paste的自动创建 ...
- HTML页面禁用Enter键自动提交表单
今天在开发页面时,遇到一个小BUG,,如下图 在页面的文本框获取焦点之后,再按键盘上的Enter键,页面form就会自动提交.如下是页面禁止Enter自动提交代码: document.onkeydow ...
- 用JavaScript实现表单按回车自动提交
JavaScript实现表单form1按回车自动提交代码如下: <script type="text/javascript"> function submitMe() ...
- 利用 Python 进行批量更改文件后缀
利用 Python 进行批量更改文件后缀 代码 import os files = os.listdir('.') for file_name in files: portion = os.path. ...
随机推荐
- ESXI服务器的四个网口负载均衡
什么是NIC Team(负载均衡) NIC Team其实就是将多个物理网卡同时分配到相同的端口/端口组,目的是为了实现带宽聚合,负载均衡以及故障转移 配置NIC Team 一.选择一台ESXi主机,打 ...
- [UE4]有限状态机、动画状态机、纯函数
有限状态机 FSM:Finite State Machine,表示有限个状态以及在这些状态之间转移和动作的数学模型 纯函数: 纯函数: 先后调用顺序不重要,没有修改任何数值,只是获取数值或者临时计算一 ...
- springMVC 是单例还是的多例的?
曾经面试的时候有面试官问我spring的controller是单例还是多例,结果我傻逼的回答当然是多例,要不然controller类中的非静态变量如何保证是线程安全的,这样想起似乎是对的,但是不知道( ...
- javascript创建对象之工厂模式(一)
工厂模式在软件工程里面是一种比较常见的设计模式了.这种模式抽象了创建具体对象的过程. 上代码: function createHuman(name,sex) { var obj = new Objec ...
- 自定义ExtJS插件
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73b6f93834c28c3933fc239045647 ...
- Python生态圈
WEB开发——最火的Python web框架Django, 支持异步高并发的Tornado框架,短小精悍的flask,bottle, Django官方的标语把Django定义为the framewor ...
- javaScript日期
日历 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <html> <head> <t ...
- myeclipse2016-ci破解疑难杂症问题整理
感谢网上的各位大神,在你们的基础,我又整理了下安装成功的心得,破解不成功时一定注意下红色字体内容,避免被坑,都是教训. 试了网上N种破解工具+方法,Myeclipse 2016装了很多遍(本人官网下载 ...
- Simple2D-24 Sprite 渲染树
如果要开发游戏,单单使用 Painter 绘制图片会变得十分复杂.如果使用 Sprite 对象进行显示,可以简单地实现图片的位移.旋转和缩放,结合 Action 对象可以实现复杂的动画效果.最重要的是 ...
- 11 python shutil 模块
shutil 模块 高级的 文件.文件夹.压缩包 处理模块 1.将文件内容拷贝到另一个文件中 import shutil f1 = open('os_模块.py','r',encoding='ut ...