그룹 푸시 규칙 API
Tier: Premium, Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
다음 푸시 규칙
엔드포인트는 그룹 소유자 및 관리자만 사용할 수 있습니다.
그룹의 푸시 규칙 가져오기
그룹의 푸시 규칙을 가져옵니다.
GET /groups/:id/push_rule
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 그룹 경로입니다. |
예제 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/2/push_rule"
예제 응답:
{
"id": 1,
"created_at": "2020-08-17T19:09:19.580Z",
"commit_committer_check": true,
"commit_committer_name_check": true,
"reject_unsigned_commits": false,
"reject_non_dco_commits": false,
"commit_message_regex": "[a-zA-Z]",
"commit_message_negative_regex": "[x+]",
"branch_name_regex": "[a-z]",
"deny_delete_tag": true,
"member_check": true,
"prevent_secrets": true,
"author_email_regex": "^[A-Za-z0-9.]+@gitlab.com$",
"file_name_regex": "(exe)$",
"max_file_size": 100
}
그룹에 푸시 규칙 추가
그룹에 푸시 규칙을 추가합니다. 지금까지 푸시 규칙을 정의하지 않은 경우에만 사용하세요.
POST /groups/:id/push_rule
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 그룹 경로입니다. |
deny_delete_tag |
불리언 | 아니오 | 태그 삭제를 거부합니다. |
member_check |
불리언 | 아니오 | GitLab 사용자만 커밋 작성자를 허용합니다. |
prevent_secrets |
불리언 | 아니오 | 비밀을 포함할 가능성이 있는 파일을 거부합니다. |
commit_message_regex |
문자열 | 아니오 | 이 속성에 제공된 정규 표현식과 일치하는 커밋 메시지만 허용합니다. 예: Fixed \d+\..* . |
commit_message_negative_regex |
문자열 | 아니오 | 이 속성에 제공된 정규 표현식과 일치하는 커밋 메시지를 거부합니다. 예: ssh\:\/\/ . |
branch_name_regex |
문자열 | 아니오 | 이 속성에 제공된 정규 표현식과 일치하는 브랜치 이름만 허용합니다. 예: (feature|hotfix)\/.* . |
author_email_regex |
문자열 | 아니오 | 이 속성에 제공된 정규 표현식과 일치하는 커밋 작성자 이메일만 허용합니다. 예: @my-company.com$ . |
file_name_regex |
문자열 | 아니오 | 이 속성에 제공된 정규 표현식과 일치하는 파일 이름을 거부합니다. 예: (jar|exe)$ . |
max_file_size |
정수 | 아니오 | 허용되는 최대 파일 크기(MB)입니다. |
commit_committer_check |
불리언 | 아니오 | 커밋 이메일이 자신의 검증된 이메일 중 하나일 경우에만 커밋을 허용합니다. |
commit_committer_name_check |
불리언 | 아니오 | 커밋 작성자 이름이 GitLab 계정 이름과 일치할 경우에만 커밋을 허용합니다. |
reject_unsigned_commits |
불리언 | 아니오 | 서명되지 않은 커밋을 거부합니다. |
reject_non_dco_commits |
불리언 | 아니오 | DCO 인증되지 않은 커밋을 거부합니다. |
예제 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/19/push_rule?prevent_secrets=true"
예제 응답:
{
"id": 1,
"created_at": "2020-08-31T15:53:00.073Z",
"commit_committer_check": false,
"commit_committer_name_check": false,
"reject_unsigned_commits": false,
"reject_non_dco_commits": false,
"commit_message_regex": "[a-zA-Z]",
"commit_message_negative_regex": "[x+]",
"branch_name_regex": null,
"deny_delete_tag": false,
"member_check": false,
"prevent_secrets": true,
"author_email_regex": "^[A-Za-z0-9.]+@gitlab.com$",
"file_name_regex": null,
"max_file_size": 100
}
그룹의 푸시 규칙 편집
그룹의 푸시 규칙을 편집합니다.
PUT /groups/:id/push_rule
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 그룹의 ID 또는 URL 인코딩된 경로입니다. |
deny_delete_tag |
boolean | 아니요 | 태그 삭제를 거부합니다. |
member_check |
boolean | 아니요 | GitLab 사용자만 커밋 작성이 가능합니다. |
prevent_secrets |
boolean | 아니요 | 비밀을 포함할 가능성이 있는 파일을 거부합니다. |
commit_message_regex |
string | 아니요 | 이 속성에 제공된 정규 표현식과 일치하는 커밋 메시지만 허용합니다. 예: Fixed \d+\..* . |
commit_message_negative_regex |
string | 아니요 | 이 속성에 제공된 정규 표현식과 일치하는 커밋 메시지를 거부합니다. 예: ssh\:\/\/ . |
branch_name_regex |
string | 아니요 | 이 속성에 제공된 정규 표현식과 일치하는 브랜치 이름만 허용합니다. 예: (feature|hotfix)\/.* . |
author_email_regex |
string | 아니요 | 이 속성에 제공된 정규 표현식과 일치하는 커밋 작성자 이메일만 허용합니다. 예: @my-company.com$ . |
file_name_regex |
string | 아니요 | 이 속성에 제공된 정규 표현식과 일치하는 파일 이름을 거부합니다. 예: (jar|exe)$ . |
max_file_size |
integer | 아니요 | 허용된 최대 파일 크기(MB)입니다. |
commit_committer_check |
boolean | 아니요 | 커밋 작성자 이메일이 자신의 검증된 이메일 중 하나인 경우에만 커밋을 허용합니다. |
commit_committer_name_check |
boolean | 아니요 | 커밋 작성자 이름이 GitLab 계정 이름과 일치하는 경우에만 커밋을 허용합니다. |
reject_unsigned_commits |
boolean | 아니요 | 서명이 없는 커밋을 거부합니다. |
reject_non_dco_commits |
boolean | 아니요 | DCO 인증이 없는 커밋을 거부합니다. |
예시 요청:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/19/push_rule?member_check=true"
예시 응답:
{
"id": 19,
"created_at": "2020-08-31T15:53:00.073Z",
"commit_committer_check": false,
"commit_committer_name_check": false,
"reject_unsigned_commits": false,
"reject_non_dco_commits": false,
"commit_message_regex": "[a-zA-Z]",
"commit_message_negative_regex": "[x+]",
"branch_name_regex": null,
"deny_delete_tag": false,
"member_check": true,
"prevent_secrets": false,
"author_email_regex": "^[A-Za-z0-9.]+@staging.gitlab.com$",
"file_name_regex": null,
"max_file_size": 100
}
그룹의 푸시 규칙 삭제
그룹의 모든 푸시 규칙을 삭제합니다.
DELETE /groups/:id/push_rule
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 그룹의 ID 또는 URL 인코딩된 경로입니다. |
예제 요청:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/19/push_rule"
성공하면 응답이 반환되지 않습니다.