Обновить
65.99

GitHub *

Веб-сервис для хостинга и разработки IT-проектов

Сначала показывать
Порог рейтинга
Уровень сложности

Python Дайджест: как сделать CI для OpenSource проекта с Github Actions

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели3K

Экватор рассказа про техническое оживление Python Дайджест проекта. Ранее рассказал как перейти с Python 3.4 на Python 3.11 и автоматически актуализировать весь код. В этой части расскажу про организацию CI для Open Source проекта на основе Github Actions — как гонять тесты, проверять код, зависимости, разворачивать приложение и делать бэкапы на внешнее хранилище.


Читать дальше →

Как защищать свои ключи SSH. Почему не сертификаты?

Время на прочтение5 мин
Охват и читатели8.8K


В марте 2023 года на популярном сайте для хостинга кода Github случился инцидент с утечкой секретного ключа RSA SSH, который использовался для операций на хосте github.com.

Такие инциденты — совсем не редкость. Чаще всего они квалифицируются как «человеческая ошибка», то есть недосмотр какого-то конкретного сотрудника, который случайно выложил секретные данные в открытый доступ. В данном случае сотрудник случайно закоммитил секретный ключ в открытый репозиторий.

Конечно, проще всего возложить вину на отдельного человека. Но если система безопасности допускает такие ошибки, то следует задуматься об изменениях системы в первую очередь.
Читать дальше →

Законно ли хранить код на GitHub?

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели1.5K

Меня зовут Михаил, я юрист в сфере IT/IP и это моя первая статья на Хабре на юридическую тематику. Обычно я их публикую на своём сайте, но в этот раз она сильно затрагивает сообщество программистов, поэтому я решил поделиться ею и на Хабре тоже.

В заголовок своей очередной статьи я вынес весьма непростой и, отчасти, провокационный вопрос.

GitHub, как и другие ему подобные сервисы, стал неотъемлемой частью процесса разработки программного обеспечения.

Исходный код в нём удобно хранить, удобно отслеживать изменения в нём, удобно делиться им с другими разработчиками, удобно передавать разработку другим командам. Очень много удобства. Но есть ли у такого удобного сервиса недостатки?

Я провел собственное исследование этого вопроса и представляю его результаты в этой статье. Более того, я уже успел применить его на практике, о чём расскажу в конце статьи (спойлер - если вы разрабатываете код под заказ, то хранение кода на GitHub лучше согласовывать с заказчиком письменно, или не хранить его там вообще).

Читать далее

Безопасность в тренде. Лучшие опенсорс-проекты 2022 года

Время на прочтение3 мин
Охват и читатели11K


В фильме «Шоу Трумана» главный герой в 30 лет начал подозревать, что за ним всю жизнь наблюдают, манипулируя поведением. Так и сейчас некоторые люди с опозданием открывают для себя сквозное шифрование трафика, инструменты для самостоятельного хостинга и другие программы, о которых не задумывались в прежние времена.

Инфобез — одно из главных направлений проектов на Github. Посмотрим на лучшие новинки, которые там появились за последние несколько лет.
Читать дальше →

Полезные, смешные, нелепые: репозитории GitHub, которые вас удивят

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели22K

На GitHub есть немало репозиториев, в которых будет интересно поковыряться даже не профессионалу. Сегодня мы подготовили для вас небольшую статью-компиляцию сразу из двух источников (раз и два), отобрали самое интересное.

Пустой «дзен-репозиторий», хранилище самых глупых требований к паролю и скриптовый язык на основе Python в стиле Дональда Трампа (а также многие другие интересные и даже полезные штуки) ждут вас под катом.

Читать далее

Как контрибьютить в проект, о котором ничего не знаешь

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели9.6K

Bun


В последнее время мне очень нравится Bun. Это новая среда исполнения JavaScript / TypeScript, схожая с Deno / Node. Она имеет одно преимущество по сравнению с другими средами исполнения, которое очень важно для меня: очень быстрый запуск (по крайней мере, для JS). Когда я впервые запустил в ней небольшой кусок кода, то просто не мог поверить.

Когда я перешёл с Ruby на Node, меня оттолкнуло то, что тесты в Node выполняются о-о-очень медленно. Написание одной и той же бизнес-логики и её тестирование на этих языках — совершенно разный опыт. Неудивительно, что сообщество JS-разработчиков ненавидит юнит-тестирование, когда нужно думать, например, распределять ли тесты на несколько файлов, или нет.

Однако на то есть причина. Как бы вы ни оптимизировали инструменты для выполнения тестов наподобие Vitest, Jest или Ava, первый прогон теста (без watch) всегда будет выполняться чрезвычайно медленно в Node, потому что для запуска V8 и разрешения модулей требуется куча времени. Когда ты распределяешь работу на несколько процессов, чтобы использовать все ядра, это требует ещё больше ресурсов!
Читать дальше →

SQRT.app или о том как, сократить затраты в автоматизации тестирования

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели1.3K

Всем привет, меня зовут Виталий, я являюсь Test automation engineer и по совместительству один из создателей библиотеки который называется sqrt.app. В IT-сфере я около 6 лет и успел повидать много говна решений но сегодня я бы хотел рассказать про то - зачем любому инженеру будет полезно использовать данный тул.

узнать про sqrt.app

Перевод: Защита ваших репозиториев Git: Исчерпывающее руководство по использованию Gitleaks

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели10K

Gitleaks — это инструмент с открытым исходным кодом, предназначенный для предотвращения размещения конфиденциальных данных в репозиториях Git. Он работает путем сканирования Git‑репозиториев на наличие потенциальных секретов, таких как пароли, API‑ключи и другая конфиденциальная информация, которая не должна быть публично раскрыта.

Инструмент хорошо настраивается и поддерживает широкий спектр форматов файлов, включая текстовые, двоичные и даже зашифрованные файлы. Gitleaks можно использовать как инструмент командной строки или как часть конвейера CI/CD, чтобы помочь отловить конфиденциальные данные до их размещения в репозитории.

Gitleaks использует регулярные выражения для идентификации потенциально конфиденциальных данных, а его правила можно легко настроить для соответствия конкретным интересующим шаблонам. Он также поддерживает маскировку определенных шаблонов или полное игнорирование определенных файлов или каталогов.

Gitleaks может быть полезен всем, кто работает с Git‑репозиториями, особенно тем, кто имеет дело с конфиденциальными данными. Это эффективный способ предотвратить случайные утечки и обеспечить защиту конфиденциальной информации.

Читать далее

CI/CD GitHub Actions

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели4K

CI/CD с использованием GitHub Actions (приложение Django)

1. Настройка непрерывной интеграции с помощью GitHub Actions: На GitHub перейдите на главную страницу репозитория.

2. Под именем вашего репозитория щелкните Actions:

Читать далее

Изучаем чёрный рынок фальшивых звёзд GitHub

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели17K

В этом посте мы изучим тему фальшивых звёзд GitHub, поделимся своей методикой их выявления и покажем, как самостоятельно провести такой анализ любых репозиториев.

Если вам неинтересна история, то можете сразу перейти к коду в конце статьи.

А если вам понравилась статья, перейдите в репозиторий Dagster и поставьте нам реальную звезду GitHub!
Читать дальше →

Работа с научными данными в рамках data-driven подхода

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели3.4K

В современном мире человечество нуждается в большом количестве данных, которые используются в совершенно различных целях: от повышения эффективности работы маркетинга отдельно взятой компании до построения технологий будущего в научно-исследовательских центрах [1]. Однако зачастую результат напрямую зависит от того, как собираются и обрабатываются данные.

В данной статье я хочу показать, как происходит работа по сбору и обработке данных в рамках научного проекта. Работа с данными будет основываться на data-driven подходе.

Читать далее

Граф стека вызовов — новая функция для GitHub, GitLab, JetBrains IDE

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели5.4K

Создание документации для кода Python может быть трудоемким и подверженным ошибкам процессом. К счастью, существуют инструменты, которые могут автоматизировать эту задачу, например, созданный мной скрипт, который считывает все файлы .py в заданном каталоге и создает документацию для кода.

Читать далее

Пишем простой калькулятор используя фреймворк eframe (egui)

Уровень сложностиСредний
Время на прочтение34 мин
Охват и читатели20K

Всем здравствуйте. Ниже будет приведен пример написания PWA приложения готового для использования как в браузере, так и на компьютере с ОС Windows. Используется язык программирования Rust и фреймворк eframe (egui). В результате получим исполняемый файл для ОС Windows, и файл Webassembly. В процессе работы будет использоваться GitHub Action для отслеживания корректности написания нашего кода и сборки исполняемых файлов программы, а также для развертывания (версию программы с использованием Webassembly) как страницы в интернете (GitHub Pages).

Читать далее

Ближайшие события

Freyr-js: находка меломана

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.2K

Продолжаю знакомить уважаемых читателей с интересными программами из мира open source. Проще говоря, с крутыми проектами на Github, о которых вы, скорее всего, не знали.

Сегодня в меню невероятно полезная утилита Freyr-js, которая должна понравиться меломанам. Freyr-js умеет скачивать музыкальные файлы из Spotify, Apple Music и Deezer по веб-ссылкам и позволяет вам по старинке поддерживать локальную музыкальную коллекцию. Без подписок, с сохранением полного контроля над своей фонотекой и, как правило, с высоким битрейтом. Круто? Ещё бы! Забегая вперёд: да, есть некоторые ограничения и нюансы, но они не портят общую картину.

А ну ка...

Docs as Code для художественной литературы. Делаем творческий сайт ребенка с помощью MkDocs

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели13K


Docs as Сode — подход к работе с текстами, подразумевающий написание текста как кода:


  • в простом текстовом редакторе или IDE;
  • с использованием системы контроля версий;
  • с CI / CD / Code Review.

В настоящее время Docs as Code широко применяется при работе с технической документацией, давая техническим писателям и проектным командам массу удобств и преимуществ.


Но что если пойти дальше, попробовать такой подход не с техническими, а с художественными текстами? Что если автор — не технарь и не айтишник? Просто юный начинающий писатель, который пробует писать прозу и стихи ручкой на бумаге, и надеется познакомить широкую публику со своим творчеством?


В этой статье я расскажу о таком эксперименте (забегая вперед, удачном). Моей дочери 11 лет, она пишет сказки, стихи и рассказы. Чтобы поддержать ее увлечение, я помог ей создать литературный сайт, используя подход Docs as Code. Она успешно освоила основы Markdown и Git. Сейчас она самостоятельно публикует новые произведения и обновляет новости на своем сайте https://lib-beliakova.github.io/.

Читать дальше →

Instagram* сможет работать без VPN?

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели35K

Популярная социальная сеть была запрещена в России в 2022 году. Для многих поклонников приложения это стало настоящим ударом, а трафик Instagram* понес огромные потери: по данным Brand Analytics на октябрь 2022 года, количество авторов (блогеров) сократилось с 38 млн до 17 млн за год, а количество отправленных сообщений упало со 135 млн до 40 млн за тот же период. Теперь, вероятно, владельцы соцсети ищут новые способы вернуть свою аудиторию. Одним из них может стать работа Instagram* с уже встроенным модулем обхода блокировок в странах-цензорах.

Читать далее

Как работает поиск по коду на Github

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели22K


От запуска ознакомительной версии нового улучшенного поиска кода год назад до публичной беты, которую мы выпустили на GitHub Universe в прошлом ноябре, появилась масса инноваций и резких изменений в некоторых основных продуктах GitHub, затрагивающих то, как мы, разработчики, осознаём, читаем код и ориентируемся в нем.


Нам часто задают вопрос о новом поиске по коду: «Как он работает?». В дополнение к моей лекции на GitHub Universe, я в общих чертах отвечу на этот вопрос, а также немного расскажу о системной архитектуре и технических основах данного продукта.


Так как же он работает? Мы создали собственный поисковый движок с нуля на Rust специально для поиска по коду. Наш поисковый движок называется «Blackbird», но прежде чем я стану описывать как он работает, думаю, что нужно понять наши предпосылки. На первый взгляд, создание поискового движка с нуля выглядит спорно. Зачем это делать? Разве уже нет большого количества существующих решений с открытым исходным кодом?

Читать дальше →

Git scraping: методика бесплатного хостинга не совсем статических сайтов

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели14K

Ни для кого не секрет, что, используя GitHub Pages, вы можете бесплатно разместить свой статический веб-сайт в сети Интернет. 1 Гбайт доступного пространства, SSL-сертификат, возможность привязать собственный домен — разве не сказка? Но что делать, если вам необходимо, чтобы содержимое вашего статического ресурса периодически обновлялось? Допустим, несколько раз в час.

Пути решения уже существуют, и в этой статье я расскажу об одном из них. Вооружившись GitHub Actions в качестве среды выполнения и отдельной веткой Git-репозитория в качестве хранилища, мы организуем автоматизированный пайплайн получения, обработки и отображения малых неконфиденциальных данных, который будет ежемесячно нам обходиться в целых 0 рублей.

Читать далее

Инкрементация и сохранение сборки на CI

Время на прочтение7 мин
Охват и читатели3.1K

Привет, Хабр! Меня зовут Паша Филимонов и я Android-разработчик в Учи.ру. Наша небольшая команда занимается разработкой мобильных приложений — «Учи.ру» и «Учи.ру для учителей». Мы сторонники автоматизации и считаем, что настройка CI/CD необходима  для улучшения процессов разработки продукта. Каждый раз, приступая к новой сборке приложения, нам приходилось вручную прописывать ее код версии. Это довольно рутинная задача, которую мы решили автоматизировать. Рассказываю, как мы это сделали.

Читать далее

Зеркалирование GitHub-проектов в 2023 году

Время на прочтение5 мин
Охват и читатели14K

По ряду причин я решил зеркалировать свои открытые GitHub-проекты на другие платформы совместной разработки. Сделать это оказалось не так просто. В этой короткой статье описаны трудности, с которыми мне пришлось столкнуться, и итоговое рабочее решение.

Читать далее