ADD protected branch Features

This commit is contained in:
Jasder
2020-12-03 15:24:40 +08:00
parent a24f0f8b45
commit 6a8ae5234b
40 changed files with 1252 additions and 11 deletions

View File

@@ -2650,6 +2650,283 @@ http://localhost:3000/api/ysfns/test-txt/compare/master...Jason/test-txt:develop
```
---
### 创建保护分支
```
POST /api/:owner/:repo/protected_branches
```
*示例*
```
curl -X POST \
-d 'branch_name=master' \
-d 'enable_push=true' \
-d 'enable_push_whitelist=true' \
-d 'enable_push_whitelist=["demo1", "demo1"]' \
-d 'enable_merge_whitelist=true' \
http://localhost:3000/api/trustie/truesite/protected_branches.json | jq
```
*请求参数说明:*
|参数名|必选|类型|说明|
|-|-|-|-|
|owner |是|string |项目拥有者登录名 |
|repo |否|boolean |仓库名称 |
|branch_name |是|string |保护分支名称 |
|enable_push |否|boolean |是否启用推送, true: 启用; false: 不启用, 默认为false |
|enable_push_whitelist |否|boolean |是否启用白名单推送, true: 启用; false: 不启用, 默认为false, 该参数与enable_push参数为单选项只能选择|
|push_whitelist_usernames |否|array |推送白名单用户(即具有写操作的项目成员名称的数组), 该参数与enable_push_whitelist参数配合使用 |
|enable_merge_whitelist |否|boolean |是否启用合并白名单, true: 启用, false: 不启用, 默认为false |
|merge_whitelist_usernames |否|array |合并白名单用户(即具有写操作的项目成员名称的数组), 该参数与enable_merge_whitelist配合使用 |
|enable_status_check |否|boolean |是否启用状态检查, true: 启用; false: 不启用, 默认为false |
|required_approvals |否|int |所需的批准数, 默认为0 |
|enable_approvals_whitelist |否|boolean |是否启用批准仅限列入白名单的用户或团队, true: 启用, false: 不启用, 默认为false |
|approvals_whitelist_username |否|array |审查者白名单(即具有写操作的项目成员名称的数组), 该参数与enable_approvals_whitelist配合使用 |
|block_on_rejected_reviews |否|boolean |是否启用拒绝审核阻止合并功能, true: 启用, false: 不启用, 默认为false |
|dismiss_stale_approvals |否|boolean |是否启用取消过时的批准, true: 启用, false: 不启用, 默认为false |
|require_signed_commits |否|boolean |是否需要签名提交, true: 是, false: 否, 默认为false |
|block_on_outdated_branch |否|boolean |如果拉取请求已经过时,是否阻止合并, true: 是, false: 否, 默认为false |
*返回参数说明:*
|参数名|类型|说明|
|-|-|-|
|branch_name |string |保护分支名称 |
|enable_push |boolean |是否启用推送, true: 启用; false: 不启用, 默认为false |
|enable_push_whitelist |boolean |是否启用白名单推送, true: 启用; false: 不启用, 默认为false, 该参数与enable_push参数为单选项只能选择|
|push_whitelist_usernames |array |推送白名单用户(即具有写操作的项目成员名称的数组), 该参数与enable_push_whitelist参数配合使用 |
|enable_merge_whitelist |boolean |是否启用合并白名单, true: 启用, false: 不启用, 默认为false |
|merge_whitelist_usernames |array |合并白名单用户(即具有写操作的项目成员名称的数组), 该参数与enable_merge_whitelist配合使用 |
|enable_status_check |boolean |是否启用状态检查, true: 启用; false: 不启用, 默认为false |
|required_approvals |int |所需的批准数, 默认为0 |
|enable_approvals_whitelist |boolean |是否启用批准仅限列入白名单的用户或团队, true: 启用, false: 不启用, 默认为false |
|approvals_whitelist_username |array |审查者白名单(即具有写操作的项目成员名称的数组), 该参数与enable_approvals_whitelist配合使用 |
|block_on_rejected_reviews |boolean |是否启用拒绝审核阻止合并功能, true: 启用, false: 不启用, 默认为false |
|dismiss_stale_approvals |boolean |是否启用取消过时的批准, true: 启用, false: 不启用, 默认为false |
|require_signed_commits |boolean |是否需要签名提交, true: 是, false: 否, 默认为false |
|block_on_outdated_branch |boolean |如果拉取请求已经过时,是否阻止合并, true: 是, false: 否, 默认为false |
|created_at |string|创建时间|
|updated_at |string|更新时间|
返回值
```
{
"branch_name": "develop",
"enable_push": true,
"required_approvals": 0,
"enable_status_check": true,
"enable_push_whitelist": true,
"enable_merge_whitelist": true,
"enable_approvals_whitelist": false,
"dismiss_stale_approvals": false,
"block_on_rejected_reviews": false,
"block_on_outdated_branch": false,
"require_signed_commits": false,
"merge_whitelist_usernames": [
"jasder"
],
"push_whitelist_usernames": [
"jasder"
],
"approvals_whitelist_usernames": [],
"created_at": "2020-12-02 17:40",
"updated_at": "2020-12-03 11:29"
}
```
---
### 修改保护分支参数
```
PATCH /api/:owner/:repo/protected_branches/:branch_name
```
*示例*
```
curl -X PATCH \
-d 'branch_name=master' \
-d 'enable_push=true' \
-d 'enable_push_whitelist=true' \
-d 'enable_push_whitelist=["demo1", "demo1"]' \
-d 'enable_merge_whitelist=true' \
http://localhost:3000/api/trustie/truesite/protected_branches/master.json | jq
```
*请求参数说明:*
|参数名|必选|类型|说明|
|-|-|-|-|
|owner |是|string |项目拥有者登录名 |
|repo |否|boolean |仓库名称 |
|branch_name |是|string |保护分支名称 |
|enable_push |否|boolean |是否启用推送, true: 启用; false: 不启用, 默认为false |
|enable_push_whitelist |否|boolean |是否启用白名单推送, true: 启用; false: 不启用, 默认为false, 该参数与enable_push参数为单选项只能选择|
|push_whitelist_usernames |否|array |推送白名单用户(即具有写操作的项目成员名称的数组), 该参数与enable_push_whitelist参数配合使用 |
|enable_merge_whitelist |否|boolean |是否启用合并白名单, true: 启用, false: 不启用, 默认为false |
|merge_whitelist_usernames |否|array |合并白名单用户(即具有写操作的项目成员名称的数组), 该参数与enable_merge_whitelist配合使用 |
|enable_status_check |否|boolean |是否启用状态检查, true: 启用; false: 不启用, 默认为false |
|required_approvals |否|int |所需的批准数, 默认为0 |
|enable_approvals_whitelist |否|boolean |是否启用批准仅限列入白名单的用户或团队, true: 启用, false: 不启用, 默认为false |
|approvals_whitelist_username |否|array |审查者白名单(即具有写操作的项目成员名称的数组), 该参数与enable_approvals_whitelist配合使用 |
|block_on_rejected_reviews |否|boolean |是否启用拒绝审核阻止合并功能, true: 启用, false: 不启用, 默认为false |
|dismiss_stale_approvals |否|boolean |是否启用取消过时的批准, true: 启用, false: 不启用, 默认为false |
|require_signed_commits |否|boolean |是否需要签名提交, true: 是, false: 否, 默认为false |
|block_on_outdated_branch |否|boolean |如果拉取请求已经过时,是否阻止合并, true: 是, false: 否, 默认为false |
*返回参数说明:*
|参数名|类型|说明|
|-|-|-|
|branch_name |string |保护分支名称 |
|enable_push |boolean |是否启用推送, true: 启用; false: 不启用, 默认为false |
|enable_push_whitelist |boolean |是否启用白名单推送, true: 启用; false: 不启用, 默认为false, 该参数与enable_push参数为单选项只能选择|
|push_whitelist_usernames |array |推送白名单用户(即具有写操作的项目成员名称的数组), 该参数与enable_push_whitelist参数配合使用 |
|enable_merge_whitelist |boolean |是否启用合并白名单, true: 启用, false: 不启用, 默认为false |
|merge_whitelist_usernames |array |合并白名单用户(即具有写操作的项目成员名称的数组), 该参数与enable_merge_whitelist配合使用 |
|enable_status_check |boolean |是否启用状态检查, true: 启用; false: 不启用, 默认为false |
|required_approvals |int |所需的批准数, 默认为0 |
|enable_approvals_whitelist |boolean |是否启用批准仅限列入白名单的用户或团队, true: 启用, false: 不启用, 默认为false |
|approvals_whitelist_username |array |审查者白名单(即具有写操作的项目成员名称的数组), 该参数与enable_approvals_whitelist配合使用 |
|block_on_rejected_reviews |boolean |是否启用拒绝审核阻止合并功能, true: 启用, false: 不启用, 默认为false |
|dismiss_stale_approvals |boolean |是否启用取消过时的批准, true: 启用, false: 不启用, 默认为false |
|require_signed_commits |boolean |是否需要签名提交, true: 是, false: 否, 默认为false |
|block_on_outdated_branch |boolean |如果拉取请求已经过时,是否阻止合并, true: 是, false: 否, 默认为false |
|created_at |string|创建时间|
|updated_at |string|更新时间|
返回值
```
{
"branch_name": "develop",
"enable_push": true,
"required_approvals": 0,
"enable_status_check": true,
"enable_push_whitelist": true,
"enable_merge_whitelist": true,
"enable_approvals_whitelist": false,
"dismiss_stale_approvals": false,
"block_on_rejected_reviews": false,
"block_on_outdated_branch": false,
"require_signed_commits": false,
"merge_whitelist_usernames": [
"jasder"
],
"push_whitelist_usernames": [
"jasder"
],
"approvals_whitelist_usernames": [],
"created_at": "2020-12-02 17:40",
"updated_at": "2020-12-03 11:29"
}
```
---
### 删除保护分支
```
DELETE /api/:owner/:repo/protected_branches/:branch_name
```
*示例*
```
curl -X DELETE \
-d 'branch_name=master' \
http://localhost:3000/api/trustie/truesite/protected_branches/master.json | jq
```
*请求参数说明:*
|参数名|必选|类型|说明|
|-|-|-|-|
|owner |是|string |项目拥有者登录名 |
|repo |否|boolean |仓库名称 |
|branch_name |是|string |保护分支名称 |
*返回参数说明:*
|参数名|类型|说明|
|-|-|-|
|status |int|状态值0: 请求成功; -1: 请求失败|
|message |string|信息说明|
返回值
```
{
"status": 0,
"message": "success"
}
```
---
### 获取保护分支列表
```
GET /api/:owner/:repo/protected_branches/
```
*示例*
```
curl -X GET \
-d "page=1" \
-d "limit=5" \
http://localhost:3000/api/trustie/truesite/protected_branches.json | jq
```
*请求参数说明:*
|参数名|必选|类型|说明|
|-|-|-|-|
|owner |是|string |项目拥有者登录名 |
|repo |否|boolean |仓库名称 |
|page |否|string |页数,第几页 |
|limit |否|string |每页多少条数据默认15条 |
*返回参数说明:*
|参数名|类型|说明|
|-|-|-|
|total_count |int | 总记录数 |
|branch_name |string |保护分支名称 |
|enable_push |boolean |是否启用推送, true: 启用; false: 不启用, 默认为false |
|enable_push_whitelist |boolean |是否启用白名单推送, true: 启用; false: 不启用, 默认为false, 该参数与enable_push参数为单选项只能选择|
|push_whitelist_usernames |array |推送白名单用户(即具有写操作的项目成员名称的数组), 该参数与enable_push_whitelist参数配合使用 |
|enable_merge_whitelist |boolean |是否启用合并白名单, true: 启用, false: 不启用, 默认为false |
|merge_whitelist_usernames |array |合并白名单用户(即具有写操作的项目成员名称的数组), 该参数与enable_merge_whitelist配合使用 |
|enable_status_check |boolean |是否启用状态检查, true: 启用; false: 不启用, 默认为false |
|required_approvals |int |所需的批准数, 默认为0 |
|enable_approvals_whitelist |boolean |是否启用批准仅限列入白名单的用户或团队, true: 启用, false: 不启用, 默认为false |
|approvals_whitelist_username |array |审查者白名单(即具有写操作的项目成员名称的数组), 该参数与enable_approvals_whitelist配合使用 |
|block_on_rejected_reviews |boolean |是否启用拒绝审核阻止合并功能, true: 启用, false: 不启用, 默认为false |
|dismiss_stale_approvals |boolean |是否启用取消过时的批准, true: 启用, false: 不启用, 默认为false |
|require_signed_commits |boolean |是否需要签名提交, true: 是, false: 否, 默认为false |
|block_on_outdated_branch |boolean |如果拉取请求已经过时,是否阻止合并, true: 是, false: 否, 默认为false |
|created_at |string|创建时间|
|updated_at |string|更新时间|
返回值
```
{
"total_count": 1,
"protected_branches": [
{
"branch_name": "develop",
"enable_push": true,
"required_approvals": 0,
"enable_status_check": true,
"enable_push_whitelist": true,
"enable_merge_whitelist": true,
"enable_approvals_whitelist": false,
"dismiss_stale_approvals": false,
"block_on_rejected_reviews": false,
"block_on_outdated_branch": false,
"require_signed_commits": false,
"merge_whitelist_usernames": [
"jasder"
],
"push_whitelist_usernames": [
"jasder"
],
"approvals_whitelist_usernames": [],
"created_at": "2020-12-02 17:40",
"updated_at": "2020-12-03 11:29"
}
]
}
```
---
### DevOps相关api
---