Lokális repók importálása Gitea-be
Bevezetés
A Gitea komolyabb használata előtt érdemes végigolvasni az összes beállítási lehetőséget, ugyanis ez a kulcs sokmindenhez, bizonyos dolgok sehol máshol nincsenek dokumentálva. A Gitea-s doksi nem valami segítőkész, nem ír külön a funkciókról és azok használatáról, megkötéseiről. Így van ez a repó importálással is.
Az alapszitu az, hogy a Gitea gitea-repositories
mappájába sajnos nem elég és nem is célravezető csak simán bemásolni egy bare repository-t. Ugyanis a Gitea csak azokat a repókat kezeli, amiket ő nyilvántartásba vett az adatbázisában, és egyébként is saját Git hook-okat használ. Vagyis a Gitea UI-ról kell őket létrehozni, nincs mese.
Migrálás
Szerencsére a felület biztosít egy migrálás opciót (fent a ”+” ikon lenyíló menüjében). Ennek a funkciónak azonban vannak trükkjei.
Egyrészt, mint ahogy pár sikertelen próbálkozás után egy GitHub issue-ból megtudtam, az SSH nem támogatott ennél a funkciónál.
Másrészt, kínjában az ember kipróbálja már a local path-t is, amikre a rendszer szintén visszapofázik, miszerint ez nem engedélyezett.
A Site Administration > User Accounts oldalon a saját fiókom szerkesztésénél, a lap alján van egy May import local repositories jelölőnégyzet. Ha ezt bepipálom és elmentem, csak egy pillanatig érzem a remény édes ízét, mert amint újratöltődik a lap, a pipa eltűnik. És persze az importálás nem működik. Mindennek ellenére az adatbázisban (megnéztem), a megfelelő flag-et átbillentette 1-esre, tehát elmentette, csak nem jeleníti meg…
…mert van egy globális tiltás is. És ezt én egyetlen egy helyen láttam leírva (amit jóval azután néztem meg, hogy beletőrödtem a kudarcba), a Config Cheat Sheet-en, ahol felsorolja az összes paramétert:
IMPORT_LOCAL_PATHS
: false: Prevent all users (including admin) from importing local path on server.
Vagyis:
- A
custom/conf/app.ini
konfigfájlban engedélyezni kell globálisan a lokális importot:
[security]
IMPORT_LOCAL_PATHS = true
- A felületen, a Site Administration > User Accounts alatt a saját fiókunk szerkesztésénél (Edit) egyénileg is engedélyezni kell ezt, a May import local repositories jelölőnégyzet bepipálásával tehetjük meg
- Ezután már megadhatunk a migrálásnál helyi útvonalat, pl.
/home/me/bare-repos/repo1
Migráláskor a Gitea gyakorlatilag csinál egy másolatot a megadott repóról a gitea-repositories
-ba és regisztrálja az adatbázisba.
Git módszer
Természetesen Git parancsokkal is migrálhatunk, kívülről:
git clone --mirror OLD_REPO_URL
cd OLD_REPO.git
git remote set-url origin http://GITEA_DOMAIN/GITEA_USER/NEW_REPO.git
git push --mirror origin
Viszont a push előtt a fentebb írtak miatt előbb létre kell hozni a repót a Gitea webes felületén.