@mokoconsulting/mokoabs-mcp 0.0.0-stage → 4.0.2

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.
Files changed (51) hide show
  1. package/.editorconfig +41 -0
  2. package/.gitattributes +94 -0
  3. package/.gitmessage +9 -0
  4. package/.mokogit/ISSUE_TEMPLATE/adr.md +110 -0
  5. package/.mokogit/ISSUE_TEMPLATE/bug_report.md +48 -0
  6. package/.mokogit/ISSUE_TEMPLATE/config.yml +18 -0
  7. package/.mokogit/ISSUE_TEMPLATE/documentation.md +52 -0
  8. package/.mokogit/ISSUE_TEMPLATE/feature_request.md +51 -0
  9. package/.mokogit/ISSUE_TEMPLATE/mcp_api_integration.md +48 -0
  10. package/.mokogit/ISSUE_TEMPLATE/mcp_connection_issue.md +69 -0
  11. package/.mokogit/ISSUE_TEMPLATE/mcp_tool_request.md +50 -0
  12. package/.mokogit/ISSUE_TEMPLATE/question.md +82 -0
  13. package/.mokogit/ISSUE_TEMPLATE/rfc.md +126 -0
  14. package/.mokogit/ISSUE_TEMPLATE/security.md +51 -0
  15. package/.mokogit/ISSUE_TEMPLATE/version.md +24 -0
  16. package/.mokogit/actions/resolve-source-dir/action.yml +72 -0
  17. package/.mokogit/workflows/apidocs.yml +132 -0
  18. package/.mokogit/workflows/auto-assign.yml +76 -0
  19. package/.mokogit/workflows/auto-dev-issue.yml +207 -0
  20. package/.mokogit/workflows/auto-release.yml +1787 -0
  21. package/.mokogit/workflows/branch-cleanup.yml +63 -0
  22. package/.mokogit/workflows/cascade.yml +645 -0
  23. package/.mokogit/workflows/ci-issue-reporter.yml +100 -0
  24. package/.mokogit/workflows/cleanup.yml +112 -0
  25. package/.mokogit/workflows/makefile-lint.yml +240 -0
  26. package/.mokogit/workflows/npm-build-test.yml +507 -0
  27. package/.mokogit/workflows/npm-sdk-check.yml +110 -0
  28. package/.mokogit/workflows/npm-tool-inventory.yml +81 -0
  29. package/.mokogit/workflows/pr-branch-check.yml +92 -0
  30. package/.mokogit/workflows/pre-release.yml +1134 -0
  31. package/.mokogit/workflows/rc-revert.yml +75 -0
  32. package/AGENTS.md +48 -0
  33. package/CHANGELOG.md +37 -0
  34. package/CODE_OF_CONDUCT.md +70 -0
  35. package/CONTRIBUTING.md +164 -0
  36. package/LICENSE +696 -0
  37. package/Makefile +94 -0
  38. package/README.md +109 -2
  39. package/SECURITY.md +245 -0
  40. package/build/README.md +7 -0
  41. package/dist/README.md +7 -0
  42. package/dist/index.js +153 -0
  43. package/package.json +34 -5
  44. package/sample/config.example.json +15 -0
  45. package/source/client.ts +132 -0
  46. package/source/config.ts +139 -0
  47. package/source/credentialStore.ts +216 -0
  48. package/source/index.ts +235 -0
  49. package/source/tokenReader.ts +120 -0
  50. package/source/types.ts +63 -0
  51. package/tsconfig.json +19 -0
@@ -0,0 +1,75 @@
1
+ # Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
2
+ #
3
+ # SPDX-License-Identifier: GPL-3.0-or-later
4
+ #
5
+ # FILE INFORMATION
6
+ # DEFGROUP: MokoGIT.Workflow
7
+ # INGROUP: MokoCLI.Universal
8
+ # REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
9
+ # PATH: /.mokogit/workflows/rc-revert.yml
10
+ # VERSION: 09.23.00
11
+ # BRIEF: Rename rc/ branch back to dev/ when PR is closed without merge
12
+
13
+ name: "RC Revert"
14
+
15
+ on:
16
+ pull_request:
17
+ types: [closed]
18
+
19
+ permissions:
20
+ contents: write
21
+
22
+ env:
23
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
24
+
25
+ jobs:
26
+ revert:
27
+ name: Rename rc/ back to dev/
28
+ runs-on: ubuntu-latest
29
+ if: >-
30
+ github.event.pull_request.merged == false &&
31
+ startsWith(github.event.pull_request.head.ref, 'rc/') &&
32
+ !startsWith(github.event.repository.name, 'Template-')
33
+
34
+ steps:
35
+ - name: Rename branch
36
+ env:
37
+ BRANCH: ${{ github.event.pull_request.head.ref }}
38
+ REPO: ${{ github.repository }}
39
+ GIT_URL: ${{ vars.MOKOGIT_URL || 'https://git.mokoconsulting.tech' }}
40
+ TOKEN: ${{ github.token }}
41
+ run: |
42
+ set -euo pipefail
43
+ # BRANCH is attacker-controlled (PR head ref). Strict allowlist before ANY use.
44
+ if ! printf '%s' "$BRANCH" | grep -Eq '^rc/[A-Za-z0-9._/-]+$'; then
45
+ echo "::error::Refusing unsafe branch name: $BRANCH"; exit 1
46
+ fi
47
+ SUFFIX="${BRANCH#rc/}"
48
+ DEV_BRANCH="dev/${SUFFIX}"
49
+ API="${GIT_URL}/api/v1/repos/${REPO}/branches"
50
+
51
+ # Create dev/ branch from rc/ branch
52
+ STATUS=$(curl -sf -o /dev/null -w "%{http_code}" -X POST \
53
+ -H "Authorization: token ${TOKEN}" \
54
+ -H "Content-Type: application/json" \
55
+ -d "{\"new_branch_name\": \"${DEV_BRANCH}\", \"old_branch_name\": \"${BRANCH}\"}" \
56
+ "${API}" 2>/dev/null || true)
57
+ if [ "$STATUS" = "201" ]; then
58
+ echo "Created branch: ${DEV_BRANCH}" >> "$GITHUB_STEP_SUMMARY"
59
+ else
60
+ echo "::error::Failed to create ${DEV_BRANCH} from ${BRANCH} (HTTP ${STATUS})"; exit 1
61
+ fi
62
+
63
+ # Read BRANCH from the environment inside PHP (getenv, no string interpolation -> no PHP injection)
64
+ ENCODED=$(php -r 'echo rawurlencode(getenv("BRANCH"));')
65
+ STATUS=$(curl -sf -o /dev/null -w "%{http_code}" -X DELETE \
66
+ -H "Authorization: token ${TOKEN}" \
67
+ "${API}/${ENCODED}" 2>/dev/null || true)
68
+ if [ "$STATUS" = "204" ]; then
69
+ echo "Deleted branch: ${BRANCH}" >> "$GITHUB_STEP_SUMMARY"
70
+ else
71
+ echo "::warning::Failed to delete ${BRANCH} (HTTP ${STATUS})"
72
+ fi
73
+
74
+ echo "### RC Reverted" >> "$GITHUB_STEP_SUMMARY"
75
+ echo "${BRANCH} → ${DEV_BRANCH}" >> "$GITHUB_STEP_SUMMARY"
package/AGENTS.md ADDED
@@ -0,0 +1,48 @@
1
+ <!--
2
+ Copyright 2026 Moko Consulting
3
+ SPDX-License-Identifier: GPL-3.0-or-later
4
+
5
+ Brief: Agent instructions for the Template-NPM repository. This is the
6
+ authoritative, repo-specific guidance for AI agents. For company-wide
7
+ standards, follow the pointers referenced below rather than duplicating
8
+ them here.
9
+ -->
10
+
11
+ # Template-NPM — Agent Instructions
12
+
13
+ Template-NPM is the scaffold template used to generate new MokoCLI-compliant
14
+ MCP / npm API server repositories. Files committed here seed generated
15
+ npm/MCP-server repos, so keep the scaffolding generic and ready to be renamed
16
+ and filled in for a specific server.
17
+
18
+ > Pointers: standards, contribution rules, and governance live in the
19
+ > repository docs (CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md) and in
20
+ > the MokoCLI standards wiki.
21
+
22
+ ## Platform & Layout
23
+
24
+ - Role: scaffold template for npm/MCP servers (TypeScript/Node).
25
+ - Seed source: scaffolding under `source/`; docs under `docs/`.
26
+ - Tooling: npm (`package.json`), TypeScript (`tsconfig.json`), `Makefile`.
27
+ - Config: `config.example.json` documents server configuration.
28
+ - History: `CHANGELOG.md`.
29
+ - Workflow/automation config lives under `.mokogit/`.
30
+
31
+ ## Commands
32
+
33
+ - `npm install` — install dependencies.
34
+ - `npm run build` — compile TypeScript (see `package.json` scripts).
35
+ - `npm test` — run the test suite (see `package.json` scripts).
36
+
37
+ ## Rules
38
+
39
+ - Never commit agent/tooling scratch: `.claude/`, `.gemini/`, `.mokoai/`,
40
+ `.mcp.json`, `TODO.md`, or minified/built assets.
41
+ - Never commit real secrets — use `config.example.json` as the template only.
42
+ - Repository workflow/automation configuration belongs under `.mokogit/`.
43
+ - Attribute machine-authored commits with a trailer:
44
+ `Authored-by: Moko Consulting`.
45
+ - Because this is a Template-* repo, CI is guarded to skip template repos; the
46
+ npm/MCP CI it defines runs in the generated child repos.
47
+ - Standards: follow MokoCLI conventions —
48
+ https://git.mokoconsulting.tech/MokoConsulting/mokocli/wiki/Home
package/CHANGELOG.md ADDED
@@ -0,0 +1,37 @@
1
+ ## [Unreleased]
2
+
3
+ ## [04.00.00] --- 2026-09-11
4
+
5
+ ### Changed
6
+
7
+ - **Stop reading the per-repo metadata API.** `resolve-source-dir` now resolves the
8
+ source dir purely from the Makefile `SRC_DIR` (source/ default); `pre-release.yml`
9
+ sources the platform from `platform_detect.php` (Makefile `PLATFORM`) instead of
10
+ `GET /repos/.../metadata`. The global platform registry (`GET /api/v1/platforms`)
11
+ is unchanged. Part of retiring the repo metadata tab/API.
12
+
13
+ - CI (`auto-release.yml` / `pre-release.yml`): adopt the **bump-on-dev** release flow. The base version + CHANGELOG `[Unreleased]` promotion now happen on `dev` pre-promotion (promote-rc calls `release_bump_dev.php --branch dev --bump minor`); the RC and stable publishes run `--bump none --no-commit`, so `main` inherits the promoted version via the merge and never mints a divergent `chore(release): build` commit. The main changelog step is now an idempotent safety-net reconcile (no-op on the dev path, still promotes on `fix`/`hotfix`->main). `pre-release.yml`'s dev-push trigger skips `[skip ci]`/`[skip bump]` so the dev base-bump commit does not spawn a redundant dev build.
14
+
15
+ ### Added
16
+ - Root `Makefile` with native build/test/lint/package/release logic. Its identity block (`PROJECT_NAME`/`PROJECT_VERSION`/`PLATFORM`) is the version source of truth, auto-filled per repo by the mokocli workflow sync (`--makefiles`).
17
+
18
+ ### Fixed
19
+ - CI (`npm-build-test.yml`): removed the stranded `ci-summary` job (`needs: [build]`, `if: always()`). The Gitea act_runner never schedules a `needs:`+`if: always()` job — it parks in `waiting` (runner_id 0) forever, so under the org-governance `main` rule (`status_check_contexts: ["*"]`) it silently blocked every PR into `main`. Per-job status is already on the Actions run page and `wiki-reminder` posts its own sticky comment, so the aggregation job was redundant. Replaced with a NOTE comment (matches `ci-go.yml`). No other job changed.
20
+ - CI (`cascade-dev.yml`): the main->dev cascade now authenticates its `git push origin dev` with the bypass-capable PAT (`secrets.MOKOGIT_TOKEN`) instead of the per-job action token. On repos where `dev` is branch-protected, the action token is not on dev's push-bypass allowlist, so the pre-receive hook declined the push and `dev` stranded behind `main`. Each of the three push sites (clean-merge, inline-resolved, cascade_resolve paths) reconfigures the `origin` remote to the PAT immediately before pushing, falling back to the action token when the secret is empty. Merge/resolve logic and all API-call tokens are unchanged. (#257)
21
+
22
+ - CI: the stable release now prunes superseded-major `version/*` branches after publishing — keeps every `version/*` branch of the current major, retires older majors (no-op until a major bump). Same-repo deletes use the per-repo `github.token`.
23
+
24
+ - CI: retire the generic `ci-generic.yml` (npm-build-test.yml is the platform CI).
25
+
26
+ - Branding: Git -> MokoGIT in workflow DEFGROUP tags, committer identity (git-actions[bot] -> mokogit-actions[bot]), and platform prose. Functional tokens (GIT_TOKEN/GITHUB_TOKEN, GIT_ACTIONS_*, vars.GITEA_*, git.mokoconsulting.tech) preserved.
27
+
28
+ ### Removed
29
+ - CI: stripped the retired GitHub Composer auth (`GH_MIRROR_TOKEN`/`GH_PAT` github-oauth) from the workflows — Composer installs the public dev-tools anonymously.
30
+ - CI: stripped GitHub-only workflows (DEFGROUP GitHub.Workflow), which do not run on MokoGIT Actions: auto-dev-issue.yml changelog-validation.yml standards-compliance.yml sync-version-on-merge.yml.
31
+
32
+ - Migrated all workflow and template paths from `.github/` to `.mokogit/`
33
+ - Template source paths updated: `templates/git/` to `templates/mokogit/`
34
+ - HCL definition files removed -- Template repos are now the canonical source
35
+
36
+ - CI: gate build/CI/release/version workflows so they skip template repos; smart-gate the sync workflows to run only on Template-* repos; normalize mokocli/MokoCLI refs and drop the stale mokoconsulting-tech org slug.
37
+ - `branch-cleanup.yml`: auto-delete merged feature branches after PR merge
@@ -0,0 +1,70 @@
1
+ <!-- Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
2
+
3
+ This file is part of a Moko Consulting project.
4
+
5
+ SPDX-LICENSE-IDENTIFIER: GPL-3.0-or-later
6
+
7
+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
10
+
11
+ You should have received a copy of the GNU General Public License (./LICENSE).
12
+
13
+ # FILE INFORMATION
14
+ DEFGROUP:
15
+ INGROUP: Project.Documentation
16
+ REPO: MokoConsulting/Template-NPM
17
+ VERSION: 01.01.00
18
+ PATH: ./CODE_OF_CONDUCT.md
19
+ BRIEF: Contributor Covenant Code of Conduct version 1.3.0
20
+ -->
21
+
22
+ # Contributor Covenant Code of Conduct
23
+
24
+ ## Our Pledge
25
+
26
+ In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
27
+
28
+ ## Our Standards
29
+
30
+ Examples of behavior that contributes to creating a positive environment include:
31
+
32
+ * Using welcoming and inclusive language
33
+ * Being respectful of differing viewpoints and experiences
34
+ * Gracefully accepting constructive criticism
35
+ * Focusing on what is best for the community
36
+ * Showing empathy towards other community members
37
+
38
+ Examples of unacceptable behavior by participants include:
39
+
40
+ * The use of sexualized language or imagery and unwelcome sexual attention or advances
41
+ * Trolling, insulting/derogatory comments, and personal or political attacks
42
+ * Public or private harassment
43
+ * Publishing others' private information, such as a physical or electronic address, without explicit permission
44
+ * Other conduct which could reasonably be considered inappropriate in a professional setting
45
+
46
+ ## Our Responsibilities
47
+
48
+ Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
49
+
50
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
51
+
52
+ ## Scope
53
+
54
+ This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
55
+
56
+ ## Enforcement
57
+
58
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at hello@mokoconsulting.tech. 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
+
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
+
62
+ ## Attribution
63
+
64
+ This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.3.0, available at [http://contributor-covenant.org/version/1/3/0/](http://contributor-covenant.org/version/1/3/0/)
65
+
66
+ ## Revision History
67
+
68
+ | Date | Version | Author | Notes |
69
+ | --- | --- | --- | --- |
70
+ | 2026-01-16 | 1.3.0 | Copilot | Contributor Covenant v1.3.0 |
@@ -0,0 +1,164 @@
1
+ <!-- Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
2
+
3
+ This file is part of a Moko Consulting project.
4
+
5
+ SPDX-LICENSE-IDENTIFIER: GPL-3.0-or-later
6
+
7
+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
10
+
11
+ You should have received a copy of the GNU General Public License (./LICENSE).
12
+
13
+ # FILE INFORMATION
14
+ DEFGROUP:
15
+ INGROUP: Project.Documentation
16
+ REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-NPM
17
+ VERSION: 01.01.00
18
+ PATH: ./CONTRIBUTING.md
19
+ BRIEF: Contribution guidelines for the project
20
+ -->
21
+
22
+ # Contributing to Template-NPM
23
+
24
+ > **Reporting issues:** This repository's issue tracker is disabled. All bugs, feature requests, and questions for MokoConsulting templates and shared tooling are tracked centrally in **[mokocli](https://git.mokoconsulting.tech/MokoConsulting/mokocli/issues)** — please open issues there, not in the individual template repos.
25
+
26
+
27
+ We appreciate your interest in contributing to this project! This document provides guidelines for contributing.
28
+
29
+ ## Table of Contents
30
+
31
+ - [Code of Conduct](#code-of-conduct)
32
+ - [Getting Started](#getting-started)
33
+ - [How to Contribute](#how-to-contribute)
34
+ - [Development Workflow](#development-workflow)
35
+ - [Commit Messages](#commit-messages)
36
+ - [Pull Request Process](#pull-request-process)
37
+
38
+ ## Code of Conduct
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@mokoconsulting.tech.
41
+
42
+ ## Getting Started
43
+
44
+ 1. Fork the repository
45
+ 2. Clone your fork locally
46
+ 3. Set up the development environment
47
+ 4. Create a new branch for your work
48
+
49
+ ## How to Contribute
50
+
51
+ ### Reporting Bugs
52
+
53
+ - Use the GitHub issue tracker
54
+ - Describe the bug clearly with steps to reproduce
55
+ - Include relevant logs, screenshots, or error messages
56
+ - Specify your environment (OS, version, etc.)
57
+
58
+ ### Suggesting Enhancements
59
+
60
+ - Use the GitHub issue tracker
61
+ - Clearly describe the enhancement and its benefits
62
+ - Provide examples of how it would work
63
+
64
+ ### Contributing Code
65
+
66
+ - Pick an issue or create one
67
+ - Fork the repository and create a branch
68
+ - Make your changes following the project conventions
69
+ - Write or update tests as needed
70
+ - Submit a pull request
71
+
72
+ ## Development Workflow
73
+
74
+ 1. Ensure your fork is up to date with the main repository
75
+ 2. Create a feature branch from `main`
76
+ 3. Make your changes
77
+ 4. Test your changes thoroughly
78
+ 5. Commit your changes with clear messages
79
+ 6. Push to your fork
80
+ 7. Create a pull request
81
+
82
+ ## Commit Messages
83
+
84
+ Follow the conventional commit format:
85
+
86
+ ```
87
+ <type>(<scope>): <subject>
88
+
89
+ <body>
90
+
91
+ <footer>
92
+ ```
93
+
94
+ Types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`, `ci`, `build`, `perf`, `revert`
95
+
96
+ Example:
97
+ ```
98
+ feat(docs): add contributing guidelines
99
+
100
+ Add comprehensive contributing guidelines to help new contributors
101
+ understand the development workflow and coding standards.
102
+ ```
103
+
104
+ ## Pull Request Process
105
+
106
+ 1. Update documentation for any new features
107
+ 2. Follow the project's coding style and conventions
108
+ 3. Ensure all tests pass
109
+ 4. Update the CHANGELOG.md with your changes
110
+ 5. Request review from maintainers
111
+ 6. Address any feedback promptly
112
+ 7. Once approved, your PR will be merged
113
+
114
+ ## Style Guidelines
115
+
116
+ - Follow the `.editorconfig` settings
117
+ - Use tabs for indentation (width: 2 spaces)
118
+ - Ensure files end with a newline
119
+ - Use LF line endings (except for Windows-specific files)
120
+ - Trim trailing whitespace (except in Markdown)
121
+
122
+ ## Questions?
123
+
124
+ If you have questions about contributing, feel free to open an issue or contact the maintainers.
125
+
126
+ ## Revision History
127
+
128
+ | Date | Version | Author | Notes |
129
+ | --- | --- | --- | --- |
130
+ | 2026-01-16 | 0.1.0 | Copilot | Initial contributing guidelines |
131
+
132
+ ## Infrastructure Standards
133
+
134
+ All repositories in the MokoConsulting org follow these conventions:
135
+
136
+ ### Release Tags
137
+
138
+ Every repo maintains 5 standard release channel tags:
139
+
140
+ - `development` - Active development builds
141
+ - `alpha` - Early internal testing
142
+ - `beta` - Broader testing / client UAT
143
+ - `release-candidate` - Final QA before production
144
+ - `stable` - Production release
145
+
146
+ ### Branch Protection
147
+
148
+ - `main` is protected; only `jmiller` can push directly
149
+ - All other contributors must use pull requests
150
+ - PRs are automatically reviewed by Claude Code
151
+
152
+ ### CI/CD
153
+
154
+ - MokoGIT Actions runs all CI workflows
155
+ - GitHub Actions are disabled on mirrored repos
156
+ - Workflows live in both `.github/workflows/` and `.mokogit/workflows/`
157
+
158
+ ### Update Servers (Joomla)
159
+
160
+ In manifest `<updateservers>`, MokoGIT must be priority 1, GitHub priority 2.
161
+
162
+ ### Secrets
163
+
164
+ All repos have `GA_TOKEN` and `GH_TOKEN` as Actions secrets for API access.