Bitbucket is Atlassian's Git hosting platform. If you're already drowning in Jira tickets and Confluence docs that nobody reads, Bitbucket makes sense because it actually talks to the rest of your Atlassian tools without needing 17 different Zapier integrations that break every goddamn update.
Repository Management Built for Teams
Bitbucket gets one thing right that GitHub doesn't: unlimited private repos on the free tier. No more awkward conversations about why your side project needs to be public because you hit the repo limit. GitHub finally fixed this but they were dickheads about it for years.
The branch permissions actually work well for protecting main branches from that one developer who pushes directly to production at 2am. You can set up rules that require pull requests and passing builds before anyone can merge to important branches. It's not rocket science, but it saves you from a lot of "oh shit" moments.
Jira Integration That Actually Works
The Jira integration actually works: it's not a half-assed plugin that breaks every month. When you reference a ticket in your commit message (ABC-123: fix the thing that broke
), it automatically shows up in Jira. Your PM can see which commits touch their features without Slacking you every 30 minutes asking "is the fix in yet?"
Branch names like feature/ABC-123-fix-login-bug
get linked automatically. Pull requests show related Jira tickets. When you deploy, Jira knows which issues went out. It's the kind of integration that makes you think "why doesn't everything work this smoothly?"
The Confluence linking is decent too - you can embed repository info in docs without manually updating links every time you change something. The Smart Links feature makes it easy to reference commits and pull requests directly in documentation.
CI/CD Without the Jenkins Nightmare
Bitbucket Pipelines is built right into the platform. No setting up Jenkins, no managing build servers, no "works on my machine but breaks in CI" bullshit. You drop a bitbucket-pipelines.yml
file in your repo and it just works.
The builds run in Docker containers, so if it works locally in Docker, it'll work in Pipelines. No more debugging differences between your MacBook and some crusty Ubuntu 18.04 server that hasn't been updated since the Obama administration.
Setup is pretty straightforward - basic Node.js builds, Docker deployments to AWS, whatever. It connects to the major cloud providers without needing to figure out IAM roles for 3 hours like you do with Jenkins.
The downside? CI minutes burn through fast. 50 minutes on the free tier disappears in exactly 2 Docker builds with npm ci && npm test
. Found this out the hard way when our Jest tests started timing out after switching from npm install
to npm ci
- burned through a month's quota in one afternoon because those Docker builds take forever to download and install dependencies from scratch every goddamn time.