Commit Graph

35 Commits

Author SHA1 Message Date
Jonathan Miller 5f7e6a9b1a feat: add client_dashboard.php + fix release_cascade for RC
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Release configuration (push) Successful in 3s
Generic: Repo Health / Scripts governance (push) Successful in 3s
Generic: Repo Health / Repository health (push) Successful in 11s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 5s
Universal: PR Check / Validate PR (pull_request) Successful in 5s
Universal: PR Check / Build RC Package (pull_request) Successful in 1s
Generic: Repo Health / Release configuration (pull_request) Successful in 5s
Platform: moko-platform CI / Gate 1: Code Quality (push) Successful in 50s
Generic: Repo Health / Scripts governance (pull_request) Successful in 5s
Generic: Repo Health / Repository health (pull_request) Successful in 14s
Platform: moko-platform CI / Gate 1: Code Quality (pull_request) Successful in 54s
Platform: moko-platform CI / Gate 5: Template Integrity (pull_request) Failing after 4s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (pull_request) Failing after 45s
Platform: moko-platform CI / Gate 3: Self-Health Check (pull_request) Failing after 47s
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (pull_request) Failing after 49s
Platform: moko-platform CI / Gate 4: Governance (pull_request) Successful in 53s
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (pull_request) Failing after 55s
Platform: moko-platform CI / Gate 5: Template Integrity (push) Failing after 6s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Failing after 53s
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Failing after 54s
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Failing after 55s
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Failing after 1m12s
Platform: moko-platform CI / Gate 4: Governance (push) Successful in 46s
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Platform: moko-platform CI / CI Summary (pull_request) Has been cancelled
- client_dashboard.php: generates self-contained HTML dashboard showing
  all client-waas repos with uptime, SSL expiry, release status, and
  infrastructure config status. Addresses #3.

- release_cascade.php: accept "release-candidate" as stability value.
  Previously only "rc" was mapped, so cascade silently skipped when
  the pre-release workflow passed "release-candidate".

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-25 19:03:48 -05:00
Jonathan Miller fb916e857e feat: add cli/client_provision.php — end-to-end client onboarding
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Generic: Repo Health / Release configuration (push) Successful in 6s
Generic: Repo Health / Scripts governance (push) Successful in 7s
Generic: Repo Health / Repository health (push) Successful in 15s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 5s
Universal: PR Check / Validate PR (pull_request) Successful in 4s
Generic: Repo Health / Release configuration (pull_request) Successful in 6s
Generic: Repo Health / Scripts governance (pull_request) Successful in 7s
Universal: PR Check / Build RC Package (pull_request) Successful in 4s
Generic: Repo Health / Repository health (pull_request) Successful in 14s
Platform: moko-platform CI / Gate 1: Code Quality (push) Successful in 1m1s
Platform: moko-platform CI / Gate 1: Code Quality (pull_request) Successful in 53s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Failing after 35s
Platform: moko-platform CI / Gate 5: Template Integrity (pull_request) Failing after 4s
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (pull_request) Failing after 32s
Platform: moko-platform CI / Gate 3: Self-Health Check (pull_request) Failing after 36s
Platform: moko-platform CI / Gate 4: Governance (pull_request) Successful in 36s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (pull_request) Failing after 38s
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (pull_request) Failing after 39s
Platform: moko-platform CI / Gate 5: Template Integrity (push) Failing after 5s
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Failing after 43s
Platform: moko-platform CI / Gate 4: Governance (push) Successful in 41s
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Failing after 44s
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Failing after 49s
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Platform: moko-platform CI / CI Summary (pull_request) Has been cancelled
Orchestrates the full client provisioning flow from a single JSON config:
  1. Create repo from Template-Client-WaaS
  2. Inject Gitea Actions variables (hosts, paths, ports)
  3. Inject Gitea Actions secrets (SSH keys via @file references)
  4. Push Grafana monitoring dashboard
  5. Register monitoring URLs/domains

Supports --dry-run for preview, --step for running individual steps.
Includes example config at templates/client-provision-example.json.

Addresses #4

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-25 18:51:06 -05:00
Jonathan Miller bb0ee435e8 feat: add cli/grafana_dashboard.php for Grafana dashboard management
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Release configuration (push) Successful in 4s
Generic: Repo Health / Scripts governance (push) Successful in 4s
Generic: Repo Health / Repository health (push) Successful in 12s
Platform: moko-platform CI / Gate 1: Code Quality (push) Successful in 45s
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Failing after 0s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Failing after 0s
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Failing after 1s
Platform: moko-platform CI / Gate 4: Governance (push) Failing after 0s
Platform: moko-platform CI / Gate 5: Template Integrity (push) Failing after 0s
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Failing after 31s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 4s
Universal: PR Check / Validate PR (pull_request) Successful in 4s
Generic: Repo Health / Release configuration (pull_request) Successful in 4s
Universal: PR Check / Build RC Package (pull_request) Successful in 1s
Generic: Repo Health / Scripts governance (pull_request) Successful in 4s
Generic: Repo Health / Repository health (pull_request) Successful in 11s
Platform: moko-platform CI / Gate 1: Code Quality (pull_request) Successful in 44s
Platform: moko-platform CI / Gate 5: Template Integrity (pull_request) Failing after 5s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (pull_request) Failing after 39s
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (pull_request) Failing after 45s
Platform: moko-platform CI / Gate 3: Self-Health Check (pull_request) Failing after 47s
Platform: moko-platform CI / Gate 4: Governance (pull_request) Successful in 48s
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (pull_request) Failing after 51s
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Platform: moko-platform CI / CI Summary (pull_request) Has been cancelled
Four commands for dashboard lifecycle management via the Grafana API:
- push: create/update dashboard from JSON file (with folder support)
- delete: remove dashboard by UID
- list: list dashboards (optionally filtered by folder)
- export: download dashboard JSON by UID

Supports GRAFANA_URL and GRAFANA_TOKEN env vars for CI integration.

Closes #53

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-25 16:40:04 -05:00
Jonathan Miller bc47944d8f fix: version_read/bump handle suffixed versions and HTML-comment VERSION
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (push) Blocked by required conditions
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 0s
Generic: Repo Health / Access control (push) Failing after 0s
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Release configuration (push) Has been skipped
Generic: Repo Health / Scripts governance (push) Has been skipped
Generic: Repo Health / Repository health (push) Has been skipped
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 1: Code Quality (pull_request) Failing after 0s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Failing after 0s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Failing after 0s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Release configuration (pull_request) Has been skipped
Generic: Repo Health / Scripts governance (pull_request) Has been skipped
Generic: Repo Health / Repository health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Successful in 4s
Universal: PR Check / Build RC Package (pull_request) Failing after 0s
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been skipped
Platform: moko-platform CI / Gate 5: Template Integrity (pull_request) Has been skipped
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Platform: moko-platform CI / CI Summary (pull_request) Has been cancelled
Two bugs caused release-candidate pre-release builds to fail after a
development pre-release had been built:

1. XML regex only matched bare XX.YY.ZZ but not XX.YY.ZZ-dev/-rc etc.
   After a development pre-release wrote -dev suffix to manifests, the
   next pre-release could not read the version back.

2. README regex required VERSION: at line start (^\s*VERSION:) which
   does not match <!-- VERSION: 01.00.00 --> format used by some repos.

Fixes: version_read.php, version_bump.php

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-25 00:13:50 -05:00
Jonathan Miller c55da9d67d feat: add cli/bulk_workflow_push.php for governed repo sync
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Release configuration (push) Successful in 4s
Generic: Repo Health / Scripts governance (push) Successful in 4s
Generic: Repo Health / Repository health (push) Successful in 11s
Platform: moko-platform CI / Gate 1: Code Quality (push) Successful in 44s
Platform: moko-platform CI / Gate 4: Governance (push) Failing after 0s
Platform: moko-platform CI / Gate 5: Template Integrity (push) Failing after 0s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Failing after 29s
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Failing after 31s
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Failing after 32s
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Failing after 34s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 1: Code Quality (pull_request) Failing after 1s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Failing after 1s
Universal: PR Check / Branch Policy (pull_request) Failing after 0s
Universal: PR Check / Validate PR (pull_request) Failing after 0s
Universal: PR Check / Build RC Package (pull_request) Has been skipped
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Failing after 1s
Generic: Repo Health / Release configuration (pull_request) Has been skipped
Generic: Repo Health / Scripts governance (pull_request) Has been skipped
Generic: Repo Health / Repository health (pull_request) Has been skipped
Platform: moko-platform CI / Gate 5: Template Integrity (pull_request) Has been skipped
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Platform: moko-platform CI / CI Summary (pull_request) Has been cancelled
Push a workflow file from moko-platform to all non-archived repos in an
org via the Gitea Contents API. Compares content before pushing — skips
repos where the file is identical, creates where missing, updates where
changed. Supports --dry-run for safe preview.

Closes #52

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-24 23:16:44 -05:00
Jonathan Miller 63b0baceed fix: updates_xml_build writes only the current channel entry
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (push) Blocked by required conditions
Universal: Cascade Main → Dev / Cascade main → branches (push) Failing after 1s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 1s
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Failing after 0s
Generic: Repo Health / Scripts governance (push) Has been skipped
Generic: Repo Health / Repository health (push) Has been skipped
Generic: Repo Health / Release configuration (push) Has been skipped
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been skipped
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Was cascading entries for all lower channels on stable release,
producing wrong download URLs for non-existent channel releases.
Now writes only the entry for the current stability level;
the preserve logic retains entries from other channels.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-24 23:03:44 -05:00
jmiller a888b6c9c7 feat(cli): add version_bump_remote.php for API-based version bumping
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
Generic: Repo Health / Release configuration (push) Successful in 4s
Generic: Repo Health / Scripts governance (push) Successful in 4s
Generic: Repo Health / Repository health (push) Failing after 4s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 8s
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been skipped
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Closes #80
2026-05-24 09:12:23 +00:00
Jonathan Miller bd2799c761 fix: targetplatform regex simplified to avoid Gitea XML parse errors
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Release configuration (push) Successful in 4s
Generic: Repo Health / Scripts governance (push) Successful in 3s
Generic: Repo Health / Repository health (push) Failing after 4s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 9s
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been skipped
Platform: moko-platform CI / CI Summary (push) Has been cancelled
The complex regex ((5.[0-9])|(6.[0-9])) caused Gitea's web view to
return 500 when rendering the XML. Simplified to (5|6)\..* which is
Joomla-compatible and XML-safe.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-24 04:02:33 -05:00
Jonathan Miller e03b29983a fix: updates_xml_build preserves existing channel entries
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (push) Blocked by required conditions
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 1s
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Release configuration (push) Successful in 10s
Generic: Repo Health / Scripts governance (push) Successful in 10s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 14s
Generic: Repo Health / Repository health (push) Failing after 11s
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been skipped
Platform: moko-platform CI / CI Summary (push) Has been cancelled
When building a dev release, the CLI was overwriting the entire
updates.xml with only the dev entry, wiping the stable channel.
Now reads existing entries and preserves channels not being updated.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-24 03:46:37 -05:00
Jonathan Miller d723475931 fix: updates_xml_build strips type prefix from element to prevent pkg_pkg_
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
Generic: Repo Health / Release configuration (push) Successful in 5s
Generic: Repo Health / Scripts governance (push) Successful in 4s
Generic: Repo Health / Repository health (push) Failing after 4s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 9s
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been skipped
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Same duplication bug as joomla_build.php — uses <packagename> for
packages and strips existing type prefixes before prepending.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 23:42:38 -05:00
Jonathan Miller 8892ade56a fix: version_set_platform updates sub-package manifests too
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 5s
Generic: Repo Health / Release configuration (push) Successful in 4s
Generic: Repo Health / Scripts governance (push) Successful in 4s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 11s
Generic: Repo Health / Repository health (push) Failing after 4s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Has been cancelled
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Has been cancelled
Platform: moko-platform CI / Gate 4: Governance (push) Has been cancelled
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been cancelled
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Was only globbing src/*.xml, missing src/packages/*/*.xml. Joomla
packages have sub-extension manifests that also need version updates.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 23:24:44 -05:00
Jonathan Miller b8a282cdbc fix: prevent pkg_pkg_ duplication in package zip names
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
Generic: Repo Health / Release configuration (push) Successful in 4s
Generic: Repo Health / Scripts governance (push) Successful in 5s
Generic: Repo Health / Repository health (push) Failing after 4s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 9s
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been skipped
Platform: moko-platform CI / CI Summary (push) Has been cancelled
parseManifest() was falling back to the filename (pkg_mokowaas.xml →
pkg_mokowaas) as the element, then typePrefix() prepended another pkg_.
Now uses <packagename> for packages and strips existing type prefixes
from the element before prepending.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 23:20:16 -05:00
Jonathan Miller d9846b1c01 fix: version_bump/read check manifest XML, use higher version as base
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
Generic: Repo Health / Release configuration (push) Successful in 4s
Generic: Repo Health / Scripts governance (push) Successful in 3s
Generic: Repo Health / Repository health (push) Failing after 4s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 8s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Has been cancelled
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Has been cancelled
Platform: moko-platform CI / Gate 4: Governance (push) Has been cancelled
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been cancelled
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Previously version_bump.php only read from README.md VERSION header,
ignoring the actual manifest XML version. When a version was manually
bumped in the manifest (e.g. 02.03.00) but README still showed an
older version (02.01.45), the CLI would bump from README's version
instead, producing wrong release numbers.

Now both tools check README.md AND Joomla manifest XML files
(pkg_*.xml, src/*.xml, packages/*/*.xml) and use whichever version
is higher as the base for bumping/reading.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 22:48:11 -05:00
Jonathan Miller 14de7dbe19 feat(cli): add 4 release pipeline CLI tools
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Release configuration (push) Successful in 4s
Generic: Repo Health / Scripts governance (push) Successful in 4s
Generic: Repo Health / Repository health (push) Failing after 5s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 3: Self-Health Check (pull_request) Blocked by required conditions
Platform: moko-platform CI / Gate 4: Governance (pull_request) Blocked by required conditions
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 1s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 5s
Universal: PR Check / Validate PR (pull_request) Successful in 4s
Platform: moko-platform CI / Gate 1: Code Quality (pull_request) Failing after 10s
Generic: Repo Health / Release configuration (pull_request) Successful in 4s
Generic: Repo Health / Repository health (pull_request) Failing after 4s
Generic: Repo Health / Scripts governance (pull_request) Successful in 5s
Platform: moko-platform CI / Gate 5: Template Integrity (pull_request) Has been skipped
Platform: moko-platform CI / CI Summary (pull_request) Has been cancelled
- release_verify.php: Post-release artifact verification (ZIP integrity,
  manifest version, SHA256 vs updates.xml, disallowed files check)
- release_validate.php: Pre-release sanity checks (version consistency
  across README, CHANGELOG, manifest, updates.xml, composer.json)
- release_body_update.php: Update Gitea release body with changelog
  extract and checksums table via API
- dev_branch_reset.php: Delete and recreate dev branch from main via
  Gitea API

Resolves: #56, #60, #62, #64

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 22:37:37 -05:00
Jonathan Miller 492f1cbb80 fix: version_set_platform.php reads manifest.xml + supports joomla platform
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
- Added .mokogitea/manifest.xml XML lookup (new format)
- Added .mokogitea/.mokostandards fallback (legacy)
- Platform 'joomla' now handled alongside 'waas-component'

This was the root cause of manifest version not updating during releases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 15:43:42 -05:00
Jonathan Miller 008cdeb996 fix: updates_xml_build.php uses 'development' tag, not 'dev'
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
The release tag is 'development' but the CLI was generating download
URLs with tag 'dev', causing Joomla update downloads to 404.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 22:33:40 -05:00
jmiller 89007ab9ba feat(cli): updates_xml_sync.php replaces inline workflow sync (#39)
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
2026-05-22 02:39:17 +00:00
jmiller 5b9d258135 feat(cli): add release automation CLI scripts (#35)
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
feat(cli): add release automation CLI scripts

Add 6 new CLI scripts replacing inline bash in CI workflows.
Update version_set_platform.php with --stability flag.
2026-05-22 02:28:17 +00:00
jmiller a706a2cc32 refactor: MokoGiteaAdapter + manifest.xml primary lookup (#32)
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
2026-05-21 22:19:49 +00:00
jmiller 46d9af0ff6 refactor: rename GiteaAdapter to MokoGiteaAdapter (#30)
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
2026-05-21 22:15:50 +00:00
jmiller 8095ea607b refactor: rename .gitea/ to .mokogitea/ in sync engine (#28)
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
2026-05-21 21:55:24 +00:00
jmiller 14763e3c49 feat(ci): type-aware Joomla build via PHP API (#26)
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
2026-05-21 21:44:05 +00:00
jmiller 75f79fd0c8 feat: add bulk_workflow_trigger.php
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Cascade Main → Dev / Cascade main → branches (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Authored-by: Moko Consulting
2026-05-19 20:47:18 +00:00
jmiller 7d8c094227 feat: add client_inventory.php
Universal: Cascade Main → Dev / Cascade main → branches (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Authored-by: Moko Consulting
2026-05-19 20:47:13 +00:00
jmiller 56e53dff55 feat: add scaffold_client.php
Universal: Cascade Main → Dev / Cascade main → branches (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Authored-by: Moko Consulting
2026-05-19 20:47:11 +00:00
jmiller f2a76c0ae0 feat: manifest_read.php supports <deploy> section fields [skip ci] 2026-05-12 20:10:50 +00:00
jmiller 64de7159cf feat: add manifest_read.php � full .manifest.xml parser for CI [skip ci] 2026-05-12 19:22:28 +00:00
Jonathan Miller 1d87be7d5e fix: standardize file headers — REPO rename, SPDX case, missing fields
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
- Update REPO: from MokoStandards-API to moko-platform in 125 files
- Fix wrong org path (mokoconsulting-tech → MokoConsulting) in 10 files
- Fix SPDX-LICENSE-IDENTIFIER case in 2 template files
- Add missing REPO: field to 3 files

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 17:01:17 -05:00
Jonathan Miller 38a975ee57 chore: remove VERSION from all file header comments
Branch Policy Check / Verify merge target (pull_request) Successful in 0s
Remove VERSION: XX.YY.ZZ lines from 213 file headers across PHP,
TypeScript, TF definitions, workflows, CSS, markdown, and XML files.
Version is tracked in composer.json and CHANGELOG.md only.

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 16:51:00 -05:00
Jonathan Miller 7b863f690d fix: remove all stale api/ path references across PHP codebase
Updated ~60 files: comments, usage docs, SCRIPT_PATH constants,
wrapper paths, require paths, error messages, and help text.
All api/validate/ → validate/, api/automation/ → automation/, etc.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 19:18:22 -05:00
Jonathan Miller 89c7dc0091 Fix bulk_sync: resolve label names to IDs, fix username jmiller-moko → jmiller
- Added resolveLabelIds() helper: looks up label IDs from Gitea API
- All issue creation/update calls now pass integer label IDs (Gitea requirement)
- Replaced hardcoded 'jmiller-moko' (GitHub) with 'jmiller' (Gitea) in
  bulk_sync.php, push_files.php, archive_repo.php

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 05:30:59 -05:00
Jonathan Miller 5ddd507f7b Fix autoload paths and workflow templates for standalone repo structure
- All PHP files in cli/, deploy/, maintenance/ had __DIR__ . '/../../vendor/autoload.php'
  (from when they lived at /api/cli/ inside MokoStandards). Fixed to /../vendor/autoload.php
- Workflow templates updated to clone MokoStandards-API.git and reference /cli/, /deploy/,
  /maintenance/ paths instead of /api/cli/, /api/deploy/, /api/maintenance/

Affects: 11 PHP files + 11 workflow templates

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 19:18:01 -05:00
Jonathan Miller b0cc468155 feat: migrate to Gitea-only workflows and API
- RepositorySynchronizer defaults to GiteaAdapter
- PlatformAdapterFactory points to git.mokoconsulting.tech
- All plugins reference .gitea/workflows instead of .github/workflows
- push_files.php uses Gitea API
- Common.php REPO URLs updated to Gitea
- sync_dolibarr_readmes.php updated to Gitea URLs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 17:40:18 -05:00
Jonathan Miller e96a851617 fix: replace all hardcoded GitHub API URLs with platform adapter pattern
- cli/create_project.php: use PlatformAdapterFactory, guard GraphQL for GitHub-only
- cli/joomla_release.php: use adapter for API init, platform-aware clone/upload URLs
- release/generate_joomla_update_xml.php: use PlatformAdapterFactory for API init
- release/generate_dolibarr_version_txt.php: same
- validate/scan_drift.php: use PlatformAdapterFactory for API init
- validate/check_repo_health.php: use platform-aware API base URL
- validate/check_composer_deps.php: route through adapter ApiClient
- maintenance/repo_inventory.php: route through adapter ApiClient, guard GraphQL
- maintenance/rotate_secrets.php: route through adapter ApiClient
- maintenance/update_version_from_readme.php: use PlatformAdapterFactory, rename method
- lib/Common.php: set primary REPO_URL to Gitea

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:12:41 -05:00
jmiller 0b80fec88d feat: add templates, CLI dirs, docs, and Gitea-first platform config 2026-04-15 02:35:30 +00:00