Public Access
chore(rebrand): brand caps MokoGit -> MokoGIT
Branding: the MokoGIT wordmark is caps-GIT. Corrects the display token from MokoGit to MokoGIT (case-sensitive; lowercase path form .mokogit untouched). Claude-Session: https://claude.ai/code/session_01DQEMmJPe61ya7HDfA6BHP8
This commit is contained in:
+3
-3
@@ -38,7 +38,7 @@ composer check # Run all checks
|
||||
| `lib/Enterprise/Plugins/` | 11 platform plugins (Joomla, Dolibarr, Node.js, Python, etc.) |
|
||||
| `deploy/` | SFTP deployment scripts (Joomla, Dolibarr, health checks) |
|
||||
| `templates/` | Universal templates, configs, governance schema |
|
||||
| `.mokogit/workflows/` | CI/CD workflows (MokoGit Actions) |
|
||||
| `.mokogit/workflows/` | CI/CD workflows (MokoGIT Actions) |
|
||||
| `bin/moko` | Unified CLI dispatcher — `php bin/moko <command>` |
|
||||
| `monitoring/sites.json` | Sites list for mcp_mokomonitor |
|
||||
|
||||
@@ -50,7 +50,7 @@ After adding a CLI tool, register it in `bin/moko` COMMAND_MAP.
|
||||
|
||||
### Platform Adapters
|
||||
|
||||
- `MokoGitAdapter` — git.mokoconsulting.tech (primary)
|
||||
- `MokoGITAdapter` — git.mokoconsulting.tech (primary)
|
||||
- `GitHubAdapter` — github.com mirrors
|
||||
|
||||
### Plugin System
|
||||
@@ -71,6 +71,6 @@ PHPStan runs with `--memory-limit=512M`. CI enforces PHPCS errors; PHPStan is `c
|
||||
- **Never commit** `.claude/`, `.mcp.json`, `TODO.md`, `*.min.css`/`*.min.js`
|
||||
- **Attribution**: `Authored-by: Moko Consulting`
|
||||
- **Workflow directory**: `.mokogit/` (not `.gitea/` or `.github/`)
|
||||
- **Wiki**: documentation lives in the MokoGit wiki, not `docs/` files
|
||||
- **Wiki**: documentation lives in the MokoGIT wiki, not `docs/` files
|
||||
- **New CLI tools**: extend `CliFramework`, not `CLIApp` (legacy)
|
||||
- **Standards**: [MokoCli](https://git.mokoconsulting.tech/MokoConsulting/mokocli/wiki/Home)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Release
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
||||
# PATH: /.mokogit/workflows/auto-bump.yml
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Release
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
||||
# PATH: /.mokogit/workflows/auto-release.yml
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Universal
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
||||
# PATH: /.mokogit/workflows/branch-cleanup.yml
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Cascade
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
||||
# PATH: /.mokogit/workflows/cascade-dev.yml
|
||||
@@ -91,7 +91,7 @@ jobs:
|
||||
"${NTFY_URL}/${NTFY_TOPIC}" || true
|
||||
}
|
||||
|
||||
# 3. wait for MokoGit to compute mergeability (conflict detection)
|
||||
# 3. wait for MokoGIT to compute mergeability (conflict detection)
|
||||
MERGEABLE=""
|
||||
for _ in 1 2 3 4 5 6; do
|
||||
MERGEABLE=$(curl -sf -H "$AUTH" "${API}/pulls/${PR}" | jqget mergeable)
|
||||
@@ -115,7 +115,7 @@ jobs:
|
||||
|
||||
# 4b. conflicts -> try to auto-resolve if they are ONLY VERSION-stamp lines.
|
||||
echo "PR not cleanly mergeable; checking whether conflicts are VERSION-stamp-only..."
|
||||
git config user.name "MokoGit Cascade"
|
||||
git config user.name "MokoGIT Cascade"
|
||||
git config user.email "actions@mokoconsulting.tech"
|
||||
git fetch --quiet origin main dev
|
||||
git checkout -B dev origin/dev
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.CI
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
||||
# PATH: /.mokogit/workflows/ci-generic.yml
|
||||
@@ -131,7 +131,7 @@ jobs:
|
||||
test:
|
||||
name: Tests
|
||||
runs-on: ubuntu-latest
|
||||
# Independent job (no `needs: lint`): the MokoGit Actions scheduler does not
|
||||
# Independent job (no `needs: lint`): the MokoGIT Actions scheduler does not
|
||||
# offer the dependent 2nd job of a needs-chain to runners, so it stalls in
|
||||
# "waiting" and is reaped by ABANDONED_JOB_TIMEOUT. Guard template repos
|
||||
# directly (same condition lint uses) instead of gating on lint's result.
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Universal
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
||||
# PATH: /.mokogit/workflows/ci-issue-reporter.yml
|
||||
# VERSION: 01.00.00
|
||||
# BRIEF: Reusable workflow — creates/updates a MokoGit issue when a CI gate fails.
|
||||
# BRIEF: Reusable workflow — creates/updates a MokoGIT issue when a CI gate fails.
|
||||
# Clones MokoCLI and runs cli/ci_issue_reporter.sh.
|
||||
|
||||
name: "Universal: CI Issue Reporter"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Maintenance
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/mokocli
|
||||
# PATH: /.mokogit/workflows/cleanup.yml
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Security
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/mokocli
|
||||
# PATH: /.mokogit/workflows/gitleaks.yml
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Automation
|
||||
# VERSION: 01.00.00
|
||||
# BRIEF: Auto-create feature branch when an issue is opened
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Notifications
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/mokocli
|
||||
# PATH: /.mokogit/workflows/notify.yml
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.CI
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
||||
# PATH: /.mokogit/workflows/pr-check.yml
|
||||
@@ -224,7 +224,7 @@ jobs:
|
||||
- name: Detect platform
|
||||
id: platform
|
||||
run: |
|
||||
# Platform comes from the MokoGit metadata API (public GET).
|
||||
# Platform comes from the MokoGIT metadata API (public GET).
|
||||
API="${GITHUB_SERVER_URL:-https://git.mokoconsulting.tech}/api/v1/repos/${GITHUB_REPOSITORY}/metadata"
|
||||
PLATFORM="$(curl -sf "$API" 2>/dev/null | python3 -c "import sys, json; print(json.load(sys.stdin).get('platform') or '')" 2>/dev/null || true)"
|
||||
[ -z "$PLATFORM" ] && PLATFORM="generic"
|
||||
@@ -361,10 +361,10 @@ jobs:
|
||||
for ELEMENT in name version description; do
|
||||
grep -q "<${ELEMENT}>" "$MANIFEST" || { echo "::error::Missing <${ELEMENT}> in manifest"; exit 1; }
|
||||
done
|
||||
# Block legacy raw/branch update server URLs on MokoGit
|
||||
# Block legacy raw/branch update server URLs on MokoGIT
|
||||
RAW_URLS=$(grep -n 'raw/branch' "$MANIFEST" | grep -i 'mokoconsulting\|mokogit\|git\.mokoconsulting\.tech' || true)
|
||||
if [ -n "$RAW_URLS" ]; then
|
||||
echo "::error::Manifest contains legacy raw/branch update server URL on MokoGit. Use the MokoGit Pages URL instead (e.g. /{REPO}/updates.xml not /{REPO}/raw/branch/main/updates.xml)"
|
||||
echo "::error::Manifest contains legacy raw/branch update server URL on MokoGIT. Use the MokoGIT Pages URL instead (e.g. /{REPO}/updates.xml not /{REPO}/raw/branch/main/updates.xml)"
|
||||
echo "$RAW_URLS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Release
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
||||
# PATH: /.mokogit/workflows/pre-release.yml
|
||||
@@ -251,7 +251,7 @@ jobs:
|
||||
--token "${{ secrets.MOKOGIT_TOKEN }}" --api-base "$API_BASE" \
|
||||
--repo "${GIT_REPO}" --output /tmp || true
|
||||
|
||||
# updates.xml is generated dynamically by MokoGit license server
|
||||
# updates.xml is generated dynamically by MokoGIT license server
|
||||
# No need to build, commit, or sync updates.xml from workflows
|
||||
|
||||
- name: "Delete lesser pre-release channels (cascade)"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Universal
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
||||
# PATH: /.mokogit/workflows/rc-revert.yml
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow
|
||||
# DEFGROUP: MokoGIT.Workflow
|
||||
# INGROUP: MokoCLI.Validation
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
||||
# PATH: /.mokogit/workflows/repo-health.yml
|
||||
@@ -605,7 +605,7 @@ jobs:
|
||||
printf '%s\n' '| Domain | Status | Notes |'
|
||||
printf '%s\n' '|---|---|---|'
|
||||
printf '%s\n' '| Access control | OK | Admin-only execution gate |'
|
||||
printf '%s\n' '| Release policy | N/A | Releases handled by MokoGit |'
|
||||
printf '%s\n' '| Release policy | N/A | Releases handled by MokoGIT |'
|
||||
printf '%s\n' '| Scripts governance | OK | Directory policy and advisory reporting |'
|
||||
printf '%s\n' '| Repo required artifacts | OK | Required, optional, disallowed enforcement |'
|
||||
printf '%s\n' '| Repo content heuristics | OK | Brand, license, changelog structure |'
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# FILE INFORMATION
|
||||
# DEFGROUP: MokoGit.Workflow.Template
|
||||
# DEFGROUP: MokoGIT.Workflow.Template
|
||||
# INGROUP: MokoCLI.CI
|
||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Joomla
|
||||
# PATH: /.mokogit/workflows/version-set.yml
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ feature/* ──PR──> dev ──draft PR──> (renamed to rc) ──merge
|
||||
7. **Merging to main** triggers the stable release pipeline:
|
||||
- Minor version bump (e.g., `02.09.xx` → `02.10.00`)
|
||||
- Stability suffix stripped (clean version)
|
||||
- MokoGit release created with ZIP/tar.gz packages
|
||||
- MokoGIT release created with ZIP/tar.gz packages
|
||||
- `updates.xml` updated (Joomla extensions)
|
||||
- `dev` branch recreated from `main`
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ BRIEF: Project overview and documentation
|
||||
|
||||
PHP implementation of mokocli — enterprise standards, automation framework, workflow templates, and bulk sync tooling.
|
||||
|
||||
> **Primary platform**: [MokoGit — git.mokoconsulting.tech](https://git.mokoconsulting.tech/MokoConsulting/MokoCli-API)
|
||||
> **Primary platform**: [MokoGIT — git.mokoconsulting.tech](https://git.mokoconsulting.tech/MokoConsulting/MokoCli-API)
|
||||
> **Backup mirror**: [GitHub](https://github.com/MokoConsulting/MokoCli-API) *(read-only mirror)*
|
||||
|
||||
## What Lives Here
|
||||
@@ -25,7 +25,7 @@ PHP implementation of mokocli — enterprise standards, automation framework, wo
|
||||
|-----------|---------|
|
||||
| `lib/Enterprise/` | 38 PHP enterprise library classes (platform adapters, sync, validation, plugins) |
|
||||
| `cli/` | CLI scripts (archive, create, release, sync rulesets, version management) |
|
||||
| `automation/` | Bulk sync, push files, repo cleanup, MokoGit migration |
|
||||
| `automation/` | Bulk sync, push files, repo cleanup, MokoGIT migration |
|
||||
| `validate/` | 18 validation scripts (health, structure, secrets, syntax, drift) |
|
||||
| `templates/` | **Workflow templates** and config templates synced to governed repos |
|
||||
| `definitions/` | Repository structure definitions (`.tf` format) |
|
||||
@@ -42,7 +42,7 @@ composer require mokoconsulting-tech/enterprise
|
||||
|
||||
### Composer Registry
|
||||
|
||||
This package is served from MokoGit package registry. Add this to your `composer.json`:
|
||||
This package is served from MokoGIT package registry. Add this to your `composer.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -73,10 +73,10 @@ vendor/bin/moko inventory -- --path .
|
||||
| Variable | Purpose |
|
||||
|----------|---------|
|
||||
| `GIT_PLATFORM` | `git` (default) or `github` |
|
||||
| `GA_TOKEN` | MokoGit API / MokoGit Actions token |
|
||||
| `GA_TOKEN` | MokoGIT API / MokoGIT Actions token |
|
||||
| `GH_TOKEN` | GitHub API token (for mirror sync) |
|
||||
| `GIT_URL` | MokoGit instance URL (default: `https://git.mokoconsulting.tech`) |
|
||||
| `GIT_ORG` | MokoGit organization (default: `MokoConsulting`) |
|
||||
| `GIT_URL` | MokoGIT instance URL (default: `https://git.mokoconsulting.tech`) |
|
||||
| `GIT_ORG` | MokoGIT organization (default: `MokoConsulting`) |
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
* REPO: https://git.mokoconsulting.tech/MokoConsulting/mokocli
|
||||
* PATH: /cli/joomla_metadata_validate.php
|
||||
* VERSION: 09.43.00
|
||||
* BRIEF: Validate MokoGit repo metadata against Joomla extension manifest XML
|
||||
* BRIEF: Validate MokoGIT repo metadata against Joomla extension manifest XML
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
@@ -22,7 +22,7 @@ use MokoCli\CliFramework;
|
||||
|
||||
class JoomlaMetadataValidateCli extends CliFramework
|
||||
{
|
||||
/** Joomla element prefix map — must match MokoGit's cleanJoomlaElement() */
|
||||
/** Joomla element prefix map — must match MokoGIT's cleanJoomlaElement() */
|
||||
private const JOOMLA_PREFIX = [
|
||||
'package' => 'pkg_',
|
||||
'component' => 'com_',
|
||||
@@ -34,7 +34,7 @@ class JoomlaMetadataValidateCli extends CliFramework
|
||||
|
||||
protected function configure(): void
|
||||
{
|
||||
$this->setDescription('Validate MokoGit repo metadata against Joomla extension manifest XML');
|
||||
$this->setDescription('Validate MokoGIT repo metadata against Joomla extension manifest XML');
|
||||
$this->addArgument('--path', 'Repo root path (default: current directory)', '.');
|
||||
$this->addArgument('--token', 'Git API token (or GIT_TOKEN env)', '');
|
||||
$this->addArgument('--org', 'Git org', 'MokoConsulting');
|
||||
@@ -73,11 +73,11 @@ class JoomlaMetadataValidateCli extends CliFramework
|
||||
|
||||
$this->log('INFO', "Joomla manifest: {$joomlaXml['path']}");
|
||||
|
||||
// ── Step 2: Load MokoGit metadata ─────────────────────────
|
||||
// ── Step 2: Load MokoGIT metadata ─────────────────────────
|
||||
$metadata = $this->loadMetadata($path, $org, $repoName, $token, $apiBase);
|
||||
|
||||
if ($metadata === null) {
|
||||
$this->log('ERROR', 'Could not load MokoGit metadata');
|
||||
$this->log('ERROR', 'Could not load MokoGIT metadata');
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -202,7 +202,7 @@ class JoomlaMetadataValidateCli extends CliFramework
|
||||
|
||||
if ($httpCode === 404) {
|
||||
$this->log('ERROR', "API endpoint not found: {$url}");
|
||||
$this->log('ERROR', 'Server may need MokoGit-Fork >= #650 (metadata endpoint rename)');
|
||||
$this->log('ERROR', 'Server may need MokoGIT-Fork >= #650 (metadata endpoint rename)');
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -328,7 +328,7 @@ class JoomlaMetadataValidateCli extends CliFramework
|
||||
// =================================================================
|
||||
|
||||
/**
|
||||
* Normalize extension_type — map MokoGit types to Joomla types.
|
||||
* Normalize extension_type — map MokoGIT types to Joomla types.
|
||||
*/
|
||||
private function normalizeExtensionType(string $type): string
|
||||
{
|
||||
@@ -340,7 +340,7 @@ class JoomlaMetadataValidateCli extends CliFramework
|
||||
|
||||
/**
|
||||
* Derive the Joomla element name from type + name.
|
||||
* Replicates MokoGit's cleanJoomlaElement() + prefix logic.
|
||||
* Replicates MokoGIT's cleanJoomlaElement() + prefix logic.
|
||||
*/
|
||||
private function deriveElement(string $type, string $name): string
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* INGROUP: mokocli
|
||||
* REPO: https://git.mokoconsulting.tech/MokoConsulting/mokocli
|
||||
* PATH: /cli/license_manage.php
|
||||
* BRIEF: Manage license packages and keys via MokoGit licensing API
|
||||
* BRIEF: Manage license packages and keys via MokoGIT licensing API
|
||||
*
|
||||
* Usage:
|
||||
* php bin/moko license:list --org MokoConsulting
|
||||
@@ -38,7 +38,7 @@ class LicenseManage extends CliFramework
|
||||
|
||||
protected function configure(): void
|
||||
{
|
||||
$this->setDescription('Manage license packages and keys via MokoGit licensing API');
|
||||
$this->setDescription('Manage license packages and keys via MokoGIT licensing API');
|
||||
$this->addArgument('--org', 'Organization name', '');
|
||||
$this->addArgument('--api-base', 'Git API base URL', '');
|
||||
$this->addArgument('--token', 'API token (or set GH_TOKEN env)', '');
|
||||
@@ -657,7 +657,7 @@ HELP;
|
||||
|
||||
if ($httpCode === 404) {
|
||||
$this->log("API endpoint not found: {$path}", 'ERROR');
|
||||
$this->log('The licensing API may not be deployed yet. Check MokoGit version.', 'WARN');
|
||||
$this->log('The licensing API may not be deployed yet. Check MokoGIT version.', 'WARN');
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@ if (is_file($manifest)) {
|
||||
if ($server === '') {
|
||||
$fail('<updateservers><server> is missing');
|
||||
} elseif (strpos($server, '/raw/branch/') !== false) {
|
||||
$fail('update server uses a legacy raw/branch URL; use the dynamic MokoGit feed');
|
||||
$fail('update server uses a legacy raw/branch URL; use the dynamic MokoGIT feed');
|
||||
} else {
|
||||
$ok("update server: $server");
|
||||
}
|
||||
|
||||
@@ -594,7 +594,7 @@ class WorkflowSyncCli extends CliFramework
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a repo's platform from the MokoGit metadata API.
|
||||
* Read a repo's platform from the MokoGIT metadata API.
|
||||
* Returns 'generic' if metadata is missing or has no platform field.
|
||||
* (Replaces the retired .mokogit/manifest.xml lookup — platform now lives
|
||||
* in the repo Metadata endpoint: GET /api/v1/repos/{owner}/{repo}/metadata.)
|
||||
|
||||
@@ -61,7 +61,7 @@ Shared library code
|
||||
- GitHub client
|
||||
|
||||
### [Wiki](https://git.mokoconsulting.tech/MokoConsulting/mokocli/wiki)
|
||||
All documentation lives in the MokoGit wiki.
|
||||
All documentation lives in the MokoGIT wiki.
|
||||
|
||||
### [Tests](tests/)
|
||||
Test scripts
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace MokoCli;
|
||||
* Git Platform Adapter Interface
|
||||
*
|
||||
* Defines all platform operations required by mokocli automation.
|
||||
* Implementations exist for GitHub (GitHubAdapter) and Git (MokoGitAdapter),
|
||||
* Implementations exist for GitHub (GitHubAdapter) and Git (MokoGITAdapter),
|
||||
* allowing scripts to work against either platform transparently.
|
||||
*
|
||||
* @package MokoCLI\Enterprise
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* DEFGROUP: MokoCLI.Enterprise.Platform
|
||||
* INGROUP: MokoCLI.Enterprise
|
||||
* REPO: https://git.mokoconsulting.tech/MokoConsulting/mokocli
|
||||
* PATH: /lib/Enterprise/MokoGitAdapter.php
|
||||
* PATH: /lib/Enterprise/MokoGITAdapter.php
|
||||
* BRIEF: Git implementation of GitPlatformAdapter
|
||||
*/
|
||||
|
||||
@@ -37,7 +37,7 @@ use RuntimeException;
|
||||
* @since 04.06.10
|
||||
* @see GitPlatformAdapter
|
||||
*/
|
||||
class MokoGitAdapter implements GitPlatformAdapter
|
||||
class MokoGITAdapter implements GitPlatformAdapter
|
||||
{
|
||||
/** @var ApiClient HTTP client for Git API calls. */
|
||||
private ApiClient $apiClient;
|
||||
|
||||
@@ -54,7 +54,7 @@ class PlatformAdapterFactory
|
||||
|
||||
return match ($platform) {
|
||||
'github' => self::createGitHubAdapter($config),
|
||||
'git' => self::createMokoGitAdapter($config),
|
||||
'git' => self::createMokoGITAdapter($config),
|
||||
default => throw new RuntimeException("Unsupported git platform: {$platform}. Use 'github' or 'git'."),
|
||||
};
|
||||
}
|
||||
@@ -87,13 +87,13 @@ class PlatformAdapterFactory
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a MokoGitAdapter with configured ApiClient.
|
||||
* Create a MokoGITAdapter with configured ApiClient.
|
||||
*
|
||||
* @param Config $config Configuration instance
|
||||
* @return MokoGitAdapter Configured Git adapter
|
||||
* @return MokoGITAdapter Configured Git adapter
|
||||
* @throws RuntimeException If Git token is not available
|
||||
*/
|
||||
private static function createMokoGitAdapter(Config $config): MokoGitAdapter
|
||||
private static function createMokoGITAdapter(Config $config): MokoGITAdapter
|
||||
{
|
||||
$token = $config->getString('git.token', '');
|
||||
if (empty($token)) {
|
||||
@@ -113,21 +113,21 @@ class PlatformAdapterFactory
|
||||
authScheme: 'token'
|
||||
);
|
||||
|
||||
return new MokoGitAdapter($apiClient, $apiBaseUrl);
|
||||
return new MokoGITAdapter($apiClient, $apiBaseUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create adapters for both platforms (useful during migration).
|
||||
*
|
||||
* @param Config $config Configuration instance
|
||||
* @return array{github: GitHubAdapter, git: MokoGitAdapter} Both adapters
|
||||
* @return array{github: GitHubAdapter, git: MokoGITAdapter} Both adapters
|
||||
* @throws RuntimeException If either token is missing
|
||||
*/
|
||||
public static function createBoth(Config $config): array
|
||||
{
|
||||
return [
|
||||
'github' => self::createGitHubAdapter($config),
|
||||
'git' => self::createMokoGitAdapter($config),
|
||||
'git' => self::createMokoGITAdapter($config),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ class RepositorySynchronizer
|
||||
?CheckpointManager $checkpoints = null,
|
||||
?GitPlatformAdapter $adapter = null
|
||||
) {
|
||||
$this->adapter = $adapter ?? new MokoGitAdapter($apiClient);
|
||||
$this->adapter = $adapter ?? new MokoGITAdapter($apiClient);
|
||||
$this->logger = $logger;
|
||||
$this->metrics = $metrics;
|
||||
$this->checkpoints = $checkpoints ?? new CheckpointManager('.checkpoints');
|
||||
|
||||
@@ -84,7 +84,7 @@ class SourceResolver
|
||||
}
|
||||
|
||||
/**
|
||||
* Query the MokoGit Manifest API for the entry_point field.
|
||||
* Query the MokoGIT Manifest API for the entry_point field.
|
||||
*
|
||||
* Only attempts the call when GA_TOKEN or GIT_TOKEN is set. Results are
|
||||
* cached per org/repo for the lifetime of the process.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# mcp_mokobackup
|
||||
|
||||
MCP server for database and file backups across Dolibarr, Joomla/Akeeba, MokoGit, and file-based environments.
|
||||
MCP server for database and file backups across Dolibarr, Joomla/Akeeba, MokoGIT, and file-based environments.
|
||||
|
||||
## Quick Reference
|
||||
|
||||
@@ -45,5 +45,5 @@ Default config at `~/.mcp_mokobackup.json`. Client repos override via `BACKUP_MC
|
||||
- **Never commit** `.claude/`, `.mcp.json`, `TODO.md`, `*.min.css`/`*.min.js`
|
||||
- **Attribution**: `Authored-by: Moko Consulting`
|
||||
- **Workflow directory**: `.mokogit/` (not `.gitea/` or `.github/`)
|
||||
- **Wiki**: documentation lives in the MokoGit wiki, not `docs/` files
|
||||
- **Wiki**: documentation lives in the MokoGIT wiki, not `docs/` files
|
||||
- **Standards**: [MokoCli](https://git.mokoconsulting.tech/MokoConsulting/mokocli/wiki/Home)
|
||||
|
||||
@@ -15,7 +15,7 @@ Model Context Protocol server for database dumps, file backups, and Akeeba Backu
|
||||
| **Language** | Node.js |
|
||||
| **Tools** | 11 tools (6 SSH-based + 5 Akeeba API) |
|
||||
| **License** | GPL-3.0-or-later |
|
||||
| **Platform** | [MokoGit](https://git.mokoconsulting.tech/MokoConsulting/backup-mcp) (primary) |
|
||||
| **Platform** | [MokoGIT](https://git.mokoconsulting.tech/MokoConsulting/backup-mcp) (primary) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -40,5 +40,5 @@ src/
|
||||
- **Never commit** `.claude/`, `.mcp.json`, `TODO.md`, `*.min.css`/`*.min.js`
|
||||
- **Attribution**: `Authored-by: Moko Consulting`
|
||||
- **Workflow directory**: `.mokogit/` (not `.gitea/` or `.github/`)
|
||||
- **Wiki**: documentation lives in the MokoGit wiki, not `docs/` files
|
||||
- **Wiki**: documentation lives in the MokoGIT wiki, not `docs/` files
|
||||
- **Standards**: [MokoCli](https://git.mokoconsulting.tech/MokoConsulting/mokocli/wiki/Home)
|
||||
|
||||
@@ -53,7 +53,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- SQL filter builder (`buildSqlFilter`, `searchFilter`) for safe query construction
|
||||
- Full documentation: README, INSTALLATION, ARCHITECTURE, API reference
|
||||
- MokoCli-compliant project structure
|
||||
- 12 MokoGit Actions CI/CD workflows
|
||||
- 12 MokoGIT Actions CI/CD workflows
|
||||
|
||||
## Revision History
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ This project adheres to the Contributor Covenant Code of Conduct. By participati
|
||||
|
||||
### Reporting Bugs
|
||||
|
||||
- Use the MokoGit issue tracker
|
||||
- Use the MokoGIT issue tracker
|
||||
- Describe the bug clearly with steps to reproduce
|
||||
- Include the Dolibarr version you're connecting to
|
||||
- Include relevant logs or error messages
|
||||
@@ -143,7 +143,7 @@ Every repo maintains 5 standard release channel tags:
|
||||
|
||||
### CI/CD
|
||||
|
||||
- MokoGit Actions runs all CI workflows
|
||||
- MokoGIT Actions runs all CI workflows
|
||||
- Workflows live in `.gitea/workflows/`
|
||||
|
||||
### Secrets
|
||||
|
||||
@@ -8,7 +8,7 @@ MCP server for Dolibarr ERP/CRM REST API operations
|
||||
|---|---|
|
||||
| **Language** | TypeScript |
|
||||
| **License** | GPL-3.0-or-later |
|
||||
| **Platform** | [MokoGit](https://git.mokoconsulting.tech/MokoConsulting/dolibarr-api-mcp) |
|
||||
| **Platform** | [MokoGIT](https://git.mokoconsulting.tech/MokoConsulting/dolibarr-api-mcp) |
|
||||
| **Node.js** | >= 20.0.0 |
|
||||
| **MCP SDK** | @modelcontextprotocol/sdk ^1.12.1 |
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ Only the current major version receives security updates.
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Report security vulnerabilities via MokoGit issue (preferred):
|
||||
Report security vulnerabilities via MokoGIT issue (preferred):
|
||||
https://git.mokoconsulting.tech/MokoConsulting/dolibarr-api-mcp/issues/new?template=security.yaml
|
||||
|
||||
Or email: hello@mokoconsulting.tech
|
||||
|
||||
@@ -38,5 +38,5 @@ src/
|
||||
- **Never commit** `.claude/`, `.mcp.json`, `TODO.md`, `*.min.css`/`*.min.js`
|
||||
- **Attribution**: `Authored-by: Moko Consulting`
|
||||
- **Workflow directory**: `.mokogit/` (not `.gitea/` or `.github/`)
|
||||
- **Wiki**: documentation lives in the MokoGit wiki, not `docs/` files
|
||||
- **Wiki**: documentation lives in the MokoGIT wiki, not `docs/` files
|
||||
- **Standards**: [MokoCli](https://git.mokoconsulting.tech/MokoConsulting/mokocli/wiki/Home)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: new-client
|
||||
description: Scaffold a new MokoSuite client — MokoGit org, theme repo, MCP config, wiki, SSH key
|
||||
description: Scaffold a new MokoSuite client — MokoGIT org, theme repo, MCP config, wiki, SSH key
|
||||
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
|
||||
---
|
||||
|
||||
@@ -22,7 +22,7 @@ Ask the user for:
|
||||
|
||||
Then execute these steps:
|
||||
|
||||
### 1. Create MokoGit Organization
|
||||
### 1. Create MokoGIT Organization
|
||||
- Use `mcp_mokogit_api` tool `git_org_create`
|
||||
- Org name: PascalCase of slug (e.g. "AcmeCorp")
|
||||
- Description: "MokoSuite client: {Client name}"
|
||||
@@ -44,7 +44,7 @@ Then execute these steps:
|
||||
|
||||
### 4. Create SSH Key
|
||||
- Generate key pair at `C:/Users/jmill/OneDrive/Documents/Keys/repos/client-{slug}`
|
||||
- Add public key as deploy key on the MokoGit repo
|
||||
- Add public key as deploy key on the MokoGIT repo
|
||||
|
||||
### 5. Setup GitHub Mirror
|
||||
- Use `git_repo_mirror_setup_github_backup_full` to create GitHub backup mirror
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: release
|
||||
description: Create a release — build ZIP, tag, update updates.xml, create MokoGit release
|
||||
description: Create a release — build ZIP, tag, update updates.xml, create MokoGIT release
|
||||
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
|
||||
---
|
||||
|
||||
@@ -42,12 +42,12 @@ Create a release for the current repository.
|
||||
- Create annotated tag: `git tag -a vX.Y.Z -m "Release X.Y.Z"`
|
||||
- Push commits and tags: `git push origin && git push origin --tags`
|
||||
|
||||
6. **Create MokoGit release:**
|
||||
6. **Create MokoGIT release:**
|
||||
- Use `mcp_mokogit_api` tool `git_release_create` with the tag
|
||||
- Upload the built ZIP as a release asset via `git_release_upload_asset`
|
||||
|
||||
7. **Joomla-specific: update updates.xml:**
|
||||
- Prepend new `<update>` block with version, download URL pointing to MokoGit release asset
|
||||
- Prepend new `<update>` block with version, download URL pointing to MokoGIT release asset
|
||||
- ZIP filename follows Joomla convention from feedback_joomla_release_naming memory
|
||||
- Commit and push the updates.xml change
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: server-health
|
||||
description: Run health checks across all MokoGit infrastructure servers
|
||||
description: Run health checks across all MokoGIT infrastructure servers
|
||||
allowed-tools: Bash, Read, Glob, Grep
|
||||
---
|
||||
|
||||
@@ -17,10 +17,10 @@ Run health checks across all infrastructure servers using SSH.
|
||||
Use `mcp_mokossh` MCP tools to run health checks on each server:
|
||||
|
||||
### 1. GIT Server (git.mokoconsulting.tech)
|
||||
- `systemctl status git` — is MokoGit running?
|
||||
- `systemctl status git` — is MokoGIT running?
|
||||
- `systemctl status act_runner` — is the Actions runner running?
|
||||
- `df -h /` — disk space
|
||||
- `du -sh /var/lib/git/repositories/ /var/lib/git/data/ /var/lib/git/log/` — MokoGit storage breakdown
|
||||
- `du -sh /var/lib/git/repositories/ /var/lib/git/data/ /var/lib/git/log/` — MokoGIT storage breakdown
|
||||
- `uptime` — load average
|
||||
- `free -h` — memory usage
|
||||
- `certbot certificates 2>/dev/null | grep -E "Expiry|Domains"` — SSL cert expiry
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
---
|
||||
name: mokogit
|
||||
description: "MokoGit server infrastructure, SSH commands, deployment, backup, and administration. Use when the user mentions: git, mokogit, git server, deploy, deployment, restart git, ssh into, server status, backup git, restore, mirror, github backup, update server, git actions, CI/CD, runner, mokosuite server, crm server, server health, disk space, systemctl, nginx, certbot, fail2ban, firewall, server logs, git logs, or any remote server operation."
|
||||
when_to_use: "Auto-trigger when discussing: server management, SSH operations, MokoGit administration, deployments, backups, mirrors, CI runners, or any infrastructure task involving git.mokoconsulting.tech or the MokoGit instance."
|
||||
description: "MokoGIT server infrastructure, SSH commands, deployment, backup, and administration. Use when the user mentions: git, mokogit, git server, deploy, deployment, restart git, ssh into, server status, backup git, restore, mirror, github backup, update server, git actions, CI/CD, runner, mokosuite server, crm server, server health, disk space, systemctl, nginx, certbot, fail2ban, firewall, server logs, git logs, or any remote server operation."
|
||||
when_to_use: "Auto-trigger when discussing: server management, SSH operations, MokoGIT administration, deployments, backups, mirrors, CI runners, or any infrastructure task involving git.mokoconsulting.tech or the MokoGIT instance."
|
||||
---
|
||||
|
||||
# MokoGit Infrastructure Reference
|
||||
# MokoGIT Infrastructure Reference
|
||||
|
||||
You are helping with MokoGit server infrastructure. Use the `mcp_mokossh` MCP tools for SSH commands and `mcp_mokogit_api` tools for MokoGit API operations.
|
||||
You are helping with MokoGIT server infrastructure. Use the `mcp_mokossh` MCP tools for SSH commands and `mcp_mokogit_api` tools for MokoGIT API operations.
|
||||
|
||||
## Server Map
|
||||
|
||||
| Name | Host | User | Port | Purpose |
|
||||
|---|---|---|---|---|
|
||||
| GIT | git.mokoconsulting.tech | mokoconsulting | 2918 | MokoGit instance (MokoGit fork) |
|
||||
| GIT | git.mokoconsulting.tech | mokoconsulting | 2918 | MokoGIT instance (MokoGIT fork) |
|
||||
| WAAS_DEV | mokosuite.dev.mokoconsulting.tech | mokoconsulting_dev | 22 | MokoSuite dev (Joomla + Dolibarr) |
|
||||
| WAAS_DEMO | mokosuite.demo.mokoconsulting.tech | mokoconsulting_demo | 22 | MokoSuite demo |
|
||||
| WAAS_LIVE | mokoconsulting.tech | mokoconsulting | 22 | MokoSuite production |
|
||||
@@ -23,7 +23,7 @@ SSH key: `jmiller_private.openssh` (all MCP connections)
|
||||
|
||||
## Common SSH Commands
|
||||
|
||||
### MokoGit Server (GIT)
|
||||
### MokoGIT Server (GIT)
|
||||
|
||||
```bash
|
||||
# Service management
|
||||
@@ -35,12 +35,12 @@ sudo systemctl stop git
|
||||
sudo journalctl -u git -f # Follow live logs
|
||||
sudo journalctl -u git --since "1 hour ago" # Recent logs
|
||||
|
||||
# MokoGit CLI (run as git user)
|
||||
# MokoGIT CLI (run as git user)
|
||||
sudo -u git /usr/local/bin/git admin user list
|
||||
sudo -u git /usr/local/bin/git admin auth list
|
||||
sudo -u git /usr/local/bin/git doctor check
|
||||
|
||||
# MokoGit Actions runner
|
||||
# MokoGIT Actions runner
|
||||
sudo systemctl status act_runner
|
||||
sudo systemctl restart act_runner
|
||||
sudo journalctl -u act_runner -f
|
||||
@@ -125,7 +125,7 @@ ls htdocs/custom/
|
||||
mysql -u root dolibarr -e "SELECT name, value FROM llx_const WHERE name LIKE '%VERSION%';"
|
||||
```
|
||||
|
||||
## MokoGit API Operations
|
||||
## MokoGIT API Operations
|
||||
|
||||
Use `mcp_mokogit_api` MCP tools for API operations:
|
||||
|
||||
@@ -144,7 +144,7 @@ Use `mcp_mokobackup` MCP tools:
|
||||
|
||||
| Target | Type | What it backs up |
|
||||
|---|---|---|
|
||||
| git-db | mysql | MokoGit MySQL database |
|
||||
| git-db | mysql | MokoGIT MySQL database |
|
||||
| git-files | files | `/var/lib/git/` (repos, data, avatars) |
|
||||
| mokosuite-dev | akeeba | Joomla dev site via Akeeba API |
|
||||
| mokosuite-demo | akeeba | Joomla demo site |
|
||||
@@ -154,7 +154,7 @@ Use `mcp_mokobackup` MCP tools:
|
||||
|
||||
## Deployment
|
||||
|
||||
Deployments are handled by **MokoGit Actions workflows** (not manual SSH):
|
||||
Deployments are handled by **MokoGIT Actions workflows** (not manual SSH):
|
||||
- Push to `dev` → CI runs (lint, build, validate)
|
||||
- Merge PR to `main` → release workflow builds ZIP, creates release, deploys via SFTP
|
||||
- Client sites: `client-release.yml` workflow handles theme package deployment
|
||||
@@ -171,12 +171,12 @@ All repos mirror to GitHub (mokoconsulting-tech org) as backup:
|
||||
|
||||
| Path | Contents |
|
||||
|---|---|
|
||||
| `/usr/local/bin/git` | MokoGit binary |
|
||||
| `/usr/local/bin/git` | MokoGIT binary |
|
||||
| `/etc/git/app.ini` | Main configuration |
|
||||
| `/var/lib/git/` | All MokoGit data |
|
||||
| `/var/lib/git/` | All MokoGIT data |
|
||||
| `/var/lib/git/repositories/` | Git bare repos |
|
||||
| `/var/lib/git/data/` | Attachments, avatars, LFS |
|
||||
| `/var/lib/git/log/` | MokoGit logs |
|
||||
| `/var/lib/git/log/` | MokoGIT logs |
|
||||
| `/var/lib/git/custom/` | Custom templates, public files |
|
||||
| `/etc/nginx/sites-enabled/git.conf` | Nginx reverse proxy config |
|
||||
| `/home/git/.act_runner/` | Actions runner config |
|
||||
@@ -184,7 +184,7 @@ All repos mirror to GitHub (mokoconsulting-tech org) as backup:
|
||||
## Important Notes
|
||||
|
||||
- Port 2918 on GIT server is **shell SSH** (not just git protocol) — full command execution
|
||||
- MokoGit repo names on server use **hyphens** (e.g. `mcp-mokobackup`), local dirs use **underscores**
|
||||
- MokoGIT repo names on server use **hyphens** (e.g. `mcp-mokobackup`), local dirs use **underscores**
|
||||
- `mokocli` CLI tools handle CI checks — don't inline bash in workflows
|
||||
- All infra docs live in **mokogit-private wiki**, not public repos
|
||||
- Two master SSH keys (jmiller + moko) on all servers
|
||||
|
||||
@@ -40,5 +40,5 @@ src/
|
||||
- **Never commit** `.claude/`, `.mcp.json`, `TODO.md`, `*.min.css`/`*.min.js`
|
||||
- **Attribution**: `Authored-by: Moko Consulting`
|
||||
- **Workflow directory**: `.mokogit/` (not `.gitea/` or `.github/`)
|
||||
- **Wiki**: documentation lives in the MokoGit wiki, not `docs/` files
|
||||
- **Wiki**: documentation lives in the MokoGIT wiki, not `docs/` files
|
||||
- **Standards**: [MokoCli](https://git.mokoconsulting.tech/MokoConsulting/mokocli/wiki/Home)
|
||||
|
||||
@@ -15,7 +15,7 @@ MCP server for infrastructure monitoring -- server health, Grafana dashboards, a
|
||||
| **Language** | Node.js |
|
||||
| **License** | GPL-3.0-or-later |
|
||||
| **Config** | `~/.monitor-mcp.json` |
|
||||
| **Platform** | [MokoGit](https://git.mokoconsulting.tech/MokoConsulting/monitor-mcp) (primary) |
|
||||
| **Platform** | [MokoGIT](https://git.mokoconsulting.tech/MokoConsulting/monitor-mcp) (primary) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -40,5 +40,5 @@ src/
|
||||
- **Never commit** `.claude/`, `.mcp.json`, `TODO.md`, `*.min.css`/`*.min.js`
|
||||
- **Attribution**: `Authored-by: Moko Consulting`
|
||||
- **Workflow directory**: `.mokogit/` (not `.gitea/` or `.github/`)
|
||||
- **Wiki**: documentation lives in the MokoGit wiki, not `docs/` files
|
||||
- **Wiki**: documentation lives in the MokoGIT wiki, not `docs/` files
|
||||
- **Standards**: [MokoCli](https://git.mokoconsulting.tech/MokoConsulting/mokocli/wiki/Home)
|
||||
|
||||
@@ -16,7 +16,7 @@ Model Context Protocol server for SSH remote server management -- execute comman
|
||||
| **Tools** | 37 tools across 6 groups |
|
||||
| **License** | MIT |
|
||||
| **Upstream** | [bvisible/mcp-ssh-manager](https://github.com/bvisible/mcp-ssh-manager) v3.4.0 |
|
||||
| **Platform** | [MokoGit](https://git.mokoconsulting.tech/MokoConsulting/ssh-mcp) (primary) |
|
||||
| **Platform** | [MokoGIT](https://git.mokoconsulting.tech/MokoConsulting/ssh-mcp) (primary) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -39,5 +39,5 @@ src/
|
||||
- **Never commit** `.claude/`, `.mcp.json`, `TODO.md`, `*.min.css`/`*.min.js`
|
||||
- **Attribution**: `Authored-by: Moko Consulting`
|
||||
- **Workflow directory**: `.mokogit/` (not `.gitea/` or `.github/`)
|
||||
- **Wiki**: documentation lives in the MokoGit wiki, not `docs/` files
|
||||
- **Wiki**: documentation lives in the MokoGIT wiki, not `docs/` files
|
||||
- **Standards**: [MokoCli](https://git.mokoconsulting.tech/MokoConsulting/mokocli/wiki/Home)
|
||||
|
||||
@@ -148,13 +148,13 @@ Every repo maintains 5 standard release channel tags:
|
||||
|
||||
### CI/CD
|
||||
|
||||
- MokoGit Actions runs all CI workflows
|
||||
- MokoGIT Actions runs all CI workflows
|
||||
- GitHub Actions are disabled on mirrored repos
|
||||
- Workflows live in both `.github/workflows/` and `.gitea/workflows/`
|
||||
|
||||
### Update Servers (Joomla)
|
||||
|
||||
In manifest `<updateservers>`, MokoGit must be priority 1, GitHub priority 2.
|
||||
In manifest `<updateservers>`, MokoGIT must be priority 1, GitHub priority 2.
|
||||
|
||||
### Secrets
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ Model Context Protocol server for the Joomla Web Services API -- full CRUD for a
|
||||
| **Language** | Node.js |
|
||||
| **Tools** | 67 tools across 15 resource groups |
|
||||
| **License** | GPL-3.0-or-later |
|
||||
| **Platform** | [MokoGit](https://git.mokoconsulting.tech/MokoConsulting/joomla-api-mcp) (primary) |
|
||||
| **Platform** | [MokoGIT](https://git.mokoconsulting.tech/MokoConsulting/joomla-api-mcp) (primary) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ Only the current major version receives security updates. Users should upgrade t
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Report security vulnerabilities via MokoGit issue (preferred):
|
||||
Report security vulnerabilities via MokoGIT issue (preferred):
|
||||
https://git.mokoconsulting.tech/MokoConsulting/MokoCli-Template-Generic/issues/new?template=security.yaml
|
||||
|
||||
Or email: hello@mokoconsulting.tech
|
||||
|
||||
@@ -40,5 +40,5 @@ src/
|
||||
- **Never commit** `.claude/`, `.mcp.json`, `TODO.md`, `*.min.css`/`*.min.js`
|
||||
- **Attribution**: `Authored-by: Moko Consulting`
|
||||
- **Workflow directory**: `.mokogit/` (not `.gitea/` or `.github/`)
|
||||
- **Wiki**: documentation lives in the MokoGit wiki, not `docs/` files
|
||||
- **Wiki**: documentation lives in the MokoGIT wiki, not `docs/` files
|
||||
- **Standards**: [MokoCli](https://git.mokoconsulting.tech/MokoConsulting/mokocli/wiki/Home)
|
||||
|
||||
@@ -772,7 +772,7 @@ parameters:
|
||||
message: '#^Call to function is_int\(\) with string will always evaluate to false\.$#'
|
||||
identifier: function.impossibleType
|
||||
count: 1
|
||||
path: lib/Enterprise/MokoGitAdapter.php
|
||||
path: lib/Enterprise/MokoGITAdapter.php
|
||||
|
||||
-
|
||||
message: '#^Method MokoCli\\MokoCliParser\:\:generate\(\) has parameter \$params with no value type specified in iterable type array\.$#'
|
||||
|
||||
@@ -19,7 +19,7 @@ use MokoCli\ApiClient;
|
||||
use MokoCli\Config;
|
||||
use MokoCli\GitPlatformAdapter;
|
||||
use MokoCli\GitHubAdapter;
|
||||
use MokoCli\MokoGitAdapter;
|
||||
use MokoCli\MokoGITAdapter;
|
||||
use MokoCli\PlatformAdapterFactory;
|
||||
|
||||
echo "Testing GitPlatformAdapter Interface Compliance\n";
|
||||
@@ -58,8 +58,8 @@ assert_true($ghAdapter->getWorkflowDir() === '.github/workflows', 'getWorkflowDi
|
||||
assert_true($ghAdapter->getApiClient() === $ghClient, 'getApiClient() returns injected client');
|
||||
echo "\n";
|
||||
|
||||
// ── Test 2: MokoGitAdapter implements GitPlatformAdapter ──────────────────
|
||||
echo "2. Testing MokoGitAdapter interface compliance...\n";
|
||||
// ── Test 2: MokoGITAdapter implements GitPlatformAdapter ──────────────────
|
||||
echo "2. Testing MokoGITAdapter interface compliance...\n";
|
||||
|
||||
$gitClient = new ApiClient(
|
||||
baseUrl: 'https://git.mokoconsulting.tech/api/v1',
|
||||
@@ -67,9 +67,9 @@ $gitClient = new ApiClient(
|
||||
enableCaching: false,
|
||||
authScheme: 'token'
|
||||
);
|
||||
$gitAdapter = new MokoGitAdapter($gitClient);
|
||||
$gitAdapter = new MokoGITAdapter($gitClient);
|
||||
|
||||
assert_true($gitAdapter instanceof GitPlatformAdapter, 'MokoGitAdapter implements GitPlatformAdapter');
|
||||
assert_true($gitAdapter instanceof GitPlatformAdapter, 'MokoGITAdapter implements GitPlatformAdapter');
|
||||
assert_true($gitAdapter->getPlatformName() === 'git', 'getPlatformName() returns "git"');
|
||||
assert_true($gitAdapter->getBaseUrl() === 'https://git.mokoconsulting.tech/api/v1', 'getBaseUrl() returns Git API URL');
|
||||
assert_true($gitAdapter->getWorkflowDir() === '.mokogit/workflows', 'getWorkflowDir() returns .gitea/workflows');
|
||||
@@ -125,10 +125,10 @@ try {
|
||||
$config->set('git.token', 'test-git-token');
|
||||
try {
|
||||
$adapter = PlatformAdapterFactory::create($config, 'git');
|
||||
assert_true($adapter instanceof MokoGitAdapter, 'Factory creates MokoGitAdapter for platform=git');
|
||||
assert_true($adapter instanceof MokoGITAdapter, 'Factory creates MokoGITAdapter for platform=git');
|
||||
assert_true($adapter->getPlatformName() === 'git', 'Created adapter identifies as git');
|
||||
} catch (\Exception $e) {
|
||||
assert_true(false, 'Factory creates MokoGitAdapter: ' . $e->getMessage());
|
||||
assert_true(false, 'Factory creates MokoGITAdapter: ' . $e->getMessage());
|
||||
}
|
||||
|
||||
// Test invalid platform
|
||||
@@ -185,9 +185,9 @@ try {
|
||||
assert_true(true, 'GitHubAdapter.migrateRepository() throws RuntimeException');
|
||||
}
|
||||
|
||||
// MokoGitAdapter.migrateRepository() should NOT throw (it calls the API)
|
||||
// MokoGITAdapter.migrateRepository() should NOT throw (it calls the API)
|
||||
// We can't test it without a real server, but verify the method exists
|
||||
assert_true(method_exists($gitAdapter, 'migrateRepository'), 'MokoGitAdapter.migrateRepository() exists');
|
||||
assert_true(method_exists($gitAdapter, 'migrateRepository'), 'MokoGITAdapter.migrateRepository() exists');
|
||||
echo "\n";
|
||||
|
||||
// ── Summary ─────────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user