Graudit ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ:
Π’Π΅ΡΡΠ²Π°Π½Π΅ΡΠΎ Π΅ Π²Π°ΠΆΠ½Π° ΡΠ°ΡΡ ΠΎΡ ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΡΠ» Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΎΡΡΡΠ΅Ρ. ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΡΠ΅ΡΡΠΎΠ²Π΅, Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΡΡ ΡΠ΅ΡΠ°Π²Π° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ½Π΅Ρ ΠΈΡΠΊΠ°ΠΌ Π΄Π° Π³ΠΎΠ²ΠΎΡΡ Π·Π° Π½Π°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π² ΠΊΠΎΠ΄Π°.
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π² ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΡΠ΅Π°Π»Π½ΠΎΡΡΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΎΡΡΡΠ΅Ρ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΠΎ Π΅Π΄Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΄ΠΎΡΠΈ Π±Π΅ΡΠ΅ Π²ΡΠ²Π΅Π΄Π΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈΡΡ ΡΠ΅ΡΠΌΠΈΠ½ DevSecOps. Π’ΠΎΠ·ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ, Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ ΠΈ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΌΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅
ΠΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΠΊΠ°ΡΠΎ ΡΡΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° (SAST), Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° (DAST), ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° (IAST), Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΡΡΡΠ°Π²Π° Π½Π° ΡΠΎΡΡΡΠ΅ΡΠ° ΠΈ Ρ.Π½.
Π‘ΡΠ°ΡΠΈΡΠ½ΠΎΡΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ° Π³ΡΠ΅ΡΠΊΠΈ Π²ΡΠ² Π²Π΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΊΠΎΠ΄. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΡΡΠ°ΡΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·.
Π©Π΅ ΡΠ΅ ΡΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠ° Π²ΡΡΡ Ρ ΡΡΠ°ΡΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΊΠΎΠ΄ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ ΠΏΡΠΎΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π·Π° Π΄Π° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°ΠΌ Π²ΡΠΈΡΠΊΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°.
ΠΠ°ΡΠΎ ΠΈΠ·Π±ΡΠ°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ°ΡΠΈΡΠ΅Π½ ΠΊΠΎΠ΄
ΠΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΈ Π·Π° ΡΠΎΠ²Π°: ΠΏΡΡΠ²ΠΎ, Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ Π΅, Π·Π°ΡΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡ ΠΎΡ ΡΡΠΌΠΈΡΠ»Π΅Π½ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π½Π° Π΄ΡΡΠ³ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ°Π»ΡΠΊ Π΅ΠΊΠΈΠΏ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅, ΠΈΠΌΠ°ΡΠ΅ ΡΡΠ΄Π΅ΡΠ½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠΏΠ΅ΡΡΠΈΡΠ΅ ΠΏΠ°ΡΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΎΡΡΡΠ΅Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π·Π° Π΄Π° ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° Π²Π°ΡΠ°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°. ΠΡΠΎΡΠΎ, Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ Π½Π°Π΅ΠΌΠ°Π½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ Π΅ΠΊΠΈΠΏ DevSecOps, ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π²ΠΈ.
ΠΠΎΠ±ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ, ΠΊΠ°ΡΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡ. ΠΠΎΡΠ°Π΄ΠΈ ΡΠΎΠ²Π° ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΠΏΠΎΡΡΠΈ Π²ΡΡΠΊΠ° ΡΡΠ΅Π΄Π°, ΠΏΠΎΠΊΡΠΈΠ²Π°ΠΉΠΊΠΈ ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ. ΠΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ²ΡΡΠΆΠ°Ρ ΡΠ°ΠΊΠΈΠ²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠ»ΠΈ, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΡΡ ΠΏΠΎ ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ.
ΠΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΌΠΎΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π½Π΅ Π΅ Π½Π°Π»ΠΈΡΠ½Π° Π² ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ ΠΎΡ Π²Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΈΠΌΠ°ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ°Π·ΠΊΠ»ΠΎΠ½ΠΈΡΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΡ ΠΊΠΎΠ΄ ΠΈ Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Π½Π΅Π³ΠΎ, Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ°, ΠΎΡ ΠΊΠΎΡΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΡΡΡΠ΅Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΠ½ΠΎ ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ΅ Π²Π·Π΅ΠΌΠ° Π΄ΠΎΡΡΠ° Π±ΡΡΠ·ΠΎ ΠΈ ΡΠΎΡΠ½ΠΎ: ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΡΠ°Π·ΡΠΈΡΠ°Ρ Π½Π° ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ° ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅, Π½Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ Π·Π° ΠΎΡΠΊΡΠΈΡΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° 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.
ΠΠΎ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉ Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π° ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π² ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΊΠ°ΡΠΎ ΡΠΎΠ·ΠΈ.
ΠΠ°ΠΏΠΎΡΠ½Π΅ΡΠ΅β¦
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ°Π·Π³Π»Π΅Π΄Π°Ρ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° Π½Π°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ β ΡΡΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΡΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΡΠ°ΡΠΈΡΠ΅Π½ ΠΊΠΎΠ΄ Π΅ Π»Π΅ΡΠ½ΠΎ, Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ Π½Π°ΡΠ°Π»ΠΎΡΠΎ. ΠΠ° Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° Π²Π°ΡΠ°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ Π΄ΡΡΠ³ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π² ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΡΠ» Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΎΡΡΡΠ΅Ρ.
ΠΡΠ½ΠΎΡΠ½ΠΎ ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° ΡΠ΅ΠΊΠ»Π°ΠΌΠ°ΡΠ°
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com