Commit Graph
14682 Commits
Author SHA1 Message Date
kevinveenbirkenbachandClaude Sonnet 4.6 b3afb96706 docs(agents): clarify --no-verify policy in commit instructions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 17:03:30 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 821c3c53b6 feat(pre-commit): introduce pre-commit hook enforcement and modular environment test suite
- Add .pre-commit-config.yaml running make test on non-doc changes
- Add pre-commit to pyproject.toml dev dependencies
- Add scripts/install/pre-commit.sh for hook registration
- Add install-python-dev Makefile target; wire into environment-bootstrap
- Rename setup-development → mark-development (env.ci override marker)
- Refactor scripts/tests/environment.sh into modular 00–10 scripts with orchestrator
- Add 09_commit.sh validating pre-commit enforcement and --no-verify bypass
- Update docs/agents/action/commit.md and testing.md for new hook behavior
- Update makefile.md, setup.md, installation.md accordingly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 16:58:24 +02:00
kevinveenbirkenbach 0afacb7bd8 Merge pull request #140 from infinito-nexus/dependabot/docker_compose/coredns/coredns-1.14.2
build(deps): bump coredns/coredns from 1.11.1 to 1.14.2
2026-04-08 15:42:19 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 769e3079d9 fix(pr): allow dependabot branch prefix for full CI scope
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 15:40:45 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 2a5503c185 docs(installation): link to Makefile commands, environment script, and CONTRIBUTING.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 15:35:06 +02:00
dependabot[bot] 159830fa44 build(deps): bump coredns/coredns from 1.11.1 to 1.14.2
Bumps coredns/coredns from 1.11.1 to 1.14.2.

---
updated-dependencies:
- dependency-name: coredns/coredns
  dependency-version: 1.14.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 12:46:14 +00:00
kevinveenbirkenbachandClaude Sonnet 4.6 0ce6b1347c refactor(annotations): move to utils/annotations, add step summary support
- Move utils/gha/annotations.py → utils/annotations/message.py
- Move scripts/gha/summarize_annotations.py → utils/annotations/summarize.py
- Keep utils/gha/annotations.py as compatibility shim
- Update all imports across codebase to utils.annotations.message
- Wire tee + summary step into test-code-lint, unit, and integration workflows
- Add unit tests for utils/annotations/summarize (20 tests)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 14:05:24 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 cdcd96cb8a feat(dependabot): enable all supported ecosystems with daily schedule at midnight
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 13:32:49 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 1a7a63cac3 feat(gha): add all CodeQL-supported languages to security scan matrix
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 13:27:15 +02:00
kevinveenbirkenbach 9d1cd88606 Merge branch 'infinito-nexus:main' into main 2026-04-08 13:08:32 +02:00
kevinveenbirkenbach 1539df2640 Merge pull request #134 from AlejandroRomanIbanez/fix/mailu-dns-wls
fix(web-app-mailu): restore WSL2/DinD DNS forwarding via MAILU_UNBOUND_FORWARD_DNS
2026-04-08 13:01:02 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 e1966c16da refactor(gha): centralize annotation helpers in utils/gha/annotations.py
Replace copy-pasted ::warning prints and _gha_escape helpers across lint
tests and utils with a shared utility that emits GHA workflow commands in
CI and plain [WARNING]/[ERROR]/[NOTICE] lines locally. Update
test_role_resource_validation to capture stdout instead of stderr.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 12:32:06 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 5e970ff5bd feat(gha): introduce utils/gha/annotations for GitHub Actions workflow annotations
- Add utils/gha/annotations.py with warning/error/notice helpers and *_each
  variants that emit one annotation per list item
- Use warning() in GHCRProvider._set_public for missing GHCR_PAT case
- Expose GHCR_PAT_SET env var in mirror step to distinguish missing-PAT from
  real API failures
- Add unit tests for all annotation functions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 10:59:46 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 312233aa42 fix(mirror): use /user/packages endpoint for authenticated user visibility update
/users/{username}/packages does not support PATCH — it is a read-only endpoint
for public data. The correct endpoint for updating visibility of the authenticated
user's packages is /user/packages (without username).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 10:23:15 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 a751257b4b fix(mirror): retry visibility API call to handle GHCR propagation delay
A freshly pushed package may not be immediately visible in the GitHub
Packages API. Add up to 5 retries with 10s delay before failing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 10:08:09 +02:00
kevinveenbirkenbach 33a7eef589 lint 2026-04-08 09:55:32 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 7c8783c623 fix(mirror): use GHCR_PAT for package visibility API and remove ensure_public from skip path
Root cause: GITHUB_TOKEN in Actions is repo-scoped and cannot change package
visibility in user/org namespaces — all 58 mirror operations failed with 404.

- Use GHCR_PAT (which has write:packages scope) as GITHUB_TOKEN in the mirror
  step, falling back to GITHUB_TOKEN if GHCR_PAT is not set
- Remove ensure_public() call from the already-exists skip path (wrong place:
  existing images were already made public when first mirrored)
- Update test to assert ensure_public is not called for skipped images

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 09:45:38 +02:00
kevinveenbirkenbach 30d92981fe Merge pull request #1 from kevinveenbirkenbach/dependabot/github_actions/docker/login-action-4.1.0
build(deps): bump docker/login-action from 4.0.0 to 4.1.0
2026-04-08 08:46:24 +02:00
kevinveenbirkenbach 6a4cdd2266 Merge pull request #112 from AlejandroRomanIbanez/feature/fider-role
Feature/fider role
2026-04-08 08:10:23 +02:00
kevinveenbirkenbach 7bf06efc9e lint 2026-04-08 07:46:15 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 b3a4a81e01 fix(mirror): remove redundant mirror job and publish images as public
- Remove redundant `images-mirror-missing` job from entry-pull-request-change.yml
  (mirroring already runs via ci-orchestrator for same-repo PRs)
- Set GHCR package visibility to public after each successful mirror via GitHub API
- Add `ensure_public` hook to base class (no-op for other providers)
- Also call `ensure_public` for already-existing images to fix any that are still private
- Pass GITHUB_TOKEN explicitly to the mirror step
- Add unit tests for _set_public (user/org endpoint fallback) and sync skip-path

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 07:45:33 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 01b26a8b81 feat(sys-svc-sshd): add SYS_SVC_SSHD_PASSWORD_AUTHENTICATION variable
Introduces a configurable default for password authentication in sshd,
allowing controlled exceptions (e.g. local E2E test targets) while
keeping the secure default of disabled.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 06:58:14 +02:00
dependabot[bot] c1d0711e3d build(deps): bump docker/login-action from 4.0.0 to 4.1.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/b45d80f862d83dbcd57f89517bcf500b2ab88fb2...4907a6ddec9925e35a0a9e82d7399ccc52663121)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 01:36:02 +00:00
Alejandro Roman 3e7d61e770 fix(wsl-mailu): Handle automatic WSl needs, if is not wsl skipped and use the usual approach 2026-04-07 23:51:38 +04:00
Alejandro Roman a2349feb3a fix(fider): Add missing shared logic in fider 2026-04-07 23:37:47 +04:00
Alejandro Roman d71703c6b8 feat(web-app-fider): fix issues and add playwritght 2026-04-07 23:30:05 +04:00
Alejandro Roman 2871a1fcf6 feat(webapp-fider): last fixes and Readme udpate with last changes 2026-04-07 23:30:05 +04:00
Alejandro Roman d3cb65a6ad feat(webapp-fider): Fix the email verification issue 2026-04-07 23:30:05 +04:00
Alejandro Roman da3d986e55 feat(webapp-fider): Add the logic to run fider with roles 2026-04-07 23:30:04 +04:00
kevinveenbirkenbach c434d83a84 fix(web-app-prometheus): add shared flag to enabled services
Adds 'shared: true' to the 'oauth2', 'logout', 'dashboard', and 'css'
services in 'roles/web-app-prometheus/config/main.yml'.

This change resolves consistency violations reported by
'test_service_shared_consistency.py', which requires that all services
marked as 'enabled: true' must also explicitly declare their 'shared' status.
2026-04-07 17:11:47 +02:00
kevinveenbirkenbach 1684a4f499 Merge pull request #129 from AlejandroRomanIbanez/feature/prometheus-role
feat(web-app-prometheus): Create the web-app for Prometheus + E2E tests
2026-04-07 14:33:03 +02:00
kevinveenbirkenbach e476d55bdc Merge pull request #132 from AlejandroRomanIbanez/fix/images-mirror-missing
fix(ci): mirror images for same-repo PRs directly from entry-pull-request.yml
2026-04-07 14:31:17 +02:00
Alejandro Roman 2fb6bdab9f feat(web-app-prometheus): make it admin access only and remove biber access 2026-04-07 16:27:09 +04:00
Alejandro Roman 92298ff0b3 feat(web-app-prometheus): Create the web-app for prometheus + the e2e tests 2026-04-07 16:27:07 +04:00
Alejandro Roman 86ea19630e fix(mirror-ci): mirror images for same-repo PRs directly from entry-pull-request.yml 2026-04-07 16:23:40 +04:00
kevinveenbirkenbach 1c9468e3e8 Merge pull request #126 from kevinveenbirkenbach/feature/taiga-ldap
feat(taiga-ldap): LDAP integration, Mailu DNSSEC fix, dashboard & service dependency improvements
2026-04-07 11:41:57 +02:00
kevinveenbirkenbach da1f8d90a1 Merge remote-tracking branch 'origin/feature/taiga-ldap' into feature/service-refactoring 2026-04-06 12:52:52 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 6c126e3522 fix(web-app-dashboard): replace direct applications variable access with get_app_conf
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 10:18:14 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 3dc2d54964 fix(pkgmgr): replace dynamic ssh-keyscan lookup with static GitHub host key
Replaces the fragile pipe lookup calling ssh-keyscan at runtime with a
static PKGMGR_GITHUB_HOST_KEY variable to avoid CI failures where TCP:22
to github.com may be blocked.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 00:52:43 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 1289193d09 fix(web-app-dashboard): skip matomo tracking test when matomo is disabled
Adds MATOMO_ENABLED to the Playwright env template, derived from the
Ansible application config, so the matomo tracking assets test can be
skipped when SERVICES_DISABLED=matomo is set (e.g. in the minimal CI
deploy step).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 23:27:06 +02:00
kevinveenbirkenbach e6f365aa75 Merge branch 'main' into feature/taiga-ldap 2026-04-05 21:34:51 +02:00
kevinveenbirkenbach b3738e1612 Merge branch 'infinito-nexus:main' into main 2026-04-05 21:33:57 +02:00
kevinveenbirkenbach 386bcd5c0f Merge pull request #128 from AlejandroRomanIbanez/feature/playwright-mattermost
feat(web-app-mattermost): add Playwright E2E test coverage: Seems good. All relevant tests passed. Code makes sense :) Thanks a lot for the implementation <3
2026-04-05 20:40:09 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 10bdf4fe18 fix(test-e2e-playwright): set retries to 2 to reduce flaky test failures
Transient issues (DNS timeout, slow CI runner) no longer cause immediate
failure — each test gets up to 2 retries before being marked as failed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 20:31:38 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 6fa3637005 fix(test-e2e-playwright): accept any non-error HTTP response in readiness wait
Accept 1xx/2xx/3xx (status < 400) instead of only [200, 302] so that apps
returning 301 (e.g. simpleicons redirecting to sphinx docs) are correctly
recognised as ready. Also set follow_redirects=none so the wait checks the
app itself rather than its redirect target.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 20:23:53 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 6b7f1c2385 fix(matomo): remove dot-prefix from cookie domain and extend dashboard Playwright tests
- Remove leading dot from setCookieDomain in matomo-tracking.js.j2 to prevent
  Chromium from rejecting _pk_id/_pk_ses cookies
- Refactor dashboard Playwright spec: extract console error helpers, add dedicated
  matomo tracking test, fix iframeTargetUrl to use matomoBaseUrl for real
  cross-subdomain coverage

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 20:10:58 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 67d071aac0 fix(web-svc-simpleicons): allow redirect in landing page Playwright test
The root `/` handler intentionally redirects to Sphinx docs when
`web-app-sphinx` is in `group_names`. The previous test assumed the
landing page always stays on `icon.infinito.example`, causing a
consistent failure in the sphinx deploy CI job.

Use `{ maxRedirects: 0 }` to capture the raw response and accept both
HTTP 200 (standalone) and 301/302 (sphinx context) as valid outcomes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 20:02:48 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 fa84535cf0 docs(agents): enforce serial deploy execution in iteration loop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 19:54:42 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 ce6c6de0b8 feat(web-svc-simpleicons): add Playwright e2e test for icon serving
Add role-local spec and env template to verify that the Simple Icons
service serves SVG, PNG, and 404 responses correctly on its own domain.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 15:35:44 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 ecda0be568 docs(agents): add role-specific AGENTS.md support and protect test-e2e-playwright
Extend root AGENTS.md with a convention for per-role agent instruction
files, and introduce the first instance for the shared Playwright runner
to enforce minimal, confirmed changes only.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 15:09:48 +02:00