想定読者:
- 個人/少人数で仮想通貨Botを開発し、ソースは絶対に公開したくない方
- それでも テスト自動化・デプロイ高速化 は捨てたくないエンジニア
1. はじめに ―― そもそも何がモヤモヤするの?
- 問題はココ
「GitHub って“オープンソースの人たち”が使う場所でしょ?」
「秘密のボットコードを置いたら流出しそう…」 - ほんとうに解決したいこと
- コードを外に漏らさずに
- ミスったら元に戻せて
- 自動テストや自動デプロイもタダで回したい
- ついでに PC が壊れても 30 秒で復旧できたら最高
- そこで発想をひとつ転換
「GitHub を 非公開専用ツール としてフル活用する」
こう割り切ると ◎- GitHub が勝手に冗長化 → バックアップを自分で意識しなくていい
- 変更履歴&監査ログ → いつ/どこを触ったか丸わかり
- GitHub Actions → “push したらテスト/Slack 通知” を無料で自動化
- この記事の進み方(ざっくり地図)
- メリット編 「何が便利になるの?」
- リスク編 「とはいえ、どこが危ない?」
- 実装チェックリスト 今日から出来る “具体的な設定&コマンド”
- 用語ミニ辞典 CI?PR?なにそれ?を 1 行でサクッと
先に“全体像”をつかんで、興味のある所だけ真似すれば OK。
「コードを隠しつつ開発スピードは落とさない」──そのコツを順番に見ていきましょう。
2. Private GitHub がくれる 7 つの武器―― 超ざっくり解説
# | 武器 | これが起きるとラク! |
---|---|---|
1 | 完全な履歴 | 「あれ…いつからスプレッドがおかしい?」→ git bisect コマンドで 10 分あれば犯人コミットを突き止め、git revert で即ロールバック。 |
2 | ワンクリック冗長化 | ノート PC が煙を吐いても git clone → 30 秒 で作業復活。クラウド側がバックアップしてくれる。 |
3 | 無料 CI/CD | git push したら自動で① pytest 実行 → ② Docker イメージ作成 → ③ Slack に緑/赤ランプ通知― Private Repo でも月 2,000 分(約33 時間)までは無料<br>※macOS ランナーは 500 分。超えたら従量課金だが、個人 Bot 開発ならまず収まり切る。 |
4 | Secrets ストア | API キーを .env にベタ書きして冷や汗…を防止。secrets.BYBIT_KEY と書くだけで AES-256 で暗号化保管 → ワークフロー実行時にだけ展開。👉 フォーク PR には自動で渡らない仕組みなので、外部コントリビューションの OSS と使い分けも安心。 |
5 | 操作履歴(Audit Log) | 誰(自分でも)が、いつ、どの PC から、どんな push をしたかを ブラウザで時系列表示。誤 force-push や PAT 盗難をすぐ発見。 |
6 | タスク & セルフレビュー | Issue で「やること」をポチッと立て、ブランチを切って “自分 PR → 自分マージ” を習慣化。1 クリック増えるだけでミス激減。 |
7 | Copilot / CodeSearch | AI 補完で for 文が 3 倍速。個人利用は無料(2025/5 時点)だが月 200 コミットが上限。 Pro 契約(月額)なら無制限+商用ライセンスもクリア。過去スニペット検索も一瞬。 |
ポイント: 1〜3 だけ導入しても 開発スピードが体感で倍になります。
4〜7 は“慣れてきたら”順番にオンにしていけば OK。
3. “意地悪な”反論と超具体 現実解
ツッコミ | 起こり得る影響 | 現実解:やること/コマンド |
---|---|---|
「GitHub が落ちたら終わり」 | サーバーダウン・アカBAN → コードも CI も停止 | 週1ミラーを自動化① バックアップ先を登録(1回だけ) |
「CI/CD はミスの自動デプロイ装置」 | テスト抜け → 致命バグを秒速デプロイ | セルフ PR + Status Check 強制 1. GitHub GUI 設定 Settings → Branches → main Require pull request reviews before merging Require status checks to pass 2. セルフ PR 開発フロー git checkout -b fix/typo …ファイルを修正して保存… git commit -m "fix: typo" git push -u origin fix/typo GitHub で PR を作成し、「LGTM」コメントを 1 行入れて自分で Approve 3. Tests が緑でないと Merge ボタンが押せない仕組み完成 |
「Secrets も YAML 改ざんで漏れる」 | 悪意ワークフローが echo $SECRET → ログ漏洩 | 「Secrets も YAML 改ざんで漏れる」 ── Secrets 漏洩を防ぐ“2重ガード” ── 1) レビュー必須 PR を経由し YAML の diff を毎回目視チェックする 2) Self-hosted Runner を最小権限で登録 (必要な人だけ) ./config.sh --url https://github.com/USER/REPO \ --token PAT_WITH_repo:read,actions:write \ --labels self-hosted ※ PAT に secrets:read は付けない = ワークフロー内から外部送信不可 3) 裏側情報メモ - GitHub Secrets は AES-256 で暗号化保存 - フォーク PR には自動で渡らない - ログに echo $SECRET しない限り閲覧不可 |
「内部犯がコピー公開したら?」 | コード流出 ➜ アルファ崩壊 | 契約+監査ログで抑止 1. GitHub Audit log を有効にしておく(Settings › Audit log) 2. コントリビューターと NDA を結ぶ 3. README に「ログ記録中。無断公開は法的措置」と 1 行入れる |
「学習コストが高すぎ」 | YAML 地獄で心折れ → 放置 | テンプレをコピペして動かす → 動いたら理解 ─ “とりあえず CI を動かす” 3 ステップ ─ 1) テンプレ yml をダウンロード curl -O https://gist.githubusercontent.com/…/ci.yml -o .github/workflows/ci.yml 2) Git に登録 git add .github/workflows/ci.yml git commit -m "bootstrap CI" 3) push して Actions タブが緑になるか確認 git push origin main → GitHub → Actions → latest run が ✔︎ なら OK |
4. 今すぐ入れたい“安全×高速”チェックリスト
🔒 安全×高速チェックリスト(個人開発者用・具体アクション付き)
優先 | やること | 具体アクション(クリックルート or コマンド) |
---|---|---|
★★★ | ブランチ保護 + PR必須 | 1. Settings → Branches → Add rule 2. Branch name = main 3. チェックをON: • Require pull request reviews before merging • Require status checks to pass 4. セルフPR運用でOK: git checkout -b work/xxx → 変更 → PR → 自分で Approve & Merge |
★★★ | Secrets スキャン CI | gitleaks/gitleaks-action@v2 を追加:yaml<br>- name: Secrets Scan<br uses: gitleaks/gitleaks-action@v2<br> Push 時に API キー混入を自動検知 |
★★☆ | CI ランナー選択 | コスト優先なら Hosted Runner だけでOK(無料枠) VPSを使う場合は: bash<br>./config.sh --url <repo-url> \\\n --token <PAT> \\\n --labels self-hosted --ephemeral\n PAT 権限は repo:read , actions:write のみに絞る |
★★☆ | Dependabot セキュリティ PR(手動マージ) | 1. .github/dependabot.yml を追加:yaml<br>version: 2\nupdates:\n - package-ecosystem: "pip"\n directory: "/"\n schedule:\n interval: "weekly"\n open-pull-requests-limit: 2\n 2. PR は 必ず自分でレビューしてマージ |
★☆☆ | 週1(or 月1)ミラー | 初回:git remote add backup git@gitlab.com:user/repo.git 手動 or cron: git push backup --mirror |
★☆☆ | 誤公開→即 Private 手順メモ | README の最上部に以下を貼る:緊急時: Settings → General → Change visibility → Make private → I understand → 1クリックで再非公開化 |
★★★=必ず実装 / ★★☆=強く推奨 / ★☆☆=余裕ができたら
セルフPR+Hosted Runnerだけでも“最小ガード”は成立します。
5. GitHub が死んだ時の“逃げ場”マップ
逃げ場マップ(クラウド依存が切れたら?)
目的 | オンライン代替 | 備考 |
---|---|---|
Git + CI | GitLab.com / Bitbucket Cloud |
UI・YAMLの書き換えが必須 |
バックアップ | GitHub → GitLab ミラー | Settings › Mirroring 自動 |
目的 | オフライン代替 | メモ |
---|---|---|
Git + CI | Gitea + Drone CI (自VPS) |
VPS 1台でも可 |
バックアップ | 裸Gitをrsync -av --delete でNAS保存 |
clone → fetch --all --prune を cron |
最終手段 | Zipアーカイブ暗号化 → aws s3 sync |
CIは一旦あきらめる |
6. 用語ミニ辞典(60秒で把握)
用語 | 説明 |
---|---|
git clone | リポジトリを丸ごとローカルにコピー |
CI/CD | テスト自動実行と自動デプロイの連続パイプ |
GitHub Actions | GitHub内で動くCIランナー |
PR (Pull Request) | 変更差分のレビュー枠 |
Issue / Projects | タスク可視化&カンバン |
Copilot / CodeSearch | AI補完と全文検索 |
サプライチェーン攻撃 | 依存ライブラリ汚染経由の侵入 |
Private Repo | 非公開GitHubリポジトリ |
repo convert to private | 公開→Privateへ即時切替 |
GitHub Secrets | 暗号化環境変数ストア |
truffleHog / gitleaks | キー漏洩スキャナ |
Dependabot セキュリティPR | 脆弱ライブラリ自動更新PR |
Actionsランナー | Actionsを実行するマシン (GitHub or Self-host) |
ガバナンス必須 | 権限管理・監査 “決めておく文化” |
7. おわりに
「速さこそ優位、でもコードは最大の資産」。
GitHubをフルに使えば “秒速ロールバック・秒速デプロイ” を手にできる。
しかし ガバナンスと冗長化 を忘れると、
“秒速で漏洩・秒速で全損” の地雷原も広がる。
チェックリストを丸ごと導入→テンプレに落とし込む。
これだけで “クローズド DevOps” が回り始め、
仮想通貨市場の激変でも 最速・最小リスク で追従できるはずです。
👇ラジオで話したこと
こんにちは、Yodaka です。
きょうは 「コードは秘匿、開発は加速──Private GitHub 運用ガイド」。
“ソースは墓場まで持って行きたい、でも CI/CD は全力で回したい”
そんな個人ボッターさんに向け、完全非公開 GitHub の始め方を
超・基礎から解説します。
◆ざっくり結論だけ先取り
- GitHub は“公開する場”だけじゃない。
Private リポは無料枠でも
Linux ランナー 2 000 分/月=約 33 h Actions がタダ。GitHub Docs - 秘密鍵は GitHub Secrets に AES-256 で暗号保管できる。GitHub Docs
- ブランチ保護 + Self PR をオンにするだけで
“テスト落ちバグの秒速デプロイ”を防げる。GitHub Docs
この3つを押さえれば “クローズド DevOps” が今日から回ります。
0. 用語ミニ辞典
用語 | 読み | 1行説明 |
---|---|---|
CI/CD | シーアイ/シーディー | テスト&デプロイ自動パイプ |
PR | ピーアール | Pull Request、差分レビュー枠 |
Secrets Store | シークレット ストア | 暗号化された環境変数庫 |
gitleaks | ギットリークス | キー混入スキャナ |
Branch Protection | ブランチ保護 | main 直 push 禁止ルール |
1. そもそも何がモヤモヤ?
- 「GitHub = OSS の人向け」→ 誤解。
Private Repo は誰にも見えません。 - 怖いのは流出より “手元クラッシュ × バックアップ無し”。
ノートPCが煙を吐いてもgit clone
30 秒で復旧。Massachusetts Institute of Technology - 使わない理由が“もったいない”だけになったら、
“非公開専用ツール”として割り切る が正解。
2. Private GitHub がくれる 7 つの武器
# | 武器 | ラクになる瞬間 |
---|---|---|
1 | 完全履歴 | git bisect で「どのコミットでスプレッド壊れた?」を10分で特定。Git |
2 | クラウド冗長化 | PC 全損→git clone で30秒復活。 |
3 | 無料 CI/CD | git push →pytest→Docker→Slack。月2 000分まではタダ。GitHub Docs |
4 | Secrets ストア | secrets.BYBIT_KEY が AES-256 で暗号化。fork PR には渡らない。GitHub Docs |
5 | Audit Log | “誰がいつ強制 push?”をブラウザで確認。GitHub Docs |
6 | タスク & Self PR | Issue立て→ブランチ→自分 PR→Approve でミス激減。 |
7 | Copilot / CodeSearch | AI 補完で for 文が 3 倍速(個人は月 200 コミット無料)。Massachusetts Institute of Technology |
ポイントは 1〜3 だけ 先に回す。
4 以降は慣れてから小出しで OK です。
3. “意地悪な”反論と現実解
3-1 GitHub が落ちたら?
- 週1 自動ミラーを GitLab へ:
git remote add backup git@gitlab.com:user/repo.git 0 3 * * 0 git push backup --mirror
3-2 CI はバグを秒速デプロイ?
- ブランチ保護 → Self PR → StatusCheck 必須。
テストが赤なら Merge ボタンが灰色で押せません。GitHub Docs
3-3 Secrets が YAML 改ざんで漏れる?
- PR レビュー必須+
Self-hosted Runner にはsecrets:read
権限を外す。GitHub Docs
3-4 学習コスト高すぎ?
- テンプレ
.yml
をコピペ → 動いたら理解 の順で。
成功体験が先、意味づけはあと。
4. 今すぐ入れる“安全×高速”設定
優先 | ToDo | ワンポイント |
---|---|---|
★★★ | ブランチ保護 + PR必須 | GUI3クリックで完了。 |
★★★ | gitleaks Secrets スキャン | Action 1 行追加でキー混入を検知。GitHub |
★★☆ | Dependabot セキュPR | 毎週ライブラリ脆弱性を自動 PR。GitHub Docs |
★★☆ | 自ランナー(任意) | 長時間ジョブを無料で。 |
★☆☆ | 週1 GitLab ミラー | クラウド障害対策。 |
というわけで、“非公開で攻める GitHub” の要点をぎゅっとお届けしました。
まとめると──
- 履歴・冗長化・無料 CI は今すぐオン。
- ガバナンスとミラー を忘れない。
これで「コードは秘匿、開発は加速」が両立します。
次回は Actions 10 行で pytest→Docker→Slack を流す方法などについてもお伝えしていく予定です。
それでは、良き開発と強い構築を!よだかでした!
引用に使用した主な公開情報:GitHub 公式 Docs(Actions 無料枠・Secrets・Audit Log・Branch Protection)、Loguru ガイド、gitleaks README、Unix tail
解説等 GitHub Docs/GitHub Docs/GitHub Docs/Unix & Linux Stack Exchange/Better Stack/GitHub/GitHub Docs/Git/Massachusetts Institute of Technology/GitHub Docs
おまけ:用語解説
セキュリティ用語
キー混入スキャナ
コードにうっかり貼り付けた API キーやパスワードを機械的に検出 する CLI。代表例は gitleaks と truffleHog。Git History も ZIP もスキャン可で、GitHub Actions に 1 行で組み込める。GitHubMedium
Secrets ストア(=環境変数庫)
GitHub Settings → Secrets & variables に登録すると、値は AES-256 で暗号化 され、ワークフロー実行時だけ環境変数として展開。fork PR には自動で渡らない。GitHub Docs
secrets:read
権限
Self-hosted Runner 登録時に PAT へ付ける/外すスコープ。外せばランナー側から Secrets を読み出せず、流出経路が 1 段減る。GitHub Docs
2. Git/レビュー系
差分レビュー枠(Pull Request)
変更前後の “diff を見せる箱”。ブランチを比較し、コメント・Approve を経て Merge ボタン が押せるようになる仕組み。GitHub Docs
git bisect
――「どのコミットでスプレッド壊れた?」
バイナリ検索で バグを混入した犯人コミットを自動特定 する Git コマンド。good/bad を打つたびに対象範囲が半分になる。DEV Community
ブランチ保護 → Self PR → Status Check 必須
- Branch Protection Rule に “Require PR review / Require status checks” をオン → main 直 push 不可。
- 開発は自分 PR → 自分で Approve(Self PR)。
- CI が緑にならないと Merge ボタンがアクティブにならない。GitHub Docs
3. CI/CD・ランナー系
自動パイプ(CI/CD パイプライン)
コード → build → test → deploy を イベント駆動で自動 する一連の流れ。ヒューマンエラーを減らしリリースを均質化。The world's open source leader
GitHub Actions無料枠「月 2 000 分」
“分” は 実行時間の合計。Private Repo でも Linux ランナーなら 2 000 分/月が無料。超過すると従量課金。GitHub Docs
Self-hosted Runner
自分の VPS/PC を Actions ランナーに登録する仕組み。分課金ゼロ、GPU も使えるがメンテは自己責任。Codefresh
Actions 10 行
最小サンプル:name
, on
, jobs
, runs-on
, steps
, uses
、run
等を合わせ 10 行前後 で“pytest→Docker→Slack”程度のワークフローは書ける。Codefresh
4. 依存・アップデート系
Dependabot セキュPR
脆弱ライブラリを検知して 自動でバージョンアップ PR を投げる GitHub 標準ボット。手動マージなら意図せぬアップが起きない。GitHub Docs
5. GitHub 補助サービス
Copilot / CodeSearch
- Copilot: AI 補完。個人 Free プランは月 200 コミットまで無償。Pro に入ると無制限。GitHub Docs
- CodeSearch: “昔書いた utils.parse_spread() どこ?”をミリ秒で検索できる全文インデックス。
for 文が 3 倍速 ─ Copilot が次の行・変数名・ドキュメント文字列を予測入力してくれる体験的速度感の比喩。
6. 外部サービスとの比較
GitLab
GitHub と同じ Git リポ+CI を提供。Private Repo も無料、Built-in ミラーリング で GitHub → GitLab 片方向同期が GUIで設定可。GitLab Forum
7. ワークフロー保護ワザ
キーワード | 要点 |
---|---|
YAML 改ざん | 悪意ある PR が echo $SECRET を書くと漏えい。→ PR レビュー必須 で YAML diff を目視。 |
GUI 3クリック | Branch 保護設定は Settings › Branches › Add rule → チェック2つオン → Save で完了。 |
Action 1 行追加 | - name: Secrets Scan\n uses: gitleaks/gitleaks-action@v2 を workflows に足すだけでキー検知 CI が動く。 |
8. 自ランナー vs Hosted ランナー
項目 | Hosted (GitHub) | Self-hosted |
---|---|---|
料金 | 月2 000 分無料 | 0円(自前電気代) |
スペック | 固定 (2 CPU/7 GB) | 自由(GPU可) |
Secrets アクセス | あり | PAT権限次第 |
管理 | GitHub側 | 自力アップデート |
9. まとめ
「守り」を自動化すると「攻め」に 100 %時間が割ける。
Private GitHub の無料枠と最小ガードを組み合わせれば、ソースを一切漏らさずに テスト→デプロイ→ロールバック まで“1 push”で回せます。これが個人ボッター最速の安全装置です。