기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
부록 A: GitHub(OAuth 앱 사용) 소스 작업
이 부록은 CodePipeline에서 GitHub 작업의 (OAuth 앱을 통해)에 대한 정보를 제공합니다.
참고
GitHub(OAuth 앱 사용) 작업을 사용하지 않는 것이 좋지만 GitHub(OAuth 앱 사용) 작업이 있는 기존 파이프라인은 아무런 영향 없이 계속 작동합니다. GitHub(OAuth 앱 사용) 작업이 있는 파이프라인의 경우 CodePipeline은 OAuth 기반 토큰을 사용하여 GitHub 리포지토리에 연결합니다. 반대로 GitHub 작업(GitHub 앱을 통해)은 연결 리소스를 사용하여 AWS 리소스를 GitHub 리포지토리에 연결합니다. 연결 리소스는 앱 기반 토큰을 사용하여 연결합니다. 연결을 사용하는 권장 GitHub 작업으로 파이프라인을 업데이트하는 방법에 대한 자세한 내용은 GitHub(OAuth 앱 사용) 소스 작업을 GitHub(GitHub 앱 사용) 소스 작업으로 업데이트을 참조하세요. 앱 기반 GitHub 액세스와 대조되는 OAuth 기반 GitHub 액세스에 대한 자세한 내용은 https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps
GitHub와 통합하기 위해 CodePipeline은 파이프라인용 GitHub OAuth 애플리케이션을 사용합니다. CodePipeline은 웹후크를 사용하여 GitHub(OAuth 앱 사용) 소스 작업을 사용하여 파이프라인에 대한 변경 감지를 관리합니다.
참고
에서 GitHub(GitHub 앱을 통해) 소스 작업을 구성할 때 GitHub 토큰 정보를 포함하거나 웹후크 리소스를 추가하지 AWS CloudFormation않습니다. 사용 설명서의 AWS::CodeStarConnections::Connection에 표시된 대로 연결 리소스를 구성합니다. AWS CloudFormation
이 참조에는 GitHub(OAuth 앱 사용) 작업에 대한 다음 섹션이 포함되어 있습니다.
-
GitHub(OAuth 앱을 통해) 소스 작업 및 웹후크를 파이프라인에 추가하는 방법에 대한 자세한 내용은 섹션을 참조하세요GitHub(OAuth 앱을 통해) 소스 작업 추가.
-
GitHub(OAuth 앱 사용) 소스 작업의 구성 파라미터 및 예제 YAML/JSON 코드 조각에 대한 자세한 내용은 섹션을 참조하세요GitHub(OAuth 앱 사용) 소스 작업 참조.
중요
CodePipeline 웹후크를 생성할 때 자체 자격 증명을 사용하거나 여러 웹후크에서 동일한 보안 암호 토큰을 재사용하지 마세요. 최적의 보안을 위해 생성하는 각 웹후크에 대해 고유한 보안 암호 토큰을 생성합니다. 보안 암호 토큰은 사용자가 제공하는 임의의 문자열로, GitHub는 CodePipeline으로 전송된 웹후크 페이로드를 계산하고 서명하는 데 이를 사용하여 웹후크 페이로드의 무결성과 신뢰성을 보호합니다. 자체 자격 증명을 사용하거나 여러 웹후크에서 동일한 토큰을 재사용하면 보안 취약성이 발생할 수 있습니다.
참고
보안 암호 토큰이 제공된 경우 응답에서 해당 토큰이 수정됩니다.
GitHub(OAuth 앱을 통해) 소스 작업 추가
다음을 수행하여 GitHub(OAuth 앱을 통해) 소스 작업을 CodePipeline에 추가합니다.
-
CodePipeline 콘솔 파이프라인 생성 마법사(사용자 지정 파이프라인 생성(콘솔)) 또는 작업 편집 페이지를 사용하여 GitHub 공급자 옵션을 선택합니다. 콘솔은 소스가 변경될 때 파이프라인을 시작하는 웹후크를 생성합니다.
-
CLI를 사용하여
GitHub
작업에 대한 작업 구성을 추가하고 다음과 같이 추가 리소스를 생성합니다.-
GitHub(OAuth 앱 사용) 소스 작업 참조의
GitHub
예제 작업 구성을 사용하여 파이프라인 생성(CLI)과 같이 작업을 생성합니다. -
변경 감지 방법은 기본적으로 소스를 폴링하여 파이프라인을 시작하기 때문에 정기적 확인을 비활성화하고 변경 감지를 수동으로 생성합니다. 폴링 파이프라인을 GitHub용 웹후크(OAuth 앱 사용) 작업으로 마이그레이션합니다.
-
GitHub(OAuth 앱 사용) 소스 작업 참조
참고
GitHub(OAuth 앱 사용) 작업을 사용하지 않는 것이 좋지만 GitHub(OAuth 앱 사용) 작업이 있는 기존 파이프라인은 아무런 영향 없이 계속 작동합니다. GitHub GitHub(OAuth 앱 사용) 소스 작업이 있는 파이프라인의 경우 CodePipeline은 OAuth 기반 토큰을 사용하여 GitHub 리포지토리에 연결합니다. 반대로 새 GitHub 작업(GitHub 앱을 통해)은 연결 리소스를 사용하여 AWS 리소스를 GitHub 리포지토리에 연결합니다. 연결 리소스는 앱 기반 토큰을 사용하여 연결합니다. 연결을 사용하는 권장 GitHub 작업으로 파이프라인을 업데이트하는 방법에 대한 자세한 내용은 GitHub(OAuth 앱 사용) 소스 작업을 GitHub(GitHub 앱 사용) 소스 작업으로 업데이트을 참조하세요.
구성된 GitHub 리포지토리와 분기에서 새 커밋이 이루어지면 파이프라인을 트리거합니다.
GitHub와 통합하기 위해 CodePipeline은 파이프라인에서 OAuth 애플리케이션이나 개인 액세스 토큰을 사용합니다. 콘솔에서 파이프라인을 생성하거나 편집하는 경우, CodePipeline은 리포지토리에서 변경이 발생할 때 파이프라인을 시작하는 GitHub 웹후크를 생성합니다.
GitHub 작업을 통해 파이프라인을 연결하기 전에 미리 GitHub 계정과 리포지토리를 생성해야 합니다.
리포지토리에 대한 CodePipeline의 액세스 권한을 제한하고 싶으면 GitHub 계정을 생성하고 CodePipeline에 통합하고 싶은 리포지토리에만 액세스할 수 있도록 계정에 권한을 부여합니다. 파이프라인의 소스 단계에서 GitHub 리포지토리를 사용하도록 CodePipeline을 구성할 때 이 계정을 사용합니다.
자세한 내용은 GitHub 웹 사이트의 GitHub 개발자 설명서
작업 유형
-
범주:
Source
-
소유자:
ThirdParty
-
공급자:
GitHub
-
버전:
1
구성 파라미터
- 소유자
-
필수 여부: 예
GitHub 리포지토리를 소유한 GitHub 사용자 또는 조직의 이름입니다.
- Repo
-
필수 여부: 예
소스 변경 사항을 감지할 리포지토리의 이름입니다.
- 브랜치
-
필수 여부: 예
소스 변경 사항을 감지할 분기의 이름입니다.
- OauthToken
-
필수 여부: 예
CodePipeline이 GitHub 리포지토리에서 작업을 수행할 수 있게 해주는 GitHub 인증 토큰을 나타냅니다. 항목은 항상 네 개의 별표로 표시됩니다. 다음 값 중 하나를 나타냅니다.
-
콘솔을 사용하여 파이프라인을 생성할 때 CodePipeline은 OAuth 토큰을 사용하여 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
는 CodePipeline이 GitHub 리포지토리에서 소스 변경 사항을 폴링할지 여부를 제어합니다. 대신 웹후크를 사용하여 소스 변경 사항을 감지하는 것이 좋습니다. 웹후크 구성에 대한 자세한 내용은 폴링 파이프라인을 웹후크(GitHub(OAuth 앱 사용) 소스 작업)로 마이그레이션(CLI) 또는 푸시 이벤트에 대한 파이프라인 업데이트(GitHub(OAuth 앱 사용) 소스 작업)(AWS CloudFormation 템플릿) 단원을 참조하십시오.중요
웹후크를 구성하려는 경우 중복된 파이프라인 실행이 발생하지 않도록
PollForSourceChanges
을false
로 설정해야 합니다.이 파라미터에 유효한 값은 다음과 같습니다.
-
True
: 이 값으로 설정된 경우 CodePipeline은 리포지토리에서 소스 변경 사항을 폴링합니다.참고
PollForSourceChanges
를 생략하면 CodePipeline은 기본적으로 소스 변경 사항에 대해 리포지토리를 폴링합니다. 이러한 동작은PollForSourceChanges
이true
로 설정된 경우와 똑같습니다. -
False
: 이 값으로 설정된 경우 CodePipeline은 리포지토리에서 소스 변경 사항을 폴링하지 않습니다. 소스 변경 사항을 감지하도록 웹후크를 구성하려면 이 설정을 사용합니다.
-
입력 아티팩트
-
아티팩트 수:
0
-
설명: 이 작업 유형에는 입력 아티팩트가 적용되지 않습니다.
출력 아티팩트
-
아티팩트 수:
1
-
설명: 이 작업의 출력 아티팩트는 파이프라인 실행을 위한 소스 개정으로 지정된 커밋에서 구성된 리포지토리 및 분기의 내용을 포함하는 ZIP 파일입니다. 리포지토리에서 생성된 아티팩트는 GitHub 작업에 대한 출력 아티팩트입니다. 소스 코드 커밋 ID는 트리거된 파이프라인 실행의 소스 개정으로 CodePipeline에 표시됩니다.
출력 변수
이 작업을 구성하면 파이프라인에서 다운스트림 작업의 작업 구성에서 참조할 수 있는 변수가 생성됩니다. 이 작업은 작업에 네임스페이스가 없는 경우에도 출력 변수로 볼 수 있는 변수를 생성합니다. 이러한 변수를 다운스트림 작업 구성에서 사용할 수 있도록 네임스페이스를 사용하여 작업을 구성합니다.
CodePipeline의 변수에 대한 자세한 내용은 변수 참조 단원을 참조하세요.
- CommitId
-
파이프라인 실행을 트리거한 GitHub 커밋 ID입니다. 커밋 ID는 커밋의 전체 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::GitHubRepository를 위한 리소스 참조 - 여기에는 AWS CloudFormation의 리소스에 대한 필드 정의, 예제 및 코드 조각이 포함됩니다.
-
자습서:를 사용하여 Android 앱을 빌드하고 테스트하는 파이프라인 생성 AWS Device Farm - 이 자습서에서는 GitHub 소스를 사용하여 파이프라인을 생성하기 위한 샘플 빌드 사양 파일과 샘플 애플리케이션을 제공합니다. CodeBuild 및 AWS Device Farm를 사용해 Android 앱을 빌드 및 테스트합니다.