프로젝트 소개

Mushin은 웹훅 이벤트를 수신하고 설정 가능한 조건이 충족되면 Dependabot 풀 리퀘스트를 자동으로 병합하는 Cloudflare Worker로 구현된 GitHub App입니다. semver 수준 게이팅(patch, minor, major), 우선순위가 있는 다중 소스 설정(PR 라벨 > .github/mushin.yml > GitHub 사용자 정의 속성 > 기본값), 모든 필수 검사가 통과할 때만 병합하는 CI 게이트(neutral check-run 결론은 차단하지 않음), 그리고 중복을 피하기 위한 upsert 로직으로 정보성 댓글을 게시하여 알 수 없는 업데이트 유형을 처리하는 기능을 지원합니다. 설정을 위해서는 특정 권한(Pull requests, Contents, Checks, Commit statuses, Metadata)과 웹훅 이벤트(pull_request, check_suite, check_run)를 가진 GitHub App을 생성해야 합니다. 배포에는 Cloudflare Worker 시크릿(GITHUB_APP_ID, GITHUB_WEBHOOK_SECRET, GITHUB_PRIVATE_KEY) 설정과 개인 키를 PKCS#8 형식으로 변환하는 작업이 포함됩니다. 구성은 GitHub 사용자 정의 속성, .github/mushin.yml 파일 또는 PR별 재정의를 위한 PR 라벨을 통해 수행할 수 있습니다. Mushin은 PR이 열려 있고, 초안이 아니며, dependabot[bot]이 작성했고, skip이 false이며, 모든 CI 검사가 통과하고, 업데이트 유형이 설정된 제한 내에 있을 때(또는 merge_unknown이 true일 때) PR을 병합합니다. 그렇지 않으면 건너뛰고, 업데이트 유형을 알 수 없고 merge_unknown이 false일 때 댓글을 작성합니다. 이 프로젝트에는 테스트, 타입 검사, 로컬 실행을 위한 개발 명령이 포함되어 있으며, dependabot/fetch-metadata 저장소에서 Dependabot 메타데이터 파서를 직접 가져옵니다. README에는 패키지 이름과 관련된 npm audit의 오탐 경고도 언급되어 있습니다.