Web IDE Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΈ ΠΎΡΡΠ΅ΡΡ SAST Π΄Π»Ρ Go ΠΈ C/C++ / Π₯Π°Π±Ρ
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠ΅Π²ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° β Π²ΡΠ΅ ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ. Π‘ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·Π° ΠΌΡ ΡΠΏΡΠΎΡΠ°Π΅ΠΌ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ Web IDE, Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΎΠ², Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ.
Web IDE ΡΠ΅ΠΏΠ΅ΡΡ Π² ΠΎΠ±ΡΠ΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΈ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ
ΠΡ Π² GitLab Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ°ΡΡΠ½ΠΈΠΊ ΠΌΠΎΠ³ Π²Π½ΠΎΡΠΈΡΡ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡ Ρ git ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°Π΄ ΡΠ²ΠΎΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, ΠΈΠ»ΠΈ ΠΎΠΏΡΡΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΠΈΠΌ ΡΠ΅Π²ΡΡ ΡΠ΅Π»ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ Web IDE Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Ρ, Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ΅Π²ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΎΡΠΌΠΎΡΡ Markdown Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΡ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ Π΄ΠΈΡΡ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ° Ρ Π½Π°Π³Π»ΡΠ΄Π½ΡΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ side by side. Web IDE Π²ΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΎΠ±ΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏ Ρ Π²Π΅ΡΡΠΈΠΈ 10.7, ΡΠ°ΠΊΠΆΠ΅ ΠΌΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΅Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ.
Π’ΠΎΠΊΠ΅Π½Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ
ΠΠ»Ρ Π»ΡΠ±ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ, ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ: ΡΡΠΎ Π²Π΅ΡΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ°Π·Π°ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². ΠΠ±ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ°Π·Ρ (images) ΠΎΡΠΊΠ΅ΡΡΡΠΎΠ²ΡΠΈΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Kubernetes(https://kubernetes.io/). ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Ρ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ» Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΡ ΠΆΠ΅ Kubernetes ΠΏΡΠ»Π»ΠΈΡ ΠΎΠ±ΡΠ°Π·Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ, ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΠΎΠ΄Π° ΠΈ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ΄ΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π Π°Π½Π΅Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΊΠ΅Π½ ΡΠ°Π±ΠΎΡΡ CI, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ Π½Π° Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ, Π° Π΄ΡΡΠ³ΠΈΠΌ β ΡΠΎΠΊΠ΅Π½ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΡΡΡΠΏ Π½Π° Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠΊΠ΅Π½Π° ΡΠ°Π±ΠΎΡΡ CI Kubernetes ΡΠ΅ΡΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ² ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π£ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΠΌΠΈΠ½ΡΡΡ: Π»ΠΈΠ±ΠΎ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π»ΠΈΠ±ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°, Π½Π° ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠΎΠΊΠ΅Π½Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΎΠΊΠ΅Π½Π° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Kubernetes ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π±Π΅Π· ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π±Π΅Π· ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ CI/CD Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π‘Π΅ΡΠ²ΠΈΡ CI/CD ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π΄Π²ΠΈΠΆΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ. ΠΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ: ΠΎΡ Π±Π°Π·ΠΎΠ²ΡΡ , Π²ΡΠΎΠ΄Π΅ ΡΠ±ΠΎΡΠΊΠΈ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΈΡ . Π£ΡΠΈΡΡΠ²Π°Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π·Π°Π΄Π°Ρ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ. GitLab CI/CD ΡΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½ΠΎΡΠ½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ, Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ.
Π GitLab 10.7 ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊ ΡΠ°Π±ΠΎΡ, ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΡ API.
SAST Π΄Π»Ρ ΡΠ·ΡΠΊΠΎΠ² Go ΠΈ C/C++
Π§Π°ΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Complete DevOps ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΊΠ»Π°ΡΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (SAST) ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ Π°Π½Π°Π»ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π°ΠΏΡΡΠΌΡΡ Π² ΠΎΠΊΠ½ΠΎ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΡΠΎΡ Π°Π½Π°Π»ΠΈΠ·, SAST ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Go ΠΈ C/C++ Π΄Π»Ρ SAST.
ΠΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ Π½Π° Π½Π°ΡΠΈ Π²ΡΡΡΠ΅ΡΠΈ!
Rob Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ΅ΠΊΠ±ΠΎΠΊΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ HTTP Π½Π° HTTPS Π΄Π»Ρ GitLab Pages, ΡΡΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Rob! Π Π·Π½Π°ΠΊ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΠΈ ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π΅ΠΌΡ ΡΠΈΡΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΡΡΡ, Π½ΠΎΡΠΊΠΈ ΠΈ ΡΠ°Π½ΡΠΊΠΈ ΡΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠΊΠΎΠΉ GitLab.
ΠΡΠΊΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Web IDE (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
ΠΠΎΠ²ΡΠΉ Web IDE ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΠΊΡΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΠ΄Π±ΡΠΊΠΎΠΌ ΠΏΠΎ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ±ΠΈΡΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π΅ΡΠΎΠΊ.
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Web IDE Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Ρ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΏΡΠ΅Π΄ΠΏΡΠΎΡΠΌΠΎΡΡ Markdown, Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π²ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· Π±ΡΠ°ΡΠ·Π΅ΡΠ°. Web IDE Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΠΎΠΊΠ½Π°Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΠΎΠΊΠ½Π΅ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ° β Π²ΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠΈΠ΄Π±ΡΠΊ ΠΈΠ»ΠΈ Π²Π½ΠΎΡΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΌΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅Π²ΡΡ ΠΊΠΎΠ΄Π°. ΠΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ° Π² Web IDE Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Π³ΠΎ Π΄ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΠ±ΡΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ° ΠΏΡΡΠΌΠΎ Π² IDE.
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Web IDE Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² GitLab Ultimate 10. 4, Π° Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·Π° ΠΎΠ½ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΎΠ±ΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏ. ΠΡ ΠΏΡΠΈΠ½ΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΡΠΊΡΡΡΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π²Π΅ΡΠΈΠΌ Π² ΡΠΎ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΊΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈ ΡΡΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠ°ΠΊ IDE. Π ΡΠΎΠΌΡ ΠΆΠ΅, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Π½Π°Π΄ ΡΠ²ΠΎΠΈΠΌΠΈ Π»ΡΠ±ΠΈΠΌΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Web IDE
Π’ΠΎΠΊΠ΅Π½Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
ΠΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π·Π°ΠΌ Docker, Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΌ Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² GitLab. Π Π°Π½Π΅Π΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΊΠ΅Π½Ρ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° (Personal Access Tokens β PAT), ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Ρ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π΅Π³ΠΎ ΠΏΡΠ°Π²Π°ΠΌ Π΄ΠΎΡΡΡΠΏΠ°.
Π’ΠΎΠΊΠ΅Π½Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ Π² GitLab 10.7, ΡΠ΅ΡΠ°ΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π°, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΎΡΠ±ΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΡΠΎΠΊΠ΅Π½ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΡΠΎΠΊ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΎΠΊΠ΅Π½Π°ΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² βonlyβ ΠΈ βexceptβ (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
GitLab CI/CD ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² βonlyβ ΠΈ βexceptβ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΡΠ°Π±ΠΎΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π²Π΅ΡΠΊΠ΅ βmasterβ.
Π GitLab 10.7 ΠΌΡ ΡΠ°ΡΡΠΈΡΠΈΠ»ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΈΡ
ΡΡΠ»ΠΎΠ²ΠΈΠΉ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ
Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π°Π»ΠΈΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ»ΠΈ ΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌΠΈ ΡΠ»ΡΡΠ°ΡΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ GITLAB_USER_NAME
ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
SAST Π΄Π»Ρ Go ΠΈ C/C++ (ULTIMATE, GOLD)
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (SAST) ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² GitLab. ΠΠΎΡΡΠΎΠΌΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅Π»ΠΈΠ·Π΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π½ΠΎΠ²ΡΡ ΡΠ·ΡΠΊΠΎΠ².
Π GitLab 10.7 ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Go ΠΈ C/C++, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΡΡΠΈΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ β ΡΠ·ΡΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ SAST
ΠΡΡΠ³ΠΈΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ GitLab 10.7
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΡΠΏΠΈΠΊΠ°Ρ (ULTIMATE, GOLD)
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ΅Π»ΠΈΠ·Π΅ ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π² ΡΠΏΠΈΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΡΠΏΠΈΠΊΠ°ΠΌ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄Ρ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΠΏΠΈΠΊΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ Π΄Π»Ρ Π·Π°Π΄Π°Ρ ΠΈ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠΎΠ². ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΡΡΠ°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΠ°ΠΌΠΎΠΌ ΡΠΏΠΈΠΊΠ΅, Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈΠ»ΠΈ, ΡΡΠΎ Π΅ΡΠ΅ Ρ ΡΠΆΠ΅, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ API.
ΠΠΏΠΈΠΊΠΈ ΠΏΠΎΠΊΠ° ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ todo ΠΈ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΅, Π½ΠΎ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°Π΄ ΡΡΠΈΠΌ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΏΠΈΠΊΠ°ΠΌ
ΠΠ°ΡΡΠΎΠ²ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π²ΠΎ Π²ΡΠ΅ ΠΏΠΎΡΡΠΎΠ²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (PREMIUM, ULTIMATE, SILVER, GOLD)
ΠΠ΅ΡΠ΅Π΄ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠΌ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ (ΠΎΡ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈΡ Π΄ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ) ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΈΡΠΊΠ»Π΅ΠΉΠΌΠ΅Ρ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΠΊΡΡ Π²ΠΎ Π²ΡΠ΅ ΠΈΡ ΠΏΠΎΡΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ΅Π»ΠΈΠ·Π΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ: ΡΠ΅ΠΏΠ΅ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ GitLab ΠΌΠΎΠ³ΡΡ Π²Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΠΎΡΡΡ. ΠΡΠΎΡ ΡΠ΅ΠΊΡΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΊΠΎΠ½Π΅Ρ Π²ΡΠ΅Ρ ΠΏΠΈΡΠ΅ΠΌ, ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ GitLab.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π² ΠΏΠΎΡΡΠΎΠ²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
ΠΠ°Π΄Π°ΡΠΈ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΏ Π² Π³ΡΡΠΏΠΏΠΎΠ²ΡΡ Π΄ΠΎΡΠΊΠ°Ρ Π·Π°Π΄Π°Ρ (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
ΠΡΡΠΏΠΏΠΎΠ²ΡΠ΅ Π΄ΠΎΡΠΊΠΈ Π·Π°Π΄Π°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ (Π° Π·Π½Π°ΡΠΈΡ ΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ GitLab).
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ GitLab, Π½Π° Π³ΡΡΠΏΠΏΠΎΠ²ΡΡ Π΄ΠΎΡΠΊΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈΡΡ Π·Π°Π΄Π°ΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΡ (ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ²Π΅Π½Ρ). ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·Π°, Π½Π° Π³ΡΡΠΏΠΏΠΎΠ²ΡΡ Π΄ΠΎΡΠΊΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π·Π°Π΄Π°ΡΠΈ Π²ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π²ΡΠ΅Ρ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΏ ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΡ. Π’Π°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΏ, ΡΡΠ° ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΈ Π³ΡΡΠΏΠΏΠΎΠ²ΡΠΌΠΈ Π΄ΠΎΡΠΊΠ°ΠΌΠΈ Π·Π°Π΄Π°Ρ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Π΄ΠΎΡΠΊΠ°ΠΌ Π·Π°Π΄Π°Ρ
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠΊ Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΏ (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Π Π°Π±ΠΎΡΠ° Ρ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠΈΡΠ΅ΠΉ GitLab, ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠΊ. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·Π° ΠΌΡ ΡΠ°ΡΡΠΈΡΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠΊ ΠΊ Π·Π°Π΄Π°ΡΠ°ΠΌ ΠΈ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°ΠΌ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΎΠ²Π½ΡΡ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΏ.
Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠ°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΡΠΏΠΏΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΎΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ Π»ΡΠ±ΡΠΌ Π΅Π΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ ΠΈ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°ΠΌ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΠΌΠ΅ΡΠΊΠ°, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π³ΡΡΠΏΠΏ, Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΏ ΡΡΠΎΠ²Π½Π΅ΠΌ Π½ΠΈΠΆΠ΅.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΊ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΏΠ°ΠΌ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ°Ρ Π·Π°Π΄Π°Ρ ΠΈ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠΎΠ², ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΡΡΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΏΠΎ Π³ΡΡΠΏΠΏΠΎΠ²ΡΠΌ ΠΌΠ΅ΡΠΊΠ°ΠΌ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ ΠΊΠ°ΠΊ ΠΊ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ, ΡΠ°ΠΊ ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΠΈΠΌ Π³ΡΡΠΏΠΏΠ°ΠΌ (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ). ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΌΠ΅ΡΠΊΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΅Π³ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ.
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² Π³ΡΡΠΏΠΏΠΎΠ²ΡΡ Π΄ΠΎΡΠΊΠ°Ρ Π·Π°Π΄Π°Ρ, ΠΊΠ°ΠΊ Π² ΠΎΠΊΠ½Π΅ ΡΠΈΠ»ΡΡΡΠ°, ΡΠ°ΠΊ ΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ Π΄ΠΎΡΠΊΠΈ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΠΊΠ°ΠΌ
ΠΠ½Π°ΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, GitLab CI/CD ΠΈ shields.io ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π·Π½Π°ΡΠΊΠΈ (badges) Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ°ΡΡΡΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ΄Π°. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π·Π½Π°ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² README ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠΊΠΎΠ² ΠΏΠΎΠ΄ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π³ΡΡΠΏΠΏΡ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Π·Π½Π°ΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²
Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ½ΡΡΠΈΠ΅ Π·Π°ΡΠΈΡΡ Ρ Π²Π΅ΡΠΎΠΊ (PREMIUM, ULTIMATE, SILVER, GOLD)
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ
(protected) Π²Π΅ΡΠΎΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΡ ΠΈ ΠΌΠ΅ΡΠΆ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΏΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π² master
. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Ρ ΡΡΠΎΠ²Π½Π΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ° Master ΠΌΠΎΠ³ΡΡ ΡΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΡΠΈΡΡ Ρ Π²Π΅ΡΠΎΠΊ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌ ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ Π·Π°ΠΏΡΠ΅ΡΡ. ΠΠΎΠ²ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ½ΡΡΠΈΠ΅ Π·Π°ΡΠΈΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΈ Π³ΡΡΠΏΠΏΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΡΠΈΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ.
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· API; ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ΅Π»ΠΈΠ·Π΅. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ, ΡΡΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ
Π²Π΅ΡΡΠΈΡΡ
ΠΌΡ ΡΠ±Π΅ΡΠ΅ΠΌ ΡΡΠΎΠ²Π΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° Admin (60
) ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ²Π½Ρ Owner Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ Π²Π΅ΡΠΊΠ°Ρ
ΠΠ΅Ρ Π·Π°Π΄Π°Ρ Π½Π° ΠΊΠ°ΡΡΠΎΡΠΊΠ°Ρ Π΄ΠΎΡΠΎΠΊ Π·Π°Π΄Π°Ρ (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)
Π Π°Π½Π΅Π΅, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄ΠΎΡΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ, Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²Π΅ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΆΠ°ΡΡ Π½Π° Π΅Π΅ ΠΊΠ°ΡΡΠΎΡΠΊΡ β Π΅Π΅ Π²Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΡΡ Π² Π±ΠΎΠΊΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅. Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΉ ΠΊΠ°ΡΡΠΎΡΠΊΠ΅. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ Π²Π·Π³Π»ΡΠ΄ΠΎΠΌ ΠΎΡΠ΅Π½ΠΈΡΡ Π²Π΅Ρ Π²ΡΠ΅Ρ Π·Π°Π΄Π°Ρ Π½Π° Π΄ΠΎΡΠΊΠ΅ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π±ΠΎΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π²ΡΠΎΠ΄Π΅ Agile.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Π΄ΠΎΡΠΊΠ°ΠΌ Π·Π°Π΄Π°Ρ
ΠΠ»Π°Π³ΠΈΠ½Ρ GitLab (CORE, STARTER, PREMIUM, ULTIMATE)
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ GitLab β ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ. ΠΠΎ Π½Π΅ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Ρ ΠΎΡΡΡ ΡΡΠ°Π·Ρ Π²ΡΠ½ΠΎΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ±ΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Ρ ΠΎΡΠ΅ΡΡ ΡΠ½Π°ΡΠ°Π»Π° Π»ΠΈΡΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ. ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° ΡΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΊΠ° GitLab, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠΆΠ΅Π»ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
ΠΠ»Π°Π³ΠΈΠ½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Ρ ΡΠΊΠΈ GitLab Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ GitLab β Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠ°ΡΡΠΈΡΡΡΡ GitLab ΠΏΠΎΠ΄ Π²Π°ΡΠΈ Π½ΡΠΆΠ΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π°Ρ
ΠΡΠΎΡΠΎΠΊΠΎΠ» Git HTTP(s) Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡ CI/CD (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Π GitLab Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ SSH, ΠΈΠ»ΠΈ HTTP(s). ΠΠ½ΠΎΠ³Π΄Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ GitLab ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΏΠΎ HTTP(s) ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° HTTP(s) Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ°ΡΠΊΡΡΡΡ ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π²Ρ ΠΎΠ΄Π° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅ΡΠ΅Π· Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° HTTP(s) ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΡΠ°Π΅Ρ GitLab Runner ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ CI/CD ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ GitLab 10.7 Ρ clone/fetch ΡΠ΅ΠΊΠ²Π΅ΡΡΠΎΠ² ΠΎΡ GitLab Runner Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ HTTP(s), Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΡΠΎ Π½Π΅ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ GitLab Runner Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠΊΠ΅Π½Ρ OTP, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΠ°ΠΊ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ°
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° JSON Web Token OmniAuth (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
GitLab ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ OmniAuth Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΎΠΉΡΠΈ Π² GitLab Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Twitter ΠΈΠ»ΠΈ Google, Π° ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΈΠΏΠ° OAuth3. Π Gitlab 10.7 Π² OmniAuth Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° JSON Web Token (JWT).
JSON Web Token β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉΡΡ Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ JWT OmniAuth
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΎΠ½ΠΎΠ²Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠΎΠΏΠΈΠΉ Geo (PREMIUM, ULTIMATE)
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΎΠ½ΠΎΠ²Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠΎΠΏΠΈΠΉ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Geo, ΡΡΠΎΠ±Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ, ΡΡΠΎ ΠΊΠΎΠΏΠΈΡ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½Π° Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠΌ. ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Geo Π΄Π»Ρ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ: ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈ ΡΠ±ΠΎΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ β ΠΎΠ½Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΡΠ°Π½Ρ GitLab.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ heads
ΠΈ tags
GitLab Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Git ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΌΠΌΠ° ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π° Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠ΅Π»ΠΈΠ·Π°Ρ
ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ keep-around
ΡΡΡΠ»ΠΊΠΈ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎ ΡΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Geo
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π² Π³ΡΡΠΏΠΏΠ°Ρ Π΄Π»Ρ Starter (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)
ΠΠ°ΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΡΡΠ°Π»Π° Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ: ΡΠ΅ΠΏΠ΅ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΎΠΏΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Ρ ΡΡΠΎΠ²Π½Π΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ° Developer ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ.
Π Π°Π½ΡΡΠ΅ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠ»Π° Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΠ»Π°Π½Π° GitLab Premium.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎ Π³ΡΡΠΏΠΏΠ°Ρ
ΠΠΊΡΠΏΠΎΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ LFS (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
ΠΠΊΡΠΏΠΎΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ (Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ, ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°ΠΌΠΈ, ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ, Π²ΠΈΠΊΠΈ-ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ°ΠΌΠΈ) ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ GitLab. Π’Π΅ΠΏΠ΅ΡΡ Π² ΡΠΊΡΠΏΠΎΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π²Ρ ΠΎΠ΄ΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ LFS: Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Ρ LFS ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠΎΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠ΅ ΠΈ ΡΠΊΡΠΏΠΎΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²
Π‘ΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΡΡΠ°Π»ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ (ULTIMATE, GOLD)
ΠΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ SAST. ΠΠ°ΠΆΠ΅ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠΎ ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ Π²Π΅ΡΠΈ, ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Π΄Π²Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ.
GitLab 10.7 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ Π² ΠΎΡΡΠ΅ΡΠ°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠ·Π²ΠΈΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΠΈΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΊΠ°ΠΊ Π² ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°Ρ , ΡΠ°ΠΊ ΠΈ Π² ΠΎΠ±Π·ΠΎΡΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ°ΡΡΡ ΡΠ°Π±ΠΎΡ Π΄Π»Ρ runner (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ GitLab ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠΎΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡ CI/CD Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΠΎΠ»ΡΡΠ΅, ΠΎΠ½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Ρ ΠΎΡΡΠ΅ΡΠΎΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π GitLab 10.7 ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π½ΠΎΠ²Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°ΠΉΠΌΠ°ΡΡΠ° Π½Π° runner, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠ°ΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠΈΡ runner Π² ΡΠ΅Π»ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠΌΠ°ΡΡΡ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΠ°ΠΉΠΌΠ°ΡΡΠ°ΠΌ ΡΠ°Π±ΠΎΡ Π΄Π»Ρ runner
ΠΠ΅Π³ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ CI/CD (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
ΠΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ° CI/CD ΠΏΠ°Π΄Π°Π΅Ρ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Ρ ΠΎΡΡΡ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ. ΠΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΠ΄ΡΠΈ Π² Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ°Π±ΠΎΡΡ ΠΈ ΡΠΌΠΎΡΡΠ΅ΡΡ Π»ΠΎΠ³ΠΈ.
Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΏΡΠΎΡΠ΅ ΠΈ Π±ΡΡΡΡΠ΅Π΅, GitLab 10.7 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ: ΠΏΡΠΈΡΠΈΠ½Π° ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΠΏΠΎ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΡΡΡΠΎΡΠ°.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡ CI/CD
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Ubuntu 18.04 Bionic (CORE, STARTER, PREMIUM, ULTIMATE)
26 Π°ΠΏΡΠ΅Π»Ρ Π²ΡΡΠ»Π° Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Ubuntu β Ubuntu 18.04 Bionic. GitLab ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈ Π΄Π»Ρ Π½Π΅Π΅.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° GitLab Π½Π° Ubuntu 18.04 Bionic
Π£Π»ΡΡΡΠ΅Π½ΠΈΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΡΠΊΠ°ΠΏΠΎΠ² GitLab (CORE, STARTER, PREMIUM, ULTIMATE)
GitLab 10.7 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΡΠ΅Π³ΠΈΡΡΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΠ»ΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ /var/mypath/gitlab/registry
, Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π Π°Π½ΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΡΠ°Π»ΡΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π² <name>.<timestamp>
, Π½Π° ΡΡΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠ°ΠΏΠΊΡ tmp
Π² Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π²ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΡΠ΄Π° Π΄ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎ Π±ΡΠΊΠ°ΠΏΠ°Ρ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡ Π½Π° HTTPS Π² GitLab Pages (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
GitLab Pages ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π΅Π±ΡΠ°ΠΉΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ HTTP ΠΈΠ»ΠΈ HTTPS. HTTPS ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΡΡΡΠ΅Ρ Π²Π΅ΡΡ ΡΡΠ°ΡΠΈΠΊ, Π·Π°ΡΠΈΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ.
Π ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΎΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°, Π² GitLab 10.7 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ HTTP Π·Π°ΠΏΡΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ»ΠΈΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ URL Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ HTTPS. ΠΡΠΎ ΠΏΠΎΠ²ΡΡΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π° HTTPS Π² GitLab Pages
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° GitLab Let’s Encrypt (CORE, STARTER, PREMIUM, ULTIMATE)
Π GitLab 10.5 ΠΌΡ ΡΠΏΡΠΎΡΡΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ HTTPS Π΄Π»Ρ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² GitLab Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Letβs Encrypt.
Π‘ GitLab 10.7 ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅. ΠΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ±ΡΠ°Π»ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π΄Π΅ΡΠΆΠ°ΡΡ Let’s Encrypt ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ. ΠΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ HTTPS β Π½Π°ΡΠ°ΡΡ Π²Π°Ρ external_url
Ρ https://
β ΠΈ Π²ΡΡ!
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Let’s Encrypt
ΠΠ±Π»Π°ΡΠ½ΡΠΉ ΡΠ°ΡΡ GitLab Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Core (Π°Π»ΡΡΠ°) (CORE, STARTER, PREMIUM, ULTIMATE)
Π‘ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΏΠ»Π°Π½Π΅ Core, Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΡ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠ° GitLab ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π° Π±Π΅Π· Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ. ΠΡΠΎΡ ΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° GitLab ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ GitLab Π½Π° Kubernetes.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎ Π±ΡΠΊΠ°ΠΏΠ΅ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ
Π£Π»ΡΡΡΠ΅Π½ΠΈΡ Π² Π΄ΠΎΡΠΊΠ΅ ΠΌΠ΅ΡΡΠΈΠΊ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
ΠΠ° Π΄ΠΎΡΠΊΠ΅ ΠΌΠ΅ΡΡΠΈΠΊ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΠ²ΠΎΠ΄Π½Π°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°. ΠΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΠ΅Π΄Π½ΠΈΠ΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΡΠΈΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΡΠ·Π½Π°ΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ²Π΅ΡΠ° Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 8 ΡΠ°ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, Ρ ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄Π°, ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΡΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΠ± ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΡΠΈΠΊ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ
GitLab Runner 10.7 (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Π‘ ΡΡΠΈΠΌ ΡΠ΅Π»ΠΈΠ·ΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠ»Π° Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ GitLab Runner β 10.7. GitLab Runner β ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΠΎΡΡΡΠ»ΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡ CI/CD ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² GitLab.
Π‘Π°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠ°ΠΌΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ Docker
- Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π΄ΠΎΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
- ΠΠ΅ΡΠ½ΡΠ»ΠΈ Go ΠΊ Π²Π΅ΡΡΠΈΠΈ 1.8.7
- ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° max_job_timeout
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² CHANGELOG GitLab Runner.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ GitLab Runner
Π£Π»ΡΡΡΠ΅Π½ΠΈΡ Omnibus (CORE, STARTER, PREMIUM, ULTIMATE)
- ΠΠ΅ΡΡΠΈΡ GitLab Mattermost 4.8.1 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ iOS, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΠ»ΡΡΠ΅ 20 ΠΠ±, β ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ
ssl_ciphers
Π΄Π»Ρ NGINX, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌECDHE-RSA-DES-CBC3-SHA
ΠΈDES-CBC3-SHA
Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Sweet32. - redis_exporter ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ 0.17.1.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Omnibus GitLab
Π£Π»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Π‘ΡΠ΅Π΄ΠΈ Π²ΡΠ΅Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ GitLab 10.7 ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠΈΠΌ ΠΎΡΠΌΠ΅ΡΠΈΡΡ:
- ΠΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅ ΠΈ Ρ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ
- Π Π°Π·Π΄Π΅Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠΎΠ² ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Vue Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
- Π£ΠΌΠ΅Π½ΡΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Redis Π² Π΄ΠΈΡΡΠ°Ρ ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠΎΠ²
- ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΡΡΠΈΡΡΠ΅ΡΡΡ
- API Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½
- ΠΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ Atom-ΡΠΈΠ΄Π° Π³ΡΡΠΏΠΏ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ²
- ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π΄Π»Ρ Π·Π°Π΄Π°Ρ, ΠΌΠ΅ΡΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠΎΠ², ΠΌΠ°ΠΉΠ»ΡΡΠΎΡΠ½ΠΎΠ² ΠΈ ΡΠΏΠΈΠΊΠΎΠ², ΡΠ΅ΠΏΠ΅ΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½Ρ
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² GitLab 10.
ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ release notes ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ/ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ Π°Π½Π³Π»ΠΎΡΠ·ΡΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΅: GitLab 10.7 released with open source Web IDE and SAST for Go and C/C++.
ΠΠ°Π΄ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ rishavant ΠΈ sgnl_05.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ IDE?Β β ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈΒ β AWS
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ IDE?
ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈΒ (IDE)Β β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΡΡΠΎΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ, Π° Π±ΡΡ Π³Π°Π»ΡΠ΅ΡΡΒ β ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ IDE, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ.
ΠΠΎΡΠ΅ΠΌΡ IDE Π²Π°ΠΆΠ½Π°?
ΠΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈΒ (IDE) Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΎΠ±ΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π΄Π΅Π»Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡΡΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ Π²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ IDE:
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°
Π ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ IDE Π·Π½Π°Π΅Ρ ΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΎΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°
IDE ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΄Π΅Π»ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΆΠΈΡΠ½ΡΠΌ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΈΠ²ΠΎΠΌ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ²Π΅ΡΠ° ΡΡΠΈΡΡΠ°. ΠΡΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π΄Π΅Π»Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡΡ ΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ .
ΠΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
ΠΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ Π½Π°Π±ΠΈΡΠ°ΡΡ ΡΠ»ΠΎΠ²Π° Π² ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ IDE ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π²Π²ΠΎΠ΄ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π½Π°Π±ΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΡΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°
Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΠΊΠΎΠ΄Π°Β β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΡΠ΅Π»ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ. IDE ΠΌΠΎΠ³ΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π²ΡΠΎΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π±ΡΡΡΡΠΎ ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠ»ΡΡΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄. ΠΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΡΡΡΠ΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Ρ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ
IDE ΠΏΠΎΠ²ΡΡΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΡΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ Π·Π°Π΄Π°ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π·Π°Π΄Π°Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ IDE.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ
IDE ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΊΠΎΠ΄ Π² ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Β«ΡΠΎΡΠ½ΠΎ Π² ΡΡΠΎΠΊΒ», ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ IDE ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΏΡΠΈ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ΄ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π²Π½ΡΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
IDE ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ.
ΠΡΠ»Π°Π΄ΠΊΠ°
ΠΡΠ»Π°Π΄ΠΊΠ°Β β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π»ΡΠ±ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ»ΠΈ Π½Π΅Π΄ΠΎΡΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠ²Π»ΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ΅Π½Π½ΠΎΡΡΠ΅ΠΉ IDE Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Π IDE ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΡΠΎΠ΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠ²Π»ΡΡΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠΈ, Π²ΡΠ·Π²Π°Π½Π½ΡΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ, Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ.
Β
ΠΠ°ΠΊΠΈΠ΅ Π²ΠΈΠ΄Ρ IDE ΡΡΡΠ΅ΡΡΠ²ΡΡΡ?
ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈΒ (IDE) ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ IDE ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ. ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΏΡ IDE.
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ IDE
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ IDE Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΡΠ²ΠΎΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ . ΠΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΡΠ·ΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π₯ΠΎΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ IDE ΡΠ²Π»ΡΡΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΎΠ½ΠΈ ΡΠΎΠΏΡΡΠΆΠ΅Π½Ρ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ.
- ΠΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ½ΠΈΠΌΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ.
- ΠΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ ΠΌΠΎΠ³ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ.
- Π Π°Π·Π»ΠΈΡΠΈΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ.
ΠΠ±Π»Π°ΡΠ½ΡΠ΅ IDE
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ IDE Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΡΡΠΎ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΈΡ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ±Π»Π°ΡΠ½ΡΠ΅ IDE ΠΈΠΌΠ΅ΡΡ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Ρ Π½ΠΈΠΆΠ΅.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ IDE Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΈΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΈΠ·-Π·Π° ΡΠ°Π·Π»ΠΈΡΠΈΠΉ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ
ΠΠ±Π»Π°ΡΠ½ΡΠ΅ IDE ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Ρ Π»ΡΠ±ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ.
Π£Π»ΡΡΡΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² IDE ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ±Π»Π°ΡΠ½Π°Ρ IDE ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈΠ· ΠΎΠ±Π»Π°ΠΊΠ° ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΡΠ΅ΡΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ.
Β
ΠΠ°ΠΊ Π²ΡΠ±ΡΠ°ΡΡ IDE?
ΠΠ° ΡΡΠ½ΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈΒ (IDE) Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΈ ΡΠ°Π·Π½ΠΎΠΉ ΡΠ΅Π½ΠΎΠΉ. ΠΠ½ΠΎΠ³ΠΈΠ΅ IDE ΠΈΠΌΠ΅ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ IDE.
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΈΡΠ°ΡΡ, ΡΠ°ΡΡΠΎ Π΄ΠΈΠΊΡΡΠ΅Ρ Π²ΡΠ±ΠΎΡ IDE. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ IDE ΠΈΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ². Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΌΡΠ»ΡΡΠΈΡΠ·ΡΡΠ½ΡΠ΅ IDE ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊΠΎΠ².
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°
Π₯ΠΎΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ IDE ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π»ΡΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ IDE ΠΌΠΎΠ³ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Linux, Π½ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ .
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ
Π’ΡΠΈ ΠΎΠ±ΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° IDEΒ β ΡΡΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- Π£Π»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊΠΎΠ΄Π°
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π° ΠΊΠΎΠ΄Π°
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° IDE
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ IDE Π²ΠΊΠ»ΡΡΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ AWS Cloud9?
AWS Cloud9Β β ΡΡΠΎ ΠΎΠ±Π»Π°ΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈΒ (IDE), Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ΄, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΅Π³ΠΎ ΠΎΡΠ»Π°Π΄ΠΊΡ Π½Π°ΠΏΡΡΠΌΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠ·ΡΡΠ½Π°Ρ IDE, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ 40 ΡΠ·ΡΠΊΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ JavaScript, Python, PHP, Ruby, Go ΠΈ C++, ΠΈ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΊΠΎΠ΄Π°, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π±Π΅ΡΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΒ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
- ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π½Π° Linux
- ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΒ AWS CodeStarΒ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° AWS
ΠΠ°ΡΠ½ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ AWS Cloud9 ΠΈΠ»ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°Β ΡΡΡΠ°Π½ΠΈΡΠ΅ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ² ΠΎ Cloud9.
ΠΠ±Π»Π°ΡΠ½Π°Ρ ΠΈ Π½Π°ΡΡΠΎΠ»ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° IDE
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Theia. Π ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΡΡΠΎΡΡΠ΅Π΅ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Theia, Π° ΡΠ°ΠΊΠΆΠ΅ Π»ΡΠ±ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ VS Code, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Theia, Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΡΡΠ½ΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΠΎ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Theia. ΠΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Theia Yeoman: ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Theia Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ.
- Theia Blueprint: ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Theia.
ΠΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΎΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° Π±Π°Π·Π΅ Theia.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Theia:
- ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°
ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΡΡΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² Π½Π΅Π³ΠΎ:
mkdir my-app cd my-app
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ package. json
Π² ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅:
{ "ΡΠ°ΡΡΠ½ΠΎΠ΅": ΠΏΡΠ°Π²Π΄Π°, "Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ": { "@theia/callhierarchy": "ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ", "@theia/file-search": "Π΄Π°Π»Π΅Π΅", "@theia/git": "ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ", "@theia/markers": "ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ", "@theia/messages": "Π΄Π°Π»Π΅Π΅", "@theia/mini-browser": "Π΄Π°Π»Π΅Π΅", "@theia/navigator": "Π΄Π°Π»Π΅Π΅", "@theia/outline-view": "Π΄Π°Π»Π΅Π΅", "@theia/plugin-ext-vscode": "Π΄Π°Π»Π΅Π΅", "@theia/preferences": "Π΄Π°Π»Π΅Π΅", "@theia/preview": "Π΄Π°Π»Π΅Π΅", "@theia/search-in-workspace": "Π΄Π°Π»Π΅Π΅", "@theia/ΡΠ΅ΡΠΌΠΈΠ½Π°Π»": "Π΄Π°Π»Π΅Π΅" }, "devDependencies": { "@theia/cli": "ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ" } }
ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Theia ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΡ Node.js. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΉΠ» package.json
, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°,
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΡ
, Π²Π΅ΡΡΠΈΡ
, Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ VS Code
ΠΠ°ΠΊ ΡΠ°ΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ (ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ) ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ VS Code.
package.json
. ΠΡΠΈΠΌΠ΅Ρ package.json
ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
{ "ΡΠ°ΡΡΠ½ΠΎΠ΅": ΠΏΡΠ°Π²Π΄Π°, "Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ": { "@theia/callhierarchy": "ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ", "@theia/file-search": "Π΄Π°Π»Π΅Π΅", "@theia/git": "ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ", "@theia/markers": "ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ", "@theia/messages": "Π΄Π°Π»Π΅Π΅", "@theia/navigator": "Π΄Π°Π»Π΅Π΅", "@theia/outline-view": "Π΄Π°Π»Π΅Π΅", "@theia/plugin-ext-vscode": "Π΄Π°Π»Π΅Π΅", "@theia/preferences": "Π΄Π°Π»Π΅Π΅", "@theia/preview": "Π΄Π°Π»Π΅Π΅", "@theia/search-in-workspace": "Π΄Π°Π»Π΅Π΅", "@theia/ΡΠ΅ΡΠΌΠΈΠ½Π°Π»": "Π΄Π°Π»Π΅Π΅", "@theia/vsx-registry": "Π΄Π°Π»Π΅Π΅" }, "devDependencies": { "@theia/cli": "ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ" }, "ΡΠΊΡΠΈΠΏΡΡ": { "prepare": "ΠΎΡΠΈΡΡΠΊΠ° ΠΏΡΡΠΆΠΈ && ΡΠ±ΠΎΡΠΊΠ° ΠΏΡΡΠΆΠΈ && Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΡΠΆΠΈ: ΠΏΠ»Π°Π³ΠΈΠ½Ρ", Β«ΡΠΈΡΡΡΠΉΒ»: Β«ΡΠ΅Ρ ΡΠΈΡΡΡΠΉΒ», "build": "theia build --mode development", "start": "theia start --plugins=local-dir:plugins", "ΡΠΊΠ°ΡΠ°ΡΡ:ΠΏΠ»Π°Π³ΠΈΠ½Ρ": "theia ΡΠΊΠ°ΡΠ°ΡΡ:ΠΏΠ»Π°Π³ΠΈΠ½Ρ" }, "theiaPluginsDir": "ΠΏΠ»Π°Π³ΠΈΠ½Ρ", "theiaPlugins": { "vscode-builtin-extensions-pack": "https://open-vsx.org/api/eclipse-theia/builtin-extension-pack/1.50.1/file/eclipse-theia.builtin-extension-pack-1.50 .1.vsix" }, "theiaPluginsExcludeIds": [ "ms-vscode.js-ΠΎΡΠ»Π°Π΄ΠΊΠ°-ΠΊΠΎΠΌΠΏΠ°Π½ΡΠΎΠ½", "vscode.extension-ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅", "vscode.git", "vscode.git-ui", "vscode.github", "vscode.github-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ", "vscode.microsoft-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ" ] }
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² (ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ):
-
theiaPluginsDir
: ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π² -
theiaPlugins
: Π½Π°Π±ΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ (ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ) β ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ URL-Π°Π΄ΡΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Open VSX, Github Releases ΠΈ Ρ. Π΄.) -
theiaPluginsExcludeIds
: ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²
Π‘Π±ΠΎΡΠΊΠ°
Π‘Π½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Theia Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΏΡΡΠΆΠ° theia build
ΠΏΡΡΠΆΠ°
ΠΈΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» theia
, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ @theia/cli
Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ build
Ρ theia
.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΎ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ΡΠΎ Π΅ΡΡΡ Π·Π°ΠΏΡΡΠ°Π½ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½.
Running
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
yarn theia start --plugins=local-dir:plugins
ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡΡΡ Π½Π° ΡΡΠ΅Π½Π°ΡΠΈΠΉ start
ΠΈΠ· package.json
:
yarn start
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°
ΠΈ --hostname
, --port
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
ΠΈ ΠΏΠΎΡΡΠ°Ρ
,
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠΊΡΡΡΡ /workspace
Π½Π° Π²ΡΠ΅Ρ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
ΠΈ ΠΏΠΎΡΡΡ 8080
:
yarn start /my-workspace --hostname 0. 0.0.0 --port 8080
Π ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Theia Π·Π°ΠΏΡΡΠ΅Π½ΠΎ ΠΈ ΡΠ»ΡΡΠ°Π΅Ρ:
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Π²Π΅Π΄Ρ ΠΏΠ΅ΡΠ°ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π² Π½ΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ
ΠΠ»Π°Π³ΠΈΠ½Ρ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ
ΠΡΠ»ΠΈ Π² ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ Theia Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ Theia, Π³Π΄Π΅ Π½Π°ΠΉΡΠΈ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ.
ΠΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ --plugins
ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ start
, ΡΠ΅Π³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ theia start
Π½Π°ΠΏΡΡΠΌΡΡ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°:
export THEIA_DEFAULT_PLUGINS=local-dir:plugins
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π·Π° ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π·Π° ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
oniguruma
) Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΡΠ΅ΠΊΠΎΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ:[4/4] Π‘Π±ΠΎΡΠΊΠ° ΡΠ²Π΅ΠΆΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²... [1/9] Π₯Π₯Π₯Π₯Π₯ [2/9] Π₯Π₯Π₯Π₯Π₯ [3/9] Π₯Π₯Π₯Π₯Π₯ [4/9] Π₯Π₯Π₯Π₯Π₯ ΠΎΡΠΈΠ±ΠΊΠ° /theiaide/node_modules/XXXXX: ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°. ΠΠΎΠ΄ Π²ΡΡ ΠΎΠ΄Π°: 1 ΠΠΎΠΌΠ°Π½Π΄Π°: node-gyp ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΡΡ ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ: ΠΠ°ΡΠ°Π»ΠΎΠ³: /theiaide/node_modules/XXXXX ΠΡΡ ΠΎΠ΄: gyp info ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ok ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ gyp Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ [email protected] ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ gyp Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ [email protected] | Π»ΠΈΠ½ΡΠΊΡ | x64 gyp http GET https://nodejs.org/download/release/v8.15.0/node-v8.15.0-headers.tar.gz gyp WARN install ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ, ΠΎΡΠΊΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π³ΠΈΠΏ ΠΠ¨ΠΠΠΠ! ΠΎΡΠΈΠ±ΠΊΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³ΠΈΠΏ ΠΠ¨ΠΠΠΠ! ΠΡΠΈΠ±ΠΊΠ° ΡΡΠ΅ΠΊΠ°: ΡΡΠ΅Π½ΠΈΠ΅ ECONNRESET Π³ΠΈΠΏ ΠΠ¨ΠΠΠΠ! ΡΡΠ΅ΠΊ Π² TLSWrap.onread (net.js:622:25) Π³ΠΈΠΏ ΠΠ¨ΠΠΠΠ! Π‘ΠΈΡΡΠ΅ΠΌΠ° Linux 3.10.0-862.11.6.el7.x86_64 Π³ΠΈΠΏ ΠΠ¨ΠΠΠΠ! ΠΊΠΎΠΌΠ°Π½Π΄Π° "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΡΡ" Π³ΠΈΠΏ ΠΠ¨ΠΠΠΠ! cwd /theiaide/node_modules/XXXXX Π³ΠΈΠΏ ΠΠ¨ΠΠΠΠ! ΡΠ·Π΅Π» -v v8.15.0
ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ node-gyp Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ/NPM. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠ°ΠΉΠ» node-headers
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΠ»ΠΊΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΡΡΠ΅ΠΊΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ.
(Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ https://nodejs. org/download/release/v8.15.0/node-v8.15.0-headers.tar.gz
) ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
npm_config_tarball=/path /to/node-v8.15.0-headers.tar.gz yarn install
SAP Web IDE | SAP Community
ΠΠ»Π°Π½ΠΈΡΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° SAP Business Application Studio
ΠΠ°ΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π²Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ SAP Web IDE Π½Π° Π΅Π³ΠΎ ΠΏΡΠ΅Π΅ΠΌΠ½ΠΈΠΊΠ° β SAP Business Application Studio. ΠΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ SAP BTP ΠΈ Π΅Π³ΠΎ ΠΏΡΠΎΠ±Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ.
ΠΡΠΎΡΠΈΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±Π»ΠΎΠ³Π΅
ΠΠ΅ΡΠ΅Π½ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² SAP Fiori ΠΈΠ· SAP Web IDE Π² SAP Business Application Studio
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² SAP Fiori ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΌΠ°ΡΡΠ΅ΡΠ°, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ SAP Fiori Π΄Π»Ρ Π²Π΅ΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ SAP Fiori.
Π§ΠΈΡΠ°ΡΡ Π±Π»ΠΎΠ³
ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ CAP ΠΈΠ· SAP Web IDE Π² SAP Business Application Studio
SAP Business Application Studio (ΠΈΠ»ΠΈ BAS) β ΡΡΠΎ ΡΠ²ΠΎΠ»ΡΡΠΈΡ SAP Web IDE. Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ CAP Java ΠΈ CAP Node ΠΈΠ· SAP Web IDE Full-Stack Π² BAS ΠΈ ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΡ Π² BAS.
Π§ΠΈΡΠ°ΡΡ Π±Π»ΠΎΠ³
ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Mobile Development Kit (MDK) ΠΈΠ· SAP Web IDE Π² SAP Business Application Studio
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Mobile Development Kit (MDK) Π² SAP Business Π‘ΡΡΠ΄ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (BAS). Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Mobile Development Kit (MDK) ΠΈΠ· SAP Web IDE Full-Stack Π² BAS, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π΅Π³ΠΎ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅.
Π§ΠΈΡΠ°ΡΡ Π±Π»ΠΎΠ³
SAP Business Application Studio (BAS) ΠΈ SAP Web IDE Full-Stack
ΠΡΠ²Π΅Ρ Π½Π° ΡΠ°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠΉ Π²ΠΎΠΏΡΠΎΡ: ΡΠ΅ΠΌ BAS ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ SAP Web IDE Full-Stack?
ΠΡΠΎΡΠΈΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π±Π»ΠΎΠ³Π΅
SAP Web IDE β Π Π°ΡΡΠΈΡΡΡΠ΅ ΡΠ²ΠΎΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΡΠ΄ΡΡΠ΅ Π² ΠΊΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² SAP Web IDE. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΡΡΠ΅Π±Π½ΡΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΡ, ΠΊΡΡΡΡ, Π±Π»ΠΎΠ³ΠΈ ΠΈ Ρ. Π΄. Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠ½ΡΠΌ ΠΈ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΠ²ΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΠΈ Π°ΠΊΡΠΈΠ²Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ.
SAP Web IDE Learning JourneyΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ SAP Web IDE
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° SAP Business Technology Platform
ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° SAP BTP. ΠΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈ Π±ΡΡΡΡΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. ΠΠ½ ΠΏΡΠΎΠ²Π΅Π΄Π΅Ρ Π²Π°Ρ ΠΏΠΎ Π·ΠΎΠ»ΠΎΡΠΎΠΌΡ ΠΏΡΡΠΈ Π»ΡΡΡΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²Π°ΠΌ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅, ΠΈΠ·Π±Π°Π²Π»ΡΡ Π²Π°Ρ ΠΎΡ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ.
ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ CAP ΠΈΠ· SAP Web IDE Π² SAP Business Application StudioΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ SAP Cloud PlatformΠΡΡΡ Π³Π»Π°Π²Π½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ SAP Cloud Platform, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²ΡΠ΅ΠΌΡΠ Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ SAP Cloud Platform Ρ ΠΏΠΎΠΌΠΎΡΡΡ SAP Web IDESAP Cloud Application Programming Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ SAP Fiori
SAP Web IDE ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (UX) SAP Fiori, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ»Π°Π²Π½ΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ SAP. ΠΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΡΠΊΠΎΡΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ ΠΈ ΠΏΠΎΠ²ΡΡΠ°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈΡΡΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ SAP Fiori, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ SAP.
ΠΠ΅ΡΠ΅Π½ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² SAP Fiori ΠΈΠ· SAP Web IDE Π² SAP Business Application StudioopenSAP: Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ SAP Fiori Π² ΠΎΠ±Π»Π°ΠΊΠ΅ β Π²ΡΠΏΡΡΠΊ 2016 Π³. OPA5
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
SAP Web IDE ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ SAPUI5 Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ SAP Fiori UX ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ . ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, SAP Web IDE ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ SAP Mobile Services, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±Π΅Π· ΠΊΠΎΠ΄Π°, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ.