All checks were successful
Build and push image / build (push) Successful in 1m24s
- Fix CI registry login (unauthorized): use dedicated REGISTRY_TOKEN secret instead of GITHUB_TOKEN, fail fast with a clear error if it's unset. - Pause ticket work-timer while a ticket is closed (won't auto-start on open or manual resume; stops on close via status change, quick action, API, or merge). - Reject empty/blank login submissions client- and server-side instead of passing them straight to the auth provider. - Closing a ticket now sends only the "ticket closed" notification instead of also sending a duplicate "status changed" one. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
67 lines
3.4 KiB
Markdown
67 lines
3.4 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project are documented in this file. Format loosely
|
|
follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
|
## [1.0.2] - 2026-07-22
|
|
|
|
- Fixed `.gitea/workflows/build.yml`: registry login was failing with
|
|
`unauthorized` because Gitea's auto-injected `secrets.GITHUB_TOKEN` isn't
|
|
granted push access to its own container registry on this instance. Now
|
|
uses a dedicated `REGISTRY_TOKEN` secret (a Gitea access token with
|
|
`write:package`/`read:package` scope), and the workflow fails fast with a
|
|
clear `::error::` message before attempting login if that secret isn't
|
|
configured, instead of surfacing Docker's opaque `unauthorized` error.
|
|
- Fixed: opening or manually resuming a **closed** ticket no longer starts its
|
|
work timer, and closing a ticket (via the status dropdown, a reply "quick
|
|
action" transition, the REST API, or merge) now checkpoints and stops any
|
|
running timer. Time tracking only ever accrues while a ticket is open.
|
|
- Fixed: the login form accepted an empty username/password, submitting them
|
|
straight to the auth provider. The form fields are now `required` (blocks
|
|
submission client-side) and `Login::submit()` also rejects blank/
|
|
whitespace-only credentials server-side before attempting authentication,
|
|
showing "Podaj nazwę użytkownika i hasło." instead.
|
|
- Fixed: closing a ticket sent two separate notification e-mails
|
|
(`status_changed` and `ticket_closed`) for the same event. Closing now only
|
|
fires `ticket_closed`; every other status transition still fires
|
|
`status_changed` as before.
|
|
|
|
## [1.0.1] - 2026-07-22
|
|
|
|
Documentation and deployment/CI overhaul — no application behavior changes.
|
|
|
|
- Added project docs: `TESTING.md`, `CONTRIBUTING.md`, `ARCHITECTURE.md`,
|
|
`SECURITY.md`, `CLAUDE.md`; removed the unmaintained stock Laravel
|
|
`src/README.md`.
|
|
- Added `.gitea/workflows/build.yml`: Gitea Actions now builds and pushes the
|
|
`servicedesk` image to the Gitea container registry whenever `Dockerfile`
|
|
changes on `main`.
|
|
- `compose.yaml` now pulls `image: gitea.kzbikowski.pl/kzbkowski/servicedesk:${IMAGE_TAG:-latest}`
|
|
instead of building locally; `mariadb` pinned to `mariadb:12.3`; added a
|
|
`mariadb` healthcheck and `depends_on: condition: service_healthy` for
|
|
`servicedesk`.
|
|
- Added tracked templates `compose.yaml.example` and `.env.example` (root) for
|
|
the previously-untracked `compose.yaml`/`.env`.
|
|
- Documented the new pull-based deploy flow and one-time registry login in
|
|
`install.md`.
|
|
|
|
## [1.0.0] - 2026-07-21
|
|
|
|
Initial release.
|
|
|
|
- Ticketing core: categories/subcategories with per-subcategory custom fields,
|
|
statuses, priorities, teams, attachments, message threads (public replies +
|
|
internal notes), history log, merge/delete.
|
|
- SLA rules per priority with a scheduled breach check (`tickets:check-sla-breaches`,
|
|
every 15 minutes).
|
|
- Response templates, quick actions, and per-event HTML email templates/
|
|
notification toggles.
|
|
- Operator statistics dashboard (`/operator/stats`) with KPI tiles and breakdowns.
|
|
- Branding/config panel: company identity, LDAP connection + user sync, SMTP,
|
|
attachment limits, session lifetime, timezone.
|
|
- LDAP authentication (LdapRecord) with local-account fallback.
|
|
- REST API (`/api/v1/...`) via Sanctum, ability-scoped (`tickets:read`,
|
|
`tickets:write`, `dictionaries:read`, `users:read`), with Swagger docs at
|
|
`/admin/api-docs`.
|
|
- Installable PWA manifest/icons for the client-facing area.
|