Groups
Description of JSON object structures
Structure describing a "Group"
| Field | Type | Description |
|---|---|---|
id |
String | Unique group UUID |
alias |
String | Group alias |
title |
String | Group name |
description |
String | Group description |
fullTraversalPath |
String | Full group path, for example owner/group/subgroup |
ownerAlias |
String | Group owner alias |
ownerAliasType |
String | Group owner type: USER or GROUP |
isPrivate |
Boolean | Group privacy |
Structure describing a "Merge request approval rule"
| Field | Type | Description |
|---|---|---|
uuid |
String | Unique rule UUID |
name |
String | Rule name |
branchType |
String | Branch type |
targetBranch |
String | Target branch. Required when branchType = DEFAULT |
minimalApprovals |
Integer | Minimum number of approvals |
allowedApproversUuid |
Array(String) | UUIDs of users who can approve merge requests |
Structure describing a "Branch type for an approval rule"
| Value | Description |
|---|---|
ALL_BRANCHES |
All branches |
ALL_PROTECTED_BRANCHES |
All protected branches |
DEFAULT |
Default branch or targetBranch |
Structure describing a "Merge request squash setting"
| Value | Description |
|---|---|
REQUIRE |
Squash is required |
ENCOURAGE |
Squash is recommended |
ALLOW |
Squash is allowed |
DO_NOT_ALLOW |
Squash is prohibited |
Structure describing a "Merge method"
| Value | Description |
|---|---|
MERGE_COMMIT |
Creating a merge commit |
MERGE_COMMIT_WITH_SEMI_LINEAR_HISTORY |
Merge commit with semi-linear history |
FAST_FORWARD_MERGE |
Fast-forward merge |
REBASE |
Merge via rebase |
Structure describing "Merge request message templates"
| Field | Type | Description |
|---|---|---|
mergeCommitMessage |
String | Merge commit message template |
squashCommitMessage |
String | Squash commit message template |
mergeRequestDescriptionTemplate |
String | Merge request description template |
canEditMergeCommitMessage |
Boolean | Whether editing the merge commit message is allowed |
Structure describing "Merge request approval settings"
| Field | Type | Description |
|---|---|---|
canOverrideApprovals |
Boolean | Allow overriding approval settings at the project level |
preventAuthorApproving |
Boolean | Prevent the request author from approving it |
preventCommitterApproving |
Boolean | Prevent the committer from approving the request |
removeApprovalsOnPush |
Boolean | Reset approvals on a new push |
checkCiCdStatus |
Boolean | Consider CI/CD status when merging |
mergeRequestPipelineStatusCheckEnabled |
Boolean | Check merge request pipeline status |
branchPipelineStatusCheckEnabled |
Boolean | Check branch pipeline status |
mergeResultPipelineStatusCheckEnabled |
Boolean | Check merge result pipeline status |
editMergedMergeRequest |
Boolean | Allow editing a merged merge request |
enableRemoveSourceBranchByDefault |
Boolean | Delete the source branch by default |
removeApprovalsOnChangingTargetBranch |
Boolean | Reset approvals when the target branch changes |
Structure describing a "CI/CD variable"
| Field | Type | Description |
|---|---|---|
id |
String | Unique variable UUID |
key |
String | Variable name |
value |
String | Variable value |
mask |
Boolean | Whether to mask the variable value in logs |
variableType |
String | Variable type: VARIABLE_TYPE or FILE_TYPE |
environmentScope |
String | Environment to which the variable applies |
Structure describing "Pipeline lifetime settings"
| Field | Type | Description |
|---|---|---|
lifetime |
Integer | Pipeline lifetime. Value must be > 0 |
enabled |
Boolean | Whether the lifetime limit is enabled |
Structure describing a "Group runner"
| Field | Type | Description |
|---|---|---|
id |
String | Unique runner UUID |
name |
String | Runner name |
description |
String | Runner description |
tags |
Array(String) | Runner tags |
ownerType |
String | Runner owner type, GROUP for a group |
Structure describing a "Branch protection rule"
| Field | Type | Description |
|---|---|---|
id |
String | Unique rule UUID |
branchTemplate |
String | Pattern for the branch name to which protection applies |
allowedToPush |
String | Access level for editing files in the branch |
allowedToMerge |
String | Access level for merging into the branch |
allowForcePush |
Boolean | Whether push --force is allowed |
codeOwnerApprovalRequired |
Boolean | Whether code owner approval is required |
autoMergeByDefault |
Boolean | Enable auto-merge by default |
priority |
Integer | Rule priority |
Structure describing an "Access level"
| Value | Description |
|---|---|
NO_ONE |
No one |
ADMINS |
Administrators |
DEVELOPER |
Developers and above |
Structure describing a "Tag protection rule"
| Field | Type | Description |
|---|---|---|
uuid |
String | Unique rule UUID |
tagTemplate |
String | Pattern for the tag name to which protection applies |
allowToCreate |
String | Access level for creating tags |
Structure describing a "Group member role"
| Value | Description |
|---|---|
GUEST |
Guest |
REPORTER |
Reporter |
DEVELOPER |
Developer |
ADMIN |
Administrator |
Group methods
Learn about group functionality here
Get a list of all groups
GET /group
The request returns a list of all groups accessible to the current user. You can configure the number of items displayed per page
| Query parameter | Type | Description |
|---|---|---|
page |
Integer | Page number, starting from 0 |
size |
Integer | Number of items per page |
sort |
String | Sorting in the format field,direction, for example title,asc |
Responses
STATUS 200 - Group list was returned successfully.
STATUS 403 - Access denied.
Get a list of all my groups
GET /group/my
The request returns a list of groups owned by the current user. You can configure the number of items displayed per page
| Query parameter | Type | Description |
|---|---|---|
page |
Integer | Page number, starting from 0 |
size |
Integer | Number of items per page |
Responses
STATUS 200 - Group list was returned successfully.
STATUS 403 - Access denied.
Get a list of all groups the user belongs to
GET /group/shared
The request returns a list of groups in which the current user is a member. You can configure the number of items displayed per page
| Query parameter | Type | Description |
|---|---|---|
page |
Integer | Page number, starting from 0 |
size |
Integer | Number of items per page |
Responses
STATUS 200 - Group list was returned successfully.
STATUS 403 - Access denied.
Create a group
POST /group
The request creates and returns a group or subgroup
To create a subgroup, specify the full parent group path in ownerAlias and set ownerAliasType to GROUP
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description |
|---|---|---|
ownerAlias |
String | Owner alias: username if ownerAliasType = USER, or full group path if GROUP (required parameter) |
ownerAliasType |
String | Owner type: USER or GROUP (required parameter) |
alias |
String | Group alias (required parameter) |
title |
String | Group name (required parameter) |
description |
String | Group description |
isPrivate |
Boolean | Group privacy. Defaults to true |
JSON object example
{
"ownerAlias": "USER",
"ownerAliasType": "USER",
"alias": "g-new",
"title": "Новая группа",
"description": "",
"isPrivate": true
}
Responses
STATUS 200 - The group was created and returned successfully. The fullTraversalPath field contains the full path of the created group.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get a group by its full path
GET /group/{groupPath}/-/overview
The request returns a group by its full path
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Group was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Transfer a group
POST /group/transfer
The request transfers a group to another owner. The new full group path is returned in fullTraversalPath
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description |
|---|---|---|
ownerAlias |
String | Username or full path of the group to which the group is transferred (required parameter) |
groupAlias |
String | Full path of the transferred group (required parameter) |
JSON object example
{
"ownerAlias": "USER",
"groupAlias": "owner/group/subgroup"
}
Responses
STATUS 200 - The group was transferred successfully. The fullTraversalPath field contains the new full group path.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Group import settings methods
The methods in this section are available only for the root group.
Get group import settings
GET /group/{groupPath}/-/setting/import
The request returns group import settings
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Group import settings were returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Edit group import settings
POST /group/{groupPath}/-/setting/import
The request changes group import settings
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description |
|---|---|---|
allowImportBranchProtection |
Boolean | Allow importing branch protection rules |
allowImportEnvironmentProtection |
Boolean | Allow importing environment protection rules |
allowImportTagProtection |
Boolean | Allow importing tag protection rules |
allowImportMrApprovalConfigAndRules |
Boolean | Allow importing merge request approval settings and rules |
allowImportPipelineLifetimeSetting |
Boolean | Allow importing pipeline lifetime settings |
All request parameters are optional.
JSON object example
{
"allowImportBranchProtection": true
}
Responses
STATUS 200 - Group import settings were updated successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Merge request methods
The methods in this section are available only for the root group.
Create a merge request approval rule
POST /group/{groupPath}/-/merge-request/approval/rule/create
The request creates and returns a merge request approval rule
Only a group member can be an approver.
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description |
|---|---|---|
name |
String | Rule name (required parameter) |
branchType |
String | Branch type (required parameter) |
targetBranch |
String | Target branch. Required when branchType = DEFAULT |
minimalApprovals |
Integer | Minimum number of approvals (required parameter) |
allowedApproversUuid |
Array(String) | UUIDs of users who can approve the request (required parameter) |
JSON object example
{
"name": "rule-1",
"branchType": "ALL_BRANCHES",
"minimalApprovals": 1,
"allowedApproversUuid": [
"8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51"
]
}
Responses
STATUS 200 - Approval rule was created and returned successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get a list of approval rules
GET /group/{groupPath}/-/merge-request/approval/rule
The request returns a list of merge request approval rules. You can configure the number of items displayed per page
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
| Query parameter | Type | Description |
|---|---|---|
page |
Integer | Page number, starting from 0 |
size |
Integer | Number of items per page |
sort |
String | Sorting in the format field,direction, for example name,asc |
Responses
STATUS 200 - Approval rule list was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get an approval rule by UUID
GET /group/{groupPath}/-/merge-request/approval/rule/{approvalRuleUuid}
The request returns an approval rule by its UUID
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
approvalRuleUuid |
String | Approval rule UUID |
Responses
STATUS 200 - Approval rule was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Edit an approval rule
PATCH /group/{groupPath}/-/merge-request/approval/rule/edit
The request modifies and returns a merge request approval rule by its UUID
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
PATCH request body structure:
| Parameter | Type | Description |
|---|---|---|
uuid |
String | Rule UUID (required parameter) |
name |
String | New rule name |
targetBranch |
String | New target branch |
branchType |
String | New branch type |
minimalApprovals |
Integer | New minimum number of approvals |
allowedApproversUuid |
Array(String) | New list of UUIDs of users who can approve the request |
All parameters except uuid are optional.
JSON object example
{
"uuid": "5a4b4b4e-aaaa-aaaa-aaaa-2d0c7e0f3f11",
"name": "rule-edited"
}
Responses
STATUS 200 - Approval rule was updated and returned successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Delete a merge request approval rule
DELETE /group/{groupPath}/-/merge-request/approval/rule/{approvalRuleUuid}
The request deletes a merge request approval rule
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
approvalRuleUuid |
String | Approval rule UUID |
Responses
STATUS 200 - Approval rule was deleted successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get merge request squash settings
GET /group/{groupPath}/-/merge-request/merge-request-squash
The request returns the merge request squash setting
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Squash setting was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Edit merge request squash settings
PATCH /group/{groupPath}/-/merge-request/merge-request-squash/edit
The request changes the merge request squash setting
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
PATCH request body structure:
| Parameter | Type | Description |
|---|---|---|
mergeRequestSquashSetting |
String | Squash setting (required parameter) |
JSON object example
{
"mergeRequestSquashSetting": "REQUIRE"
}
Responses
STATUS 200 - Squash setting was updated successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get merge method
GET /group/{groupPath}/-/merge-request/merge-request-method-type
The request returns the merge request merge method
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Merge method was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Edit merge method
PATCH /group/{groupPath}/-/merge-request/merge-request-method-type/edit
The request changes the merge request merge method
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
PATCH request body structure:
| Parameter | Type | Description |
|---|---|---|
mergedRequestMethodType |
String | Merge method (required parameter) |
JSON object example
{
"mergedRequestMethodType": "FAST_FORWARD_MERGE"
}
Responses
STATUS 200 - Merge method was updated successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get merge request message templates
GET /group/{groupPath}/-/merge-request/merge-request-template
The request returns merge request message templates
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Message templates were returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Edit merge request message templates
PATCH /group/{groupPath}/-/merge-request/merge-request-template/edit
The request changes merge request message templates
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
PATCH request body structure:
| Parameter | Type | Description |
|---|---|---|
mergeCommitMessage |
String | Merge commit message template |
squashCommitMessage |
String | Squash commit message template |
mergeRequestDescriptionTemplate |
String | Merge request description template |
canEditMergeCommitMessage |
Boolean | Whether editing the merge commit message is allowed |
All request parameters are optional. The templates support %{source_branch} and %{target_branch} substitutions.
JSON object example
{
"mergeCommitMessage": "Merge '%{source_branch}' into '%{target_branch}'"
}
Responses
STATUS 200 - Message templates were updated successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get merge request approval settings
GET /group/{groupPath}/-/merge-request/approval/configuration
The request returns merge request approval settings
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Approval settings were returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Edit merge request approval settings
PATCH /group/{groupPath}/-/merge-request/approval/configuration/edit
The request changes merge request approval settings
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
PATCH request body structure:
| Parameter | Type | Description |
|---|---|---|
canOverrideApprovals |
Boolean | Allow overriding approval settings at the project level |
preventAuthorApproving |
Boolean | Prevent the request author from approving it |
preventCommitterApproving |
Boolean | Prevent the committer from approving the request |
removeApprovalsOnPush |
Boolean | Reset approvals on a new push |
checkCiCdStatus |
Boolean | Consider CI/CD status when merging |
mergeRequestPipelineStatusCheckEnabled |
Boolean | Check merge request pipeline status |
branchPipelineStatusCheckEnabled |
Boolean | Check branch pipeline status |
mergeResultPipelineStatusCheckEnabled |
Boolean | Check merge result pipeline status |
editMergedMergeRequest |
Boolean | Allow editing a merged merge request |
enableRemoveSourceBranchByDefault |
Boolean | Delete the source branch by default |
removeApprovalsOnChangingTargetBranch |
Boolean | Reset approvals when the target branch changes |
All request parameters are optional.
JSON object example
{
"checkCiCdStatus": true
}
Responses
STATUS 200 - Approval settings were updated successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Apply merge request settings to group projects
POST /group/{groupPath}/-/merge-request/apply-settings-to-projects
The request applies group merge request settings to group projects
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Merge request settings were applied to group projects successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
CI/CD methods
Create CI/CD variables
POST /group/{groupPath}/-/cicd/variable
The request creates and returns group CI/CD variables
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description |
|---|---|---|
ciCdVariablesToAdd |
Array(CiCdVariable) | List of variables to create (required parameter) |
Variable fields:
| Parameter | Type | Description |
|---|---|---|
key |
String | Variable name (required parameter) |
value |
String | Variable value (required parameter) |
mask |
Boolean | Whether to mask the variable value in logs. Defaults to false |
variableType |
String | Variable type: VARIABLE_TYPE (default) or FILE_TYPE |
environmentScope |
String | Environment to which the variable applies |
JSON object example
{
"ciCdVariablesToAdd": [
{
"key": "VAR_1",
"value": "1"
}
]
}
Responses
STATUS 200 - CI/CD variables were created and returned successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get a list of CI/CD variables
GET /group/{groupPath}/-/cicd/variable
The request returns a list of group CI/CD variables. You can configure the number of items displayed per page
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
| Query parameter | Type | Description |
|---|---|---|
page |
Integer | Page number, starting from 0 |
size |
Integer | Number of items per page |
sort |
String | Sorting in the format field,direction, for example key,asc |
Responses
STATUS 200 - CI/CD variable list was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Edit CI/CD variables
PUT /group/{groupPath}/-/cicd/variable
The request changes group CI/CD variables
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
PUT request body structure:
| Parameter | Type | Description |
|---|---|---|
ciCdVariablesToUpdate |
Array(CiCdVariable) | List of variables to update (required parameter) |
Variable fields:
| Parameter | Type | Description |
|---|---|---|
id |
String | Variable UUID (required parameter) |
key |
String | Variable name (required parameter) |
value |
String | Variable value (required parameter) |
mask |
Boolean | Whether to mask the variable value in logs (required parameter) |
variableType |
String | Variable type: VARIABLE_TYPE or FILE_TYPE (required parameter) |
environmentScope |
String | Environment to which the variable applies |
All fields except environmentScope are required.
JSON object example
{
"ciCdVariablesToUpdate": [
{
"id": "5a4b4b4e-aaaa-aaaa-aaaa-2d0c7e0f3f11",
"key": "VAR_1",
"value": "2",
"mask": false,
"variableType": "VARIABLE_TYPE"
}
]
}
Responses
STATUS 200 - CI/CD variables were updated successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Delete a CI/CD variable
DELETE /group/{groupPath}/-/cicd/variable/{variableUuid}
The request deletes a group CI/CD variable
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
variableUuid |
String | CI/CD variable UUID |
Responses
STATUS 200 - CI/CD variable was deleted successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get pipeline lifetime settings
GET /group/{groupPath}/-/cicd/pipeline-lifetime
The request returns group pipeline lifetime settings
This method is available only for the root group.
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Pipeline lifetime settings were returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Edit pipeline lifetime settings
PATCH /group/{groupPath}/-/cicd/pipeline-lifetime/edit
The request changes group pipeline lifetime settings
This method is available only for the root group.
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
PATCH request body structure:
| Parameter | Type | Description |
|---|---|---|
lifetime |
Integer | Pipeline lifetime. Value must be greater than 0 |
enabled |
Boolean | Whether the lifetime limit is enabled |
All request parameters are optional.
JSON object example
{
"lifetime": 30
}
Responses
STATUS 200 - Pipeline lifetime settings were updated successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Apply pipeline lifetime settings to group projects
POST /group/{groupPath}/-/cicd/apply-settings-to-projects
The request applies group pipeline lifetime settings to group projects
This method is available only for the root group.
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Pipeline lifetime settings were applied to group projects successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Runner methods
A group runner cannot be created through the REST API. Register it using registrationUrl and registrationToken obtained from Get runner registration information.
Get runner registration information
GET /group/{groupPath}/-/runners/registration-info
The request returns the URL and token for group runner registration
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Runner registration information was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Reset the runner registration token
POST /group/{groupPath}/-/runners/reset-registration-token
The request resets the group runner registration token and returns a new value
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Runner registration token was reset successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get a list of group runners
GET /group/{groupPath}/-/runners
The request returns a list of group runners. You can configure the number of items displayed per page
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
| Query parameter | Type | Description |
|---|---|---|
page |
Integer | Page number, starting from 0 |
size |
Integer | Number of items per page |
Responses
STATUS 200 - Group runner list was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get a runner by UUID
GET /group/{groupPath}/-/runners/{runnerUuid}
The request returns a group runner by its UUID
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
runnerUuid |
String | Runner UUID |
Responses
STATUS 200 - Runner was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get a list of runner jobs
GET /group/{groupPath}/-/runners/{runnerUuid}/jobs
The request returns a list of jobs for a group runner
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
runnerUuid |
String | Runner UUID |
| Query parameter | Type | Description |
|---|---|---|
jobStatus |
String | Job status. The value must match the status name exactly, in uppercase (for example, SUCCESS); success is not accepted |
Responses
STATUS 200 - Runner job list was returned successfully.
STATUS 400 - Invalid value of the parameter jobStatus.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get a list of group runner jobs
GET /group/{groupPath}/-/runners/all/jobs
The request returns a list of jobs for all group runners
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
| Query parameter | Type | Description |
|---|---|---|
jobStatus |
String | Job status. The value must match the status name exactly, in uppercase (for example, SUCCESS); success is not accepted |
Responses
STATUS 200 - Group runner job list was returned successfully.
STATUS 400 - Invalid value of the parameter jobStatus.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Edit a runner
PATCH /group/{groupPath}/-/runners/{runnerUuid}/edit
The request modifies and returns a group runner
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
runnerUuid |
String | Runner UUID |
Request
Supported JSON format
PATCH request body structure:
| Parameter | Type | Description |
|---|---|---|
name |
String | Runner name |
description |
String | Runner description |
tags |
Array(String) | Runner tags |
All request parameters are optional.
JSON object example
{
"name": "runner",
"description": "Описание агента",
"tags": [
"tag"
]
}
Responses
STATUS 200 - Runner was updated and returned successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Stop a runner
POST /group/{groupPath}/-/runners/{runnerUuid}/shutdown
The request stops a group runner
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
runnerUuid |
String | Runner UUID |
Responses
STATUS 200 - Runner shutdown command was sent successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Delete a runner
DELETE /group/{groupPath}/-/runners/{runnerUuid}
The request deletes a group runner
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
runnerUuid |
String | Runner UUID |
Responses
STATUS 200 - Runner was deleted successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Branch protection methods
The methods in this section are available only for the root group.
Create a branch protection rule
POST /group/{groupPath}/-/branch-protection
The request creates and returns a group branch protection rule
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description |
|---|---|---|
branchTemplate |
String | Pattern for the branch name to which protection applies (required parameter) |
allowedToPush |
String | Access level for editing files in the branch (required parameter) |
allowedToMerge |
String | Access level for merging into the branch (required parameter) |
allowForcePush |
Boolean | Whether push --force is allowed |
codeOwnerApprovalRequired |
Boolean | Whether code owner approval is required |
autoMergeByDefault |
Boolean | Enable auto-merge by default |
priority |
Integer | Rule priority |
JSON object example
{
"branchTemplate": "main",
"allowedToPush": "DEVELOPER",
"allowedToMerge": "DEVELOPER"
}
Responses
STATUS 200 - Branch protection rule was created and returned successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get a list of branch protection rules
GET /group/{groupPath}/-/branch-protection
The request returns a list of group branch protection rules. You can configure the number of items displayed per page
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
| Query parameter | Type | Description |
|---|---|---|
page |
Integer | Page number, starting from 0 |
size |
Integer | Number of items per page |
sort |
String | Sorting in the format field,direction, for example priority,desc |
Responses
STATUS 200 - Branch protection rule list was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get a branch protection rule by UUID
GET /group/{groupPath}/-/branch-protection/{branchProtectionUuid}
The request returns a branch protection rule by its UUID
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
branchProtectionUuid |
String | Branch protection rule UUID |
Responses
STATUS 200 - Branch protection rule was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Edit a branch protection rule
PUT /group/{groupPath}/-/branch-protection/{branchProtectionUuid}
The request modifies a group branch protection rule
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
branchProtectionUuid |
String | Branch protection rule UUID |
Request
Supported JSON format
PUT request body structure:
| Parameter | Type | Description |
|---|---|---|
allowedToPush |
String | Access level for editing files in the branch |
allowedToMerge |
String | Access level for merging into the branch |
allowForcePush |
Boolean | Whether push --force is allowed |
codeOwnerApprovalRequired |
Boolean | Whether code owner approval is required |
autoMergeByDefault |
Boolean | Enable auto-merge by default |
priority |
Integer | Rule priority |
All request parameters are optional. The branchTemplate field cannot be changed.
JSON object example
{
"allowedToPush": "ADMINS"
}
Responses
STATUS 200 - Branch protection rule was updated successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Apply branch protection rules to group projects
POST /group/{groupPath}/-/branch-protection/apply-settings-to-projects
The request applies group branch protection rules to group projects
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Branch protection rules were applied to group projects successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Delete a branch protection rule
DELETE /group/{groupPath}/-/branch-protection/{branchProtectionUuid}
The request deletes a group branch protection rule
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
branchProtectionUuid |
String | Branch protection rule UUID |
Responses
STATUS 200 - Branch protection rule was deleted successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Tag protection methods
The methods in this section are available only for the root group.
Create a tag protection rule
POST /group/{groupPath}/-/tag-protection/create
The request creates and returns a group tag protection rule
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description |
|---|---|---|
tagTemplate |
String | Pattern for the tag name to which protection applies (required parameter) |
allowToCreate |
String | Access level for creating tags (required parameter) |
JSON object example
{
"tagTemplate": "v*",
"allowToCreate": "DEVELOPER"
}
Responses
STATUS 200 - Tag protection rule was created and returned successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get a list of tag protection rules
GET /group/{groupPath}/-/tag-protection
The request returns a list of group tag protection rules. You can configure the number of items displayed per page
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
| Query parameter | Type | Description |
|---|---|---|
page |
Integer | Page number, starting from 0 |
size |
Integer | Number of items per page |
sort |
String | Sorting in the format field,direction, for example tagTemplate,asc |
Responses
STATUS 200 - Tag protection rule list was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Get a tag protection rule by UUID
GET /group/{groupPath}/-/tag-protection/{tagProtectionUuid}
The request returns a tag protection rule by its UUID
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
tagProtectionUuid |
String | Tag protection rule UUID |
Responses
STATUS 200 - Tag protection rule was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Edit a tag protection rule
PUT /group/{groupPath}/-/tag-protection/{tagProtectionUuid}
The request modifies a group tag protection rule
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
tagProtectionUuid |
String | Tag protection rule UUID |
Request
Supported JSON format
PUT request body structure:
| Parameter | Type | Description |
|---|---|---|
uuid |
String | Rule UUID. The value must match the UUID in the request path (required parameter) |
allowToCreate |
String | Access level for creating tags |
JSON object example
{
"uuid": "5a4b4b4e-aaaa-aaaa-aaaa-2d0c7e0f3f11",
"allowToCreate": "NO_ONE"
}
Responses
STATUS 200 - Tag protection rule was updated successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Apply tag protection rules to group projects
POST /group/{groupPath}/-/tag-protection/apply-settings-to-projects
The request applies group tag protection rules to group projects
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Tag protection rules were applied to group projects successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Delete a tag protection rule
DELETE /group/{groupPath}/-/tag-protection/{tagProtectionUuid}
The request deletes a group tag protection rule
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
tagProtectionUuid |
String | Tag protection rule UUID |
Responses
STATUS 200 - Tag protection rule was deleted successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
LDAP methods
Synchronize group members with LDAP
POST /group/{groupPath}/-/ldap/sync
The request starts synchronization of group members with LDAP
This endpoint is available only if LDAP group synchronization is enabled on the instance (gitflic.leader = true and togglz.features.GITFLIC_LDAP_GROUP_SYNC.enabled = true). Otherwise, it returns 404.
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Group member synchronization with LDAP started.
STATUS 403 - Access denied.
STATUS 404 - Requested data was not found or LDAP synchronization is disabled.
Group member methods
Get a list of group member roles
GET /group/{groupPath}/-/members/roles
The request returns a list of available group member roles
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Group member role list was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Group user list
GET /group/{groupPath}/-/members/users
The request returns a list of group users. You can configure the number of items displayed per page
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
| Query parameter | Type | Description |
|---|---|---|
q |
String | User search string |
page |
Integer | Page number, starting from 0 |
size |
Integer | Number of items per page |
Responses
STATUS 200 - Group user list was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Add a user to a group
POST /group/{groupPath}/-/members/users
The request adds a user to a group
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description |
|---|---|---|
userUuid |
String | User UUID (required parameter) |
role |
String | Member role in the group (required parameter) |
JSON object example
{
"userUuid": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51",
"role": "DEVELOPER"
}
Responses
STATUS 200 - User was added to the group successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Change a user role in a group
PATCH /group/{groupPath}/-/members/users/role/edit
The request changes a user’s role in a group
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
PATCH request body structure:
| Parameter | Type | Description |
|---|---|---|
userUuid |
String | User UUID (required parameter) |
role |
String | New member role in the group (required parameter) |
JSON object example
{
"userUuid": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51",
"role": "REPORTER"
}
Responses
STATUS 200 - User role in the group was updated successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Remove a user from a group
DELETE /group/{groupPath}/-/members/users/{userUuid}
The request removes a user from a group
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
userUuid |
String | User UUID |
Responses
STATUS 200 - The user was removed from the group successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
List of group member groups
GET /group/{groupPath}/-/members/groups
The request returns a list of groups that are members of the group
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Responses
STATUS 200 - Member group list was returned successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Add a group to another group
POST /group/{groupPath}/-/members/groups
The request adds a group as a member of another group
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description |
|---|---|---|
groupUuid |
String | UUID of the group being added (required parameter) |
role |
String | Member role in the group (required parameter) |
JSON object example
{
"groupUuid": "5a4b4b4e-aaaa-aaaa-aaaa-2d0c7e0f3f11",
"role": "DEVELOPER"
}
Responses
STATUS 200 - Group was added to the group successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Change a group role in a group
PATCH /group/{groupPath}/-/members/groups/role/edit
The request changes the role of a member group within the group
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
Request
Supported JSON format
PATCH request body structure:
| Parameter | Type | Description |
|---|---|---|
groupUuid |
String | Member group UUID (required parameter) |
role |
String | New member role in the group (required parameter) |
JSON object example
{
"groupUuid": "5a4b4b4e-aaaa-aaaa-aaaa-2d0c7e0f3f11",
"role": "GUEST"
}
Responses
STATUS 200 - Group role within the group was updated successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Remove a group from a group
DELETE /group/{groupPath}/-/members/groups/{groupUuid}
The request removes a member group from the group
| Request path variable | Type | Description |
|---|---|---|
groupPath |
String | Full group path, for example owner/group or owner/group/subgroup |
groupUuid |
String | Member group UUID |
Responses
STATUS 200 - The group was removed from the group successfully.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Administrator methods
Methods in this section require an instance administrator token.
Get a list of groups as an administrator
GET /admin/group
The request returns a list of all groups in the instance. You can configure the number of items displayed per page
| Query parameter | Type | Description |
|---|---|---|
qName |
String | Search string for group name |
qOwner |
String | Search string for group owner |
isPrivate |
Boolean | Group privacy filter |
page |
Integer | Page number, starting from 0 |
size |
Integer | Number of items per page |
sort |
String | Sorting in the format field,direction, for example title,asc |
Responses
STATUS 200 - Group list was returned successfully.
STATUS 403 - Access denied.
Add a user to a group as an administrator
POST /admin/group/{groupID}/member/invite
The request adds a user to a group on behalf of the instance administrator
| Request path variable | Type | Description |
|---|---|---|
groupID |
String | Group UUID |
Request
Supported JSON format
POST request body structure:
| Parameter | Type | Description |
|---|---|---|
userAlias |
String | User alias (required parameter) |
role |
String | Member role in the group (required parameter) |
JSON object example
{
"userAlias": "USER",
"role": "DEVELOPER"
}
Responses
STATUS 200 - User was added to the group successfully.
STATUS 400 - Invalid request parameters.
STATUS 403 - Access denied.
STATUS 404 - Requested data not found.
Automated translation!
This page has been automatically translated. The text may contain inaccuracies.