외부 상태 확인

Tier: Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

상태 확인은 외부 시스템에 대한 API 호출으로, 외부 요구 사항의 상태를 요청하는 것입니다.

여러분은 Merge Request 데이터를 서드파티 도구로 전송하는 상태 확인을 만들 수 있습니다. 사용자가 Merge Request을 만들거나 변경하거나 닫을 때, GitLab은 알림을 보냅니다. 사용자 또는 자동화된 워크플로우는 그 후 GitLab 외부에서 Merge Request의 상태를 업데이트할 수 있습니다.

이 통합을 통해 ServiceNow와 같은 서드파티 워크플로우 도구 또는 원하는 사용자 정의 도구와 통합할 수 있습니다. 서드파티 도구는 관련된 상태로 응답합니다. 그런 다음 Merge Request 내에서이 상태는 Merge Request 작성자 또는 검토자에게 비차단 위젯으로 표시됩니다.

각 개별 프로젝트에 대해 Merge Request 상태 확인을 구성할 수 있습니다. 이들은 프로젝트 간에 공유되지 않습니다.

상태 확인이 2분 이상 pending 상태로 유지되면 실패합니다.

사용 사례, 기능 발견 및 개발 일정에 대한 자세한 내용은 epic 3869을 참조하십시오.

Merge Request의 Merge을 차단하려면 모든 상태 확인이 통과 한 상태 여야합니다.

기본적으로 프로젝트의 Merge Request은 외부 상태 확인이 실패하더라도 Merge 될 수 있습니다. 외부 확인이 실패하면 Merge되지 않도록 Merge Request을 차단하려면 다음을 수행하십시오:

  1. 왼쪽 사이드 바에서 검색 또는 이동을 선택하여 프로젝트를 찾으십시오.
  2. 설정 > Merge Request을 선택하십시오.
  3. 상태 확인 항목이 성공해야 함 확인란을 선택하십시오.
  4. 변경 사항 저장을 선택하십시오.

라이프사이클

외부 상태 확인은 비동기식 워크플로우를 가지고 있습니다. Merge Request은 업데이트되거나 닫힌 경우, 승인 및 비승인 및 Merge 될 때 외부 서비스로 Merge Request 웹훅 페이로드를 발행합니다. 코드가 Merge Request의 소스 브랜치로 푸시 될 때.

sequenceDiagram Merge Request->>+외부 서비스: Merge Request 페이로드 외부 서비스-->>-Merge Request: 상태 확인 응답 외부 서비스, Merge Request 위의 참고: 응답은 HEAD의 SHA를 포함합니다

페이로드가 수신되면 외부 서비스는 그 후 Merge Request REST API를 사용하여 해당 응답을 다시 Merge Request에 보관할 수 있습니다.

Merge Request은 현재 소스 브랜치의 HEAD를 참조하지 않는 응답에 대해 409 Conflict 오류를 반환합니다. 그 결과 외부 서비스가 과거 커밋을 프로세스화하고 응답하여도 안전합니다.

외부 상태 확인에는 다음의 상태가 있습니다.:

  • pending - 기본 상태. Merge Request은 외부 서비스로부터 응답을 받지 못했습니다.
  • passed - 외부 서비스로부터 응답 받았을 때 승인되었습니다.
  • failed - 외부 서비스로부터 응답 받았을 때 거부되었습니다.

GitLab 외부에서 무엇인가 변경될 경우, 외부 상태 확인의 상태를 설정할 수 있습니다. Merge Request 웹훅 페이로드가 먼저 보내기를 기다릴 필요가 없습니다.

프로젝트에서 상태 확인 보기

각 프로젝트의 설정 내에서 프로젝트에 추가된 상태 확인 서비스 디렉터리을 볼 수 있습니다.

  1. 왼쪽 사이드 바에서 검색 또는 이동을 선택하여 프로젝트를 찾으십시오.
  2. 설정 > Merge Request을 선택하십시오.
  3. 상태 확인로 스크롤하십시오.

상태 확인 디렉터리

이 디렉터리은 서비스 이름, API URL 및 대상 브랜치를 보여줍니다. 또한 상태 확인을 생성, 편집 또는 제거할 수 있는 작업을 제공합니다.

상태 확인 서비스 추가 또는 업데이트

상태 확인 서비스 추가

상태 확인 하위 섹션에서 상태 확인 추가 버튼을 선택하십시오. 그러면 상태 확인 추가 양식이 표시됩니다.

상태 확인 생성 양식

양식을 작성하고 상태 확인 추가 버튼을 선택하면 새로운 상태 확인이 생성됩니다.

상태 확인 서비스 업데이트

상태 확인 하위 섹션에서 편집하려는 상태 확인 옆의 편집 ()을 선택하십시오. 그러면 상태 확인 업데이트 양식이 표시됩니다.

상태 확인 업데이트 양식

양식의 값을 변경하고 상태 확인 업데이트 버튼을 선택하면 상태 확인이 업데이트됩니다.

양식 값

일반적인 양식 오류에 대한 자세한 내용은 아래의 문제 해결 섹션을 참조하십시오.

서비스 이름

이 이름은 임의의 알파벳 및 숫자 값이 될 수 있으며 반드시 설정되어야 합니다. 프로젝트에 대해 이름은 고유해야 합니다. 프로젝트에서 고유해야 합니다.

확인할 API

이 필드는 URL을 필요로 하며, 꼭 HTTP 또는 HTTPS 프로토콜을 사용해야만 합니다. 데이터가 전송되는 동안 Merge Request 데이터를 보호하기 위해 HTTPS를 권장합니다. URL을 설정해야하며, 프로젝트에 대해 고유해야합니다.

대상 브랜치

상태 확인을 특정 브랜치에 제한하려면이 필드를 사용하여이 제한을 설정할 수 있습니다.

상태 확인 브랜치 선택기

브랜치 디렉터리은 프로젝트의 보호된 브랜치에서 팝업됩니다.

브랜치를 스크롤하거나 검색 상자를 사용하여 찾으실 수 있습니다. 이메일이 많아서 원하는 브랜치가 즉시 나타나지 않는 경우 검색 상자를 사용하실 수 있습니다 검색을 시작하려면 세 개의 알파벳 숫자가 필요합니다.

모든 Merge Request에 상태 확인을 적용하려면 모든 브랜치 옵션을 선택할 수 있습니다.

상태 확인 서비스 삭제

상태 확인 하위 섹션에서 삭제할 상태 확인 옆의 제거 ()를 선택하십시오. 그러면 상태 확인 제거? 모달이 표시됩니다.

상태 확인 삭제 모달

상태 확인을 완전히 삭제하려면 상태 확인 제거 버튼을 선택해야합니다. 이로써 상태 확인이 영구적으로 삭제되며 복구할 수 없습니다.

상태 확인 위젯

상태 확인 위젯은 Merge Request에서 표시되며 다음 상태를 표시합니다:

  • 보류 중 (), GitLab이 외부 상태 확인으로부터 응답을 기다리는 동안.
  • 성공 () 또는 실패 (), GitLab이 외부 상태 확인으로부터 응답을 받은 경우.

보류 중인 상태 확인이있을 때 위젯은 몇 초마다 업데이트하고 성공 또는 실패 응답을 수신할 때까지 업데이트합니다.

실패한 상태 확인을 다시 시도하려면:

  1. 왼쪽 사이드 바에서 검색 또는 이동을 선택하여 프로젝트를 찾으십시오.
  2. 코드 > Merge Request을 선택하고 Merge Request을 찾으십시오.
  3. Merge Request 보고서 섹션으로 스크롤하면 외부 상태 확인 디렉터리이 표시됩니다.
  4. 실패한 외부 상태 확인 행에서 재시도 ()를 선택하십시오. 상태 확인이 다시 보류 상태로 변경됩니다.

조직은 외부 상태 확인이 통과하지 않는 경우 Merge Request을 Merge하지 못하도록하는 정책을 가질 수 있습니다. 그러나 위젯의 세부 사항은 정보 제공을 목적으로만 합니다.

note
GitLab은 관련 외부 서비스가 외부 상태 확인을 올바르게 처리하는 것을 보장할 수 없습니다.

문제 해결

중복 값 오류

이름이 이미 사용 중입니다
---
외부 API가 다른 상태 확인에서 이미 사용 중입니다

프로젝트당 상태 확인은 이름 또는 API URL을 한 번만 사용할 수 있습니다. 이러한 오류는 현재 프로젝트의 상태 확인에서 이미 이름 또는 API URL이 사용되었음을 의미합니다.

현재 상태 확인의 다른 값을 선택하거나 기존 상태 확인의 값을 업데이트해야 합니다.

유효하지 않은 URL 오류

유효한 URL을 입력해주세요

확인할 API에는 제공된 URL이 HTTP 또는 HTTPs 프로토콜을 사용해야 합니다. 이 요구 사항을 충족시키기 위해 필드의 값을 업데이트해야 합니다.

검색 또는 검색 중에 브랜치 디렉터리 오류

브랜치 디렉터리을 불러올 수 없음, 양식을 닫고 다시 시도해주세요

브랜치 검색 API에서 예상치 못한 응답을 받았습니다. 제안대로, 양식을 닫고 다시 열거나 페이지를 새로고침해야 합니다. 이 오류는 임시적일 것이지만 지속된다면 확장된 장애가 있는지 GitLab 상태 페이지를 확인하세요.

상태 확인 로드 실패

상태 확인 불러오기 실패

외부 상태 확인 API에서 예상치 못한 응답을 받았습니다. 다음을 해야 합니다:

  • 이 오류가 일시적인 경우 페이지를 새로 고침합니다.
  • 문제가 지속되면, 더 확장된 장애가 있는지 확인하기 위해 GitLab 상태 페이지를 확인합니다.

관련 주제