Без рубрики

Поднятие Docker контейнеров в тестах с Go и Dockertest

Для запуска интеграционных тестов в Golang часто требуются внешние зависимости в виде базы данных, брокера сообщений либо еще каких-то сторонних компонентов.В итоге для поднятия внешних сервисов мы используем Docker и пишем docker-compose.yml файл который выглядит как-то так: version: ‘3’ services:…
Read more

Получение обновленного kubeconfig в DigitalOcean

Доступ к Kubernetes в DigitalOcean лимитирован одной неделей, получается каждую неделю нужно получать новый пароль доступа к кластеру. Скачать обновленный kubeconfig можно через консоль в DigitalOcean либо можно воспользоваться командой ниже: curl -X GET «https://api.digitalocean.com/v2/kubernetes/clusters/<cluster-id>/kubeconfig» \ -H «Content-Type: application/json» \…
Read more

Поднятие прокси-сервера Squid при помощи Docker за 3 минуты

Squid — кеширующий прокси сервер для протоколов HTTP, HTTPS, FTP. Достаточно гибкая и удобная штука. Сегодня попробуем поднять прокси сервер в Docker контейнере и настроить его работу. Шаг 1. Создадим минимальную конфигурацию для нашего прокси сервера: squid.conf acl manager proto…
Read more

Скрипт парсинга курсов Bestchange

Скрипт проводит выборку курсов по заданным входным параметрам и может выдавать готовую json структуру по заданным направлениям. Выборка курсов производится через публичный API и содержит в себе всю необходимую информацию по лучшим курсам и параметрам обменных пунктов: Минимальная цена заявки…
Read more

Golang — использование envconfig для environment variables

Для работы с переменными окружения в Golang без использования библиотеки envconfig просто не обойтись: //AppConfig struct to manage configuration env vars type AppConfig struct { DBHost string `envconfig:»DB_HOST» required:»true»` DBPort int `envconfig:»DB_PORT» required:»true»` DBUser string `envconfig:»DB_USER» required:»true»` DBName string `envconfig:»DB_NAME»…
Read more

Golang — Mock для sqlx драйвера базы данных

Для написания юнит тестов часто требуется «мокать» часть зависимостей, одна из самых распространенных — соединение и операции с базой данных. Если нет возможности использовать внедрение зависимости и использовать интерфейсы типа ExecerContext на входе функции то в дело вступают не совсем чистые…
Read more

Полезные curl для Digital Ocean API

При автоматизации инфраструктуры под Terraform понадобилось найти id SSH ключей и типы дроплетов чтобы их было возможно использовать в конфигурации. Делюсь примерами curl запросов к Digital Ocean API (статья будет дополняться со временем). Вывод SSH id keys, привязанных к аккаунту:…
Read more

GitHub API — пара полезных curl примеров

Список команд в организации: curl GET —url ‘https://api.github.com/orgs/<organization-name>/teams?access_token=<TOKEN>’ Работа с GitHub Status API, установка badge для Pull Request: curl -d ‘{«state»: «success»,»target_url»: «https://example.com/build/status»,»description»: «The build succeeded!»,»context»: «continuous-integration/jenkins»}’ -H «Content-Type: application/json» -X POST «https://api.github.com/repos/<organization-name>/<project-name>/statuses/<sha-of-the-commit>?access_token=<github-token>” Данный сниппет может быть использован для установки…
Read more