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

リポジトリを見る
3831212時間49分前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

gh-safe-repo

安全なデフォルト設定を自動的に適用してGitHubリポジトリを作成します。作成後の5分間の設定チェックリストを1つのコマンドに置き換えます。``` gh-safe-repo create <owner/repo>

ブランチ保護、イミュータブルタグ、Dependabot、制限されたActions権限、プッシュ保護付きシークレットスキャン — これらすべてが、最初のコードを書く前に設定されます。

> **ステータス:** gh-safe-repo は活発に開発中です。コアユースケース — 安全なデフォルト設定で新しいリポジトリを作成する — では問題なく動作しますが、CLIオプションはユーザーの期待により合致するようまだ調整中です。リリースとCI/CDが固まるまでは破壊的変更が発生する可能性があります。✌️

---

## 得られるもの

GitHubのデフォルト設定は、セキュリティではなく発見しやすさと柔軟性に最適化されています。新しいリポジトリはすべて、ブランチ保護なし、Dependabotなし、そしてリポジトリへの書き込みアクセスを持ち自身のプルリクエストを承認できるActions付きで作成されます。

`gh-safe-repo` はこれらすべてを一度に修正し、まず計画を表示します:

- **デフォルトでプライベート** — 世界中に公開したい場合は `--public` を渡します
- **ブランチ保護** — PR必須、1件の承認レビュー、古いレビューの却下、会話の解決、force push禁止、ブランチ削除禁止
- **イミュータブルタグ** — リリースタグは書き換えや削除ができません
- **Actionsのロックダウン** — 読み取り専用トークン、自己承認PRの禁止、SHA固定のアクション、GitHub所有および検証済みパブリッシャーのみ
- **Dependabot有効化** — 脆弱性アラートと自動修正PR
- **プッシュ保護付きシークレットスキャン** — サポート対象のシークレットを含むコミットはブロックされます
- **プライベート脆弱性報告** — 研究者は公開せずにあなたに連絡できます
- **プリフライトシークレットスキャン** — 既存のコードをプッシュする場合(`--local` / `--from`)、GitHubに到達する前に作業ツリーとgit履歴がローカルでスキャンされます
- **オプトインの追加機能** — wiki、projects、issuesは、管理を要求しない限りそのままにされます(設定で `has_wiki = false`)

すべてが設定可能です。正確な設定については[安全なデフォルト設定の全体](#safe-defaults-in-full)を、変更方法については[設定](#configuration)を参照してください。

## 要件

- **Python 3.10+**
- **認証済みの [`gh` CLI](https://cli.github.com/)**(`gh auth login`)、**または** 環境に設定された `GITHUB_TOKEN`
- ソースからのインストールには **[`uv`](https://docs.astral.sh/uv/)**
- **truffleHog v3** *(オプション)* — プリフライトスキャナーで使用され、PATHから自動検出されるかpodman/docker経由で実行され、どちらも存在しない場合は正規表現フォールバックが使用されます

`--local` または `--from` でコードをプッシュする場合、GitHub用の通常のgit認証情報が追加で必要です — [ローカルまたは既存のコードからの作業](#working-from-local-or-existing-code)を参照してください。

## インストール```bash
git clone https://github.com/AriESQ/gh-safe-repo
cd gh-safe-repo
uv tool install .

gh-safe-repo --help

これは gh-safe-repo を uv のツール環境にインストールし、PATH に追加します。

インストールせずに実行するには:```bash uv sync # creates .venv ./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 でスキップできます):```bash gh-safe-repo create AriESQ/demo-repo

**3. 作業を開始します。** 成功すると、リポジトリのURLとそのまま貼り付けられるリモートコマンドが表示されます:```
╭─ 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)。

一般的なタスク

リポジトリを作成する```bash

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

`create` をそのまま実行すると、デフォルトブランチが存在するようにリポジトリが初期化され(ブランチ保護にはデフォルトブランチが必要)、その後、自動生成された `README.md` が削除されるため、クリーンな状態から始められます。これを保持するには、config で `auto_init = true` を設定します。

### 既存のローカルプロジェクトをプッシュする```bash
gh-safe-repo create <owner/repo> --local ~/projects/myapp

最初にディレクトリ内のシークレットをスキャンし、リポジトリを作成してすべてのブランチとタグをプッシュした後、元のディレクトリで origin と上流トラッキングを設定するため、git push がすぐに機能します。別の場所を指す既存の origin はそのまま残されます。警告と成功バナーが、代わりに実行すべき正確な git push -u origin <branch>:<branch> を通知します。ローカルまたは既存のコードからの作業を参照してください。

既存のリポジトリをミラーする```bash

gh-safe-repo create <owner/repo> --from <owner/source> gh-safe-repo create <owner/pub> --from <owner/priv> --public # the riskiest move — scanned thoroughly

ソースを完全な履歴とともにクローンし、スキャンして、安全なデフォルト設定で新しいリポジトリにミラーリングします。スキャン時に中止した場合、コードが新しいリポジトリに到達することはありません。

### すでに持っているリポジトリを監査する```bash
gh-safe-repo fix <owner/repo> --dry-run   # what's 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 を表示し、no-op に対しては API 呼び出しを一切行いません。設定のみを対象としており、シークレットスキャンは行いません。リポジトリの管理者権限が必要で、そのリポジトリは組織または別アカウントが所有するものでもかまいません。

GitHub に触れずにスキャンする```bash

gh-safe-repo scan . gh-safe-repo scan ~/projects/myapp

ローカルのみ。重大な検出事項がない場合は終了コード `0`、ある場合は `1` を返すため、次のように組み合わせられます:```bash
gh-safe-repo scan . && git push

プリフライトセキュリティスキャナーを参照してください。


リファレンス

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 [OPTIONS]

`--config` と `--debug` はグローバルです。コマンドの前後どちらに指定してもよく(`gh-safe-repo --debug fix owner/repo` と `gh-safe-repo fix owner/repo --debug` は同等)、両方を指定した場合は後から指定したものが優先されます。その他のすべてのオプションはコマンド固有であり、コマンドの後に指定する必要があります。`--config` は省略可能な値を受け取るため、値なしの `--config` は最後に指定する必要があることに注意してください — `gh-safe-repo --config scan ./src` は `scan` をパスとして読み取ります。

GitHub とやり取りするすべてのコマンドは `owner/repo` 形式(例: `myuser/my-repo`)を必要とします。`create` の場合、owner は認証済みの GitHub アカウントに対して検証され、マルチアカウント環境でのミスを防ぎます。`fix` の場合は代わりにターゲットリポジトリに対する管理者権限が必要で、管理者アクセスを持つ組織や他のアカウントが所有するリポジトリを修正できます。

#### `create` — 新しいリポジトリを作成する
ツールをダウンロード