Commit Graph
343 Commits
Author SHA1 Message Date
Adam Daley e3954b9265 Run browser tests inside test Docker image 2026-06-04 07:36:39 +01:00
Adam Daley 84d8b99c04 Add browser test setup/teardown and CI updates 2026-06-04 06:49:00 +01:00
Adam Daley 38ffb6ffc8 Migrate E2E from Cypress to Pest Browser 2026-06-04 06:26:40 +01:00
renovate[bot] 1827847d15 Update actions/checkout digest to df4cb1c 2026-06-03 13:57:12 +00:00
Adam Daley 4315d610b2 Move E2E tests into modules and update test config (#3707)
* Move E2E tests into modules and update test config

* Update php-build-test.yml

* Remove premature curl_close calls

* E2E tests: clean assertions, cart client, currency

* Refactor E2E tests imports & assertions

* Fix Antispam E2E - skip disposable email test when domain list unavailable
2026-06-03 11:18:29 +01:00
renovate[bot] d31f13b0fa Update github/codeql-action digest to 87557b9 (#3706)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-03 09:24:18 +01:00
Adam Daley dd3dcbfd52 Enhance type safety, authentication checks, and testing framework (#3701)
* Improve type safety, auth checks and PHPStan fixes (#3250)

* Improve type safety, auth checks and PHPStan fixes

* Remove @phpstan-ignore annotations

* Improve type safety, auth checks and PHPStan fixes

* Remove @phpstan-ignore annotations

* Remove redundant @phpstan-ignore comment

* Improve code robustness and reliability (#3248)

* Harden code against null/undefined values

* Update dependency lockfiles

* Sanitize ticket input and use IDs in email list

* Restructure tests and add test utilities

* Move E2E tests to `Library\E2E` namespace

* Update `php-build` action ref in workflows

* Switch tests to Pest and add test scaffolding

* Refactor E2E tests to Pest-style tests

m

Skip E2E tests when env not configured

* Refactor Unit tests and update test config

Add test datasets and refine test helpers

* Add DEBUG guard, fix API JSON decode, update tests

* Refactor tests: add types and Mockery expectations

* Adjust tests, phpstan config, and composer script

* Instantiate test APIs locally, remove beforeEach

* Refactor runtime checks, types & logging

* Apply PHP Code Styling Changes

m

* Add PHPStan ignores, test renames & small fixes

* Enable Pest tests in CI workflow

* Remove legacy tests; add new unit tests/config

* Avoid undefined index in fingerprint comparison

* Ignore properties absent in both fingerprints

* Remove public_ticket_create API method

* Add Fingerprint unit tests

* Remove em dash from fingerprint test name

* Switch to Pest; assorted bug fixes & refactors

* Prefer getDi() and guard DEBUG define

* Refactor tests: DBAL, Antispam rename, helpers

* Refactor email tests to use Doctrine entities

* Update tests, use DBAL mocks & improve Formbuilder admin

* Validate plan_id and update unit tests

* Replace error_log with DI logger and update tests

* Expect db->store in Invoice Service test

* Use DI logger instead of error_log; fix tests

* Fix typo in Hook Service test

* Fix Staff test spelling fixture

* Complete Pest test migration

* Fix Product test spelling fixtures

* Fix Product test spelling fixtures

* Run live tests with Pest and load helpers

* Migrate tests to ApiClient; remove legacy APIHelper

* Fix Email test spelling

* Remove unused PHPUnit bridge

* Organize Cypress end-to-end tests

* Document Pest test directory root

* Remove noisy Pest comments
2026-06-02 07:43:01 +01:00
renovate[bot] 5aa1834445 Update actions/setup-node action to v6 (#3680)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-30 16:16:36 +01:00
Adam Daley 3ddca65976 Fix release notes workflow command (#3679) 2026-05-30 15:54:14 +01:00
e1f055378e Add Copilot release-notes workflow and guidelines (#3677)
* Add Copilot release-notes workflow and guidelines

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Pin Copilot CLI version in release workflow

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-05-30 15:27:54 +01:00
Adam Daley 8c67932831 Exclude provenance.json from packaged artefacts (#3627)
Exclude provenance.json from packaged artifacts
2026-05-28 15:30:22 +01:00
renovate[bot] 976cb73f0b Update docker/setup-compose-action action to v2.2.0 (#3620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-28 06:18:51 +01:00
renovate[bot] 1d11a9b2ab Update release-drafter/release-drafter digest to 693d20e 2026-05-26 01:39:12 +00:00
a7ef873368 Revamp admin UI and improve dashboard layout and functionality (#3596)
* Adjust admin alerts and installer warning

* Make dashboard cards full-height and align badges

* Split dashboard cards into partials and add AJAX

* Replace status badges with ribbon elements

* Revamp activity panel layout and responsiveness

* Adjust dashboard card spacing and styles

* Style dashboard links and adjust chart heights

* Back-to-top: update classes and styles

* Fix client admin UI labels and flags

* Improve API response parsing and errors

* Mark action columns no-sort, add table-hover

* Update table classes for hover and wrapping

* Refactor admin templates to card-header layout

* Update admin templates layout and semantics

* Tidy admin templates; remove tabs, update notice

* Standardize admin alert styles and messages

* Handle null/empty status in status_name macro

* Validate resolved renewal price before invoicing

* Keep IP actions inline in activity table

* Right-align activity pagination controls

* Align pagination and export buttons in admin lists

* Improve admin pagination & per-page defaults

* Extract record selector into partial

* Add tab deep-linking and URL hash persistence

* Refactor search controls & capitalize 'One Time'

* Refactor client search filters and toggle state

* Refactor activity filters UI and tomselect styling

* Redesign admin filters; capitalize 'On Hold'

* Revamp admin filter panels (Invoice & Support)

* Group search clause in Massmailer query

* Add filters and expanded search for pages/gateways

* Add filter panels, refine search logic, tests

* Add advanced search filters for activity modules

* Add structured filters, date/ip search & tests

* Add Email queue filters and admin tab

* Add collapsible filter panel to Staff settings

* Refactor badges to use shared macros

* Add massmailer statuses & boolean badges

* Add search icon and refine search input layout

* Update admin templates layout and markup

* Use modals for creating clients/groups

* Centralize tab header action buttons

* Centralize toolbar actions; add Order modal

* Bump Composer dependencies (lockfile)

* Capitalize 'One Time' payment label

* Return raw API body; use button for search

* Wrap search button in input-group-text

* Make search max width configurable

* Fix malformed aria-label Twig expression in layout_default.html.twig

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/c8db6ba9-bda4-413a-989f-e4777e06bd12

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

* Fix XSS risk in updateExternalIP: append IP via createTextNode instead of innerHTML concat

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/0c435e52-1784-4466-a8dc-c41e12443a6f

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

* Refactor New Client modal layout and styles

* Limit and style phone country code field

* Use `country_names` helper and `country_name` filter

* Use Symfony Intl for currencies & locales

* Use Symfony Intl for currencies; drop built-in country lists

* Refactor Currency module API, entity and service

* Remove system checkLimits usages from modules and tests

* Remove `currency.title` column and update APIs

* Add inputmode and maxlength to cspell dictionary

* Fix dropdown toggle accessibility: use button instead of anchor

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/b7f9474b-1988-4c08-aec0-f8991edfea71

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

* Improve multi-currency handling and installer

* Log currency code when changing cart currency

* Use removeCurrency in Admin API and update tests

* Use Intl currency symbols and fraction digits

* Use currency filters in templates

* Rename currency title to name and update schema

* Remove deprecated Service::getLanguages

* Capitalize system permission labels and fix messages

* Use Symfony Countries and remove phone codes list

* Validate country codes; use country select

* Set fb_locale cookie and fix admin locale display

* Validate locales and add default locale selector

* Use Locales::getNames; tweak language selector CSS

* Tweak header spacing and make nav links icon-only

* Localize client login texts

* Add phone country-code attrs and styles

* Center .modal-dialog in two themes

* Add phone_codes API to list calling codes

* Make form the modal-content wrapper

* Move create forms to Bootstrap modals

* Convert new-item tabs to modals in admin UI

* Revamp admin UI, embed snippets & modal

* Revamp admin settings UI and templates

* Revamp Formbuilder & Redirect admin UIs

* Add 'Segoe' and 'minmax' to cspell dictionary

* Rename warning() to warn() in test logger

* Refactor admin templates to card-based layout

* Expose initAvatars globally and scoped init

* Add 'view' permissions and enforce checks

* Refactor Servicehosting admin UI and scripts

* Add staff permission checks and module permissions

* Refactor admin templates layout and forms

* Add staff permission checks and module perms

* Add staff permission checks and module perms

* Refactor admin Twig templates and UI

* Refactor client admin UI to use summary/form cards

* Refactor admin invoice/subscription/transaction templates

* Refactor Order admin UI; fix country labels

* Refactor admin templates and add IP country filter

* Add 'view' permissions and checks to admin APIs

* Use detail/related partials in admin templates

* Refactor admin product templates to use partials

* Add endembed to cspell ignoreWords to fix spellcheck CI failure

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/e8973bef-7364-4b30-8dd8-13701ca15c5d

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

* Refactor admin templates to use common partials

* Validate order status, add permission checks

* Center form buttons and add horizontal padding

* Introduce createAdminApi and BBTestCaseContainer

* Refactor admin UI templates and forms

* Run intl compression after composer install

* Disable provenance in buildx outputs

* Revamp admin templates for UI and previews

* Refactor admin templates, pricing UI & styles

* Refactor admin invoice sidebar and SEO settings UI

* Use minor currency units, country list & API fixes

* Rename language selector class to locale-selector

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>
2026-05-24 23:10:28 +01:00
renovate[bot] 12aab5493a Update docker/setup-buildx-action digest to d7f5e7f 2026-05-24 04:47:26 +00:00
renovate[bot] a08858131c Update docker/build-push-action digest to f9f3042 2026-05-24 00:52:01 +00:00
renovate[bot] ee444c8957 Update actions/upload-artifact action to v7 (#3602)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-24 01:41:59 +01:00
474fa6b24c Introduce E2E tests using Cypress (#3563)
* Introduce E2E tests using Cypress

* Removed unrelated submodule

* Add Cypress Cloud project ID

* Save Cypress runs to Cloud

* Pass commit information to the container

* Added admin smoke tests

* Redo Cypress workflow

* Increase shm size

* Run Cypress using Electron

* Add dedicated Docker network alias

* Fixed hostname

* Validate sessions via browser navigation

* Disable session fingerprinting during Cypress tests

* Adjust smoke test paths

* Move Cypress usage to npx

* Remove redundant assertions

* Added basic tests for the client area

* Make spellcheck happy

* Fix test cases

* Added client support lifecycle tests

* Separate tests by directories

* Account for the max subject length

* Fix an actual FOSSBilling error

* Getting around the subject character limit

* Restored the long subject

* Timing issues with Bootstrap modals

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Only upload artifacts when recording is disabled

---------

Co-authored-by: Adam Daley <admdly@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-24 00:35:52 +03:00
renovate[bot] 754d52bb1d Update github/codeql-action digest to 7211b7c 2026-05-23 13:13:07 +00:00
renovate[bot] d2eb9fd653 Update docker/setup-buildx-action digest to d7f5e7f 2026-05-23 08:56:07 +00:00
renovate[bot] 4cf5f19205 Update docker/metadata-action digest to 80c7e94 2026-05-23 06:28:50 +00:00
renovate[bot] 12b84da7fc Update docker/login-action digest to 650006c 2026-05-23 02:33:44 +00:00
renovate[bot] 65ad46d1a1 Update docker/build-push-action digest to f9f3042 2026-05-22 00:40:48 +00:00
7c04d4dbf6 Enhance security and permissions for client operations (#3572)
* Always send client password reset email

* Sanitize email content and sandbox iframes

* Remove API key info methods

* Add `InvoiceOperation` enum and validate gateways

* Normalize `ext` and enforce permission in getConfig

* Require staff permissions and simplify sessions

* Fix imports, formatters, perms, tests

* Remove array return type from getEnv

* Add staff permission checks to admin APIs

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Remove strtolower normalization from getConfig to preserve original casing behavior

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/cfcdb64d-db87-4603-ab22-ac0e8a5c4720

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

* Remove unused $data parameter from Profile Admin destroy_sessions

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/a42719bb-cbae-4e3b-994c-b429a0757447

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

* Move extension permission check to Admin API

* Use gh CLI to cleanup untagged GHCR versions

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>
2026-05-17 00:00:32 +01:00
Adam Daley ca70d8c21a Harden create-release workflow against shell injection (#3569)
Harden create-release workflow input handling
2026-05-16 19:37:58 +01:00
Adam Daley f43e07cb64 Add CI job summaries and GHCR package cleanup workflow (#3567)
* Add GHCR package cleanup workflow

* Add job summaries to CI workflows

* Add create-release workflow; update release-docker

* Improve auto-cs-fix workflow: caching and summary

* Use GHCR build-cache image and mirror manifests

* Remove prepare-application-assets action

* Standardize workflow step names and cache image
2026-05-16 17:57:49 +01:00
Adam Daley 1d58543600 Extract live tests into reusable Docker Compose workflow (#3565)
* Extract live tests into reusable workflow

* Use Docker Compose for live tests

* Normalize CI job names
2026-05-16 15:46:33 +01:00
Adam Daley e7f5906296 Split CI into reusable workflows (#3564) 2026-05-16 14:49:15 +01:00
Adam DaleyandCopilot Autofix powered by AI b2be307766 Enhance session management and image output configurations (#3558)
* Add session regeneration with grace period

* Enable push and canonical name for image outputs

* Remove redundant Docker Hub login scope

* Clear runtime cache around patching

* Add `default_currency` global to Twig

* Make default currency nullable

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-16 08:19:12 +01:00
Adam Daley 7d85643c5e Add Docker login scope for push access (#3557) 2026-05-16 07:06:51 +01:00
Adam Daley 4118955eb7 Move GHCR login after Docker Hub in workflow (#3555) 2026-05-16 06:31:34 +01:00
renovate[bot] 611a9c808c Update github/codeql-action digest to 9e0d7b8 2026-05-16 01:33:39 +00:00
Adam Daley d9faa0ac15 Prefix meta image names with docker.io (#3553) 2026-05-15 02:00:05 +01:00
renovate[bot] 5144780269 Update docker/metadata-action action to v6 (#3551)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 01:19:20 +01:00
Adam Daley a25f542ba2 Use matrix.suffix for artifact names and disable provenance for Docker builds (#3548)
* Use matrix.suffix for artifact names

* Disable provenance for Docker build outputs
2026-05-15 00:08:14 +01:00
Adam Daley fcdce39853 Use matrix.suffix for artifact names (#3547) 2026-05-14 23:05:43 +01:00
Adam Daley 5f5a6e5a6a Refactor CI with build-push-action and Docker caching (#3545)
* Switch CI to build-push-action and add GHCR caching

* Set YAML `indent_size` to 2 in .editorconfig

* CI: Reuse Docker steps

* Update docker/login-action to v4

* Upload preview Docker image artifact in CI

* Add reusable docker-build workflow
2026-05-14 22:29:17 +01:00
renovate[bot] 6948bd0f6a Update shivammathur/setup-php digest to 7c071df 2026-05-14 16:43:01 +00:00
b49ccb9df8 Sanitize invoice handling, enhance security, and improve API responses (#3524)
* Sanitize invoice hash and secure asset paths

* Guard against missing client session

* Serialize invoice items into indexed inputs

* Validate URL field input type before checking

* Block legacy paid support hooks on ticket create

* Harden CSRF token validation in API client

* Add 'Paidsupport' to cspell word list

* Use Stripe metadata to link client and invoice

* Remove legacy Paidsupport hooks handling

* Add paidsupport to cspell word list

* Use config debug flag; always warn if install exists

* Revert "Use config debug flag; always warn if install exists"

This reverts commit fda6fcc0b05758d897a837d125ce1c0a35be0226.

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fix Stripe getClientFromTransaction and simplify UpdatePatcher cache invalidation

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/49a72bff-61f2-4a3e-9107-08aec7b255d2

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Restrict Dompdf logo remote URLs to http/https schemes only

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/58c16027-cc36-4c11-a039-0bfcaf5a45f5

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

* Enable Buildx cache and add release archive

* Restrict `claimForProcessing` SQL and update tests

* Add HTML sanitizer and sandboxed Twig rendering

* Update test expected HTML in ServiceTest

* Add `RequestFactory` and trusted proxy support

* Use HttpFoundation Responses & Request everywhere

* Return HTTP Response objects for exports/downloads

* Refactor request routing, auth errors and CSV export

* Remove RequestFactory wrapper and minor cleanups

* Specify Response union return types

* Parenthesize response constructions before send

* Clean up PHPStan ignore rules

* Relax HTML test to accept optional tbody/br

* fix(theme): call getUploadedAssets without arguments

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/ce04bff6-ccde-4a10-8a68-f6278b1b550e

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>
2026-05-12 00:10:49 +01:00
Copilotandadmdly c7566e091e Stabilize Docker publish workflows by disabling fragile GHA cache imports (#3515)
Disable Docker GHA cache in preview/release workflows

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/07ce9c6d-cb2b-4bb5-9517-3aabe5276051

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>
2026-05-11 01:00:33 +01:00
renovate[bot] 9985584f1c Update docker/setup-buildx-action action to v4 (#3514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-11 00:12:29 +01:00
b82df887fe Enhance CI/CD with Docker optimizations and error handling (#3509)
* Bump Dockerfile syntax to 1.18

* Add getStatusCode to Response and update test

* Expect error code 740 for invalid theme action

* Use Docker-based CI/test image and live test script

* Add PHP 8.5 to CI matrix

* Add Buildx caching and optimize Docker build

* Add CI timeouts, quoting fixes, and release tree build

* Add concurrency, caching, and cleanup to CI

* Grant permissions for preview-build job

* Map error code 740 to HTTP 404 and update test

* Update cache-scope names in GitHub workflows

* Remove redundant status guard in theme admin test

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/b20f484f-0aaa-4afc-ae43-adb264bb05aa

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

* Grant cache export permissions to CI build job

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/a088c94f-a176-40fb-9e0b-ee3cac2aeb5b

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

* Disable cache for release artifact build

* Fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-10 22:43:16 +01:00
Adam Daley f7f7fbc3df Enhance security, validation, and configuration for various services (#3507)
* Use `\A` and `\z` anchors in Finder regex

* Run config patches before core patches

* Ensure cron log exists and owned by www-data

* Change numeric inputs to text for plan limits

* Invoke global listeners for fired event

* Sanitize PDF filenames in `createPdfResponse`

* Use `array_key_exists` for blacklist check

* Prefer custom package value for DirectAdmin

* Validate password argument type in isPasswordStrong

* Skip non-installed non-core modules in Hook Service

* Instantiate `DoctrinePaginator` after limits

* Validate guest message is a string

* Adjust mocks in Hook ServiceTest

* Validate currency conversion rate input

* Stop accepting CSRF header token

* Add `.dockerignore` and modernize CI/Dockerfile

* Mock `CurrencyRepository` in `ServiceTest`

* Add antispam hooks for client/admin login

* Move password reset captcha before rate limiting

* Add sandbox attribute to email preview iframe

* Skip reprocessing and include payment_intent check

* Check password reset captcha after rate limit

* Enhance testCreateAndProcess with DB and TX mocks
2026-05-10 16:46:22 +01:00
7a2c20e264 Fix merge-hold status updates on PR label changes (#3502)
* Fix CI merge-hold checks on PR label changes

* Avoid duplicate CI on PR label events

Agent-Logs-Url: https://github.com/FOSSBilling/FOSSBilling/sessions/cfc116ce-5ae8-439f-acc0-fe5ecd868c89

Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: admdly <2807620+admdly@users.noreply.github.com>
2026-05-10 14:19:22 +01:00
renovate[bot] 99424c82c3 Update release-drafter/release-drafter digest to c2e2804 2026-05-08 16:31:07 +00:00
renovate[bot] 0955f2311e Update github/codeql-action digest to 68bde55 2026-05-08 07:28:32 +00:00
Adam DaleyandCopilot Autofix powered by AI 2206119011 Fix for code scanning alert no. 423: Workflow does not contain permissions (#3492)
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-05-06 23:25:12 +01:00
Adam Daley 1cd99f4fe4 Refactor CI workflow and integrate multi-language support (#3490)
* Make CodeQL workflow multi-language matrix

* Consolidate merge-hold check into CI

* Merge labeler workflow into CI and adjust triggers

* Integrate Release Drafter into CI workflow

* Embed live-tests job into CI workflow

* Refactor CI workflow: consolidate permissions

* Enable release-drafter autolabeler

* Rename CI job name to 'Live Tests'

* Add composite action to prepare application assets

* Enable workflow concurrency and fail-fast

* Run live-tests after spellcheck

* Add live-tests dependency to preview-build

* Make concurrency group include workflow/event/PR
2026-05-06 23:14:05 +01:00
renovate[bot] eb5ae0554c Update actions/labeler digest to f27b608 2026-05-06 08:09:59 +00:00
Yağızhan Burak Yakar e05ce7a7e2 Rate limit system improvements (#3461) 2026-05-04 16:53:28 +01:00