แžขแŸ’แž“แž€แž…แŸแž‰ - แžŸแž€แž˜แŸ’แž˜แž—แžถแž– GitHub แžŠแžพแž˜แŸ’แž”แžธแž”แž„แŸ’แžแŸ†แžฑแŸ’แž™แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžแŸ’แž›แžฝแž“แžฏแž„แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แž”แŸ’แžšแžพแžƒแŸ’แž›แžถแŸ†แž„

แž“แŸ…แž€แŸ’แž“แžปแž„แž–แŸ’แžšแŸ†แžŠแŸ‚แž“แž“แŸƒแž‚แž˜แŸ’แžšแŸ„แž„ แžขแŸ’แž“แž€แž…แŸแž‰แž•แŸ’แžŸแžถแž™ bot แž˜แžฝแž™แžแŸ’แžšแžผแžœแž”แžถแž“แžšแŸ€แž”แž…แŸ†แžŸแž˜แŸ’แžšแžถแž”แŸ‹ GitHub แžŠแŸ„แž™แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แž‰แŸ’แž แžถแž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžแŸ’แž›แžฝแž“แžฏแž„แžŠแŸ„แž™แž”แž„แŸ’แžแŸ†แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžƒแŸ’แž›แžถแŸ†แž„แŸ” แž“แŸ…แž›แžพ GitHub แžขแŸ’แž“แž€แžขแžถแž…แžŸแŸ’แžœแŸ‚แž„แžšแž€แžƒแŸ’แž›แžถแŸ†แž„แžŠแŸ‚แž›แž˜แžถแž“แž˜แžปแžแž„แžถแžšแžแŸ‚แž˜แžฝแž™แž‚แžแŸ‹แž‚แžบแžŸแŸ†แžšแž”แžŸแŸ†แžšแžฝแž›แž˜แž“แžปแžŸแŸ’แžŸแžแžถแž˜แžšแž™แŸˆแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž”แž‰แŸ’แž แžถแŸ” แž–แžฝแž€แž‚แŸแžแŸ’แž›แŸ‡แžŸแžปแŸ†แžฑแŸ’แž™แžขแŸ’แž“แž€แžŠแŸ‚แž›แž…แžถแž€แž…แŸแž‰แž–แžธแž”แž‰แŸ’แž แžถ แž”แŸ†แž–แŸแž‰แž‘แž˜แŸ’แžšแž„แŸ‹แž”แŸ‚แž”แž”แž‘แŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แžขแŸ’แž“แž€แžŸแž˜แŸ’แžšแž”แžŸแž˜แŸ’แžšแžฝแž›แž˜แž€แžŠแž›แŸ‹ แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžแžถแž‘แž˜แŸ’แžšแž„แŸ‹แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ†แž–แŸแž‰แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœ แž แžพแž™แžŠแžถแž€แŸ‹แžŸแŸ’แž›แžถแž€แžŸแŸ’แžšแž”แžแžถแž˜แžขแŸ’แžœแžธแžŠแŸ‚แž›แž”แžถแž“แž”แž‰แŸ’แž‡แžถแž€แŸ‹แž€แŸ’แž“แžปแž„แž‘แž˜แŸ’แžšแž„แŸ‹ (แžŸแŸ’แž›แžถแž€แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แžŠแŸ„แž™แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŠแŸ‚แž›แž˜แžถแž“แžŸแžทแž‘แŸ’แž’แžท แž”แŸ’แžšแžŸแžทแž“แž”แžพแž–แžฝแž€แž‚แŸแž˜แžทแž“แž”แžถแž“แž”แž‰แŸ’แž‡แžถแž€แŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„แž‚แŸ†แžšแžผ)แŸ” แžงแž‘แžถแž แžšแžŽแŸแž“แŸƒแžŸแž แž‚แž˜แž“แŸแž”แŸ‚แž”แž“แŸแŸ‡ แž”แŸ’แžšแž—แž–แž”แžพแž€แž…แŸ†แž -แž‚แŸ†แž“แžทแž/แž”แŸ’แžšแž—แž–แž”แžพแž€แž…แŸ†แž -แž‚แŸ†แž“แžทแž.

แžขแŸ’แž“แž€แžŸแž˜แŸ’แžšแž”แžŸแž˜แŸ’แžšแžฝแž›แž˜แžทแž“แž˜แž€แžŠแž›แŸ‹แž—แŸ’แž›แžถแž˜แŸ—แž‘แŸแŸ” แžŠแžผแž…แŸ’แž“แŸแŸ‡ แžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแžŸแžปแž–แž›แž—แžถแž–แž‘แž˜แŸ’แžšแž„แŸ‹ แž“แžทแž„แžขแž“แžปแžœแžแŸ’แžแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžš แžšแŸ€แž”แž…แŸ† แž”แž„แŸ’แž แžถแž‰แž“แŸ…แž€แŸ’แž“แžปแž„แž–แŸแžแŸŒแž˜แžถแž“ GitHub แŸ” bot แžแŸ’แžšแžผแžœแž”แžถแž“แžŸแžšแžŸแŸแžšแž“แŸ…แž€แŸ’แž“แžปแž„ Python แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžขแŸ’แž“แž€แž“แŸ…แžแŸ‚แžแŸ’แžšแžผแžœแž”แžพแž€แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžœแžถแžแžถแž˜แžšแž™แŸˆ node.js แž–แŸ’แžšแŸ„แŸ‡ GitHub แž˜แžถแž“แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แžแŸ‚ 2 แž”แŸ’แžšแž—แŸแž‘แž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡แž‚แžบ node.js แž“แžทแž„ docker แž แžพแž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹ docker แž’แžปแž„แžŠแžผแž…แž‚แŸ’แž“แžถแžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แž‘แžปแž€แžŠแŸ†แž”แžผแž„แž‡แžถ node.js แž แžพแž™ แž•แŸ’แž‘แžปแž€แž‘แŸ…แž€แŸ’แž“แžปแž„แž’แžปแž„แž˜แžฝแž™แž‘แŸ€แž แž“แŸ„แŸ‡แž‡แžถแžšแž™แŸˆแž–แŸแž›แž™แžผแžš แžŠแŸ„แž™แž–แžทแž…แžถแžšแžŽแžถแžแžถแž€แžปแž„แžแžบแž“แŸแžšแžŠแŸ‚แž›แž˜แžถแž“ node.js แž˜แžถแž“ python3 แž“แžทแž„แžขแŸ’แžœแžธแŸ—แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแžŠแŸ‚แž›แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž€แžถแžš แžœแžถแž‡แžถแž€แžถแžšแžŸแž˜แž แŸแžแžปแž•แž›แž€แŸ’แž“แžปแž„แž€แžถแžšแž•แŸ’แž‘แžปแž€แž—แžถแž–แžขแžถแžŸแŸ’แžšแŸแž™แž‘แŸ…แž€แŸ’แž“แžปแž„แžœแžถ แžŠแŸ„แž™แžŸแžถแžšแž–แžฝแž€แžœแžถแžแžผแž…แŸ”

แž›แž€แŸ’แžแžŽแŸˆแž–แžทแžŸแŸแžŸ:

  • แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แžŠแŸ„แž™แž”แŸ’แžšแžพแž‘แž˜แŸ’แžšแž„แŸ‹ YAML config แž“แžทแž„ Markdown แŸ”
  • แž”แŸ’แž›แžปแž€แž˜แžฝแž™แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ…แž‚แŸ†แžšแžผ Markdown แž“แžธแž˜แžฝแž™แŸ—แžŠแŸ‚แž›แž–แžทแž–แžŽแŸŒแž“แžถแžขแŸ†แž–แžธแž›แž€แŸ’แžแžแžŽแŸ’แžŒแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แŸ†แž–แŸแž‰แž‘แž˜แŸ’แžšแž„แŸ‹แž”แŸ‚แž”แž”แž‘แžฑแŸ’แž™แž”แžถแž“แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœ แž“แžทแž„แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แžŠแŸ‚แž›แž…แž„แŸ‹แž”แžถแž“แŸ”
  • แžฏแž€แžŸแžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž‡แžถแž˜แžฝแž™แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžŸแž€แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แŸ”
  • แž‘แž˜แŸ’แžšแž„แŸ‹แž˜แžถแž“แž•แŸ’แž“แŸ‚แž€แŸ” แž•แŸ’แž“แŸ‚แž€แž˜แžถแž“ แŸข แž”แŸ’แžšแž—แŸแž‘แŸ–
    • แžขแžแŸ’แžแž”แž‘แžฅแžแž‚แžทแžแžแŸ’แž›แŸƒแŸ” แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แžขแžถแž…แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžแžถแžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžšแŸ†แžแžถแž“แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แŸ†แž–แŸแž‰แžขแŸ’แžœแžธแž˜แžฝแž™แž“แŸ…แž‘แžธแž“แŸ„แŸ‡แŸ” แžขแžแŸ’แžแž“แŸแž™แž“แŸƒแžขแžแŸ’แžแž”แž‘แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž–แžทแž“แžทแžแŸ’แž™แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž‘แŸแŸ”
    • แž”แŸ’แžšแžขแž”แŸ‹แž’แžธแž€แŸ” แžขแŸ’แž“แž€แžขแžถแž…แžแž˜แŸ’แžšแžผแžœแžฑแŸ’แž™แž”แŸ’แžšแžขแž”แŸ‹แž’แžธแž€ n แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ†แž–แŸแž‰แžŠแžผแž…แž“แŸแŸ‡ 0 {= m1 {= n {= m2 {= แž…แŸ†แž“แžฝแž“แžŸแžšแžปแž”แž“แŸƒแž”แŸ’แžšแžขแž”แŸ‹แž’แžธแž€แž“แŸ…แž€แŸ’แž“แžปแž„แž•แŸ’แž“แŸ‚แž€แŸ” แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžแžถแž”แŸ’แžšแžขแž”แŸ‹แž’แžธแž€แžแŸ’แžšแžผแžœแž‚แŸ’แž“แžถแž“แžนแž„แž”แŸ’แžšแžขแž”แŸ‹แž’แžธแž€แž“แŸ…แž€แŸ’แž“แžปแž„แž‚แŸ†แžšแžผแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแž‘แž„แŸ‹แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ†แžŽแžแŸ‹แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœ แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แžขแžถแž…แž”แž“แŸ’แžแŸ‚แž˜แžŸแŸ’แž›แžถแž€แž‘แŸ…แž”แž‰แŸ’แž แžถแžšแŸ€แž„แŸ—แžแŸ’แž›แžฝแž“แŸ” แž‘แž„แŸ‹แž‡แžถแžแžทแŸ”
  • แž”แŸ’แžšแžŸแžทแž“แž”แžพแž‘แž˜แŸ’แžšแž„แŸ‹แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ†แž–แŸแž‰แž˜แžทแž“แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœ แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แžŽแŸ‚แž“แžถแŸ†แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž–แžธแžšแž”แŸ€แž”แž”แŸ†แž–แŸแž‰แžœแžถแžฑแŸ’แž™แž”แžถแž“แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœ แž แžพแž™แžŠแžถแž€แŸ‹แžŸแŸ’แž›แžถแž€แž–แžทแžŸแŸแžŸแž“แŸ…แž›แžพแžœแžถแŸ”
  • แž”แŸ’แžšแžŸแžทแž“แž”แžพแž‘แž˜แŸ’แžšแž„แŸ‹แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ‚แžแž˜แŸ’แžšแžผแžœแž€แŸ’แž“แžปแž„แžšแž™แŸˆแž–แŸแž›แž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แžŽแžถแž˜แžฝแž™แž“แŸ„แŸ‡ แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แžขแžถแž…แž”แžทแž‘แž”แž‰แŸ’แž แžถแž“แŸแŸ‡แž”แžถแž“แŸ” แž€แžถแžšแž แžถแž˜แžƒแžถแžแŸ‹แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžท แž€แžถแžšแž›แžปแž” แž“แžทแž„แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž”แž‰แŸ’แž แžถแž˜แžทแž“แž‘แžถแž“แŸ‹แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแž“แŸ…แžกแžพแž™แž‘แŸ แžŠแŸ„แž™แžŸแžถแžšแž€แž„แŸ’แžœแŸ‡ API แž•แŸ’แž›แžผแžœแž€แžถแžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แž…แžถแŸ†แž”แžถแž…แŸ‹ แž“แžทแž„แž”แž‰แŸ’แž แžถแž‡แžถแž˜แžฝแž™แž€แžถแžšแž•แŸ’แž‘แžปแž€แžšแžŠแŸ’แž‹แŸ”
  • แž”แŸ’แžšแžŸแžทแž“แž”แžพแž”แž‰แŸ’แž แžถแžแŸ’แžšแžผแžœแž”แžถแž“แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™ แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แž“แžนแž„แžŠแž€แžŸแŸ’แž›แžถแž€แž…แŸแž‰แŸ”
  • แž‡แžถโ€‹แž€แžถแžšโ€‹แž–แžทแžโ€‹แžŽแžถแžŸแŸ‹โ€‹แž‘แž˜แŸ’แžšแž„แŸ‹โ€‹แž€แžถแžšโ€‹แž†แŸ’แž›แžพแž™โ€‹แžแž”โ€‹แžŸแž€แž˜แŸ’แž˜แž—แžถแž–โ€‹แž‚แžบโ€‹แžขแžถแž…โ€‹แž”แŸ’แžŠแžผแžšโ€‹แžแžถแž˜โ€‹แž”แŸ†แžŽแž„แŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹