기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
부록 A: GitHub 버전 1 소스 작업
이 부록에서는 의 GitHub 작업 버전 1에 대한 정보를 제공합니다 CodePipeline.
참고
GitHub 버전 1 작업을 사용하는 것은 권장하지 않지만 GitHub 버전 1 작업이 포함된 기존 파이프라인은 아무런 영향 없이 계속 작동합니다. 버전 1 작업이 있는 파이프라인의 GitHub 경우 는 OAuth기반 토큰을 CodePipeline 사용하여 GitHub 리포지토리에 연결합니다. 반대로 GitHub 작업(버전 2)은 연결 리소스를 사용하여 리소스를 GitHub 리포지토리에 연결합니다 AWS . 연결 리소스는 앱 기반 토큰을 사용하여 연결합니다. 파이프라인을 연결을 사용하는 권장 GitHub 작업으로 업데이트하는 방법에 대한 자세한 내용은 섹션을 참조하세요 GitHub 버전 1 소스 작업을 GitHub 버전 2 소스 작업으로 업데이트. 앱 OAuth기반 GitHub 액세스와 달리 기반 GitHub 액세스에 대한 자세한 내용은 섹션을 참조하세요https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps
와 통합하려면 파이프라인용 애플리케이션을 GitHub CodePipeline 사용합니다 GitHub OAuth. CodePipeline 는 웹후크를 사용하여 GitHub 버전 1 소스 작업으로 파이프라인의 변경 감지를 관리합니다.
참고
에서 GitHub 버전 2 소스 작업을 구성할 때 GitHub 토큰 정보를 포함하거나 웹후크 리소스를 추가하지 AWS CloudFormation않습니다. 사용 설명서의 AWS:::CodeStarConnections:Connection과 같이 연결 리소스를 구성합니다. AWS CloudFormation
이 참조에는 GitHub 버전 1 작업에 대한 다음 섹션이 포함되어 있습니다.
-
GitHub 버전 1 소스 작업 및 웹후크를 파이프라인에 추가하는 방법에 대한 자세한 내용은 섹션을 참조하세요 GitHub 버전 1 소스 작업 추가.
-
GitHub 버전 1 소스 작업의 구성 파라미터 및 예제YAML/JSON스니펫에 대한 자세한 내용은 섹션을 참조하세요GitHub 버전 1 소스 작업 참조.
중요
CodePipeline 웹후크를 생성할 때 자체 보안 인증 정보를 사용하거나 여러 웹후크에서 동일한 보안 암호 토큰을 재사용하지 마세요. 최적의 보안을 위해 생성하는 각 웹후크에 대해 고유한 보안 암호 토큰을 생성합니다. 보안 암호 토큰은 사용자가 제공하는 임의의 문자열로, 웹 GitHub후크 페이로드의 무결성과 신뢰성을 보호하기 CodePipeline위해 에 전송된 웹후크 페이로드를 계산하고 서명하는 데 사용됩니다. 자체 보안 인증을 사용하거나 여러 웹후크에서 동일한 토큰을 재사용하면 보안 취약성이 발생할 수 있습니다.
참고
보안 암호 토큰이 제공된 경우 응답에서 해당 토큰이 수정됩니다.
GitHub 버전 1 소스 작업 추가
GitHub 버전 1 소스 작업을 에 추가하는 CodePipeline 방법:
-
CodePipeline 콘솔 파이프라인 생성 마법사(사용자 지정 파이프라인 생성(콘솔)) 또는 작업 편집 페이지를 사용하여 GitHub 공급자 옵션을 선택합니다. 콘솔은 소스가 변경될 때 파이프라인을 시작하는 웹후크를 생성합니다.
-
CLI 를 사용하여 작업에 대한
GitHub
작업 구성을 추가하고 다음과 같이 추가 리소스를 생성합니다.-
GitHub 버전 1 소스 작업 참조의
GitHub
예제 작업 구성을 사용하여 파이프라인 생성(CLI)과 같이 작업을 생성합니다. -
변경 감지 방법은 기본적으로 소스를 폴링하여 파이프라인을 시작하기 때문에 정기적 확인을 비활성화하고 변경 감지를 수동으로 생성합니다. 폴링 파이프라인을 GitHub 버전 1 작업용 웹후크로 마이그레이션합니다.
-
GitHub 버전 1 소스 작업 참조
참고
GitHub 버전 1 작업을 사용하는 것은 권장하지 않지만 GitHub 버전 1 작업이 포함된 기존 파이프라인은 아무런 영향 없이 계속 작동합니다. GitHub GitHub 버전 1 소스 작업이 있는 파이프라인의 경우 는 OAuth기반 토큰을 CodePipeline 사용하여 GitHub 리포지토리에 연결합니다. 반대로 새 GitHub 작업(버전 2)은 연결 리소스를 사용하여 AWS 리소스를 GitHub 리포지토리에 연결합니다. 연결 리소스는 앱 기반 토큰을 사용하여 연결합니다. 파이프라인을 연결을 사용하는 권장 GitHub 작업으로 업데이트하는 방법에 대한 자세한 내용은 섹션을 참조하세요 GitHub 버전 1 소스 작업을 GitHub 버전 2 소스 작업으로 업데이트.
구성된 리 GitHub 포지토리 및 브랜치에서 새 커밋이 생성될 때 파이프라인을 트리거합니다.
와 통합하려면 파이프라인에 애플리케이션 OAuth 또는 개인 액세스 토큰을 GitHub CodePipeline 사용합니다. 콘솔을 사용하여 파이프라인을 생성하거나 편집하는 경우 는 리포지토리에서 변경 사항이 발생할 때 파이프라인을 시작하는 GitHub 웹후크를 CodePipeline 생성합니다.
GitHub 작업을 통해 파이프라인을 연결하기 전에 GitHub 계정과 리포지토리를 이미 생성했어야 합니다.
CodePipeline 리포지토리에 대한 액세스를 제한하려면 GitHub 계정을 생성하고 와 통합하려는 리포지토리에만 계정 액세스 권한을 부여합니다 CodePipeline. 파이프라인의 소스 스테이지에 GitHub 리포지토리 CodePipeline 를 사용하도록 를 구성할 때 해당 계정을 사용합니다.
자세한 내용은 GitHub 웹 사이트의 GitHub 개발자 설명서를
작업 유형
-
범주:
Source
-
소유자:
ThirdParty
-
공급자:
GitHub
-
버전:
1
구성 파라미터
- 소유자
-
필수 여부: 예
리포지토리를 소유한 GitHub 사용자 또는 조직의 이름입니다 GitHub.
- Repo
-
필수 여부: 예
소스 변경 사항을 감지할 리포지토리의 이름입니다.
- 브랜치
-
필수 여부: 예
소스 변경 사항을 감지할 분기의 이름입니다.
- OAuthToken
-
필수 여부: 예
가 GitHub 리포지토리에서 작업을 CodePipeline 수행할 수 있도록 허용하는 GitHub 인증 토큰을 나타냅니다. 항목은 항상 네 개의 별표로 표시됩니다. 다음 값 중 하나를 나타냅니다.
-
콘솔을 사용하여 파이프라인을 생성할 때 는 OAuth 토큰을 CodePipeline 사용하여 GitHub 연결을 등록합니다.
-
AWS CLI 를 사용하여 파이프라인을 생성할 때 이 필드에 GitHub 개인 액세스 토큰을 전달할 수 있습니다. 별표(****)를 에서 복사한 개인 액세스 토큰으로 바꿉니다 GitHub. 작업 구성을 보기 위해
get-pipeline
을 실행하면 이 값에 대해 별표 4개 마스크가 표시됩니다. -
AWS CloudFormation 템플릿을 사용하여 파이프라인을 생성할 때는 먼저 토큰을 에 보안 암호로 저장해야 합니다 AWS Secrets Manager. 이 필드의 값을 Secrets Manager에 저장된 보안 암호에 대한 동적 참조로 포함합니다(예:
{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}
).
GitHub 범위에 대한 자세한 내용은 GitHub 웹 사이트의 GitHub 개발자 API 참조
를 참조하세요. -
- PollForSourceChanges
-
필수 여부: 아니요
PollForSourceChanges
는 소스 변경에 GitHub 대해 리포지토리를 CodePipeline 폴링할지 여부를 제어합니다. 대신 웹후크를 사용하여 소스 변경 사항을 감지하는 것이 좋습니다. 웹후크 구성에 대한 자세한 내용은 폴링 파이프라인을 웹후크(GitHub 버전 1 소스 작업)로 마이그레이션(CLI) 또는 푸시 이벤트에 대한 파이프라인 업데이트(GitHub 버전 1 소스 작업)(AWS CloudFormation 템플릿) 단원을 참조하십시오.중요
웹후크를 구성하려는 경우 중복된 파이프라인 실행이 발생하지 않도록
PollForSourceChanges
을false
로 설정해야 합니다.이 파라미터에 유효한 값은 다음과 같습니다.
-
True
: 설정된 경우 는 소스 변경에 대해 리포지토리를 CodePipeline 폴링합니다.참고
를 생략하면
PollForSourceChanges
CodePipeline 기본적으로 소스 변경에 대해 리포지토리를 폴링합니다. 이러한 동작은PollForSourceChanges
이true
로 설정된 경우와 똑같습니다. -
False
: 설정된 경우 는 소스 변경에 대해 리포지토리를 폴링하지 CodePipeline 않습니다. 소스 변경 사항을 감지하도록 웹후크를 구성하려면 이 설정을 사용합니다.
-
입력 아티팩트
-
아티팩트 수:
0
-
설명: 이 작업 유형에는 입력 아티팩트가 적용되지 않습니다.
출력 아티팩트
-
아티팩트 수:
1
-
설명: 이 작업의 출력 아티팩트는 파이프라인 실행을 위한 소스 개정으로 지정된 커밋에서 구성된 리포지토리 및 브랜치의 콘텐츠를 포함하는 ZIP 파일입니다. 리포지토리에서 생성된 아티팩트는 GitHub 작업에 대한 출력 아티팩트입니다. 소스 코드 커밋 ID는 트리거된 파이프라인 실행을 위한 소스 개정 CodePipeline 으로 에 표시됩니다.
출력 변수
이 작업을 구성하면 파이프라인에서 다운스트림 작업의 작업 구성에서 참조할 수 있는 변수가 생성됩니다. 이 작업은 작업에 네임스페이스가 없는 경우에도 출력 변수로 볼 수 있는 변수를 생성합니다. 이러한 변수를 다운스트림 작업 구성에서 사용할 수 있도록 네임스페이스를 사용하여 작업을 구성합니다.
의 변수에 대한 자세한 내용은 섹션을 CodePipeline참조하세요변수 참조.
- CommitId
-
파이프라인 실행을 트리거한 GitHub 커밋 ID입니다. 커밋IDs은 커밋SHA의 전체입니다.
- CommitMessage
-
파이프라인 실행을 트리거한 커밋과 연관된 설명 메시지입니다(존재하는 경우).
- CommitUrl
-
파이프라인을 트리거한 커밋의 URL 주소입니다.
- RepositoryName
-
파이프라인을 트리거한 커밋이 수행된 GitHub 리포지토리의 이름입니다.
- BranchName
-
소스가 변경된 GitHub 리포지토리의 브랜치 이름입니다.
- AuthorDate
-
커밋이 작성된 날짜입니다(타임스탬프 형식).
- CommitterDate
-
커밋이 수행된 날짜입니다(타임스탬프 형식).
작업 선언(GitHub 예)
GitHub (OAuth)에 연결
콘솔을 사용하여 파이프라인에 GitHub 리포지토리를 처음 추가할 때 리포지토리에 대한 CodePipeline 액세스를 승인하라는 메시지가 표시됩니다. 토큰에는 다음 GitHub 범위가 필요합니다.
-
repo
범위(퍼블릭 및 프라이빗 리포지토리에서 파이프라인으로 아티팩트를 읽고 가져올 수 있도록 완전히 제어하는 데 사용됨). -
admin:repo_hook
범위(리포지토리 후크를 완전히 제어하는 데 사용됨).
CLI 또는 AWS CloudFormation 템플릿을 사용할 때는 에서 이미 생성한 개인 액세스 토큰의 값을 제공해야 합니다 GitHub.
다음 사항도 참조하세요.
이 작업을 수행할 때 참조할 수 있는 관련 리소스는 다음과 같습니다.
-
AWS CloudFormation 사용 설명서 AWS::CodePipeline::Webhook의 리소스 참조 - 여기에는 의 리소스에 대한 필드 정의, 예제 및 조각이 포함됩니다 AWS CloudFormation.
-
AWS CloudFormation 사용 설명서 AWS::CodeStar::GitHub리포지토리에 대한 리소스 참조 - 여기에는 의 리소스에 대한 필드 정의, 예제 및 조각이 포함됩니다 AWS CloudFormation.
-
자습서: 를 사용하여 Android 앱을 빌드하고 테스트하는 파이프라인 생성 AWS Device Farm - 이 자습서에서는 샘플 빌드 사양 파일과 샘플 애플리케이션을 제공하여 GitHub 소스가 있는 파이프라인을 생성합니다. CodeBuild 및 를 사용하여 Android 앱을 빌드하고 테스트합니다 AWS Device Farm.