エンジニアの皆さん、こんにちは。
日々、Bitbucketの画面をポチポチと操作してリポジトリを作成したり、設定を変更したりしていませんか?もしあなたが「面倒だな」と心のどこかで感じているなら、それは自動化のサインです。
今日は、BitbucketのREST APIをPythonで叩き、あなたの開発環境を「自律するシステム」へと進化させる方法を伝授します。単なるAPIの使い方の説明ではありません。「開発のボトルネックをコードで破壊する」ための第一歩です。
—
1. なぜ「Bitbucket API」なのか?
GUIは直感的ですが、「再現性がない」という致命的な弱点があります。
- チームメンバーが増えるたびにリポジトリ設定を手動で行う。
- プロジェクトごとの標準設定(ブランチ権限など)を毎回コピペで設定する。
これらはすべて「技術的負債」の種です。APIを使えば、プロジェクトの立ち上げから設定までを数秒で完了できます。これができるエンジニアとそうでないエンジニアでは、長期的に見て生産性に数倍の差がつきます。
—
2. 準備:最強の自動化環境を整える
まずは、Bitbucketと対話するためのパスポート(認証)を手に入れましょう。
ステップ1:アプリパスワードの発行
1. Bitbucketにログインし、右上のアバターから「個人設定」へ。
2. 「アクセス管理」>「アプリパスワード」を選択。
3. 「リポジトリ(読み取り・書き込み)」の権限にチェックを入れ、パスワードを生成します。
- 重要: 生成されたパスワードは一度しか表示されません。安全な場所に保管してください。
ステップ2:Python環境の整備
`requests` ライブラリを使えば、どんな複雑なリクエストも一行で書けます。
pip install requests
—
3. Hello World:リポジトリ情報を取得する
まずは、自分のリポジトリ一覧を表示させてみましょう。これができれば、あとは何でもできます。
import requests
from requests.auth import HTTPBasicAuth
設定値
USERNAME = ‘your_username’
APP_PASSWORD = ‘your_app_password’
WORKSPACE = ‘your_workspace_name’
Bitbucket APIのエンドポイント
url = f”https://api.bitbucket.org/2.0/repositories/{WORKSPACE}”
認証付きリクエスト
response = requests.get(url, auth=HTTPBasicAuth(USERNAME, APP_PASSWORD))
if response.status_code == 200:
repos = response.json()
for repo in repos[‘values’]:
print(f”リポジトリ発見: {repo[‘name’]}”)
else:
print(f”エラー発生: {response.status_code}”)
これだけで、Bitbucketの内部構造があなたの手元に可視化されました。
—
4. 実践:リポジトリを自動作成する
現場で最も役立つ「新プロジェクト立ち上げ自動化」のコードです。
def create_repository(repo_name):
url = f”https://api.bitbucket.org/2.0/repositories/{WORKSPACE}/{repo_name}”
# リポジトリ作成の構成データ
payload = {
“scm”: “git”,
“is_private”: True,
“project”: {“key”: “PROJ”} # 事前に作成したプロジェクトキー
}
response = requests.post(url, json=payload, auth=HTTPBasicAuth(USERNAME, APP_PASSWORD))
if response.status_code == 201:
print(f”🚀 リポジトリ ‘{repo_name}’ を作成しました!”)
else:
print(f”❌ 作成失敗: {response.text}”)
create_repository(“new-awesome-project”)
—
5. プロフェッショナルのための「次のステップ」
ここまでできれば、あなたはすでに「手動の奴隷」から解放されました。さらに先へ行くためのヒントを授けます。
1. コミットログの自動抽出: APIを使って過去のコミット履歴をJSONで取得し、それをPandasで集計すれば、「誰がどのくらいコードを書いているか(または苦戦しているか)」を可視化するダッシュボードを自作できます。
2. ブランチ保護ルールの適用: リポジトリ作成直後に、mainブランチへの直接pushを禁止するAPIを叩くようにすれば、チームの品質を強制的に底上げできます。
3. 環境変数管理: 認証情報をコードに直書きしてはいけません。`.env` ファイルと `python-dotenv` を使い、設定を安全に分離する癖をつけましょう。
最後に
自動化の本質は「怠惰」にあるのではなく、「人間がやるべき価値ある仕事」に集中するための環境づくりにあります。
Bitbucket APIは、あなたの開発ライフを劇的に楽にする強力な武器です。今日紹介したコードをコピーするだけでなく、ぜひ「自分のチームには何が足りないか?」を考えながら改造してみてください。
分からないことがあれば、いつでもまた聞きに来てくださいね。あなたの開発者ライフが、より創造的で快適なものになることを応援しています!