このプロジェクトについて

Mushinは、Webhookイベントをリッスンし、設定可能な条件が満たされたときに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)とWebhookイベント(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メタデータパーサーをdependabot/fetch-metadataリポジトリから直接インポートしています。READMEには、パッケージ名に関連するnpm auditの誤検知アドバイザリについても記載されています。