我是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部分。
答案 0 :(得分:0)
您的问题有两个简单的选择:
在提交时使用Git钩子推送到某些API并运行某种cron脚本来发送电子邮件。 http://githooks.com/
Git Hooks在git事件上运行脚本。您可以定义这些脚本。 快速下来:
可以在任何Initialized Git仓库中添加Git钩子脚本。
如果您执行ls -l .git/hooks/
,您将看到所有可用的挂钩。如果打开pre-commit
挂钩,则可以覆盖默认行为。 (请记住,当您犯错时备份原始脚本。)
或强>
使用github REST API获取当天的提交。这应该会在当天的提交中为您提供一些信息https://developer.github.com/v3/。样本将类似于以下内容:
获取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
这只会让你在当天做出承诺。查看github REST api文档以获取完整的详细信息。
对于您的用例,我建议使用REST API。 Git钩子更适合在预先提交时运行单元测试或过时,以防止不良拉取请求