git管理的web化
?
把git的管理做了web化,这一阶段告一段落。
?
前同事离开后,git的管理就交给我了,刚开始学了git之后,很久不用就会生疏的,于是就写了shell脚本用于给其他同事创建项目之用,其他的比如:项目分配权限,新成员加入,都手工操作了,觉得很烦,就告诫自己说,找个时间把这些做成web服务,让其他同事自己调用,一直拖了很久,就是不想动......
?
最近也许是一些事情的刺激,决定将这个事情处理完!
?
刚开始的思路:
?
1. 新项目申请人申请创建项目,经过校验成功之后,成为该项目的管理员,可以对该项目进行人员操作处理!
2. git管理员审批通过项目申请,创建新成员;
?
但涉及到校验、权限以及很多未知邮箱,无法确认身份,况且都是同事,就放弃了这个想法(或许是后续的升级),采用了更为简单的方式!如下:
?
1. 新增项目:项目名称、参与人员
2. 修改项目成员:项目名称、参与人员
3. 新成员加入:项目名称 成员名称 pubkey
?
这个小项目基本上都是以shell操作为主,辅助以webpy来提供http的服务。
?
声明: git的管理未采用@tec @arc等分组的处理
?
shell操作gitosis.conf,主要有以下几个处理:
1. 查询所有项目(排重);
?5. git add/commit/push/pull操作;
与git操作无异。
?
6. ssh到git服务器修改成员。
由于是本机操作,顾多了层ssh,先跳到跳板机,再做跳转!这样部署时也只能在跳板机做部署,或是加auth_key
ssh root@$host "ssh root@$host1 cp /etc/profile $FILE "ssh root@$host "ssh root@$host1 sed -i 's/gavingeng/gavingeng:$USER_NAME/g' /etc/profile"ssh root@$host "ssh root@$host1 source /etc/profile"?由于脚本比较多,定义的变量都是通过source ./constants.sh来做引入,参数的传递使用python的os.popen(cmd)接受来自web端的参数!
?
功能已基本完成,并且测试通过,页面的样式不是很好(有些ajax显示比较乱)
?
另外程序目前部署在本机,服务器上的jinja2无法安装成功,郁闷!
?
--------------------------------------------------
P。S。
git的相关操作是以管理员做为代理操作!所以在添加项目时,默认要添加管理员!