一、背景
本文先通过一个shell命令,讲述如何创建gerrit项目,下一篇文章我们将使用java语言实现。
二、使用shell脚本创建gerrit项目
分为以下几步:
- 第一、创建负责人组;
- 第二、创建开发者组;
- 第三、创建项目;
- 第四、给项目赋权限。
前三步都比较简单,复杂的点主要在于权限这块。
#!/bin/bash
#
# 创建gerrit项目
#
# ./create_gerrit_project.sh user-service
#
# 参数说明:
#
# service-name: 项目名称
project_name=$1
die() {
echo $1
exit 1
}
[[ -z "$project_name" ]] && die "请输入项目名称"
group_owner_id="34dd8f718972d73c9a3474b2sfad2d52x2cf596f"
GERRIT_USER_PWD="admin:123456"
GERRIT_ADDR="http://192.168.5.60:8080/a"
# 1、创建负责人分组
owner_group_name="$project_name-owner"
rsp=$(curl -u $GERRIT_USER_PWD -s -X PUT "${GERRIT_ADDR}/groups/${owner_group_name}" -H "content-type: application/json" -d "{ \"description\": \"${owner_group_name}\", \"visible_to_all\": false, \"owner_id\": \"${group_owner_id}\"}")
owner_group_id=$(echo "${rsp:5}" | jq '.id' | sed 's#"##g')
# 2、创建开发者分组
dev_group_name="$project_name-dev"
rsp=$(curl -u $GERRIT_USER_PWD -s -X PUT "${GERRIT_ADDR}/groups/${dev_group_name}" -H "content-type: application/json" -d "{ \"description\": \"${dev_group_name}\", \"visible_to_all\": false, \"owner_id\": \"${owner_group_id}\"} ")
dev_group_id=$(echo "${rsp:5}" | jq '.id' | sed 's#"##g')
# 3、创建项目
real_project_name="root%2F${project_name}"
rsp=$(curl -u $GERRIT_USER_PWD -s -X PUT "${GERRIT_ADDR}/projects/${real_project_name}" -H "content-type: application/json" -d "{ \"description\": \"${project_name}\", \"submit_type\": \"INHERIT\", \"owners\": [ \"${owner_group_name}\" ]} ")
echo $rsp
# 4、设置权限
rsp=$(curl -u $GERRIT_USER_PWD -s -X POST "${GERRIT_ADDR}/projects/${real_project_name}/access" \
-H "content-type: application/json" \
-d "{ \"add\": { \
\"refs/*\": { \
\"