Graudit ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ:
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β Π²Π°ΠΆΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΎΠ² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΡΠ΅ΡΠ°Π΅Ρ ΡΠ²ΠΎΡ Π·Π°Π΄Π°ΡΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π² ΠΊΠΎΠ΄Π΅.
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠ΅Π°Π»ΠΈΡΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². Π ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ Π±ΡΠ» Π΄Π°ΠΆΠ΅ Π²Π²Π΅Π΄ΡΠ½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½ DevSecOps. ΠΠΎΠ΄ ΡΡΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ΄ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ
Π½Π° Π²ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ open source ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (SAST), Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (DAST), ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (IAST), Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ (Software Composition Analysis) ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΡΡΠ²Π»ΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ.
Π― ΠΎΡΡΠ°Π½ΠΎΠ²Π»ΡΡΡ Π½Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΊΠΎΠ΄Π° ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΠΏΡΠΎΡΡΡΠΌ open source ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
ΠΠΎΡΠ΅ΠΌΡ Ρ Π²ΡΠ±ΡΠ°Π» open source ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°
ΠΠ° ΡΠΎ Π΅ΡΡΡ ΡΡΠ΄ ΠΏΡΠΈΡΠΈΠ½: Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ Π΅Π΄ΠΈΠ½ΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΠΏΠΎΠΌΠΎΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠ°ΠΏ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΡΡΠΎ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ Π²Π°Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π°Π½ΠΈΠΌΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ DevSecOps, ΡΡΠΎ Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π²Π°ΡΠΈ ΡΠ°ΡΡ ΠΎΠ΄Ρ.
Π₯ΠΎΡΠΎΡΠΈΠ΅ open source ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡ Ρ ΡΡΡΡΠΎΠΌ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ, ΠΎΡ Π²Π°ΡΡΠ²Π°Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΠΊΡΡΠ³ Π·Π°Π΄Π°Ρ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ΄ΡΡΠΆΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ ΡΠΆΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΠ»ΠΈ, ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ.
ΠΠΎ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅Ρ Π² Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ Π²Π°ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ΅. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡΠΊΠ½ΡΡΡ Π΅Π³ΠΎ ΠΊΠΎΠ΄ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π²Π°ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π²Π»ΠΈΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π²Π½Π΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΈ ΠΏΠΎ Π΄Π΅Π»Ρ: ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ open source ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΠΎΡΠ·ΡΠ²Ρ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π½Π° ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ .
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Graudit Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°
ΠΠ»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ· Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ OWASP ΠΈ ΡΡΠ°ΡΠ°ΡΡΡΡ ΠΎΡ Π²Π°ΡΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ·ΡΠΊΠΎΠ².
ΠΠ΄Π΅ΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΠΎΡ
ΠΎΠΆΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° β Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠΎ Graudit ΠΎΡΠ΅Π½Ρ Π³ΠΈΠ±ΠΎΠΊ ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ Π²Π°Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Graudit ΡΠ΅ΡΠΈΡΡ Π½Π΅ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. Π’ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΈΡΠΊΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π²ΠΎΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π»ΠΈΠ±ΠΎ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΎ Π²ΡΠ΅Ρ Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ . Π ΡΡΠΎΠΌ ΡΠΎΠΆΠ΅ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ Graudit. ΠΡΠ°ΠΊ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎ:
$ git clone https://github.com/wireghoul/graudit
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π»Ρ Graudit ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ»ΠΊΡ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π°Π»ΠΈΠ°Ρ Π² .bashrc (ΠΈΠ»ΠΈ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅):
#------ .bashrc ------
alias graudit="~/bin/graudit"
ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ:
$ source ~/.bashrc # OR
$ exex $SHELL
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΡΠΏΠ΅ΡΠ½ΠΎ Π»ΠΈ ΠΏΡΠΎΡΠ»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°:
$ graudit -h
ΠΡΠ»ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅, ΡΠΎ, Π·Π½Π°ΡΠΈΡ, Π²ΡΡ Ρ ΠΎΡΠΎΡΠΎ.
Π― Π±ΡΠ΄Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΠΌΠΎΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΠ·ΡΠΊΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΌΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ ~/gradit/signatures:
$ graudit -d ~/gradit/signatures/js.db
ΠΡΠ°ΠΊ, Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π» Π΄Π²Π° js-ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈ Graudit Π²ΡΠ²Π΅Π» Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΡ Π² ΠΌΠΎΡΠΌ ΠΊΠΎΠ΄Π΅:
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ. Π‘ΠΏΠΈΡΠΎΠΊ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Graudit
Graudit ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΠΊΡΡΠ³Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΡΡΠΎΠΉΠ½ΠΎ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ Π»ΡΠ±ΡΠΌΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΠ½ΡΠΌΠΈ Π°Π½Π°Π»ΠΎΠ³Π°ΠΌΠΈ. Π ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π²Π½ΠΎΡΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ, Π° ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, Π½ΠΎ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΡΠ°ΡΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ.
ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, Π² ΡΡΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ°ΡΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π°. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π΄ΠΎΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Graudit.
ΠΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π² ΠΊΠΎΠ΄Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.
ΠΠ°ΡΠ°Π»ΠΎ…
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π» ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ β ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎΠ²Π΅ΡΡΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° Π»Π΅Π³ΠΊΠΎ, Π½ΠΎ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΎ. Π§ΡΠΎΠ±Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ, Π½ΡΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ° ΠΏΡΠ°Π²Π°Ρ ΡΠ΅ΠΊΠ»Π°ΠΌΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com