Обновить
72.28

GitHub *

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

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

Введение в GitHub Actions

Время на прочтение2 мин
Охват и читатели18K
В этой статье Senior App Dev Manager Джейсон Джордано (Jason Giordano) покажет нам, как использовать GitHub Actions для создания очень простого CI/CD решения.

GitHub Actions, релиз которого состоялся 13 ноября 2019 года, позволяет легко автоматизировать все ваши рабочие процессы в области программного обеспечения. Вы можете ознакомиться с подробностями здесь.



Также рекомендую ознакомиться с данной документацией перед тем, как решите расширить свое решение.
Читать дальше →

Взлом с помощью Юникода (на примере GitHub)

Время на прочтение3 мин
Охват и читатели26K
Юникод исключительно сложен. Мало кто знает все хитрости: от невидимых символов и контрольных знаков до суррогатных пар и комбинированных эмодзи (когда при сложении двух знаков получается третий). Стандарт включает 216 кодовых позиций в 17-ти плоскостях. По сути, изучение Юникода можно сравнить с изучением отдельного языка программирования.

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

Специалист по безопасности Джон Грейси продемонстрировал на примере GitHub баг проверки адреса электронной почты для восстановления забытого пароля. Подобные баги можно встретить и на других сайтах.
Читать дальше →

Создаем готовый для опенсорса проект на Angular в пару кликов

Время на прочтение3 мин
Охват и читатели6K
Недавно я публиковал статью о том, как быстро настраивать npm-пакеты перед публикацией в opensource. В ней я разобрал настройку версионирования, CI, построение воркфлоу и удобный деплой на страничку с демо. Все советы той статьи распространяются и на библиотеки Angular. Но все же специфика Ангуляра не позволит вам развернуться сходу.

С шестой версии Ангуляра мы используем Angular Workspaces. Это отличный инструмент для организации проекта, но он может добавить сложностей при его первичной настройке для опенсорса. Мы решили предусмотреть их и автоматизировать процесс.


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

В самом популярном фрагменте кода за всю историю StackOverflow ошибка! 

Время на прочтение7 мин
Охват и читатели70K
Недавнее исследование «Использование и атрибуция сниппетов кода Stack Overflow в проектах GitHub» внезапно обнаружило, что чаще всего в опенсорсных проектах встречается мой ответ, написанный почти десять лет назад. По иронии судьбы, там баг.

Давным-давно…


Еще в 2010 году я сидел в своём офисе и занимался ерундой: развлекался код-гольфингом и накручивал рейтинг на Stack Overflow.

Моё внимание привлёк следующий вопрос: как вывести количество байт в удобочитаемом формате? То есть как преобразовать что-то вроде 123456789 байт в «123,5 МБ».


Старый добрый интерфейс 2010 года, спасибо The Wayback Machine
Читать дальше →

Вышел Windows Terminal Preview 0.7

Время на прочтение3 мин
Охват и читатели17K
Представляем новый релиз Windows Terminal preview! Это выпуск v0.7. Как и всегда вы можете скачать Terminal из Microsoft Store или со страницы релиза на GitHub. А вот и новинки:

Обновления Windows Terminal


Панели (panes)


Теперь вы можете разделить окно терминала на несколько панелей! Это позволяет одновременно открывать несколько командных строк на одной вкладке.

Заметка: В настоящее время вы можете открыть свой профиль по умолчанию только на новой панели. Открытие профиля по вашему выбору — это опция, которую мы планируем включить в будущий выпуск.



Читайте подробнее об остальных новинках под катом.
Читать дальше →

Как Shopify организовала совместную работу более 1000 разработчиков

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


Сложно организовать совместную работу большой команды, тем более над общей кодовой базой, такой как Shopify. Наш монолит меняется по 40 раз на дню. Мы отслеживаем разработку в trunk-based рабочем процессе и ежедневно вливаем в мастер по 400 коммитов. У нас три правила безопасного деплоя, но с ростом масштаба разработки их становилось всё труднее соблюдать. Небольшие конфликты ломали основную ветку, медленные развёртывания увеличивали разрыв между ней и продакшном, а скорость деплоя критических изменений замедлилась из-за отставания пул-реквестов. Чтобы решить эти проблемы, мы обновили Merge Queue (наш инструмент для автоматизации и управления скоростью мержей в основную ветку). Теперь он интегрирован с GitHub, запускает непрерывную интеграцию (CI) перед слиянием с основной веткой, удаляет запросы, которые не вошли в CI, и увеличивает скорость развёртывания.
Читать дальше →

Оптимизация поиска решений на github

Время на прочтение2 мин
Охват и читатели2K
В процессе работы над большим проектом, заимствование чужих модулей и готовых решений экономит огромное количество времени разработчиков и денег инвесторов. Одним из самых больших хранилищ таких решений безусловно является github.

Под катом маленькая хитрость, которую я использую при поиске и выборе решений github.
Читать дальше →

Обзор инструментов для безопасности GitHub репозиториев

Время на прочтение4 мин
Охват и читатели8K
image


Введение


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

В случае, если вы создаете свой собственный репозиторий GitHub или часто контрибьютите в репозиторий, вам необходимо знать, содержит ли ваш код какие-либо уязвимости. Уязвимости репозиториев в прошлом вызывали проблемы с безопасностью. Это было подчеркнуто тем фактом, что две из самых больших утечек данных за последнее время — Equifax и Heartbleed SSL Exploit — начались с уязвимостей с соответствующими компонентами с открытым кодом, которые могут быть использованы в будущем.

В этом посте мы рассмотрим и проанализируем четыре отдельных инструмента, которые можно использовать для выявления уязвимостей в вашем репозитории GitHub. Каждый из этих четырех инструментов имеет свои суперспособности, но у каждого есть и слабые стороны. Эта статья поможет вам выбрать правильный инструмент для проекта с открытым исходным кодом.
Читать дальше →

Строим домашний CI/CD при помощи GitHub Actions и Python

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

Как то вечером, придя домой с работы, я решил немного позаниматься домашним проектом. Я сделал несколько правок и сразу захотел поэкспериментировать с ними. Но до экспериментов мне пришлось заходить на VPS, пулить изменения, пересобирать контейнер и запускать его. Тут я и решил, что пора разобраться с непрерывной доставкой.

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

Анонс Github Security Lab: защита всего кода вместе

Время на прочтение4 мин
Охват и читатели4.1K
image

Мы все несем коллективную ответственность за обеспечение безопасности программного обеспечения с открытым исходным кодом — никто из нас не может это делать в одиночку. Сегодня в Github Universe мы объявили Github Security Lab. Место где соберутся вместе исследователи безопасности, сопровождающие и компании по всей отрасли, которые разделяют нашу убежденность в том, что безопасность открытого исходного кода важна для всех.

Мы рады иметь первоначальных партнеров, которые делают свой вклад для достижения этой цели. Вместе мы предоставляем инструменты, ресурсы, награды и тысячи часов исследований в области безопасности, чтобы помочь защитить экосистему с открытым исходных кодом.

В рамках сегодняшнего объявления GitHub Security Lab делает CodeQL свободно доступным для всех, кто может найти уязвимости в открытом исходном коде. CodeQL — это инструмент, который многие исследовательские группы по всему миру используют для проведения семантического анализа кода, и мы использовали его сами, чтобы найти более 100 зарегистрированных CVEs(Common Vulnerabilities and Exposures) в некоторых популярных open source проектов.
Читать дальше →

GitHub Actions как CI/CD для сайта на статическом генераторе и GitHub Pages

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


Немного прошерстив Habr удивился тому, что очень мало опубликовано статей на тему (beta-)фичи GitHub'а — Actions.


Казалось бы, можно объяснить такую недосказанность тем, что функционал еще в тестировании, пусть и "beta". Но именно полезная особенность беты позволяет использовать этот инструмент в приватных репозиториях. Именно про работу с данной технологией я расскажу в этой статье.

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

Как я упрощал процесс работы над опенсорс проектами

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

В данной статье я расскажу, как я пытался поучаствовать в разработке какого-нибудь крупного опенсорс проекта, возненавидел себя, а потом автоматизировал рутину и научился радоваться жизни. Детали — под катом.

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

Пишем программу для камеры хранения с функцией распознавания лица

Время на прочтение3 мин
Охват и читатели8.8K
Распознавания лиц уже захватило весь мир. Во всех крупных странах уже пользуются этой полезной фишкой. Почему не сделать жизнь людей еще удобнее и не встроить распознавание лиц в камеру хранения?

image

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

9 полезных браузерных расширений для разработчиков (cписок на 2020 год)

Время на прочтение4 мин
Охват и читатели19K
Как упростить себе жизнь при помощи браузерных плагинов.

Хитрые веб-разработчики умеют пользоваться браузером на уровне «god-mode». Расширения(плагины, add-on) чрезвычайно полезны, когда речь идет об улучшении рабочей среды и повышении производительности написания кода.

Не за горами 2020 год. Появилось много новых расширений. Я собрал наиболее полезные расширения для веб-разработчиков и поместил их в один список.

Refined GitHub


Refined Github упрощает интерфейс GitHub и добавляет полезные улучшения.

image

Refined Github

«Надеемся, что GitHub заметит как необходимы эти улучшения и добавит некоторые из них. Поэтому, если вам нравится какое-либо из этих улучшений напишите, пожалуйста, в службу поддержки GitHub об этом».
— создатели Refined Github.
Читать дальше →

GitHub Desktop 2.2: что нового

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


Любой, кто использует Git, знает, что у него крутая линия обучения. Мы узнали от разработчиков, что большинство людей, как правило, учатся у знакомых, будь то коллега, профессор, друг или даже видео на YouTube. В GitHub Desktop 2.2 мы добавляем первую версию интерактивного учебника по Git и GitHub, который может стать вашим другом и помочь вам начать работу. Если вы новичок в Desktop, вы можете скачать и попробовать учебник по адресу desktop.github.com.
Читать дальше →

Будущее уже здесь или кодим прямо в браузере

Время на прочтение3 мин
Охват и читатели30K
Расскажу о курьезной ситуации, случившейся со мной, и о том как стать конрибьютором в известный проект.
Читать дальше →

Делаем автономного водного дрона или как я мечтал помочь Байкалу, но я не газпром. Часть 1 и последняя

Время на прочтение4 мин
Охват и читатели15K
Привет, Хабр!

Я живу рядом с Байкалом, и много раз бывал на нем. Это красивое озеро с чистым воздухом. Несколько лет назад озеро начало загрязняться. И вот я подумал почему бы не сделать дрона с солнечными батареями, поставить на нее двигатель, нейронный компьютер с YoloV3(нейросеть которая обеспечивает зрение компьютеру) со стереокамерой, добавить GPS и научить его чистить Байкал в автономном режиме.

image

Анализ коммитов и pull request'ов в Travis CI, Buddy и AppVeyor с помощью PVS-Studio

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

Picture 11

В анализаторе PVS-Studio для языков С и C++ на Linux и macOS, начиная с версии 7.04, появилась тестовая возможность проверить список указанных файлов. С помощью нового режима можно настроить анализатор для проверки коммитов и pull request'ов. В этой статье будет рассказано, как настроить проверку списка изменённых файлов GitHub-проекта в таких популярных CI (Continuous Integration) системах, как Travis CI, Buddy и AppVeyor.
Читать дальше →

Новый пакет валидаций для React на Mobx @quantumart/mobx-form-validation-kit

Время на прочтение19 мин
Охват и читатели4.9K
Добрый день.
Сегодня я хочу рассказать о новом пакете для асинхронных валидаций в проектах использующих в своей основе React, Mobx и написанных на Typescript.
Современная Frontend разработка предполагает большое количество логики при заполнении страниц с документами, анкет и документов на кредит, платежных поручений, страниц регистраций на сайте. Основная логическая нагрузка приходиться на валидационные проверки. Разработчики Angular продумали этот момент и предлагают разработчикам для этих целей использовать встроенных механизм FormControl-ов, что, хоть имеет ряд своих недостатков, но всё же лучшем чем полное отсутствие подобного решения на React. Ситуация усложняется еще тем, что современный тренд React разработки предполагает использовать mobx для организации бизнес-логики.
Столкнувшись с этими проблемами мы решили всех их с помощью написания пакета: @quantumart/mobx-form-validation-kit

Плюсы пакета:
  • Полностью на TypeScript
  • Совместимость с Mobx (версии 4, который поддерживает, всеми любимый, IE10)
  • Рассчитан на работу в React (можно использовать в проектах и без react)
  • Рассчитан на асинхронные валидации
  • Легко встроить в существующий проект.

Инструкция по работы с пакетом под катом.
Читать дальше →

Сортировка фотографий по данным из EXIF + PHP

Время на прочтение4 мин
Охват и читатели7.3K
Хочу поделиться своим опытом сортировки фотографий с помощью скрипта на PHP
Наступает тот момент, когда фотографий становится не много, а катастрофически много.
Читать дальше →