Atlassian is ending support for all Server products in February 2024. Learn more about the benefits of migrating from Atlassian to GitLab.
Starting from February 15, 2024, Atlassian will no longer offer technical support, security updates, or vulnerability fixes for their Server products, including Bitbucket Server.
Through improvements to our Bitbucket Server and Bitbucket Cloud importers, we've lowered the barrier to switch to GitLab, especially for large Bitbucket projects. We are happy to be able to offer a quick and effortless way to move your data to GitLab!
Let's take a look at some of these improvements.
Improvements to imports of large projects
GitLab has offered Bitbucket Server and Bitbucket Cloud importers for a long time. However, these importers operated sequentially in only one Sidekiq background job, which led to timeouts on imports of larger projects.
To solve the timeouts problem, we introduced parallel, asynchronous importers that split the work into smaller background jobs. This change was introduced in:
- GitLab 16.1 for the Bitbucket Server importer
- GitLab 16.6 for the Bitbucket Cloud importer
This change:
- ensures that the import process doesn’t time out on a single worker
- spreads the number of calls we make to Bitbucket API, reducing the risk of running into rate limiting
We also improved error handling so that errors raised on single objects don't stop the whole import from completing.
More improvements
Refactoring importers to be parallel was a crucial improvement, but not the only one we have made to our importers. We also worked to:
- improve the integrity of imported data
- extend the types of data that we import
Because Bitbucket Server and Bitbucket Cloud are separate products and require separate importers, the improvements we introduced differ for each importer. We describe them in the sub-sections below.
Bitbucket Server importer
In GitLab 16.5, we fixed a problem when imported merged and closed merge requests had no commit data associated with them, leaving the diffs empty.
In Gitlab 16.3, we began importing reviewers and in Gitlab 16.6, we began importing pull request approvals.
Bitbucket Cloud importer
In GitLab 16.6, we fixed a problem that users encountered when a pull request on Bitbucket Cloud was squashed and merged, and the branch deleted. When these pull requests were imported to GitLab, the resulting merge requests didn't have associated commits. The problem was addressed by associating merge commits to imported merge requests.
Notes on issues and pull requests can contain references (links) to code, issues, comments, pull requests, and more. Previously, these were imported as is, which left comments with strangely formatted, unclickable links. We fixed this in GitLab 16.6 by converting refs to GitLab refs. Also, we no longer import deleted notes, which caused data errors.
Also for the Bitbucket Cloud importer, we began importing LFS objects in GitLab 16.5 and pull request reviewers in GitLab 16.6.
Take advantage of importers today
With the improvements described, the experience of switching from Bitbucket Server or Bitbucket Cloud to the GitLab DevSecOps platform is better than ever! Check out the Bitbucket Server importer documentation or the Bitbucket Cloud importer documentation to get started today.
For GitLab self-managed instances, to benefit from parallel Bitbucket Cloud importer, administrators must enable the bitbucket_parallel_importer
feature flag. The Bitbucket Server importer is always parallel on GitLab self-managed and GitLab.com.