Bitbucket este o platformă Git de la compania Atlassian, integrată cu Jira, Confluence și alte instrumente ale ecosistemului. Bitbucket oferă hosting pentru depozite Git, CI/CD încorporat prin Bitbucket Pipelines și instrumente puternice pentru revizuirea codului. Conform datelor Atlassian, 2024, Bitbucket este folosit de peste 10 milioane de dezvoltatori și 800.000 de echipe din întreaga lume.
Principalele puncte
Bitbucket este o platformă web pentru hostingul depozitelor Git, dezvoltată de compania Atlassian. Inițial Bitbucket suporta doar Mercurial (din 2008), dar după încetarea suportului pentru Mercurial în 2020, a trecut complet la Git. Platforma este disponibilă în două ediții: Bitbucket Cloud (SaaS, hosting Atlassian) și Bitbucket Data Center (versiunea locală pentru Enterprise).
Principalul avantaj al Bitbucket față de concurență — integrarea profundă cu produsele Atlassian. Jira leagă automat commit-urile și Pull Request-urile de sarcini, Confluence permite încorporarea fragmentelor de cod în documentație, iar Opsgenie conectează implementările cu incidentele. Pentru echipele care utilizează deja ecosistemul Atlassian, Bitbucket este alegerea naturală, deoarece nu necesită configurarea unor integrări suplimentare.
Bitbucket Cloud oferă mai multe niveluri de hosting. Planul gratuit include un utilizator și spațiu de stocare limitat (1 GB). Planul standard costă 3 dolari per utilizator pe lună cu un număr nelimitat de depozite private și 2500 de minute Pipelines pe lună. Bitbucket utilizează un model de licențiere per utilizator: fiecare utilizator care are acces la depozit, inclusiv doar pentru citire, este facturat.
Bitbucket Pipelines este un sistem CI/CD încorporat care funcționează pe bază de containere Docker. Pipelines este integrat direct în Bitbucket Cloud și nu necesită instalarea de runneri separați sau configurarea webhook-urilor. Configurarea este descrisă în fișierul bitbucket-pipelines.yml, amplasat în rădăcina depozitului. Fiecare pipeline constă din pași (steps) combinați în secvențe.
Pipelines suportă pași paraleli, lansare manuală, declanșatoare prin push și programare, memorarea în cache a dependențelor și artefacte. Fiecare pas este executat într-un container Docker izolat, a cărui imagine este specificată în configurare. Mai jos este prezentat un exemplu de pipeline pentru construirea unei aplicații Android cu testare și publicare în 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 are o limitare de 50 de minute per pipeline în versiunea Cloud, ceea ce este suficient pentru majoritatea proiectelor, dar poate fi un blocaj pentru monorepozitoriile mari. În Data Center această limitare este eliminată complet — durata pipeline-ului este determinată doar de resursele disponibile ale serverului. Pipelines suportă, de asemenea, imagini Docker personalizate, permițând utilizarea oricăror instrumente de construire și testare.
Pull Request în Bitbucket este implementat cu accent pe procesele corporative de revizuire a codului. Bitbucket oferă: comentarii inline la linii specifice din diff, verificări obligatorii (checks) din Pipelines sau servicii externe, un număr minim de aprobări pentru îmbinare, blocarea merge-ului până la trecerea tuturor verificărilor și declarația de conflict de interese (decline). Interfața PR este împărțită în trei coloane: codul sursă, diff și structura fișierelor.
Funcția unică a Bitbucket — Code Insights. Este o API pentru integrarea instrumentelor externe de calitate a codului (SonarQube, CodeScene, ESLint, Detekt), care își afișează rezultatele direct în interfața Pull Request. Dezvoltatorul vede: numărul de bug-uri noi, acoperirea cu teste, code smells și duplicări. Code Insights permite luarea deciziilor privind merge-ul pe baza unor metrici obiective, nu doar a opiniei subiective a recenzorului.
Bitbucket suportă, de asemenea, restricții de ramuri (branch permissions): se poate interzice ștergerea ramurilor, se poate obliga crearea de PR pentru anumite ramuri, se poate limita lista utilizatorilor cu drepturi de merge pe main. În plus, există verificări de merge (merge checks) — o listă de condiții obligatorii (Pipelines trecut, minimum N aprobări, fără comentarii deschise) care trebuie îndeplinite înainte de butonul Merge. Setările protejează ramura de producție împotriva modificărilor accidentale neverificate.
Integrarea Bitbucket cu Jira — avantajul cheie al platformei. Când dezvoltatorul include în mesajul commit-ului cheia sarcinii (de exemplu, PROJ-123), Jira leagă automat acest commit de sarcină. În interfața sarcinii este afișată fila Development, unde sunt colectate toate commit-urile, Pull Request-urile, ramurile și implementările asociate cu această sarcină. PR-urile actualizează automat statusul sarcinii în Jira la îmbinare (tranziție la Done).
Confluence se integrează, de asemenea, cu Bitbucket: se pot insera fragmente de cod live din depozit în paginile Confluence prin macro-ul Code Block. Modificările din cod sunt sincronizate automat cu Confluence, ceea ce este convenabil pentru menținerea documentației arhitecturale. În plus, Atlassian oferă Smart Commits — gestionarea sarcinilor Jira direct din mesajul commit-ului: schimbarea statusului, adăugarea de timp și priorități.
Pentru automatizarea DevOps, Bitbucket suportă Deployment Gate — legarea implementării de versiunea sarcinii. Când pipeline-ul ajunge la stadiul de implementare, Jira verifică dacă toate sarcinile din această versiune au statusul Approved. Dacă nu — implementarea este blocată. Aceasta implementează principiul Continuous Delivery cu controlul calității la nivel de sarcini, nu doar de cod.
Bitbucket permite crearea de șabloane de depozite pentru standardizarea structurii proiectelor. Pentru proiecte mobile se poate crea un șablon cu fișiere preinstalate: configurare Gradle, gitignore, setări Detekt și Ktlint, pipeline pentru CI Android și README cu instrucțiuni de construire. Un proiect nou se creează din șablon în câteva clicuri, ceea ce accelerează integrarea noilor dezvoltatori.
Comparația Bitbucket cu GitHub și GitLab depinde de ecosistemul în care lucrează echipa. Bitbucket pierde în fața GitHub ca dimensiune a comunității (10 milioane față de 100 de milioane de utilizatori), dar câștigă în integrări corporative datorită stack-ului Atlassian. Dacă echipa folosește deja Jira pentru gestionarea sarcinilor și Confluence pentru documentație — Bitbucket oferă o integrare perfectă fără configurații suplimentare.
În ceea ce privește CI/CD, Bitbucket Pipelines este inferior GitLab CI/CD în scenarii avansate (fără child pipelines, build-uri matriceale, pipeline-uri multi-nivel) și GitHub Actions în ceea ce privește numărul de acțiuni gata făcute (Marketplace Actions conține 20.000+ pași față de mii de pipe-uri publice în Bitbucket). Cu toate acestea, Pipelines este mai simplu de configurat pentru scenarii tipice datorită componentelor pipe gata făcute de la Atlassian.
| Criteriu | Bitbucket | GitHub | GitLab |
|---|---|---|---|
| CI/CD | Pipelines, 50 min/pas | Actions, 2000 min/lună | CI/CD, fără limite (Self) |
| Integrare | Jira, Confluence | Copilot, Slack, Azure | Kubernetes, Prometheus |
| Self-Hosted | Data Center (plată) | Enterprise Server | CE (gratuit) |
| Utilizatori | ~10 mil | ~100 mil | ~30 mil |
| Licență | Proprietară | Proprietară | MIT (cod deschis) |
Alegerea Bitbucket este justificată în două scenarii: echipa utilizează deja ecosistemul Atlassian (Jira + Confluence + Opsgenie) sau munca se desfășoară într-un mediu corporativ unde Bitbucket Data Centre este deja implementat ca instrument standard. Pentru startup-uri și proiecte open-source, GitHub oferă o comunitate mai bogată și funcții gratuite, iar GitLab — cel mai bun CI/CD auto-găzduit.
Bitbucket Data Center — versiunea enterprise a platformei, destinată instalării pe infrastructura proprie. Spre deosebire de versiunea Cloud, Data Center oferă: clusterizare (mod activ-activ pentru mai multe noduri), Smart Mirroring (oglinzi distribuite geografic pentru accelerarea clone/fetch), disponibilitate ridicată (99,99% uptime la clusterizare) și audit complet al acțiunilor.
Data Center include toate funcțiile versiunii Cloud, dar cu extensii enterprise. Smart Mirroring sincronizează automat depozitele între servere din diferite centre de date — dezvoltatorii din Europa și Asia obțin aceeași viteză de clone/fetch, deoarece operațiile Git sunt executate prin cea mai apropiată oglindă. Jurnalele de audit stochează fiecare acțiune: cine, când și de pe ce IP a creat o ramură, a făcut push, a îmbinat un PR.
Licențierea Bitbucket Data Center se face pe baza numărului de utilizatori (nu de depozite). Licența minimă pentru 50 de utilizatori la un preț de la 1520 de dolari pe an (plan standard). Data Center este obligatoriu pentru organizațiile unde: sunt necesare SLA-uri pentru disponibilitate, datele nu pot părăsi țara (GDPR, 152-FZ), numărul de dezvoltatori depășește 500 de persoane sau este necesară integrarea cu un sistem LDAP/SAML corporativ.
Bitbucket Snippets — un instrument pentru stocarea și partajarea fragmentelor mici de cod. Spre deosebire de depozite, Snippets nu au o istorie Git completă, dar suportă versionare, comentarii și fork-uri. Snippets sunt utile pentru configurații partajate (docker-compose.yml pentru dezvoltarea locală), scripturi SQL de migrare și exemple de cod care nu necesită un depozit complet. Fiecare Snippet are un URL unic și poate fi legat de un proiect în Jira.
Bitbucket REST API 2.0 permite gestionarea programatică a depozitelor, Pull Request-urilor, ramurilor și permisiunilor. API-ul este utilizat pentru automatizarea fluxurilor de lucru: crearea unui depozit dintr-un șablon, actualizarea în masă a permisiunilor, obținerea statisticilor Pull Request și integrarea cu sisteme CI externe. Limita de rată este de 1000 de cereri pe oră pentru utilizatorii autentificați. API-ul suportă paginarea prin parametrii Page și Pagelen pentru lucrul cu seturi mari de date.
Întrebări frecvente
Bitbucket este platforma Atlassian pentru stocarea codului Git cu CI/CD, revizuirea codului și integrare încorporată cu Jira. Este utilizată de echipele care lucrează deja în ecosistemul Atlassian.
Pipelines utilizează componente pipe (pași gata făcuți de la Atlassian), este mai simplu pentru sarcini tipice. GitHub Actions oferă un Marketplace mai larg și build-uri matriceale flexibile, dar necesită mai multă configurare.
Pentru o echipă de 5 persoane, Bitbucket Cloud Standard costă 15 dolari pe lună (3 dolari per utilizator). Planul gratuit este disponibil doar pentru un singur utilizator cu funcționalități limitate.
Bitbucket oferă un importator încorporat din GitHub, GitLab și alte platforme. În interfață, selectați Import repository, introduceți URL-ul și datele de autentificare — toate commit-urile și ramurile vor fi transferate.
Data Center — versiunea enterprise a Bitbucket pentru instalarea pe servere proprii cu clusterizare, Smart Mirroring și audit. Potrivit pentru organizații cu sute de dezvoltatori și cerințe de securitate a datelor.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și