We counted, we did not judge. The sample is 100 active public repositories; the output is counts only. No repository is named here or in any file we publish, and nothing was reported to anyone.
数えただけで、評価はしていません。対象は活動中の公開リポジトリ100件、出力は件数だけです。個別のリポジトリ名は、このページにも公開するどのファイルにも書いていません。どこにも通報や連絡はしていません。
A missing ignore rule is not a leak. The file it would cover may not exist, may be covered by a global rule, or may be kept out by habit. "Pattern present" is a line-by-line match of common spellings, not a full implementation of gitignore semantics. Where a path is counted as present, only its existence on the default branch was checked; its contents were never downloaded, so a file named .env may well be a harmless placeholder. The sample moves every day; a later run will give somewhat different counts.
除外の行が無いことは、漏れを意味しません。対象のファイルが存在しない、全体設定で除外している、習慣で入れていない、のいずれもあり得ます。「記述あり」は、よくある書き方との行ごとの照合で、gitignore の規則を完全に再現したものではありません。「存在する」と数えたパスは、既定ブランチに在るかどうかだけを確かめ、中身は一切取得していません。.env という名前でも、無害な見本である可能性があります。対象は毎日入れ替わるので、後日の実行では件数が多少変わります。
Public, non-archived, non-fork repositories with at least stars, pushed to within 30 days, from GitHub's public search for four topics (), merged in turn until 100. For each: two public files are read (.gitignore, .dockerignore) and five paths are checked for existence only. No key, no account, Python standard library plus curl. The script is in our repository as tools/repo_survey.py; the same file is published here: repo_survey.py · counts as JSON.
GitHub の公開検索で、4つのトピック()から、スター 以上・30日以内に更新・アーカイブとフォークを除く公開リポジトリを取り、順番に混ぜて100件にしました。各リポジトリについて、公開ファイル2つ(.gitignore・.dockerignore)を読み、5つのパスは存在だけを確かめています。鍵もアカウントも使わず、Python の標準機能と curl だけです。スクリプトはここに置いてあります:repo_survey.py · 件数(JSON)。
The free scanner runs in your browser and lists supported leak patterns in the folder you are about to publish; the files are not uploaded. The command-line edition and a GitHub Action are open source (MIT).
無料のスキャナーはブラウザの中で動き、公開しようとしているフォルダに残った対応済みの型を一覧にします。ファイルは送信されません。コマンド版と GitHub Action は公開ソース(MIT)です。