Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
gh-safe-repo — 安全なデフォルト設定 — ブランチ保護、Dependabot、シークレットスキャン、プリフライトセキュリティスキャン — を自動的に適用してGitHubリポジトリを作成するPython CLI | Kitploit
ツール/GitHubGitHub/ariesq/gh-safe-repo
汎用ユーティリティ脆弱性スキャナースクリプトと自動化構成監査クラウドセキュリティDevSecOpsシークレット検出
GitHubariesq/gh-safe-repo

gh-safe-repo

安全なデフォルト設定 — ブランチ保護、Dependabot、シークレットスキャン、プリフライトセキュリティスキャン — を自動的に適用してGitHubリポジトリを作成するPython CLI

リポジトリを見る
383246日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

gh-safe-repo

CI

安全なデフォルト設定を適用したGitHubリポジトリを、1つのコマンドで作成します。

gh-safe-repo create <owner/repo>

ブランチ保護、イミュータブルタグ、Actionsのロックダウン、Dependabot、プッシュ保護付きシークレットスキャン、プライベート脆弱性報告はすべて、最初のコミットをプッシュする前に設定されます。同じツールが既存のリポジトリを監査・修正し、コードがマシンから出る前にローカルでシークレットをスキャンします。

ステータス: コアワークフローは安定しており、エンドツーエンドで検証済みですが、 CLIはまだ磨き上げの途中です。1.0より前に破壊的変更が発生する可能性があります。

目次

  • 得られるもの
  • インストール
  • クイックスタート
  • コマンド
  • CLIリファレンス
  • 出力 — プランテーブル、JSON、検証、終了コード
  • 安全なデフォルト
  • コードのプッシュ — --local と --from
  • プリフライトスキャナー
  • 設定
  • GitHubプランの制限
  • AIエージェントとの併用
  • 仕組み
  • 開発

得られるもの

GitHubのデフォルトは安全性よりも発見しやすさを優先しています。新しいリポジトリにはブランチ保護もDependabotもなく、Actionsはリポジトリへの書き込みや自身のプルリクエストの承認が可能です。gh-safe-repo はこれを変え、何かに触れる前にプランを表示します:

  • デフォルトでプライベート。 公開するには --public を渡します。
  • ブランチ保護。 PR必須、1件の承認レビュー、古いレビューの却下、会話の解決必須、force push禁止、ブランチ削除禁止。
  • イミュータブルタグ。 リリースタグは書き換えも削除もできません。
  • Actionsのロックダウン。 読み取り専用トークン、自己承認PRの禁止、SHA固定のアクション、GitHub所有および検証済みの発行元のみ。
  • Dependabot有効。 脆弱性アラートと自動修正PR。
  • プッシュ保護付きシークレットスキャン。 サポート対象のシークレットを含むコミットはブロックされます。
  • プライベート脆弱性報告。 研究者が非公開で連絡できます。
  • プリフライトシークレットスキャン。 既存のコードをプッシュする際、作業ツリーとgit履歴がローカルで最初にスキャンされます。
  • オプトインの追加機能。 Wiki、プロジェクト、イシューは、設定で管理しない限りそのままにされます。

すべての設定は構成可能です。正確な値については安全なデフォルトを、変更方法については設定を参照してください。

インストール

要件:

  • Python 3.10+
  • ログイン済みの gh CLI(gh auth login)、または環境変数に設定された GITHUB_TOKEN
  • ソースからインストールするための uv
  • プリフライトスキャナー用のtruffleHog v3(オプション)。PATH 上で見つかるか、podman/docker経由で実行されます。どちらもない場合は正規表現スキャナーが使用されます。

--local または --from でコードをプッシュするには、GitHub用の通常のgit認証情報も必要です。コードのプッシュを参照してください。

git clone https://github.com/AriESQ/gh-safe-repo
cd gh-safe-repo
uv tool install .
gh-safe-repo --help

インストールせずに実行するには:

uv sync
./gh-safe-repo create <owner/repo>

クイックスタート

1. プレビュー。 --dry-run は API 呼び出しを行わず、何も作成しません。

$ gh-safe-repo create AriESQ/demo-repo --dry-run

Configuring AriESQ/demo-repo...

Planned Changes
Type    Category           Setting                                 Value / Note
------  -----------------  --------------------------------------  ----------------------------------------------------------------
ADD     repo               repository                              AriESQ/demo-repo
DELETE  file               readme                                  README.md
UPDATE  actions            allowed_actions                         'all' → 'selected'
UPDATE  actions            verified_allowed                        False → True
UPDATE  actions            sha_pinning_required                    False → True
UPDATE  actions            default_workflow_permissions            'write' → 'read'
UPDATE  actions            can_approve_pull_request_reviews        True → False
SKIP    branch_protection  branch_protection                       Branch protection requires a public repo or paid GitHub plan
SKIP    security           dependabot_alerts                       Requires a public repo or paid GitHub plan
SKIP    security           secret_scanning                         Requires a public repo or paid GitHub plan
SKIP    security           dependabot_security_updates             Requires a public repo or paid GitHub plan
SKIP    security           private_vulnerability_reporting         Requires a public repo or paid GitHub plan
SKIP    security           enable_dependency_graph                 Requires a public repo or paid GitHub plan
SKIP    security           enable_secret_scanning_push_protection  Requires a public repo or paid GitHub plan
SKIP    tag_protection     tag_protection                          Tag protection rulesets require a public repo or paid GitHub plan

7 change(s) to apply, 8 skipped

Dry run — no changes made.

SKIP の行は、無料プランでプライベートリポジトリを使用した場合の状態を示しています。これらの機能には公開リポジトリまたは有料プランが必要であり、ツールは黙って失敗するのではなく、その旨を表示します。詳しくは GitHub プランの制限 を参照してください。

2. 適用。 --dry-run を外します。同じプランが表示された後、確認プロンプトが表示されます(--yes でスキップできます)。

gh-safe-repo create AriESQ/demo-repo

3. 作業を開始します。 成功すると、Verified セクション(すべての設定が GitHub から読み戻されたもの)と、すぐに貼り付け可能なコマンドを含むバナーが表示されます:

╭─ Done ───────────────────────────────────────────────────╮
│   Repository created successfully!                       │
│   https://github.com/AriESQ/demo-repo                    │
│                                                          │
│   Add remote to existing repo:                           │
│   SSH  : git remote add origin [email protected]:AriESQ/…   │
│   HTTPS: git remote add origin https://github.com/…      │
│                                                          │
│   Clone fresh:                                           │
│   SSH  : git clone [email protected]:AriESQ/demo-repo.git   │
│   HTTPS: git clone https://github.com/AriESQ/demo-…      │
╰──────────────────────────────────────────────────────────╯

お好みのプロトコル(gh config get -h github.com git_protocol)が 最初に表示されます。

コマンド

新しいリポジトリを作成する

gh-safe-repo create <owner/repo>            # private (default)
gh-safe-repo create <owner/repo> --public   # public: branch and tag protection apply

リポジトリはデフォルトブランチが存在するように初期化され(ブランチ保護には これが必要)、その後、クリーンな状態から始められるように自動生成された README.md が削除されます。これを保持したい場合は、設定で auto_init = true を指定してください。オーナーは認証済みアカウントと一致している必要があり、これにより マルチアカウント環境での誤操作を防ぎます。

既存のローカルプロジェクトをプッシュする

gh-safe-repo create <owner/repo> --local ~/projects/myapp

ディレクトリ内のシークレットをスキャンし、リポジトリを作成して、すべてのブランチとタグをプッシュした後、元のディレクトリに origin と上流トラッキングを設定するので、git push がすぐに機能します。すでに別の場所を指している origin はそのまま残され、代わりに実行すべきコマンドがバナーで通知されます。その後、プッシュされたすべてのブランチとタグが GitHub の SHA と SHA 単位で照合されます。詳細はコードのプッシュを参照してください。

既存のリポジトリをミラーリングする

gh-safe-repo create <owner/repo> --from <owner/source>
gh-safe-repo create <owner/pub> --from <owner/priv> --public   # scanned thoroughly first

ソースを完全な履歴とともにクローンし、スキャンし、新しいリポジトリにミラーリングし、ソースのデフォルトブランチ、説明、トピックをコピーします。スキャン時に中止した場合、コードはGitHubに到達しません。

既存のリポジトリを監査して修正する

gh-safe-repo fix <owner/repo> --dry-run   # what is out of compliance?
gh-safe-repo fix <owner/repo>             # apply the missing defaults
gh-safe-repo fix <owner/repo> --yes       # no prompt, for scripts

fix は各設定を読み取り、差分があるものには UPDATE、すでに正しいものには SKIP を表示し、実際の変更に対してのみ API を呼び出します。これは設定専用です(シークレットスキャンは行いません)。リポジトリの管理者権限が必要で、そのリポジトリは org または別のアカウントが所有している場合があります。

ローカルコードをスキャンする

gh-safe-repo scan .
gh-safe-repo scan . && git push     # exit 1 on critical findings

ローカルのみ。GitHubには何も送信されません。プリフライトスキャナーを参照してください。

CLIリファレンス

gh-safe-repo [--config PATH] [--debug] create <owner/repo> [OPTIONS]
gh-safe-repo [--config PATH] [--debug] fix <owner/repo> [OPTIONS]
gh-safe-repo [--config PATH] [--debug] scan <path> [OPTIONS]

--config と --debug はグローバルオプションであり、コマンドの前後どちらに置いてもかまいません。 2 回指定した場合は後から指定したものが優先されます。その他のオプションはコマンドの後に置く必要があります。 --config は省略可能な値を受け取るため、値なしの --config は最後に置く必要があります: gh-safe-repo --config scan ./src とすると、scan がパスとして解釈されてしまいます。

GitHub を対象とするすべてのコマンドは owner/repo を受け取ります(例: myuser/my-repo)。

グローバルオプション

オプション説明
--config [PATH]使用する設定ファイル。値なしの --config は組み込みのデフォルトのみを使用
--debugすべての API 呼び出しとレスポンスを出力。fix の場合は解決されたリポジトリの識別情報(id、フルネーム、オーナータイプ)も出力

create <owner/repo>

ツールをダウンロード