GitHub
GitHub 커넥터를 사용하면 GitHub 데이터에 대한 삽입, 삭제, 업데이트, 읽기 작업을 수행할 수 있습니다.
시작하기 전에
GitHub 커넥터를 사용하기 전에 다음 태스크를 수행합니다.
- Google Cloud 프로젝트에서:
- 커넥터를 구성하는 사용자에게 roles/connectors.admin IAM 역할을 부여합니다.
- 커넥터에 사용할 서비스 계정에 다음 IAM 역할을 부여합니다.
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
서비스 계정은 인증을 거쳐야 하며 Google API의 데이터에 액세스할 수 있는 승인을 받은 사람이 아닌 사용자를 나타내는 특별한 유형의 Google 계정입니다. 서비스 계정이 없으면 서비스 계정을 만들어야 합니다. 자세한 내용은 서비스 계정 만들기를 참조하세요.
- 다음 서비스를 사용 설정합니다.
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
서비스 사용 설정 방법은 서비스 사용 설정을 참조하세요.
이러한 서비스나 권한이 이전 프로젝트에서 사용 설정되지 않았으면 커넥터를 구성할 때 서비스나 권한을 사용 설정하라는 메시지가 표시됩니다.
- GitHub에서 요구사항에 따라 다음 작업을 완료합니다.
커넥터 구성
커넥터를 구성하려면 데이터 소스(백엔드 시스템)에 대한 연결을 만들어야 합니다. 연결은 데이터 소스와 관련이 있습니다. 즉, 데이터 소스가 많으면 데이터 소스마다 별도의 연결을 만들어야 합니다. 연결을 만들려면 다음 단계를 따르세요.
- Cloud 콘솔에서 Integration Connectors > 연결 페이지로 이동한 다음 Google Cloud 프로젝트를 선택하거나 만듭니다.
- + 새로 만들기를 클릭하여 연결 만들기 페이지를 엽니다.
- 위치 섹션에서 연결 위치를 선택합니다.
- 리전: 드롭다운 목록에서 위치를 선택합니다.
지원되는 모든 리전 목록은 위치를 참조하세요.
- 다음을 클릭합니다.
- 리전: 드롭다운 목록에서 위치를 선택합니다.
- 연결 세부정보 섹션에서 다음을 완료합니다.
- 커넥터: 사용 가능한 커넥터 드롭다운 목록에서 GitHub를 선택합니다.
- 커넥터 버전: 사용 가능한 버전의 드롭다운 목록에서 커넥터 버전을 선택합니다.
- 연결 이름 필드에서 연결 인스턴스의 이름을 입력합니다.
연결 이름은 다음 기준을 충족해야 합니다.
- 연결 이름에 문자, 숫자, 하이픈을 사용할 수 있습니다.
- 문자는 소문자여야 합니다.
- 연결 이름은 문자로 시작하고 문자 또는 숫자로 끝나야 합니다.
- 연결 이름은 49자(영문 기준)를 초과할 수 없습니다.
- 선택적으로 연결 인스턴스에 대한 설명을 입력합니다.
- 필요한 경우 Cloud Logging을 사용 설정한 다음 로그 수준을 선택합니다. 기본적으로 로그 수준은
Error
로 설정됩니다. - 서비스 계정: 필수 역할이 있는 서비스 계정을 선택합니다.
- 원하는 경우 OwnerLogin을 지정합니다. 사용자 또는 조직에 속한 고유한 로그인 이름입니다.
- 원하는 경우 스키마를 지정합니다. 스키마를 사용하여 동적으로 검색된 스키마를 특정 프로젝트 또는 저장소 스키마로 제한합니다. 모든 스키마를 검색하려면 이 필드에 값을 지정하지 마세요. 지원되는 스키마에 대한 자세한 내용은 스키마 및 범위를 참조하세요.
- 필요한 경우 연결 노드 설정을 구성합니다.
- 최소 노드 수: 최소 연결 노드 수를 입력합니다.
- 최대 노드 수: 최대 연결 노드 수를 입력합니다.
노드는 트랜잭션을 처리하는 연결의 단위(또는 복제본)입니다. 연결에 대해 더 많은 트랜잭션을 처리하려면 더 많은 노드가 필요합니다. 이와 반대로 더 적은 트랜잭션을 처리하기 위해서는 더 적은 노드가 필요합니다. 노드가 커넥터 가격 책정에 미치는 영향을 파악하려면 연결 노드 가격 책정을 참조하세요. 값을 입력하지 않으면 기본적으로 최소 노드가 (높은 가용성을 위해) 2로 설정되고 최대 노드는 50으로 설정됩니다.
- 선택적으로 + 라벨 추가를 클릭하여 키/값 쌍의 형식으로 연결에 라벨을 추가합니다.
- 다음을 클릭합니다.
- 대상 섹션에서 연결하려는 원격 호스트(백엔드 시스템)의 세부정보를 입력합니다.
- 대상 유형: 대상 유형을 선택합니다.
- 목록에서 호스트 주소를 선택하여 대상의 호스트 이름 또는 IP 주소를 지정합니다.
- 백엔드 시스템에 비공개 연결을 설정하려면 목록에서 엔드포인트 연결을 선택한 다음 엔드포인트 연결 목록에서 필요한 엔드포인트 연결을 선택합니다.
추가 보안을 사용하여 백엔드 시스템에 공개 연결을 설정하려면 연결의 고정 아웃바운드 IP 주소를 구성한 후 방화벽 규칙을 구성하여 특정 고정 IP 주소만 허용 목록에 추가합니다.
추가 대상을 입력하려면 +대상 추가를 클릭합니다.
- 다음을 클릭합니다.
- 대상 유형: 대상 유형을 선택합니다.
-
인증 섹션에서 인증 세부정보를 입력합니다.
이러한 인증 유형을 구성하는 방법은 인증 구성을 참조하세요.
- 다음을 클릭합니다.
- 검토: 연결 및 인증 세부정보를 검토합니다.
- 만들기를 클릭합니다.
인증 구성
사용할 인증을 기반으로 세부정보를 입력합니다.
- 클라이언트 ID: 액세스 토큰을 요청하는 데 사용되는 클라이언트 ID입니다.
- 범위: 쉼표로 구분된 원하는 범위 목록입니다.
- 클라이언트 보안 비밀번호: 생성한 연결된 앱의 클라이언트 보안 비밀이 포함된 Secret Manager 보안 비밀입니다.
연결 구성 샘플
이 섹션에서는 연결을 만들 때 구성할 다양한 필드의 샘플 값이 표시됩니다.
OAUTH 2.0 - 승인 코드 연결 유형
필드 이름 세부정보 위치 europe-west1 커넥터 GitHub 커넥터 버전 1 연결 이름 GitHub-connector Cloud Logging 사용 설정 아니요 서비스 계정 Your_Project_Number@serviceaccount OwnerLogin souvikg-Your_Owner_Login 스키마 최소 노드 수 2 최대 노드 수 50 클라이언트 ID ClientID 범위 repo repo:status repo_deployment 클라이언트 보안 비밀번호 클라이언트 보안 비밀번호 보안 비밀 버전 1 GitHub 스키마 및 범위
GitHub 커넥터는 다음 스키마를 지원합니다.- 정보 스키마: 이 스키마에는 라이선스 정보와 인증된 계정과 연결된 프로젝트 및 저장소에 대한 대략적인 개요가 포함된 테이블이 포함되어 있습니다. 정보 스키마는 하나만 존재합니다. 정보 스키마를 검색하려면 스키마 필드에 'Information'을 지정합니다.
- 저장소 스키마: 커넥터는 인증된 사용자 또는 조직 계정의 각 저장소에 대한 스키마를 지원합니다. 저장소 스키마를 지정하려면 다음 형식: Repository_
. 를 사용합니다. - 프로젝트 스키마: 커넥터는 인증된 사용자 또는 조직 계정의 각 프로젝트에 대한 스키마를 지원합니다. 프로젝트 스키마를 지정하려면 다음 형식: Project_
를 사용합니다.
범위에 관한 자세한 내용은 GitHub 범위를 참조하세요.
항목, 작업, 조치
모든 Integration Connectors는 연결된 애플리케이션의 객체에 대한 추상화 레이어를 제공합니다. 이 추상화를 통해서만 애플리케이션의 객체에 액세스할 수 있습니다. 추상화는 항목, 작업, 조치로 노출됩니다.
- 항목: 연결된 애플리케이션 또는 서비스에서 항목은 객체 또는 속성 모음으로 간주될 수 있습니다. 항목의 정의는 커넥터마다 다릅니다. 예를 들어 데이터베이스 커넥터에서는 테이블이 항목이고, 파일 서버 커넥터에서는 폴더가 항목이며 메시징 시스템 커넥터에서는 큐가 항목입니다.
그러나 커넥터가 항목을 지원하지 않거나 항목을 포함하지 않을 수 있으며, 이 경우
Entities
목록이 비어 있습니다. - 작업: 작업은 항목에 대해 수행할 수 있는 활동입니다. 항목에서 다음 작업을 수행할 수 있습니다.
사용 가능한 목록에서 항목을 선택하면 항목에 사용 가능한 작업 목록이 생성됩니다. 작업에 대한 자세한 설명은 커넥터 태스크의 항목 작업을 참조하세요. 그러나 커넥터가 항목 작업을 지원하지 않으면 이렇게 지원되지 않는 작업은
Operations
목록에 나열되지 않습니다. - 조치: 커넥터 인터페이스를 통해 통합에 제공되는 첫 번째 클래스 함수입니다. 조치를 사용하면 항목을 변경할 수 있습니다. 조치는 커넥터마다 다릅니다. 일반적으로 조치에는 입력 매개변수와 출력 매개변수가 있습니다. 하지만 커넥터가 조치를 지원하지 않을 수 있으며 이 경우
Actions
목록이 비어 있습니다.
시스템 제한사항
GitHub 커넥터는 노드별로 초당 트랜잭션 2개를 처리할 수 있으며 이 한도를 초과하는 모든 트랜잭션을 제한합니다. 기본적으로 Integration Connectors는 가용성을 높이기 위해 연결에 2개의 노드를 할당합니다.
Integration Connectors에 적용되는 한도에 대한 자세한 내용은 한도를 참조하세요.
작업
이 섹션에는 GitHub 커넥터에서 지원하는 작업이 나와 있습니다. 작업을 구성하는 방법은 작업 예시를 참조하세요.
UpdatePullRequestBranch 작업
이 작업은 pull 요청 브랜치를 업데이트합니다.
UpdatePullRequestBranch 작업의 입력 파라미터
이름 유형 설명 PullRequestId 문자열 pull 요청의 노드 ID입니다. ExpectedHeadOid 문자열 업스트림 브랜치의 헤드 참조 oid입니다. UpdateMethod 문자열 사용할 업데이트 브랜치 메서드입니다. 기본값은 'MERGE'입니다. 허용되는 값은 MERGE 및 REBASE입니다. AppsDeployStatus 작업의 출력 파라미터
이 작업은 상태 200(OK)을 반환하고 pull 요청 브랜치를 업데이트합니다.
UpdatePullRequestBranch
작업을 구성하는 방법의 예시는 예시를 참조하세요.MergePullRequest 작업
이 작업은 pull 요청을 병합합니다.
MergePullRequest 작업의 입력 파라미터
이름 유형 설명 PullRequestId 문자열 병합할 pull 요청의 노드 ID입니다. ExpectedHeadOid 문자열 병합을 허용하려면 pull 요청 헤드 참조가 일치해야 하는 OID입니다. 생략하면 확인이 수행되지 않습니다. CommitHeadline 문자열 병합 커밋에 사용할 커밋 제목입니다. 생략하면 기본 메시지가 사용됩니다. CommitBody 문자열 병합 커밋에 사용할 커밋 본문입니다. 생략하면 기본 메시지가 사용됩니다. MergeMethod 문자열 사용할 병합 메서드입니다. 기본값은 'MERGE'입니다. 허용되는 값은 MERGE, SQUASH, REBASE입니다. AuthorEmail 문자열 이 병합과 연결할 이메일 주소입니다. MergePullRequest 작업의 출력 파라미터
이 작업은 상태 200(OK)을 반환하고 pull 요청을 병합합니다.
MergePullRequest
작업을 구성하는 방법의 예시는 예시를 참조하세요.작업 예시
이 섹션에서는 이 커넥터에서 일부 작업을 수행하는 방법을 설명합니다.
예시 - UpdatePullRequestBranch
이 예에서는 애플리케이션의 배포 상태를 검색합니다.
Configure connector task
대화상자에서Action
를 클릭합니다.UpdatePullRequestBranch
조치를 선택한 다음 완료를 클릭합니다.- 커넥터 태스크의 태스크 입력 섹션에서
connectorInputPayload
를 클릭한 후Default Value
필드에 다음과 유사한 값을 입력합니다.{ "PullRequestId": "PR_kwDOLywhW8537gcA" }
작업이 성공하면
UpdatePullRequestBranch
태스크의connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.{ "pullrequestid": "PR_kwDOLywhW8537gcA" }
예시 - MergePullRequest
이 예에서는 pull 요청을 병합합니다.
Configure connector task
대화상자에서Action
를 클릭합니다.MergePullRequest
조치를 선택한 다음 완료를 클릭합니다.- 커넥터 태스크의 태스크 입력 섹션에서
connectorInputPayload
를 클릭한 후Default Value
필드에 다음과 유사한 값을 입력합니다.{ "PullRequestId": "PR_kwDOLywhW8537gcA", "CommitHeadline": "Google MERGE", "CommitBody": "This is Google Merge" }
작업이 성공하면
MergePullRequest
태스크의connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.{ "pullrequestid": "PR_kwDOLywhW8537gcA" }
항목 작업 예시
이 섹션에서는 이 커넥터에서 일부 항목 작업을 수행하는 방법을 보여줍니다.
예 - 항목 'Branches'의 LIST 작업
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서 Branches를 선택합니다.LIST
작업을 선택한 후 완료를 클릭합니다.- 커넥터 태스크의 태스크 입력 섹션에서 고객 요구사항에 따라 filterClause를 설정할 수 있습니다. 아래의 메모 섹션을 확인하세요.
이 예시에서 branches는 항목의 이름이고 필터 절의 값은 항상 작은따옴표(')로 묶어서 전달해야 합니다(예: City='Pune'). City는 열 이름이고 Pune은 값입니다.
필터 절을 사용하여 열을 기준으로 특정 레코드 집합을 필터링할 수 있습니다. 이름 = demo16975280986860인 레코드가 20개 있는 경우 Address='Miami' 및 region='us-east1' 열을 사용하여 레코드를 필터링할 수 있습니다.
다음 항목에서 LIST 작업을 수행할 수도 있습니다.
Commits,CommitComments, Forks, IssueComments, Issue, IssueAssignees, AssignableUser,Labels, Milestones, PullRequestReviews, PullRequests, PullRequestComments, ReleaseAssets, Releases, Watcher, Users, Repositories, Collaborators, OrganizationTeams, OrganizationsMannequins, OrganizationMember, Organization, Licenses, LicensePermission, LicenseLimitation, LicenseConditions, Projects, PullRequestReviewRequests.
예 - 항목 'Branches'의 GET 작업
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서 Branches를 선택합니다.GET
작업을 선택한 후 완료를 클릭합니다.- 엔티티 ID를 전달하려는 키 값인 4로 설정합니다. 엔티티 ID를 설정하려면 커넥터 태스크의 태스크 입력 섹션에서 EntityId를 클릭한 후 기본값 필드에
4
를 입력합니다.
이 예시에서 branches는 항목의 이름이고 엔티티 ID의 값은 4와 같이 직접 전달해야 합니다. 단일 엔터티 ID를 전달할 때 복합 키 2개로 인해 오류가 발생하면 필수 열과 함께 필터 절을 사용합니다.
예 - 항목 'Repositories'의 GET 작업
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서 Repositories를 선택합니다.GET
작업을 선택한 후 완료를 클릭합니다.- 엔티티 ID를 전달하려는 키 값인 4로 설정합니다. 엔티티 ID를 설정하려면 커넥터 태스크의 태스크 입력 섹션에서 EntityId를 클릭한 후 기본값 필드에
4
를 입력합니다.
이 예시에서 Repositories는 항목의 이름이고 엔티티 ID의 값은 4와 같이 직접 전달해야 합니다. 단일 엔터티 ID를 전달할 때 복합 키 2개로 인해 오류가 발생하면 필수 열과 함께 필터 절을 사용합니다.
다음 항목에서 GET 작업을 수행할 수 있습니다.
CommitComments, Commits, IssueAssignees, Labels, Milestones, PullRequestReviews, PullRequests, PullRequestComments, ReleaseAssets, Release, Topics, Users, Collaborators, Organizations, Licenses.
예 - 항목 'Issues'의 CREATE 작업
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서 Issues를 선택합니다.Create
작업을 선택한 후 완료를 클릭합니다.- 커넥터 태스크의 태스크 입력 섹션에서
connectorInputPayload
를 클릭한 후Default Value
필드에 다음과 유사한 값을 입력합니다.{ "Title": "Google_Cloud_GitHub_Issues_Create", "Body": "Please check hence raising the Feature Request for the same." }
이 예시를 실행하면 커넥터 태스크의
connectorOutputPayload
출력 변수에서 다음과 비슷한 응답이 반환됩니다.{ "Id": "I_kwDOLywhW86Sd-xF" }
예 - 항목 'PullRequests'의 CREATE 작업
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서 PullRequests를 선택합니다.Create
작업을 선택한 후 완료를 클릭합니다.- 커넥터 태스크의 태스크 입력 섹션에서
connectorInputPayload
를 클릭한 후Default Value
필드에 다음과 유사한 값을 입력합니다.{ "BaseRefName": "main", "HeadRefName": "New_Branch", "Title": "DEMO_Google_Cloud_PULLRequest", "Body": "This is demo Google_Cloud pull" }
이 예시를 실행하면 커넥터 태스크의
connectorOutputPayload
출력 변수에서 다음과 비슷한 응답이 반환됩니다.{ "Id": "PR_kwDOLywhW8537gcA" }
예 - 항목 'Repositories'의 CREATE 작업
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서 Repositories를 선택합니다.Create
작업을 선택한 후 완료를 클릭합니다.- 커넥터 태스크의 태스크 입력 섹션에서
connectorInputPayload
를 클릭한 후Default Value
필드에 다음과 유사한 값을 입력합니다.{ "Name": "Google_Cloud_DEMO_REPO", "OwnerId": "O_kgDOCaxLsg", "Visibility": "PUBLIC" }
이 예시를 실행하면 커넥터 태스크의
connectorOutputPayload
출력 변수에서 다음과 비슷한 응답이 반환됩니다.{ "Id": "R_kgDOMhWBEQ" }
예 - 항목 'Issues'의 UPDATE 작업
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서 Issues를 선택합니다.UPDATE
작업을 선택한 후 완료를 클릭합니다.- 커넥터 태스크의 태스크 입력 섹션에서
connectorInputPayload
를 클릭한 후Default Value
필드에 다음과 유사한 값을 입력합니다.{ "Title": "New_Updated_Google_Cloud_Issue", "Body": "Newly Updated from Google_Cloud" }
- entityId 값을 I_kwDOLywhW86Sd-xF로 설정합니다. filterClause의 값을 설정하려면 entityId를 클릭한 다음 기본값 필드에
I_kwDOLywhW86Sd-xF
를 입력합니다.이 예시를 실행하면 커넥터 태스크의
connectorOutputPayload
출력 변수에서 다음과 비슷한 응답이 반환됩니다.{ "Id": "I_kwDOLywhW86Sd-xF" }
예 - 항목 'PullRequests'의 UPDATE 작업
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서 PullRequests를 선택합니다.UPDATE
작업을 선택한 후 완료를 클릭합니다.- 커넥터 태스크의 태스크 입력 섹션에서
connectorInputPayload
를 클릭한 후Default Value
필드에 다음과 유사한 값을 입력합니다.{ "Title": "Updated_Google_Cloud_PULL", "Body": "Update New pull Body" }
- entityId 값을 PR_kwDOLywhW8537gcA로 설정합니다. filterClause의 값을 설정하려면 entityId를 클릭한 다음 기본값 필드에
PR_kwDOLywhW8537gcA
를 입력합니다.이 예시를 실행하면 커넥터 태스크의
connectorOutputPayload
출력 변수에서 다음과 비슷한 응답이 반환됩니다.{ "Id": "PR_kwDOLywhW8537gcA" }
예 - 항목 'Repositories'의 UPDATE 작업
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서 Repositories를 선택합니다.UPDATE
작업을 선택한 후 완료를 클릭합니다.- 커넥터 태스크의 태스크 입력 섹션에서
connectorInputPayload
를 클릭한 후Default Value
필드에 다음과 유사한 값을 입력합니다.{ "Name": "Updated_New_Google_Cloud_Repo" }
- entityId 값을 R_kgDOMhWBEQ로 설정합니다. filterClause의 값을 설정하려면 entityId를 클릭한 다음 기본값 필드에
R_kgDOMhWBEQ
를 입력합니다.이 예시를 실행하면 커넥터 태스크의
connectorOutputPayload
출력 변수에서 다음과 비슷한 응답이 반환됩니다.{ "Id": "R_kgDOMhWBEQ" }
예 - 항목 'PullRequestReviewRequests'의 DELETE 작업
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서 PullRequestReviewRequests를 선택합니다.DELETE
작업을 선택한 후 완료를 클릭합니다.- filterClause의 값을 설정하고 filterClause를 클릭한 다음 기본값 필드에
PullRequestId= 'PR_kwDOLywhW85yNWPa' and RequestedReviewerUserId= 'U_kgDOCebPLA'
를 입력합니다.
- Apigee Integration에서 커넥터 태스크를 만들고 사용하는 방법을 알아보려면 커넥터 태스크를 참조하세요.
- Application Integration에서 커넥터 태스크를 만들고 사용하는 방법을 이해하려면 커넥터 태스크를 참조하세요.
- 연결 일시중지 및 재개 방법 알아보기
- 커넥터 사용량 모니터링 방법 알아보기
- 커넥터 로그 확인 방법 알아보기
통합에서 GitHub 연결 사용
연결을 만들면 Apigee Integration 및 Application Integration에서 사용할 수 있게 됩니다. 커넥터 태스크를 통해 통합에서 연결을 사용할 수 있습니다.