Compare commits

...

10 Commits

Author SHA1 Message Date
jmiller a48be3ff87 chore: sync pre-release.yml from Template-Generic [skip ci] 2026-07-06 17:03:26 +00:00
jmiller 51f8fcb480 chore: sync pr-check.yml from Template-Generic [skip ci] 2026-07-06 03:49:00 +00:00
jmiller dfb3ca876b chore: sync issue-branch.yml from Template-Generic [skip ci] 2026-07-06 03:48:59 +00:00
jmiller e2e9f6d33b chore: sync ci-generic.yml from Template-Generic [skip ci] 2026-07-06 03:48:58 +00:00
jmiller 9f0546c1a8 chore: sync auto-release.yml from Template-Generic [skip ci] 2026-07-06 03:48:57 +00:00
jmiller 3167233b7c Merge chore/template-client-name
Universal: PR Check / Require Docs Update (pull_request) Has been skipped
Universal: PR Check / Wiki Update Reminder (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Successful in 5s
Cascade Main -> Dev / Cascade main -> dev (push) Successful in 11s
Universal: PR Check / Validate PR (pull_request) Failing after 15s
Universal: PR Check / Secret Scan (pull_request) Successful in 21s
Generic: Project CI / Lint & Validate (pull_request) Successful in 1m8s
Platform: mokocli CI / Gate 1: Code Quality (pull_request) Successful in 1m51s
Platform: mokocli CI / Gate 1: Code Quality (push) Successful in 1m47s
Generic: Project CI / Tests (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.1) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.2) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.3) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 3: Self-Health Check (pull_request) Has been cancelled
Platform: mokocli CI / Gate 4: Governance (pull_request) Has been cancelled
Platform: mokocli CI / Gate 5: Template Integrity (pull_request) Has been cancelled
Platform: mokocli CI / CI Summary (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.1) (push) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.2) (push) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.3) (push) Has been cancelled
Platform: mokocli CI / Gate 3: Self-Health Check (push) Has been cancelled
Platform: mokocli CI / Gate 4: Governance (push) Has been cancelled
Platform: mokocli CI / Gate 5: Template Integrity (push) Has been cancelled
Platform: mokocli CI / CI Summary (push) Has been cancelled
2026-07-06 00:13:04 +00:00
jmiller 94e6084e0f fix(client): Template-Client-WaaS -> Template-Client (repo renamed; drop stale redirect dependency)
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 26s
Authored-by: Moko Consulting
2026-07-06 00:13:03 +00:00
jmiller 55a82d7d21 Merge chore/client-mokosuite-prefix
Universal: PR Check / Require Docs Update (pull_request) Has been skipped
Universal: PR Check / Wiki Update Reminder (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Successful in 3s
Universal: PR Check / Validate PR (pull_request) Failing after 12s
Cascade Main -> Dev / Cascade main -> dev (push) Successful in 16s
Universal: PR Check / Secret Scan (pull_request) Successful in 20s
Generic: Project CI / Lint & Validate (pull_request) Successful in 1m13s
Platform: mokocli CI / Gate 1: Code Quality (push) Successful in 1m59s
Platform: mokocli CI / Gate 1: Code Quality (pull_request) Successful in 2m17s
Generic: Project CI / Tests (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.1) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.2) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.3) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 3: Self-Health Check (pull_request) Has been cancelled
Platform: mokocli CI / Gate 4: Governance (pull_request) Has been cancelled
Platform: mokocli CI / Gate 5: Template Integrity (pull_request) Has been cancelled
Platform: mokocli CI / CI Summary (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.1) (push) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.2) (push) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.3) (push) Has been cancelled
Platform: mokocli CI / Gate 3: Self-Health Check (push) Has been cancelled
Platform: mokocli CI / Gate 4: Governance (push) Has been cancelled
Platform: mokocli CI / Gate 5: Template Integrity (push) Has been cancelled
Platform: mokocli CI / CI Summary (push) Has been cancelled
2026-07-05 23:56:37 +00:00
jmiller 88acf57278 feat(client): accept client-mokosuite-* prefix (backward-compat with client-waas-)
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 21s
Discovery (client_dashboard, client_inventory) matches BOTH client-waas- and
client-mokosuite-; provisioning emits client-mokosuite-. Enables the live client
repo renames without breaking discovery. Refs Template-Client#59.

Authored-by: Moko Consulting
2026-07-05 23:56:36 +00:00
jmiller ac293fd038 Merge chore/normalize-docs: normalize doc/config refs
Cascade Main -> Dev / Cascade main -> dev (push) Successful in 15s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Require Docs Update (pull_request) Has been skipped
Universal: PR Check / Wiki Update Reminder (pull_request) Has been skipped
Generic: Project CI / Lint & Validate (pull_request) Successful in 1m11s
Universal: PR Check / Secret Scan (pull_request) Successful in 23s
Universal: PR Check / Validate PR (pull_request) Failing after 11s
Platform: mokocli CI / Gate 1: Code Quality (pull_request) Successful in 2m31s
Generic: Project CI / Tests (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.1) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.2) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 2: Unit Tests (8.3) (pull_request) Has been cancelled
Platform: mokocli CI / Gate 3: Self-Health Check (pull_request) Has been cancelled
Platform: mokocli CI / Gate 4: Governance (pull_request) Has been cancelled
Platform: mokocli CI / Gate 5: Template Integrity (pull_request) Has been cancelled
Platform: mokocli CI / CI Summary (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
2026-07-05 22:50:14 +00:00
11 changed files with 29 additions and 22 deletions
+1 -1
View File
@@ -382,7 +382,7 @@ jobs:
content = open('CHANGELOG.md').read() content = open('CHANGELOG.md').read()
old = '## [Unreleased]' old = '## [Unreleased]'
new = f'## [Unreleased]\n\n## [{version}] --- {date}' new = f'## [Unreleased]\n\n## [{version}] --- {date}'
content = content.replace(old, new, 1) content = content if ('## [' + version + ']') in content else content.replace(old, new, 1)
open('CHANGELOG.md', 'w').write(content) open('CHANGELOG.md', 'w').write(content)
" "$VERSION" "$DATE" " "$VERSION" "$DATE"
git add CHANGELOG.md git add CHANGELOG.md
+5 -4
View File
@@ -131,10 +131,11 @@ jobs:
test: test:
name: Tests name: Tests
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: lint # Independent job (no `needs: lint`): the Gitea Actions scheduler does not
# Run only when lint succeeded; always() forces evaluation so a skipped # offer the dependent 2nd job of a needs-chain to runners, so it stalls in
# lint (e.g. template repos) skips this job cleanly instead of hanging. # "waiting" and is reaped by ABANDONED_JOB_TIMEOUT. Guard template repos
if: ${{ always() && needs.lint.result == 'success' }} # directly (same condition lint uses) instead of gating on lint's result.
if: ${{ !startsWith(github.event.repository.name, 'Template-') }}
steps: steps:
- name: Checkout - name: Checkout
+1 -1
View File
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
# #
# FILE INFORMATION # FILE INFORMATION
# DEFGROUP: Gitea.Workflow # DEFGROUP: MokoGitea.Workflow
# INGROUP: mokocli.Automation # INGROUP: mokocli.Automation
# VERSION: 01.00.00 # VERSION: 01.00.00
# BRIEF: Auto-create feature branch when an issue is opened # BRIEF: Auto-create feature branch when an issue is opened
+1 -1
View File
@@ -210,7 +210,7 @@ jobs:
- name: Check for merge conflict markers - name: Check for merge conflict markers
run: | run: |
CONFLICTS=$(grep -rn '<<<<<<< \|>>>>>>> \|^=======$' --include='*.php' --include='*.xml' --include='*.css' --include='*.js' --include='*.json' --include='*.md' --include='*.yml' --include='*.yaml' --include='*.ini' --include='*.txt' . 2>/dev/null | grep -v '.git/' || true) CONFLICTS=$(grep -rn '<<<<<<< \|>>>>>>> \|^=======$' --exclude-dir='.git' --exclude-dir='.mokogitea' --include='*.php' --include='*.xml' --include='*.css' --include='*.js' --include='*.json' --include='*.md' --include='*.yml' --include='*.yaml' --include='*.ini' --include='*.txt' . 2>/dev/null | grep -v '.git/' || true)
if [ -n "$CONFLICTS" ]; then if [ -n "$CONFLICTS" ]; then
echo "::error::Merge conflict markers found in source files" echo "::error::Merge conflict markers found in source files"
echo "## Conflict Markers Found" >> $GITHUB_STEP_SUMMARY echo "## Conflict Markers Found" >> $GITHUB_STEP_SUMMARY
+8 -2
View File
@@ -7,7 +7,7 @@
# INGROUP: mokocli.Release # INGROUP: mokocli.Release
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic # REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
# PATH: /.mokogitea/workflows/pre-release.yml # PATH: /.mokogitea/workflows/pre-release.yml
# VERSION: 05.02.00 # VERSION: 05.02.01
# BRIEF: Auto pre-release on push to dev/alpha/beta/rc branches # BRIEF: Auto pre-release on push to dev/alpha/beta/rc branches
name: "Universal: Pre-Release" name: "Universal: Pre-Release"
@@ -162,7 +162,13 @@ jobs:
git add -A git add -A
git diff --cached --quiet || { git diff --cached --quiet || {
git commit -m "chore(version): pre-release bump to ${VERSION} [skip ci]" git commit -m "chore(version): pre-release bump to ${VERSION} [skip ci]"
git push origin HEAD 2>&1 # Push the bump commit, but do NOT fail the release if the target branch
# is protected and the release identity is not on the push allowlist.
# The build proceeds from the in-tree bumped version regardless; if the
# push is rejected, the next run simply re-bumps from the same base.
if ! git push origin HEAD 2>&1; then
echo "::warning::Version-bump commit could not be pushed (protected branch?). Building from in-tree version ${VERSION} anyway."
fi
} }
# Auto-detect element via manifest_element.php # Auto-detect element via manifest_element.php
+2 -2
View File
@@ -127,7 +127,7 @@ class ClientDashboardCli extends CliFramework
$name = $repo['name'] ?? ''; $name = $repo['name'] ?? '';
if ( if (
!str_starts_with($name, 'client-waas-') !str_starts_with($name, 'client-waas-') && !str_starts_with($name, 'client-mokosuite-')
|| !empty($repo['archived']) || !empty($repo['archived'])
) { ) {
continue; continue;
@@ -135,7 +135,7 @@ class ClientDashboardCli extends CliFramework
$clients[] = [ $clients[] = [
'repo' => $repo['full_name'] ?? '', 'repo' => $repo['full_name'] ?? '',
'name' => str_replace('client-waas-', '', $name), 'name' => str_replace(['client-waas-', 'client-mokosuite-'], '', $name),
'description' => $repo['description'] ?? '', 'description' => $repo['description'] ?? '',
'updated' => $repo['updated_at'] ?? '', 'updated' => $repo['updated_at'] ?? '',
'url' => $repo['html_url'] ?? '', 'url' => $repo['html_url'] ?? '',
+1 -1
View File
@@ -79,7 +79,7 @@ class ClientInventoryCli extends CliFramework
foreach ($repos as $repo) { foreach ($repos as $repo) {
$repoName = $repo['name'] ?? ''; $repoName = $repo['name'] ?? '';
if (strpos($repoName, 'client-waas') === false) { if (strpos($repoName, 'client-waas') === false && strpos($repoName, 'client-mokosuite') === false) {
continue; continue;
} }
+2 -2
View File
@@ -87,7 +87,7 @@ class ClientProvisionCli extends CliFramework
return 1; return 1;
} }
$this->repoName = 'client-waas-' . $clientName; $this->repoName = 'client-mokosuite-' . $clientName;
$this->log('INFO', "=== Client Provisioning: {$clientName} ==="); $this->log('INFO', "=== Client Provisioning: {$clientName} ===");
$this->log('INFO', " Org: {$this->org}"); $this->log('INFO', " Org: {$this->org}");
@@ -156,7 +156,7 @@ class ClientProvisionCli extends CliFramework
$resp = $this->giteaApi( $resp = $this->giteaApi(
'POST', 'POST',
'/api/v1/repos/MokoConsulting/' '/api/v1/repos/MokoConsulting/'
. 'Template-Client-WaaS/generate', . 'Template-Client/generate',
$payload $payload
); );
+4 -4
View File
@@ -13,7 +13,7 @@
* REPO: https://git.mokoconsulting.tech/MokoConsulting/mokocli * REPO: https://git.mokoconsulting.tech/MokoConsulting/mokocli
* PATH: /cli/scaffold_client.php * PATH: /cli/scaffold_client.php
* VERSION: 09.43.00 * VERSION: 09.43.00
* BRIEF: Scaffold a new client-waas repo from Template-Client-WaaS with pre-configured settings * BRIEF: Scaffold a new client-waas repo from Template-Client with pre-configured settings
*/ */
declare(strict_types=1); declare(strict_types=1);
@@ -26,7 +26,7 @@ class ScaffoldClientCli extends CliFramework
{ {
protected function configure(): void protected function configure(): void
{ {
$this->setDescription('Scaffold a new client-waas repo from Template-Client-WaaS'); $this->setDescription('Scaffold a new client-waas repo from Template-Client');
$this->addArgument('--name', 'Client name', ''); $this->addArgument('--name', 'Client name', '');
$this->addArgument('--org', 'Gitea organization', ''); $this->addArgument('--org', 'Gitea organization', '');
$this->addArgument('--gitea-url', 'Gitea URL', 'https://git.mokoconsulting.tech'); $this->addArgument('--gitea-url', 'Gitea URL', 'https://git.mokoconsulting.tech');
@@ -47,7 +47,7 @@ class ScaffoldClientCli extends CliFramework
$this->log('INFO', "Scaffolding client repo: {$org}/{$repoName}"); $this->log('INFO', "Scaffolding client repo: {$org}/{$repoName}");
$this->log('INFO', "Gitea URL: {$giteaUrl}"); $this->log('INFO', "Gitea URL: {$giteaUrl}");
if ($this->dryRun) { if ($this->dryRun) {
$this->log('INFO', '[DRY RUN] Would create repo from template MokoConsulting/Template-Client-WaaS'); $this->log('INFO', '[DRY RUN] Would create repo from template MokoConsulting/Template-Client');
$this->log('INFO', "[DRY RUN] Repo: {$org}/{$repoName}"); $this->log('INFO', "[DRY RUN] Repo: {$org}/{$repoName}");
$this->printPostSetupInstructions($repoName, $giteaUrl, $org); $this->printPostSetupInstructions($repoName, $giteaUrl, $org);
return 0; return 0;
@@ -64,7 +64,7 @@ class ScaffoldClientCli extends CliFramework
]); ]);
$response = $this->apiRequest( $response = $this->apiRequest(
'POST', 'POST',
"/api/v1/repos/MokoConsulting/Template-Client-WaaS/generate", "/api/v1/repos/MokoConsulting/Template-Client/generate",
$giteaUrl, $giteaUrl,
$token, $token,
$createPayload $createPayload
+2 -2
View File
@@ -934,7 +934,7 @@ class RepositorySynchronizer
'mcp' => 'MokoConsulting/Template-Generic', 'mcp' => 'MokoConsulting/Template-Generic',
'dolibarr' => 'MokoConsulting/Template-Generic', 'dolibarr' => 'MokoConsulting/Template-Generic',
'crm-module' => 'MokoConsulting/Template-Generic', 'crm-module' => 'MokoConsulting/Template-Generic',
'client' => 'MokoConsulting/Template-Client-WaaS', 'client' => 'MokoConsulting/Template-Client',
]; ];
/** /**
@@ -951,7 +951,7 @@ class RepositorySynchronizer
*/ */
private const TEMPLATE_SYNC_TARGETS = [ private const TEMPLATE_SYNC_TARGETS = [
'MokoConsulting/Template-Joomla', 'MokoConsulting/Template-Joomla',
'MokoConsulting/Template-Client-WaaS', 'MokoConsulting/Template-Client',
]; ];
/** /**
+1 -1
View File
@@ -78,7 +78,7 @@ else
["MokoConsulting/ssh-mcp"]="ssh-mcp" ["MokoConsulting/ssh-mcp"]="ssh-mcp"
["MokoConsulting/backup-mcp"]="backup-mcp" ["MokoConsulting/backup-mcp"]="backup-mcp"
["MokoConsulting/joomla-api-mcp"]="joomla-api-mcp" ["MokoConsulting/joomla-api-mcp"]="joomla-api-mcp"
["MokoConsulting/Template-Client-WaaS"]="Template-Client-WaaS" ["MokoConsulting/Template-Client"]="Template-Client"
["ClarksvilleFurs/client-waas-clarksvillefurs"]="client-clarksvillefurs" ["ClarksvilleFurs/client-waas-clarksvillefurs"]="client-clarksvillefurs"
) )
fi fi