Technology

空かREADMEだけのGitHubリポジトリを検出し、Issueに一覧化するワークフロー

この記事のポイント

  1. 実現したこと

    組織内でルートにファイルがないリポジトリと、READMEだけがあるリポジトリを検出できる。

  2. 実現の仕組み

    月次または手動で走査を起動し、独立したJavaScriptスクリプトが検出処理を担う。

  3. 得られた結果

    検出結果はMarkdownの表を含む新しいGitHub Issueに記録される。

  4. 従来との違い

    走査範囲は全件から公開または非公開のリポジトリだけに切り替えられる。

空のルートとREADMEだけのリポジトリを走査し、結果をIssueにまとめるワークフローのイラスト
AI生成画像

組織内のリポジトリから、ルートにファイルがないものとREADMEだけのものを探し、結果をIssueに一覧化するGitHub Actionsワークフローが公開された。月次の定期実行に加え、手動でも走査を起動できる。

ルートの内容で二種類のリポジトリを検出

GitHubが公開したこのワークフローは、組織内のリポジトリを走査し、ルートにファイルがないものを検出する。ルートにREADMEだけがあるリポジトリも、別の検出対象に含める。

月次実行と手動起動で走査範囲を選ぶ

定期走査は毎月1日の00:00 UTCに実行される。必要なときはActionsタブ、またはgh workflow runから手動で起動できる。

走査範囲には全件・公開・非公開の選択肢がある。公開範囲に応じて、調べるリポジトリを切り替えられる。

走査処理を独立させ、検出条件をテスト

検出を担うJavaScriptスクリプトは、GitHub Actionsのワークフローファイルから分けられている。テストは、ルートにファイルがない場合とREADMEだけがある場合の検出を対象にする。

このテストはプルリクエスト時にも自動実行される。走査条件の変更を、ワークフローの実行とは別に確認する構成だ。

検出結果をIssueの表にまとめる

走査結果はMarkdownの表にまとめられ、新しいGitHub Issueとして作成される。検出されたリポジトリを、組織内で確認できる一覧として残す仕組みだ。