Static Analysis와 GitHub Actions
개요
GitHub Action 워크플로에서 Datadog Static Analysis 작업을 실행합니다. 이 작업은 Datadog Static Analyzer를 래핑하고, 코드베이스에 실행한 후 결과를 Datadog에 업로드합니다.
워크플로
Datadog Static Analysis 작업을 실행하기 위해 .github/workflows에서 파일을 생성합니다.
다음은 워크플로 파일 샘플입니다.
on: [push]
jobs:
check-quality:
runs-on: ubuntu-latest
name: Datadog Static Analyzer
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check code meets quality standards
id: datadog-static-analysis
uses: DataDog/datadog-static-analyzer-github-action@v1
with:
dd_app_key: ${{ secrets.DD_APP_KEY }}
dd_api_key: ${{ secrets.DD_API_KEY }}
dd_site: "datadoghq.com"
cpu_count: 2
enable_performance_statistics: false
Datadog API 및 애플리케이션 키는 조직 또는 리포지토리 수준에서 GitHub 리포지토리의 시크릿으로 반드시 설정해야 합니다. 그리고 Datadog 애플리케이션 키에 code_analysis_read 범위를 추가합니다. 자세한 내용은 API 및 애플리케이션 키를 참고하세요.
dd_site를 사용 중인 Datadog 사이트로 교체하세요3.
입력
Static Analysis에 대해 다음 파라미터를 설정합니다.
| 이름 | 설명 | 필수 | 기본값 |
|---|
dd_api_key | Datadog API 키. 이 키는 Datadog 조직에서 생성되었으며 시크릿으로 저장해야 합니다. | Yes | |
dd_app_key | Datadog 애플리케이션 키. 이 키는 Datadog 조직에서 생성되었으며 시크릿으로 저장해야 합니다. | Yes | |
dd_site | 정보를 전송할 Datadog 사이트입니다. | No | datadoghq.com |
cpu_count | 분석기가 사용하는 CPU 수를 설정합니다. | No | 2 |
enable_performance_statistics | 분석된 파일의 실행 시간 통계를 가져옵니다. | No | false |
debug | 분석기가 디버깅에 유용한 추가 로그를 출력하도록 합니다. 활성화하려면 yes로 설정하세요. | No | no |
subdirectory | 분석 대상을 제한해야 하는 하위 디렉터리 패턴 또는 글로브(또는 공백으로 구분된 하위 디렉터리 패턴). 예: “src” 또는 “src packages”. | false | |
architecture | 분석기에 사용할 CPU 아키텍처. 지원되는 값은 x86_64 및 aarch64. | 아니요 | x86_64 |
diff_aware | Diff-aware scanning 모드를 활성화합니다. | No | true |
secrets_enabled | 시크릿 감지 활성화(비공개 베타 버전) | No | false |
참고
- Diff-aware 스캐닝은 기능 브랜치를 분석할 때 커밋으로 수정된 파일만 스캔합니다. Diff-aware 스캐닝은 기본적으로 활성화되어 있습니다. Diff-aware 스캐닝을 비활성화하려면 GitHub 작업
diff_aware 파라미터를 false로 설정하세요. - 시크릿 스캐닝은 비공개 베타 버전입니다. 시크릿 스캐닝을 활성화하려면 Datadog 고객 성공 관리자에게 문의하세요.
더 이상 사용되지 않는 입력
다음 작업 입력은 더 이상 사용되지 않으며 효과가 없습니다. 이러한 입력을 전달하면 경고가 발생합니다.
규칙 사용자 지정
기본적으로 Datadog Static Analyzer는 코드베이스의 언어를 감지하고 기본 규칙 세트를 사용하여 코드베이스를 분석합니다.
규칙 세트를 지정하고 사용자 정의하려면 리포지토리의 루트 디렉터리에 static-analysis.datadog.yml 파일을 추가하여 사용할 규칙 세트를 정의합니다.
rulesets:
- <ruleset-name>
- <ruleset-name>
전체 규칙 세트 목록은 Datadog 문서를 참고하세요.
Python 전용 예시
Python 기반 리포지토리 예는 다음과 같습니다.
rulesets:
- python-code-style
- python-best-practices
- python-inclusive
기타 유용한 GitHub Actions
Datadog Software Composition Analysis(SCA)는 종속성을 검사하고 취약점과 라이선스를 탐지하는 기능도 제공합니다. 이 제품은 datadog-sca-github-action과 함께 사용할 수 있습니다.
참고 자료
기타 유용한 문서, 링크 및 기사: