bitbucket-workflow — Claude Code skill: PRs, Pipelines, Jira
A skill that gives your agent Bitbucket conventions: pull request structure, Pipelines CI/CD config, Jira smart commits and Gitflow branching.
npx skills add Mindrally/skills --skill bitbucket-workflow -a claude-codeWhat bitbucket-workflow does
The skill covers pull requests end to end: one feature or fix per PR, titles that reference a Jira issue such as PROJ-123: Add user authentication, and a description template with Summary, Changes, Testing and a checklist. Review flow, merge strategies and branch permissions are spelled out too.
For CI/CD it walks through bitbucket-pipelines.yml: npm, pip and gradle caches, parallel steps, conditional runs by changed path, postgres and redis services for integration tests, and ready pipes like atlassian/aws-s3-deploy and atlassian/aws-ecs-deploy. Those deploy steps read AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY from repository variables, so set them in Pipelines settings before the first run or the step fails on an empty value.
Jira integration relies on smart commits (PROJ-123 #comment, #time, #done) and branch names carrying the issue key, plus automation rules that move an issue to In Progress on branch creation and to In Review when a PR opens. Branching follows Gitflow, with separate pipelines for main, develop, release/*, feature/* and hotfix/*.
What it helps with
- write a pull request description with a checklist
- set up
bitbucket-pipelines.ymlwith caches and artifacts - run integration tests against postgres and redis in a pipeline
- link commits and branches to Jira issues
- split deployment across Gitflow branches
Example prompts for the agent
- draft a PR description template for issue PROJ-123
- set up a pipeline with parallel test and lint steps
- add a postgres service to the pipeline for integration tests
How to install bitbucket-workflow
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill bitbucket-workflow -a claude-code2Manually: put the files in place
~/.claude/skills/bitbucket-workflow/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/bitbucket-workflow/
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill bitbucket-workflow -a codex2Manually: put the files in place
.agents/skills/bitbucket-workflow/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill bitbucket-workflow -a cursor2Manually: put the files in place
.cursor/skills/bitbucket-workflow/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills bitbucket-workflow2Manually: put the files in place
.github/skills/bitbucket-workflow/SKILL.md1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill bitbucket-workflow -a gemini-cli2Platform CLI
gemini skills install https://github.com/Mindrally/skills --path bitbucket-workflowManually: put the files in place
.devin/skills/bitbucket-workflow/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Mindrally/skills --skill bitbucket-workflow -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about bitbucket-workflow
How do I install bitbucket-workflow in Claude?
Run npx skills add Mindrally/skills --skill bitbucket-workflow -a claude-code. The skill lands in ~/.claude/skills/bitbucket-workflow/SKILL.md.
What does bitbucket-workflow do?
It gives the agent Bitbucket conventions for pull requests, Pipelines, Jira integration and Gitflow branching, so generated configs and PR text match common practice.
Do I need AWS keys for this skill?
The deploy examples use AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as repository variables. Without them the atlassian/aws-s3-deploy and atlassian/aws-ecs-deploy pipe steps will not run.
Source text
SKILL.md · Apache-2.0
---
name: bitbucket-workflow
description: Bitbucket best practices for pull requests, Pipelines CI/CD, Jira integration, and Atlassian ecosystem workflows
metadata:
maintainer: Mindrally
source: https://github.com/Mindrally/skills
---
# Bitbucket Workflow Best Practices
You are an expert in Bitbucket workflows, including pull requests, Bitbucket Pipelines, Jira integration, and Atlassian ecosystem best practices.
## Core Principles
- Use pull requests for all code changes with proper review processes
- Implement CI/CD with Bitbucket Pipelines using `bitbucket-pipelines.yml`
- Leverage Jira integration for seamless issue tracking
- Follow branching models like Gitflow for structured development
- Maintain security through branch permissions and access controls
## Pull Request Best Practices
### Creating Effective Pull Requests
1. **Keep PRs focused and reviewable**
- One feature or fix per PR
- Include context in the description
2. **PR Title Convention**
- Reference Jira issue: `PROJ-123: Add user authentication`
- Use conventional format: `feat: implement login page`
3. **PR Description Template**
```markdown
## Summary
Brief description of changes and motivation.
## Jira Issue
[PROJ-123](https://your-org.atlassian.net/browse/PROJ-123)
## Changes
- List of specific changes made
## Testing
- How the changes were tested
- Manual testing steps
## Checklist
- [ ] Tests added/updated
- [ ] Documentation updated
- [ ] Pipeline passes
```
### Code Review in Bitbucket
1. **Add reviewers** - Select appropriate team members
2. **Use tasks** - Create tasks for actionable feedback
3. **Approve or request changes** - Clear approval workflow
4. **Resolve discussions** - Address all feedback before merge
### Merge Strategies
- **Merge commit**: Preserves full branch history
- **Squash**: Combines commits into single commit
- **Fast-forward**: Linear history when possible
## Bitbucket Pipelines
### Basic Pipeline Configuration
```yaml
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
```
### Pipeline Features
#### Parallel Steps
```yaml
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
```
#### Conditional Steps
```yaml
pipelines:
pull-requests:
'**':
- step:
name: Build and Test
script:
- npm ci
- npm test
condition:
changesets:
includePaths:
- "src/**"
- "package.json"
```
#### Custom Pipes
```yaml
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'
```
### Services for Testing
```yaml
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
```
### Caching
```yaml
definitions:
caches:
npm: ~/.npm
pip: ~/.cache/pip
gradle: ~/.gradle/caches
pipelines:
default:
- step:
caches:
- npm
script:
- npm ci
- npm run build
```
## Jira Integration
### Smart Commits
Enable smart commits to update Jira issues from commit messages:
```
PROJ-123 #comment Fixed the login redirect issue
PROJ-123 #time 2h 30m
PROJ-123 #done
```
### Branch Naming
Include Jira issue key in branch names:
- `feature/PROJ-123-user-authentication`
- `bugfix/PROJ-456-fix-login-redirect`
This automatically links branches to issues.
### Automation Rules
Set up Jira automation:
- Move issue to "In Progress" when branch created
- Move issue to "In Review" when PR opened
- Move issue to "Done" when PR merged
## Branching Models
### Gitflow in Bitbucket
```yaml
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
```
### Branch Permissions
Configure in Repository settings > Branch permissions:
**Main branch:**
- No direct pushes
- Require pull request
- Minimum 1 approval
- Require passing builds
- Require all tasks resolved
**Develop branch:**
- Require pull request
- Minimum 1 approval
- Require passing builds
## Repository Management
### Default Reviewers
Set up default reviewers for consistent code review:
- Add team leads as default reviewers
- Use CODEOWNERS-like patterns
### Merge Checks
Enable merge checks:
- Minimum approvals
- No unresolved tasks
- Passing builds
- No changes requested
### Access Levels
- **Admin**: Full control
- **Write**: Push and merge
- **Read**: Clone and view
## Security Best Practices
### Repository Variables
Configure secure variables in Repository settings > Pipelines > Variables:
```yaml
# Reference in pipeline
script:
- echo "Deploying with token"
- ./deploy.sh --token=$DEPLOY_TOKEN
```
Variable options:
- **Secured**: Masked in logs
- **Required for deployment**
### IP Allowlisting
Restrict pipeline access to specific IP ranges for deployment environments.
### Access Tokens
Use repository or project access tokens instead of personal tokens:
- Scoped to specific repositories
- Easier to rotate
- Better audit trail
## Deployment Environments
### Environment Configuration
```yaml
pipelines:
branches:
main:
- step:
name: Deploy to Production
deployment: production
script:
- ./deploy.sh
```
Configure environments in Repository settings > Deployments:
- Set environment variables per environment
- Configure deployment permissions
- View deployment history
### Deployment Permissions
- Require specific user approval for production
- Set up deployment windows
- Enable deployment freeze periods
## Atlassian Ecosystem Integration
### Confluence Integration
- Link repositories to Confluence spaces
- Embed code snippets
- Auto-update documentation from commits
### Trello Integration
- Connect cards to commits
- Automatic card movement on PR events
### Opsgenie Integration
- Trigger alerts from pipeline failures
- On-call notifications for deployment issues
## Best Practices Summary
1. **Use descriptive branch names** with Jira keys
2. **Configure branch permissions** for main branches
3. **Implement comprehensive pipelines** with proper stages
4. **Use pipes** for common tasks (AWS, Docker, etc.)
5. **Enable smart commits** for Jira updates
6. **Set up deployment environments** with proper permissions
7. **Use repository variables** for secrets
8. **Configure merge checks** for quality gates
9. **Leverage Atlassian integrations** for seamless workflow
© Mindrally · Apache-2.0 · Mindrally/skills