Help us learn about your current experience with the documentation. Take the survey.

群组和项目访问请求 API

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

使用此 API 来管理群组和项目的访问请求。

有效访问级别

访问级别在 Gitlab::Access 模块中定义,系统识别以下级别:

  • 无访问权限 (0)
  • 最小访问权限 (5)
  • 访客 (10)
  • 规划者 (15)
  • 报告者 (20)
  • 开发者 (30)
  • 维护者 (40)
  • 拥有者 (50)

列出群组或项目的访问请求

获取经过身份验证的用户可见的访问请求列表。

GET /groups/:id/access_requests
GET /projects/:id/access_requests
属性 类型 必需 描述
id integer/string 项目的 ID 或 URL 编码路径

示例请求:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/access_requests"
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/access_requests"

示例响应:

[
 {
   "id": 1,
   "username": "raymond_smith",
   "name": "Raymond Smith",
   "state": "active",
   "locked": false,
   "avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/1/avatar.png",
   "web_url": "https://gitlab.com/raymond_smith",
   "requested_at": "2024-10-22T14:13:35Z"
 },
 {
   "id": 2,
   "username": "john_doe",
   "name": "John Doe",
   "state": "active",
   "locked": false,
   "avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/2/avatar.png",
   "web_url": "https://gitlab.com/john_doe",
   "requested_at": "2024-10-22T14:13:35Z"
 }
]

请求访问群组或项目

为经过身份验证的用户请求访问群组或项目。

POST /groups/:id/access_requests
POST /projects/:id/access_requests
属性 类型 必需 描述
id integer/string 群组或项目的 ID 或 URL 编码路径

示例请求:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>"  \
  --url "https://gitlab.example.com/api/v4/groups/:id/access_requests"
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>"  \
  --url "https://gitlab.example.com/api/v4/projects/:id/access_requests"

示例响应:

{
  "id": 1,
  "username": "raymond_smith",
  "name": "Raymond Smith",
  "state": "active",
  "created_at": "2012-10-22T14:13:35Z",
  "requested_at": "2012-10-22T14:13:35Z"
}

批准访问请求

批准指定用户的访问请求。

PUT /groups/:id/access_requests/:user_id/approve
PUT /projects/:id/access_requests/:user_id/approve
属性 类型 必需 描述
id integer/string 项目的 ID 或 URL 编码路径
user_id integer 访问请求者的用户 ID
access_level integer 有效的访问级别(默认值:30,即开发者角色)

示例请求:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>"  \
  --url "https://gitlab.example.com/api/v4/groups/:id/access_requests/:user_id/approve?access_level=20"
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>"  \
  --url "https://gitlab.example.com/api/v4/projects/:id/access_requests/:user_id/approve?access_level=20"

示例响应:

{
  "id": 1,
  "username": "raymond_smith",
  "name": "Raymond Smith",
  "state": "active",
  "created_at": "2012-10-22T14:13:35Z",
  "access_level": 20
}

拒绝访问请求

拒绝指定用户的访问请求。

DELETE /groups/:id/access_requests/:user_id
DELETE /projects/:id/access_requests/:user_id
属性 类型 必需 描述
id integer/string 项目的 ID 或 URL 编码路径
user_id integer 访问请求者的用户 ID

示例请求:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>"  \
  --url "https://gitlab.example.com/api/v4/groups/:id/access_requests/:user_id"
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/access_requests/:user_id"