Latest Posts

Полезные 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

Установка Kubernetes nginx controller на bare metal

Подробная инструкция как установить nginx ingress controller на чистый bare metal кластер: https://kubernetes.github.io/ingress-nginx/deploy/#bare-metal Или по шагам: Устанавливаем ingress-nginx service с type NodePort: kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml Проверим, что установка завершена успешно: kubectl get services -n ingress-nginx Видим: ingress-nginx ingress-nginx NodePort…
Read more

Получение данных Jira тикета по Atlassian API

Для получения данных по Jira тикету достаточно воспользоваться Atlassian REST API  curl -D- \    -X GET \    -H «Authorization: Basic <base64 encoded stuff>“ \    -H «Content-Type: application/json» \    «https://yourcompany.atlassian.net/rest/api/2/issue/TICKET-NUMBER» В качестве токена авторизации можно (но не…
Read more

Шаблон Golang table testing

Допустим у нас имеется некая функция: NormalizeEndpoint(endpointBefore string) string Подготовим тесты на эту функцию: func TestNormalizeEndpoints(t *testing.T) { type runnerTest struct { name string endpointBefore string endpointAfter string } var tests = []runnerTest{ {«Test 1», «https://case1.com», «case1»}, {«Test 2», «https://case2.com»,…
Read more

Golang — Squirrel SQL Query Generator

Пример удобной библиотеки для генерации SQL кода в Golang. Нет необходимости писать большие и сложные sprintf и делать экранирование вручную. Просто воспользуемся удобными синтаксисом библиотеки squirrel. Для начала: import «github.com/Masterminds/squirrel» Теперь допустим нам нужно добавить новую запись в нашу postgres…
Read more

Скрипт корректировки курсов Bestchange

Разработан и выведен в отдельно существующий компонент специальный скрипт для автокорректировки курсов для агрегатора bestchange. Данный продукт просто необходим для обменных пунктов, которые работают через bestchange.ru и которые хотят быть постоянно в топе по определенным направлениям. Какие параметры можно регулировать?…
Read more

Получить реальный IP адрес клиента с Cloudflare в PHP

При использовании сервиса Cloudflare стоит вопрос получения реального IP адреса клиента. Специально для этого Cloudflare отдает заголовок HTTP_CF_CONNECTING_IP. Нам достаточно его забрать в любом виде (через библиотеку желательно, а не через суперглобальную переменную т.к суперглобальные переменные в PHP это всегда зло):…
Read more

PHP скрипт загрузки папки с файлами на S3 bucket

Очень простой и эффективный метод отправить все необходимые файлы с выбранной папки на ваш S3. Устанавливаем aws-sdk-php: composer require «aws/aws-sdk-php» Готовим скрипт: #!/usr/bin/env php <?php use Aws\S3\S3Client; require __DIR__.’/vendor/autoload.php’; if ($_SERVER[‘argc’]<2){ print ‘Expected dir as parameter: run.php /dir/to/sync’.PHP_EOL; exit(1); }…
Read more