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

성공하면 응답이 없습니다.