分享一个自己轮的远程自动部署工具[ GitAgent]

2016-07-31 17:28:44 +08:00
 AlexaZhou

起因

最近有些自动部署的需要,简单来说就是在一台机器上控制其他多个机器更新代码。 考虑过在脚本中通过 SSH 去连接然后执行命令,或者是通过 Rsync 来进行处理,始终觉得不是很好。

考虑到这个需求应该还是挺普遍的,所以就开发了 GitAgent 这个工具。

欢迎大家使用,欢迎 PR 。

传送门: https://github.com/alexazhou/GitAgent

GitAgent

一个允许你通过 Http 请求来操作其他机器上 Git 仓库的服务

介绍

GitAgent 作为一个 web 服务来运行. 接收来自 Http 请求的命令来对本地的 Git 仓库进行操作

有了 GitAgent ,你可以对其他机器上的 Git 仓库做下面这些事情

GitAgent 还支持:

GitAgent 还做了这些事情以方便使用:

##安装

GitAgent 已经封装成库,通过以下命令即可安装

python3 -m pip install gitagent

然后可以一键运行:

python3 -m gitagent run

Client

GitAgent 还包含了一个 client 😈,基于 requests 库,封装了通过 http 请求操作 GitAgent 的相关代码。如果使用 python 的话,只需要通过

from gitagent import client

import 之后,就可以直接使用啦

创建 client 对象

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}
3088 次点击
所在节点    分享创造
6 条回复
Powered
2016-08-01 15:36:43 +08:00
wysnylc
2016-08-01 16:44:30 +08:00
jenkis
angusun
2016-08-03 18:40:23 +08:00
支持!!!!
towser
2016-08-04 13:51:37 +08:00
README.md 中 Usage 段落有两个 step 2
AlexaZhou
2016-08-05 12:39:31 +08:00
@towser
真是好眼力,我都没看出来。

已经修正啦
wujunze
2016-11-16 16:02:55 +08:00
666

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/296163

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX