Флаги
Глобальные (почти все команды)
| Флаг | Короткая | Аргумент | Default | Описание |
|---|---|---|---|---|
--project | -p | owner/alias | авто-детект или default-project | Целевой проект |
--api-base | URL | https://api.gitflic.ru | API endpoint | |
--token | строка | — | Токен (per-call override) | |
--format | -f | json|pretty | auto | Формат вывода |
--page | число | 1 | Номер страницы | |
--size | число | endpoint-specific | Размер страницы | |
--all | флаг | false | Авто-пагинация до конца | |
--stream | флаг | false | NDJSON output | |
--tui | флаг | false | Интерактивный браузер (где применимо) | |
--json | флаг | false | Эквивалент --format json | |
--pretty | флаг | false | Эквивалент --format pretty | |
--help | -h | флаг | false | Справка |
--no-remove-branch | флаг | false | Для mr merge: не удалять source-ветку | |
--no-color | флаг | false | Отключить цвета (per-call override NO_COLOR) |
Scope-флаги (team/company/instance)
Многие сущности глобальны и работают в нескольких контекстах. Контекст задаётся парой флагов: --scope + alias соответствующего владельца.
| Флаг | Аргумент | Описание |
|---|---|---|
--scope | project|company|team|instance | Контекст команды (default обычно project) |
--team | <teamAlias> | Alias команды (для --scope team) |
--company | <companyAlias> | Alias компании (для --scope company) |
--project | <owner>/<alias> | Проект (для --scope project) |
# registry в контексте компании
gitflic registry package list --scope company --company acme --format json
# branch-protection команды
gitflic branch protection list --scope team --team backend --format json
# tag-protection компании
gitflic tag protection list --scope company --company acmeСпецифичные для модулей
mr
--title <text>— заголовок MR--description <text>— описание--to <branch>— target ветка--from <branch>— source ветка (default = текущая)--squash— squash при merge--squash-message <text>— сообщение коммита при squash merge--message <text>— merge commit message--new-path <p>--new-line <n>— для inline-комментариев (new side)--old-path <p>--old-line <n>— для inline-комментариев (old side)
branch
--from <branch>— базовая ветка при создании--base <branch>— база при compare--file-path <p>--base-hash <h>--compare-hash <h>— дляcompare-file/commits- Branch-protection (
branch protection …, по умолчанию scopeproject; для company/team —--scope company|team+--company/--team <alias>):--branch-template <pattern>— паттерн ветки--allowed-to-push <NO_ONE\|DEVELOPER\|ADMINS>--allowed-to-merge <NO_ONE\|DEVELOPER\|ADMINS>--allow-force-push--code-owner-approval--auto-merge
tag
--branch <b>/--commit <hash>— источник приtag create(branch по умолчаниюmaster)--message <text>— сообщение тега- Tag-protection (
tag protection …, scope team/company —--scope team|company+--team/--company <alias>):--tag-template <pattern>— паттерн тега--allow-to-create <NO_ONE\|DEVELOPER\|ADMINS>
gitflic tag protection create --scope team --team backend \
--tag-template 'v*' --allow-to-create ADMINSrelease
--title <text>— заголовок релиза--description <text>— release notes--tag <vN[.N[.N]]>— связанный тег--pre-release— пометить как pre-release (вeditпринимаетtrue|false)--attach-archive— приложить архив при создании--archive-format <tar\|zip\|tar.gz\|...>--name <name>— имя файла дляrelease upload(default = basename)--out <path>— путь сохранения дляrelease download(default =<fileUuid>)
# загрузка/скачивание файлов релиза
gitflic release upload <releaseUuid> ./build.zip --name build.zip
gitflic release download <releaseUuid> <fileUuid> --out ./build.zipGitFlic проверяет тип загружаемого файла по allow-list: архивы (
.zipи т.п.) проходят, а.txt/.pngмогут вернуть HTTP 415 — это ограничение сервера, не CLI.
issue
--title <text>--description <text>--status <OPEN\|IN_PROGRESS\|CLOSED\|COMPLETED>--assign-to <userUuid>--label <labelUuid>--name <name>— имя файла дляissue attach(default = basename)
# загрузить файл в проект и привязать его к issue одной командой
gitflic issue attach 42 ./report.pdf --name report.pdfregistry
Registry — глобальный модуль; контекст задаётся через --scope + --project/--company.
--scope <project\|company\|instance>— контекст (defaultproject)--fmt <format>— формат пакета дляpackage upload/package download(generic,maven,npm,pypi,nuget,composer,opm,cran,rubygem,cargo,conda). Это НЕ--format—--formatзарезервирован под выводjson|pretty.--type <t>— фильтр по типу приpackage list--version <v>— версия приpackage files--content-type <mime>— Content-Type при загрузке--npm-scope <scope>— npm-scope при загрузке npm-пакета--out <path>— путь сохранения дляpackage download--tag <tagName>— git-тег дляpackage composer-tag--node-path <path>— путь узла дляregistry repo upload/download
gitflic registry package list --scope company --company acme --type maven --format json
gitflic registry package upload --fmt maven --project tikhon/wave ./app-1.0.jar com.acme app 1.0
gitflic registry package download --fmt npm --project tikhon/wave my-pkg my-pkg-1.0.tgz --out ./out.tgz
registry repo …(registry-repositories) — функционал Enterprise/Atlas, на публичном SaaS возвращает 404 (реализован по спеке, но code-only).
team / company
--alias <a>--title <t>--description <d>— приcreate--private— приватная команда/компания--owner <alias>--owner-type <USER\|COMPANY>— владелец приteam create(default = вы)--owner <newOwner>--team <alias>— дляteam transfer--role <GUEST\|REPORTER\|DEVELOPER\|ADMIN>— дляmember invite/role--q <query>— поиск вlist/member list- import-флаги (
team import set/company import run):--branch,--environment,--tag,--mr-approval,--pipeline-lifetime
gitflic team create --alias backend --title "Backend" --private \
--owner acme --owner-type COMPANY
gitflic team transfer --team backend --owner newleadУ
teamиcompanyнет REST-эндпоинтовedit/delete(PUT/DELETE → 405) — правка и удаление только через web-интерфейс; для смены владельца используйтеteam transfer.
project
--title <t>--alias <a>--description <d>--language <l>— приcreate/edit--private/--public— видимость--default-branch <b>— ветка по умолчанию приedit--topics <a,b,c>— теги проекта приchange-setting--owner-alias <u>--owner-alias-type <USER\|TEAM\|COMPANY>— владелец приcreate--new-alias <a>--owner-alias <u>— приfork--url <git-url>--new-alias <a>— приimport--out <file>— путь дляproject archive
gitflic project create --title "Wave" --alias wave --private \
--owner-alias acme --owner-alias-type COMPANY
project archive(/file/getArchive) на публичномapi.gitflic.ruотдаёт 404 (скачивание архива отключено / только в web) — используйтеgit clone.
auth
--token <value>— токен для login--stdin— читать токен из stdin--as <name>— named-аккаунт--api-base <url>— для login-валидации--reveal— показать полное значение sensitive ключа--all— для logout: удалить всё
alias
--reveal— для get: показать полное значение
Boolean флаги
--key без значения = true. --no-key = false. Например:
gitflic mr merge 42 --squash # flags.squash = true
gitflic mr merge 42 --no-remove-branch # flags.removeBranch = falseПарсинг
parseArgs в lib/http.mjs:
--key value— два токена--key=value— один токен (тоже работает)--key(последний в строке) — booleantrue--no-key— booleanfalse-abc— grouped short flags (-abc=-a -b -c)- Всё остальное — позиционный аргумент в
flags._.
Пример
gitflic mr create --project FerdBur/wave \
--title "Fix login" \
--description "$(git log -1 --pretty=%B)" \
--to main \
--squash \
--no-remove-branch \
--format json