파일 수정 불가 - GITLABCE

1489 단어
GIT 리포의 일부 파일, 예를 들어 프로필, CI/CD 파일 등을 개발자가 수정하는 것을 원치 않을 때가 있습니다.이를 위해 GITLAB EE(유료 버전)는 재구매/일반 수준에서 하나의 옵션이 있지만 GITLAB CE(커뮤니티 버전)는 없다.
우리는 자신이 위탁 관리하는 지역 사회 버전 Gitlab 서버에 파일을 추가함으로써 이를 쉽게 실현할 수 있다.
서버로 이동하여 "git data"폴더를 찾습니다.
~/git-data/repositories/GROUP_NAME/REPO_NAME.git/
"custom hooks"라는 폴더를 만들어야 합니다.
새 폴더에 접근하여 업데이트라는 파일을 추가합니다.
"gitlab ci.yml"파일의 수정을 금지하는 예시를 사용할 것입니다.
다음 내용을 파일로 복사합니다.
#!/bin/bash

refname="$1"
oldrev="$2"
newrev="$3"
result=0

if ! [ "$oldrev" = "0000000000000000000000000000000000000000" ] ; then
    excludes=( ^$oldrev )
else
    excludes=( $(git for-each-ref --format '^%(refname:short)' refs/heads/) )
fi

commits=`git rev-list $newrev "${excludes[@]}"`

for commit in $commits
do
  fileci=`git show --pretty="" --name-only $commit|grep gitlab-ci`
  if [ "$fileci" != "" ] ; then
    echo "####################################################################################"
    echo "Error: THE FILE GITLAB-CI.YML MUST NOT BE UPDATED !!"
    echo "CHECK WITH THE GITLAB ADMINISTRATOR IF YOU WISH SO"
    echo "####################################################################################"
    result=1
  fi

done

exit $result

따라서 이 gitlabci라는 특정 파일을 포함하는gitlab로 전송하려고 시도할 때마다 전송을 허용하지 않는 사용자에게 오류가 발생합니다.

좋은 웹페이지 즐겨찾기