Protected branches API

Protected branches API

注意:此功能是在 GitLab 9.5 中引入的

有效的访问级别

访问级别在方法中定义. 当前,这些级别被认可:

从项目中获取受保护分支的列表.

  1. GET /projects/:id/protected_branches
  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/protected_branches"

响应示例:

  1. [ { "id": 1, "name": "master", "push_access_levels": [ { "access_level": 40, "access_level_description": "Maintainers" } ], "merge_access_levels": [ { "access_level": 40, "access_level_description": "Maintainers" } ], "code_owner_approval_required": "false" }, ... ]

响应示例:

  1. [ { "id": 1, "name": "master", "push_access_levels": [ { "access_level": 40, "user_id": null, "group_id": null, "access_level_description": "Maintainers" } ], "merge_access_levels": [ { "access_level": null, "user_id": null, "group_id": 1234, "access_level_description": "Example Merge Group" } ], "code_owner_approval_required": "false" }, ... ]

获取单个受保护分支或通配符受保护分支.

    响应示例:

    1. { "id": 1, "name": "master", "push_access_levels": [ { "access_level": 40, "access_level_description": "Maintainers" } ], "merge_access_levels": [ { "access_level": 40, "access_level_description": "Maintainers" } ], "code_owner_approval_required": "false" }

    使用 GitLab Starter,Bronze 或更高版本的用户还将看到user_idgroup_id参数:

    响应示例:

    1. { "id": 1, "name": "master", "push_access_levels": [ { "access_level": 40, "user_id": null, "group_id": null, "access_level_description": "Maintainers" } ], "merge_access_levels": [ { "access_level": null, "user_id": null, "group_id": 1234, "access_level_description": "Example Merge Group" } ], "code_owner_approval_required": "false" }
    1. POST /projects/:id/protected_branches

    响应示例:

    1. { "id": 1, "name": "*-stable", "push_access_levels": [ { "access_level": 30, "access_level_description": "Developers + Maintainers" } ], "merge_access_levels": [ { "access_level": 30, "access_level_description": "Developers + Maintainers" } ], "unprotect_access_levels": [ { "access_level": 40, "access_level_description": "Maintainers" } ], "code_owner_approval_required": "false" }

    使用 GitLab 还将看到user_idgroup_id参数:

    响应示例:

    / allowed_to_merge / allowed_to_unprotect数组中的元素应采用{user_id: integer}{group_id: integer}{access_level: integer} . 每个用户必须有权访问该项目,并且每个组都必须共享该项目 . 这些访问级别允许进行更精细的控制,并在 GitLab 10.3 EE .

    1. curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/protected_branches?name=*-stable&allowed_to_push%5B%5D%5Buser_id%5D=1"

    响应示例:

    1. { "id": 1, "name": "*-stable", "push_access_levels": [ { "access_level": null, "user_id": 1, "group_id": null, "access_level_description": "Administrator" } ], "merge_access_levels": [ { "access_level": 40, "user_id": null, "group_id": null, "access_level_description": "Maintainers" } ], "unprotect_access_levels": [ { "access_level": 40, "user_id": null, "group_id": null, "access_level_description": "Maintainers" } ], "code_owner_approval_required": "false" }
    1. DELETE /projects/:id/protected_branches/:name

      为给定的受保护分支受保护分支更新”需要代码所有者批准”选项.

      1. PATCH /projects/:id/protected_branches/:name