Changelog
Все значимые изменения в gitflic-cli. Формат — приближённый к Keep a Changelog.
[0.3.0] — 2026-06-23
100% покрытие публичного REST API GitFlic — все 20 разделов (≈199 эндпоинтов со scope-вариантами). Бо́льшая часть протестирована вживую против api.gitflic.ru (62/62 проверки green). Подробности — в api-coverage.md.
Added
- HTTP-хелперы (
lib/http.mjs):httpText(raw-контент,Accept: */*),httpDownload(бинарное скачивание в файл),httpUploadFile(raw-PUT для реестра пакетов).Accept/parse/contentTypeпрокинуты вhttpWithRetry. - registry — полностью переписан:
registry package(list/get/versions/version/files/delete + upload/download для generic/maven/npm/pypi/nuget/composer/opm/cran/rubygem/cargo/conda в scope project/company/instance) иregistry repo(registry-repository). Per-format upload использует флаг--fmt(не--format). - runner — переписан под реальные пути
/project|company|admin/runners: scope-параметр + edit/shutdown/delete/jobs/registration-info. - saml — переписан под
/admin/saml. - cicd — artifacts, job-операции, restart/cancel/delete, variables, pipeline-lifetime (team/company).
- branch / tag / environment / mr — team/company-scoped операции (protection rules, MR approval rules/configuration/squash/method/template, apply-settings-to-projects) с единым флагом
--scope team|company+--team/--company. - release — upload/download/delete файлов релиза (multipart, поле
files). - issue — relations CRUD, files (list/link/unlink),
issue attach(upload+link). - commit — for-file, tag-diff, cherry-pick.
- blob — download/recursive/file-size (raw
Accept: */*). - project — search/my/shared, create-fork, mirror push/manual-update, archive, attachments, change-setting, run-script, allowed-owners, project-size.
- admin — user CRUD + ban/unban + ssh-key + push-stats + 18 settings-мутаторов + ldap import (admin-only).
- team/company — my/shared/create/members/import.
Changed
- Диспетчер (
lib/gitflic.mjs): команды с--scope team|companyбольше не требуют--project(раньше падали «could not detect project»). - Реестр: исправлены неверные пути (
/registry/...база,version-list/package-file, dotted maven groupId). - Убраны несуществующие в REST
team edit/deleteиcompany edit/delete(405 — только web UI; для смены владельца —team transfer). - Тесты: 166 unit-тестов (добавлены тесты
htmlUnescape).
Fixed
- BUG-001:
mr diffтеперь декодирует HTML-entities ("/</>/&) черезhtmlUnescape()— диффы читаемы; покрыто тестами. - commit list исправлен на
/commits; cherry-pick — на/branch/cherry-pick. - release-list —
/releaseвместо/release/list(404).
[0.2.0] — 2026-06-23
Не выпускалось отдельным тегом — вошло в 0.3.0.
Changed
- CI/CD выпилен. Удалён
gitflic-ci.yamlи страницаdocs/ci-cd.md: на публичномgitflic.ruнет shared runners, а self-hostedrunner.jarтребует платный VPS. Сборка/релиз — локально (npm run build,npm run release), дока — статикой на Timeweb.
Fixed
cicd pipeline listв pretty-режиме показывал(no pipelines)при наличии записей — реальный HAL-ключrestPipelineModelList(а неpipelineList). Поправлено вlib/cmd/cicd.mjs(со старыми ключами как fallback).
[0.1.0] — 2026-06-22
Added
- OS-keychain token storage (
lib/secret.mjs) — macOS Keychain / Linux libsecret / chmod 0600 file fallback. authмодуль (login/logout/status/list/switch/bind/unbind/bindings) с валидацией токена ДО сохранения.- Multi-account через
--as <name>+auth switch. - Per-project account bindings (
auth bind <project> <account>). - TUI mode для
mr list(--tui). - NDJSON streaming для list endpoints (
--stream/GITFLIC_STREAM=1). --allauto-pagination для 12 list endpoints.- Shell completion для bash/zsh/fish (
gitflic completion <shell>). - Format flags
--color/--no-color+ envNO_COLOR/FORCE_COLOR. - File-based project-UUID cache +
gitflic cacheкоманда. - HTTP retry on 429/502/503/504 с exponential backoff + jitter.
- MCP-сервер — 77 типизированных тулов для AI-агентов.
- Multipart upload для release assets + issue attachments.
Fixed
lib/tui.mjsсломан в production —import { process } from "node:process"падает SyntaxError на нативном Node ESM. vitest/esbuild молча маскировал баг. Поправлено наimport process from "node:process".
[0.0.x] — initial development
- MVP: ~150 эндпоинтов GitFlic REST в CLI.
- Bash + PowerShell установщики.
- Zero runtime dependencies (только Node 18+ stdlib).
- Конфиг в
~/.config/gitflic-cli/config.json.