home.social

#github_actions — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #github_actions, aggregated by home.social.

  1. AGENTS.md создавали, чтобы помогать агентам. Я использую его, чтобы их вычислять

    Вместе с растущей AI-индустрией приходят и её побочки. Я мейнтейнер библиотеки react-native-tdlib и довольно быстро заметил: все больше PR выглядят как чистый вывод агента. Сначала я честно реагировал — писал в каждый такой PR вопросы: тестировали ли вы это, что именно меняет ваш код, зачем вот эта строчка. В какой-то момент понял, что трачу время на переписку с людьми, которые сами не знают, что написали. Первая мысль была — написать большой README или CONTRIBUTING и прямым текстом сказать: «сгенерированный код не принимаю». Но тут же упёрся в вопрос: а как доказать, что код сгенерирован? Аргумент «чую, тут пахнет Claude Code» — так себе позиция для публичного спора в комментариях к PR. Решение оказалось довольно простым — AGENTS.md . Он конечно не доказывает, что PR сгенерирован, но отлично ловит самые очевидные автоматические PR, где автор, кажется, вообще не участвовал в процессе.

    habr.com/ru/articles/1038786/

    #AGENTSmd #AIагенты #open_source #pull_request #спам #React_Native #GitHub_Actions #code_review #мейнтейнер #Claude_Code

  2. AGENTS.md создавали, чтобы помогать агентам. Я использую его, чтобы их вычислять

    Вместе с растущей AI-индустрией приходят и её побочки. Я мейнтейнер библиотеки react-native-tdlib и довольно быстро заметил: все больше PR выглядят как чистый вывод агента. Сначала я честно реагировал — писал в каждый такой PR вопросы: тестировали ли вы это, что именно меняет ваш код, зачем вот эта строчка. В какой-то момент понял, что трачу время на переписку с людьми, которые сами не знают, что написали. Первая мысль была — написать большой README или CONTRIBUTING и прямым текстом сказать: «сгенерированный код не принимаю». Но тут же упёрся в вопрос: а как доказать, что код сгенерирован? Аргумент «чую, тут пахнет Claude Code» — так себе позиция для публичного спора в комментариях к PR. Решение оказалось довольно простым — AGENTS.md . Он конечно не доказывает, что PR сгенерирован, но отлично ловит самые очевидные автоматические PR, где автор, кажется, вообще не участвовал в процессе.

    habr.com/ru/articles/1038786/

    #AGENTSmd #AIагенты #open_source #pull_request #спам #React_Native #GitHub_Actions #code_review #мейнтейнер #Claude_Code

  3. AGENTS.md создавали, чтобы помогать агентам. Я использую его, чтобы их вычислять

    Вместе с растущей AI-индустрией приходят и её побочки. Я мейнтейнер библиотеки react-native-tdlib и довольно быстро заметил: все больше PR выглядят как чистый вывод агента. Сначала я честно реагировал — писал в каждый такой PR вопросы: тестировали ли вы это, что именно меняет ваш код, зачем вот эта строчка. В какой-то момент понял, что трачу время на переписку с людьми, которые сами не знают, что написали. Первая мысль была — написать большой README или CONTRIBUTING и прямым текстом сказать: «сгенерированный код не принимаю». Но тут же упёрся в вопрос: а как доказать, что код сгенерирован? Аргумент «чую, тут пахнет Claude Code» — так себе позиция для публичного спора в комментариях к PR. Решение оказалось довольно простым — AGENTS.md . Он конечно не доказывает, что PR сгенерирован, но отлично ловит самые очевидные автоматические PR, где автор, кажется, вообще не участвовал в процессе.

    habr.com/ru/articles/1038786/

    #AGENTSmd #AIагенты #open_source #pull_request #спам #React_Native #GitHub_Actions #code_review #мейнтейнер #Claude_Code

  4. AGENTS.md создавали, чтобы помогать агентам. Я использую его, чтобы их вычислять

    Вместе с растущей AI-индустрией приходят и её побочки. Я мейнтейнер библиотеки react-native-tdlib и довольно быстро заметил: все больше PR выглядят как чистый вывод агента. Сначала я честно реагировал — писал в каждый такой PR вопросы: тестировали ли вы это, что именно меняет ваш код, зачем вот эта строчка. В какой-то момент понял, что трачу время на переписку с людьми, которые сами не знают, что написали. Первая мысль была — написать большой README или CONTRIBUTING и прямым текстом сказать: «сгенерированный код не принимаю». Но тут же упёрся в вопрос: а как доказать, что код сгенерирован? Аргумент «чую, тут пахнет Claude Code» — так себе позиция для публичного спора в комментариях к PR. Решение оказалось довольно простым — AGENTS.md . Он конечно не доказывает, что PR сгенерирован, но отлично ловит самые очевидные автоматические PR, где автор, кажется, вообще не участвовал в процессе.

    habr.com/ru/articles/1038786/

    #AGENTSmd #AIагенты #open_source #pull_request #спам #React_Native #GitHub_Actions #code_review #мейнтейнер #Claude_Code

  5. RustDesk Pro в России не купить. После долгих лет администрирования мы собрали своё честное решение

    Берем официальный RustDesk (AGPLv3), не делаем форк, патчим его на лету в GitHub Actions при каждой сборке клиента. Поверх - российская инфраструктура: серверы в РФ, оплата по счёту юр.лицам, корпоративный SSO через Active Directory и Яндекс ID, защита от мошенничества на Android. К концу мая - стабильный релиз. Меня зовут Артур Валиев. Я делаю не «решение для импортозамещения с сертификацией ФСТЭК» ради закупок. Просто работающий продукт, который я бы сам хотел использовать десять лет назад, когда сидел на саппорте у клиентов.

    habr.com/ru/articles/1038580/

    #RustDesk #удалённый_рабочий_стол #импортозамещение #AGPL #GitHub_Actions #российский_SaaS #B2B #Active_Directory #Yandex_ID #антифрод

  6. RustDesk Pro в России не купить. После долгих лет администрирования мы собрали своё честное решение

    Берем официальный RustDesk (AGPLv3), не делаем форк, патчим его на лету в GitHub Actions при каждой сборке клиента. Поверх - российская инфраструктура: серверы в РФ, оплата по счёту юр.лицам, корпоративный SSO через Active Directory и Яндекс ID, защита от мошенничества на Android. К концу мая - стабильный релиз. Меня зовут Артур Валиев. Я делаю не «решение для импортозамещения с сертификацией ФСТЭК» ради закупок. Просто работающий продукт, который я бы сам хотел использовать десять лет назад, когда сидел на саппорте у клиентов.

    habr.com/ru/articles/1038580/

    #RustDesk #удалённый_рабочий_стол #импортозамещение #AGPL #GitHub_Actions #российский_SaaS #B2B #Active_Directory #Yandex_ID #антифрод

  7. RustDesk Pro в России не купить. После долгих лет администрирования мы собрали своё честное решение

    Берем официальный RustDesk (AGPLv3), не делаем форк, патчим его на лету в GitHub Actions при каждой сборке клиента. Поверх - российская инфраструктура: серверы в РФ, оплата по счёту юр.лицам, корпоративный SSO через Active Directory и Яндекс ID, защита от мошенничества на Android. К концу мая - стабильный релиз. Меня зовут Артур Валиев. Я делаю не «решение для импортозамещения с сертификацией ФСТЭК» ради закупок. Просто работающий продукт, который я бы сам хотел использовать десять лет назад, когда сидел на саппорте у клиентов.

    habr.com/ru/articles/1038580/

    #RustDesk #удалённый_рабочий_стол #импортозамещение #AGPL #GitHub_Actions #российский_SaaS #B2B #Active_Directory #Yandex_ID #антифрод

  8. RustDesk Pro в России не купить. После долгих лет администрирования мы собрали своё честное решение

    Берем официальный RustDesk (AGPLv3), не делаем форк, патчим его на лету в GitHub Actions при каждой сборке клиента. Поверх - российская инфраструктура: серверы в РФ, оплата по счёту юр.лицам, корпоративный SSO через Active Directory и Яндекс ID, защита от мошенничества на Android. К концу мая - стабильный релиз. Меня зовут Артур Валиев. Я делаю не «решение для импортозамещения с сертификацией ФСТЭК» ради закупок. Просто работающий продукт, который я бы сам хотел использовать десять лет назад, когда сидел на саппорте у клиентов.

    habr.com/ru/articles/1038580/

    #RustDesk #удалённый_рабочий_стол #импортозамещение #AGPL #GitHub_Actions #российский_SaaS #B2B #Active_Directory #Yandex_ID #антифрод

  9. Mini Shai-Hulud Worm Compromises TanStack, Mistral AI, Guardrails AI & 169 Packages

    A large-scale supply chain attack targeted npm and PyPI packages from major projects like TanStack, Mistral AI, UiPath, and OpenSearch, exploiting GitHub Actions vulnerabilities to steal credentials and publish malici...

    🔗 salehgnutux.github.io/GT-NEWST

    #Mini_Shai-Hulud #Cybersecurity #Supply_Chain #npm #PyPI #TanStack #Mistral_AI #GitHub_Actions

  10. Mini Shai-Hulud Worm Compromises TanStack, Mistral AI, Guardrails AI & 169 Packages

    A large-scale supply chain attack targeted npm and PyPI packages from major projects like TanStack, Mistral AI, UiPath, and OpenSearch, exploiting GitHub Actions vulnerabilities to steal credentials and publish malici...

    🔗 salehgnutux.github.io/GT-NEWST

    #Mini_Shai-Hulud #Cybersecurity #Supply_Chain #npm #PyPI #TanStack #Mistral_AI #GitHub_Actions

  11. Mini Shai-Hulud Worm Compromises TanStack, Mistral AI, Guardrails AI & 169 Packages

    A large-scale supply chain attack targeted npm and PyPI packages from major projects like TanStack, Mistral AI, UiPath, and OpenSearch, exploiting GitHub Actions vulnerabilities to steal credentials and publish malici...

    🔗 salehgnutux.github.io/GT-NEWST

    #Mini_Shai-Hulud #Cybersecurity #Supply_Chain #npm #PyPI #TanStack #Mistral_AI #GitHub_Actions

  12. دودة Mini Shai-Hulud: هجوم سلسلة توريد يطال TanStack وMistral AI و169 حزمة برمجية

    هجوم واسع النطاق لسلسلة التوريد استهدف حزم npm وPyPI الخاصة بمشاريع كبرى مثل TanStack وMistral AI وUiPath وOpenSearch، مستغلاً ثغرات في GitHub Actions لسرقة الشهادات ونشر برمجيات خبيثة مع أدوات إثبات صحة مزورة.

    🔗 salehgnutux.github.io/GT-NEWST

    #Mini_Shai-Hulud #أمن_سيبراني #سلسلة_توريد #npm #PyPI #TanStack #Mistral_AI #GitHub_Actions

  13. دودة Mini Shai-Hulud: هجوم سلسلة توريد يطال TanStack وMistral AI و169 حزمة برمجية

    هجوم واسع النطاق لسلسلة التوريد استهدف حزم npm وPyPI الخاصة بمشاريع كبرى مثل TanStack وMistral AI وUiPath وOpenSearch، مستغلاً ثغرات في GitHub Actions لسرقة الشهادات ونشر برمجيات خبيثة مع أدوات إثبات صحة مزورة.

    🔗 salehgnutux.github.io/GT-NEWST

    #Mini_Shai-Hulud #أمن_سيبراني #سلسلة_توريد #npm #PyPI #TanStack #Mistral_AI #GitHub_Actions

  14. دودة Mini Shai-Hulud: هجوم سلسلة توريد يطال TanStack وMistral AI و169 حزمة برمجية

    هجوم واسع النطاق لسلسلة التوريد استهدف حزم npm وPyPI الخاصة بمشاريع كبرى مثل TanStack وMistral AI وUiPath وOpenSearch، مستغلاً ثغرات في GitHub Actions لسرقة الشهادات ونشر برمجيات خبيثة مع أدوات إثبات صحة مزورة.

    🔗 salehgnutux.github.io/GT-NEWST

    #Mini_Shai-Hulud #أمن_سيبراني #سلسلة_توريد #npm #PyPI #TanStack #Mistral_AI #GitHub_Actions

  15. Взлом GitHub-репозиториев Grafana Labs: как атака на цепочку поставок npm привела к краже кодовой базы и вымогательству

    Часть I: Первопричина - атака Mini Shai-Hulud на экосистему TanStack Цепочка поставок как вектор атаки 11 мая 2026 года, в промежутке с 19:20 до 19:26 UTC , произошло одно из наиболее технически изощрённых событий в истории атак на цепочку поставок npm. Группировка TeamPCP опубликовала 84 вредоносные версии пакетов в рамках 42 пакетов из пространства имён @tanstack/* - и всё это за шесть минут. Кампания получила название Mini Shai-Hulud - отсылка к гигантским песчаным червям из вселенной «Дюны» Фрэнка Герберта. Это не первая волна активности TeamPCP: до этого они скомпрометировали сканер Trivy от Aqua Security в марте 2026-го и npm-пакет Bitwarden CLI в апреле 2026-го. Каждая следующая волна технически сложнее предыдущей. Как работала атака: три уязвимости в одной цепочке Атака объединила три уязвимости, каждая из которых по отдельности была бы недостаточна. Злоумышленник создал форк репозитория TanStack/router, открыл pull request, который запустил workflow с триггером pull_request_target , и отравил кэш GitHub Actions через границу доверия fork↔base. Когда легитимный workflow сработал, отравленный кэш был восстановлен, а вредоносный код извлёк OIDC-токен прямо из памяти процесса runner'а. Ключевой момент: злоумышленники не крали статические npm-токены. Вместо этого они извлекали runtime OIDC-токены напрямую из памяти процесса runner'а, что позволило им аутентифицироваться легитимным образом через trusted publisher bindings и публиковать скомпрометированные обновления в npm-реестр. Масштаб заражения

    habr.com/ru/articles/1037180/

    #devsecops #devops #grafana #github #информационная_безопасность #github_actions #кибербезопасность #npm #ransomware #supply_chain

  16. Взлом GitHub-репозиториев Grafana Labs: как атака на цепочку поставок npm привела к краже кодовой базы и вымогательству

    Часть I: Первопричина - атака Mini Shai-Hulud на экосистему TanStack Цепочка поставок как вектор атаки 11 мая 2026 года, в промежутке с 19:20 до 19:26 UTC , произошло одно из наиболее технически изощрённых событий в истории атак на цепочку поставок npm. Группировка TeamPCP опубликовала 84 вредоносные версии пакетов в рамках 42 пакетов из пространства имён @tanstack/* - и всё это за шесть минут. Кампания получила название Mini Shai-Hulud - отсылка к гигантским песчаным червям из вселенной «Дюны» Фрэнка Герберта. Это не первая волна активности TeamPCP: до этого они скомпрометировали сканер Trivy от Aqua Security в марте 2026-го и npm-пакет Bitwarden CLI в апреле 2026-го. Каждая следующая волна технически сложнее предыдущей. Как работала атака: три уязвимости в одной цепочке Атака объединила три уязвимости, каждая из которых по отдельности была бы недостаточна. Злоумышленник создал форк репозитория TanStack/router, открыл pull request, который запустил workflow с триггером pull_request_target , и отравил кэш GitHub Actions через границу доверия fork↔base. Когда легитимный workflow сработал, отравленный кэш был восстановлен, а вредоносный код извлёк OIDC-токен прямо из памяти процесса runner'а. Ключевой момент: злоумышленники не крали статические npm-токены. Вместо этого они извлекали runtime OIDC-токены напрямую из памяти процесса runner'а, что позволило им аутентифицироваться легитимным образом через trusted publisher bindings и публиковать скомпрометированные обновления в npm-реестр. Масштаб заражения

    habr.com/ru/articles/1037180/

    #devsecops #devops #grafana #github #информационная_безопасность #github_actions #кибербезопасность #npm #ransomware #supply_chain

  17. Взлом GitHub-репозиториев Grafana Labs: как атака на цепочку поставок npm привела к краже кодовой базы и вымогательству

    Часть I: Первопричина - атака Mini Shai-Hulud на экосистему TanStack Цепочка поставок как вектор атаки 11 мая 2026 года, в промежутке с 19:20 до 19:26 UTC , произошло одно из наиболее технически изощрённых событий в истории атак на цепочку поставок npm. Группировка TeamPCP опубликовала 84 вредоносные версии пакетов в рамках 42 пакетов из пространства имён @tanstack/* - и всё это за шесть минут. Кампания получила название Mini Shai-Hulud - отсылка к гигантским песчаным червям из вселенной «Дюны» Фрэнка Герберта. Это не первая волна активности TeamPCP: до этого они скомпрометировали сканер Trivy от Aqua Security в марте 2026-го и npm-пакет Bitwarden CLI в апреле 2026-го. Каждая следующая волна технически сложнее предыдущей. Как работала атака: три уязвимости в одной цепочке Атака объединила три уязвимости, каждая из которых по отдельности была бы недостаточна. Злоумышленник создал форк репозитория TanStack/router, открыл pull request, который запустил workflow с триггером pull_request_target , и отравил кэш GitHub Actions через границу доверия fork↔base. Когда легитимный workflow сработал, отравленный кэш был восстановлен, а вредоносный код извлёк OIDC-токен прямо из памяти процесса runner'а. Ключевой момент: злоумышленники не крали статические npm-токены. Вместо этого они извлекали runtime OIDC-токены напрямую из памяти процесса runner'а, что позволило им аутентифицироваться легитимным образом через trusted publisher bindings и публиковать скомпрометированные обновления в npm-реестр. Масштаб заражения

    habr.com/ru/articles/1037180/

    #devsecops #devops #grafana #github #информационная_безопасность #github_actions #кибербезопасность #npm #ransomware #supply_chain

  18. Взлом GitHub-репозиториев Grafana Labs: как атака на цепочку поставок npm привела к краже кодовой базы и вымогательству

    Часть I: Первопричина - атака Mini Shai-Hulud на экосистему TanStack Цепочка поставок как вектор атаки 11 мая 2026 года, в промежутке с 19:20 до 19:26 UTC , произошло одно из наиболее технически изощрённых событий в истории атак на цепочку поставок npm. Группировка TeamPCP опубликовала 84 вредоносные версии пакетов в рамках 42 пакетов из пространства имён @tanstack/* - и всё это за шесть минут. Кампания получила название Mini Shai-Hulud - отсылка к гигантским песчаным червям из вселенной «Дюны» Фрэнка Герберта. Это не первая волна активности TeamPCP: до этого они скомпрометировали сканер Trivy от Aqua Security в марте 2026-го и npm-пакет Bitwarden CLI в апреле 2026-го. Каждая следующая волна технически сложнее предыдущей. Как работала атака: три уязвимости в одной цепочке Атака объединила три уязвимости, каждая из которых по отдельности была бы недостаточна. Злоумышленник создал форк репозитория TanStack/router, открыл pull request, который запустил workflow с триггером pull_request_target , и отравил кэш GitHub Actions через границу доверия fork↔base. Когда легитимный workflow сработал, отравленный кэш был восстановлен, а вредоносный код извлёк OIDC-токен прямо из памяти процесса runner'а. Ключевой момент: злоумышленники не крали статические npm-токены. Вместо этого они извлекали runtime OIDC-токены напрямую из памяти процесса runner'а, что позволило им аутентифицироваться легитимным образом через trusted publisher bindings и публиковать скомпрометированные обновления в npm-реестр. Масштаб заражения

    habr.com/ru/articles/1037180/

    #devsecops #devops #grafana #github #информационная_безопасность #github_actions #кибербезопасность #npm #ransomware #supply_chain

  19. Настраиваем CI/CD в GitHub для Python-проекта с нуля

    Настройка CI/CD часто кажется новичкам чем-то сложным и доступным только DevOps-инженерам. На самом деле автоматизировать рутину Python-проекта можно всего за полчаса. В этой статье мы по шагам разберем, как с нуля настроить GitHub Actions для простого FastAPI-приложения: от автоматического запуска тестов и быстрого линтера Ruff до сборки Docker-образа и публикации его в Docker Hub.

    habr.com/ru/articles/1037002/

    #python #github_actions #docker #pytest #автоматизация #fastapi #туториал

  20. Настраиваем CI/CD в GitHub для Python-проекта с нуля

    Настройка CI/CD часто кажется новичкам чем-то сложным и доступным только DevOps-инженерам. На самом деле автоматизировать рутину Python-проекта можно всего за полчаса. В этой статье мы по шагам разберем, как с нуля настроить GitHub Actions для простого FastAPI-приложения: от автоматического запуска тестов и быстрого линтера Ruff до сборки Docker-образа и публикации его в Docker Hub.

    habr.com/ru/articles/1037002/

    #python #github_actions #docker #pytest #автоматизация #fastapi #туториал

  21. Настраиваем CI/CD в GitHub для Python-проекта с нуля

    Настройка CI/CD часто кажется новичкам чем-то сложным и доступным только DevOps-инженерам. На самом деле автоматизировать рутину Python-проекта можно всего за полчаса. В этой статье мы по шагам разберем, как с нуля настроить GitHub Actions для простого FastAPI-приложения: от автоматического запуска тестов и быстрого линтера Ruff до сборки Docker-образа и публикации его в Docker Hub.

    habr.com/ru/articles/1037002/

    #python #github_actions #docker #pytest #автоматизация #fastapi #туториал

  22. Настраиваем CI/CD в GitHub для Python-проекта с нуля

    Настройка CI/CD часто кажется новичкам чем-то сложным и доступным только DevOps-инженерам. На самом деле автоматизировать рутину Python-проекта можно всего за полчаса. В этой статье мы по шагам разберем, как с нуля настроить GitHub Actions для простого FastAPI-приложения: от автоматического запуска тестов и быстрого линтера Ruff до сборки Docker-образа и публикации его в Docker Hub.

    habr.com/ru/articles/1037002/

    #python #github_actions #docker #pytest #автоматизация #fastapi #туториал

  23. 📢 Post-mortem : compromission de la chaîne d'approvisionnement npm de TanStack (mai 2026)
    📝 ## 🔍 Contexte

    Le 11 mai 2026, TanStack a publié un post-mortem détaillé d'une **compromission de chaîne d'approvisionnement npm** sur...
    📖 cyberveille : cyberveille.ch/posts/2026-05-1
    🌐 source : tanstack.com/blog/npm-supply-c
    #GitHub_Actions #IOC #Cyberveille

  24. 📢 Campagne Mini Shai-Hulud : TanStack, UiPath, Mistral AI et d'autres packages npm/PyPI compromis
    📝 ## 🗓️ Contexte

    Le 11 mai 2026, Wiz publie une analyse technique détaillant une **attaque...
    📖 cyberveille : cyberveille.ch/posts/2026-05-1
    🌐 source : wiz.io/blog/mini-shai-hulud-st
    #GitHub_Actions #IOC #Cyberveille

  25. Без рук: автоматизируем нагрузочное тестирование изменений в CI

    Нагрузочное тестирование — одна из самых избегаемых тем, когда речь заходит о контроле качества ПО. Корпорации, конечно, не обходят его стороной, но если говорить о продуктах меньшего масштаба, то нагрузочное тестирование часто пропускается. Команда (и, в целом, справедливо) полагает, что продукт справится с нагрузкой — на малых объёмах это обычно прокатывает. А потом внезапно наступает день, когда пользователей стало больше, а система не готова. Почему команды не тащат нагрузку в релизный цикл? Потому что это чаще всего просто не окупается: нужно выбрать движок, описать сценарий, гонять тесты вручную или тратить время на создание собственной обвязки для встраивания в CI, придумать критерии качества и анализировать результаты. Всё это занимает значительное время, а на короткой дистанции часто оказывается оверинжинирингом. Но если формирование требований упростить концептуально невозможно, то всё остальное вполне можно собрать в переиспользуемый инструмент, позволяющий командам легко интегрировать нагрузочное тестирование и регрессионный анализ в свой процесс доставки. В CI/CD мы хотели простую штуку: на каждый PR запускать короткий перф‑смоук и получать ответ уровня «PASS / WARNING / DEGRADATION», а не 15 минут медитировать над CSV и тратить ценное время на анализ, который, вероятно, не пригодится в ближайшей перспективе. Посмотрим, к чему мы в итоге пришли.

    habr.com/ru/articles/1033590/

    #нагрузочное_тестирование #регрессионное_тестирование #locust #devops #locomotive #python #github_actions #performance_testing #cicd #производительность

  26. Без рук: автоматизируем нагрузочное тестирование изменений в CI

    Нагрузочное тестирование — одна из самых избегаемых тем, когда речь заходит о контроле качества ПО. Корпорации, конечно, не обходят его стороной, но если говорить о продуктах меньшего масштаба, то нагрузочное тестирование часто пропускается. Команда (и, в целом, справедливо) полагает, что продукт справится с нагрузкой — на малых объёмах это обычно прокатывает. А потом внезапно наступает день, когда пользователей стало больше, а система не готова. Почему команды не тащат нагрузку в релизный цикл? Потому что это чаще всего просто не окупается: нужно выбрать движок, описать сценарий, гонять тесты вручную или тратить время на создание собственной обвязки для встраивания в CI, придумать критерии качества и анализировать результаты. Всё это занимает значительное время, а на короткой дистанции часто оказывается оверинжинирингом. Но если формирование требований упростить концептуально невозможно, то всё остальное вполне можно собрать в переиспользуемый инструмент, позволяющий командам легко интегрировать нагрузочное тестирование и регрессионный анализ в свой процесс доставки. В CI/CD мы хотели простую штуку: на каждый PR запускать короткий перф‑смоук и получать ответ уровня «PASS / WARNING / DEGRADATION», а не 15 минут медитировать над CSV и тратить ценное время на анализ, который, вероятно, не пригодится в ближайшей перспективе. Посмотрим, к чему мы в итоге пришли.

    habr.com/ru/articles/1033590/

    #нагрузочное_тестирование #регрессионное_тестирование #locust #devops #locomotive #python #github_actions #performance_testing #cicd #производительность

  27. Без рук: автоматизируем нагрузочное тестирование изменений в CI

    Нагрузочное тестирование — одна из самых избегаемых тем, когда речь заходит о контроле качества ПО. Корпорации, конечно, не обходят его стороной, но если говорить о продуктах меньшего масштаба, то нагрузочное тестирование часто пропускается. Команда (и, в целом, справедливо) полагает, что продукт справится с нагрузкой — на малых объёмах это обычно прокатывает. А потом внезапно наступает день, когда пользователей стало больше, а система не готова. Почему команды не тащат нагрузку в релизный цикл? Потому что это чаще всего просто не окупается: нужно выбрать движок, описать сценарий, гонять тесты вручную или тратить время на создание собственной обвязки для встраивания в CI, придумать критерии качества и анализировать результаты. Всё это занимает значительное время, а на короткой дистанции часто оказывается оверинжинирингом. Но если формирование требований упростить концептуально невозможно, то всё остальное вполне можно собрать в переиспользуемый инструмент, позволяющий командам легко интегрировать нагрузочное тестирование и регрессионный анализ в свой процесс доставки. В CI/CD мы хотели простую штуку: на каждый PR запускать короткий перф‑смоук и получать ответ уровня «PASS / WARNING / DEGRADATION», а не 15 минут медитировать над CSV и тратить ценное время на анализ, который, вероятно, не пригодится в ближайшей перспективе. Посмотрим, к чему мы в итоге пришли.

    habr.com/ru/articles/1033590/

    #нагрузочное_тестирование #регрессионное_тестирование #locust #devops #locomotive #python #github_actions #performance_testing #cicd #производительность

  28. Без рук: автоматизируем нагрузочное тестирование изменений в CI

    Нагрузочное тестирование — одна из самых избегаемых тем, когда речь заходит о контроле качества ПО. Корпорации, конечно, не обходят его стороной, но если говорить о продуктах меньшего масштаба, то нагрузочное тестирование часто пропускается. Команда (и, в целом, справедливо) полагает, что продукт справится с нагрузкой — на малых объёмах это обычно прокатывает. А потом внезапно наступает день, когда пользователей стало больше, а система не готова. Почему команды не тащат нагрузку в релизный цикл? Потому что это чаще всего просто не окупается: нужно выбрать движок, описать сценарий, гонять тесты вручную или тратить время на создание собственной обвязки для встраивания в CI, придумать критерии качества и анализировать результаты. Всё это занимает значительное время, а на короткой дистанции часто оказывается оверинжинирингом. Но если формирование требований упростить концептуально невозможно, то всё остальное вполне можно собрать в переиспользуемый инструмент, позволяющий командам легко интегрировать нагрузочное тестирование и регрессионный анализ в свой процесс доставки. В CI/CD мы хотели простую штуку: на каждый PR запускать короткий перф‑смоук и получать ответ уровня «PASS / WARNING / DEGRADATION», а не 15 минут медитировать над CSV и тратить ценное время на анализ, который, вероятно, не пригодится в ближайшей перспективе. Посмотрим, к чему мы в итоге пришли.

    habr.com/ru/articles/1033590/

    #нагрузочное_тестирование #регрессионное_тестирование #locust #devops #locomotive #python #github_actions #performance_testing #cicd #производительность

  29. Мини-пайплайн на страже синтаксиса и секретов в Ansible

    Представим, что у нас есть репозиторий, где хранятся плейбуки и роли Ansible. Делался он долго, старательно и по правилам. И даже если мы перед коммитами проверяем его через линтер, чтобы не сломать хрупкую YAML красоту, и перепроверяем не забыли ли мы подчистить секреты с которыми проводили тесты, то рано или поздно подобную ошибку совершит кто-то другой. И вот, чтобы снизить такую вероятность и лишний раз не заниматься правками в Git, чтобы вычистить пароли или поправить форматирование, можно немного обезопасить репозиторий заранее.

    habr.com/ru/articles/1029976/

    #ansible #linter #dockerfile #docker_compose #github_actions #git

  30. Мини-пайплайн на страже синтаксиса и секретов в Ansible

    Представим, что у нас есть репозиторий, где хранятся плейбуки и роли Ansible. Делался он долго, старательно и по правилам. И даже если мы перед коммитами проверяем его через линтер, чтобы не сломать хрупкую YAML красоту, и перепроверяем не забыли ли мы подчистить секреты с которыми проводили тесты, то рано или поздно подобную ошибку совершит кто-то другой. И вот, чтобы снизить такую вероятность и лишний раз не заниматься правками в Git, чтобы вычистить пароли или поправить форматирование, можно немного обезопасить репозиторий заранее.

    habr.com/ru/articles/1029976/

    #ansible #linter #dockerfile #docker_compose #github_actions #git

  31. Мини-пайплайн на страже синтаксиса и секретов в Ansible

    Представим, что у нас есть репозиторий, где хранятся плейбуки и роли Ansible. Делался он долго, старательно и по правилам. И даже если мы перед коммитами проверяем его через линтер, чтобы не сломать хрупкую YAML красоту, и перепроверяем не забыли ли мы подчистить секреты с которыми проводили тесты, то рано или поздно подобную ошибку совершит кто-то другой. И вот, чтобы снизить такую вероятность и лишний раз не заниматься правками в Git, чтобы вычистить пароли или поправить форматирование, можно немного обезопасить репозиторий заранее.

    habr.com/ru/articles/1029976/

    #ansible #linter #dockerfile #docker_compose #github_actions #git

  32. Мини-пайплайн на страже синтаксиса и секретов в Ansible

    Представим, что у нас есть репозиторий, где хранятся плейбуки и роли Ansible. Делался он долго, старательно и по правилам. И даже если мы перед коммитами проверяем его через линтер, чтобы не сломать хрупкую YAML красоту, и перепроверяем не забыли ли мы подчистить секреты с которыми проводили тесты, то рано или поздно подобную ошибку совершит кто-то другой. И вот, чтобы снизить такую вероятность и лишний раз не заниматься правками в Git, чтобы вычистить пароли или поправить форматирование, можно немного обезопасить репозиторий заранее.

    habr.com/ru/articles/1029976/

    #ansible #linter #dockerfile #docker_compose #github_actions #git

  33. Как использовать GitHub Actions и настроить интеграцию с PyPI для Python-проектов

    Когда я создавал свой первый Python-пакет, dataclass-sqlalchemy-mixins( github или pypi ), я столкнулся с интересной задачей:как настроить CI/CD в GitHub так, чтобы при отправке новых изменений ничего не ломалось, а код автоматически публиковался в PyPI . Обычно, чтобы проверить любой коммит, попадающий в master-ветку через pull request, необходимо запускать тесты. Кроме того, полезно использовать линтеры для проверки стиля кода, особенно если над проектом работают несколько разработчиков. В этой статье я расскажу как все это настроить в Github, чтоб оно выполнялось автоматически.

    habr.com/ru/articles/1029354/

    #python #github #github_actions #ci #cd #deployment #pypi #poetry #tutorial

  34. 📢 Les éditeurs d'IA refusent d'assumer la responsabilité des failles de sécurité dans leurs produits
    📝 ## 🗞️ Contexte

    Article d'opinion publié le 19 avril 2026 par Jessica Lyons sur *The Register...
    📖 cyberveille : cyberveille.ch/posts/2026-04-1
    🌐 source : theregister.com/2026/04/19/ai_
    #AI_security #GitHub_Actions #Cyberveille

  35. QA в CI/CD: как перестать гонять тесты руками и настроить это один раз

    Разбираю как выглядит нормальный QA-пайплайн в GitHub Actions: от линтинга до E2E тестов на Playwright. С рабочими конфигами, кэшированием и уведомлениями о падениях.

    habr.com/ru/articles/1021592/

    #GitHub_Actions #QA #автотесты #Playwright #Jest #DevOps #пайплайн #тестирование

  36. QA в CI/CD: как перестать гонять тесты руками и настроить это один раз

    Разбираю как выглядит нормальный QA-пайплайн в GitHub Actions: от линтинга до E2E тестов на Playwright. С рабочими конфигами, кэшированием и уведомлениями о падениях.

    habr.com/ru/articles/1021592/

    #GitHub_Actions #QA #автотесты #Playwright #Jest #DevOps #пайплайн #тестирование

  37. QA в CI/CD: как перестать гонять тесты руками и настроить это один раз

    Разбираю как выглядит нормальный QA-пайплайн в GitHub Actions: от линтинга до E2E тестов на Playwright. С рабочими конфигами, кэшированием и уведомлениями о падениях.

    habr.com/ru/articles/1021592/

    #GitHub_Actions #QA #автотесты #Playwright #Jest #DevOps #пайплайн #тестирование

  38. QA в CI/CD: как перестать гонять тесты руками и настроить это один раз

    Разбираю как выглядит нормальный QA-пайплайн в GitHub Actions: от линтинга до E2E тестов на Playwright. С рабочими конфигами, кэшированием и уведомлениями о падениях.

    habr.com/ru/articles/1021592/

    #GitHub_Actions #QA #автотесты #Playwright #Jest #DevOps #пайплайн #тестирование

  39. Apple хочет чтобы я купил Mac за 200к. У меня два приложения в App Store и ни одного макбука

    У меня нет макбука. Но два моих приложения лежат в App Store. Рассказываю весь путь: регистрация Apple Developer из России, сертификаты без Xcode, автоматическая сборка через GitHub Actions. Три варианта: для вайбкодеров, программистов без мака и хардкорщиков.

    habr.com/ru/articles/1018714/

    #iOS #App_Store #GitHub_Actions #Swift #Claude_Code #XcodeGen #Apple_Developer #вайбкодинг #DevOps

  40. Apple хочет чтобы я купил Mac за 200к. У меня два приложения в App Store и ни одного макбука

    У меня нет макбука. Но два моих приложения лежат в App Store. Рассказываю весь путь: регистрация Apple Developer из России, сертификаты без Xcode, автоматическая сборка через GitHub Actions. Три варианта: для вайбкодеров, программистов без мака и хардкорщиков.

    habr.com/ru/articles/1018714/

    #iOS #App_Store #GitHub_Actions #Swift #Claude_Code #XcodeGen #Apple_Developer #вайбкодинг #DevOps

  41. Apple хочет чтобы я купил Mac за 200к. У меня два приложения в App Store и ни одного макбука

    У меня нет макбука. Но два моих приложения лежат в App Store. Рассказываю весь путь: регистрация Apple Developer из России, сертификаты без Xcode, автоматическая сборка через GitHub Actions. Три варианта: для вайбкодеров, программистов без мака и хардкорщиков.

    habr.com/ru/articles/1018714/

    #iOS #App_Store #GitHub_Actions #Swift #Claude_Code #XcodeGen #Apple_Developer #вайбкодинг #DevOps

  42. Apple хочет чтобы я купил Mac за 200к. У меня два приложения в App Store и ни одного макбука

    У меня нет макбука. Но два моих приложения лежат в App Store. Рассказываю весь путь: регистрация Apple Developer из России, сертификаты без Xcode, автоматическая сборка через GitHub Actions. Три варианта: для вайбкодеров, программистов без мака и хардкорщиков.

    habr.com/ru/articles/1018714/

    #iOS #App_Store #GitHub_Actions #Swift #Claude_Code #XcodeGen #Apple_Developer #вайбкодинг #DevOps

  43. [Перевод] Вайбкодинг есть, а вайбрезультатов нет?

    Поклонники вайбкодинга и агентных инструментов говорят, что стали продуктивнее в 2, в 10, а то и в 100 раз. Кто-то собрал целый браузер с нуля. Впечатляет! Тогда скептики резонно спрашивают: где все приложения? Если разработчики стали (возьмём консервативную оценку) хотя бы вдвое продуктивнее, где искать вдвое больше произведённого ПО? Такие вопросы исходят из допущения, что мир хочет больше программ, а значит, если их дешевле делать, их будут делать больше. Если вы с этим согласны — где тогда этот избыток, который можно назвать «AI-эффектом»? Посмотрим на PyPI — центральный репозиторий Python-пакетов. Он большой, публичный и стабильно измеримый, так что AI-эффект должен быть хорошо заметен.

    habr.com/ru/articles/1014858/

    #PyPI #вайбкодинг #продуктивность_разработчиков #Pythonпакеты #ChatGPT #AIинструменты #open_source #GitHub_Actions #генеративный_AI #AIэкосистема

  44. [Перевод] Вайбкодинг есть, а вайбрезультатов нет?

    Поклонники вайбкодинга и агентных инструментов говорят, что стали продуктивнее в 2, в 10, а то и в 100 раз. Кто-то собрал целый браузер с нуля. Впечатляет! Тогда скептики резонно спрашивают: где все приложения? Если разработчики стали (возьмём консервативную оценку) хотя бы вдвое продуктивнее, где искать вдвое больше произведённого ПО? Такие вопросы исходят из допущения, что мир хочет больше программ, а значит, если их дешевле делать, их будут делать больше. Если вы с этим согласны — где тогда этот избыток, который можно назвать «AI-эффектом»? Посмотрим на PyPI — центральный репозиторий Python-пакетов. Он большой, публичный и стабильно измеримый, так что AI-эффект должен быть хорошо заметен.

    habr.com/ru/articles/1014858/

    #PyPI #вайбкодинг #продуктивность_разработчиков #Pythonпакеты #ChatGPT #AIинструменты #open_source #GitHub_Actions #генеративный_AI #AIэкосистема

  45. [Перевод] Вайбкодинг есть, а вайбрезультатов нет?

    Поклонники вайбкодинга и агентных инструментов говорят, что стали продуктивнее в 2, в 10, а то и в 100 раз. Кто-то собрал целый браузер с нуля. Впечатляет! Тогда скептики резонно спрашивают: где все приложения? Если разработчики стали (возьмём консервативную оценку) хотя бы вдвое продуктивнее, где искать вдвое больше произведённого ПО? Такие вопросы исходят из допущения, что мир хочет больше программ, а значит, если их дешевле делать, их будут делать больше. Если вы с этим согласны — где тогда этот избыток, который можно назвать «AI-эффектом»? Посмотрим на PyPI — центральный репозиторий Python-пакетов. Он большой, публичный и стабильно измеримый, так что AI-эффект должен быть хорошо заметен.

    habr.com/ru/articles/1014858/

    #PyPI #вайбкодинг #продуктивность_разработчиков #Pythonпакеты #ChatGPT #AIинструменты #open_source #GitHub_Actions #генеративный_AI #AIэкосистема

  46. [Перевод] Вайбкодинг есть, а вайбрезультатов нет?

    Поклонники вайбкодинга и агентных инструментов говорят, что стали продуктивнее в 2, в 10, а то и в 100 раз. Кто-то собрал целый браузер с нуля. Впечатляет! Тогда скептики резонно спрашивают: где все приложения? Если разработчики стали (возьмём консервативную оценку) хотя бы вдвое продуктивнее, где искать вдвое больше произведённого ПО? Такие вопросы исходят из допущения, что мир хочет больше программ, а значит, если их дешевле делать, их будут делать больше. Если вы с этим согласны — где тогда этот избыток, который можно назвать «AI-эффектом»? Посмотрим на PyPI — центральный репозиторий Python-пакетов. Он большой, публичный и стабильно измеримый, так что AI-эффект должен быть хорошо заметен.

    habr.com/ru/articles/1014858/

    #PyPI #вайбкодинг #продуктивность_разработчиков #Pythonпакеты #ChatGPT #AIинструменты #open_source #GitHub_Actions #генеративный_AI #AIэкосистема

  47. Как я сделал шифрование поверх MAX, когда приватность стала роскошью

    Как я без Mac, с помощью Claude AI и GitHub Actions, создал кроссплатформенное приложение для шифрования сообщений поверх любого мессенджера. Android на Kotlin, iOS на Swift без MacBook, десктоп на Python. AES-256, три платформы, два отказа от Apple и один баг с буквой «а».

    habr.com/ru/articles/1013960/

    #шифрование #AES256 #приватность #мессенджер #криптография #android #ios #AI #GitHub_Actions #безопасность

  48. Как я сделал шифрование поверх MAX, когда приватность стала роскошью

    Как я без Mac, с помощью Claude AI и GitHub Actions, создал кроссплатформенное приложение для шифрования сообщений поверх любого мессенджера. Android на Kotlin, iOS на Swift без MacBook, десктоп на Python. AES-256, три платформы, два отказа от Apple и один баг с буквой «а».

    habr.com/ru/articles/1013960/

    #шифрование #AES256 #приватность #мессенджер #криптография #android #ios #AI #GitHub_Actions #безопасность

  49. Как я сделал шифрование поверх MAX, когда приватность стала роскошью

    Как я без Mac, с помощью Claude AI и GitHub Actions, создал кроссплатформенное приложение для шифрования сообщений поверх любого мессенджера. Android на Kotlin, iOS на Swift без MacBook, десктоп на Python. AES-256, три платформы, два отказа от Apple и один баг с буквой «а».

    habr.com/ru/articles/1013960/

    #шифрование #AES256 #приватность #мессенджер #криптография #android #ios #AI #GitHub_Actions #безопасность

  50. Как я сделал шифрование поверх MAX, когда приватность стала роскошью

    Как я без Mac, с помощью Claude AI и GitHub Actions, создал кроссплатформенное приложение для шифрования сообщений поверх любого мессенджера. Android на Kotlin, iOS на Swift без MacBook, десктоп на Python. AES-256, три платформы, два отказа от Apple и один баг с буквой «а».

    habr.com/ru/articles/1013960/

    #шифрование #AES256 #приватность #мессенджер #криптография #android #ios #AI #GitHub_Actions #безопасность