그룹 푸시 규칙 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"

성공하면 응답이 반환되지 않습니다.