@mokoenterprises/mokogit-mcp 1.16.0 → 1.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mokogit/ISSUE_TEMPLATE/config.yml +4 -4
- package/.mokogit/ISSUE_TEMPLATE/feature_request.md +1 -1
- package/.mokogit/ISSUE_TEMPLATE/security.md +1 -1
- package/.mokogit/actions/resolve-source-dir/action.yml +1 -1
- package/.mokogit/workflows/apidocs.yml +6 -6
- package/.mokogit/workflows/auto-assign.yml +1 -1
- package/.mokogit/workflows/auto-dev-issue.yml +2 -2
- package/.mokogit/workflows/auto-release.yml +31 -25
- package/.mokogit/workflows/branch-cleanup.yml +3 -3
- package/.mokogit/workflows/cascade.yml +9 -9
- package/.mokogit/workflows/ci-issue-reporter.yml +5 -5
- package/.mokogit/workflows/cleanup.yml +3 -3
- package/.mokogit/workflows/makefile-lint.yml +20 -11
- package/.mokogit/workflows/npm-build-test.yml +8 -8
- package/.mokogit/workflows/npm-sdk-check.yml +1 -1
- package/.mokogit/workflows/npm-tool-inventory.yml +2 -2
- package/.mokogit/workflows/pr-branch-check.yml +92 -92
- package/.mokogit/workflows/pre-release.yml +7 -7
- package/.mokogit/workflows/rc-revert.yml +3 -3
- package/AGENTS.md +3 -3
- package/CHANGELOG.md +12 -15
- package/CODE_OF_CONDUCT.md +4 -4
- package/CONTRIBUTING.md +6 -6
- package/LICENSE +3 -3
- package/Makefile +2 -2
- package/README.md +6 -6
- package/SECURITY.md +3 -3
- package/config.example.json +2 -2
- package/dist/index.js +92 -17
- package/package.json +4 -3
- package/scripts/deploy-vendor-mcps.ps1 +1 -1
- package/source/api-error.ts +3 -3
- package/source/client.ts +60 -5
- package/source/config.ts +3 -3
- package/source/generate-tools.mjs +6 -6
- package/source/generated-runtime.ts +3 -3
- package/source/index.ts +87 -15
- package/source/mokocli.ts +3 -3
- package/source/premerge-ci.ts +3 -3
- package/source/rapid-merge-guard.ts +3 -3
- package/source/tokenReader.ts +1 -1
- package/source/tools.generated.ts +2 -2
- package/source/types.ts +14 -3
- package/source/wiki-path.ts +38 -0
- package/test/wiki-path.test.mjs +49 -0
- package/tsconfig.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# MCP SDK Version Check
|
|
2
|
-
# Copyright (C) 2026 Moko
|
|
2
|
+
# Copyright (C) 2026 Moko Enterprises <hello@mokoenterprises.us>
|
|
3
3
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
4
4
|
#
|
|
5
5
|
# Weekly check for MCP SDK updates. Creates an issue when a new version
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# MCP Tool Inventory
|
|
2
|
-
# Copyright (C) 2026 Moko
|
|
2
|
+
# Copyright (C) 2026 Moko Enterprises <hello@mokoenterprises.us>
|
|
3
3
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
4
4
|
#
|
|
5
5
|
# Generates a tool inventory report on each push to main.
|
|
@@ -18,7 +18,7 @@ permissions:
|
|
|
18
18
|
contents: read
|
|
19
19
|
|
|
20
20
|
env:
|
|
21
|
-
MOKOGIT_URL: ${{ vars.MOKOGIT_URL || 'https://git.
|
|
21
|
+
MOKOGIT_URL: ${{ vars.MOKOGIT_URL || 'https://git.mokoenterprises.us' }}
|
|
22
22
|
GIT_ORG: ${{ vars.MOKOGIT_ORG || github.repository_owner }}
|
|
23
23
|
GIT_REPO: ${{ vars.MOKOGIT_REPO || github.event.repository.name }}
|
|
24
24
|
|
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
# Copyright (C) 2026 Moko
|
|
2
|
-
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
3
|
-
#
|
|
4
|
-
# Enforces branch merge policy:
|
|
5
|
-
# feature/* → dev only
|
|
6
|
-
# fix/* → dev only
|
|
7
|
-
# hotfix/* → dev or main (emergency)
|
|
8
|
-
# dev → main only
|
|
9
|
-
# alpha/* → dev only
|
|
10
|
-
# beta/* → dev only
|
|
11
|
-
# rc/* → main only
|
|
12
|
-
|
|
13
|
-
name: Branch Policy Check
|
|
14
|
-
|
|
15
|
-
on:
|
|
16
|
-
pull_request:
|
|
17
|
-
types: [opened, synchronize, reopened, edited]
|
|
18
|
-
|
|
19
|
-
jobs:
|
|
20
|
-
check-target:
|
|
21
|
-
name: Verify merge target
|
|
22
|
-
runs-on: ubuntu-latest
|
|
23
|
-
steps:
|
|
24
|
-
- name: Check branch policy
|
|
25
|
-
env:
|
|
26
|
-
DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
|
|
27
|
-
run: |
|
|
28
|
-
HEAD="${{ github.head_ref }}"
|
|
29
|
-
BASE="${{ github.base_ref }}"
|
|
30
|
-
|
|
31
|
-
echo "PR: ${HEAD} → ${BASE}"
|
|
32
|
-
|
|
33
|
-
ALLOWED=true
|
|
34
|
-
REASON=""
|
|
35
|
-
|
|
36
|
-
case "$HEAD" in
|
|
37
|
-
feature/*|feat/*)
|
|
38
|
-
if [ "$BASE" != "dev" ]; then
|
|
39
|
-
ALLOWED=false
|
|
40
|
-
REASON="Feature branches must target 'dev', not '${BASE}'"
|
|
41
|
-
fi
|
|
42
|
-
;;
|
|
43
|
-
fix/*|bugfix/*)
|
|
44
|
-
if [ "$BASE" != "dev" ]; then
|
|
45
|
-
ALLOWED=false
|
|
46
|
-
REASON="Fix branches must target 'dev', not '${BASE}'"
|
|
47
|
-
fi
|
|
48
|
-
;;
|
|
49
|
-
hotfix/*)
|
|
50
|
-
if [ "$BASE" != "dev" ] && [ "$BASE" != "$DEFAULT_BRANCH" ]; then
|
|
51
|
-
ALLOWED=false
|
|
52
|
-
REASON="Hotfix branches can only target 'dev' or 'main', not '${BASE}'"
|
|
53
|
-
fi
|
|
54
|
-
;;
|
|
55
|
-
alpha/*|beta/*)
|
|
56
|
-
if [ "$BASE" != "dev" ]; then
|
|
57
|
-
ALLOWED=false
|
|
58
|
-
REASON="Pre-release branches must target 'dev', not '${BASE}'"
|
|
59
|
-
fi
|
|
60
|
-
;;
|
|
61
|
-
rc/*)
|
|
62
|
-
if [ "$BASE" != "$DEFAULT_BRANCH" ]; then
|
|
63
|
-
ALLOWED=false
|
|
64
|
-
REASON="Release candidate branches must target 'main', not '${BASE}'"
|
|
65
|
-
fi
|
|
66
|
-
;;
|
|
67
|
-
dev)
|
|
68
|
-
if [ "$BASE" != "$DEFAULT_BRANCH" ]; then
|
|
69
|
-
ALLOWED=false
|
|
70
|
-
REASON="Dev branch can only merge into 'main', not '${BASE}'"
|
|
71
|
-
fi
|
|
72
|
-
;;
|
|
73
|
-
esac
|
|
74
|
-
|
|
75
|
-
if [ "$ALLOWED" = false ]; then
|
|
76
|
-
echo "::error::${REASON}"
|
|
77
|
-
echo ""
|
|
78
|
-
echo "## Branch Policy Violation" >> $GITHUB_STEP_SUMMARY
|
|
79
|
-
echo "" >> $GITHUB_STEP_SUMMARY
|
|
80
|
-
echo "${REASON}" >> $GITHUB_STEP_SUMMARY
|
|
81
|
-
echo "" >> $GITHUB_STEP_SUMMARY
|
|
82
|
-
echo "### Allowed merge paths:" >> $GITHUB_STEP_SUMMARY
|
|
83
|
-
echo "- \`feature/*\` → \`dev\`" >> $GITHUB_STEP_SUMMARY
|
|
84
|
-
echo "- \`fix/*\` → \`dev\`" >> $GITHUB_STEP_SUMMARY
|
|
85
|
-
echo "- \`hotfix/*\` → \`dev\` or \`main\`" >> $GITHUB_STEP_SUMMARY
|
|
86
|
-
echo "- \`dev\` → \`main\`" >> $GITHUB_STEP_SUMMARY
|
|
87
|
-
echo "- \`rc/*\` → \`main\`" >> $GITHUB_STEP_SUMMARY
|
|
88
|
-
exit 1
|
|
89
|
-
fi
|
|
90
|
-
|
|
91
|
-
echo "Branch policy: OK (${HEAD} → ${BASE})"
|
|
92
|
-
echo "## Branch Policy: Passed" >> $GITHUB_STEP_SUMMARY
|
|
1
|
+
# Copyright (C) 2026 Moko Enterprises <hello@mokoenterprises.us>
|
|
2
|
+
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
3
|
+
#
|
|
4
|
+
# Enforces branch merge policy:
|
|
5
|
+
# feature/* → dev only
|
|
6
|
+
# fix/* → dev only
|
|
7
|
+
# hotfix/* → dev or main (emergency)
|
|
8
|
+
# dev → main only
|
|
9
|
+
# alpha/* → dev only
|
|
10
|
+
# beta/* → dev only
|
|
11
|
+
# rc/* → main only
|
|
12
|
+
|
|
13
|
+
name: Branch Policy Check
|
|
14
|
+
|
|
15
|
+
on:
|
|
16
|
+
pull_request:
|
|
17
|
+
types: [opened, synchronize, reopened, edited]
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
check-target:
|
|
21
|
+
name: Verify merge target
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
steps:
|
|
24
|
+
- name: Check branch policy
|
|
25
|
+
env:
|
|
26
|
+
DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
|
|
27
|
+
run: |
|
|
28
|
+
HEAD="${{ github.head_ref }}"
|
|
29
|
+
BASE="${{ github.base_ref }}"
|
|
30
|
+
|
|
31
|
+
echo "PR: ${HEAD} → ${BASE}"
|
|
32
|
+
|
|
33
|
+
ALLOWED=true
|
|
34
|
+
REASON=""
|
|
35
|
+
|
|
36
|
+
case "$HEAD" in
|
|
37
|
+
feature/*|feat/*)
|
|
38
|
+
if [ "$BASE" != "dev" ]; then
|
|
39
|
+
ALLOWED=false
|
|
40
|
+
REASON="Feature branches must target 'dev', not '${BASE}'"
|
|
41
|
+
fi
|
|
42
|
+
;;
|
|
43
|
+
fix/*|bugfix/*)
|
|
44
|
+
if [ "$BASE" != "dev" ]; then
|
|
45
|
+
ALLOWED=false
|
|
46
|
+
REASON="Fix branches must target 'dev', not '${BASE}'"
|
|
47
|
+
fi
|
|
48
|
+
;;
|
|
49
|
+
hotfix/*)
|
|
50
|
+
if [ "$BASE" != "dev" ] && [ "$BASE" != "$DEFAULT_BRANCH" ]; then
|
|
51
|
+
ALLOWED=false
|
|
52
|
+
REASON="Hotfix branches can only target 'dev' or 'main', not '${BASE}'"
|
|
53
|
+
fi
|
|
54
|
+
;;
|
|
55
|
+
alpha/*|beta/*)
|
|
56
|
+
if [ "$BASE" != "dev" ]; then
|
|
57
|
+
ALLOWED=false
|
|
58
|
+
REASON="Pre-release branches must target 'dev', not '${BASE}'"
|
|
59
|
+
fi
|
|
60
|
+
;;
|
|
61
|
+
rc/*)
|
|
62
|
+
if [ "$BASE" != "$DEFAULT_BRANCH" ]; then
|
|
63
|
+
ALLOWED=false
|
|
64
|
+
REASON="Release candidate branches must target 'main', not '${BASE}'"
|
|
65
|
+
fi
|
|
66
|
+
;;
|
|
67
|
+
dev)
|
|
68
|
+
if [ "$BASE" != "$DEFAULT_BRANCH" ]; then
|
|
69
|
+
ALLOWED=false
|
|
70
|
+
REASON="Dev branch can only merge into 'main', not '${BASE}'"
|
|
71
|
+
fi
|
|
72
|
+
;;
|
|
73
|
+
esac
|
|
74
|
+
|
|
75
|
+
if [ "$ALLOWED" = false ]; then
|
|
76
|
+
echo "::error::${REASON}"
|
|
77
|
+
echo ""
|
|
78
|
+
echo "## Branch Policy Violation" >> $GITHUB_STEP_SUMMARY
|
|
79
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
80
|
+
echo "${REASON}" >> $GITHUB_STEP_SUMMARY
|
|
81
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
82
|
+
echo "### Allowed merge paths:" >> $GITHUB_STEP_SUMMARY
|
|
83
|
+
echo "- \`feature/*\` → \`dev\`" >> $GITHUB_STEP_SUMMARY
|
|
84
|
+
echo "- \`fix/*\` → \`dev\`" >> $GITHUB_STEP_SUMMARY
|
|
85
|
+
echo "- \`hotfix/*\` → \`dev\` or \`main\`" >> $GITHUB_STEP_SUMMARY
|
|
86
|
+
echo "- \`dev\` → \`main\`" >> $GITHUB_STEP_SUMMARY
|
|
87
|
+
echo "- \`rc/*\` → \`main\`" >> $GITHUB_STEP_SUMMARY
|
|
88
|
+
exit 1
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
echo "Branch policy: OK (${HEAD} → ${BASE})"
|
|
92
|
+
echo "## Branch Policy: Passed" >> $GITHUB_STEP_SUMMARY
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# Copyright (C) 2026 Moko
|
|
1
|
+
# Copyright (C) 2026 Moko Enterprises <hello@mokoenterprises.us>
|
|
2
2
|
#
|
|
3
3
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
4
4
|
#
|
|
5
5
|
# FILE INFORMATION
|
|
6
6
|
# DEFGROUP: MokoGIT.Workflow
|
|
7
7
|
# INGROUP: MokoCLI.Release
|
|
8
|
-
# REPO: https://git.
|
|
8
|
+
# REPO: https://git.mokoenterprises.us/MokoEnterprises/Template-Generic
|
|
9
9
|
# PATH: /.mokogit/workflows/pre-release.yml
|
|
10
10
|
# VERSION: 07.15.00
|
|
11
11
|
# CHANGE (07.15.00): "Vendor PHP dependencies (build-time)" is no longer a silent no-op on the release runners. The step existed since 07.xx but EVERY vendored build was failing invisibly: the runners' php-cli ships WITHOUT ext-gd, so composer could not RESOLVE mpdf/mpdf at all ("mpdf/mpdf require ext-gd * -> it is missing from your system"), and the step's continue-on-error + `|| warning` fail-soft swallowed that into a green build — the zip then shipped WITHOUT admin/vendor while the component manifest lists <folder>vendor</folder>, so JInstaller aborts the ENTIRE package install on-site ("File does not exist [ROOT][TMP]/.../admin/vendor" → "Failed to copy administrator files"; reproduced on MokonyxCRMDCM + MokonyxCRM dev installs). Fix: (1) provision ext-gd when missing before resolving; (2) verify the package's CONFIGURED vendor-dir (composer config vendor-dir, e.g. admin/vendor) actually materialized autoload.php; (3) when vendoring fails for a package whose Joomla manifest ships <folder>vendor</folder>, FAIL the build loud (::error:: + exit 1, continue-on-error removed) — a broken artifact that bricks installs is strictly worse than a red build. Packages whose manifests do NOT reference vendor/ keep the old fail-soft warning, and repos with no sub-package composer.json are a clean no-op, so non-vendoring repos are 100% unaffected. PREVIOUS (07.14.00): #469 — gate the dev-channel version BUMP on whether the push touched the Makefile SRC_DIR. The former non-code/test paths-ignore denylist on the dev push trigger is REMOVED: a docs/workflow/sample/test-only push no longer skips the build, it now RUNS in no-bump "update the current rolling dev release in place" mode. A new step "Resolve SRC_DIR bump gate (#469)" (id: srcgate) mirrors auto-release.yml: (1) electron (file-detected) or opt-out vars.RELEASE_SRCDIR_GATE=off -> bypass/always-bump; (2) else SRC_DIR REQUIRED, missing -> fail loud; (3) else diff before..sha (HEAD^1 fallback) ∩ ${SRC_DIR}/ -> should_bump. The per-merge dev-base patch bump ("Advance dev base") is now gated on should_bump!='false', so a non-source push keeps the dev base PUT and the rest of the job re-issues the existing rolling dev release. Loop-safety unchanged (job if: still re-checks [skip ci]/[skip bump]). Fleet-wide release-semantics change. PREVIOUS (07.13.00): the dev-base-bump and checkout-fallback steps now name the per-run token env var GITHUB_TOKEN (was the misleadingly-named MOKOGIT_TOKEN; the VALUE was always ${{ github.token }}). Same-repo writes (the dev base bump) use the built-in per-run github.token with contents:write — NEVER the org MOKOGIT_TOKEN secret, which this workflow does not reference at all. Naming-only; no behavior change. (The earlier "it's an org secret" framing was wrong — MokoGIT#1721.) PREVIOUS (07.12.00): "Advance dev base (per-merge patch bump)" now FAILS the step (::error:: + exit 1) when release_bump_dev reports failure (0 version files stamped), instead of the old ::warning:: + exit 0. A stalled bump (e.g. a repo-side Contents-API HTTP 500 on release_bump_dev's temp-branch write) was silently re-cutting the SAME dev version on every merge — for ~10 merges on MokonyxTickets — so the Joomla update feed stayed at the installed version and NO update was ever offered, invisibly, because the step stayed green. Failing loud turns the pre-release RED so the stall is caught immediately. The GITHUB_TOKEN-unset and #1412 "already advanced" branches keep their graceful exit 0 (not failures). See MokoGIT#1721.
|
|
@@ -79,7 +79,7 @@ permissions:
|
|
|
79
79
|
pull-requests: write
|
|
80
80
|
|
|
81
81
|
env:
|
|
82
|
-
GIT_URL: ${{ vars.MOKOGIT_URL || 'https://git.
|
|
82
|
+
GIT_URL: ${{ vars.MOKOGIT_URL || 'https://git.mokoenterprises.us' }}
|
|
83
83
|
GIT_ORG: ${{ vars.MOKOGIT_ORG || github.repository_owner }}
|
|
84
84
|
GIT_REPO: ${{ vars.MOKOGIT_REPO || github.event.repository.name }}
|
|
85
85
|
|
|
@@ -156,7 +156,7 @@ jobs:
|
|
|
156
156
|
run: |
|
|
157
157
|
set -u
|
|
158
158
|
TOK="$(printf '%s' "$GITHUB_TOKEN" | tr -d '[:space:]')"; echo "::add-mask::$TOK"
|
|
159
|
-
SERVER="${GITHUB_SERVER_URL:-https://git.
|
|
159
|
+
SERVER="${GITHUB_SERVER_URL:-https://git.mokoenterprises.us}"
|
|
160
160
|
CLONE_URL="https://x-access-token:${TOK}@${SERVER#https://}/${GITHUB_REPOSITORY}.git"
|
|
161
161
|
REF="${BUILD_REF:-${GITHUB_SHA:-}}"
|
|
162
162
|
echo "Retrying full-history checkout of ${GITHUB_REPOSITORY}@${REF:-<HEAD>} into ${GITHUB_WORKSPACE}"
|
|
@@ -194,7 +194,7 @@ jobs:
|
|
|
194
194
|
# keeps the derived value out of logs (#1840). --global is required so the
|
|
195
195
|
# rewrite reaches the submodule fetch subprocesses.
|
|
196
196
|
TOK="$(printf '%s' "$GITHUB_TOKEN" | tr -d '[:space:]')"; echo "::add-mask::$TOK"
|
|
197
|
-
git config --global url."https://x-access-token:${TOK}@git.
|
|
197
|
+
git config --global url."https://x-access-token:${TOK}@git.mokoenterprises.us/".insteadOf "https://git.mokoenterprises.us/"
|
|
198
198
|
git submodule sync --recursive || true
|
|
199
199
|
# FAIL-OPEN (#430): the per-run Actions token is scoped to THIS repo, so a
|
|
200
200
|
# cross-repo submodule can return "Repository not found" and abort the whole
|
|
@@ -230,9 +230,9 @@ jobs:
|
|
|
230
230
|
sudo apt-get update -qq && sudo apt-get install -y -qq php-cli php-mbstring php-xml php-zip php-curl composer > /dev/null 2>&1
|
|
231
231
|
fi
|
|
232
232
|
rm -rf /tmp/mokocli
|
|
233
|
-
REG='{"type":"composer","url":"https://git.
|
|
233
|
+
REG='{"type":"composer","url":"https://git.mokoenterprises.us/api/packages/MokoEnterprises/composer"}'
|
|
234
234
|
if composer create-project --no-install --no-interaction --no-progress --quiet \
|
|
235
|
-
--repository="${REG}"
|
|
235
|
+
--repository="${REG}" mokoenterprises/mokocli /tmp/mokocli >/dev/null 2>&1 \
|
|
236
236
|
&& [ -f /tmp/mokocli/cli/version_bump.php ]; then
|
|
237
237
|
echo "Installed mokocli fresh from the Composer registry (primary)"
|
|
238
238
|
# #1671: registry-publish LAG race. The registry install "succeeds" but can
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# Copyright (C) 2026 Moko
|
|
1
|
+
# Copyright (C) 2026 Moko Enterprises <hello@mokoenterprises.us>
|
|
2
2
|
#
|
|
3
3
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
4
4
|
#
|
|
5
5
|
# FILE INFORMATION
|
|
6
6
|
# DEFGROUP: MokoGIT.Workflow
|
|
7
7
|
# INGROUP: MokoCLI.Universal
|
|
8
|
-
# REPO: https://git.
|
|
8
|
+
# REPO: https://git.mokoenterprises.us/MokoEnterprises/Template-Generic
|
|
9
9
|
# PATH: /.mokogit/workflows/rc-revert.yml
|
|
10
10
|
# VERSION: 09.23.00
|
|
11
11
|
# BRIEF: Rename rc/ branch back to dev/ when PR is closed without merge
|
|
@@ -36,7 +36,7 @@ jobs:
|
|
|
36
36
|
env:
|
|
37
37
|
BRANCH: ${{ github.event.pull_request.head.ref }}
|
|
38
38
|
REPO: ${{ github.repository }}
|
|
39
|
-
GIT_URL: ${{ vars.MOKOGIT_URL || 'https://git.
|
|
39
|
+
GIT_URL: ${{ vars.MOKOGIT_URL || 'https://git.mokoenterprises.us' }}
|
|
40
40
|
TOKEN: ${{ github.token }}
|
|
41
41
|
run: |
|
|
42
42
|
set -euo pipefail
|
package/AGENTS.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
Copyright 2026 Moko
|
|
2
|
+
Copyright 2026 Moko Enterprises
|
|
3
3
|
SPDX-License-Identifier: GPL-3.0-or-later
|
|
4
4
|
BRIEF: Shared source of truth for AI-agent instructions in this repo.
|
|
5
5
|
CLAUDE.md, GEMINI.md, and MOKOAI.md are pointers to this file.
|
|
@@ -28,5 +28,5 @@ BRIEF: Shared source of truth for AI-agent instructions in this repo.
|
|
|
28
28
|
- Never commit MokoGIT access tokens — supply them via config/environment only.
|
|
29
29
|
- Prefer the canonical `mokogit_*` tool names; the `git_*` aliases are deprecated.
|
|
30
30
|
- Workflow config lives under `.mokogit/`.
|
|
31
|
-
- Attribution on commits: `Authored-by: Moko
|
|
32
|
-
- Standards: MokoCLI — https://git.
|
|
31
|
+
- Attribution on commits: `Authored-by: Moko Enterprises`.
|
|
32
|
+
- Standards: MokoCLI — https://git.mokoenterprises.us/MokoEnterprises/mokocli/wiki/Home
|
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<!-- Copyright (C) 2026 Moko
|
|
1
|
+
<!-- Copyright (C) 2026 Moko Enterprises <hello@mokoenterprises.us>
|
|
2
2
|
SPDX-License-Identifier: GPL-3.0-or-later
|
|
3
3
|
DEFGROUP: git-api-mcp.Documentation
|
|
4
|
-
REPO: https://git.
|
|
4
|
+
REPO: https://git.mokoenterprises.us/MokoEnterprises/git-api-mcp
|
|
5
5
|
-->
|
|
6
6
|
|
|
7
7
|
# Changelog
|
|
@@ -10,10 +10,18 @@ All notable changes to this project will be documented in this file.
|
|
|
10
10
|
|
|
11
11
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
12
12
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
13
|
-
|
|
14
13
|
## [Unreleased]
|
|
15
14
|
|
|
16
|
-
## [01.
|
|
15
|
+
## [01.17.00] --- 2026-11-07
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- **`git_pull_merge` now returns a STRUCTURED success object instead of an empty string (#338).** Gitea's merge endpoint returns `200` with an **empty body**, which the MCP rendered as a bare `""` — ambiguous "did it work?" output that forced callers to follow up with `git_pull_get` to confirm. On success the tool now emits `{ ok: true, merged, pull_request, merge_method, merge_commit_sha?, status, message }`. The `merged`/`merge_commit_sha` fields come from a **fail-open** post-merge PR re-read (a read error never turns a real success into an error). Error-path behavior (the #311 translated-failure block) is unchanged.
|
|
19
|
+
- **Ref normalization for the contents/raw family (#339).** `git_file_contents_get` failed **HTTP 400** and `git_contents_ext_get` **404'd** when handed a git **full-ref** form (`refs/heads/<branch>` or `refs/tags/<tag>`) in `ref`, because these endpoints' `ref` **query** parameter expects a **bare** name. A new `normalizeRef()` helper strips a leading `refs/heads/` or `refs/tags/` (and the bare `heads/`/`tags/` forms) before the request, applied in `getWithRefGuard` (covering `file_get`, `dir_get`, `contents_ext_get`, `contents_list`, `repo_raw_get`, `repo_media_get`, …) and in the two file-contents handlers that build the query directly. `refs/<other>/…` (e.g. `refs/pull/…`), bare names, and SHAs are left untouched. The channel-name collision probe is run on the normalized name.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- **Client-side URL-host rewrite mitigation for the rebrand-domain issue (#337).** When the Gitea `ROOT_URL` / package base URL serves an **unresolvable host** in returned URLs (observed: `git.mokoenterprises.us` in `diff_url`, `ssh_url`, the api `url`, composer/dist URLs, …) while clients reach the server at a different host, downloads/clones that trust those URLs break. The **root cause is server-side** (app.ini `ROOT_URL` / package base URL — an infra/deploy fix, NOT mokogit-mcp code). As a conservative, **opt-in** client stop-gap, a connection may now declare `apiHostAliases: string[]`; the HTTP client rewrites those **exact** hosts to the connection `baseUrl`'s host in every parsed JSON response. Only whole-host matches are rewritten (third-party URLs are untouched), and it is a **no-op** when no aliases are configured.
|
|
23
|
+
|
|
24
|
+
## [01.16.00] --- 2026-11-05
|
|
17
25
|
|
|
18
26
|
### Added
|
|
19
27
|
- **`git_issue_set_type` (#285).** Convenience setter for an issue's type, mirroring `git_issue_set_priority` — accepts either a numeric `type_id` or a `type_name` (e.g. `"Bug"`), with `type_id:0` to clear. Closes the gap where type was the only issue-metadata field with no dedicated setter.
|
|
@@ -59,14 +67,3 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
59
67
|
config** (`git_update_stream_config_*`). Both tools are retained for now only for
|
|
60
68
|
prod back-compat; do not build new integrations on them. Removal will land in
|
|
61
69
|
lockstep with the API removal reaching prod.
|
|
62
|
-
|
|
63
|
-
## [1.12.0] --- 2026-09-02
|
|
64
|
-
|
|
65
|
-
### Added
|
|
66
|
-
- **`git_metadata_get` / `git_metadata_update` expose `update_feed_format`**
|
|
67
|
-
(`off` | `joomla-xml` | `electron-yml`), the update-server feed format for a
|
|
68
|
-
repo. The field is optional and enum-validated on `git_metadata_update`;
|
|
69
|
-
when omitted the forge defaults it from the platform registry server-side.
|
|
70
|
-
It forwards to the v2 metadata endpoint
|
|
71
|
-
(`PUT /api/v2/repos/{owner}/{repo}/metadata`) alongside the existing
|
|
72
|
-
`platform` / `standards_*` governance fields (#180; MokoGIT #1342/#1343).
|
package/CODE_OF_CONDUCT.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<!-- Copyright (C) 2026 Moko
|
|
1
|
+
<!-- Copyright (C) 2026 Moko Enterprises <hello@mokoenterprises.us>
|
|
2
2
|
|
|
3
|
-
This file is part of a Moko
|
|
3
|
+
This file is part of a Moko Enterprises project.
|
|
4
4
|
|
|
5
5
|
SPDX-LICENSE-IDENTIFIER: GPL-3.0-or-later
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
# FILE INFORMATION
|
|
14
14
|
DEFGROUP:
|
|
15
15
|
INGROUP: Project.Documentation
|
|
16
|
-
REPO:
|
|
16
|
+
REPO: MokoEnterprises/mokogit-mcp
|
|
17
17
|
VERSION: 01.16.00
|
|
18
18
|
PATH: ./CODE_OF_CONDUCT.md
|
|
19
19
|
BRIEF: Contributor Covenant Code of Conduct version 1.3.0
|
|
@@ -55,7 +55,7 @@ This Code of Conduct applies both within project spaces and in public spaces whe
|
|
|
55
55
|
|
|
56
56
|
## Enforcement
|
|
57
57
|
|
|
58
|
-
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at hello@
|
|
58
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at hello@mokoenterprises.us. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
|
59
59
|
|
|
60
60
|
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
|
61
61
|
|
package/CONTRIBUTING.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<!-- Copyright (C) 2026 Moko
|
|
1
|
+
<!-- Copyright (C) 2026 Moko Enterprises <hello@mokoenterprises.us>
|
|
2
2
|
|
|
3
|
-
This file is part of a Moko
|
|
3
|
+
This file is part of a Moko Enterprises project.
|
|
4
4
|
|
|
5
5
|
SPDX-LICENSE-IDENTIFIER: GPL-3.0-or-later
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
# FILE INFORMATION
|
|
14
14
|
DEFGROUP:
|
|
15
15
|
INGROUP: Project.Documentation
|
|
16
|
-
REPO: https://git.
|
|
16
|
+
REPO: https://git.mokoenterprises.us/MokoEnterprises/mokogit-mcp
|
|
17
17
|
VERSION: 01.16.00
|
|
18
18
|
PATH: ./CONTRIBUTING.md
|
|
19
19
|
BRIEF: Contribution guidelines for the project
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
# Contributing to mokogit-mcp
|
|
23
23
|
|
|
24
|
-
> **Reporting issues:** This repository's issue tracker is disabled. All bugs, feature requests, and questions for
|
|
24
|
+
> **Reporting issues:** This repository's issue tracker is disabled. All bugs, feature requests, and questions for MokoEnterprises templates and shared tooling are tracked centrally in **[mokocli](https://git.mokoenterprises.us/MokoEnterprises/mokocli/issues)** — please open issues there, not in the individual template repos.
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
We appreciate your interest in contributing to this project! This document provides guidelines for contributing.
|
|
@@ -37,7 +37,7 @@ We appreciate your interest in contributing to this project! This document provi
|
|
|
37
37
|
|
|
38
38
|
## Code of Conduct
|
|
39
39
|
|
|
40
|
-
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to hello@
|
|
40
|
+
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to hello@mokoenterprises.us.
|
|
41
41
|
|
|
42
42
|
## Getting Started
|
|
43
43
|
|
|
@@ -131,7 +131,7 @@ If you have questions about contributing, feel free to open an issue or contact
|
|
|
131
131
|
|
|
132
132
|
## Infrastructure Standards
|
|
133
133
|
|
|
134
|
-
All repositories in the
|
|
134
|
+
All repositories in the MokoEnterprises org follow these conventions:
|
|
135
135
|
|
|
136
136
|
### Release Tags
|
|
137
137
|
|
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<!-- Copyright (C) 2025 Moko
|
|
1
|
+
<!-- Copyright (C) 2025 Moko Enterprises <hello@mokoenterprises.us>
|
|
2
2
|
|
|
3
|
-
This file is part of a Moko
|
|
3
|
+
This file is part of a Moko Enterprises project.
|
|
4
4
|
|
|
5
5
|
SPDX-LICENSE-IDENTIFIER: GPL-3.0-or-later
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
# FILE INFORMATION
|
|
14
14
|
DEFGROUP: MokoStandards
|
|
15
15
|
INGROUP: MokoStandards.Documentation
|
|
16
|
-
REPO: https://git.
|
|
16
|
+
REPO: https://git.mokoenterprises.us/MokoEnterprises/MokoStandards/
|
|
17
17
|
VERSION: 05.00.00
|
|
18
18
|
PATH: ./LICENSE
|
|
19
19
|
BRIEF: Project license (GPL-3.0-or-later)
|
package/Makefile
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# NPM / Node Project Makefile
|
|
2
|
-
# Copyright (C) 2026 Moko
|
|
2
|
+
# Copyright (C) 2026 Moko Enterprises <hello@mokoenterprises.us>
|
|
3
3
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
4
4
|
#
|
|
5
5
|
# Native build/test/lint/package logic for an npm package (incl. MCP servers). The
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# ==============================================================================
|
|
12
12
|
PROJECT_NAME := mcp-mokogit
|
|
13
13
|
DISPLAY_NAME := MokoGIT MCP
|
|
14
|
-
PROJECT_VERSION := 01.
|
|
14
|
+
PROJECT_VERSION := 01.17.01
|
|
15
15
|
PLATFORM := npm
|
|
16
16
|
|
|
17
17
|
# ==============================================================================
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<!-- Copyright (C) 2026 Moko
|
|
1
|
+
<!-- Copyright (C) 2026 Moko Enterprises <hello@mokoenterprises.us>
|
|
2
2
|
SPDX-License-Identifier: GPL-3.0-or-later
|
|
3
3
|
DEFGROUP: mokogit-mcp.Documentation
|
|
4
|
-
REPO: https://git.
|
|
4
|
+
REPO: https://git.mokoenterprises.us/MokoEnterprises/mokogit-mcp
|
|
5
5
|
-->
|
|
6
6
|
|
|
7
7
|
# mokogit-mcp
|
|
@@ -39,7 +39,7 @@ REPO: https://git.mokoconsulting.tech/MokoConsulting/mokogit-mcp
|
|
|
39
39
|
### Build from Source
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
-
git clone https://git.
|
|
42
|
+
git clone https://git.mokoenterprises.us/MokoEnterprises/mokogit-mcp.git
|
|
43
43
|
cd mokogit-mcp
|
|
44
44
|
npm install
|
|
45
45
|
npm run build
|
|
@@ -54,7 +54,7 @@ Create `~/.mcp_mokogit.json`:
|
|
|
54
54
|
"defaultConnection": "moko",
|
|
55
55
|
"connections": {
|
|
56
56
|
"moko": {
|
|
57
|
-
"baseUrl": "https://git.
|
|
57
|
+
"baseUrl": "https://git.mokoenterprises.us",
|
|
58
58
|
"token": "your-git-access-token",
|
|
59
59
|
"insecure": false
|
|
60
60
|
}
|
|
@@ -89,7 +89,7 @@ Override the config path with the `MOKOGIT_MCP_CONFIG` environment variable.
|
|
|
89
89
|
"defaultConnection": "moko",
|
|
90
90
|
"connections": {
|
|
91
91
|
"moko": {
|
|
92
|
-
"baseUrl": "https://git.
|
|
92
|
+
"baseUrl": "https://git.mokoenterprises.us",
|
|
93
93
|
"token": "token-for-moko-git"
|
|
94
94
|
},
|
|
95
95
|
"github-mirror": {
|
|
@@ -311,7 +311,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines.
|
|
|
311
311
|
|
|
312
312
|
## License
|
|
313
313
|
|
|
314
|
-
[GPL-3.0-or-later](https://www.gnu.org/licenses/gpl-3.0.html) -- Copyright (C) 2026 Moko
|
|
314
|
+
[GPL-3.0-or-later](https://www.gnu.org/licenses/gpl-3.0.html) -- Copyright (C) 2026 Moko Enterprises
|
|
315
315
|
|
|
316
316
|
## Revision History
|
|
317
317
|
|
package/SECURITY.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<!-- Copyright (C) 2026 Moko
|
|
1
|
+
<!-- Copyright (C) 2026 Moko Enterprises <hello@mokoenterprises.us>
|
|
2
2
|
SPDX-License-Identifier: GPL-3.0-or-later
|
|
3
3
|
DEFGROUP: git-api-mcp.Documentation
|
|
4
|
-
REPO: https://git.
|
|
4
|
+
REPO: https://git.mokoenterprises.us/MokoEnterprises/git-api-mcp
|
|
5
5
|
-->
|
|
6
6
|
|
|
7
7
|
# Security Policy
|
|
@@ -14,7 +14,7 @@ REPO: https://git.mokoconsulting.tech/MokoConsulting/git-api-mcp
|
|
|
14
14
|
|
|
15
15
|
## Reporting a Vulnerability
|
|
16
16
|
|
|
17
|
-
To report a security vulnerability, please email **hello@
|
|
17
|
+
To report a security vulnerability, please email **hello@mokoenterprises.us** with the subject line `[SECURITY] git-api-mcp`. Do not open a public issue for security vulnerabilities.
|
|
18
18
|
|
|
19
19
|
We will acknowledge receipt within 48 hours and provide an initial assessment within 5 business days.
|
|
20
20
|
|
package/config.example.json
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"defaultConnection": "moko",
|
|
4
4
|
"connections": {
|
|
5
5
|
"moko": {
|
|
6
|
-
"baseUrl": "https://git.
|
|
7
|
-
"tokenFile": "~/.ssh/tokens/git.
|
|
6
|
+
"baseUrl": "https://git.mokoenterprises.us",
|
|
7
|
+
"tokenFile": "~/.ssh/tokens/git.mokoenterprises.us.jmiller.token"
|
|
8
8
|
},
|
|
9
9
|
"github-mirror": {
|
|
10
10
|
"baseUrl": "https://git.example.com",
|