InfoGrab Docs

파일 훅

소스 코드를 수정하지 않고 GitLab Self-Managed 인스턴스를 외부 서비스와 통합하는 사용자 정의 파일 훅을 만듭니다.

GitLab 소스 코드를 수정하지 않고 사용자 정의 통합을 도입하려면 사용자 정의 파일 훅을 사용합니다. 파일 훅은 각 이벤트에서 실행됩니다. 파일 훅의 코드에서 이벤트 또는 프로젝트를 필터링할 수 있으며 필요한 만큼 많은 파일 훅을 만들 수 있습니다. 각 파일 훅은 이벤트 발생 시 GitLab에 의해 비동기적으로 트리거됩니다. 이벤트 목록은 시스템 훅 및 웹훅 문서를 참조하세요. Note 파일 훅은 GitLab 서버의 파일 시스템에 구성되어야 합니다. GitLab 서버 관리자만 이러한 작업을 완료할 수 있습니다. 파일 시스템 액세스가 없는 경우 시스템 훅 또는 웹훅 을 옵션으로 탐색하세요. 자체 파일 훅을 작성하고 지원하는 대신 GitLab 소스 코드에 직접 변경을 가하고 업스트림에 기여할 수 있습니다. 이렇게 하면 기능이 버전 간에 유지되고 테스트에 의해 커버됨을 보장할 수 있습니다. 사용자 정의 파일 훅 설정 # 파일 훅은 file_hooks 디렉토리에 있어야 합니다. 하위 디렉토리는 무시됩니다. file_hooks 아래의 example 디렉토리 에서 예제를 찾을 수 있습니다. 사용자 정의 훅을 설정하려면: Sidekiq 컴포넌트를 실행하는 GitLab 서버에서 플러그인 디렉토리를 찾습니다. 소스에서 컴파일한 설치의 경우 경로는 일반적으로 /home/git/gitlab/file_hooks/ 입니다. Linux 패키지 설치의 경우 경로는 일반적으로 /opt/gitlab/embedded/service/gitlab-rails/file_hooks 입니다. 여러 서버를 사용하는 구성 의 경우, 훅 파일이 각 GitLab 애플리케이션(Rails) 및 Sidekiq 서버에 존재해야 합니다. file_hooks 디렉토리 안에 공백이나 특수 문자가 없는 이름으로 파일을 만듭니다. 훅 파일을 실행 가능하게 만들고 Git 사용자가 소유하도록 합니다. 파일 훅이 예상대로 기능하도록 코드를 작성합니다. 어떤 언어로도 가능하며 파일 맨 위의 'shebang'이 언어 유형을 올바르게 반영하도록 합니다. 예를 들어 스크립트가 Ruby인 경우 shebang은 아마 #!/usr/bin/env ruby 일 것입니다. 파일 훅에 대한 데이터는 STDIN 에 JSON으로 제공됩니다. 시스템 훅 과 정확히 동일합니다. 파일 훅 코드가 올바르게 구현된 경우, 훅은 적절한 시점에 실행됩니다. 파일 훅 파일 목록은 각 이벤트에 대해 업데이트됩니다. 새 파일 훅을 적용하기 위해 GitLab을 다시 시작할 필요가 없습니다. 파일 훅이 비제로 종료 코드로 실행되거나 실행에 실패하면 다음에 메시지가 기록됩니다: 소스에서 컴파일한 설치의 경우 log/file_hook.log . Linux 패키지 설치의 경우 gitlab-rails/file_hook.log . 이 파일은 파일 훅이 비제로 종료 코드로 종료된 경우에만 생성됩니다. 파일 훅이 실행될 때 시작된 각 FileHookWorker 에 대해 Sidekiq 로그 gitlab/sidekiq/current 에 항목이 추가됩니다. 이 항목