
GitHub *
Веб-сервис для хостинга и разработки IT-проектов
Новости
OpenAI Codex против GitHub Copilot: что лучше для написания и тестирования кода?

Сделать перевод этой статьи нас сподвиг, как ни странно, роман Джонатана Свифта «Путешествия Гулливера». Есть там такой примечательный эпизод о борьбе остроконечников и тупоконечников. Аналогия в контексте разработки ПО — это принимающий бесконечный характер спор о преимуществах и недостатках двух инструментов, — OpenAI Codex и GitHub Copilot, — призванных помогать разработчикам. Как нам показалось, эта переводная статья довольно подробно разбирает работу данных инструментов и поможет внести ясность о сферах их применения, особенно для начинающих программистов.
Webhook у Harbor или как я оповещения о пушах docker images нашей команды делал часть — 2

В прошлой части статьи мы говорили о пушах в harbor, в этой же статье мы разберемся другие методы с которыми работает его webhook.
Конституция против цензуры: история одного иска в суд

Приветствую всех! Поздравляю с прошедшими майскими праздниками. С момента моего последнего поста, прошло уже больше полугода, кто то мог уже забыть про предыдущие посты, кто то разочароваться и я бы подумал так же. Однако, я здесь и не отказывался от подачи заявления в суд. Но, обо всем по порядку.
Дивный мир мобильной разработки и трудности Open Source

Когда я впервые решил создать свой open-source проект, мне казалось, что главное – это хорошая идея и рабочий код. Я взялся за разработку библиотеки для сетевых клиентов и UI-компонентов, вложил в неё два года работы и, наконец, выложил на GitHub. Но вместо успеха меня ждал холодный душ – библиотека получила всего 10 звёздочек.
Тогда я осознал ключевую проблему open-source: одна только идея не работает. Если проект плохо оформлен – его никто не найдёт. Документация и описание – не менее важны, чем сам код. В следующем проекте я учёл ошибки. Когда правильно оформил проект, он начал находить аудиторию, получать звёзды и фидбек от разработчиков.
Open-source – это не только код, но и способность донести свою работу до других. И эта история дала мне важный урок: если хочешь, чтобы твой проект заметили, помоги людям его понять. А ещё я понял, как важно участвовать в комьюнити и контрибьютить.
Webhook у Harbor или как я оповещения о пушах docker images нашей команды делал часть — 1

Руководителям групп разработки и членам команды часто приходится сталкиваться с проблемой информирования коллег о новых версиях docker image внутренних инструментов. Сообщения в общих чатах не всегда эффективны, а писать вручную — не лучшая практика. И тут мы рассмотрим разработку решения по автоматическому информированию.
OSA: ИИ-помощник для разработчиков научного open source кода

Привет, Хабр! Меня зовут Андрей Гетманов, я работаю ML-инженером в Исследовательском центре “Сильный ИИ в промышленности” в ИТМО, а кроме того являюсь энтузиастом open source. В этой статье хочу рассказать о нашей новой разработке ― ИИ-инструменте, который помогает репозиторию стать лучшей версией себя.
Разнообразных «улучшателей» много, но все они фокусируются преимущественно на качестве самого кода. Мы же смотрим шире ― на репозиторий в целом, насколько он понятен стороннему наблюдателю. Инструмент нацелен на наших коллег от науки ― например, биологов и химиков ― которые не обладают опытом коммерческой разработки и соответствующего оформления кода. Он поможет в несколько кликов сделать репозиторий более читаемым и воспроизводимым.
Как GitHub использует CodeQL для обеспечения безопасности

Что происходит, когда GitHub берётся за собственную безопасность? Они пишут код для защиты кода — и активно используют для этого CodeQL. В этой статье команда Product Security Engineering рассказывает, как настроить масштабный автоматический анализ уязвимостей, зачем создавать свои пакеты запросов и как с помощью CodeQL находить ошибки, которые невозможно поймать обычным поиском по коду.
15 команд Git, которые покрывают 90% повседневной работы разработчика

Git стал стандартом де-факто в мире разработки программного обеспечения. Это мощная система контроля версий, которая позволяет командам эффективно сотрудничать, отслеживать изменения и управлять кодовой базой. Новичку Git может показаться сложным из-за обилия команд и концепций. Однако правда в том, что для выполнения 90% повседневных задач достаточно уверенно владеть небольшим набором ключевых команд.
Semantic-release в GitLab: автоматизируем CHANGELOG

Привет, Хабр!
На проекте была одна довольно типичная и, мягко говоря, надоедливая проблема: разработчики вручную заполняли CHANGELOG при выкатке новой версии приложения. Иногда информация туда попадала точная и соответствующая реальным изменениям, иногда – частично верная, а иногда и вовсе напрочь забытая.
Решение нашлось довольно элегантное – интегрировать инструмент semantic-release в наш пайплайн CI/CD. Но оказалось, что найти полноценное руководство по его настройке, особенно с учетом корпоративного GitLab и плагина semantic-release/changelog, не так-то просто. Собирал информацию буквально по крупицам из различных источников, и вот теперь делюсь с вами проверенной пошаговой инструкцией.
Автоматизация PetKit Smart Spray K3 через Bluetooth и интеграция с Home Assistant

Всем привет. Это моя первая статья, так что не судите строго (да, да, заезженная фраза).
Я думаю у всех есть домашние питомцы и за всеми так или иначе надо убирать - разбросанный силикагель (для кошек как пример). В один из дней, знатно наступив на один из силикагелевых шариков, которые разбросала моя кошка, я понял, что мне это надоело и установив Home Assistant, а так же датчик движения в кошачий лоток (который, к слову, выглядит как пуфик с дыркой для входа кошки) я написал простенький скрипт на то, чтобы робот-пылесос убирал определенную зону после того как кошка сделает свои грязные дела. Все заработало и мои, а так же моей жены телесные травмы свелись к минимуму (все же задержка перед уборкой аж целых 5 минут), но я начала думать о том что было бы неплохо еще и запах убивать после особо пахучих дел, но времени на это не было (да и желания, так как готовых решений не было, тем более появился ребенок и время на подобные дела вообще свелось к минимуму).
Шло время и вопрос о запахе из лотка становился все острее.
Интеграция Kafka с Manticore Search: пошаговое руководство по обработке данных в реальном времени

Kafka — это популярный брокер сообщений, который используется в самых разных проектах: от обработки логов и управления очередями задач до персонализации контента и аналитики в реальном времени. Например, его можно использовать для индексирования изменений в Википедии или поиска товаров в интернет-магазинах. Manticore Search, в свою очередь, поддерживает интеграцию с Kafka, что позволяет автоматически импортировать данные и использовать их для полнотекстового поиска, аналитики, векторного поиска и многого другого.
При импорте данных в Manticore вы можете гибко их обрабатывать:
UI автотесты на Python с запуском на CI/CD и Allure отчетом. PageObject, PageComponent, PageFactory

Разбираем, как писать масштабируемые и читаемые UI автотесты на Python с использованием паттернов PageObject, PageFactory и PageComponent. Разберем на атомы как устроены эти подходы, когда их применять и чем они отличаются. Всё это — на примере тестового проекта UI Course с CI/CD и наглядными отчетами в Allure.
Ближайшие события
Как мы собираем SWE-bench на других языках

Современная разработка ПО — это плавильный котел языков: Java, C#, JS/TS, Go, Kotlin… список можно продолжать. Но когда дело доходит до оценки ИИ-агентов, способных помогать в написании и исправлении кода, мы часто упираемся в ограничения. Популярный бенчмарк SWE-bench, например, долгое время поддерживал только Python.
Чтобы преодолеть разрыв между реальностью разработки и возможностями оценки ИИ, наша команда в Doubletapp взялась за адаптацию SWE-bench для множества языков программирования. Меня зовут Кирилл Увенс, и в этой статье я расскажу, как мы подходим к этой задаче и почему считаем ее важной для всей индустрии.
В статье расскажем:
• Что такое SWE-Bench
• Какие сложности возникают при сборе данных и тестировании
• Наш опыт: какие языки поддерживает SWE-bench
• Ручная перепроверка, или SWE-bench Verified
• Сравниваем SWE-bench с другими бенчмарками для разработки ПО
• Ценообразование SWE-bench: как формируется стоимость одного датапойнта
20 лет Git, странному и прекрасному

За эти двадцать лет Git превратился из простого маленького личного проекта в самую масштабную и популярную систему управления версиями.
Лично для меня это было захватывающее приключение в мире ПО, со своими взлётами и падениями.
Я начал пользоваться Git лишь спустя всего несколько месяцев после первого коммита, и применение его было достаточно необычным. А затем я стал сооснователем GitHub, написал самую, наверно, популярную книгу про Git, создал официальный веб-сайт проекта, организовал ежегодную конференцию разработчиков и так далее — этот проект изменил мир разработки ПО, но лично для меня он стал огромным изменением в судьбе.
Я подумал, что сегодня, когда проект Git входит в свой третий десяток лет, было бы интересно вспомнить самые первые дни Git и немного рассказать о том, почему этот проект кажется мне бесконечно восхитительным.
KotlinJS в GitHub Actions

GitHub Actions (GHA) — отличный инструмент для настройки CI/CD, а в GitHub Marketplace можно найти тысячи готовых GHA под любые задачи. Но всегда же найдётся процесс, который захочется настроить под себя. Тогда нам придётся написать кастомный GHA.
Привет! Это Макс Качинкин, Android Tech Lead в Додо. В этой статье я покажу, как создать свой GHA на Kotlin/JS, используя плагин Kotlin Multiplatform, и поделюсь готовым шаблоном в GitHub, с помощью которого вы сможете быстро написать собственный экшен на Kotlin/JS. Погнали!
Расследование аферы с GitHub: как тысячи «модов» и «кряков» крадут наши данные

Перевели статью, автор которой раскрыл новую схему мошенничества на GitHub, где под видом модов для игр и взломанных программ распространяется вредоносное ПО, которое похищает личные данные пользователей.
Концепты в современном C ++
C++ шаблоны — мощный инструмент, но работать с ними бывает больно: многословные ошибки, путаница с типами и enable_if, который все усложняет. Concepts в C++20 появились, чтобы упростить жизнь разработчикам и сделать шаблонный код понятнее. В этой статье — разбор конкретного кейса: как с помощью концептов задать корректные ограничения на контейнеры, избежать ловушек с массивами и получить внятные ошибки от компилятора.
Как я решил выяснить, какие технологии сегодня популярны, а получился GitHub Trend Analyzer

Как определить, какие технологии действительно востребованы, а какие существуют лишь по инерции? Стандартные метрики популярности часто показывают противоречивые результаты.
Пытаясь сравнить популярность нескольких технологий разработки ПО, я столкнулся с парадоксом: данные Google Trends и количество GitHub-репозиториев показывали высокую популярность технологий, которые в реальной разработке давно не используются.
Разобравшись в причинах этого несоответствия, я создал инструмент для анализа GitHub-метрик, который позволяет отфильтровать "шум" и увидеть реальную картину технологических трендов.
В статье я расскажу о методологии, неожиданных находках и о том, как этот инструмент может помочь вам принимать более обоснованные технические решения.
API автотесты на Python с запуском на CI/CD и Allure отчетом

В этой статье разберём процесс написания API автотестов на Python, используя современные best practices. Кроме того, мы настроим их запуск в CI/CD с помощью GitHub Actions и сформируем Allure-отчёт с историей запусков. Цель статьи — не только показать, как писать качественные API автотесты, но и научить запускать их в CI/CD, получая удобные отчёты о результатах.