OpenSSF Scorecard が指摘する 5 件のガバナンス項目は、いずれもリポジトリ設定 / 運用変更が必要で、PR では解消できません。各項目の対応コストと手順をまとめます。
killertcell428/aigis
| 項目 | 重要度 | 対応コスト | 推奨 |
|---|---|---|---|
| BranchProtection | error | 5分 | 今すぐ設定 |
| Maintained | info | 時間経過 | 放置でOK(90日後に自動解消) |
| CodeReview | info | 運用変更 | BranchProtection と一緒に解決 |
| CIIBestPractices | info | 30分〜数時間 | OSS 公開ならやる価値あり |
| Fuzzing | info | 数日 | 後回しでOK |
Scorecard 指摘: branch protection not enabled for branch 'master'
masterLint & Type Check, Test / Python 3.11, Test / Python 3.12, Build packagegh)gh api -X PUT repos/killertcell428/aigis/branches/master/protection \
-F required_status_checks.strict=true \
-F 'required_status_checks.contexts[]=Lint & Type Check' \
-F 'required_status_checks.contexts[]=Test / Python 3.11 (ubuntu-latest)' \
-F 'required_status_checks.contexts[]=Test / Python 3.12 (ubuntu-latest)' \
-F 'required_status_checks.contexts[]=Build package' \
-F enforce_admins=true \
-F required_pull_request_reviews.required_approving_review_count=1 \
-F required_pull_request_reviews.dismiss_stale_reviews=true \
-F restrictions= \
-F required_linear_history=true \
-F allow_force_pushes=false \
-F allow_deletions=false
Scorecard 指摘: Repository was created within the last 90 days
これは「メンテされていることの証拠が不足している」という指摘で、リポジトリが 90 日以上経過して継続的にコミットがあれば自動的に解消されます。対応不要。
Scorecard alert を Code scanning UI から Dismiss → Won't fix で消すこともできます(コメント例: "Repo just created; will resolve naturally with time.")。
Scorecard 指摘: Found 0/30 approved changesets
BranchProtection で Require approvals (1+) を有効化し、今後のマージは PR 経由+承認必須にすれば、徐々に approved changeset が積み上がってスコアが上がります。BranchProtection の設定と同時に解決可能。
Scorecard 指摘: no effort to earn an OpenSSF best practices badge detected
https://github.com/killertcell428/aigis[](https://www.bestpractices.dev/projects/<ID>)
このバッジが README に存在するだけで Scorecard はパスを検出します。
Scorecard 指摘: no fuzzer integrations found
このリポの主要コードパス(detector regex / decoder pipeline)はファジング対象として有意義です。ただし統合には数日の作業が必要。
Google の Atheris を使うと、Python 関数を libFuzzer ハーネスで fuzz できます。
fuzz/ ディレクトリ作成fuzz/fuzz_scan.py
import atheris
import sys
with atheris.instrument_imports():
from aigis import scan
def TestOneInput(data: bytes):
try:
text = data.decode("utf-8", errors="replace")
except Exception:
return
scan(text)
atheris.Setup(sys.argv, TestOneInput)
atheris.Fuzz()
.github/workflows/cifuzz.yml を追加(OSS-Fuzz の CIFuzz アクション利用が標準)後回しでOK。先に他の項目を片付けてから検討。
すべて設定後、Scorecard を再実行して結果を確認できます:
# GitHub Actions の Scorecard workflow を手動実行
gh workflow run scorecard.yml -R killertcell428/aigis
# または scorecard CLI(要 GITHUB_AUTH_TOKEN)
docker run -e GITHUB_AUTH_TOKEN=ghp_xxx \
gcr.io/openssf/scorecard:stable \
--repo=github.com/killertcell428/aigis
Code scanning UI でアラートが Closed に変わります(次回スキャン後)。
Generated 2026-05-11 — Aigis governance setup guide