Skip to content

Команды

Полный справочник по всем модулям CLI. Покрытие GitFlic REST API — ~100%. Каждый модуль — отдельная страница с примерами и флагами.

Содержание

  • auth — login, logout, status, switch, multi-account, per-project bindings.
  • mr — merge requests (list, view, diff, create, approve, merge, close, cancel, comments, discussions, settings).
  • branch — ветки: list, get, create, delete + protection rules.
  • tag — теги: list, get, create, delete.
  • release — релизы (CRUD) + upload ассетов.
  • issue — задачи: list, view, create, edit, close, reopen, comment + relations + attachment upload.
  • commit — коммиты: list, get, show (diff).
  • blob — файлы и blob'ы репозитория (get, raw).
  • project — CRUD проектов, members, teams, archive, files, followers, stars, fork, mirror, import, deploy tokens.
  • user — me, search, by-id.
  • settings — настройки аккаунта: ssh, oauth, access-token, transport-token, change-email, username, password.
  • team — команды: list, get, create, edit, delete, members.
  • company — компании: list, get.
  • environment — environments: list, get, create, edit, delete.
  • webhook — вебхуки проекта: list, get, create, edit, delete.
  • registry — реестр пакетов (scopes: project/company/instance): registry package (list/get/versions/files/upload/download/delete) + registry repo (registry-repository, Enterprise/Atlas-only).
  • cicd — пайплайны и джобы.
  • runner — CI/CD runners / агенты.
  • admin — admin-эндпоинты (только для инстанс-админов).
  • saml — SAML SSO (только для инстанс-админов).
  • cache — локальный кеш project UUID.
  • completion — shell completion (bash/zsh/fish).
  • alias — persistent user config (default-project, api-base и т.д.).

Глобальные флаги

Почти все команды принимают:

ФлагЧто делаетDefault
--project <owner>/<alias>Целевой проектавто-детект из git remote get-url origin или из default-project config
--api-base <url>API endpointhttps://api.gitflic.ru или GITFLIC_API_BASE
--token <token>Токен (per-call override)из env / keychain / active-account
--format json|prettyФормат выводаpretty для list, json для single
--page <n>Номер страницы (1-based)1
--size <n>Размер страницы20 (зависит от эндпоинта)
--allАвто-пагинация до концаfalse
--streamNDJSON в stdout (для пайплайнов)false
-h, --helpСправка по команде

Глобальные ENV переменные

См. env.md — полный список.

Самые важные:

  • GITFLIC_TOKEN — override токена (полезно в CI).
  • GITFLIC_API_BASE — для self-hosted.
  • GITFLIC_HTTP_RETRIES — макс. ретраев на 429/502/503/504 (default 3).
  • GITFLIC_NO_RETRY=1 — отключить ретраи.
  • GITFLIC_NO_CACHE=1 — отключить кеш project UUID.
  • GITFLIC_NO_CONFIG=1 — отключить чтение ~/.config/gitflic-cli/config.json.
  • GITFLIC_NO_SECRET_STORE=1 — отключить хранение токенов в keychain (только env var).
  • NO_COLOR=1 / FORCE_COLOR=1 — управление цветом (по no-color.org).

Выход и пайплайны

Stable JSON

Каждая команда с --format json (или при одиночном запросе) выдаёт стабильный JSON. Exit code = 0 при успехе, 1 при любой HTTP-ошибке.

bash
gitflic mr list --project tikhon/wave --format json | jq '._embedded.mergeRequestModelList | length'

NDJSON streaming

--stream (или GITFLIC_STREAM=1) — одна JSON-запись на строку, не дожидаясь конца пагинации:

bash
gitflic mr list --project tikhon/wave --all --stream | jq -c 'select(.status.id == "OPENED") | {id: .localId, title: .title}'

Идеально для долгих запросов в большие репо — видишь результаты сразу, а не через минуту после полной пагинации.

TUI mode

gitflic mr list --tui — интерактивный браузер в TTY. Управление: j/k (next/prev), g/G (top/bottom), Enter (print localId в stdout, удобно для пайпа), q/Esc (выход).

bash
gitflic mr list --tui --project FerdBur/wave

Подробнее — mr.md.

Ошибки и коды возврата

Exit codeЗначение
0Успех
1HTTP-ошибка (4xx/5xx), network error, или die() от любой проверки
2Usage error (не хватает аргументов, плохой формат)

В stderr — человекочитаемое объяснение с URL и HTTP status. В stdout (если --format json) — JSON с полями { message, error, ... }.

Конфигурация

CLI хранит persistent state в:

  • macOS~/Library/Keychains/login.keychain-db (зашифровано)
  • Linux → GNOME Keyring / KWallet (зашифровано)
  • иначе~/.config/gitflic-cli/config.json (chmod 0600)

Управляется через alias (config-ключи) и auth (токены + привязки).

Отладка

bash
GITFLIC_HTTP_RETRIES=0 GITFLIC_NO_RETRY=1 gitflic mr list --project x/y
# Без ретраев — увидишь оригинальную ошибку сразу.

gitflic mr list --project x/y --format json | jq .
# Сырой JSON для inspection.

gitflic --help
# Полный help по top-level командам.

MIT License