最近有些自动部署的需要,简单来说就是在一台机器上控制其他多个机器更新代码。 考虑过在脚本中通过 SSH 去连接然后执行命令,或者是通过 Rsync 来进行处理,始终觉得不是很好。
考虑到这个需求应该还是挺普遍的,所以就开发了 GitAgent 这个工具。
欢迎大家使用,欢迎 PR 。
传送门: https://github.com/alexazhou/GitAgent
一个允许你通过 Http 请求来操作其他机器上 Git 仓库的服务
GitAgent 作为一个 web 服务来运行. 接收来自 Http 请求的命令来对本地的 Git 仓库进行操作
有了 GitAgent ,你可以对其他机器上的 Git 仓库做下面这些事情
##安装
GitAgent 已经封装成库,通过以下命令即可安装
python3 -m pip install gitagent
然后可以一键运行:
python3 -m gitagent run
GitAgent 还包含了一个 client 😈,基于 requests 库,封装了通过 http 请求操作 GitAgent 的相关代码。如果使用 python 的话,只需要通过
from gitagent import client
import 之后,就可以直接使用啦
agent_client = client.AgentClient( SERVER_ADDR, SERVER_PORT, passwork=None )
agent_client.repo_list()
>> ['repo1','repo2','repo3']
agent_client.repo_status('repo1')
{'untracked_files': ['a.txt', 'config.json', 'xxx.json'], 'busy': False, 'hash': '827b39799a543fee30a174d44cd0c5451776e413', 'dirty': True, 'changed_files': {'R': [], 'A': [], 'D': [], 'M': []}, 'author': 'AlexaZhou', 'branch': 'master', 'message': '\u66f4\u65b0\u6587\u6863\n'}
agent_client.pull('repo1', branch='master', hash='abcdefg', command='cmd1', block=1)
>>{'ret': 'success', 'err_msg': None}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.