Code Stream 관리자 또는 개발자는 Git 트리거를 사용하여 Code Stream을 Git 수명주기와 통합할 수 있습니다. GitHub, GitLab 또는 Bitbucket Enterprise에서 코드를 변경하면 이벤트가 Webhook을 통해 Code Stream과 통신하고 파이프라인을 트리거합니다. 동일한 네트워크에서 Cloud Assembly와 엔터프라이즈 버전을 모두 연결할 수 있는 경우, Webhook는 GitLab, GitHub 및 Bitbucket 온-프레미스 엔터프라이즈 버전에서 작동합니다.

Code Stream에 Git에 대한 Webhook을 추가하면 GitHub, GitLab 또는 Bitbucket 저장소에도 Webhook이 생성됩니다. 나중에 Webhook을 업데이트하거나 삭제하는 경우 해당 작업은 GitHub, GitLab 또는 Bitbucket의 Webhook도 업데이트하거나 삭제합니다.

Webhook 정의에는 모니터링할 저장소 분기의 Git 끝점이 포함되어야 합니다. Webhook을 생성하기 위해 Code Stream은 Git 끝점을 사용합니다. 끝점이 없는 경우 Webhook을 추가할 때 끝점을 생성할 수 있습니다. 이 예에서는 GitHub에 사전 정의된 Git 끝점이 있다고 가정합니다.

참고: Webhook을 생성하려면 Git 끝점이 인증에 전용 토큰을 사용해야 하며 암호를 사용할 수 없습니다.

동일한 Git 끝점을 사용하고 Webhook 구성 페이지에서 분기 이름에 서로 다른 값을 제공하여 여러 분기에 대해 다수의 Webhook을 생성하고 할 수 있습니다. 동일한 Git 저장소의 다른 분기에 대해 또 다른 Webhook을 생성하기 위해, 여러 분기에 대해 Git 끝점을 여러 번 복제할 필요가 없습니다. 대신, Webhook에 분기 이름을 제공하면 Git 끝점을 재사용할 수 있습니다. Git Webhook의 분기가 끝점의 분기와 동일한 경우 Git Webhook 페이지에서 분기 이름을 제공하지 않아도 됩니다.

이 예에서는 Git 트리거를 GitHub 저장소와 사용하는 방법을 보여주지만 다른 Git 서버 유형을 사용하는 경우 준비가 필요하다는 내용이 사전 요구 사항에 포함되어 있습니다.

사전 요구 사항

  • Code Stream에서 프로젝트의 멤버인지 확인합니다. 그렇지 않으면 프로젝트 멤버로 추가해 달라고 Code Stream 관리자에게 요청합니다. Code Stream에서 프로젝트를 추가하는 방법의 내용을 참조하십시오.
  • 모니터링하려는 GitHub 분기에 Git 끝점이 있는지 확인합니다. Git와 Code Stream을 통합하는 방법 항목을 참조하십시오.
  • Git 저장소에 Webhook을 생성할 수 있는 권한이 있는지 확인합니다.
  • GitLab에서 Webhook를 구성하는 경우, GitLab Enterprise에서 기본 네트워크 설정을 변경하여 아웃바운드 요청을 사용하도록 설정하고 로컬 Webhook의 생성을 허용합니다.
    참고: 이 변경은 GitLab Enterprise에만 필요합니다. 이러한 설정은 GitHub 또는 Bitbucket에 적용되지 않습니다.
    1. GitLab Enterprise에 관리자로 로그인합니다.
    2. http://{gitlab-server}/admin/application_settings/network와 같은 URL을 사용하여 네트워크 설정으로 이동합니다.
    3. 아웃바운드 요청을 확장하고 다음을 클릭합니다.
      • Webhook 및 서비스로부터의 로컬 네트워크에 대한 요청을 허용합니다.
      • 시스템 후크로부터의 로컬 네트워크에 대한 요청을 허용합니다.
  • 트리거할 파이프라인에 대해, 파이프라인이 실행될 때 Git 매개 변수를 삽입하도록 입력 속성을 설정했는지 확인합니다.

    Git에 대한 트리거를 사용하도록 파이프라인을 구성할 때 입력 탭에서 입력 매개 변수를 구성합니다.

    입력 매개 변수에 대한 자세한 내용은 작업을 수동으로 추가하기 전에 Code Stream에서 CICD 네이티브 빌드 계획 항목을 참조하십시오.

프로시저

  1. Code Stream에서 트리거 > Git을 클릭합니다.
  2. Git에 대한 Webhook 탭을 클릭한 다음 Git에 대한 새 Webhook을 클릭합니다.
    1. 프로젝트를 선택합니다.
    2. Webhook에 대한 의미 있는 이름과 설명을 입력합니다.
    3. 모니터링하려는 분기에 대해 구성된 Git 끝점을 선택합니다.
      Webhook을 생성할 때 Webhook 정의에는 현재 끝점 세부 정보가 포함됩니다.
      • 나중에 끝점에서 Git 유형, Git 서버 유형 또는 Git 저장소 URL을 변경하는 경우 Webhook은 원래 끝점 세부 정보를 사용하여 Git 저장소에 액세스하려고 하기 때문에 더 이상 파이프라인을 트리거할 수 없습니다. Webhook을 삭제하고 해당 끝점으로 Webhook을 다시 생성해야 합니다.
      • 나중에 끝점에서 인증 유형, 사용자 이름 또는 전용 토큰을 변경하는 경우 Webhook은 계속 작동합니다.
      • BitBucket 저장소를 사용하는 경우 저장소의 URL 형식은 https://api.bitbucket.org/{user}/{repo name} 또는 http(s)://{bitbucket-enterprise-server}/rest/api/1.0/users/{username}/repos/{repo name} 중 하나여야 합니다.
      참고: 이전에 기본 인증에 암호를 사용하는 Git 끝점으로 Webhook을 생성한 경우 인증에 전용 토큰을 사용하는 Git 끝점이 있는 Webhook을 삭제하고 다시 정의해야 합니다.
      Git와 Code Stream을 통합하는 방법의 내용을 참조하십시오.
    4. (선택 사항) Webhook에서 모니터링할 분기를 입력합니다.
      분기를 지정하지 않은 상태로 두면 Webhook은 Git 끝점에 대해 구성한 분기를 모니터링합니다.
    5. (선택 사항) Webhook에 대한 비밀 토큰을 생성합니다.
      비밀 토큰을 사용하는 경우 Code Stream은 Webhook에 대한 임의 문자열 토큰을 생성합니다. 그런 다음 Webhook이 Git 이벤트 데이터를 수신하면 Webhook은 비밀 토큰과 함께 데이터를 전송합니다. Code Stream은 이 정보를 사용하여 호출이 구성된 GitHub 인스턴스, 저장소, 분기와 같은 예상된 소스로부터 수신되었는지 여부를 판별합니다. 비밀 토큰은 Git 이벤트 데이터가 올바른 소스로부터 수신된 것인지 확인하는 데 사용되는 추가적인 보안 계층을 제공합니다.
    6. (선택 사항) 파일 포함 또는 제외를 트리거에 대한 조건으로 제공합니다.
      • 파일 포함. 포함 경로 또는 정규식에 지정된 파일과 일치하는 파일이 커밋에 하나라도 있으면 커밋이 파이프라인을 트리거합니다. 정규식을 지정하는 경우 Code Stream은 변경 집합의 파일 이름이 제공된 표현식과 일치하는 경우에만 파이프라인을 트리거합니다. 정규식 필터는 단일 저장소의 여러 파이프라인에 대해 트리거를 구성할 때 유용합니다.
      • 파일 제외. 커밋의 모든 파일이 제외 경로 또는 정규식에 지정된 파일과 일치하면 파이프라인이 트리거되지 않습니다.
      • 제외 우선 순위 지정. [제외 우선 순위 지정]을 설정하면 커밋에서 임의의 파일이 제외 경로 또는 정규식에 지정된 파일과 일치하더라도 파이프라인이 트리거되지 않습니다. 기본 설정은 해제입니다.
      조건이 파일 포함과 파일 제외를 모두 충족하면 파이프라인이 트리거되지 않습니다.

      다음 예에서 파일 포함과 파일 제외 모두 트리거에 대한 조건입니다.

      파일 포함 및 파일 제외와 해당 값은 Git에 대한 트리거의 Git에 대한 Webhook 탭에 표시되며 일반 또는 정규식일 수 있습니다.

      • 파일 포함의 경우 runtime/src/main/a.java 또는 모든 Java 파일에 대한 변경을 커밋하면 이벤트 구성에서 구성된 파이프라인이 트리거됩니다.
      • 파일 제외의 경우 두 파일에 대한 변경만 커밋하면 이벤트 구성에서 구성된 파이프라인이 트리거되지 않습니다.
    7. Git 이벤트의 경우 푸시 또는 요청을 선택합니다.
    8. API 토큰을 입력합니다.
      VMware Cloud Services API 토큰은 Code Stream에서 외부 API 연결을 위해 사용자를 인증합니다. API 토큰을 가져오려면:
      1. 토큰 생성을 클릭합니다.
      2. 사용자 이름과 연결된 이메일 주소와 암호를 입력하고 생성을 클릭합니다.
        생성한 토큰은 6개월 동안 유효합니다. 새로 고침 토큰이라고도 합니다.
        • 나중에 사용할 수 있도록 토큰을 변수로 유지하려면 변수 생성을 클릭하고 변수 이름을 입력한 후 저장을 클릭합니다.
        • 나중에 사용할 수 있도록 토큰을 텍스트 값으로 유지하려면 복사를 클릭하고 토큰을 텍스트 파일에 붙여 넣어 로컬에 저장합니다.
        나중에 사용할 수 있도록 변수를 생성하고 텍스트 파일에 토큰을 저장하도록 선택할 수 있습니다.
      3. 닫기를 클릭합니다.
    9. Webhook가 트리거할 파이프라인을 선택합니다.
      사용자 지정 추가 입력 매개 변수가 파이프라인에 포함된 경우 [입력 매개 변수] 목록에 매개 변수 및 값이 표시됩니다. 트리거 이벤트를 사용하여 파이프라인에 전달되는 입력 매개 변수에 대한 값을 입력할 수 있습니다. 또는 값을 비워 두거나 기본값(정의된 경우)을 사용할 수도 있습니다.

      Git 트리거의 자동 삽입 입력 매개 변수에 대한 자세한 내용은 사전 요구 사항을 참조하십시오.

    10. 생성을 클릭합니다.
      Webhook이 새 카드로 나타납니다.
  3. Webhook 카드를 클릭합니다.
    Webhook 데이터 양식이 다시 나타나면 양식 상단에 Webhook URL이 추가된 것을 볼 수 있습니다. Git Webhook이 Webhook URL을 통해 GitHub 저장소에 연결됩니다.

    Git 저장소에서 복사하여 사용하는 Git Webhook URL은 Git에 대한 트리거의 Git에 대한 Webhook 탭에 나타납니다.

  4. 새 브라우저 창에서 Webhook을 통해 연결되는 GitHub 저장소를 엽니다.
    1. Code Stream에 추가한 Webhook을 보려면 설정 탭을 클릭하고 Webhook을 선택합니다.
      Webhook 목록의 맨 아래에 동일한 Webhook URL이 표시됩니다.

      GitHub 저장소에서 Webhook 목록은 목록 맨 아래에 동일한 Git Webhook URL이 표시됩니다.

    2. 코드를 변경하려면 코드 탭을 클릭하고 분기에서 파일을 선택합니다. 파일을 편집한 후 변경 내용을 커밋합니다.
    3. Webhook URL이 작동하는지 확인하려면 설정 탭을 클릭하고 Webhook을 다시 선택합니다.
      Webhook 목록의 맨 아래에는 Webhook URL 옆에 녹색 확인 표시가 나타납니다. GitHub의 Webhook이 유효하면 녹색 확인 표시가 나타납니다.
  5. Git Webhook의 작업을 보려면 Code Stream으로 돌아갑니다. 트리거 > Git > 작업을 클릭합니다.
    [실행 상태] 아래에서 파이프라인 실행이 시작되었는지 확인합니다.

    사용자가 파일을 커밋하면 Git에 대한 트리거가 활성화되고 작업 탭에 트리거 상태가 [시작됨]으로 표시됩니다.

  6. 실행을 클릭한 후 실행 중인 파이프라인을 추적합니다.
    파이프라인 실행을 관찰하려면 새로 고침을 누르면 됩니다.

    파이프라인이 트리거된 후 파이프라인 실행에 상태가 [실행 중]으로 표시됩니다.

결과

축하합니다! Git에 대한 트리거 사용에 성공했습니다!