利用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. ...
随机推荐
- Linux之 AWK SED
AWK系列#awk 中 NF表示取最后一列 NR表示取第几行 NR==3 表示取第三行[root@nodchen-db01-test ~]# free -m | awk 'NR==3 {print $ ...
- HTML5中常用的标签(及标签的属性和作用)
1.标签:<!DOCTYPE>作用:声明是文档中的第一成分,位于<html>标签之前. 2.标签:<html>作用:此元素可告知浏览器其自身是一个HTML文档.属性 ...
- JavaScript中‘==’和'==='的区别
javascript中,两个等号‘==’和三个等号‘===’的区别: 简单说,‘===’比‘==’对相等的概念更为严格,使用‘==’时,数字 1 和 字符串 “1” 是相等的: 而使用‘===’时,数 ...
- VSCode编辑器编写Python代码
如何用VSCode愉快的写Python https://code.visualstudio.com/ 在学习Python的过程中,一直没有找到比较趁手的第三方编辑器,用的最多的还是Python自带 ...
- ORM 框架简介
对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的.面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应 ...
- vb 使用StreamWriter书写流写出数据并生成文件
sql = "Select case when date ='' then '0'else CONVERT(varchar(100), date, 101) end as date,case ...
- selenium+python自动化91-unittest多线程生成报告(BeautifulReport)
前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了. 环境必备 ...
- 温故而知新-PHP文件操作函数
1 文件操作流程 打开文件->读取或者写入文件->关闭文件 fopen->fread,fwrite->fclose fopen可以打开ftp或者http协议的文件,前提示对方支 ...
- Android应用程序的自动更新升级(自身升级、通过tomcat)(转)
Android应用程序的自动更新升级(自身升级.通过tomcat) http://blog.csdn.net/mu0206mu/article/details/7204746 刚入手android一个 ...
- cobller安装操作系统
参考网站:https://blog.csdn.net/admin_root1/article/details/78911718 https://www.cnblogs.com/panwenbin-lo ...