Ещё один инструмент для обновления зависимостей

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

Получение и управление сертификатами Let's Encrypt на Ubuntu 24.04 LTS с помощью Certbot

Подробное руководство по получению и управлению сертификатами Let’s Encrypt на сервере Ubuntu 24.04 LTS с использованием инструмента Certbot. Рассмотрены как краткие команды для быстрого получения сертификатов, так и детальное описание процесса с решением возможных проблем. [Далее]

Лучшие практики — самопроверка кода в приложении для рецензирования

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

[Далее]

Проверяем актуальность go.mod и go.sum

При ревью запроса на слияние периодически приходится сталкиваться с подозрительными изменениями go.mod и go.sum. Например, когда изменяется только один файл из двух, или когда в Go коде мы не видим то, что могло бы привести к изменениям go.mod и go.sum. [Далее]
golang  go  gitlab  ci 

Как протестировать код на Go с базой данных?

Illustration - How to test code in Go with a database?

Введение

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

[Далее]

Разделение Интеграционных и Unit тестов в Go с помощью флага -short

В процессе создания приложения и написания тестов может возникнуть необходимость разделить тесты на две группы интеграционные тесты зависящие от окружения и unit тесты которые не зависят от окружения. Для таких ситуации рекомендую использовать флаг -short уже встроенный в go test -short ./..., во многих случаях этого простого деления будет достаточно, и более сложные механизмы вам не пригодятся.

Как это выглядит на практике:

  • go test -count=1 ./... — для запуска всех тестов.
  • go test -short ./... — для запуска только unit тестов.

Ещё для того чтобы этот подход заработал корректно во всех интеграционных тестах нужно будет добавить конструкцию вида if testing.Short() {}:

[Далее]

Git ssh: Не удалось разрешить имя хоста

Решение проблемы:

Чтобы проблема ушла необходимо убрать из URL удаленного репозитория ssh://

Клонирование репозитория

Если ошибка возникла во время клонирования, просто используйте url без указания схемы ssh:// используя URL вида.

git clone git@gitlab.com:xorcare/example.git

Вместо

git clone ssh://git@gitlab.com:xorcare/example.git

Работа с репозиторием

Если у вас перестали работать команды git push, git fetch и другие, с проблемой разрешения имени хоста при этом проверьте формат URL удаленных репозиториев git remote -v

origin  ssh://git@gitlab.com:/xorcare/example (fetch)
origin  ssh://git@gitlab.com:/xorcare/example (push)

и если адреса имею префикс ssh:// уберите его и приведите к следующему виду

[Далее]

Подмена адреса удаленного репозитория

В git можно заменить какую-то часть адреса удаленного репозитория (часть remote адреса) во всех репозиториях использюя глобальный конфиг и также это даступо при настройке конкретного репозитория.

Упращаем переезд с Github <–> Gitlab <–> Bitbucket

Если к примеру вы переехали с Github на Gitlab и у вас локально множестфо проектов в которых нужно обновлять remote то можно сделать это глобально до тех пор пока не замените remote во всех репоззиториях или снова не понадобится пользоватся Github.

[Далее]

Отправка изменений в несколько git репозиториев

Подробное описание настройки

Начнем с настройки remote

git remote add origin https://github.com/xorcare/example.git

далее что бы автоматически происходил push в дополнительный репозиторий выполним следующую команду

git remote set-url --add --push origin https://bitbucket.org/xorcare/example.git

После выполнения этой команды получим ситуацию что fetch изменений происходит из Github, а вот отправка изменений push в репозиторий Bitbucket, что-бы вернуть отправку изменений в репозиторий Github и получить желаемый результат с отправкой изменений в оба репозитория выполним ещё одну команду.

[Далее]

Мой первый пост

Это мой первый пост, созданный с помощью hugo!