【実務・中級編】大規模チーム必見!Bitbucketの「プロジェクト設定」を活用したリポジトリの断捨離と棚卸し術 – バージョン管理・CI/CD活用バイブル

リポジトリの墓場を脱却せよ: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個のうち、本当に意味のあるものはいくつある?
断捨離は今日から始まる。さあ、ターミナルを開こう。

タイトルとURLをコピーしました