我是python和GIT新手。你知道吗
我的目标是将所有更改提交到GIT,并通过电子邮件发送更改/添加/删除的文件列表。此脚本将每天运行一次。你知道吗
我想到了这个。你知道吗
import os
import subprocess
from subprocess import *
accpath = '/home/Project'
subprocess.Popen(["git","init"],cwd = accpath)
subprocess.Popen(["git","add","."],cwd = accpath)
subprocess.Popen(["git","commit","-a","-m","'committed'"],cwd = accpath)
v = subprocess.Popen(["git","status","-s"],cwd = accpath)
输出:
Reinitialized existing Git repository in /home/Project/.git/
M Italy/ACMilan/team.cfg
D Italy/ACMilan/team.tet
A Italy/ACMilan/team.ttwq
[master 2381802] 'committed'
2 files changed, 1 insertions(+), 2 deletions(-)
delete mode 100644 Italy/ACMilan/team.tet
create mode 100644 Italy/ACMilan/team.ttwq
如何获得可理解的输出并通过电子邮件发送?我只需要M,D和A部分。你知道吗
解决问题的两个简单方法:
要么在提交时使用Git钩子推送到某个API,要么运行某种cron脚本来发送电子邮件。http://githooks.com/
Git钩子在Git事件上运行脚本。这些脚本可以由您定义。 快速运行:
Git钩子脚本可以添加到任何初始化的Git repo中。你知道吗
如果随后执行
ls -l .git/hooks/
,您将看到所有可用的钩子。如果打开pre-commit
钩子,可以重写默认行为。(请记住在出错时备份原始脚本。)或
使用githubrestapi获取当天的提交。这应该会给你一些关于那天提交的信息。示例如下:
获取https://api.github.com/repos/:owner/:repo/commits
调用时,您将得到一个已分页的提交列表。(请记住,您需要添加身份验证标头)。你知道吗
如果只希望接收当天的提交,请添加since参数:
获取https://api.github.com/repos/:owner/:repo/commits?since=2018-03-20T00:00:00+02:00
那只会给你一天的承诺。查看githubrestapi文档以获取完整的详细信息。你知道吗
对于您的用例,我建议您使用restapi。Git钩子更适合在预提交时运行单元测试或linter,以防止错误的pull请求
相关问题 更多 >
编程相关推荐