提交所有更改并通过电子邮件发送更改/添加/删除的文件

2024-09-29 23:21:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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部分。你知道吗


Tags: importgitprojecthometeamsubprocesspopentet
1条回答
网友
1楼 · 发布于 2024-09-29 23:21:00

解决问题的两个简单方法:

要么在提交时使用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请求

相关问题 更多 >

    热门问题