InfoGrab Docs

프로젝트 푸시 규칙 API

요약

이 API를 사용하여 프로젝트 푸시 규칙을 관리합니다. GitLab은 푸시 규칙의 모든 정규식에 RE2 구문을 사용합니다. 성공 시 200 OK와 다음 응답 속성을 반환합니다: 프로젝트에 대해 푸시 규칙이 구성된 적이 없으면 응답 본문에 리터럴 문자열 "null"과 함께 HTTP 200 OK를 반환합니다.

이 API를 사용하여 프로젝트 푸시 규칙을 관리합니다.

Note

GitLab은 푸시 규칙의 모든 정규식에 RE2 구문을 사용합니다.

프로젝트 푸시 규칙 가져오기#

프로젝트의 푸시 규칙을 가져옵니다.

GET /projects/:id/push_rule

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.

성공 시 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
author_email_regex string 모든 커밋 작성자 이메일은 이 정규식과 일치해야 합니다.
branch_name_regex string 모든 브랜치 이름은 이 정규식과 일치해야 합니다.
commit_committer_check boolean true인 경우, 사용자는 커미터 이메일이 자신의 확인된 이메일 중 하나인 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_committer_name_check boolean true인 경우, 사용자는 커밋 작성자 이름이 자신의 GitLab 계정 이름과 일치하는 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_message_negative_regex string 이 정규식과 일치하는 커밋 메시지는 허용되지 않습니다.
commit_message_regex string 모든 커밋 메시지는 이 정규식과 일치해야 합니다.
created_at string 푸시 규칙이 생성된 날짜 및 시간.
deny_delete_tag boolean true인 경우, 태그 삭제를 거부합니다.
file_name_regex string 커밋된 모든 파일 이름은 이 정규식과 일치하지 않아야 합니다.
id integer 푸시 규칙의 ID.
max_file_size integer 최대 파일 크기(MB).
member_check boolean true인 경우, 기존 GitLab 사용자로 작성자(이메일)별로 커밋을 제한합니다.
prevent_secrets boolean true인 경우, GitLab은 시크릿을 포함할 가능성이 있는 파일을 거부합니다.
project_id integer 프로젝트의 ID.
reject_non_dco_commits boolean true인 경우, DCO 인증이 없는 커밋을 거부합니다.
reject_unsigned_commits boolean true인 경우, 서명되지 않은 커밋을 거부합니다.

프로젝트에 대해 푸시 규칙이 구성된 적이 없으면 응답 본문에 리터럴 문자열 "null"과 함께 HTTP 200 OK를 반환합니다.

Note

이는 404 Not Found 오류를 반환하는 그룹 푸시 규칙 API와 다릅니다.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/3/push_rule"

모든 설정이 비활성화된 푸시 규칙이 구성된 경우의 응답 예시:

{
  "id": 1,
  "project_id": 3,
  "created_at": "2012-10-12T17:04:47Z",
  "commit_message_regex": "Fixes \\d+\\..*",
  "commit_message_negative_regex": "ssh\\:\\/\\/",
  "branch_name_regex": "",
  "deny_delete_tag": false,
  "member_check": false,
  "prevent_secrets": false,
  "author_email_regex": "",
  "file_name_regex": "",
  "max_file_size": 0,
  "commit_committer_check": null,
  "commit_committer_name_check": false,
  "reject_unsigned_commits": null,
  "reject_non_dco_commits": null
}

다음 속성이 비활성화된 경우 false 대신 null을 반환합니다:

  • commit_committer_check
  • reject_unsigned_commits
  • reject_non_dco_commits

프로젝트에 대해 푸시 규칙이 구성된 적이 없는 경우의 응답 예시:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 4

null

이는 JSON null 값이 아닌 리터럴 문자열 "null"(4자)을 반환합니다.

프로젝트 푸시 규칙 추가#

지정된 프로젝트에 푸시 규칙을 추가합니다.

POST /projects/:id/push_rule

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
author_email_regex string 아니요 모든 커밋 작성자 이메일은 이 정규식과 일치해야 합니다.
branch_name_regex string 아니요 모든 브랜치 이름은 이 정규식과 일치해야 합니다.
commit_committer_check boolean 아니요 true인 경우, 사용자는 커미터 이메일이 자신의 확인된 이메일 중 하나인 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_committer_name_check boolean 아니요 true인 경우, 사용자는 커밋 작성자 이름이 자신의 GitLab 계정 이름과 일치하는 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_message_negative_regex string 아니요 이 정규식과 일치하는 커밋 메시지는 허용되지 않습니다.
commit_message_regex string 아니요 모든 커밋 메시지는 이 정규식과 일치해야 합니다.
deny_delete_tag boolean 아니요 true인 경우, 태그 삭제를 거부합니다.
file_name_regex string 아니요 커밋된 모든 파일 이름은 이 정규식과 일치하지 않아야 합니다.
max_file_size integer 아니요 최대 파일 크기(MB).
member_check boolean 아니요 true인 경우, 기존 GitLab 사용자로 작성자(이메일)별로 커밋을 제한합니다.
prevent_secrets boolean 아니요 true인 경우, GitLab은 시크릿을 포함할 가능성이 있는 파일을 거부합니다.
reject_non_dco_commits boolean 아니요 true인 경우, DCO 인증이 없는 커밋을 거부합니다.
reject_unsigned_commits boolean 아니요 true인 경우, 서명되지 않은 커밋을 거부합니다.

성공 시 201 Created와 다음 응답 속성을 반환합니다:

속성 유형 설명
author_email_regex string 모든 커밋 작성자 이메일은 이 정규식과 일치해야 합니다.
branch_name_regex string 모든 브랜치 이름은 이 정규식과 일치해야 합니다.
commit_committer_check boolean true인 경우, 사용자는 커미터 이메일이 자신의 확인된 이메일 중 하나인 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_committer_name_check boolean true인 경우, 사용자는 커밋 작성자 이름이 자신의 GitLab 계정 이름과 일치하는 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_message_negative_regex string 이 정규식과 일치하는 커밋 메시지는 허용되지 않습니다.
commit_message_regex string 모든 커밋 메시지는 이 정규식과 일치해야 합니다.
created_at string 푸시 규칙이 생성된 날짜 및 시간.
deny_delete_tag boolean true인 경우, 태그 삭제를 거부합니다.
file_name_regex string 커밋된 모든 파일 이름은 이 정규식과 일치하지 않아야 합니다.
id integer 푸시 규칙의 ID.
max_file_size integer 최대 파일 크기(MB).
member_check boolean true인 경우, 기존 GitLab 사용자로 작성자(이메일)별로 커밋을 제한합니다.
prevent_secrets boolean true인 경우, GitLab은 시크릿을 포함할 가능성이 있는 파일을 거부합니다.
project_id integer 프로젝트의 ID.
reject_non_dco_commits boolean true인 경우, DCO 인증이 없는 커밋을 거부합니다.
reject_unsigned_commits boolean true인 경우, 서명되지 않은 커밋을 거부합니다.

요청 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/3/push_rule" \
  --data "commit_message_regex=Fixes \\d+\\..*" \
  --data "deny_delete_tag=false"

응답 예시:

{
  "id": 1,
  "project_id": 3,
  "created_at": "2012-10-12T17:04:47Z",
  "commit_message_regex": "Fixes \\d+\\..*",
  "commit_message_negative_regex": "",
  "branch_name_regex": "",
  "deny_delete_tag": false,
  "member_check": false,
  "prevent_secrets": false,
  "author_email_regex": "",
  "file_name_regex": "",
  "max_file_size": 0,
  "commit_committer_check": false,
  "commit_committer_name_check": false,
  "reject_unsigned_commits": false,
  "reject_non_dco_commits": false
}

프로젝트 푸시 규칙 편집#

지정된 프로젝트의 푸시 규칙을 편집합니다.

PUT /projects/:id/push_rule

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
author_email_regex string 아니요 모든 커밋 작성자 이메일은 이 정규식과 일치해야 합니다.
branch_name_regex string 아니요 모든 브랜치 이름은 이 정규식과 일치해야 합니다.
commit_committer_check boolean 아니요 true인 경우, 사용자는 커미터 이메일이 자신의 확인된 이메일 중 하나인 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_committer_name_check boolean 아니요 true인 경우, 사용자는 커밋 작성자 이름이 자신의 GitLab 계정 이름과 일치하는 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_message_negative_regex string 아니요 이 정규식과 일치하는 커밋 메시지는 허용되지 않습니다.
commit_message_regex string 아니요 모든 커밋 메시지는 이 정규식과 일치해야 합니다.
deny_delete_tag boolean 아니요 true인 경우, 태그 삭제를 거부합니다.
file_name_regex string 아니요 커밋된 모든 파일 이름은 이 정규식과 일치하지 않아야 합니다.
max_file_size integer 아니요 최대 파일 크기(MB).
member_check boolean 아니요 true인 경우, 기존 GitLab 사용자로 작성자(이메일)별로 커밋을 제한합니다.
prevent_secrets boolean 아니요 true인 경우, GitLab은 시크릿을 포함할 가능성이 있는 파일을 거부합니다.
reject_non_dco_commits boolean 아니요 true인 경우, DCO 인증이 없는 커밋을 거부합니다.
reject_unsigned_commits boolean 아니요 true인 경우, 서명되지 않은 커밋을 거부합니다.

성공 시 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
author_email_regex string 모든 커밋 작성자 이메일은 이 정규식과 일치해야 합니다.
branch_name_regex string 모든 브랜치 이름은 이 정규식과 일치해야 합니다.
commit_committer_check boolean true인 경우, 사용자는 커미터 이메일이 자신의 확인된 이메일 중 하나인 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_committer_name_check boolean true인 경우, 사용자는 커밋 작성자 이름이 자신의 GitLab 계정 이름과 일치하는 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_message_negative_regex string 이 정규식과 일치하는 커밋 메시지는 허용되지 않습니다.
commit_message_regex string 모든 커밋 메시지는 이 정규식과 일치해야 합니다.
created_at string 푸시 규칙이 생성된 날짜 및 시간.
deny_delete_tag boolean true인 경우, 태그 삭제를 거부합니다.
file_name_regex string 커밋된 모든 파일 이름은 이 정규식과 일치하지 않아야 합니다.
id integer 푸시 규칙의 ID.
max_file_size integer 최대 파일 크기(MB).
member_check boolean true인 경우, 기존 GitLab 사용자로 작성자(이메일)별로 커밋을 제한합니다.
prevent_secrets boolean true인 경우, GitLab은 시크릿을 포함할 가능성이 있는 파일을 거부합니다.
project_id integer 프로젝트의 ID.
reject_non_dco_commits boolean true인 경우, DCO 인증이 없는 커밋을 거부합니다.
reject_unsigned_commits boolean true인 경우, 서명되지 않은 커밋을 거부합니다.

요청 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/3/push_rule" \
  --data "commit_message_regex=Fixes \\d+\\..*" \
  --data "deny_delete_tag=true"

응답 예시:

{
  "id": 1,
  "project_id": 3,
  "created_at": "2012-10-12T17:04:47Z",
  "commit_message_regex": "Fixes \\d+\\..*",
  "commit_message_negative_regex": "",
  "branch_name_regex": "",
  "deny_delete_tag": true,
  "member_check": false,
  "prevent_secrets": false,
  "author_email_regex": "",
  "file_name_regex": "",
  "max_file_size": 0,
  "commit_committer_check": false,
  "commit_committer_name_check": false,
  "reject_unsigned_commits": false,
  "reject_non_dco_commits": false
}

프로젝트 푸시 규칙 삭제#

프로젝트에서 푸시 규칙을 삭제합니다.

DELETE /projects/:id/push_rule

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.

성공 시 204 No Content를 반환합니다.

요청 예시:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/3/push_rule"

프로젝트 푸시 규칙 API

Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

이 API를 사용하여 프로젝트 푸시 규칙을 관리합니다. GitLab은 푸시 규칙의 모든 정규식에 RE2 구문을 사용합니다. 성공 시 200 OK와 다음 응답 속성을 반환합니다: 프로젝트에 대해 푸시 규칙이 구성된 적이 없으면 응답 본문에 리터럴 문자열 "null"과 함께 HTTP 200 OK를 반환합니다.

이 API를 사용하여 프로젝트 푸시 규칙을 관리합니다.

Note

GitLab은 푸시 규칙의 모든 정규식에 RE2 구문을 사용합니다.

프로젝트 푸시 규칙 가져오기#

프로젝트의 푸시 규칙을 가져옵니다.

GET /projects/:id/push_rule

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.

성공 시 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
author_email_regex string 모든 커밋 작성자 이메일은 이 정규식과 일치해야 합니다.
branch_name_regex string 모든 브랜치 이름은 이 정규식과 일치해야 합니다.
commit_committer_check boolean true인 경우, 사용자는 커미터 이메일이 자신의 확인된 이메일 중 하나인 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_committer_name_check boolean true인 경우, 사용자는 커밋 작성자 이름이 자신의 GitLab 계정 이름과 일치하는 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_message_negative_regex string 이 정규식과 일치하는 커밋 메시지는 허용되지 않습니다.
commit_message_regex string 모든 커밋 메시지는 이 정규식과 일치해야 합니다.
created_at string 푸시 규칙이 생성된 날짜 및 시간.
deny_delete_tag boolean true인 경우, 태그 삭제를 거부합니다.
file_name_regex string 커밋된 모든 파일 이름은 이 정규식과 일치하지 않아야 합니다.
id integer 푸시 규칙의 ID.
max_file_size integer 최대 파일 크기(MB).
member_check boolean true인 경우, 기존 GitLab 사용자로 작성자(이메일)별로 커밋을 제한합니다.
prevent_secrets boolean true인 경우, GitLab은 시크릿을 포함할 가능성이 있는 파일을 거부합니다.
project_id integer 프로젝트의 ID.
reject_non_dco_commits boolean true인 경우, DCO 인증이 없는 커밋을 거부합니다.
reject_unsigned_commits boolean true인 경우, 서명되지 않은 커밋을 거부합니다.

프로젝트에 대해 푸시 규칙이 구성된 적이 없으면 응답 본문에 리터럴 문자열 "null"과 함께 HTTP 200 OK를 반환합니다.

Note

이는 404 Not Found 오류를 반환하는 그룹 푸시 규칙 API와 다릅니다.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/3/push_rule"

모든 설정이 비활성화된 푸시 규칙이 구성된 경우의 응답 예시:

{
  "id": 1,
  "project_id": 3,
  "created_at": "2012-10-12T17:04:47Z",
  "commit_message_regex": "Fixes \\d+\\..*",
  "commit_message_negative_regex": "ssh\\:\\/\\/",
  "branch_name_regex": "",
  "deny_delete_tag": false,
  "member_check": false,
  "prevent_secrets": false,
  "author_email_regex": "",
  "file_name_regex": "",
  "max_file_size": 0,
  "commit_committer_check": null,
  "commit_committer_name_check": false,
  "reject_unsigned_commits": null,
  "reject_non_dco_commits": null
}

다음 속성이 비활성화된 경우 false 대신 null을 반환합니다:

  • commit_committer_check
  • reject_unsigned_commits
  • reject_non_dco_commits

프로젝트에 대해 푸시 규칙이 구성된 적이 없는 경우의 응답 예시:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 4

null

이는 JSON null 값이 아닌 리터럴 문자열 "null"(4자)을 반환합니다.

프로젝트 푸시 규칙 추가#

지정된 프로젝트에 푸시 규칙을 추가합니다.

POST /projects/:id/push_rule

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
author_email_regex string 아니요 모든 커밋 작성자 이메일은 이 정규식과 일치해야 합니다.
branch_name_regex string 아니요 모든 브랜치 이름은 이 정규식과 일치해야 합니다.
commit_committer_check boolean 아니요 true인 경우, 사용자는 커미터 이메일이 자신의 확인된 이메일 중 하나인 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_committer_name_check boolean 아니요 true인 경우, 사용자는 커밋 작성자 이름이 자신의 GitLab 계정 이름과 일치하는 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_message_negative_regex string 아니요 이 정규식과 일치하는 커밋 메시지는 허용되지 않습니다.
commit_message_regex string 아니요 모든 커밋 메시지는 이 정규식과 일치해야 합니다.
deny_delete_tag boolean 아니요 true인 경우, 태그 삭제를 거부합니다.
file_name_regex string 아니요 커밋된 모든 파일 이름은 이 정규식과 일치하지 않아야 합니다.
max_file_size integer 아니요 최대 파일 크기(MB).
member_check boolean 아니요 true인 경우, 기존 GitLab 사용자로 작성자(이메일)별로 커밋을 제한합니다.
prevent_secrets boolean 아니요 true인 경우, GitLab은 시크릿을 포함할 가능성이 있는 파일을 거부합니다.
reject_non_dco_commits boolean 아니요 true인 경우, DCO 인증이 없는 커밋을 거부합니다.
reject_unsigned_commits boolean 아니요 true인 경우, 서명되지 않은 커밋을 거부합니다.

성공 시 201 Created와 다음 응답 속성을 반환합니다:

속성 유형 설명
author_email_regex string 모든 커밋 작성자 이메일은 이 정규식과 일치해야 합니다.
branch_name_regex string 모든 브랜치 이름은 이 정규식과 일치해야 합니다.
commit_committer_check boolean true인 경우, 사용자는 커미터 이메일이 자신의 확인된 이메일 중 하나인 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_committer_name_check boolean true인 경우, 사용자는 커밋 작성자 이름이 자신의 GitLab 계정 이름과 일치하는 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_message_negative_regex string 이 정규식과 일치하는 커밋 메시지는 허용되지 않습니다.
commit_message_regex string 모든 커밋 메시지는 이 정규식과 일치해야 합니다.
created_at string 푸시 규칙이 생성된 날짜 및 시간.
deny_delete_tag boolean true인 경우, 태그 삭제를 거부합니다.
file_name_regex string 커밋된 모든 파일 이름은 이 정규식과 일치하지 않아야 합니다.
id integer 푸시 규칙의 ID.
max_file_size integer 최대 파일 크기(MB).
member_check boolean true인 경우, 기존 GitLab 사용자로 작성자(이메일)별로 커밋을 제한합니다.
prevent_secrets boolean true인 경우, GitLab은 시크릿을 포함할 가능성이 있는 파일을 거부합니다.
project_id integer 프로젝트의 ID.
reject_non_dco_commits boolean true인 경우, DCO 인증이 없는 커밋을 거부합니다.
reject_unsigned_commits boolean true인 경우, 서명되지 않은 커밋을 거부합니다.

요청 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/3/push_rule" \
  --data "commit_message_regex=Fixes \\d+\\..*" \
  --data "deny_delete_tag=false"

응답 예시:

{
  "id": 1,
  "project_id": 3,
  "created_at": "2012-10-12T17:04:47Z",
  "commit_message_regex": "Fixes \\d+\\..*",
  "commit_message_negative_regex": "",
  "branch_name_regex": "",
  "deny_delete_tag": false,
  "member_check": false,
  "prevent_secrets": false,
  "author_email_regex": "",
  "file_name_regex": "",
  "max_file_size": 0,
  "commit_committer_check": false,
  "commit_committer_name_check": false,
  "reject_unsigned_commits": false,
  "reject_non_dco_commits": false
}

프로젝트 푸시 규칙 편집#

지정된 프로젝트의 푸시 규칙을 편집합니다.

PUT /projects/:id/push_rule

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
author_email_regex string 아니요 모든 커밋 작성자 이메일은 이 정규식과 일치해야 합니다.
branch_name_regex string 아니요 모든 브랜치 이름은 이 정규식과 일치해야 합니다.
commit_committer_check boolean 아니요 true인 경우, 사용자는 커미터 이메일이 자신의 확인된 이메일 중 하나인 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_committer_name_check boolean 아니요 true인 경우, 사용자는 커밋 작성자 이름이 자신의 GitLab 계정 이름과 일치하는 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_message_negative_regex string 아니요 이 정규식과 일치하는 커밋 메시지는 허용되지 않습니다.
commit_message_regex string 아니요 모든 커밋 메시지는 이 정규식과 일치해야 합니다.
deny_delete_tag boolean 아니요 true인 경우, 태그 삭제를 거부합니다.
file_name_regex string 아니요 커밋된 모든 파일 이름은 이 정규식과 일치하지 않아야 합니다.
max_file_size integer 아니요 최대 파일 크기(MB).
member_check boolean 아니요 true인 경우, 기존 GitLab 사용자로 작성자(이메일)별로 커밋을 제한합니다.
prevent_secrets boolean 아니요 true인 경우, GitLab은 시크릿을 포함할 가능성이 있는 파일을 거부합니다.
reject_non_dco_commits boolean 아니요 true인 경우, DCO 인증이 없는 커밋을 거부합니다.
reject_unsigned_commits boolean 아니요 true인 경우, 서명되지 않은 커밋을 거부합니다.

성공 시 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
author_email_regex string 모든 커밋 작성자 이메일은 이 정규식과 일치해야 합니다.
branch_name_regex string 모든 브랜치 이름은 이 정규식과 일치해야 합니다.
commit_committer_check boolean true인 경우, 사용자는 커미터 이메일이 자신의 확인된 이메일 중 하나인 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_committer_name_check boolean true인 경우, 사용자는 커밋 작성자 이름이 자신의 GitLab 계정 이름과 일치하는 경우에만 이 저장소에 커밋을 푸시할 수 있습니다.
commit_message_negative_regex string 이 정규식과 일치하는 커밋 메시지는 허용되지 않습니다.
commit_message_regex string 모든 커밋 메시지는 이 정규식과 일치해야 합니다.
created_at string 푸시 규칙이 생성된 날짜 및 시간.
deny_delete_tag boolean true인 경우, 태그 삭제를 거부합니다.
file_name_regex string 커밋된 모든 파일 이름은 이 정규식과 일치하지 않아야 합니다.
id integer 푸시 규칙의 ID.
max_file_size integer 최대 파일 크기(MB).
member_check boolean true인 경우, 기존 GitLab 사용자로 작성자(이메일)별로 커밋을 제한합니다.
prevent_secrets boolean true인 경우, GitLab은 시크릿을 포함할 가능성이 있는 파일을 거부합니다.
project_id integer 프로젝트의 ID.
reject_non_dco_commits boolean true인 경우, DCO 인증이 없는 커밋을 거부합니다.
reject_unsigned_commits boolean true인 경우, 서명되지 않은 커밋을 거부합니다.

요청 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/3/push_rule" \
  --data "commit_message_regex=Fixes \\d+\\..*" \
  --data "deny_delete_tag=true"

응답 예시:

{
  "id": 1,
  "project_id": 3,
  "created_at": "2012-10-12T17:04:47Z",
  "commit_message_regex": "Fixes \\d+\\..*",
  "commit_message_negative_regex": "",
  "branch_name_regex": "",
  "deny_delete_tag": true,
  "member_check": false,
  "prevent_secrets": false,
  "author_email_regex": "",
  "file_name_regex": "",
  "max_file_size": 0,
  "commit_committer_check": false,
  "commit_committer_name_check": false,
  "reject_unsigned_commits": false,
  "reject_non_dco_commits": false
}

프로젝트 푸시 규칙 삭제#

프로젝트에서 푸시 규칙을 삭제합니다.

DELETE /projects/:id/push_rule

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.

성공 시 204 No Content를 반환합니다.

요청 예시:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/3/push_rule"