bitbucket-workflow
Bitbucketのプルリクエスト、Pipelines CI/CD、Jira連携、およびAtlassianエコシステムワークフローのベストプラクティス
description の原文を見る
Bitbucket best practices for pull requests, Pipelines CI/CD, Jira integration, and Atlassian ecosystem workflows
SKILL.md 本文
Bitbucket ワークフローのベストプラクティス
Bitbucket ワークフロー(プルリクエスト、Bitbucket Pipelines、Jira 統合、Atlassian エコシステムのベストプラクティス)の専門家です。
コア原則
- すべてのコード変更に対して適切なレビュープロセスを備えたプルリクエストを使用します
bitbucket-pipelines.ymlを使用した Bitbucket Pipelines で CI/CD を実装します- Jira 統合を活用してシームレスな課題追跡を実現します
- Gitflow などのブランチングモデルに従い、構造化された開発を行います
- ブランチパーミッション とアクセス制御を通じてセキュリティを維持します
プルリクエストのベストプラクティス
効果的なプルリクエストの作成
-
PR は焦点を絞り、レビュー可能に保つ
- 機能または修正は 1 つの PR に 1 つ
- 説明にコンテキストを含める
-
PR タイトルの慣例
- Jira 課題を参照:
PROJ-123: Add user authentication - 従来形式を使用:
feat: implement login page
- Jira 課題を参照:
-
PR 説明テンプレート
## Summary 変更内容と動機の簡潔な説明。 ## Jira Issue [PROJ-123](https://your-org.atlassian.net/browse/PROJ-123) ## Changes - 行った具体的な変更のリスト ## Testing - 変更がどのようにテストされたか - 手動テストの手順 ## Checklist - [ ] テストを追加/更新 - [ ] ドキュメントを更新 - [ ] パイプラインがパス
Bitbucket でのコードレビュー
- レビュアーを追加する - 適切なチームメンバーを選択
- タスクを使用する - アクション可能なフィードバックのためのタスクを作成
- 承認または変更をリクエスト - 明確な承認ワークフロー
- ディスカッションを解決 - マージ前にすべてのフィードバックに対応
マージ戦略
- マージコミット: ブランチ履歴全体を保持
- スクイャッシュ: 複数のコミットを 1 つのコミットに結合
- ファストフォワード: 可能な場合は線形履歴
Bitbucket Pipelines
基本的なパイプライン設定
image: node:20
definitions:
caches:
npm: ~/.npm
steps:
- step: &build-step
name: Build
caches:
- npm
script:
- npm ci
- npm run build
artifacts:
- dist/**
- step: &test-step
name: Test
caches:
- npm
script:
- npm ci
- npm test
pipelines:
default:
- step: *build-step
- step: *test-step
branches:
main:
- step: *build-step
- step: *test-step
- step:
name: Deploy to Production
deployment: production
trigger: manual
script:
- pipe: atlassian/aws-s3-deploy:1.1.0
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: 'us-east-1'
S3_BUCKET: 'my-bucket'
LOCAL_PATH: 'dist'
develop:
- step: *build-step
- step: *test-step
- step:
name: Deploy to Staging
deployment: staging
script:
- ./deploy.sh staging
パイプラインの機能
並列ステップ
pipelines:
default:
- parallel:
- step:
name: Unit Tests
script:
- npm test:unit
- step:
name: Integration Tests
script:
- npm test:integration
- step:
name: Lint
script:
- npm run lint
条件付きステップ
pipelines:
pull-requests:
'**':
- step:
name: Build and Test
script:
- npm ci
- npm test
condition:
changesets:
includePaths:
- "src/**"
- "package.json"
カスタムパイプ
pipelines:
default:
- step:
name: Deploy
script:
- pipe: atlassian/aws-ecs-deploy:1.6.0
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: 'us-east-1'
CLUSTER_NAME: 'my-cluster'
SERVICE_NAME: 'my-service'
TASK_DEFINITION: 'task-definition.json'
テスト用サービス
definitions:
services:
postgres:
image: postgres:15
variables:
POSTGRES_DB: test_db
POSTGRES_USER: test_user
POSTGRES_PASSWORD: test_pass
redis:
image: redis:7
pipelines:
default:
- step:
name: Integration Tests
services:
- postgres
- redis
script:
- npm ci
- npm run test:integration
キャッシング
definitions:
caches:
npm: ~/.npm
pip: ~/.cache/pip
gradle: ~/.gradle/caches
pipelines:
default:
- step:
caches:
- npm
script:
- npm ci
- npm run build
Jira 統合
スマートコミット
コミットメッセージから Jira 課題を更新するためのスマートコミットを有効にします:
PROJ-123 #comment Fixed the login redirect issue
PROJ-123 #time 2h 30m
PROJ-123 #done
ブランチ命名
ブランチ名に Jira 課題キーを含める:
feature/PROJ-123-user-authenticationbugfix/PROJ-456-fix-login-redirect
これにより、ブランチが課題に自動的にリンクされます。
自動化ルール
Jira オートメーションをセットアップ:
- ブランチ作成時に課題を「進行中」に移動
- PR 作成時に課題を「レビュー中」に移動
- PR マージ時に課題を「完了」に移動
ブランチングモデル
Bitbucket の Gitflow
pipelines:
branches:
main:
- step:
name: Deploy Production
deployment: production
script:
- ./deploy.sh production
develop:
- step:
name: Deploy Staging
deployment: staging
script:
- ./deploy.sh staging
'release/*':
- step:
name: Release Build
script:
- npm run build:release
'feature/*':
- step:
name: Feature Build and Test
script:
- npm ci
- npm test
'hotfix/*':
- step:
name: Hotfix Build
script:
- npm ci
- npm test
ブランチパーミッション
リポジトリ設定 > ブランチパーミッションで設定:
Main ブランチ:
- ダイレクトプッシュなし
- プルリクエストが必須
- 最小 1 件の承認が必須
- ビルド成功が必須
- すべてのタスク解決が必須
Develop ブランチ:
- プルリクエストが必須
- 最小 1 件の承認が必須
- ビルド成功が必須
リポジトリ管理
デフォルトレビュアー
一貫したコードレビューのためにデフォルトレビュアーを設定:
- チームリーダーをデフォルトレビュアーとして追加
- CODEOWNERS のようなパターンを使用
マージチェック
マージチェックを有効化:
- 最小承認数
- 未解決のタスクなし
- ビルド成功
- 変更リクエストなし
アクセスレベル
- Admin: 完全なコントロール
- Write: プッシュとマージ
- Read: クローンと表示
セキュリティのベストプラクティス
リポジトリ変数
リポジトリ設定 > パイプライン > 変数でセキュア変数を設定:
# パイプラインで参照
script:
- echo "Deploying with token"
- ./deploy.sh --token=$DEPLOY_TOKEN
変数オプション:
- Secured: ログでマスク
- デプロイに必須
IP 許可リスト
デプロイ環境に対して特定の IP 範囲へのパイプラインアクセスを制限します。
アクセストークン
個人トークンの代わりにリポジトリまたはプロジェクトアクセストークンを使用:
- 特定のリポジトリにスコープ化
- ローテーションが簡単
- より良い監査証跡
デプロイメント環境
環境設定
pipelines:
branches:
main:
- step:
name: Deploy to Production
deployment: production
script:
- ./deploy.sh
リポジトリ設定 > デプロイメントで環境を設定:
- 環境ごとに環境変数を設定
- デプロイパーミッションを設定
- デプロイ履歴を表示
デプロイメントパーミッション
- 本番環境への特定ユーザーの承認が必須
- デプロイウィンドウをセットアップ
- デプロイフリーズ期間を有効化
Atlassian エコシステム統合
Confluence 統合
- リポジトリを Confluence スペースにリンク
- コードスニペットを埋め込む
- コミットからドキュメントを自動更新
Trello 統合
- カードをコミットに接続
- PR イベント時の自動カード移動
Opsgenie 統合
- パイプライン失敗からアラートをトリガー
- デプロイの問題についてのオンコール通知
ベストプラクティスの要約
- Jira キー付きの説明的なブランチ名を使用
- Main ブランチのブランチパーミッションを設定
- 適切なステージを備えた包括的なパイプラインを実装
- 一般的なタスク(AWS、Docker など)にパイプを使用
- スマートコミットを有効化して Jira を更新
- 適切なパーミッションを備えたデプロイメント環境を設定
- シークレット用のリポジトリ変数を使用
- 品質ゲートのマージチェックを設定
- Atlassian 統合を活用してシームレスなワークフローを実現
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- d-subrahmanyam
- ライセンス
- MIT
- 最終更新
- 2026/3/24
Source: https://github.com/d-subrahmanyam/deno-fresh-microservices / ライセンス: MIT