Buff Development
Коннектор

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

Мастер и полный справочник команд: то же самое, что на локальной странице, но скриптуемо.

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

Мастер первой настройки

connector setup --config /etc/connector/connector.yaml --cli

Те же шаги, что и на странице, по порядку:

  1. Адрес relay (предзаполнен — Enter) и каталог состояния.
  2. Провайдер — тип, адрес, токен. Агент сразу проверит доступ и выведет список репозиториев, которые видит.
  3. Выбор репозиториев — номера через запятую (1,3) или all.
  4. Ещё один провайдер или завершить (пустой ввод).
  5. Код привязки из приложения Buff — можно пропустить и привязать позже.
Провайдер (…): gitea
Base URL: https://gitea.corp.local
Токен доступа: ********
   1) team/backend (private)
   2) team/frontend
   3) team/docs
Выберите репозитории (напр. 1,3 или all): 1,2
  добавлено: gitea (2 репо)

Токен сохраняется в файл с правами 600 в каталоге состояния и к нам не уходит.

Привязка и запуск

connector pair --config /etc/connector/connector.yaml --code bufc_… [--label «Сервер сборки»]
connector run  --config /etc/connector/connector.yaml

--label — как агент будет называться в приложении; по умолчанию берётся имя хоста. Добавьте --admin 127.0.0.1:8765, чтобы вместе с агентом работала локальная страница.

Каталог

connector catalog --config /etc/connector/connector.yaml            # что можно поставить
connector catalog show github --config /etc/connector/connector.yaml # границы доступа версии
connector install github --config /etc/connector/connector.yaml      # последняя совместимая
connector install github@1.0.0 --config /etc/connector/connector.yaml # конкретная версия

catalog show печатает то же, что видно в карточке на странице: по каким полям выводятся разрешённые адреса, какие учётные данные нужны, принимает ли интеграция вебхуки и какие у неё инструменты — с пометкой, какие только читают. Если каталог недоступен, команда честно скажет об этом и покажет последний прочитанный.

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

Подключения

connector instance list --config                 # что настроено
connector instance show <id|слаг> --config       # одно подключение (секреты скрыты)
connector instance set  <id|слаг> --config     # создать или изменить
connector instance secret <id|слаг> --secret api --config   # секрет со стандартного ввода
connector instance enable|disable <id|слаг> --config
connector instance rm <id|слаг> --config [--dry-run]
connector instance check <id|слаг>                 # проверка связи у работающего агента
connector instance log   <id|слаг>                 # журнал подключения

Создать подключение целиком:

connector instance set --config /etc/connector/connector.yaml \
  --plugin github --version 1.0.0 \
  --alias "GitHub клиента" --dev-project backend \
  --set base_url=https://api.github.com \
  --set repos=acme/api,acme/web \
  --set mention_alias=buff

# секрет — отдельной командой, со стандартного ввода
connector instance secret github --secret api \
  --config /etc/connector/connector.yaml < /run/secrets/github-token

Что стоит знать про эти команды:

  • --set key=value проверяется по схеме интеграции. Списки пишутся через запятую (repos=a/b,c/d), числа и флаги приводятся к типу. Ключ, которого в схеме нет, или значение, которое ей не подходит, — ошибка, а не молча сохранённая строка.

  • --dry-run показывает, что изменится, и ничего не пишет.

  • Секрет вводится с потока ввода, не аргументом: аргумент попал бы в историю оболочки и в список процессов. Для трекера, который входит парой, добавьте --account:

    connector instance secret jira --secret api --account bot@example.com \
      --config /etc/connector/connector.yaml < /run/secrets/jira-token

    Вид доступа (bearer, basic или собственный заголовок трекера) берётся из манифеста интеграции — команда печатает, какой применён.

  • check и log ходят к работающему агенту на его локальный адрес (--addr, по умолчанию 127.0.0.1:8765), потому что это состояние живого процесса, а не файла.

  • Ссылка (<id|слаг>) — либо GUID подключения, либо его слаг (короткое имя, которое коннектор выводит из названия). Слаг же попадает в имена инструментов, которые видит модель.

Автоматизация

Для Ansible и CI обычно проще писать конфиг напрямую и класть секреты в файлы, а командами пользоваться для установки интеграций и проверок:

connector install github --config /etc/connector/connector.yaml
connector instance check github --addr 127.0.0.1:8765

Агент следит за файлом конфига: правки применяются на лету, перезапуск не нужен.

On this page