Π²ΡΠΏΡΡΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ° , Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² ΡΡΠΈΠ»Π΅ GitHub ΠΈ . Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΡΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ Ρ API GitHub. ΠΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Scala ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π‘Π£ΠΠ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ MySQL ΠΈ PostgreSQL.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ GitBucket:
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΠΈ Π·Π°ΠΊΡΡΡΡΡ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌ ΡΠ΅ΡΠ΅Π· HTTP ΠΈ SSH;
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ;
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² online;
- ΠΠ°Π»ΠΈΡΠΈΠ΅ Wiki Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ;
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ (Issues);
- Π‘ΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΡΠ²ΠΎΠΊ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (Pull request);
- Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅;
- ΠΡΠΎΡΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ LDAP;
- Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Ρ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°. Π Π²ΠΈΠ΄Π΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ gist-Π·Π°ΠΌΠ΅ΡΠΎΠΊ, ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π°Π½ΠΎΠ½ΡΠΎΠ², ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π²ΡΠ²ΠΎΠ΄ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π½Π° ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ», ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° AsciiDoc.
Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ°:
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²ΡΠ΅Ρ CLI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Docker). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π‘Π£ΠΠ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΠ» database.conf;
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ GITBUCKET_MAXFILEZIE (ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²), GITBUCKET_UPLOADTIMEOUT (ΡΠ°ΠΉΠΌΠ°ΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²), GITBUCKET_PLUGINDIR (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²) ΠΈ
GITBUCKET_VALIDATE_PASSWORD (Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΏΠ°ΡΠΎΠ»Ρ); - ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΡΠΈ ΠΎΡΠ΅Π½ΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² pull-Π·Π°ΠΏΡΠΎΡΠ΅ (ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π±ΠΎΠ»ΡΡΠΈΡ
pull-Π·Π°ΡΠΎΡΠΎΠ²);
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΠΏΡΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΠ΅ΡΠ° Π΄ΠΎΡΡΡΠΏΠ° Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
IP ΠΊ WebHook-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π±Π΅Π»ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ
Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
Π°Π΄ΡΠ΅ΡΠΎΠ²;
- Π Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ²Π΅ΡΡ Web API Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° Β«assigneeΒ» ΠΈ Β«assigneesΒ» Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·Π½Π°ΡΠΈΠ»ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΡΠΎΡΡΠΌ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
