그룹 푸시 규칙 API
Tier: 프리미엄, 얼티밋
Offering: GitLab.com, Self-Managed, GitLab Dedicated
다음의 push rules 엔드포인트는 그룹 소유자 및 관리자에게만 사용할 수 있습니다.
그룹의 푸시 규칙 가져오기
그룹의 푸시 규칙을 가져옵니다.
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
| 정수/문자열 | 예 | 그룹의 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 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
| 정수/문자열 | 예 | 그룹의 ID 또는 URL-encoded path |
예시 요청:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/19/push_rule"
성공하면 응답이 없습니다.