GitHub Actions 업데이터
.github/workflows/*.yml 및 .github/workflows/*.yaml 파일을 최신 상태로 유지하기 위해 액션을 스캔하고, 최신 버전을 확인하며, 업그레이드를 제안합니다.
빠른 시작
사용자가 다음과 같이 요청할 때:
"내 GitHub Actions 업데이트해 줘" "어떤 액션이 구버전이야?" "워크플로우에서 액션 버전 올려줘"
아래 워크플로우를 따라 diff 형식의 제안이 포함된 Markdown 보고서를 반환하세요.
워크플로우
-
워크플로우 스캔
- 모든
.github/workflows/*.yml및.github/workflows/*.yaml파일을 찾습니다. - 파일이 없으면 사용자에게 알리고 중단합니다.
- 모든
-
uses:참조 추출- 각 워크플로우에서
uses:줄을 파싱합니다. - 다음은 건너뜁니다:
- 로컬 경로:
./... - Docker 참조:
docker://... - 전체 SHA 커밋: 40자 16진수 SHA 형태
- 로컬 경로:
action,current_version,workflow_file,line_number를 기록합니다.
- 각 워크플로우에서
-
최신 버전 확인
- 각 액션을
owner/repo로 분할합니다. - 다음 순서로 도구를 시도합니다:
gh를 사용할 수 있는 경우gh api repos/{owner}/{repo}/tags --jq '.[].name'fetch를 사용하여https://api.github.com/repos/{owner}/{repo}/tags- Brave Search / Google Search MCP를 사용하여
"{owner}/{repo} latest release tag"검색
- 태그를 유효한 semver로 필터링합니다.
- 기본적으로 전체 semver(
v5.3.1)보다 메이저 태그(v5)를 선호합니다. - 메이저 태그가 없으면 가장 높은 semver 태그로 대체합니다.
- 각 액션을
-
주요 변경 사항 감지
- 최신 버전이 현재 버전보다 메이저 버전이 높으면 주요 변경 사항으로 표시합니다.
- 아래 포함된 레지스트리에서 알려진 경고를 교차 확인합니다.
-
제안 보고서 생성
- 다음을 포함하는 Markdown 보고서를 생성합니다:
- 요약 표: 액션 | 현재 | 최신 | 주요 변경? | 파일
- 액션별 diff 블록
⚠가 포함된 주요 변경 사항 경고
- 사용자가 명시적으로 요청하지 않는 한 워크플로우 파일을 편집하지 않습니다.
- 다음을 포함하는 Markdown 보고서를 생성합니다:
주요 변경 사항 레지스트리
- action: actions/checkout
from_major: 3
to_major: 4
warning: "Node 런타임이 16에서 20으로 업그레이드되었습니다. 사용자 지정 러너와 셀프 호스트 설정을 확인하세요."
- action: actions/setup-node
from_major: 3
to_major: 4
warning: "Node 16 런타임이 더 이상 사용되지 않습니다. 이제 Node 20이 사용됩니다."
- action: actions/setup-go
from_major: 4
to_major: 5
warning: "Node 20 런타임. 사용자 지정 캐시 키나 부작용을 확인하세요."
출력 템플릿
## GitHub Actions 업데이트 보고서
| 액션 | 현재 | 최신 | 주요 변경? | 파일 |
|------|------|------|-----------|------|
| actions/checkout | v3 | v4 | ⚠ 예 | .github/workflows/ci.yml |
### 제안된 변경 사항
`.github/workflows/ci.yml`:
```diff
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
주요 변경 사항 경고
- actions/checkout@v3 → v4: Node 런타임이 16에서 20으로 업그레이드되었습니다. 사용자 지정 러너와 셀프 호스트 설정을 확인하세요.
## 규칙
- 워크플로우 파일을 자동으로 저장하지 않습니다.
- 편집 전에 항상 diff 형식 미리보기를 보여줍니다.
- GitHub API 속도 제한에 도달하면 검색 MCP 또는 수동 안내로 대체합니다.
- 액션에 semver 태그가 없으면 "최신 버전을 확인할 수 없음"으로 표시합니다.