Обновить
29.18

GitHub *

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

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

Как работает поиск по коду на 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-проекты на другие платформы совместной разработки. Сделать это оказалось не так просто. В этой короткой статье описаны трудности, с которыми мне пришлось столкнуться, и итоговое рабочее решение.

Читать далее

GitLab выкатил версию 15.8. Рассказываем, что нового

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

Привет! Я Максим Рязанцев, DevOps-специалист в AGIMA. На днях GitLab выкатил новую версию — версию 15.8. Мы с коллегами внимательно ее изучили, разобрались, что нового. И теперь решили поделиться списком улучшений. Тем более, что список внушительный. Правда, самые заметные изменения в касаются только облачной Ultimate-версии. Но мы-то знает, что со временем фичи с облака мигрируют в Self-Managed-версию. Так что коротко расскажем обо всех новинках.

Читать далее

GitHub Student pack как способ учиться легче и быстрее

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

На Хабре уже есть пара статей о GitHub Student Developer Pack, но они как минимум старые (>6 лет) и не раскрывают всю суть этой замечательной вещи. Я поставил себе задачу расписать как получить Developer Pack, зачем это надо и что Вы получите в итоге.

Читать далее

Github Actions. Простой пример для уверенного знакомства

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

Здесь я буду расссказывать о моем опыте настройки CI/CD c помощью GitHub Actions.

Эта статья поможет тем, кто хочет настроить автоматический деплой для личного/учебного проекта на свой удаленный сервер, пользуясь бесплатным сервисов GitHub Actions. Причем этим сервисом можно пользоваться бесплатно даже с приватным репозиторием (на момент написания статьи).

Акцентирую на тех моментах, которые для меня оказались не самыми очевидными, читая краткое руководство от Github.

Предполагается, что вы уже знаете, как пользоваться Github. По большому счету, не важно, какой у вас язык программирования или стек: главное - понять, как работают Github Actions и уметь применить его для любого проекта.

Читать далее

Телеграм бот на Python, для напоминаний о реквестах на BitBucket

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

Бот - для работы с репозиторием проекта в BitBucket.

Приветствую любителей ботов :-) Позвольте представить вашему вниманию бота для работы с репозиторием проекта в BitBucket.

Краткое описание моих скромных трудов.

Посмотреть подробнее

Как новичку разработать опенсорс-библиотеку: опыт фронтенд-разработчика

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

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

Меня зовут Женя, я все еще фронтенд-разработчик в команде Quick Experiments inDrive. В этой статье буду делиться своим выводами, а также прикладывать дополнительные ссылки, чтобы познакомить вас с материалом более подробно.

Узнать главное о создании библиотеки

Резервное копирование репозиториев с github, gitlab

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

Резервное копирование репозиториев с git серверов на основе github и gitlab по токену. Скрипт скачивает все Ваши репозитории доступные по токену и архивирует их. Давно хотел написать такой инструмент т.к. использую и те и те сервера в работе и личных целях. У меня полно старых проектов которые хранятся только на git, если с ним что-то случится, то их уже не будет.

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

Как устроен внутри Github Copilot

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

Github Copilot оказался для меня невероятно полезным. Часто он может волшебным образом читать мои мысли и давать полезные рекомендации. Больше всего меня удивила его способность верно «угадывать» функции/переменные по соседнему коду, в том числе и из других файлов. Это может происходить только в том случае, если расширение copilot отправляет ценную информацию из соседнего кода в модель Codex. Мне стало любопытно, как это работает, поэтому я решил изучить исходный код.

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

GitHub Copilot: он не стоит таких рисков

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

3 ноября программист и правовед Мэтью Баттерик совместно с юридической фирмой Джозефа Савери подал коллективный иск против GitHub, Microsoft (его материнской компании) и OpenAI.

Иск, поданный «от имени группы предполагаемых миллионов пользователей GitHub», направлен против GitHub Copilot, инструмента на основе искусственного интеллекта, выполняющего функцию продвинутого автокомплита для программистов. Разработчики, установившие Copilot в качестве дополнения к IDE, вводят подсказки на естественном языке, а Copilot выдает предложения по написанию кода на десятках языков программирования.

Генеральный директор GitHub Томас Дохмке ранее заявлял, будто Copilot способен избавить программистов от 40% рабочей нагрузки, предлагая им шаблонные фрагменты кода — в теории это позволит избежать долгих часов изысканий, проб и ошибок.

Но Бутерик и другие критики Copilot утверждают, что многие предложения Copilot вовсе не являются «шаблонными»; в них безошибочно угадываются следы оригинальных авторов, поскольку Copilot был «обучен» на хранилищах публичного и открытого кода GitHub.

Этот иск, как и масштабные дебаты вокруг Copilot, поднимает массу сложных вопросов: технологических, юридических, этических и даже экзистенциальных.

Читать далее

GitHub Codespaces

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

Всем привет! Меня зовут Макарий Балашов. Я SRE в Ak Bars Digital, но в свободное время люблю чуть-чуть покодить и запушить это все на GitHub. Недавно заметил там Codespaces и решил разобраться для себя, что это и зачем оно нужно, вот что у меня получилось.

Читать далее

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

CI/CD для AWS Lambda через GitHub Actions

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

Сегодня я расскажу, как без лишних усилий настроить CI/CD pipeline из GitHub в AWS Lambda с помощью GitHub Actions. Логика такая — когда мы пушим изменения в main-ветку репозитория на GitHub они прорастают в AWS и обновляет продовую версию функции.

Читать далее

Многопоточность на фронте: абсурд или прекрасное архитектурное решение?

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

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

Практически во всех областях IT-разработки весь мир перешел на использование многопоточности: мобильные приложения, бэкенд, прикладное программирование. И даже процессоры развиваются в сторону увеличения количества ядер. Но на фронте многопоточность используют нечасто, и эта тема до сих пор почему-то не очень популярна, особенно в ру-сообществе.

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

Читать далее

Как я организовал автоматический деплой для своих пет-проектов

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

Всем привет) Это мой первый пост на Хабре, и сегодня я расскажу про небольшой pet project (git-trigger), который я недавно написал для сборки своих проектов на сервере. На данный момент я использую его в нескольких своих проектах для автоматической сборки и пока не было замечено никаких косяков.

Читать далее

Yii3 Overview 2. Вспомогательные инструменты разработки

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

Самое ужасное, что может предоставить рабочий код – внезапную проблему. Будь то отложенная бага или неудачное обновление. Для того чтобы избежать такую ситуацию, мы в команде договорились покрывать тестами как можно больше написанного кода, проверять все допустимые варианты, делать статический анализ и проверять обратную совместимость будущих версий библиотек.

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

Читать далее

Правка чужого кода

Время на прочтение6 мин
Охват и читатели20K
Всегда приятно, когда удаётся сделать мир чуточку лучше.


Для одного проекта мне понадобился просмотрщик памяти в DOS. В идеале хотелось бы иметь редактор памяти, чтобы в нём был поиск по ключевым словам, перемещение к заданному адресу. Но для старта мне было бы достаточно хотя бы возможность просмотра всего мегабайта доступной «нижней» памяти.

Старожилы знают, что в комплекте с различными версиями ДОС шли дополнительные утилиты, и среди них была «замечательная» утилита debug, которая убога чуть более, чем полностью. Ещё во времена моей молодости эта утилита вызывала у меня самые противоречивые чувства, то сейчас и подавно. Пользоваться ей без успокоительных очень сложно, с другой стороны, хорошо, что она есть. Но мне возможностей и удобства этой утилиты не хватало, поэтому пришлось искать другой подходящий инструмент. После длительного гугления наткнулся на исходники утилиты RAM View.

К сожалению, исполняемого файла найти не удалось, только исходные коды под Borland C++ 3.1, и как впоследствии оказалось, сама программа содержала ошибки.

Всё это вылилось в интересный квест по поиску старого компилятора, исправления ошибок в программе 25-летней давности и создания запроса на слияние.
Читать дальше →

CI/CD из GitHub в Яндекс Облако через Docker

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

Всем привет!

Будем использовать GitHub Actions. Создадим виртуальную машину в Яндексе. И многое другое.

Сегодня настраиваем деплой из GitHub в Яндекс Облако, используя Docker compose.

Читать далее

SiteWatcher — наблюдаем за изменениями на страницах сайтов

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

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

В очередной такой "приступ" и было решено написать SiteWatcher. А чтобы труд не пропал зря, решил опубликовать свой проект. Может кому понадобится сама программа или что-то из её кода.

Читать далее

Вклад авторов