Press "Enter" to skip to content

Hogyan lehet egyesíteni a kérést

Kód áttekintése Gitlab CE: Ha egyesíti a jóváhagyásokat nem, de igazán akarom

Az egyik legszükségesebb funkció, amely nem a Gitlab ingyenes verziójában van, az a képesség, hogy ellenőrizzék az egyesítési kérelmet (MR) egy kötelező kód felülvizsgálatával.

A minimális funkcionalitást meg fogjuk hozni magunknak – tiltja az egyesülést, amíg több fejlesztő “hüvelykujj fel”.

Miért van egyáltalán?

Szervezetünk megengedheti magának, hogy vásároljon Gitlab engedélyt. De, mivel a fejlesztés végezzük el egy zárt körben nélkül férnek hozzá az internethez, és van egy szigorú költségvetési tervezés, a vásárlás saját kezelésű engedélyek a kívánt funkciókat is késleltetheti több hónapig, és meg kell teremteni a munka.

Ennek eredményeképpen szükség van:

  • vagy teljesen megtiltják Merge védett ágakat a részét a fejlesztők, de aztán a fejlesztők, akik a jogot, hogy Merge kapni ütközések merginging más MR, mint a bónusz;
  • Vagy adja meg a lehetőséget, hogy ellenőrizetlen fúziókat készítsen a mester-ágával a kód felülvizsgálata nélkül, még akkor is, ha Junior, tegnap felállítva.

Az első dolog elment a Google-ba, hiszi, hogy minden bizonnyal valaki ilyesmi volt (a kód finomítása nélkül), de kiderült, hogy nincs ilyen végrehajtás a közösségi verzióban.

Általános rendszer

Példaként, akkor állítsa be a Merge kérése jóváhagyások a vizsgálati tárháza MyApp:

  1. Hozzon létre egy jelzőt a Gitlab API eléréséhez (keresztül, információt kapunk a “for” és a “ellen” szavazatok számáról)
  2. Add tokenet a gitlab változókhoz
  3. A PayPline hibái esetén egyesítjük (ha a szavazatok nem elégek)
  4. Szavazatok testreszabása Ellenőrizze a Pipplayin CI / CD részeként
  5. Tiltja, hogy elkötelezze magát az ágak biztosítása érdekében, csak az MR-n keresztül végezzük az összes változást
  6. Ellenőrizze, mi történt a végén

1. Hozzon létre egy tokenet az API eléréséhez

A felhasználói beállítások → Hozzáférési tokenek és írási tokenek:

Fiók a tokenhez

Az API-hez való hozzáférés lehetővé teszi, hogy szinte mindegyiket a tárolókkal teheti meg, ezért tanácsot adok Önnek, hogy hozzon létre egy külön Gitlab-fiókot, minimális jogokat adjon a reposteszerzéshez (például riporter), és kapjon egy tokenet erre a fiókra.

2. Add tokeneket a gitlab változókhoz

Például az előző lépésben kaptunk zsetonokat Qmn2y0nouflfexhvd21zs01aqzgk

Nyissa meg a beállításokat → CI / CD → Változók → Változó hozzáadása → Gitlab_token_for_ci

Ennek eredményeként kapunk:

Ezt mind az egy tárolóban, mind a repository csoportban lehet elvégezni.

3. Tegyen egy tilalmat egyesíteni, ha a kollégái a kód felülvizsgálatát követően jóváhagyták

A mi esetünkben az egyesítés tilalma az a tény, hogy az összeszerelő szállítószalag nem megfelelő számú szavazattal visszaadja a hibát.

Menjünk a Beállítások → Alapvető → Egyesítési kérdések → Az egyesítések egyesítése és az összeszerelési vonalak bekapcsolása sikeres végrehajtásra kerül.

4. A csővezeték testreszabása

Ha még nem tette meg a CI / CD szállítószalagot az alkalmazáshozHozzon létre egy fájltárat a gyökérben HabA legegyszerűbb tartalommal:

Külön CI / CD konfigurációs tároló

Azt javasolnám, hogy egy külön tárhelyet készítsen, amelyben egy HAB-fájlt szeretne létrehozni a szállítószalag konfigurálásához. Tehát jobban ellenőrizheti a résztvevők hozzáférését, akik megváltoztathatják az összeszerelő szállítószalagot, és hozzáférhetnek a Tokenhez.

Az új szállítószalagfájl helyét meg kell adni a MyApp Repository elérésével – Beállítások – CI / CD – szerelési vonalak – CI konfiguráció egyéni útvonal – Adjon meg egy új fájlt, például Hab @ gitlab-CE-MR-jóváhagyások / CI

Tipp: Használjon Linter-t a Gitlab CI fájlok módosításáhozMég akkor is, ha egy, akkor egy jó segítő munkát végez az MR-n keresztül, az összes változás futtatása a Pipley fájlokban a Linteren keresztül. Ha téved a YAML fájlszintaxisban, akkor nem hagyja abba, hogy megtörje a munkatársat, és csak blokkolja az egyesülést.

Példa konténerek lintreters hogy lehet beágyazni a Pipeline:

Hab
Hab

És a vizsgálati szakasz példája:

Továbbra is több paramétert adhat a paipline-hoz, hogy minden aggódik:

A Need_Votes változó meghatározza, hogy az “ujjak felfelé” kell lennie az MR-nél, hogy elérje az egyesülést. Az egyik olyan érték, amely megegyezik azzal, hogy önmagad jóváhagyhatja, hogy “tetszik”.

Tartalmazza a tesztfázis ellenőrzését a “szereti” számának ellenőrzését.

A HAB példáján a legegyszerűbb csővezeték

Hab-tartalom

Tudjon meg többet arról, hogy mi történik az ellenőrzés során:

  • A korlátozás megállapítható, hogy a csekk csak akkor lesz, ha MR MRE MASTER vagy RELEASE / * fióktelepek létrehozásakor
  • A Gitlab API használatával megkapjuk a “szereti” és a “dizszerű” számát
  • Számítsa ki a pozitív és a negatív válaszok közötti különbséget
  • Ha a különbség kisebb, mint az általunk adott értékek a Need_votes-ben, majd blokkolja az egyesülés képességét

5. Tiltja a védett fióktelepi bizottságokat

Meghatározzuk az ágazatokat, amelyekre vonatkozóan kódolnunk kell, és jelezzük, hogy csak az úrral együttműködhetünk velük.

Ehhez menjen a Beállítások → Repository → Védett fiókok:

6. Jelölje be

Állítsa be a Need_votes: 0

Hogy Mr és Set “dizloike”.

Az összeszerelési naplókban:

Most fogadok “Mint”, és futtatom az újraellenőrzést:

Comments are closed, but trackbacks and pingbacks are open.