Как стать автором
Поиск
Написать публикацию
Обновить
43.25

GitHub *

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

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

Находки на рыбалке: FastStream! Сходили с автором половить рыбу и пожарить всякое вкусное на углях. И пока было время – говорили про программирование.

Для тех, кто еще не успел познакомиться с новинкой, рассказываю: FastStream – аналог FastAPI, но для работы с событиями в брокерах / очередях.

Пример:

from faststream import FastStream
from faststream.kafka import KafkaBroker

broker = KafkaBroker("localhost:9092")
app = FastStream(broker)

@publisher("another-topic")
@subscriber("first-topic")
async def handle(user: str) -> str:
     return f"Hi, {user}!"

Что делает данный код? Читает сообщения из first-topic, парсит из них поле user типа str, выполняет вашу логику обработки, отправляет новое сообщение в another-topic. Просто? Удобно? Да!

Что нам дает такой подход?

  • Декларативное описание, чего мы хотим. Не надо руками создавать коннекты и рулить потоком выполнения

  • AsyncAPI документацию (аналог OpenAPI в вебе)

  • Удобное тестирование

  • Кучу других плюшек!

Внутри видео обсудили:

  • Детали работы DI фастстрима

  • Встроенное Observability

  • Open Tracing

  • Сообщество фреймворка (тут не будет проблемы "одного автора", сообщество живет!)

  • Отличия от Celery: почему интструменты совсем разные?

Репозиторий: https://github.com/ag2ai/faststream
Документация: https://faststream.ag2.ai

Обсуждение: используется ли в ваших проектах асинхронная архитектура? Как вы работаете с событиями?

Теги:
+12
Комментарии0

⚙️ Настройка разных пользователей Git для разных проектов

В домашней директории есть три папки:

- ~/ProjectHome/
- ~/ProjectWork/
- ~/ProjectOther/

В каждой нужно работать от своего пользователя:

- userHome
- userWork
- userOther

Чтобы работать в каждом проекте без дополнительных переключений, нужно сделать следующее:
1. Добавить настройки в .gitconfig

Откройте файл ~/.gitconfig и добавьте в него:

[includeIf "gitdir:~/ProjectHome/"]
path = ~/.gitconfig-home
[includeIf "gitdir:~/ProjectWork/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/ProjectOther/"]
path = ~/.gitconfig-other

2. Создать отдельные конфиги для каждого пользователя
Создайте в домашней директории три файла:

- ~/.gitconfig-home
- ~/.gitconfig-work
- ~/.gitconfig-other

3. Прописать пользователя и SSH-ключ в каждом конфиге
Пример содержимого для ~/.gitconfig-home:

[user]
name = userHome
email =userHome@mail.ru
[core]
sshCommand = "ssh -i ~/.ssh/id_userHome_ed25519"

Аналогично создайте .gitconfig-work и .gitconfig-other, указав соответствующего пользователя, почту и путь к ключу.

⚠️ При этом из основного .gitconfig нужно удалить секции [user] и [core.sshCommand], чтобы не было конфликтов.

4. Указать правильный remote для каждого проекта в своей папке

Для проектов в ~/ProjectHome/:
git remote set-url origin git@github.com:userHome/ProjectHome.git

Для проектов в ~/ProjectWork/:
git remote set-url origin git@github.com:userWork/ProjectWork.git

Для проектов в ~/ProjectOther/:
git remote set-url origin git@github.com:userOther/ProjectOther.git


💡 ProjectHome.git, ProjectWork.git, ProjectOther.git - это просто примеры названий репозиториев, они могут быть любыми.

📌 Важно: эти команды нужно выполнять для каждого проекта отдельно, а не один раз для всей папки.

5. Разместить SSH-ключи

В директории ~/.ssh/ должны находиться три приватных ключа, которые вы сгенерировали для каждого пользователя.

Например:
- id_userHome_ed25519
- id_userWork_ed25519
- id_userOther_ed25519


Убедитесь, что имя ключа соответствует указанному в параметре sshCommand внутри соответствующего .gitconfig-*

Результат

Теперь можно:
- Открыть в редакторе любой проект из этих папок.
- Работать, делать коммиты и пушить - без ручного переключения пользователя или ключа.
- Открыть сразу несколько проектов из разных папок - всё будет работать корректно.

Можно добавить и больше папок с пользователями - принцип остаётся тем же.

Добавлю еще вариант, подходит для Gitlab:
https://qna.habr.com/q/1400592

Теги:
+9
Комментарии0

💫 Получите развернутый анализ GitHub репозитория через ChatGPT Deep Research

Не все про это знают, но с помощью ChatGPT Deep Research можно изучить любой GitHub проект

В режиме Deep Research через селектор выберите желаемый репозиторий, а через 5 минут получите детальный анализ по вашему запросу

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

Особенно полезно при изучении чужих проектов, когда надо быстро вкатиться

Вот тут можете посмотреть, как ChatGPT сделал разбор моего тестового репозитория, опираясь на мой неполноценный промпт

Теги:
Всего голосов 5: ↑4 и ↓1+4
Комментарии3

Скрипт синхронизации GitHub Issues для Cursor IDE

ghsync.py позволяет Агенту взаимодействовать с задачами (issues) в репозитории GitHub.

Скачать: https://github.com/Artemonim/Artemonim-Little-Tools/tree/master/AgentTools/GithubIssueSynchronizationScript

Скрипт позволяет читать все метки и задачи, редактировать существующие задачи и создавать новые. Поддерживается изменение статуса задачи, но удаление задач не предусмотрено.

Для массовых изменений рекомендуется создать премиальной моделью файл temp.txt со списком команд, а затем выполнить их с помощью бесплатной модели. Gemini 2.5 Flash справляется с этим. Cursor Small и GPT-4o-mini не тестировались.

Требования

  1. Python 3: Убедитесь, что у вас установлен Python 3.

    • Если проект не использует Python, создайте локальное окружение Python. В Cursor или VSCode откройте терминал и выполните:

      python -m venv env_py
      

      После этого IDE сама предложит активировать окружение.

  2. GitHub CLI (gh): Должен быть установлен GitHub CLI и пройдена аутентификация:

    gh auth login
    

Настройка

Добавьте папку .cursor в ваш репозиторий и следуйте предыдущему разделу.

Использование

Пример запроса к модели:
В соответствии с @git-interactions.mdc выполни {действие}

Основные команды, поддерживаемые ghsync.py

  • -d, --download: Скачивает все метки и задачи.

  • -u, --upload: Создает новую задачу.

    • Обязательный аргумент: --title <заголовок>

    • Опционально: --body <тело> или --body-from-file <имя_файла> (из .cursor/Gitdata/temp_bodies), --labels <метка1> <метка2> ...

  • -e, --edit <НомерЗадачи>: Редактирует существующую задачу.

    • Опционально: -NewTitle <новый_заголовок>, -NewBody <новое_тело> или -NewBodyFromFile <имя_файла> (из .cursor/Gitdata/temp_bodies), -NewLabels <метка1> <метка2> ..., -NewState <open|closed|not_planned>

При использовании --body-from-file или -NewBodyFromFile, положите файл с содержанием задачи в папку .cursor/Gitdata/temp_bodies. Скрипт считает содержимое и автоматически удалит файл после использования.

Примечания

  • Скрипт и связанное правило пытаются обойти текущие проблемы Cursor с захватом вывода терминала для Агентов. Следите за исполнением, так как Агент может не следовать инструкциям в git-interactions.mdc и проверять вывод консоли вместо статус-файла

  • Я пытался создать Agent Tools через MCP-сервер, но ни Gemini, ни Claude не смогли корректно подключить MCP к Cursor, поэтому я забил.

  • Если хотите, чтобы действия Агента отображались отдельно от ваших, создайте для него отдельный аккаунт GitHub. Вроде как ещё можно создать под него GitHub App, но мне лень, учитывая, что я работаю один в приватном репозитории.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

В репозитории Tencent Cloud SDK for Go на GitHub содержится более 200 000 тегов Git. Это так много, что попытка взаимодействия с тегами в этом репозитории может фактически привести к сбоям в работе GitHub (504 Gateway Time-out. The server didn't respond in time).

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Кардинальное упрощение привязки GitHub, GitLab, Bitbucket в Amvera Cloud

Привязка репозиториев GitHub, GitLab, BitBucket вызывала у наших пользователей затруднения, и мы обещали упростить процесс.

Теперь для привязки репозитория достаточно указать токен и выбрать ветку и репозиторий.

Способ позволяет организовать максимально простой деплой и обновление приложений через git push. Для обновления приложения достаточно сделать коммит в привязанный репозиторий, и оно соберется и бесшовно запустится автоматически.

Заполняем три поля и CI/CD готов
Заполняем три поля и CI/CD готов

Подробная инструкция по подключению доступна по ссылке.

Amvera Cloud — это облако для простого деплоя приложений через git push (или интерфейс). Встроенный CI/CD, бэкапы и мониторинг позволяют развернуть проект тремя командами в IDE и не думать о настойке инфраструктуры. Amvera проще, чем использование VPS.

Теги:
Всего голосов 2: ↑1 и ↓1+1
Комментарии0

Представлен инструментарий Turns Codebase into Easy Tutorial with AI, который превращает любой репозитарий GitHub в учебник. Нейросеть анализирует весь код, разбирается в нём и создаёт гайд, в котором просто и понятно расписано как ресурс работает. С помощью решения можно легко учить новые технологии, изучать программирование по готовым проектам; писать документацию к своим репо.

Пример гайда по Tutorial: MCP Python SDK.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Представлен открытый проект на Python под названием Autonomous Networked Utility System. У решения функционал, архитектура, дизайн и код идентичные платному Manus AI. Проект решает сложные математические задачи, пишет код на уровне сеньора, бронирует отели и даже анализирует операционные цели бизнеса. MIT License позволяет внедрять ИИ-агента в любые сервисы и использовать в разных задачах.

Примечательно, что проект набрал более 1,5 тыс звёзд на GitHub менее чем за сутки.

Теги:
Всего голосов 4: ↑2 и ↓20
Комментарии2

Наш backend developer Дмитрий делится Open Source-проектом, который поможет разработчикам Telegram Mini Apps (TMA) упростить валидацию Init Data — проверку, что HTTP-запрос действительно был отправлен из приложения в Telegram.

Дмитрий реализовал Python-пакет, в котором имплементировал алгоритмы, позволяющие проверять подлинность данных, передаваемых из Mini Apps. С ним можно легко реализовать механизм авторизации/аутентификации для Backend-части приложения.

👉 Забирайте репозиторий: https://github.com/swimmwatch/telegram-webapp-auth

Также у проекта есть документация, в которой описывается применение этой библиотеки с популярными веб-фреймворками: Django, FastAPI.

Когда мы начинали разрабатывать TMA, то столкнулись с недостатком информации, кейсов, спросить или подсмотреть было не у кого – не так много компаний, которые занимаются созданием мини эппов. Сегодня же мы успешно реализовали несколько Telegram Mini Apps, накопили ценный опыт и готовы делиться своими Open Source-проектами с сообществом разработчиков и вкладываться в развитие технологии. Подписывайтесь на наш телеграм-канал!

Если у вас есть идея Telegram Mini App, то Doubletapp поможет ее воплотить, подробнее о наших кейсах – на сайте.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Разработчик под ником OXY2DEV рассказал, что написал 24 451 строку кода для плагина Neovim (markview.nvim), используя только свой смартфон. Эту историю заметили другие разработчики, включая его коллег из Бангладеш. Они придумали, как отправить разработчику рабочий ноутбук, чтобы OXY2DEV смог работать более удобно и продуктивно, а также не просить проверить код на ПК, так как у него со смартфона не было возможности сделать тесты должным образом.

Теги:
Всего голосов 3: ↑2 и ↓1+2
Комментарии3

Исследовал интернет и наткнулся на GitHub Unwrapped. Он на основе активности в GitHub создаёт видео, где можно увидеть часто используемые языки, часы спонтанной работы, звёзды и всё остальное. Достаточно ввести только имя профиля, чтобы получить видео. Код открыт.

Сделано с использованием Remotion — тоже с открытым кодом, которая позволяет автоматизировать создание видео на React в веб. Документация хорошая, но надо разбираться. Увидел это и решил, что круто, надо поделиться!

P.S. Моя активность в этом ролике, если кому-то будет интересно.

Теги:
Всего голосов 4: ↑3 и ↓1+3
Комментарии0

Довольно давно, когда работал сисадмином, написал пару скриптов, чтобы от обычного ping получить несколько большую информационную отдачу, об этом в видео. Скрипты выложил на GitHub.

Теги:
Всего голосов 4: ↑2 и ↓2+2
Комментарии5

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

Компания Gartner опубликовала отчет о состоянии рынка ИИ-помощников по кодированию в своей ежегодной серии квадрантов. GitHub вошел в группу лидеров

Gartner включила в квадрант ИИ-помощников по кодированию 12 решений на основе их способности к выполнению задач и полноты видения. GitHub со своим ИИ-помощником Copilot вошел в группу лидеров и занял первое место по исполнительности.

Figure 1: Magic Quadrant for AI Code Assistants
Figure 1: Magic Quadrant for AI Code Assistants

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

Планы на будущее

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

Также компания планирует серьезно расширять аудиторию Copilot. «Мы видим мир, в котором новички, любители и профессиональные разработчики могут создавать программное обеспечение с помощью магии Copilot. Мы считаем, что такая доступность позволит творить миллиардам разработчиков во всем мире» – заявил генеральный директор Томас Домке.

Теги:
Всего голосов 3: ↑3 и ↓0+7
Комментарии1

Microsoft опубликовала первое стабильное обновление новой ветки дистрибутива Azure Linux 3.0, который ранее распространялся под именем CBL-Mariner.

Проект развивается в качестве универсальной базовой платформы для Linux-окружений, используемых в облачной инфраструктуре, edge-системах и различных сервисах Microsoft. Решение нацелено на унификацию применяемых в Microsoft Linux-решений и упрощение поддержания Linux-систем различного назначения в актуальном состоянии.

Наработки проекта распространяются под лицензией MIT. Сборки пакетов формируются для архитектур aarch64 и x86_64. Размер установочного образа 740 МБ.

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

Изменения в новой версии:

  • ядро Linux обновлено до версии 6.6;

  • добавлена поддержка GPU Nvidia A100 и H100, а также предоставлен Nvidia GPU Operator для автоматизации управления драйверами Nvidia на узлах с Azure Linux;

  • добавлены инструменты для замены других дистрибутивов (OSsku In‑Place Migration) на узлах в облаке Microsoft Azure, например, можно заменить установленный Ubuntu на Azure Linux;

  • система принудительного контроля доступа SELinux переведена по умолчанию в режим enforcing.

Источник: OpenNET.

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии1

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

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Программист из Индонезии разработал небольшой шуточный проект GitHub Profile Roast. Как следует из употреблённого в разговорном оттенке слова «roast» в названии, целью сервиса является творчески и с шутками оскорбить пользователя, максимально используя для этого личные детали. Делать это сервис пытается на основе аккаунта GitHub.

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

Сервис работает на английском и французском языках, а также на нескольких неевропейских, популярных в Юго-Восточной Азии (хинди, индонезийский, корейский, японский, китайский). Русского в этом списке нет.

Работает это всё через доступ к API компании OpenAI. Какой-либо умной защиты промпта нет. Как продемонстрировали в микроблогах, провести инъекции в промпт было относительно легко.

Из других любопытных наблюдений: сервис отказывается работать с некоторыми профилями. Среди замеченных в подобном Линус Торвальдс (имя пользователя torvalds) и часть аккаунтов компаний, к примеру, Microsoft и Google. Вместо череды колкостей сайт выдаёт вежливый отказ оскорблять этого пользователя. Возможно, это некий чёрный список, который автор сервиса заложил, чтобы сохранить механическую целостность фронтальной части своей головы.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии6

Представлен открытый проект ngtop. Это утилита командной строки для вывода количества запросов (request counts) из файлов access.log nginx.

Исходный код ngtop написан на go и распространяется на GitHub под лицензией GNU General Public License v3.0.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

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