Bitbucket to platforma Git od firmy Atlassian, zintegrowana z Jira, Confluence i innymi narzędziami ekosystemu. Bitbucket oferuje hosting repozytoriów Git, wbudowany CI/CD przez Bitbucket Pipelines i potężne narzędzia do przeglądu kodu. Według danych Atlassian, 2024, z Bitbucket korzysta ponad 10 milionów programistów i 800 000 zespołów na całym świecie.
Najważniejsze
Bitbucket to platforma internetowa do hostingu repozytoriów Git, stworzona przez firmę Atlassian. Początkowo Bitbucket obsługiwał tylko Mercurial (od 2008 roku), ale po zakończeniu wsparcia dla Mercurial w 2020 roku całkowicie przeszedł na Git. Platforma dostępna jest w dwóch edycjach: Bitbucket Cloud (SaaS, hosting Atlassian) i Bitbucket Data Center (wersja lokalna dla Enterprise).
Główną zaletą Bitbucket nad konkurencją jest głęboka integracja z produktami Atlassian. Jira automatycznie wiąże commity i Pull Request z zadaniami, Confluence pozwala na osadzanie fragmentów kodu w dokumentacji, a Opsgenie łączy wdrożenia z incydentami. Dla zespołów korzystających już z ekosystemu Atlassian, Bitbucket jest naturalnym wyborem, ponieważ nie wymaga konfiguracji dodatkowych integracji.
Bitbucket Cloud oferuje kilka poziomów hostingu. Bezpłatny plan obejmuje jednego użytkownika i ograniczoną przestrzeń dyskową (1 GB). Plan standardowy kosztuje 3 dolary na użytkownika miesięcznie z nieograniczoną liczbą prywatnych repozytoriów i 2500 minut Pipelines miesięcznie. Bitbucket stosuje model licencjonowania użytkowników: opłata naliczana jest za każdego użytkownika mającego dostęp do repozytorium, włączając użytkowników tylko do odczytu.
Bitbucket Pipelines to wbudowany system CI/CD, który działa na bazie kontenerów Docker. Pipelines jest zintegrowany bezpośrednio z Bitbucket Cloud i nie wymaga instalacji osobnych runnerów ani konfiguracji webhook. Konfiguracja opisana jest w pliku bitbucket-pipelines.yml, umieszczonym w katalogu głównym repozytorium. Każdy pipeline składa się z kroków (steps) połączonych w sekwencje.
Pipelines obsługuje kroki równoległe, ręczne uruchamianie, wyzwalacze push i harmonogram, buforowanie zależności oraz artefakty. Każdy krok wykonywany jest w izolowanym kontenerze Docker, którego obraz określany jest w konfiguracji. Poniżej przedstawiono przykładowy pipeline do budowania aplikacji Android z testowaniem i publikacją w Firebase App Distribution:
# bitbucket-pipelines.yml
image: openjdk:17-jdk
pipelines:
pull-requests:
'**':
- step:
name: Build and Test
caches:
- gradle
script:
- ./gradlew assembleDebug testDebugUnitTest
artifacts:
- app/build/outputs/apk/debug/
branches:
main:
- step:
name: Deploy to Firebase
script:
- pipe: atlassian/firebase-distribution:1.0.0
variables:
APP_FILE: 'app/build/outputs/apk/debug/app-debug.apk'
Bitbucket Pipelines ma ograniczenie do 50 minut na jeden pipeline w wersji Cloud, co jest wystarczające dla większości projektów, ale może być wąskim gardłem dla dużych monorepozytoriów. W Data Center ograniczenie to znika całkowicie — czas trwania pipeline zależy tylko od dostępnych zasobów serwera. Pipelines obsługuje również niestandardowe obrazy Docker, co pozwala na używanie dowolnych narzędzi budowania i testowania.
Pull Request w Bitbucket jest zrealizowany z naciskiem na korporacyjne procesy przeglądu kodu. Bitbucket oferuje: komentarze inline do konkretnych linii diff, obowiązkowe sprawdzenia (checks) z Pipelines lub zewnętrznych serwisów, minimalną liczbę zatwierdzeń do scalenia, blokadę merge do czasu przejścia wszystkich sprawdzeń oraz deklarację konfliktu interesów (decline). Interfejs PR podzielony jest na trzy kolumny: kod źródłowy, diff i strukturę plików.
Unikalną funkcją Bitbucket jest Code Insights. To API do integracji zewnętrznych narzędzi jakości kodu (SonarQube, CodeScene, ESLint, Detekt), które wyświetlają swoje wyniki bezpośrednio w interfejsie Pull Request. Deweloper widzi: liczbę nowych błędów, pokrycie testami, code smells i duplikacje. Code Insights umożliwia podejmowanie decyzji o merge na podstawie obiektywnych metryk, a nie tylko subiektywnej opinii recenzenta.
Bitbucket obsługuje również ograniczenia gałęzi (branch permissions): można zabronić usuwania gałęzi, wymusić tworzenie PR dla określonych gałęzi, ograniczyć listę użytkowników uprawnionych do merge na main. Dodatkowo dostępne są kontrolki merge (merge checks) — lista obowiązkowych warunków (Pipelines zaliczone, minimum N zatwierdzeń, brak otwartych komentarzy), które muszą być spełnione przed kliknięciem przycisku Merge. Ustawienia chronią gałąź produkcyjną przed przypadkowymi niesprawdzonymi zmianami.
Integracja Bitbucket z Jira to kluczowa zaleta platformy. Gdy deweloper umieszcza w komunikacie commita klucz zadania (np. PROJ-123), Jira automatycznie wiąże ten commit z zadaniem. W interfejsie zadania wyświetlana jest zakładka Development, gdzie zebrane są wszystkie commity, Pull Request, gałęzie i wdrożenia związane z tym zadaniem. PR automatycznie aktualizują status zadania w Jira przy scalaniu (przejście do Done).
Confluence również integruje się z Bitbucket: można wstawiać na strony Confluence żywe fragmenty kodu z repozytorium przez makro Code Block. Zmiany w kodzie są automatycznie synchronizowane z Confluence, co jest wygodne do prowadzenia dokumentacji architektonicznej. Dodatkowo Atlassian udostępnia Smart Commits — zarządzanie zadaniami Jira bezpośrednio z komunikatu commita: zmiana statusu, dodawanie czasu i priorytetów.
Do automatyzacji DevOps Bitbucket obsługuje Deployment Gate — powiązanie wdrożenia z wersją zadania. Gdy pipeline osiąga etap wdrożenia, Jira sprawdza, czy wszystkie zadania w tym wydaniu mają status Approved. Jeśli nie — wdrożenie jest blokowane. Realizuje to zasadę Continuous Delivery z kontrolą jakości na poziomie zadań, a nie tylko kodu.
Bitbucket umożliwia tworzenie szablonów repozytoriów do standaryzacji struktury projektów. Dla projektów mobilnych można utworzyć szablon z preinstalowanymi plikami: konfiguracja Gradle, gitignore, ustawienia Detekt i Ktlint, pipeline dla Android CI oraz README z instrukcją budowania. Nowy projekt tworzony jest z szablonu w kilka kliknięć, co przyspiesza wdrożenie nowych deweloperów.
Porównanie Bitbucket z GitHub i GitLab zależy od ekosystemu, w którym pracuje zespół. Bitbucket ustępuje GitHub pod względem wielkości społeczności (10 mln wobec 100 mln użytkowników), ale wygrywa w integracjach korporacyjnych dzięki stackowi Atlassian. Jeśli zespół już używa Jira do zarządzania zadaniami i Confluence do dokumentacji — Bitbucket zapewnia bezszwową integrację bez dodatkowej konfiguracji.
W kwestii CI/CD Bitbucket Pipelines ustępuje GitLab CI/CD w zaawansowanych scenariuszach (brak child pipelines, macierzowych buildów, wielopoziomowych pipeline'ów) i GitHub Actions pod względem liczby gotowych akcji (Marketplace Actions zawiera 20 000+ kroków wobec tysięcy publicznych pipe'ów w Bitbucket). Jednak Pipelines jest prostszy w konfiguracji dla typowych scenariuszy dzięki gotowym komponentom pipe od Atlassian.
| Kryterium | Bitbucket | GitHub | GitLab |
|---|---|---|---|
| CI/CD | Pipelines, 50 min/krok | Actions, 2000 min/mies | CI/CD, bez limitów (Self) |
| Integracja | Jira, Confluence | Copilot, Slack, Azure | Kubernetes, Prometheus |
| Self-Hosted | Data Center (płatne) | Enterprise Server | CE (darmowe) |
| Użytkownicy | ~10 mln | ~100 mln | ~30 mln |
| Licencja | Proprietary | Proprietary | MIT (otwarty kod) |
Wybór Bitbucket jest uzasadniony w dwóch scenariuszach: zespół już korzysta z ekosystemu Atlassian (Jira + Confluence + Opsgenie) lub praca odbywa się w środowisku korporacyjnym, gdzie Bitbucket Data Center jest już wdrożone jako standardowe narzędzie. Dla startupów i projektów open-source GitHub oferuje bogatszą społeczność i darmowe funkcje, a GitLab — najlepszy samodzielny CI/CD.
Bitbucket Data Center to korporacyjna wersja platformy, przeznaczona do instalacji na własnej infrastrukturze. W przeciwieństwie do wersji Cloud, Data Center oferuje: klastrowanie (tryb aktywny-aktywny dla wielu węzłów), Smart Mirroring (geograficznie rozproszone lustra dla przyspieszenia clone/fetch), wysoką dostępność (99,99% uptime przy klastrowaniu) i pełny audyt działań.
Data Center zawiera wszystkie funkcje wersji Cloud, ale z rozszerzeniami korporacyjnymi. Smart Mirroring automatycznie synchronizuje repozytoria między serwerami w różnych centrach danych — deweloperzy z Europy i Azji otrzymują taką samą prędkość clone/fetch, ponieważ operacje Git wykonywane są przez najbliższe lustro. Logi audytu przechowują każdą akcję: kto, kiedy i z jakiego IP utworzył gałąź, zrobił push, scalił PR.
Licencjonowanie Bitbucket Data Center odbywa się według liczby użytkowników (nie repozytoriów). Minimalna licencja na 50 użytkowników w cenie od 1520 dolarów rocznie (plan standardowy). Data Center jest obowiązkowe dla organizacji, gdzie: wymagane są SLA dotyczące dostępności, dane nie mogą opuszczać kraju (GDPR, 152-FZ), liczba deweloperów przekracza 500 osób lub potrzebna jest integracja z korporacyjnym systemem LDAP/SAML.
Bitbucket Snippets — narzędzie do przechowywania i udostępniania niewielkich fragmentów kodu. W przeciwieństwie do repozytoriów, Snippets nie mają pełnej historii Git, ale obsługują wersjonowanie, komentarze i forki. Snippets są przydatne dla współdzielonych konfiguracji (docker-compose.yml do lokalnego rozwoju), skryptów SQL migracji i przykładów kodu, które nie wymagają pełnego repozytorium. Każdy Snippet ma unikalny URL i może być powiązany z projektem w Jira.
Bitbucket REST API 2.0 umożliwia programowe zarządzanie repozytoriami, Pull Request, gałęziami i uprawnieniami. API jest używane do automatyzacji procesów: tworzenie repozytorium z szablonu, masowa aktualizacja uprawnień, pobieranie statystyk Pull Request i integracja z zewnętrznymi systemami CI. Limit zapytań wynosi 1000 zapytań na godzinę dla uwierzytelnionych użytkowników. API obsługuje Paginację przez parametry Page i Pagelen do pracy z dużymi zbiorami danych.
Często zadawane pytania
Bitbucket to platforma Atlassian do przechowywania kodu Git z CI/CD, przeglądem kodu i wbudowaną integracją z Jira. Używana przez zespoły, które już pracują w ekosystemie Atlassian.
Pipelines używa komponentów pipe (gotowe kroki od Atlassian), jest prostszy do typowych zadań. GitHub Actions oferuje szerszy Marketplace i elastyczne buildy macierzowe, ale wymaga więcej konfiguracji.
Dla zespołu 5 osób Bitbucket Cloud Standard kosztuje 15 dolarów miesięcznie (3 dolary na użytkownika). Darmowy plan dostępny jest tylko dla jednego użytkownika z ograniczoną funkcjonalnością.
Bitbucket udostępnia wbudowany importer z GitHub, GitLab i innych platform. W interfejsie wybierz Import repository, podaj URL i dane uwierzytelniające — wszystkie commity i gałęzie zostaną przeniesione.
Data Center to korporacyjna wersja Bitbucket do instalacji na własnych serwerach z klastrowaniem, Smart Mirroring i audytem. Odpowiednia dla organizacji z setkami deweloperów i wymaganiami dotyczącymi bezpieczeństwa danych.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również