대부분의 기업은 AI 코딩 도구가 가져올 수 있는 생산성 이점을 알고 있습니다. 그러나 악의적인 프롬프트 또는 검토 없이 AI 제안을 수락하는 개발자와 같은 회사의 부적절한 사용으로 인해 코드베이스의 표준이 손상될 수 있다고 우려하는 사람들이 많습니다.
효율적인 거버넌스를 위해 GitHub 환경 및 작업 문화를 설정하여 이러한 위험을 완화할 수 있습니다. GitHub Copilot의 주요 이점은 엔터프라이즈급 코드 거버넌스를 위한 다양한 기능이 이미 포함된 GitHub 플랫폼에 기본 제공된다는 것입니다.
1. 끌어오기 요청 및 검토 필요
개발자와 악의적인 행위자가 중요한 코드베이스에 직접 검증되지 않은 AI 제안 또는 에이전트 작업을 일방적으로 적용할 수 없어야 합니다. 사용자가 코드를 프로덕션 코드베이스 및 기타 중요한 분기에 병합하려면 승인된 끌어오기 요청 이 필요합니다.
이렇게 하려면 규칙 집합을 만듭니다.
-
보호하려는 코드베이스가 포함된 조직 또는 리포지토리를 식별하고 사용자 지정 속성을 적용 합니다. 이렇게 하면 규칙 집합에서 해당 리소스를 쉽게 대상으로 지정할 수 있습니다. 조직의 리포지토리에 대한 사용자 지정 속성 관리 또는 조직에 대한 사용자 지정 속성 관리을(를) 참조하세요.
또는 이러한 보호된 리소스를 규칙 집합에 수동으로 추가하거나 명명 규칙에 따라 대상을 지정할 수 있습니다.
-
기업을 위한 브랜치 규칙 집합을 설정합니다. 규칙 집합을 사용하여 엔터프라이즈에서 코드 거버넌스 시행을(를) 참조하세요.
-
**병합하기 전에 끌어오기 요청 필요** 및 **강제 푸시 차단** 규칙을 최소한 활성화하세요. "끌어오기 요청 필요" 규칙에서 최소한 하나의 승인을 요구하도록 설정하세요. - 필요한 경우 다른 규칙을 사용하도록 설정합니다. 예를 들어 끌어오기 요청을 하이재킹하는 악의적인 행위자가 우려되는 경우, 새 커밋이 푸시되면 만료된 끌어오기 요청 승인을 취소 해야 합니다.
-
-
리포지토리 관리자가 리포지토리의 특정 파일에 대한 CODEOWNERS 파일을 설정하도록 권장합니다. 그러면 해당 파일이 수정될 때 코드 소유자의 검토가 자동으로 요청됩니다.
그런 다음 규칙 집합으로 돌아가 코드 소유자로부터 검토 필요 규칙을 활성화할 수 있습니다.
-
조직 소유자 및 리포지토리 관리자가 자신의 코드에 대한 요구 사항을 더 잘 인식할 수 있으므로 보다 구체적인 규칙 집합을 만들도록 권장합니다.
이러한 규칙 집합은 엔터프라이즈 수준에서 정의하는 기준에 추가되지만 재정의되지는 않습니다.
2. 코드 테스트
좋은 DevOps 관행은 코드가 병합 및 배포되기 전에 자동 테스트를 보장하여, 기본 브랜치에 오류가 침투하는 것과 프로덕션 환경에서 발생하는 위험을 최소화합니다.
- GitHub Actions 또는 다른 CI/CD 시스템을 활성화하세요.
- 개발자가 모든 기능에 대한 테스트를 작성하고 GitHub Actions 워크플로에 테스트를 통합하도록 권장합니다.
- 조직 소유자 또는 리포지토리 소유자에게 규칙 집합을 만들고 병합하기 전에 워크플로가 충족되어야 하는 규칙에 중요한 워크플로를 추가하도록 권장합니다.
3. 코드에서 취약성을 검사합니다.
Copilot은(는) 코드베이스에 취약성이 발생하지 않도록 이미 설계되었습니다. 예를 들어 Copilot 코딩 도우미에서 만든 코드는 API 키와 같은 취약한 패턴 및 비밀을 자동으로 검색합니다.
그러나 모든 코드에서 취약성 및 비밀을 정기적으로 검사하고 개발자가 처음에 취약성을 도입하지 못하도록 하는 것이 좋습니다.
- 시작점으로 조직에 GitHub 권장 보안 구성을 적용하고 강제합니다. code scanning, secret scanning, 비밀 푸시 보호를 비롯한 보안 기능에 대한 사용 설정 모음입니다. 사용자 정의 보안 구성 생성하기을(를) 참조하세요.
- 요구 사항에 대해 자세히 알아보면 사용자 지정 구성을 만들거나 리포지토리 수준에서 세분화된 설정을 적용합니다.
- 끌어오기 요청에 code scanning를 적용하려면 규칙 집합으로 돌아가 code scanning 결과를 요구하는 규칙을 활성화하십시오.
4. Copilot에 대한 지침을 작성하기
먼저 Copilot의 제안 품질을 향상하려면 사용자 정의 지침을 만들어야 합니다. 이러한 지침은 Copilot에게 회사의 코딩 표준을 따르도록 지시하는 모든 프롬프트에 컨텍스트를 추가합니다.
- 적절한 기준을 설정하려면 조직 수준에서 사용자 지정 지침을 만듭니다. 이러한 표준은 모든 리포지토리에 적용될 가능성이 높은 수준 표준일 수 있습니다. 그러나 이러한 지침은 GitHub 웹 사이트에만 적용됩니다. GitHub Copilot에 대한 조직 사용자 지정 지침 추가을(를) 참조하세요.
- 보다 완전한 적용 범위를 위해 개발자 및 리포지토리 관리자가 특정 리포지토리에 대한 사용자 지정 지침을 작성하도록 권장합니다. 이러한 내용은 조직의 지침보다 더 많은 위치에 적용되며 각 프로젝트 및 요구 사항에 대해 자세히 설명할 수 있습니다. GitHub Copilot 대한 리포지토리 사용자 지정 지침 추가을(를) 참조하세요.
5. 모범 사례 권장
강력한 가드레일을 갖춘 개발자는 이미 AI를 효과적으로 사용할 수 있어야 합니다. 그러나 AI 도구에 대한 교육을 제공하고 단순히 시행하는 것이 아니라 모범 사례를 권장하는 문화를 조성하는 것이 중요합니다.
- 개발자가 Copilot을(를) 사용하는 방법에 대한 거버넌스 설정 및 회사의 기대치를 전달합니다. 예를 들어 모든 에이전트 작업을 철저히 검토해야 하는 경우 이 프로세스가 설정되고 전달되었는지 확인합니다.
- 내부 설명서 또는 비디오와 같은 온보딩 리소스를 만듭니다. 시작점으로 GitHub 부필로트 사용에 대한 모범 사례 및 GitHub Copilot Chat 매뉴얼과 같은 기존 리소스를 공유합니다.
- 워크샵과 같은 지속적인 교육 및 지원을 제공합니다. 성공적인 롤아웃에서 많은 회사에서 Copilot을(를) 효과적으로 사용하는 방법에 대해 다른 사람을 학습시킬 수 있는 "챔피언"을 식별합니다.
6. 최악의 계획
가장 엄격한 가드레일이 있더라도 개발자가 AI 도구를 사용하는지 여부에 관계없이 취약하거나 오류가 발생하기 쉬운 코드가 병합될 수 있습니다.
이러한 시나리오를 준비하려면 문제를 해결하고 개발자와 이 계획을 전달하는 방법을 계획해야 합니다. 다음은 그 예입니다.
- 잘못된 풀 리퀘스트를 되돌리고 배포를 롤백합니다.
- 무엇이 잘못되었는지와 나중에 이를 방지하는 방법을 분석하는 토론 게시물을 만듭니다.
- 규칙 집합 바이패스, 잘못된 권한 또는 거버넌스 설정 변경과 같은 항목에 대한 감사 로그를 확인합니다.
7. 코드 품질 확인
거버넌스 모델에 확신을 가지고 있지만 Copilot가 시간이 지남에 따라 코드베이스의 품질을 저하시킬 것을 우려하는 경우 롤아웃 과정에서 이를 측정할 수 있습니다. 이 기능을 사용하도록 설정하면 GitHub Code Quality는 리포지토리의 코드 상태에 대한 지표를 제공합니다. GitHub 코드 품질 정보을(를) 참조하세요.
다음 단계
기업에서 감사 로그를 사용하여 구성 설정 및 라이선스 할당에 대한 변경 내용을 모니터링하는 방법을 이해합니다. GitHub Copilot Business에 대한 감사 로그 검토을(를) 참조하세요.