Implemented the ability to revoke approved firewall clients and reject pending requests through new API endpoints. Updated the StatusBadge component to include additional status variants for 'approved', 'revoked', 'pending', and 'block'. Enhanced the FirewallPage UI to support client revocation and rejection actions, integrating confirmation dialogs for user interactions. Updated tests to ensure proper functionality of the new revoke feature.
Gitea Actions
Workflow: workflows/ci.yaml.
| Job | PR | push в main |
|---|---|---|
| changes, openapi, web, go, bird2 | quality gates | quality gates |
| commitlint | да | — |
| release | — | semantic-release + docker push (один run) |
Подробнее: docs/releasing.md.
CI (quality gates)
Job changes вычисляет флаги по путям в diff. Полный прогон (все узлы openapi / web / go / bird2 в графе): .gitea/workflows/*, scripts/*, .golangci.yml, .pre-commit-config.yaml, корневой package.json / .releaserc.json. Отдельно: migrations/*, docs/openapi.yaml → go / openapi и т.д. (см. ci.yaml).
На pull request — commitlint (Conventional Commits).
Runner: ubuntu-latest, bird2 из apt, Docker для job release.
Release (job в ci.yaml)
После успешных quality gates на push в main job release:
npx semantic-release— тегvX.Y.Zна текущий commit (без дополнительного commit в main).- Gitea Release +
CHANGELOG.mdкак attachment (не в git). docker buildx bake default --pushсVERSION=X.Y.Z— в том же job.
Если releasable-коммитов нет — semantic-release no-op, образы не публикуются.
Секреты
ACTIONS_PAT: push tags, releases, Container Registry. Fallback: gitea.token.
Теги образов
git.shts.su/<owner>/<имя>:latest
git.shts.su/<owner>/<имя>:v1.2.3
git.shts.su/<owner>/<имя>:1.2.3
git.shts.su/<owner>/<имя>:<short-sha>
git.shts.su/<owner>/<имя>:sha-<full-sha>
Имена образов: evobgp-api, evobgp-all, evobgp-scheduler, evobgp-ingest, evobgp-render, evobgp-deploy, evobgp-node, evobgp-web, evobgp-web-all, evobgp-agent, evobgp-bird2.
Удалённый спикер (compose deploy/compose/docker-compose.remote-speaker.yaml): evobgp-bird2, evobgp-agent, evobgp-node (fallback profile); Traefik — внешний traefik:latest. CI: scripts/validate-remote-speaker-compose.sh.
Пример:
docker pull git.shts.su/myuser/evobgp-api:1.2.3