Bitbucket egy Git platform az Atlassian cégtől, integrálva a Jira, Confluence és az ökoszisztéma egyéb eszközeivel. A Bitbucket Git repozitóriumok hosztolását, beépített CI/CD-t a Bitbucket Pipelines segítségével és hatékony eszközöket biztosít a kódellenőrzéshez. A Atlassian, 2024 adatai szerint a Bitbucket-et világszerte több mint 10 millió fejlesztő és 800 000 csapat használja.
Főbb pontok
Bitbucket egy webes platform Git repozitóriumok hosztolására, amelyet az Atlassian cég fejlesztett ki. Eredetileg a Bitbucket csak a Mercurial-t támogatta (2008-tól), de a Mercurial támogatás 2020-as megszűnése után teljesen átállt a Git-re. A platform két kiadásban érhető el: Bitbucket Cloud (SaaS, Atlassian hosztolás) és Bitbucket Data Center (helyi verzió Enterprise számára).
A Bitbucket fő előnye a versenytársakkal szemben — a mély integráció az Atlassian termékekkel. A Jira automatikusan hozzárendeli a commitokat és Pull Request-eket a feladatokhoz, a Confluence lehetővé teszi kódrészletek beágyazását a dokumentációba, az Opsgenie pedig a telepítéseket kapcsolja össze az incidensekkel. Az Atlassian ökoszisztémát már használó csapatok számára a Bitbucket természetes választás, mivel nem igényel további integrációk konfigurálását.
A Bitbucket Cloud több hosztolási szintet kínál. Az ingyenes csomag egy felhasználót és korlátozott tárhelyet (1 GB) foglal magában. A standard csomag felhasználónként havi 3 dollár, korlátlan privát repozitóriumokkal és havi 2500 perc Pipelines-szel. A Bitbucket felhasználói licencmodellt alkalmaz: minden, a repozitóriumhoz hozzáférő felhasználó, beleértve a csak olvasható hozzáférést is, számlázásra kerül.
Bitbucket Pipelines egy beépített CI/CD rendszer, amely Docker konténerek alapján működik. A Pipelines közvetlenül a Bitbucket Cloud-ba van integrálva, és nem igényel különálló futtatók telepítését vagy webhook konfigurálást. A konfiguráció a bitbucket-pipelines.yml fájlban van leírva, amely a repozitórium gyökerében található. Minden pipeline szekvenciákba egyesített lépésekből (steps) áll.
A Pipelines támogatja a párhuzamos lépéseket, kézi indítást, push és időzítés alapú triggereket, függőségek gyorsítótárazását és artefaktumokat. Minden lépés egy elkülönített Docker konténerben fut, amelynek lemezképét a konfiguráció határozza meg. Az alábbiakban egy példa látható Android alkalmazás építésére teszteléssel és Firebase App Distribution-be való publikálással:
# 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'
A Bitbucket Pipelines korlátozása 50 perc pipeline-onként a Cloud verzióban, ami a legtöbb projekt számára elegendő, de szűk keresztmetszet lehet nagy monorepozitóriumok esetén. A Data Center-ben ez a korlátozás teljesen megszűnik — a pipeline időtartamát csak a rendelkezésre álló szerver erőforrások határozzák meg. A Pipelines egyéni Docker lemezképeket is támogat, ami lehetővé teszi bármilyen építési és tesztelési eszköz használatát.
A Pull Request a Bitbucket-ben a vállalati kódellenőrzési folyamatokra összpontosítva van megvalósítva. A Bitbucket kínál: inline megjegyzéseket adott diff sorokhoz, kötelező ellenőrzéseket (checks) a Pipelines-ből vagy külső szolgáltatásokból, minimális számú jóváhagyást az egyesítéshez, a merge blokkolását az összes ellenőrzés teljesítéséig és összeférhetetlenségi nyilatkozatot (decline). A PR felület három oszlopra van osztva: forráskód, diff és fájlszerkezet.
A Bitbucket egyedi funkciója — a Code Insights. Ez egy API külső kódminőségi eszközök (SonarQube, CodeScene, ESLint, Detekt) integrálására, amelyek eredményeiket közvetlenül a Pull Request felületen jelenítik meg. A fejlesztő látja: az új hibák számát, tesztlefedettséget, code smelleket és duplikációkat. A Code Insights lehetővé teszi a merge-ről való döntést objektív mérőszámok alapján, nem csak a véleményező szubjektív véleménye alapján.
A Bitbucket támogatja továbbá az ágkorlátozásokat (branch permissions): letiltható az ágak törlése, kötelezővé tehető a PR létrehozása bizonyos ágakhoz, korlátozható a main-re merge jogosultsággal rendelkező felhasználók listája. Emellett vannak merge ellenőrzések (merge checks) — a kötelező feltételek listája (Pipelines sikeres, minimum N jóváhagyás, nincsenek nyitott megjegyzések), amelyeknek teljesülniük kell a Merge gomb előtt. A beállítások védik a production ágat a véletlen, nem ellenőrzött változtatásoktól.
A Bitbucket integrációja a Jira-val a platform kulcsfontosságú előnye. Amikor a fejlesztő a commit üzenetbe belefoglalja a feladat kulcsát (pl. PROJ-123), a Jira automatikusan hozzárendeli ezt a commitot a feladathoz. A feladat felületén megjelenik a Development fül, ahol összegyűjtésre kerül az összes commit, Pull Request, ág és telepítés, amely ehhez a feladathoz kapcsolódik. A PR-ek automatikusan frissítik a feladat állapotát a Jira-ban egyesítéskor (átmenet Done-ba).
A Confluence is integrálódik a Bitbucket-tel: élő kódrészletek illeszthetők be a repozitóriumból a Confluence oldalakra a Code Block makró segítségével. A kód változásai automatikusan szinkronizálódnak a Confluence-szel, ami kényelmes az architektúra dokumentációjának vezetéséhez. Ezenkívül az Atlassian Smart Commits-ot kínál — Jira feladatok kezelése közvetlenül a commit üzenetből: állapotváltoztatás, idő és prioritások hozzáadása.
DevOps automatizáláshoz a Bitbucket támogatja a Deployment Gate-t — a telepítés hozzárendelését a feladat verziójához. Amikor a pipeline eléri a telepítési szakaszt, a Jira ellenőrzi, hogy az összes feladat ebben a kiadásban Approved státusszal rendelkezik-e. Ha nem — a telepítés blokkolva van. Ez megvalósítja a Continuous Delivery elvét minőségellenőrzéssel a feladatok szintjén, nem csak a kód szintjén.
A Bitbucket lehetővé teszi repozitórium sablonok létrehozását a projektek struktúrájának szabványosításához. Mobil projektekhez létrehozható egy sablon előre telepített fájlokkal: Gradle konfiguráció, gitignore, Detekt és Ktlint beállítások, pipeline Android CI-hez és README építési utasításokkal. Az új projekt néhány kattintással létrejön a sablonból, ami felgyorsítja az új fejlesztők betanulását.
A Bitbucket összehasonlítása a GitHub-bal és GitLab-bal attól az ökoszisztémától függ, amelyben a csapat dolgozik. A Bitbucket veszít a GitHub-bal szemben a közösség méretében (10 millió vs 100 millió felhasználó), de nyer a vállalati integrációk terén az Atlassian stack-nek köszönhetően. Ha a csapat már használja a Jira-t feladatkezelésre és a Confluence-t dokumentációra — a Bitbucket zökkenőmentes integrációt biztosít további konfiguráció nélkül.
CI/CD tekintetében a Bitbucket Pipelines elmarad a GitLab CI/CD-től fejlett forgatókönyvekben (nincs child pipelines, mátrix build-ek, többszintű pipeline-ok) és a GitHub Actions-től a kész műveletek számában (a Marketplace Actions 20 000+ lépést tartalmaz szemben a Bitbucket ezernyi nyilvános pipe-jával). A Pipelines azonban egyszerűbben konfigurálható tipikus forgatókönyvekhez az Atlassian kész pipe komponenseinek köszönhetően.
| Kritérium | Bitbucket | GitHub | GitLab |
|---|---|---|---|
| CI/CD | Pipelines, 50 perc/lépés | Actions, 2000 perc/hó | CI/CD, korlátlan (Self) |
| Integráció | Jira, Confluence | Copilot, Slack, Azure | Kubernetes, Prometheus |
| Self-Hosted | Data Center (fizetős) | Enterprise Server | CE (ingyenes) |
| Felhasználók | ~10 millió | ~100 millió | ~30 millió |
| Licenc | Proprietary | Proprietary | MIT (nyílt forráskód) |
A Bitbucket választása két forgatókönyvben indokolt: a csapat már használja az Atlassian ökoszisztémát (Jira + Confluence + Opsgenie), vagy a munka olyan vállalati környezetben folyik, ahol a Bitbucket Data Centre már szabványos eszközként van telepítve. Startupok és nyílt forráskódú projektek számára a GitHub gazdagabb közösséget és ingyenes funkciókat kínál, a GitLab pedig a legjobb saját hosztolású CI/CD-t.
Bitbucket Data Center a platform vállalati verziója, amely saját infrastruktúrára történő telepítésre szolgál. A Cloud verzióval ellentétben a Data Center kínál: klaszterezést (aktív-aktív mód több csomóponthoz), Smart Mirroring-ot (földrajzilag elosztott tükrök a clone/fetch gyorsításához), magas rendelkezésre állást (99,99% uptime klaszterezéssel) és teljes körű naplózást.
A Data Center tartalmazza a Cloud verzió összes funkcióját, de vállalati kiterjesztésekkel. Smart Mirroring automatikusan szinkronizálja a repozitóriumokat a különböző adatközpontokban lévő szerverek között — az Európából és Ázsiából érkező fejlesztők ugyanazt a clone/fetch sebességet kapják, mivel a Git műveletek a legközelebbi tükrön keresztül történnek. A naplók minden műveletet rögzítenek: ki, mikor és milyen IP-ről hozott létre ágat, végzett push-t, egyesített PR-t.
A Bitbucket Data Center licencelése a felhasználók száma alapján történik (nem a repozitóriumoké). A minimális licenc 50 felhasználóra évi 1520 dollártól (standard csomag). A Data Center kötelező azoknál a szervezeteknél, ahol: SLA szükséges a rendelkezésre álláshoz, az adatok nem hagyhatják el az országot (GDPR, 152-FZ), a fejlesztők száma meghaladja az 500 főt, vagy vállalati LDAP/SAML rendszerrel való integráció szükséges.
Bitbucket Snippets — egy eszköz kis kódrészletek tárolására és megosztására. A repozitóriumokkal ellentétben a Snippets-nek nincs teljes Git előzménye, de támogatják a verziókezelést, megjegyzéseket és fork-okat. A Snippets hasznosak megosztott konfigurációkhoz (docker-compose.yml helyi fejlesztéshez), SQL migrációs szkriptekhez és olyan kódpéldákhoz, amelyek nem igényelnek teljes repozitóriumot. Minden Snippet egyedi URL-lel rendelkezik, és hozzárendelhető egy projekthez a Jira-ban.
Bitbucket REST API 2.0 lehetővé teszi a repozitóriumok, Pull Request-ek, ágak és engedélyek programozott kezelését. Az API-t munkafolyamatok automatizálására használják: repozitórium létrehozása sablonból, engedélyek tömeges frissítése, Pull Request statisztikák lekérése és külső CI rendszerekkel való integráció. A sebességkorlát hitelesített felhasználók számára óránként 1000 kérés. Az API támogatja a lapozást a Page és Pagelen paramétereken keresztül nagy adathalmazokkal való munkához.
Gyakran ismételt kérdések
Bitbucket az Atlassian platformja Git kód tárolására CI/CD-vel, kódellenőrzéssel és beépített Jira integrációval. Olyan csapatok használják, amelyek már az Atlassian ökoszisztémában dolgoznak.
Pipelines pipe komponenseket (kész lépéseket az Atlassiantól) használ, egyszerűbb tipikus feladatokhoz. A GitHub Actions szélesebb Marketplace-t és rugalmas mátrix build-eket kínál, de több konfigurációt igényel.
5 fős csapat számára a Bitbucket Cloud Standard havi 15 dollárba kerül (felhasználónként 3 dollár). Az ingyenes csomag csak egy felhasználó számára érhető el korlátozott funkciókkal.
A Bitbucket beépített importálót biztosít a GitHub, GitLab és más platformokról. A felületen válassza az Import repository lehetőséget, adja meg az URL-t és a hitelesítési adatokat — az összes commit és ág átkerül.
Data Center a Bitbucket vállalati verziója saját szerverekre telepítéshez klaszterezéssel, Smart Mirroring-gal és naplózással. Alkalmas több száz fejlesztőt foglalkoztató szervezetek számára adatbiztonsági követelményekkel.
Összefoglaló
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is