
GitLab 11.10 Ρ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°ΠΌΠΈ Π½Π° ΡΠ°Π±Π»ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°ΠΌΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΡΡΠΎΠΊΠ°ΠΌ Π² ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°Ρ .
Π£Π΄ΠΎΠ±Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ² Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
GitLab ΠΏΡΠΎΠ΄Π΅Π»Π°Π» Π±ΠΎΠ»ΡΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° DevOps. Π ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠ±Π·ΠΎΡ ΡΡΠ°ΡΡΡΠ° ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ².
ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° , ΡΡΠΎ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΡΡΠ°Π·Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ , Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ.
ΠΠ°ΠΏΡΡΠΊ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²
Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΈ ΡΠ΅Π»Π΅Π²ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΡΠ°Π·Π½Π΅ΡΠ΅Π½Ρ, ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Π½ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ . Π’Π°ΠΊ Π²Ρ Π±ΡΡΡΡΠΎ Π²ΡΡΠ²ΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΠ²ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΠ°ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡΡΠ΅Π΅ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ .
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ
Π GitLab 11.10 ΡΡΠ°Π»ΠΎ Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π° ΠΈ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². Π ΠΌΡ Π²Π½Π΅Π΄ΡΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°ΠΌ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ΅Π½Π·Π΅Π½Ρ ΠΌΠΎΠ³ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΡ, ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΡΠ°Π·Ρ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ ΠΏΡΡΠΌΠΎ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². ΠΠ°ΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΡΠΎ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ, ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΡΠΎΡΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ , ΡΠΊΠ°Π·ΡΠ²Π°Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΠ΄Π°Π»ΠΈΡΡ, Π° ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°ΡΠΈ ΠΎΡΠ·ΡΠ²Ρ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ!
Π ΡΡΠΎ Π΅ΡΡ Π½Π΅ Π²ΡΡ...
Π ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΡΡΠ°ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, , Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ , ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ . ΠΠΈΠΆΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ .
Π‘Π°ΠΌΡΠΉ ΡΠ΅Π½Π½ΡΠΉ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΡΠ° () β Π’Π°ΠΊΡΡ ΠΠΎΠ³ΡΡΠΈ
Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΡΠ΅ ΡΠ°ΠΌΡΠΌ ΡΠ΅Π½Π½ΡΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠΌ ΡΡΠ°Π» Π’Π°ΠΊΡΡ ΠΠΎΠ³ΡΡΠΈ (). Π’Π°ΠΊΡΡ : ΠΏΠΎΠΏΡΠ°Π²ΡΡ Π±ΡΠ³ΠΎΠ²Π΅, Π·Π°Π²ΡΡΡΠ²Π°Ρ Π½Π΅Π΄ΠΎΠ²ΡΡΡΠ΅Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ!
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° GitLab 11.10
ΠΡΠΎΡΠ΅ΡΠΈ Π½Π° ΡΠ°Π±Π»ΠΎΡΠΎ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
PREMIUM, ULTIMATE, SILVER, GOLD
ΠΠ° ΡΠ°Π±Π»ΠΎΡΠΎ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² GitLab ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ Π² ΡΠ΅Π»ΠΈΡ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° GitLab. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π΅Π΄ΠΈΠ½ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°.
Π ΡΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ
ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΠ°ΡΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π° ΡΠ°Π±Π»ΠΎΡΠΎ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. Π‘Π΅Π³Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π²ΠΈΠΆΠ΄Π°Ρ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ Π½ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ β Π² Π΅Π΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΡΠΎΡΠ΅ΡΠΈ Π·Π° ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ
PREMIUM, ULTIMATE, SILVER, GOLD
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΈΠ·Ρ ΠΎΠ΄Π½Π°ΡΠ° ΠΊΠ»ΠΎΠ½ΠΊΠ° ΡΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ²Π° ΠΎΡ ΡΠ΅Π»Π΅Π²Π°ΡΠ°, Π°ΠΊΠΎ Π½Π΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ . Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ, ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½Π°ΡΠ° ΠΈ ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΊΠ»ΠΎΠ½ΠΊΠ° ΡΠ° βΠ·Π΅Π»Π΅Π½ΠΈβ ΠΈ Π½ΡΠΌΠ° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΏΡΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΏΡΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ Π½Π°ΡΡΡΠΏΠ²Π° Π³ΡΠ΅ΡΠΊΠ° ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅.
ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ Π·Π° ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ²Π° Π²ΡΡΠ·ΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΎΡ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½Π°ΡΠ° ΠΈ ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΊΠ»ΠΎΠ½ΠΊΠ°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΡΠ΅Ρ ΠΏΠΎ ΡΠ°Π·ΠΈ Π²ΡΡΠ·ΠΊΠ° ΠΈ Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΠΌΠ΅, ΡΠ΅ ΠΎΠ±ΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ.
ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ Π·Π° ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ (Π² ΠΊΠ°ΠΊΡΠ²ΡΠΎ ΠΈ Π΄Π° Π΅ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅Ρ) ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°ΡΡΠ½ΠΈ GitLab ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»ΠΈ Π²Π΅ΡΡΠΈΡ 11.8 ΠΈΠ»ΠΈ ΠΏΠΎ-ΡΡΠ°ΡΠ°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ, Π·Π° Π΄Π° Π½Π΅ Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. . Π’ΠΎΠ²Π° Π½Π΅ Π²Π»ΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡΠ΅ GitLab ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»ΠΈ.
ΠΡΠ΅Π΄Π»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π°
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΡΠΈ ΡΡΠ²ΠΌΠ΅ΡΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎ Π·Π°Π±Π΅Π»ΡΠ·Π²Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡ Π²Π΅ΡΡΠΈΡ GitLab 11.6 ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ Π·Π° Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄.
Π Π²Π΅ΡΡΠΈΡ 11.10 Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ Π½Π° Π΄ΠΈΡ-Π° Π½Π° ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π·Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π°, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Ρ ΠΏΡΠ°Π²Π° Π·Π° Π·Π°ΠΏΠΈΡ Π² ΠΈΠ·Ρ ΠΎΠ΄Π½Π°ΡΠ° ΠΊΠ»ΠΎΠ½ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ΅ Ρ Π΅Π΄Π½ΠΎ Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ΡΠΎ, ΠΊΠ°ΠΊΡΠΎ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ.
ΠΡΠΈΠΊΠ΅ΡΠΈ Π² Π΅Π΄Π½Π° ΠΎΠ±Π»Π°ΡΡ
PREMIUM, ULTIMATE, SILVER, GOLD
Π‘ Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅ Π² Π΅Π΄Π½Π° ΠΎΠ±Π»Π°ΡΡ Π΅ΠΊΠΈΠΏΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°ΡΠΈ ΡΠ΅ Π΅ΡΠΈΠΊΠ΅ΡΠΈ (Π² Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΠΎΠ±Π»Π°ΡΡ) Π·Π° Π·Π°Π΄Π°ΡΠ°, ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΅ΠΏΠΈΠ·ΠΎΠ΄ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° ΠΈΠ»ΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠΎΠΊ. Π’Π΅ ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠ²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Ρ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ Π² Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠ°.
ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΠΎΠ»Π΅ Π² Π·Π°Π΄Π°ΡΠΈΡΠ΅, Π·Π° Π΄Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°, ΠΊΡΠΌ ΠΊΠΎΡΡΠΎ ΡΠ΅ Π½Π°ΡΠΎΡΠ²Π°Ρ Π²Π°ΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΡΠΊΠ° Π·Π°Π΄Π°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΡΠ²ΡΡΠ·Π°Π½Π° ΡΠ°ΠΌΠΎ Ρ Π΅Π΄Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Π΅ΡΠΈΠΊΠ΅ΡΠΈ platform::iOS, platform::Android, platform::Linux ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡ. ΠΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠ°ΠΊΡΠ² Π΅ΡΠΈΠΊΠ΅Ρ ΠΊΡΠΌ Π·Π°Π΄Π°ΡΠ°, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π΅ Π΄ΡΡΠ³ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π΅ΡΠΈΠΊΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Ρ platform::.
ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π΅ΡΠΈΠΊΠ΅ΡΠΈ workflow::development, workflow::review ΠΈ workflow::deployed, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π²Π°ΡΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π² Π΅ΠΊΠΈΠΏΠ° Π²ΠΈ. ΠΠΊΠΎ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π²Π΅ΡΠ΅ ΠΈΠΌΠ° Π΅ΡΠΈΠΊΠ΅Ρ workflow::development, Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΊΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π² ΡΡΠ°Π΄ΠΈΠΉ workflow::review, ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ»Π°Π³Π° Π½ΠΎΠ² Π΅ΡΠΈΠΊΠ΅Ρ, Π° ΡΡΠ°ΡΠΈΡΡ (workflow::development) Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°. Π’ΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΏΠΈΡΡΡΠΈ Ρ Π΅ΡΠΈΠΊΠ΅ΡΠΈ Π½Π° Π΄ΡΡΠΊΠ°ΡΠ° ΡΡΡ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π½Π° Π²Π°ΡΠΈΡ Π΅ΠΊΠΈΠΏ. Π‘Π΅Π³Π° ΡΠ»Π΅Π½ΠΎΠ²Π΅ΡΠ΅ Π½Π° Π΅ΠΊΠΈΠΏΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΡΡ Ρ Π΄ΡΡΠΊΠ°ΡΠ° ΡΡΡ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ, ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π² ΡΠ°ΠΌΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
ΠΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΡΠΈ ΠΎΠ±ΠΈΡΠ°ΠΉΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Ρ CI ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ, ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π΅Π΄ΠΈΠ½ Π΅ΡΠΈΠΊΠ΅Ρ. ΠΠΎΡΠ°Π΄ΠΈ Π½Π°ΡΠΈΠ½Π° Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Docker, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π΄Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, Π½ΠΎ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ Π·Π°Π΅ΠΌΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΠ΅Ρ. ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° -m Ρ registry-garbage-collect, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΠ·ΠΎ Π΄Π° ΠΈΠ·ΡΡΠΈΠ΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΠ΅ ΡΠ΅Π½Π½Π° ΠΌΡΡΡΠΎ.
ΠΠ°ΠΊΡΠΏΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΌΠΈΠ½ΡΡΠΈ Π·Π° CI Runner
BRONZE, SILVER, GOLD
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Ρ ΠΏΠ»Π°ΡΠ΅Π½ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π½Π° GitLab.com (Gold, Silver, Bronze) Π²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π·Π°ΠΊΡΠΏΡΡ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΌΠΈΠ½ΡΡΠΈ Π·Π° CI Runner. ΠΠΎ-ΡΠ°Π½ΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ Π²ΠΏΠΈΡΠ²Π°Ρ Π² ΠΊΠ²ΠΎΡΠ°ΡΠ°, ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π° ΠΎΡ ΠΏΠ»Π°Π½Π°. Π‘ ΡΠΎΠ²Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° Π·Π°ΠΊΡΠΏΠΈΡΠ΅ ΠΌΠΈΠ½ΡΡΠΈ ΠΈΠ·Π²ΡΠ½ ΠΊΠ²ΠΎΡΠ°ΡΠ°, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ.
Π‘Π΅Π³Π° 1000 ΠΌΠΈΠ½ΡΡΠΈ ΡΡΡΡΠ²Π°Ρ 8 Π΄ΠΎΠ»Π°ΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ Π·Π°ΠΊΡΠΏΠΈΡΠ΅ Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΌΠΈΠ½ΡΡΠΈ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π°Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ ΡΡΠ»Π°ΡΠ° ΠΌΠ΅ΡΠ΅ΡΠ½Π° ΠΊΠ²ΠΎΡΠ°, Π° ΠΎΡΡΠ°ΡΡΠΊΡΡ ΠΎΡ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΌΠΈΠ½ΡΡΠΈ ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΌΠ΅ΡΠ΅Ρ. Π ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π² Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΈΡΠ΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅.
ΠΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Π½ Auto DevOps
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
Π‘ Auto DevOps Π΅ΠΊΠΈΠΏΠΈΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΊΡΠΌ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ DevOps ΠΏΠΎΡΡΠΈ Π±Π΅Π· ΡΡΠΈΠ»ΠΈΡ. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ GitLab 11.10, Π²ΡΡΠΊΠ° Π·Π°Π΄Π°ΡΠ° Π² Auto DevOps ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΊΠ°ΡΠΎ . ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² GitLab CI, Π·Π° Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΠ°Π΄ΠΈΠΈ Π½Π° Auto DevOps ΠΈ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ²ΠΎΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠ°ΠΉΠ» gitlab-ci.yml. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π² upstream.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π½ΠΎΠ²Π΅ΡΠ΅ Π½Π° Π΅ΠΊΠΈΠΏΠ° Π² GitLab.com ΡΡΠ΅Π· SCIM
SILVER, GOLD
ΠΠΎ-ΡΠ°Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ»Π΅Π½ΡΡΠ²ΠΎΡΠΎ Π² Π³ΡΡΠΏΠΈ Π² GitLab.com ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΡΠ½ΠΎ. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ SAML SSO ΠΈ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΡΠ»Π΅Π½ΡΡΠ²ΠΎΡΠΎ ΡΡΠ΅Π· SCIM, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅, ΠΈΠ·ΡΡΠΈΠ²Π°ΡΠ΅ ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π² GitLab.com.
Π’ΠΎΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΠ΅Π»ΠΈ. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ Π΅Π΄ΠΈΠ½Π΅Π½ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΈΡΡΠΈΠ½Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Azure Active Directory, ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΠ΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ΅Π· ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Ρ, Π° Π½Π΅ ΡΡΡΠ½ΠΎ.
ΠΡ ΠΎΠ΄ Π² GitLab.com ΡΡΠ΅Π· SAML ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΠ΅Π»
SILVER, GOLD
ΠΠΎ-ΡΠ°Π½ΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° SAML SSO Π·Π° Π³ΡΡΠΏΠ°, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π²Π»ΠΈΠ·Π° Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° GitLab ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Ρ. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²Π»ΠΈΠ·Π°ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠ΅Π· SSO ΠΊΠ°ΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π½Π° GitLab, ΡΠ²ΡΡΠ·Π°Π½ Ρ Π½Π°ΡΡΡΠΎΠ΅Π½Π°ΡΠ° Π³ΡΡΠΏΠ°.
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΡΡΡΠ±Π²Π° Π΄Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠΈ Π΄Π²Π° ΠΏΡΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ ΠΈΠΌ Π΅ ΠΏΠΎ-ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ SAML SSO Π·Π° GitLab.com.
ΠΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² GitLab 11.10
Π‘Ρ Π΅ΠΌΠ° Π½Π° ΠΏΠΎΠ΄Π΅ΠΏΠΈΠΊΠΈ
ULTIMATE, GOLD
Π ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ ΠΏΠΎΠ΄Π΅ΠΏΠΈΠΊΠΈ (Π΅ΠΏΠΈΠΊΠΈ Π½Π° Π΅ΠΏΠΈΡΠΈΡΠ΅), Π·Π° Π΄Π° Π²ΠΈ Π΅ ΠΏΠΎ-ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅. ΠΠΎΠ΄Π΅ΠΏΠΈΠΊΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΈΡ Π΅ΠΏΠΈΠΊ.
Π ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΈΡ Π΅ΠΏΠΈΠΊ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΡ Π΅ΠΌΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π΅ΠΏΠΈΠΊΠΈΡΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ Π΅ΠΊΠΈΠΏΠΈΡΠ΅ Π΄Π° Π²ΠΈΠΆΠ΄Π°Ρ Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π½Π° ΠΏΠΎΠ΄Π΅ΠΏΠΈΠΊΠΈΡΠ΅ ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΠ·ΡΠΊΠ°ΡΠ°ΡΠΈ Π΅ΠΊΡΠ°Π½ΠΈ Π½Π° ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠΈΡΠ΅
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
Π ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΈ Π΅ΠΊΡΠ°Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π°Ρ ΠΏΡΠΈ Π·Π°Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° ΠΊΡΡΡΠΎΡΠ° Π½Π°Π΄ Π»ΠΈΠ½ΠΊΠ° Π½Π° ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°. ΠΠΎ-ΡΠ°Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°, Π° ΡΠ΅Π³Π° ΠΈ ΡΡΠ°ΡΡΡΠ° Π½Π° ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°, ΡΡΠ°ΡΡΡΠ° Π½Π° CI-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° ΠΈ ΠΊΡΠ°ΡΡΠΊ URL.
Π Π±ΡΠ΄Π΅ΡΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²Π°ΠΆΠ½ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, , Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ Π²ΡΠ²Π΅Π΄Π΅ΠΌ ΠΈΠ·ΡΠΊΠ°ΡΠ°ΡΠΈ Π΅ΠΊΡΠ°Π½ΠΈ Π·Π° .
Π€ΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠΈΡΠ΅ ΠΏΠΎ ΡΠ΅Π»Π΅Π²ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
Π Π°Π±ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π° Git Π·Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ΡΠΎ ΠΈΠ»ΠΈ Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠΎΡΡΡΠ΅Ρ ΡΠ΅ΡΡΠΎ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ β Π·Π° Π²Π½Π°ΡΡΠ½Π΅ Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, stable-11-9) ΠΈΠ»ΠΈ ΠΏΡΠ΅Ρ
ΠΎΠ΄ ΠΎΡ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ ΠΊΡΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, integration), Π½ΠΎ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΡΡ ΠΌΠ΅ΡΠ΄ΠΆ-Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ΅Π·ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΡΡΠ΅Π΄ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΠΌΠ΅ΡΠ΄ΠΆ-Π·Π°ΡΠ²ΠΊΠΈ.
Π‘ΠΏΠΈΡΡΠΊΡΡ Ρ ΠΌΠ΅ΡΠ΄ΠΆ-Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈ Π³ΡΡΠΏΠΈ Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΈΠ»ΡΡΠΈΡΠ° ΠΏΠΎ ΡΠ΅Π»Π΅Π²ΠΈΡ ΠΊΠ»ΠΎΠ½ Π½Π° ΠΌΠ΅ΡΠ΄ΠΆ-Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, Π·Π° Π΄Π° Π΅ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ, Π₯ΠΈΡΡΡΠΊΠΈ Π‘Π°ΡΠΎ ()!
ΠΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ ΠΈ ΠΌΠ΅ΡΠ΄ΠΆ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ΅Π½ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π±ΡΠ³Π²Π°ΠΌΠ΅ Π΄ΡΠ»Π³ΠΎΡΡΠ°ΠΉΠ½ΠΈ ΠΊΠ»ΠΎΠ½ΠΈ Π² ΠΏΠΎΠ»Π·Π° Π½Π° ΠΌΠ°Π»ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΊΠ»ΠΎΠ½ΠΈ Ρ Π΅Π΄ΠΈΠ½ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊ. ΠΠ°Π»ΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΡΠ΅Π»Π΅Π²ΠΈΡ ΠΊΠ»ΠΎΠ½, Π½ΠΎ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠΈΡΠΊΡΠ²Π°ΠΌΠ΅ Π΄Π° Π½Π°ΡΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ°.
Π ΡΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ GitLab ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π½ΠΎΠ²ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π² Git, Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΠΌΠ΅ΡΠ΄ΠΆ-Π·Π°ΡΠ²ΠΊΠΈ, Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π»Π΅Π²ΠΈΡ ΠΊΠ»ΠΎΠ½ ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠ΄ΠΆ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ΅Π½ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π² ΠΊΠ»ΠΎΠ½Π°.
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π²ΡΠ½ΡΠ½ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
GitLab ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ²ΡΡΠΈ Prometheus (Π½Π° Π½ΠΈΠ²ΠΎ ΡΡΠ΅Π΄Π°, ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ), Π½ΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ»ΠΎΠΆΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈΠ»ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³. Π ΡΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΅ΠΊΠΈΠΏΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΅Π΄Π½ΠΎ API Π½Π° Prometheus, ΠΊΠΎΠ΅ΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° Ρ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠ»ΡΠ³ΠΈ ΠΊΠ°ΡΠΎ Grafana.
Π‘ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π² Wiki ΠΏΠΎ Π΄Π°ΡΠ° Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
Π Wiki ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ΠΊΠΈΠΏΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ Π΄ΡΡΠ³Π° Π²Π°ΠΆΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π°ΡΠ΅Π΄ Ρ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈ Π·Π°Π΄Π°ΡΠΈΡΠ΅. Π ΡΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΡΠΊΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π² Wiki ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΎΡΡΠΈΡΠ° ΠΏΠΎ Π΄Π°ΡΠ° Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΠΈ Π·Π°Π³Π»Π°Π²ΠΈΠ΅, Π·Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ Π±ΡΡΠ·ΠΎ Π½Π°ΡΠΊΠΎΡΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅.
ΠΠ°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅, Π·Π°ΡΠ²Π΅Π½ΠΈ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ°
ULTIMATE, GOLD
GitLab ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΡΠ΅ ΡΠ»Π΅Π΄ΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΡΡ Kubernetes Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΈΡΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ Ρ ΡΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π·Π°ΡΠ²Π΅Π½ΠΈΡΠ΅ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΡΠ΅ΡΡΡΡΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΈ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π·Π° Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΡΡΠ°Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°Π½Π΅Π»Π° Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Grafana
CORE, STARTER, PREMIUM, ULTIMATE
ΠΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΡΠ»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΡΠ° GitLab. ΠΠΎ-ΡΠ°Π½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΌΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΡΠ΅Π· Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ Grafana. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡ ΠΌΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΠΈΡΠ΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ NGINX.
SAST Π·Π° Elixir
ULTIMATE, GOLD
ΠΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΡΠ°Π·ΡΠΈΡΡΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π΅Π·ΠΈΡΠΈ ΠΈ Π΄Π° Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ°Π²Π°ΠΌΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ΅ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ. Π ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ Π²ΠΊΠ»ΡΡΠΈΡ ΠΌΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π½Π° .
ΠΡΠΊΠΎΠ»ΠΊΠΎ Π·Π°ΡΠ²ΠΊΠΈ Π² Π΅Π΄ΠΈΠ½ Π³ΡΠ°ΡΠΈΠΊ
PREMIUM, ULTIMATE, SILVER, GOLD
Π GitLab ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ, Π·Π° Π΄Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΡΠ±ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ. Π§Π΅ΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠ°ΡΠ°, ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·Π²Π΅Π΄Π΅ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° Π΅Π΄ΠΈΠ½ Π³ΡΠ°ΡΠΈΠΊ. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ, ΠΈΠΌΠ° ΡΠ°ΠΊΠ°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ.
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ DAST Π½Π° ΠΏΠ°Π½Π΅Π»Π° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° Π³ΡΡΠΏΠ°ΡΠ°
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° (Dynamic Application Security Testing, DAST) Π½Π° ΠΏΠ°Π½Π΅Π»Π° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° Π³ΡΡΠΏΠ°ΡΠ° Π² Π΄ΠΎΠ±Π°Π²ΠΊΠ° ΠΊΡΠΌ SAST, ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ Π² ΠΎΡΡΠ΅ΡΠ° Π·Π° ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ
ULTIMATE, GOLD
Π ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ Π² ΠΎΡΡΠ΅ΡΠ° Π·Π° ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ β Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ Π·Π°ΡΠ΅Π³Π½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (ΡΡΠ½ΠΊΡΠΈΡ Clair) Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ: ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (Ρ Π»ΠΈΠ½ΠΊ ΠΊΡΠΌ mitre.org) ΠΈ Π·Π°ΡΠ΅Π³Π½Π°ΡΠΎ Π½ΠΈΠ²ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, debian:8).
ΠΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΠΈΠΏ ΠΎΡΡΠ΅Ρ ΠΏΠΎ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΡΠ»ΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ
PREMIUM, ULTIMATE, SILVER, GOLD
GitLab Π²Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠΈΠΏΠ° ΠΎΡΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π²ΠΊΠ»ΡΡΠ²Π°Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΡΠ»ΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ: ΠΎΡ ΠΎΡΡΠ΅ΡΠΈ Π·Π° ΠΈ Π² Π΅ΡΠ°ΠΏΠ° Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΠΎ ΠΈ Π² Π΅ΡΠ°ΠΏΠ° Π½Π° Π·Π°ΡΠΈΡΠ°.
Π ΠΌΠ°ΠΊΠ°Ρ ΡΠ΅ ΡΠΎΠ²Π° ΡΠ° Π²Π°ΠΆΠ½ΠΈ ΠΎΡΡΠ΅ΡΠΈ, ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΡΡΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°. Π GitLab 11.10 ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΌΠ΅ ΠΎΡΡΠ΅ΡΠΈ ΠΏΠΎ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΡΠ»ΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠ°ΠΊΠ²Π° ΠΏΡΠΎΡΡ Π΄Π²ΠΎΠΉΠΊΠ° ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ. Π’Π°ΠΊΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ°ΡΡΡΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ΠΈ Π² ΠΏΡΠΎΡΡΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΡΠ»ΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π°Π΅Π΄Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΎΡΡΠ΅ΡΠΈ.
ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΡΠ»ΡΠΈΠΌΠΎΠ΄ΡΠ»Π½ΠΈ Maven ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π·Π° ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
ULTIMATE, GOLD
Π ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ ΠΌΡΠ»ΡΠΈΠΌΠΎΠ΄ΡΠ»Π½ΠΈΡΠ΅ Maven ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° GitLab Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠΎ-ΡΠ°Π½ΠΎ, Π°ΠΊΠΎ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΈΠΌΠ°ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π΄ΡΡΠ³ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ» Π½Π° ΡΡΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ, ΡΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ ΠΎΡ ΡΠ΅Π½ΡΡΠ°Π»Π½ΠΎΡΠΎ Maven Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. Π‘Π΅Π³Π° ΠΌΡΠ»ΡΠΈΠΌΠΎΠ΄ΡΠ»Π΅Π½ Maven ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Ρ Π΄Π²Π° ΠΌΠΎΠ΄ΡΠ»Π° ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ . ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° Π΅Π΄Π½ΠΎ Π½ΠΈΠ²ΠΎ Π²Π΅ΡΠ΅ Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π² Π»ΠΎΠΊΠ°Π»Π½ΠΎΡΠΎ Maven Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ.
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΠΏΡΡΡ Π·Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ Π² CI
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ GitLab Runner ΠΊΠ»ΠΎΠ½ΠΈΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π²Π»ΠΎΠΆΠ΅Π½ ΠΏΡΡ Π² $CI_BUILDS_DIR. ΠΠΎ Π·Π° Π½ΡΠΊΠΎΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Golang, ΠΊΠΎΠ΄ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½.
Π GitLab 11.10 Π²ΡΠ²Π΅Π΄ΠΎΡ
ΠΌΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° GIT_CLONE_PATH, Ρ ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΡΡ, ΠΊΡΠ΄Π΅ΡΠΎ GitLab Runner ΠΊΠ»ΠΎΠ½ΠΈΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°Π΄Π°ΡΠ°ΡΠ°.
ΠΡΠΎΡΡΠ° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° Π·Π°ΡΠΈΡΠ΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
GitLab ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π°ΡΠΈΠ½Π° ΠΈ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π² GitLab CI/CD. ΠΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π½Π°Ρ Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΠ±ΠΎΡΠΊΠΈΡΠ΅ ΠΏΠΎ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ.
GitLab ΠΏΡΠΈΠ΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΡΠΊΠ° ΠΈ ΠΎΠ΄ΠΈΡΠ° ΠΈ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ°. Π GitLab 11.10 Π²ΡΠ²Π΅Π΄ΠΎΡ ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΌΠ°ΡΠΊΠΈΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅, Π΄ΠΎΠ±Π°Π²ΡΠΉΠΊΠΈ Π½ΠΈΠ²ΠΎ Π½Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° GitLab Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΠΎΠΊΠ΅Π½ΠΈ.
ΠΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Auto DevOps Π½Π° Π½ΠΈΠ²ΠΎ Π³ΡΡΠΏΠ°
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
Π‘ Auto DevOps Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° GitLab.com ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π΅Π· ΡΡΠΈΠ»ΠΈΡ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΡΡΡ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ DevOps ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ β ΠΎΡ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π΄ΠΎ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ°.
ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ GitLab 11.10, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ΅ ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°ΡΠ΅ Auto DevOps Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π² Π΅Π΄Π½Π° Π³ΡΡΠΏΠ°.
ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ° Π·Π° Π»ΠΈΡΠ΅Π½Π·ΠΈ
STARTER, PREMIUM, ULTIMATE
ΠΠ° ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅, ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡ ΠΌΠ΅ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠ΅ Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΈΡ ΠΏΠ°Π½Π΅Π» ΠΈ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Ρ ΠΌΠ΅ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡΠ΅ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ.
ΠΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ° Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈ Π·Π° Kubernetes Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½ΡΠΈ
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΠ° ΠΏΠ°Π½Π΅Π»ΠΈΡΠ΅ Π·Π° Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½ΡΠΈ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ Kubernetes Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½ΡΠΈ.
Π ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡ
ΠΌΠ΅ Π½Π°ΡΠΈΠ½Π° Π½Π° ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅ Ρ Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½ΡΠΈΡΠ΅. Π‘Π΅Π³Π° ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΏΠΎ app.example.com/app ΠΈ app.example.com/env ΠΈΠ»ΠΈ app. Π’ΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π·Π° ΠΈΠ·Π±ΡΠ³Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΏΡΠΈ ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΠΈΡΠΊΠΎΠ²Π΅ ΠΎΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈ ΡΠ°Π·Π³ΡΡΡΠ°Π½ΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² Π²Π΅ΡΡΠΈΡ GitLab 12.0 Π½ΠΈΠ΅ , ΠΈ ΡΡΠ²ΠΏΠ°Π΄Π°Π½Π΅ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎ ΠΏΠΎ app.example.com/app ΠΈ app.example.com/env.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈ Π² Kubernetes
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° Π½Π° Kubernetes Π² GitLab ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° RBAC Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π°ΠΊΠ°ΡΠ½Ρ Π½Π° ΡΡΠ»ΡΠ³Π° ΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Ρ ΠΈΠΌΠ΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° GitLab. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ ΡΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, Π·Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ, ΡΠ΅Π·ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΡΠ΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅.
ΠΡΠΈ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ Π½Π° Kubernetes GitLab CI ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΡΠ΅Π·ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΏΡΠ΅Π΄ΠΈ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ.
ΠΡΡΠΏΠΎΠ²ΠΈ ΡΠ°Π½Π΅ΡΠΈ Π·Π° ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π³ΡΡΠΏΠ°
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΠ»ΡΡΡΠ΅ΡΠΈΡΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ Π³ΡΡΠΏΠ° Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° GitLab Runner. Kubernetes ΡΠ°Π½Π΅ΡΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π³ΡΡΠΏΠ° ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ Π·Π° Π΄ΡΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠ°ΡΠΎ Π³ΡΡΠΏΠΎΠ²ΠΈ ΡΠ°Π½Π΅ΡΠΈ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ Ρ Π΅ΡΠΈΠΊΠ΅ΡΠΈ cluster ΠΈ kubernetes.
ΠΡΠΎΡΡ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈ Knative
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
Π€ΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°Π·Π³ΡΡΡΠ°Π½ΠΈ Ρ , ΡΠ΅Π³Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ Π±ΡΠΎΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΠΎΡΠ΄Π΅Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ° ΡΠ΅Π»ΡΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° Prometheus Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Knative.
ΠΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ git clean Π·Π° Π΄ΠΆΠΎΠ±ΠΎΠ²Π΅ΡΠ΅ Π½Π° GitLab CI/CD
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ GitLab Runner ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° git clean Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΆΠΎΠ± Π² GitLab CI/CD. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ GitLab 11.10, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅, ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° git clean. Π’ΠΎΠ²Π° Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π° Π΅ΠΊΠΈΠΏΠΈ Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°Π½Π΅ΡΠΈ, Π° ΡΡΡΠΎ ΠΈ Π·Π° Π΅ΠΊΠΈΠΏΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠ±ΠΈΡΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΎΡ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. Π‘Π΅Π³Π° ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅. ΠΠΎΠ²Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° GIT_CLEAN_FLAGS ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈΠΌΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ -ffdx ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° [git clean](https://git-scm.com/docs/git-clean).
ΠΡΠ½ΡΠ½Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π² Core
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΠ°ΡΠΈΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ Π²ΡΠ½ΡΠ΅Π½ ΡΠ΅ΡΡΡΡ Π·Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π·Π° Π΄ΠΎΡΡΡΠΏ Π² ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ°Π½ΠΈΡ Π΄Π° ΠΎΡΠ²ΠΎΡΠΈΠΌ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π² Core. Π Π°Π΄Π²Π°ΠΌΠ΅ ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ Π²ΡΠ½ΡΠ½Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π·Π° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° Core, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π² Π³ΡΡΠΏΠΈ Π² Core
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
Π ΠΎΠ»ΡΡΠ° Developer ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π² Π³ΡΡΠΏΠΈ , Π° ΡΠ΅Π³Π° ΡΠΎΠ²Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π² Core. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π΅ ΠΊΠ»ΡΡΠΎΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π° ΡΠ°Π±ΠΎΡΠ° Π² GitLab, ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π² Core, ΡΡΠ°ΡΡΠ½ΠΈΡΠΈΡΠ΅ Π² ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΡΠ° Π²Π΅ΡΠ΅ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π·Π°Ρ Π²Π°Π½Π°Ρ Ρ Π½Π΅ΡΠΎ Π½ΠΎΠ²ΠΎ.
GitLab Runner 11.10
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΠ½Π΅Ρ ΠΏΡΡΠ½Π°Ρ ΠΌΠ΅ GitLab Runner 11.10! GitLab Runner Π΅ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° CI/CD Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² GitLab.
ΠΠ°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- .
- .
- .
- .
- .
ΠΡΠ»Π½ΠΈΡΡ ΡΠΏΠΈΡΡΠΊ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ Π² ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π° GitLab Runner: .
ΠΠΎΠΏΡΠ°Π²ΠΊΠ° Π½Π° Π²ΡΡΡΠ°Π½ΠΎΡΠΎ project_id Π² API Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° blob Π² Elasticsearch
STARTER, PREMIUM, ULTIMATE
ΠΠΎΠΏΡΠ°Π²ΠΈΡ
ΠΌΠ΅ Π³ΡΠ΅ΡΠΊΠ° Π² API Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° blob Π² Elasticsearch, ΠΊΠΎΠΉΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π²ΡΡΡΠ°ΡΠ΅ 0 Π·Π° project_id. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΅ , Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ project_id ΡΠ»Π΅Π΄ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ Π½Π° GitLab.
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Omnibus
CORE, STARTER, PREMIUM, ULTIMATE
ΠΠ½Π΅ΡΠΎΡ ΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Omnibus Π² GitLab 11.10:
- GitLab 11.10 Π²ΠΊΠ»ΡΡΠ²Π° , , Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° Π½ΠΎΠ² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π·Π° Π»Π΅ΡΠ½ΠΎ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Hipchat ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ. Π’Π°Π·ΠΈ Π²Π΅ΡΡΠΈΡ Π²ΠΊΠ»ΡΡΠ²Π° , ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅.
- ΠΠΈΠ΅ , ΠΈ ΡΠ΅Π³Π° Π·Π°ΠΏΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΡΠ° Π½Π° GitLab Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎ.
- ΠΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΎΡ Docker Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ.
- ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅ ca-certs Π΄ΠΎ 2019-01-23.
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
ΠΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° GitLab Ρ Π²ΡΡΠΊΠ° Π²Π΅ΡΡΠΈΡ Π·Π° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° GitLab Ρ Π²ΡΡΠΊΠ°ΠΊΡΠ² ΡΠ°Π·ΠΌΠ΅Ρ. ΠΡΠΊΠΎΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² GitLab 11.10:
- .
- .
- .
- .
- .
- .
- .
- .
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΈΡΠ΅ Π½Π° GitLab
CORE, STARTER, PREMIUM, ULTIMATE
ΠΠ½Π΅ΡΠ»ΠΈ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΈΡΠ΅ Π½Π° GitLab:
- .
Π£ΡΡΠ°ΡΠ΅Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
GitLab Geo ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ Ρ Π΅ΡΠΈΡΠ°Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π² GitLab 12.0
GitLab Geo Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π·Π° ΡΠΌΠ΅ΠΊΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡΡΠ° Π½Π° Π²ΡΠΎΡΠΈΡΠ½ΠΈΡΠ΅ ΡΠ·Π»ΠΈ. Π’ΠΎΠ²Π° Π±Π΅ΡΠ΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π°Π½ΠΎ Π² .
Π GitLab Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ ΡΠΎΠ²Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° Geo: .
Π GitLab sudo gitlab-rake gitlab:geo:check ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°, Π΄Π°Π»ΠΈ Ρ
Π΅ΡΠΈΡΠ°Π½ΠΎΡΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ ΠΈ Π΄Π°Π»ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΡΠ΅ ΠΏΡΠ΅Ρ
Π²ΡΡΠ»ΡΡ. ΠΠΈΠΆ. . ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Geo, ΠΌΠΎΠ»Ρ, ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°Π·ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈ ΠΌΠΈΠ³ΡΠΈΡΠ°ΠΉΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΡΠΊΠΎΡΠΎ.
Π GitLab ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π΅Π½ ΡΠ°ΠΉΠΎΠ½ βΊ Geo βΊ Π£Π·Π»ΠΈ, Π°ΠΊΠΎ Π³ΠΎΡΠ΅ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π΅ ΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈ.
Π GitLab Geo ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΠΈΠΆ. .
ΠΠ°ΡΠ° Π½Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅: 22 ΡΠ½ΠΈ 2019 Π³.
ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Ubuntu 14.04
GitLab 11.10 ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Ρ .
Canonical ΠΎΠ±ΡΠ²ΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Ubuntu 14.04 ΠΎΡ . ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π° Π²Π΅ΡΡΠΈΡ LTS: Ubuntu 16.04 ΠΈΠ»ΠΈ Ubuntu 18.04.
ΠΠ°ΡΠ° Π½Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅: 22 ΠΌΠ°ΠΉ 2019 Π³.
ΠΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡ Π±ΡΠΎΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ, ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΎΡ Π΅Π΄Π½ΠΎ ΠΏΡΡΠΊΠ°Π½Π΅
ΠΠΎ-ΡΠ°Π½ΠΎ GitLab ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ Π·Π° HEAD Π²ΡΡΠΊΠΎ ΠΊΠ»ΠΎΠ½ΡΠ΅ Π² ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ. Π’ΠΎΠ²Π° Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΡΠΊΠ°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠ»ΠΎΠ½ Π·Π° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π² ΠΊΠ»ΠΎΠ½ develop).
ΠΠΎ ΠΏΡΠΈ ΠΏΡΡΠΊΠ°Π½Π΅ Π½Π° Π³ΠΎΠ»ΡΠΌΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅, ΠΎΡΡΠ°Π·ΡΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ ΡΠ°Π·ΠΊΠ»ΠΎΠ½ΡΠ²Π°Π½Π΅), Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΠΎΠ½. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ GitLab 11.10, ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΡΠΈ ΠΏΡΡΠΊΠ°Π½Π΅.
ΠΠ°ΡΠ° Π½Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅: 22 ΠΌΠ°ΠΉ 2019 Π³.
Π£ΡΡΠ°ΡΠ΅Π»ΠΈ ΠΏΡΡΠΈΡΠ° Π½Π° legacy ΠΊΠΎΠ΄Π° Π½Π° GitLab Runner
ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ GitLab 11.9, GitLab Runner ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅/ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° GitLab Runner ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄, Π°ΠΊΠΎ Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½. ΠΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΠΈΠΆΡΠ΅ Π² .
Π GitLab 11.0 ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡ
ΠΌΠ΅ Π²ΠΈΠ΄Π° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ° Π·Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π·Π° GitLab Runner. metrics_server ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°Ρ Π² ΠΏΠΎΠ»Π·Π° Π½Π° listen_address Π² GitLab 12.0. ΠΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΠΈΠΆΡΠ΅ Π² .
Π Π²Π΅ΡΡΠΈΡ 11.3 GitLab Runner Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ; ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½ΠΎΠ²ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° . Π , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π΅ ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΊΡΠΌ Π½ΠΎΠ²Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. ΠΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΠΈΠΆΡΠ΅ Π² .
Π’Π΅Π·ΠΈ ΠΏΡΡΠΈΡΠ° Π½ΡΠΌΠ° Π΄Π° ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π² GitLab 12.0. ΠΠ°ΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ Π½ΠΈΡΠΎ, ΠΏΡΠΎΡΡΠΎ ΡΠ΅ ΡΠ²Π΅ΡΠ΅ΡΠ΅, ΡΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΡΠ° Π½Π° GitLab ΡΠ°Π±ΠΎΡΠΈ Ρ Π²Π΅ΡΡΠΈΡ 11.9+ ΠΏΡΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π΄ΠΎ GitLab Runner 12.0.
ΠΠ°ΡΠ° Π½Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅: 22 ΡΠ½ΠΈ 2019 Π³.
Π£ΡΡΠ°ΡΡΠ» ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π½Π° Π²Ρ ΠΎΠ΄Π½Π°ΡΠ° ΡΠΎΡΠΊΠ° Π·Π° GitLab Runner
Π 11.4 GitLab Runner Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π° ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΠΏΠΎΠΏΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΊΠ°ΡΠΎ ΠΈ .
Π GitLab 12.0 ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΡΡΠΊΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½. ΠΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΠΈΠΆΡΠ΅ Π² .
ΠΠ°ΡΠ° Π½Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅: 22 ΡΠ½ΠΈ 2019 Π³.
Π£ΡΡΠ°ΡΡΠ»Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Linux Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ, Π΄ΠΎΡΡΠΈΠ³Π½Π°Π»ΠΈ EOL, Π·Π° GitLab Runner
ΠΡΠΊΠΎΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π½Π° Linux, Π½Π° ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ GitLab Runner, ΡΠ° Π΄ΠΎΡΡΠΈΠ³Π½Π°Π»ΠΈ ΠΊΡΠ°Ρ Π½Π° ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡ ΡΠΈ ΡΠΈΠΊΡΠ».
Π GitLab 12.0 GitLab Runner ΠΏΠΎΠ²Π΅ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π² ΡΠ΅Π·ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π½Π° Linux. ΠΡΠ»Π½ΠΈΡΡ ΡΠΏΠΈΡΡΠΊ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ Π² Π½Π°ΡΠΈΡ . ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π° Π₯Π°Π²ΠΈΠ΅Ρ ΠΡΠ΄ΠΎΠ½ () Π·Π° !
ΠΠ°ΡΠ° Π½Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅: 22 ΡΠ½ΠΈ 2019 Π³.
ΠΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° GitLab Runner Helper
Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΡΠΈΠ»ΠΈΡΡΠ° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΡ Π½ΡΠΊΠΎΠΈ ΡΡΠ°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° .
Π GitLab 12.0 GitLab Runner ΡΡΠ°ΡΡΠΈΡΠ° Ρ Π½ΠΎΠ²ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. Π’ΠΎΠ²Π° Π·Π°ΡΡΠ³Π° ΡΠ°ΠΌΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ . ΠΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΠΈΠΆΡΠ΅ Π² .
ΠΠ°ΡΠ° Π½Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅: 22 ΡΠ½ΠΈ 2019 Π³.
ΠΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° Π½Π°ΡΠ»Π΅Π΄ΡΡΠ²Π΅Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ git clean ΠΎΡ GitLab Runner
Π GitLab Runner 11.10 Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠ°ΠΊ Runner ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° git clean. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π½ΠΎΠ²Π°ΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° git reset ΠΈ ΠΏΠΎΡΡΠ°Π²Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° git clean ΡΠ»Π΅Π΄ ΡΡΡΠΏΠΊΠ°ΡΠ° Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΠ²Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ²Π»ΠΈΡΠ΅ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡ
ΠΌΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ FF_USE_LEGACY_GIT_CLEAN_STRATEGY. ΠΠΊΠΎ Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΈΡΡΠΈΠ½Π½ΠΎ, ΡΠΎΠΉ ΡΠ΅ Π²ΡΠ·Π²ΡΡΠ½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΠ²Π΅Π½Π°ΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅. ΠΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π² GitLab Runner ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ .
Π GitLab Runner 12.0 ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ΠΌ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π½Π°ΡΠ»Π΅Π΄ΡΡΠ²Π΅Π½Π°ΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π½Π΅ΠΉΠ½ΠΎΡΠΎ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΡΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ°. ΠΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΠΈΠΆΡΠ΅ Π² .
ΠΠ°ΡΠ° Π½Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅: 22 ΡΠ½ΠΈ 2019 Π³.
Π Π°Π·Π΄Π΅Π» System Info Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΈΡ ΠΏΠ°Π½Π΅Π»
GitLab ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π²Π°ΡΠ°ΡΠ° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ Π½Π° GitLab Π² admin/system_info, Π½ΠΎ ΡΠ°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π½Π΅ΡΠΎΡΠ½Π°.
ΠΠΈΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΈΡ ΠΏΠ°Π½Π΅Π» Π² GitLab 12.0 ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ .
ΠΠ°ΡΠ° Π½Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅: 22 ΡΠ½ΠΈ 2019 Π³.
ΠΡΡΠΎΡΠΈΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅
Π’ΡΡΡΠ΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅:
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅
ΠΠΊΠΎ Π½Π°ΡΡΡΠΎΠΉΠ²Π°ΡΠ΅ Π½ΠΎΠ²Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° GitLab, ΠΏΠΎΡΠ΅ΡΠ΅ΡΠ΅ .
ΠΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π² .
ΠΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅ Π·Π° Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ Π½Π° GitLab
GitLab Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π² Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°: ΠΈ .
: Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈΠ»ΠΈ Π½Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½Π° ΠΎΠ±Π»Π°ΡΠ½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°.
- Π―Π΄ΡΠΎ: Π·Π° ΠΌΠ°Π»ΠΊΠΈ Π΅ΠΊΠΈΠΏΠΈ, Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈΠ»ΠΈ Π±Π΅Π·ΡΡΠΎΡΠ½Π° ΠΏΡΠΎΠ±Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° GitLab.
- Starter: Π·Π° Π΅ΠΊΠΈΠΏΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΎΡΠΈΡ ΠΏΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°.
- ΠΡΠ΅ΠΌΠΈΡΠΌ: Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π΅ΠΊΠΈΠΏΠΈ, Π½ΡΠΆΠ΄Π°Π΅ΡΠΈ ΡΠ΅ ΠΎΡ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ ΠΈ 24/7 ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°.
- Π£Π»ΡΠΈΠΌΠ΅ΠΉΡ: Π·Π° ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ ΠΈ ΡΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π³ΡΠ»Π°ΡΠΈΠΈ.
β GitLab.com: Ρ ΠΎΡΡΠ²Π°, ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ° GitLab ΠΏΠΎ Π·Π° ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»Π½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈ Π΅ΠΊΠΈΠΏΠΈ.
- ΠΠ΅Π·ΠΏΠ»Π°ΡΠ΅Π½: Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ ΡΠ°ΡΡΠ½ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π±ΡΠΎΠΉ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅. ΠΠ°ΠΊΡΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ Π½ΠΈΠ²ΠΎ ΠΠ΅Π·ΠΏΠ»Π°ΡΠ΅Π½, Π° ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ Π½ΠΈΠ²ΠΎ Gold.
- Bronze: Π·Π° Π΅ΠΊΠΈΠΏΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ.
- Silver: Π·Π° Π΅ΠΊΠΈΠΏΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ DevOps Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π³ΡΠ»Π°ΡΠΈΠΈ ΠΈ Π±ΡΡΠ·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°.
- Gold: ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎ Π·Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ CI/CD Π·Π°Π΄Π°ΡΠΈ. ΠΡΠΈΡΠΊΠΈ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΌΠΎΠ³Π°Ρ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ Gold Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΠ»Π°Π½Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
