GitHub Actions, Dependabot, pre-commit 등의 CI/CD 설정에서 보안 문제를 찾아 수정하는 정적 분석 도구입니다.
suzuki-shunsuke/pinact
GitHub Actions와 재사용 워크플로를 전체 커밋 SHA로 고정하고, 버전 주석을 업데이트하거나 검증할 수 있는 CLI입니다.
- 스타
- 1,252
- 포크
- 43
- 열린 이슈
- 33
- 마지막 커밋
- 23시간 전
어떤 프로젝트인가요?
pinact는 GitHub 워크플로 및 composite action 파일을 수정해 각 action 또는 재사용 워크플로 참조가 변경 불가능한 전체 길이의 커밋 SHA를 가리키도록 하며, 기존 버전은 뒤에 주석으로 남깁니다. v3 같은 변경 가능한 태그는 관리자가 다른 커밋으로 옮길 수 있으므로, SHA로 고정하면 이런 공급망 위험을 없앨 수 있습니다.
고정 외에도 pinact는 고정된 action을 최신 버전으로 업데이트하고, 파일을 수정하지 않은 채 이미 고정되어 있는지 확인하며, 버전 주석이 고정된 SHA와 일치하는지 검증할 수 있습니다. check mode에서는 오프라인으로도 작동하고, GitHub Enterprise Server를 지원하며, OS 키링이나 ghtkn에서 GitHub 토큰을 읽을 수도 있습니다.
CI 파이프라인에서 pinact를 check mode로 실행하면 고정되지 않은 action이 포함된 빌드를 실패 처리할 수 있으며, reviewdog 같은 검토 도구에서 사용할 SARIF도 출력할 수 있습니다.
핵심 기능
- 01GitHub Actions와 재사용 워크플로를 커밋 SHA로 고정하고 버전은 주석으로 남깁니다.
- 02GitHub API를 사용하지 않는 오프라인 모드를 포함해 파일을 수정하지 않고 고정 상태를 확인합니다.
- 03선택적으로 최소 릴리스 경과 시간을 설정해 고정된 action을 업데이트합니다.
- 04버전 주석이 고정된 커밋과 일치하는지 검증합니다.
- 05특정 action을 포함하거나 제외하고, 변경된 줄만 고정할 수 있습니다.
- 06SARIF를 출력하고 GitHub Enterprise Server를 지원합니다.
활용 사례
- CI 워크플로를 강화해 서드파티 action이 예기치 않게 변경되지 않도록 합니다.
- 고정되지 않은 참조가 있으면 실패하는 check mode로 CI에서 action 고정을 강제합니다.
- Renovate를 사용하지 않는 팀에서 고정된 action을 직접 최신 상태로 유지합니다.
- 변경된 줄만 고정해 대규모 저장소에 점진적으로 고정을 도입합니다.
빠른 시작
- 1
pinact 설치하기(INSTALL.md 참조)
- 2
저장소의 액션 고정하기
pinact run - 3
파일을 수정하지 않고 CI에서 고정 상태 확인하기
pinact run --check - 4
API 호출이 속도 제한에 걸리지 않도록 GitHub 토큰 설정하기
export GITHUB_TOKEN=<your token>
사용 전 알아둘 점
- GitHub 액세스 토큰이 없으면 API 호출에 속도 제한이 적용됩니다.
포함된 컬렉션
토픽
자주 묻는 질문
- pinact은(는) 무엇인가요?
- GitHub Actions와 재사용 워크플로를 전체 커밋 SHA로 고정하고, 버전 주석을 업데이트하거나 검증할 수 있는 CLI입니다. pinact는 GitHub 워크플로 및 composite action 파일을 수정해 각 action 또는 재사용 워크플로 참조가 변경 불가능한 전체 길이의 커밋 SHA를 가리키도록 하며, 기존 버전은 뒤에 주석으로 남깁니다. v3 같은 변경 가능한 태그는 관리자가 다른 커밋으로 옮길 수 있으므로, SHA로 고정하면 이런 공급망 위험을 없앨 수 있습니다.
- pinact은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- pinact은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- pinact은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. pinact의 마지막 커밋은 2026년 11월 6일입니다.
- pinact은(는) 어디에 사용할 수 있나요?
- CI 워크플로를 강화해 서드파티 action이 예기치 않게 변경되지 않도록 합니다. 고정되지 않은 참조가 있으면 실패하는 check mode로 CI에서 action 고정을 강제합니다. Renovate를 사용하지 않는 팀에서 고정된 action을 직접 최신 상태로 유지합니다. 변경된 줄만 고정해 대규모 저장소에 점진적으로 고정을 도입합니다.
- pinact는 어떻게 설치하나요?
- pinact 설치하기(INSTALL.md 참조) 저장소의 액션 고정하기: pinact run 파일을 수정하지 않고 CI에서 고정 상태 확인하기: pinact run --check API 호출이 속도 제한에 걸리지 않도록 GitHub 토큰 설정하기: export GITHUB_TOKEN=<your token>
- pinact은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/suzuki-shunsuke/pinact
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
웹 대시보드와 CLI, GitHub Actions 동기화 기능을 제공하는 오픈소스 시크릿 및 환경 변수 관리 도구입니다.
Go 프로젝트의 바이너리를 빌드하고 패키징해 GitHub, 패키지 관리자, 컨테이너 레지스트리에 배포하는 릴리스 자동화 도구입니다.
머신러닝 CI/CD 워크플로를 실행하고 pull request에 지표와 그래프 보고서를 게시하는 오픈소스 CLI입니다.
Git 저장소, 파일, stdin에서 하드코딩된 비밀번호·API 키·토큰을 탐지하는 CLI 도구입니다.
파일, Git 저장소, Docker 이미지, 패키지에서 500가지 이상의 하드코딩된 비밀 정보를 탐지하고 검증하는 CLI로, pre-commit 훅이나 CI에서 사용할 수 있습니다.