リポジトリの墓場を脱却せよ:Bitbucket大規模運用を劇的に改善する「断捨離」と「自動化」の神髄
「リポジトリの数が多すぎて、どれが本番コードなのか分からない」
「退職者の権限が残り続けている」
「プロジェクト設定がバラバラで、CI/CDの足並みが揃わない」
もし君のチームがこの状況に陥っているなら、それは「技術的負債」ではなく「管理上の負債」だ。リポジトリは増殖する生物だ。放置すれば検索性は死に、開発体験(DX)は地の底まで落ちる。
今日は、Bitbucketを単なるホスティングツールから「最強の開発プラットフォーム」へ変貌させる、現場直結の整理術と自動化の極意を叩き込む。
—
1. 「断捨離」のアルゴリズム:非アクティブを可視化する
リポジトリを消すのは勇気がいる。だが、アーカイブ機能を使えばリスクを最小化できる。まずは、何が「死んでいる」かを特定することから始めよう。
Bitbucket APIで「幽霊リポジトリ」を狩る
GUIでポチポチ探すのは時間の無駄だ。以下のシェルスクリプトで、過去1年間コミットがないリポジトリを洗い出せ。
Bitbucket APIを使って最終コミットが1年以上前のリポジトリを抽出
workspace: ワークスペース名, auth: 認証情報
curl -u $USER:$PASS “https://api.bitbucket.org/2.0/repositories/{workspace}?pagelen=100” | \
jq ‘.values[] | select(.updated_on < "2023-01-01T00:00:00Z") | .name'
このリストが出たら、即座にアーカイブ(Archive)だ。Bitbucketのアーカイブは「読み取り専用」かつ「検索から除外」される。削除は最後だ。まずはアーカイブして、誰も文句を言わなければ1ヶ月後に削除する。これが安全な断捨離の作法だ。
—
2. プロジェクト設定の「一括統治」:権限管理の聖域化
リポジトリ単位で権限を設定するのは素人の仕事だ。「プロジェクト(Project)」単位での権限継承を徹底せよ。
- Default Group設定: プロジェクト作成時に、必ず「ReadOnly」グループをデフォルトで付与する。
- Branch Restrictionsの継承: 全リポジトリで「mainへの直接プッシュ禁止」「レビュー承認必須」を強制する。これを個々のリポジトリで設定させるな。プロジェクトの「Branch permissions」設定で一括制御するのだ。
【神ルール】:
チームの権限変更は、`bitbucket-pipelines.yml` と同様に、設定ファイルとして管理する文化を作れ。手動のGUI設定は「変更履歴が残らない」という最大のリスクを孕んでいる。
—
3. 開発スピードを加速させる「極限のハック」
隠れたキーボードショートカット
Bitbucketの画面で以下のキーを叩け。
- `g` + `i` : Issuesへ即座にジャンプ
- `g` + `p` : Pull Requestsへ即座にジャンプ
- `g` + `r` : リポジトリルートへ戻る
マウスを使っている時間は、思考の停止時間だ。指をキーボードから離すな。
絶対に入れるべき「神プラグイン」
- Bitbucket Integration for Jira: Jiraとの連携なしにBitbucketを使うな。PRのタイトルに課題IDを入れるだけで、Jira側でステータスが自動遷移する。これで「進捗報告会」という名の無駄な会議が消滅する。
- SourceTree: アトラシアン公式のGUI。複雑なマージ競合を解決する際、コマンドラインだけで戦うのは美学ではない。視覚的解決の効率は圧倒的だ。
—
4. プロダクション環境を守るYAML構成:ベストプラクティス
`bitbucket-pipelines.yml` は、単なるスクリプトではない。「チームの守護神」だ。以下は、私が大規模チームで必ず導入する「堅牢な構成例」である。
徹底的にガードを固めたCI/CDパイプライン構成
pipelines:
branches:
main:
- step:
name: “Security & Lint Check”
image: node:18
script:
- npm ci
- npm run lint
- npm audit # 脆弱性スキャンを自動化
- step:
name: “Test & Coverage”
script:
- npm test — –coverage
artifacts:
- coverage/ # テスト結果を保存
feature/:
- step:
name: “Fast Build & Test”
script:
- npm ci
- npm run test:unit # 開発中の高速フィードバック
ポイント:
- Artifactsを使い倒せ: パイプライン間でビルド結果を共有することで、再コンパイルの時間を極限まで削る。
- キャッシュ設定: `caches: – node` を忘れずに入れろ。これだけでビルド時間が数分短縮されることもある。
—
最後に:エンジニアへのメッセージ
リポジトリの整理は「掃除」ではない。「投資」だ。
整理されたリポジトリ、自動化された権限管理、そして洗練されたパイプライン。これらが揃ったとき、チームは初めて「コードを書くこと」だけに集中できる環境を手に入れる。
今すぐ、自分のプロジェクトの「リポジトリ一覧」を開け。そこにある10個のうち、本当に意味のあるものはいくつある?
断捨離は今日から始まる。さあ、ターミナルを開こう。