diff --git a/README.md b/README.md index fe65cd9..51bf97d 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ PHP implementation of MokoStandards — enterprise standards, automation framework, workflow templates, and bulk sync tooling. -> **Primary platform**: [Gitea — git.mokoconsulting.tech](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API) -> **Backup mirror**: [GitHub](https://github.com/mokoconsulting-tech/MokoStandards-API) *(read-only mirror)* +> **Primary platform**: [Gitea — git.mokoconsulting.tech](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API) +> **Backup mirror**: [GitHub](https://github.com/MokoConsulting/MokoStandards-API) *(read-only mirror)* ## What Lives Here @@ -62,7 +62,7 @@ vendor/bin/moko inventory -- --path . | `GA_TOKEN` | Gitea API / Gitea Actions token | | `GH_TOKEN` | GitHub API token (for mirror sync) | | `GITEA_URL` | Gitea instance URL (default: `https://git.mokoconsulting.tech`) | -| `GITEA_ORG` | Gitea organization (default: `mokoconsulting-tech`) | +| `GITEA_ORG` | Gitea organization (default: `MokoConsulting`) | ## License diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index a9048ea..0bdcbb8 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -204,7 +204,7 @@ All files must include: # FILE INFORMATION # DEFGROUP: [Group] # INGROUP: [Parent Group] -# REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +# REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API # PATH: [Relative path from repo root] # VERSION: [X.Y.Z] # Version is dynamically read from README.md title line # BRIEF: [One-line description] @@ -359,4 +359,4 @@ All changes documented in `CHANGELOG.md` following Keep a Changelog format. **Maintained by**: Moko Consulting **Questions**: hello@mokoconsulting.tech -**Repository**: https://github.com/mokoconsulting-tech/MokoStandards +**Repository**: https://github.com/MokoConsulting/MokoStandards diff --git a/docs/AUTO_CREATE_ORG_PROJECTS.md b/docs/AUTO_CREATE_ORG_PROJECTS.md index 40bac22..f7af18c 100644 --- a/docs/AUTO_CREATE_ORG_PROJECTS.md +++ b/docs/AUTO_CREATE_ORG_PROJECTS.md @@ -71,7 +71,7 @@ python3 scripts/auto_create_org_projects.py --org your-org-name ### Combined Options ```bash -python3 scripts/auto_create_org_projects.py --dry-run --verbose --org mokoconsulting-tech +python3 scripts/auto_create_org_projects.py --dry-run --verbose --org MokoConsulting ``` ## What It Does diff --git a/docs/api/automation/index.md b/docs/api/automation/index.md index 08ee2e5..815c68f 100644 --- a/docs/api/automation/index.md +++ b/docs/api/automation/index.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation.API INGROUP: MokoStandards.Documentation -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/api/automation/index.md VERSION: 04.06.00 BRIEF: API reference for automation scripts in api/automation/ @@ -31,16 +31,16 @@ and opens Pull Requests with the changes. ```bash # Dry-run sync for the entire org -php api/automation/bulk_sync.php --org mokoconsulting-tech --dry-run +php api/automation/bulk_sync.php --org MokoConsulting --dry-run # Sync specific repositories -php api/automation/bulk_sync.php --org mokoconsulting-tech --repos "repo-a,repo-b" +php api/automation/bulk_sync.php --org MokoConsulting --repos "repo-a,repo-b" # Exclude repos and skip archived -php api/automation/bulk_sync.php --org mokoconsulting-tech --exclude "legacy-repo" --skip-archived +php api/automation/bulk_sync.php --org MokoConsulting --exclude "legacy-repo" --skip-archived # Auto-approve PRs (non-interactive) -php api/automation/bulk_sync.php --org mokoconsulting-tech --yes +php api/automation/bulk_sync.php --org MokoConsulting --yes ``` | Option | Description | @@ -78,7 +78,7 @@ php api/automation/push_files.php --files=templates/foo.txt:docs/foo.txt --repos | Option | Description | |--------|-------------| -| `--org ` | GitHub organization (default: mokoconsulting-tech) | +| `--org ` | GitHub organization (default: MokoConsulting) | | `--repos ` | Target repositories — comma-separated (required) | | `--files ` | Files to push — destination paths or `source:dest` pairs (required) | | `--message ` | Custom commit message | diff --git a/docs/api/definitions/sync/index.md b/docs/api/definitions/sync/index.md index 6e69dab..d41e351 100644 --- a/docs/api/definitions/sync/index.md +++ b/docs/api/definitions/sync/index.md @@ -160,7 +160,7 @@ Definitions are automatically regenerated on each bulk sync. To manually regener ```bash # Regenerate definition for a specific repository php api/automation/bulk_sync.php \ - --repos mokoconsulting-tech/MyRepo \ + --repos MokoConsulting/MyRepo \ --regenerate-definitions ``` diff --git a/docs/api/deploy/index.md b/docs/api/deploy/index.md index 50c26c8..b5497f6 100644 --- a/docs/api/deploy/index.md +++ b/docs/api/deploy/index.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation.API INGROUP: MokoStandards.Documentation -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/api/deploy/index.md VERSION: 04.06.00 BRIEF: API reference for deployment scripts in api/deploy/ diff --git a/docs/api/fix/index.md b/docs/api/fix/index.md index a284f31..ac75113 100644 --- a/docs/api/fix/index.md +++ b/docs/api/fix/index.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation.API INGROUP: MokoStandards.Documentation -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/api/fix/index.md VERSION: 04.06.00 BRIEF: API reference for automated fix scripts in api/fix/ diff --git a/docs/api/index.md b/docs/api/index.md index 212936e..50b280e 100644 --- a/docs/api/index.md +++ b/docs/api/index.md @@ -254,7 +254,7 @@ php api/deploy/deploy-sftp.php --path /path/to/project ```bash # Sync templates to multiple repositories php api/automation/bulk_sync.php \ - --org mokoconsulting-tech \ + --org MokoConsulting \ --repos "repo1,repo2,repo3" ``` diff --git a/docs/api/maintenance/index.md b/docs/api/maintenance/index.md index 5f99a5a..e61c3f6 100644 --- a/docs/api/maintenance/index.md +++ b/docs/api/maintenance/index.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation.API INGROUP: MokoStandards.Documentation -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/api/maintenance/index.md VERSION: 04.06.00 BRIEF: API reference for housekeeping and maintenance scripts in api/maintenance/ @@ -151,7 +151,7 @@ php api/maintenance/rotate_secrets.php --all --json | `--repo ` | Audit a single repo | | `--json` | Machine-readable JSON output | | `--create-issue` | Post/update audit results as a GitHub issue | -| `--org ` | GitHub organization (default: `mokoconsulting-tech`) | +| `--org ` | GitHub organization (default: `MokoConsulting`) | --- @@ -171,7 +171,7 @@ php api/maintenance/repo_inventory.php --json |--------|-------------| | `--dry-run` | Preview without posting issue | | `--json` | JSON output to stdout | -| `--org ` | GitHub organization (default: `mokoconsulting-tech`) | +| `--org ` | GitHub organization (default: `MokoConsulting`) | --- diff --git a/docs/api/plugin/index.md b/docs/api/plugin/index.md index 3d29ce0..24072f6 100644 --- a/docs/api/plugin/index.md +++ b/docs/api/plugin/index.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation.API INGROUP: MokoStandards.Documentation -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/api/plugin/index.md VERSION: 04.06.00 BRIEF: API reference for plugin runner scripts in api/plugin_*.php diff --git a/docs/api/validate/index.md b/docs/api/validate/index.md index 87c3fed..26b0353 100644 --- a/docs/api/validate/index.md +++ b/docs/api/validate/index.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation.API INGROUP: MokoStandards.Documentation -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/api/validate/index.md VERSION: 04.06.00 BRIEF: API reference for all validation scripts in api/validate/ @@ -233,9 +233,9 @@ Scans multiple repositories in a GitHub organization for divergence from MokoStandards templates. Can create GitHub issues in drifted repos. ```bash -php api/validate/scan_drift.php --org mokoconsulting-tech -php api/validate/scan_drift.php --org mokoconsulting-tech --type dolibarr --json -php api/validate/scan_drift.php --org mokoconsulting-tech --create-issues --threshold 20 +php api/validate/scan_drift.php --org MokoConsulting +php api/validate/scan_drift.php --org MokoConsulting --type dolibarr --json +php api/validate/scan_drift.php --org MokoConsulting --create-issues --threshold 20 ``` | Option | Description | @@ -267,7 +267,7 @@ php api/validate/check_composer_deps.php --all --json | `--repo ` | Check a single repository | | `--all` | Check all governed repos | | `--json` | Machine-readable JSON output | -| `--org ` | GitHub organization (default: `mokoconsulting-tech`) | +| `--org ` | GitHub organization (default: `MokoConsulting`) | --- diff --git a/docs/automation/README.md b/docs/automation/README.md index 8064f78..c4641a4 100644 --- a/docs/automation/README.md +++ b/docs/automation/README.md @@ -1,4 +1,4 @@ -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Automation Documentation diff --git a/docs/automation/branch-version-automation.md b/docs/automation/branch-version-automation.md index a6c2003..2097ba1 100644 --- a/docs/automation/branch-version-automation.md +++ b/docs/automation/branch-version-automation.md @@ -1,4 +1,4 @@ -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) > **⚠️ DEPRECATED DOCUMENTATION** > **Status**: REMOVED — This Python-based automation system has been replaced by PHP scripts. See api/automation/. diff --git a/docs/automation/push-files.md b/docs/automation/push-files.md index 8b79520..362950f 100644 --- a/docs/automation/push-files.md +++ b/docs/automation/push-files.md @@ -8,13 +8,13 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/automation/push-files.md VERSION: 04.06.00 BRIEF: Guide for push_files.php — push specific files to selected repositories --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Push Files @@ -40,7 +40,7 @@ php api/automation/push_files.php --repos MokoCRM --files "LICENSE" --yes --no-i | Flag | Description | |------|-------------| -| `--org` | GitHub organization (default: mokoconsulting-tech) | +| `--org` | GitHub organization (default: MokoConsulting) | | `--repos` | Target repositories (space-separated, required) | | `--files` | Files to push (space-separated, required) | | `--direct` | Push directly to main (no PR) | diff --git a/docs/automation/repo-cleanup.md b/docs/automation/repo-cleanup.md index d7ea4c8..f34ce79 100644 --- a/docs/automation/repo-cleanup.md +++ b/docs/automation/repo-cleanup.md @@ -8,13 +8,13 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/automation/repo-cleanup.md VERSION: 04.06.00 BRIEF: Guide for repo_cleanup.php and the repository-cleanup.yml recurring maintenance workflow --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Repository Cleanup @@ -105,7 +105,7 @@ php api/automation/repo_cleanup.php --repos MokoCRM --yes | Flag | Description | |------|-------------| -| `--org` | GitHub organization (default: mokoconsulting-tech) | +| `--org` | GitHub organization (default: MokoConsulting) | | `--repos` | Specific repos to clean (space-separated) | | `--close-issues` | Close tracking issues where the linked PR has been merged | | `--skip-archived` | Skip archived repositories | diff --git a/docs/workflows/README.md b/docs/workflows/README.md index 459a5be..2a94420 100644 --- a/docs/workflows/README.md +++ b/docs/workflows/README.md @@ -1,4 +1,4 @@ -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # GitHub Workflow Templates Documentation @@ -572,7 +572,7 @@ For issues with templates: |---|---| | Document | Workflow Templates Documentation | | Path | /docs/workflows/README.md | -| Repository | https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards | +| Repository | https://git.mokoconsulting.tech/MokoConsulting/MokoStandards | | Owner | Moko Consulting | | Status | Active | | Version | 04.00.04 | diff --git a/docs/workflows/auto-release.md b/docs/workflows/auto-release.md index 31ecad5..6799394 100644 --- a/docs/workflows/auto-release.md +++ b/docs/workflows/auto-release.md @@ -8,13 +8,13 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/auto-release.md VERSION: 04.06.00 BRIEF: Guide for the auto-release workflow — creates GitHub Releases on merge to main --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Auto Release diff --git a/docs/workflows/build-release.md b/docs/workflows/build-release.md index 671f5fd..7ccafd3 100644 --- a/docs/workflows/build-release.md +++ b/docs/workflows/build-release.md @@ -6,7 +6,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/build-release.md VERSION: 04.06.00 BRIEF: Build & Release pipeline — unified workflow for version branches, tags, and GitHub Releases diff --git a/docs/workflows/bulk-repo-sync.md b/docs/workflows/bulk-repo-sync.md index 2f26a23..28085ed 100644 --- a/docs/workflows/bulk-repo-sync.md +++ b/docs/workflows/bulk-repo-sync.md @@ -21,13 +21,13 @@ along with this program. If not, see . # FILE INFORMATION DEFGROUP: MokoStandards.Workflow INGROUP: MokoStandards.Documentation -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/bulk-repo-sync.md VERSION: 04.06.00 BRIEF: Comprehensive documentation for the bulk repository sync workflow --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) ![Enterprise Ready](https://img.shields.io/badge/enterprise-ready-green) ![Security Validated](https://img.shields.io/badge/security-validated-green) @@ -757,7 +757,7 @@ For questions or issues: 1. **Documentation**: Review this guide and related documentation 2. **Dry Run**: Test with dry-run mode to diagnose issues 3. **Logs**: Check workflow logs for detailed error messages -4. **Issues**: Open issue in [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/issues) +4. **Issues**: Open issue in [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/issues) ### Contributing diff --git a/docs/workflows/changelog-management.md b/docs/workflows/changelog-management.md index f17e3ab..2a76cc3 100644 --- a/docs/workflows/changelog-management.md +++ b/docs/workflows/changelog-management.md @@ -8,13 +8,13 @@ # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards.Workflows - REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API/ + REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API/ VERSION: 04.06.00 PATH: /docs/workflows/changelog-management.md BRIEF: Documentation for changelog management workflows and scripts --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Changelog Management System diff --git a/docs/workflows/demo-deployment.md b/docs/workflows/demo-deployment.md index 6c77614..9b1085d 100644 --- a/docs/workflows/demo-deployment.md +++ b/docs/workflows/demo-deployment.md @@ -8,13 +8,13 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/demo-deployment.md VERSION: 04.06.00 BRIEF: Guide for the SFTP demo server deployment workflow --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Demo Server Deployment diff --git a/docs/workflows/dev-branch-tracking.md b/docs/workflows/dev-branch-tracking.md index 27f6471..f173025 100644 --- a/docs/workflows/dev-branch-tracking.md +++ b/docs/workflows/dev-branch-tracking.md @@ -6,13 +6,13 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards.Workflows -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/dev-branch-tracking.md VERSION: 04.06.00 BRIEF: Dev branch tracking and issue coordination system documentation --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Dev Branch Tracking and Issue Coordination diff --git a/docs/workflows/dev-deployment.md b/docs/workflows/dev-deployment.md index 5dcb20a..6ed4e0e 100644 --- a/docs/workflows/dev-deployment.md +++ b/docs/workflows/dev-deployment.md @@ -8,13 +8,13 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/dev-deployment.md VERSION: 04.06.00 BRIEF: Guide for the SFTP development server deployment workflow --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Development Server Deployment @@ -264,7 +264,7 @@ Expected behaviour for repos without a `src/` directory. No files are uploaded; | Applies To | All Repositories | | Jurisdiction | Tennessee, USA | | Owner | Moko Consulting | -| Repo | https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards | +| Repo | https://git.mokoconsulting.tech/MokoConsulting/MokoStandards | | Path | /docs/workflows/dev-deployment.md | | Version | 04.06.00 | | Status | Active | diff --git a/docs/workflows/index.md b/docs/workflows/index.md index 9889cd0..71faf88 100644 --- a/docs/workflows/index.md +++ b/docs/workflows/index.md @@ -1,4 +1,4 @@ -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Docs Index: /docs/workflows diff --git a/docs/workflows/release-system.md b/docs/workflows/release-system.md index 67e5463..6d97c6a 100644 --- a/docs/workflows/release-system.md +++ b/docs/workflows/release-system.md @@ -6,13 +6,13 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards.Workflows -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/release-system.md VERSION: 04.06.00 BRIEF: Documentation for the unified release system --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Release System diff --git a/docs/workflows/reserve-dolibarr-module-id.md b/docs/workflows/reserve-dolibarr-module-id.md index e183f8a..0ba9da2 100644 --- a/docs/workflows/reserve-dolibarr-module-id.md +++ b/docs/workflows/reserve-dolibarr-module-id.md @@ -1,4 +1,4 @@ -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Reserve Dolibarr Module ID Workflow @@ -30,7 +30,7 @@ The `reserve-dolibarr-module-id.yml` workflow automates the reservation of Dolib **File**: `.github/workflows/reserve-dolibarr-module-id.yml` **Trigger**: Manual (workflow_dispatch) **Permissions**: `contents: write`, `pull-requests: write` -**Repository**: [https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +**Repository**: [https://git.mokoconsulting.tech/MokoConsulting/MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) ## Architecture @@ -246,7 +246,7 @@ Reserved: 2026-02-19 16:30:00 UTC DO NOT CHANGE THIS ID! This ID is registered in the MokoStandards module registry: -https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/development/crm/module-registry.md +https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/development/crm/module-registry.md ``` If `push_to_remote` is disabled (default), you can manually create this file and update the module descriptor later. @@ -280,7 +280,7 @@ The workflow generates a summary with: **Module Name:** MokoDoliExample **Reserved ID:** 185064 **Repository:** https://git.mokoconsulting.tech/mokoconsulting-tech/MokoDoliExample -**Pull Request:** https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/pull/123 +**Pull Request:** https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/pull/123 ### Next Steps 1. The GitHub Actions workflow has created the pull request above automatically @@ -679,7 +679,7 @@ For issues or questions about this workflow: | Applies To | MokoStandards Repository | | Jurisdiction | Tennessee, USA | | Owner | Moko Consulting | -| Repo | https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards | +| Repo | https://git.mokoconsulting.tech/MokoConsulting/MokoStandards | | Path | /docs/workflows/reserve-dolibarr-module-id.md | | Version | 04.00.04 | | Status | Active | diff --git a/docs/workflows/reusable-workflows.md b/docs/workflows/reusable-workflows.md index 4ff2253..9a66fb5 100644 --- a/docs/workflows/reusable-workflows.md +++ b/docs/workflows/reusable-workflows.md @@ -8,13 +8,13 @@ # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards.Workflows - REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API/ + REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API/ VERSION: 04.06.00 PATH: /docs/workflows/reusable-workflows.md BRIEF: Documentation for reusable GitHub Actions workflows --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Reusable Workflows @@ -26,14 +26,14 @@ MokoStandards provides seven reusable GitHub Actions workflows that enable consi # Basic quality check jobs: quality: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-php-quality.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-php-quality.yml@main # Type-aware build and release build: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-build.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-build.yml@main release: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-release.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-release.yml@main with: version: '1.0.0' ``` @@ -68,7 +68,7 @@ Runs comprehensive PHP code quality checks using PHPCS, PHPStan, and Psalm with ```yaml jobs: quality: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-php-quality.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-php-quality.yml@main with: php-versions: '["8.1", "8.2"]' tools: '["phpcs", "phpstan", "psalm"]' @@ -93,7 +93,7 @@ Matrix testing for Joomla extensions across PHP and Joomla versions with PHPUnit ```yaml jobs: test: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-joomla-testing.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-joomla-testing.yml@main with: php-versions: '["8.1", "8.2"]' joomla-versions: '["4.4", "5.0", "5.1"]' @@ -118,7 +118,7 @@ Repository standards validation with configurable profiles (basic, full, strict) ```yaml jobs: validate: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-ci-validation.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-ci-validation.yml@main with: profile: 'full' validate-security: true @@ -149,7 +149,7 @@ Automatically cleans up stale and merged branches with configurable exclusion pa ```yaml jobs: cleanup: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-branch-cleanup.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-branch-cleanup.yml@main with: stale-days: 90 delete-merged: true @@ -178,7 +178,7 @@ jobs: ```yaml jobs: cleanup: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-branch-cleanup.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-branch-cleanup.yml@main with: stale-days: 60 delete-merged: true @@ -200,7 +200,7 @@ Automatically detects project type and provides outputs for downstream workflows ```yaml jobs: detect: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-project-detector.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-project-detector.yml@main ``` **Outputs:** @@ -217,7 +217,7 @@ Universal build workflow that adapts to project type with automatic dependency m ```yaml jobs: build: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-build.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-build.yml@main with: php-version: '8.1' node-version: '20.x' @@ -243,7 +243,7 @@ Creates releases with type-specific packaging and marketplace support. ```yaml jobs: release: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-release.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-release.yml@main with: version: '1.0.0' prerelease: false @@ -272,7 +272,7 @@ Multi-environment deployment with type-specific logic and health checks. ```yaml jobs: deploy: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-deploy.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-deploy.yml@main with: environment: staging deployment-method: rsync @@ -326,11 +326,11 @@ permissions: jobs: # Auto-detect project type detect: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-project-detector.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-project-detector.yml@main # Validate code validate: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-ci-validation.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-ci-validation.yml@main with: profile: 'full' @@ -338,7 +338,7 @@ jobs: quality: needs: detect if: needs.detect.outputs.has-php == 'true' - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-php-quality.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-php-quality.yml@main with: php-versions: '["8.1", "8.2"]' @@ -346,7 +346,7 @@ jobs: test: needs: [detect, quality] if: needs.detect.outputs.project-type == 'joomla' - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-joomla-testing.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-joomla-testing.yml@main with: php-versions: '["8.1", "8.2"]' coverage: true @@ -356,13 +356,13 @@ jobs: # Build (works for all types) build: needs: [detect, validate] - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-build.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-build.yml@main # Deploy to staging deploy-staging: needs: build if: github.ref == 'refs/heads/staging' - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-deploy.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-deploy.yml@main with: environment: staging deployment-method: rsync @@ -372,7 +372,7 @@ jobs: release: needs: [detect, build] if: startsWith(github.ref, 'refs/tags/v') - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-release.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-release.yml@main with: version: ${{ github.ref_name }} @@ -380,7 +380,7 @@ jobs: deploy-production: needs: release if: github.event_name == 'release' - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-deploy.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-deploy.yml@main with: environment: production version: ${{ github.event.release.tag_name }} @@ -398,19 +398,19 @@ on: [push, pull_request] jobs: validate: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-ci-validation.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-ci-validation.yml@main with: profile: 'full' quality: needs: validate - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-php-quality.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-php-quality.yml@main with: php-versions: '["8.1", "8.2"]' test: needs: quality - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-joomla-testing.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-joomla-testing.yml@main with: coverage: true secrets: @@ -425,17 +425,17 @@ jobs: **Recommended:** Pin to main branch for automatic updates ```yaml -uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-php-quality.yml@main +uses: MokoConsulting/MokoStandards/.github/workflows/reusable-php-quality.yml@main ``` **Stable:** Pin to specific tag ```yaml -uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-php-quality.yml@v1.0.0 +uses: MokoConsulting/MokoStandards/.github/workflows/reusable-php-quality.yml@v1.0.0 ``` **Maximum Stability:** Pin to commit SHA ```yaml -uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-php-quality.yml@abc1234 +uses: MokoConsulting/MokoStandards/.github/workflows/reusable-php-quality.yml@abc1234 ``` ### Secret Management @@ -461,14 +461,14 @@ jobs: # Dev branches: basic validation validate-dev: if: startsWith(github.ref, 'refs/heads/dev/') - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-ci-validation.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-ci-validation.yml@main with: profile: 'basic' # Main branch: strict validation validate-main: if: github.ref == 'refs/heads/main' - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-ci-validation.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-ci-validation.yml@main with: profile: 'strict' fail-on-warnings: true @@ -479,7 +479,7 @@ jobs: ## Troubleshooting ### Workflow Not Found -**Error:** `Unable to resolve action mokoconsulting-tech/MokoStandards/.github/workflows/...` +**Error:** `Unable to resolve action MokoConsulting/MokoStandards/.github/workflows/...` **Solution:** Ensure calling repository has access to MokoStandards. For private repositories, configure proper access permissions. @@ -536,7 +536,7 @@ jobs: # After: Reusable workflow jobs: quality: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-php-quality.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-php-quality.yml@main with: phpcs-standard: 'PSR12' tools: '["phpcs"]' diff --git a/docs/workflows/rs-deployment.md b/docs/workflows/rs-deployment.md index fa5cd36..6665db3 100644 --- a/docs/workflows/rs-deployment.md +++ b/docs/workflows/rs-deployment.md @@ -8,13 +8,13 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/rs-deployment.md VERSION: 04.06.00 BRIEF: Guide for the SFTP release staging server deployment workflow --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Release Staging (RS) Server Deployment diff --git a/docs/workflows/shared-workflows.md b/docs/workflows/shared-workflows.md index 4e831ec..b9878ad 100644 --- a/docs/workflows/shared-workflows.md +++ b/docs/workflows/shared-workflows.md @@ -8,13 +8,13 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/shared-workflows.md VERSION: 04.06.00 BRIEF: Reference for shared workflow templates synced to all governed repos --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Shared Workflow Templates diff --git a/docs/workflows/standards-compliance.md b/docs/workflows/standards-compliance.md index f07c3b6..f6560ed 100644 --- a/docs/workflows/standards-compliance.md +++ b/docs/workflows/standards-compliance.md @@ -1,4 +1,4 @@ -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Standards Compliance Workflow diff --git a/docs/workflows/sub-issue-management.md b/docs/workflows/sub-issue-management.md index b7e33bb..1bf08d6 100644 --- a/docs/workflows/sub-issue-management.md +++ b/docs/workflows/sub-issue-management.md @@ -17,7 +17,7 @@ Use sub-issues when: ### Method 1: Using the Issue Template (Manual) -1. Go to the [New Issue page](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/issues/new/choose) +1. Go to the [New Issue page](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/issues/new/choose) 2. Select the "Sub-Task" template 3. Fill in the required fields: - **Parent Issue**: The issue number this sub-task belongs to (e.g., #193) diff --git a/docs/workflows/update-server.md b/docs/workflows/update-server.md index 4a4a8e5..4260163 100644 --- a/docs/workflows/update-server.md +++ b/docs/workflows/update-server.md @@ -6,7 +6,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards.Workflows -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/update-server.md VERSION: 04.06.00 BRIEF: How update files (update.txt and updates.xml) are generated per platform diff --git a/docs/workflows/workflow-architecture.md b/docs/workflows/workflow-architecture.md index 77d6ec5..1723748 100644 --- a/docs/workflows/workflow-architecture.md +++ b/docs/workflows/workflow-architecture.md @@ -21,13 +21,13 @@ along with this program. If not, see . # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards.Workflows -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/workflow-architecture.md VERSION: 04.06.00 BRIEF: Workflow architecture, hierarchy, and design patterns --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Workflow Architecture @@ -103,7 +103,7 @@ Moko Consulting uses a three-tier architecture for GitHub Actions workflows: ### Tier 2: Public Reusable Workflows -**Location**: `mokoconsulting-tech/MokoStandards/.github/workflows/` +**Location**: `MokoConsulting/MokoStandards/.github/workflows/` **Characteristics**: - Public and community-accessible @@ -160,17 +160,17 @@ Automatically detect project type and execute appropriate build/test strategy. ```yaml jobs: detect: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-project-detector.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-project-detector.yml@main build-joomla: needs: detect if: needs.detect.outputs.project-type == 'joomla' - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-joomla-testing.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-joomla-testing.yml@main build-generic: needs: detect if: needs.detect.outputs.project-type == 'generic' - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-build.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-build.yml@main ``` **Benefits**: @@ -186,18 +186,18 @@ Build complex workflows by composing simple reusable workflows. jobs: # Step 1: Validate code validate: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-ci-validation.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-ci-validation.yml@main # Step 2: Build if validation passes build: needs: validate - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-build.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-build.yml@main # Step 3: Deploy if build passes deploy: needs: build if: github.ref == 'refs/heads/main' - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-deploy.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-deploy.yml@main secrets: inherit ``` @@ -218,7 +218,7 @@ jobs: matrix: php-version: ['7.4', '8.0', '8.1', '8.2'] os: [ubuntu-latest, windows-latest] - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-php-quality.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-php-quality.yml@main with: php-version: ${{ matrix.php-version }} ``` @@ -236,13 +236,13 @@ Deploy to different environments based on branch or tag. jobs: deploy-staging: if: github.ref == 'refs/heads/dev' - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-deploy.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-deploy.yml@main with: environment: staging deploy-production: if: startsWith(github.ref, 'refs/tags/v') - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-deploy.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-deploy.yml@main with: environment: production ``` @@ -275,7 +275,7 @@ on: jobs: deploy: - uses: mokoconsulting-tech/MokoStandards/.github/workflows/reusable-deploy.yml@main + uses: MokoConsulting/MokoStandards/.github/workflows/reusable-deploy.yml@main with: environment: ${{ inputs.environment }} dry-run: ${{ inputs.dry-run }} @@ -546,7 +546,7 @@ jobs: ## Metadata * **Document**: .github/WORKFLOW_ARCHITECTURE.md -* **Repository**: [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +* **Repository**: [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) * **Owner**: Moko Consulting Engineering Team * **Scope**: Workflow architecture and design patterns * **Lifecycle**: Active diff --git a/docs/workflows/workflow-inventory.md b/docs/workflows/workflow-inventory.md index 0a6aa23..4dfc4e7 100644 --- a/docs/workflows/workflow-inventory.md +++ b/docs/workflows/workflow-inventory.md @@ -6,13 +6,13 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards.Workflows -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /docs/workflows/workflow-inventory.md VERSION: 04.06.00 BRIEF: Complete inventory of GitHub Actions workflows for migration planning --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-04.06.00-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # GitHub Actions Workflow Inventory diff --git a/templates/configs/README.md b/templates/configs/README.md index ef078d5..05b6e56 100644 --- a/templates/configs/README.md +++ b/templates/configs/README.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Templates INGROUP: MokoStandards -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards PATH: /templates/configs/README.md VERSION: 04.06.00 BRIEF: Code quality and security tool configuration templates @@ -298,8 +298,8 @@ These tools work seamlessly with: ## Support and Updates Configuration templates are maintained in the MokoStandards repository: -- **Repository**: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards -- **Documentation**: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/tree/main/docs +- **Repository**: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards +- **Documentation**: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/tree/main/docs - **Issues**: Report problems or suggest improvements via GitHub Issues ## Version History diff --git a/templates/docs/dolibarr/update-server.md b/templates/docs/dolibarr/update-server.md index a000145..a110f34 100644 --- a/templates/docs/dolibarr/update-server.md +++ b/templates/docs/dolibarr/update-server.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards.Templates -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards PATH: /templates/docs/dolibarr/update-server.md VERSION: 04.06.00 BRIEF: Developer guide for wiring up Dolibarr module update checks — synced to docs/ in all CRM repos diff --git a/templates/docs/required/GOVERNANCE.md b/templates/docs/required/GOVERNANCE.md index 5a92efe..0abbf81 100644 --- a/templates/docs/required/GOVERNANCE.md +++ b/templates/docs/required/GOVERNANCE.md @@ -24,7 +24,7 @@ BRIEF: Project governance rules, roles, and decision process for {{repo_name}} --> -[![MokoStandards](https://img.shields.io/badge/MokoStandards-{{standards_version}}-blue)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-{{standards_version}}-blue)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) # Project Governance @@ -32,10 +32,10 @@ This document defines the governance model for the `{{repo_name}}` repository within the `{{org}}` organization. It is automatically maintained by -[MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) v{{standards_version}}. +[MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) v{{standards_version}}. Full governance policy is defined in the MokoStandards source repository: -[docs/policy/GOVERNANCE.md](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/policy/GOVERNANCE.md) +[docs/policy/GOVERNANCE.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/GOVERNANCE.md) --- @@ -80,7 +80,7 @@ available. The following requirements remain mandatory regardless: 4. **Documentation** — changes are documented in `CHANGELOG.md`. See the full policy: -[Sole Operator Policy](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/policy/GOVERNANCE.md#sole-operator-policy) +[Sole Operator Policy](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/GOVERNANCE.md#sole-operator-policy) --- diff --git a/templates/docs/required/template-CONTRIBUTING.md b/templates/docs/required/template-CONTRIBUTING.md index acc105e..4e4d165 100644 --- a/templates/docs/required/template-CONTRIBUTING.md +++ b/templates/docs/required/template-CONTRIBUTING.md @@ -24,7 +24,7 @@ Thank you for your interest in contributing to **{{REPO_NAME}}**! -This repository is governed by **[MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards)** — the authoritative source of coding standards, workflows, and policies for all Moko Consulting repositories. +This repository is governed by **[MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards)** — the authoritative source of coding standards, workflows, and policies for all Moko Consulting repositories. ## Branch Strategy @@ -84,16 +84,16 @@ When your PR is merged to `main`, these workflows run automatically: ## Coding Standards -All contributions must follow [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards): +All contributions must follow [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards): | Standard | Reference | |----------|-----------| -| Coding Style | [coding-style-guide.md](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/policy/coding-style-guide.md) | -| File Headers | [file-header-standards.md](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/policy/file-header-standards.md) | -| Branching | [branch-release-strategy.md](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/policy/branch-release-strategy.md) | -| Merge Strategy | [merge-strategy.md](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/policy/merge-strategy.md) | -| Scripting | [scripting-standards.md](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/policy/scripting-standards.md) | -| Build & Release | [build-release.md](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/workflows/build-release.md) | +| Coding Style | [coding-style-guide.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/coding-style-guide.md) | +| File Headers | [file-header-standards.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/file-header-standards.md) | +| Branching | [branch-release-strategy.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/branch-release-strategy.md) | +| Merge Strategy | [merge-strategy.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/merge-strategy.md) | +| Scripting | [scripting-standards.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/scripting-standards.md) | +| Build & Release | [build-release.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/workflows/build-release.md) | ## PR Checklist @@ -125,4 +125,4 @@ By contributing, you agree that your contributions will be licensed under the [G --- -*This file is synced from [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards). Do not edit directly — changes will be overwritten on the next sync.* +*This file is synced from [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards). Do not edit directly — changes will be overwritten on the next sync.* diff --git a/templates/docs/required/template-README.md b/templates/docs/required/template-README.md index 93fc585..18d11a5 100644 --- a/templates/docs/required/template-README.md +++ b/templates/docs/required/template-README.md @@ -24,7 +24,7 @@ BRIEF: {{REPO_DESCRIPTION}} [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [VERSION: 04.06.00] -[![MokoStandards](https://img.shields.io/badge/MokoStandards-{{standards_version}}-orange)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-{{standards_version}}-orange)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) > {{REPO_DESCRIPTION}} @@ -42,7 +42,7 @@ BRIEF: {{REPO_DESCRIPTION}} ## Contributing -See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. This repository follows [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards). +See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. This repository follows [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards). ## License diff --git a/templates/docs/required/template-update-server-dolibarr.md b/templates/docs/required/template-update-server-dolibarr.md index f8452fe..6ef03cb 100644 --- a/templates/docs/required/template-update-server-dolibarr.md +++ b/templates/docs/required/template-update-server-dolibarr.md @@ -16,7 +16,7 @@ BRIEF: How this module's update server file (update.txt) is managed # Dolibarr Update Server -[![MokoStandards](https://img.shields.io/badge/MokoStandards-{{standards_version}}-blue)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-{{standards_version}}-blue)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) This document explains how `update.txt` is automatically managed for this Dolibarr module. @@ -67,4 +67,4 @@ The `repo_health.yml` workflow verifies on every commit: --- -*Managed by [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards). See [docs/workflows/update-server.md](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/workflows/update-server.md) for the full specification.* +*Managed by [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards). See [docs/workflows/update-server.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/workflows/update-server.md) for the full specification.* diff --git a/templates/docs/required/template-update-server-joomla.md b/templates/docs/required/template-update-server-joomla.md index dc7c1c0..dc5e869 100644 --- a/templates/docs/required/template-update-server-joomla.md +++ b/templates/docs/required/template-update-server-joomla.md @@ -16,7 +16,7 @@ BRIEF: How this extension's Joomla update server file (updates.xml) is managed # Joomla Update Server -[![MokoStandards](https://img.shields.io/badge/MokoStandards-{{standards_version}}-blue)](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +[![MokoStandards](https://img.shields.io/badge/MokoStandards-{{standards_version}}-blue)](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) This document explains how `updates.xml` is automatically managed for this Joomla extension following the [Joomla Update Server specification](https://docs.joomla.org/Deploying_an_Update_Server). @@ -119,4 +119,4 @@ The `repo_health.yml` workflow verifies on every commit: --- -*Managed by [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards). See [docs/workflows/update-server.md](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/workflows/update-server.md) for the full specification.* +*Managed by [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards). See [docs/workflows/update-server.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/workflows/update-server.md) for the full specification.* diff --git a/templates/gitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md b/templates/gitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md index 558039d..45a3e47 100644 --- a/templates/gitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md +++ b/templates/gitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md @@ -92,7 +92,7 @@ List Dolibarr hooks this module will use: ### ID Range Preference -Based on the [Dolibarr Module ID Policy](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/policy/DOLIBARR_MODULE_ID_REQUEST.md): +Based on the [Dolibarr Module ID Policy](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/DOLIBARR_MODULE_ID_REQUEST.md): **Preferred Range** (will be assigned by coordinator): - [ ] Internal module (100000-109999) @@ -143,7 +143,7 @@ If similar modules exist, explain why a new module is needed: ### Acknowledgments -- [ ] I have read the [Dolibarr Module ID Policy](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/policy/DOLIBARR_MODULE_ID_REQUEST.md) +- [ ] I have read the [Dolibarr Module ID Policy](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/DOLIBARR_MODULE_ID_REQUEST.md) - [ ] I understand internal modules use range 100000-119999 - [ ] I understand public modules require external registration with Dolibarr Foundation - [ ] I understand module IDs are never reused once allocated diff --git a/templates/gitea/ISSUE_TEMPLATE/feature_request.md b/templates/gitea/ISSUE_TEMPLATE/feature_request.md index e2db572..7b76dc9 100644 --- a/templates/gitea/ISSUE_TEMPLATE/feature_request.md +++ b/templates/gitea/ISSUE_TEMPLATE/feature_request.md @@ -37,7 +37,7 @@ If you have ideas about how this could be implemented, share them here: Add any other context, mockups, or screenshots about the feature request here. ## Relevant Standards -Does this relate to any standards in [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards)? +Does this relate to any standards in [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards)? - [ ] Accessibility (WCAG 2.1 AA) - [ ] Localization (en_US/en_GB) - [ ] Security best practices diff --git a/templates/gitea/ISSUE_TEMPLATE/security.md b/templates/gitea/ISSUE_TEMPLATE/security.md index fb02500..f57b284 100644 --- a/templates/gitea/ISSUE_TEMPLATE/security.md +++ b/templates/gitea/ISSUE_TEMPLATE/security.md @@ -35,7 +35,7 @@ Use this template only for: ## Standards Reference -Does this relate to security standards in [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards)? +Does this relate to security standards in [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards)? - [ ] SPDX license identifiers - [ ] Secret management - [ ] Dependency security diff --git a/templates/gitea/README.md b/templates/gitea/README.md index 3702626..8e77342 100644 --- a/templates/gitea/README.md +++ b/templates/gitea/README.md @@ -21,7 +21,7 @@ along with this program. If not, see . # FILE INFORMATION DEFGROUP: MokoStandards.Templates INGROUP: MokoStandards.GitHub -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards PATH: /templates/github/README.md VERSION: 04.06.00 BRIEF: GitHub-specific templates including issues, PRs, and CODEOWNERS @@ -150,10 +150,10 @@ your-repository/ blank_issues_enabled: false contact_links: - name: "📚 Documentation" - url: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/docs + url: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/docs about: "Check the documentation first" - name: "💬 Discussions" - url: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/discussions + url: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/discussions about: "Ask questions and discuss ideas" ``` @@ -368,12 +368,12 @@ Require status checks that verify: - [GitHub Issue Templates Documentation](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository) - [GitHub PR Templates Documentation](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository) - [GitHub CODEOWNERS Documentation](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) -- [MokoStandards Repository](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +- [MokoStandards Repository](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) ## Metadata * **Document**: templates/github/README.md -* **Repository**: [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +* **Repository**: [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) * **Owner**: Moko Consulting Engineering Team * **Scope**: GitHub templates and configuration * **Lifecycle**: Active diff --git a/templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md b/templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md index 558039d..45a3e47 100644 --- a/templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md +++ b/templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md @@ -92,7 +92,7 @@ List Dolibarr hooks this module will use: ### ID Range Preference -Based on the [Dolibarr Module ID Policy](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/policy/DOLIBARR_MODULE_ID_REQUEST.md): +Based on the [Dolibarr Module ID Policy](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/DOLIBARR_MODULE_ID_REQUEST.md): **Preferred Range** (will be assigned by coordinator): - [ ] Internal module (100000-109999) @@ -143,7 +143,7 @@ If similar modules exist, explain why a new module is needed: ### Acknowledgments -- [ ] I have read the [Dolibarr Module ID Policy](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/blob/main/docs/policy/DOLIBARR_MODULE_ID_REQUEST.md) +- [ ] I have read the [Dolibarr Module ID Policy](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/DOLIBARR_MODULE_ID_REQUEST.md) - [ ] I understand internal modules use range 100000-119999 - [ ] I understand public modules require external registration with Dolibarr Foundation - [ ] I understand module IDs are never reused once allocated diff --git a/templates/github/ISSUE_TEMPLATE/feature_request.md b/templates/github/ISSUE_TEMPLATE/feature_request.md index e2db572..7b76dc9 100644 --- a/templates/github/ISSUE_TEMPLATE/feature_request.md +++ b/templates/github/ISSUE_TEMPLATE/feature_request.md @@ -37,7 +37,7 @@ If you have ideas about how this could be implemented, share them here: Add any other context, mockups, or screenshots about the feature request here. ## Relevant Standards -Does this relate to any standards in [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards)? +Does this relate to any standards in [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards)? - [ ] Accessibility (WCAG 2.1 AA) - [ ] Localization (en_US/en_GB) - [ ] Security best practices diff --git a/templates/github/ISSUE_TEMPLATE/security.md b/templates/github/ISSUE_TEMPLATE/security.md index fb02500..f57b284 100644 --- a/templates/github/ISSUE_TEMPLATE/security.md +++ b/templates/github/ISSUE_TEMPLATE/security.md @@ -35,7 +35,7 @@ Use this template only for: ## Standards Reference -Does this relate to security standards in [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards)? +Does this relate to security standards in [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards)? - [ ] SPDX license identifiers - [ ] Secret management - [ ] Dependency security diff --git a/templates/github/README.md b/templates/github/README.md index 33d8ab6..45ed938 100644 --- a/templates/github/README.md +++ b/templates/github/README.md @@ -21,7 +21,7 @@ along with this program. If not, see . # FILE INFORMATION DEFGROUP: MokoStandards.Templates INGROUP: MokoStandards.GitHub -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards PATH: /templates/github/README.md VERSION: 04.06.00 BRIEF: GitHub-specific templates including issues, PRs, and CODEOWNERS @@ -150,10 +150,10 @@ your-repository/ blank_issues_enabled: false contact_links: - name: "📚 Documentation" - url: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/docs + url: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/docs about: "Check the documentation first" - name: "💬 Discussions" - url: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/discussions + url: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/discussions about: "Ask questions and discuss ideas" ``` @@ -368,12 +368,12 @@ Require status checks that verify: - [GitHub Issue Templates Documentation](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository) - [GitHub PR Templates Documentation](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository) - [GitHub CODEOWNERS Documentation](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) -- [MokoStandards Repository](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +- [MokoStandards Repository](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) ## Metadata * **Document**: templates/github/README.md -* **Repository**: [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +* **Repository**: [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) * **Owner**: Moko Consulting Engineering Team * **Scope**: GitHub templates and configuration * **Lifecycle**: Active diff --git a/templates/index.md b/templates/index.md index 0d3b740..9224458 100644 --- a/templates/index.md +++ b/templates/index.md @@ -21,7 +21,7 @@ along with this program. If not, see . # FILE INFORMATION DEFGROUP: MokoStandards.Templates INGROUP: MokoStandards -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards PATH: /templates/index.md VERSION: 04.06.00 BRIEF: Comprehensive catalog of all templates in MokoStandards @@ -417,7 +417,7 @@ To contribute new templates or improvements: ## Metadata * **Document**: templates/index.md -* **Repository**: [MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) +* **Repository**: [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) * **Owner**: Moko Consulting Engineering Team * **Scope**: Template catalog and usage guide * **Lifecycle**: Active diff --git a/templates/required/README.md b/templates/required/README.md index 5a30eca..ab327b7 100644 --- a/templates/required/README.md +++ b/templates/required/README.md @@ -17,7 +17,7 @@ Required templates are essential files that provide core functionality and ensur **Installation**: ```bash # Quick install -curl -fsSL https://raw.githubusercontent.com/mokoconsulting-tech/MokoStandards/main/templates/required/setup-labels.sh > scripts/maintenance/setup-labels.sh +curl -fsSL https://raw.githubusercontent.com/MokoConsulting/MokoStandards/main/templates/required/setup-labels.sh > scripts/maintenance/setup-labels.sh chmod +x scripts/maintenance/setup-labels.sh # Or copy from MokoStandards @@ -100,11 +100,11 @@ Required files should be kept in sync with MokoStandards: ```bash # Update single file -curl -fsSL https://raw.githubusercontent.com/mokoconsulting-tech/MokoStandards/main/templates/required/setup-labels.sh > scripts/maintenance/setup-labels.sh +curl -fsSL https://raw.githubusercontent.com/MokoConsulting/MokoStandards/main/templates/required/setup-labels.sh > scripts/maintenance/setup-labels.sh # Or use bulk sync cd /path/to/MokoStandards -./scripts/automation/bulk_update_repos.sh --org mokoconsulting-tech --sync-required +./scripts/automation/bulk_update_repos.sh --org MokoConsulting --sync-required ``` ## Using with GitHub Copilot @@ -119,14 +119,14 @@ Required files to deploy: Process: 1. Create scripts/maintenance/ directory if not exists -2. Download setup-labels.sh from mokoconsulting-tech/MokoStandards +2. Download setup-labels.sh from MokoConsulting/MokoStandards 3. Copy to scripts/maintenance/setup-labels.sh 4. Make executable: chmod +x scripts/maintenance/setup-labels.sh 5. Test with dry-run: ./scripts/maintenance/setup-labels.sh --dry-run 6. Deploy labels: ./scripts/maintenance/setup-labels.sh 7. Verify labels in repository settings -Source: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/tree/main/templates/required +Source: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/tree/main/templates/required ``` ## Future Required Files @@ -142,7 +142,7 @@ As MokoStandards evolves, additional required files may be added: - **Documentation**: [Copilot Sync Standards Guide](../../docs/guide/copilot-sync-standards.md) - **Label Guide**: [Label Deployment Guide](../../docs/guides/label-deployment.md) -- **Issues**: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards/issues +- **Issues**: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/issues - **Contact**: hello@mokoconsulting.tech ## Related Documentation diff --git a/templates/scripts/sftp-config/README.md b/templates/scripts/sftp-config/README.md index 82f5166..1b27aef 100644 --- a/templates/scripts/sftp-config/README.md +++ b/templates/scripts/sftp-config/README.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Templates.Scripts INGROUP: MokoStandards.Templates -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards PATH: /templates/scripts/sftp-config/README.md VERSION: 04.06.00 BRIEF: Setup guide for local SFTP deployment configuration files diff --git a/templates/workflows/README.md b/templates/workflows/README.md index a665223..4431525 100644 --- a/templates/workflows/README.md +++ b/templates/workflows/README.md @@ -21,7 +21,7 @@ along with this program. If not, see . # FILE INFORMATION DEFGROUP: GitHub.WorkflowTemplates INGROUP: MokoStandards.Templates -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /templates/workflows/README.md VERSION: 04.06.00 BRIEF: Documentation for consolidated GitHub workflow templates @@ -685,7 +685,7 @@ Use of these templates helps ensure: | ---------- | ------------------------------------------------------------------------------------------------------------ | | Document | GitHub Workflow Templates README | | Path | /templates/workflows/README.md | -| Repository | [https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards](https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards) | +| Repository | [https://git.mokoconsulting.tech/MokoConsulting/MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) | | Owner | Moko Consulting | | Scope | Workflow template documentation | | Status | Active | diff --git a/templates/workflows/joomla/auto-release.yml.template b/templates/workflows/joomla/auto-release.yml.template index ef2a2f2..252ad8b 100644 --- a/templates/workflows/joomla/auto-release.yml.template +++ b/templates/workflows/joomla/auto-release.yml.template @@ -22,13 +22,15 @@ # | 4. Update [VERSION: XX.YY.ZZ] badges in markdown files | # | 5. Write updates.xml (Joomla update server XML) | # | 6. Create git tag vXX.YY.ZZ | -# | 7a. Patch: update existing GitHub Release for this minor | +# | 7a. Patch: update existing Gitea Release for this minor | # | 8. Build ZIP, upload asset, write SHA-256 to updates.xml | # | | # | Every version change: archives main -> version/XX.YY branch | # | Patch 00 = development (no release). First release = patch 01. | # | First release only (patch == 01): | -# | 7b. Create new GitHub Release | +# | 7b. Create new Gitea Release | +# | | +# | GitHub mirror: stable/rc releases only (continue-on-error) | # | | # +========================================================================+ @@ -46,6 +48,9 @@ on: env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + GITEA_URL: ${{ vars.GITEA_URL || 'https://git.mokoconsulting.tech' }} + GITEA_ORG: ${{ vars.GITEA_ORG || github.repository_owner }} + GITEA_REPO: ${{ vars.GITEA_REPO || github.event.repository.name }} permissions: contents: write @@ -61,15 +66,14 @@ jobs: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: - token: ${{ secrets.GA_TOKEN || secrets.GH_TOKEN || github.token }} + token: ${{ secrets.GITHUB_TOKEN }} fetch-depth: 0 - name: Setup MokoStandards tools env: - GH_TOKEN: ${{ secrets.GA_TOKEN || secrets.GH_TOKEN || github.token }} - MOKO_CLONE_TOKEN: ${{ secrets.GA_TOKEN || secrets.GH_TOKEN || github.token }} - MOKO_CLONE_HOST: ${{ secrets.GA_TOKEN && 'git.mokoconsulting.tech/MokoConsulting' || 'github.com/mokoconsulting-tech' }} - COMPOSER_AUTH: '{"github-oauth":{"github.com":"${{ secrets.GH_TOKEN || github.token }}"}}' + MOKO_CLONE_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MOKO_CLONE_HOST: git.mokoconsulting.tech/MokoConsulting + COMPOSER_AUTH: '{"github-oauth":{"github.com":"${{ secrets.GH_MIRROR_TOKEN }}"}}' run: | git clone --depth 1 --branch {{standards_branch}} --quiet \ "https://x-access-token:${MOKO_CLONE_TOKEN}@${MOKO_CLONE_HOST}/MokoStandards-API.git" \ @@ -99,6 +103,8 @@ jobs: echo "minor=$MINOR" >> "$GITHUB_OUTPUT" echo "major=$MAJOR" >> "$GITHUB_OUTPUT" echo "release_tag=v${MAJOR}" >> "$GITHUB_OUTPUT" + # Determine stability for mirror gating + echo "stability=stable" >> "$GITHUB_OUTPUT" if [ "$PATCH" = "00" ]; then echo "skip=true" >> "$GITHUB_OUTPUT" echo "is_minor=false" >> "$GITHUB_OUTPUT" @@ -320,10 +326,10 @@ jobs: PHP_TAG="${PHP_MINIMUM}" fi - DOWNLOAD_URL="https://github.com/${REPO}/releases/download/v${VERSION}/${EXT_ELEMENT}-${VERSION}.zip" - INFO_URL="https://github.com/${REPO}/releases/tag/v${VERSION}" + DOWNLOAD_URL="${GITEA_URL}/${GITEA_ORG}/${GITEA_REPO}/releases/download/v${VERSION}/${EXT_ELEMENT}-${VERSION}.zip" + INFO_URL="${GITEA_URL}/${GITEA_ORG}/${GITEA_REPO}/releases/tag/v${VERSION}" - # -- Build stable entry to temp file ───────────────────────── + # -- Build stable entry to temp file { printf '%s\n' ' ' printf '%s\n' " ${EXT_NAME}" @@ -347,9 +353,8 @@ jobs: printf '%s\n' ' ' } > /tmp/stable_entry.xml - # -- Write updates.xml preserving dev/rc entries ────────────── + # -- Write updates.xml preserving dev/rc entries # Extract existing entries for other stability levels - # Order reflects release workflow: development → alpha → beta → rc → stable if [ -f "updates.xml" ]; then printf 'import re, sys\n' > /tmp/extract.py printf 'with open("updates.xml") as f: c = f.read()\n' >> /tmp/extract.py @@ -411,69 +416,76 @@ jobs: fi echo "Tag: ${TAG}" >> $GITHUB_STEP_SUMMARY - # -- STEP 7: Create or update GitHub Release ------------------------------ - - name: "Step 7: GitHub Release" + # -- STEP 7: Create or update Gitea Release -------------------------------- + - name: "Step 7: Gitea Release" if: >- steps.version.outputs.skip != 'true' && steps.check.outputs.tag_exists != 'true' - env: - GH_TOKEN: ${{ secrets.GA_TOKEN || secrets.GH_TOKEN || github.token }} run: | VERSION="${{ steps.version.outputs.version }}" RELEASE_TAG="${{ steps.version.outputs.release_tag }}" BRANCH="${{ steps.version.outputs.branch }}" MAJOR="${{ steps.version.outputs.major }}" + API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}" NOTES=$(php /tmp/mokostandards-api/cli/release_notes.php --path . --version "$VERSION" 2>/dev/null) [ -z "$NOTES" ] && NOTES="Release ${VERSION}" - echo "$NOTES" > /tmp/release_notes.md # Check if the major release already exists - EXISTING=$(gh release view "$RELEASE_TAG" --json tagName -q .tagName 2>/dev/null || true) + EXISTING=$(curl -sf -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + "${API_BASE}/releases/tags/${RELEASE_TAG}" 2>/dev/null || true) + EXISTING_ID=$(echo "$EXISTING" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('id',''))" 2>/dev/null || true) - if [ -z "$EXISTING" ]; then + if [ -z "$EXISTING_ID" ]; then # First release for this major - gh release create "$RELEASE_TAG" \ - --title "v${MAJOR} (latest: ${VERSION})" \ - --notes-file /tmp/release_notes.md \ - --target "$BRANCH" + curl -sf -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Content-Type: application/json" \ + "${API_BASE}/releases" \ + -d "$(python3 -c "import json; print(json.dumps({ + 'tag_name': '${RELEASE_TAG}', + 'name': 'v${MAJOR} (latest: ${VERSION})', + 'body': '''${NOTES}''', + 'target_commitish': '${BRANCH}' + }))")" echo "Release created: ${RELEASE_TAG} (${VERSION})" >> $GITHUB_STEP_SUMMARY else # Append version notes to existing major release - CURRENT_NOTES=$(gh release view "$RELEASE_TAG" --json body -q .body 2>/dev/null || true) - { - echo "$CURRENT_NOTES" - echo "" - echo "---" - echo "### ${VERSION}" - echo "" - cat /tmp/release_notes.md - } > /tmp/updated_notes.md + CURRENT_BODY=$(echo "$EXISTING" | python3 -c "import sys,json; print(json.load(sys.stdin).get('body',''))" 2>/dev/null || true) + UPDATED_BODY="${CURRENT_BODY} - gh release edit "$RELEASE_TAG" \ - --title "v${MAJOR} (latest: ${VERSION})" \ - --notes-file /tmp/updated_notes.md + --- + ### ${VERSION} + + ${NOTES}" + + curl -sf -X PATCH -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Content-Type: application/json" \ + "${API_BASE}/releases/${EXISTING_ID}" \ + -d "$(python3 -c "import json,sys; print(json.dumps({ + 'name': 'v${MAJOR} (latest: ${VERSION})', + 'body': sys.stdin.read() + }))" <<< "$UPDATED_BODY")" echo "Release updated: ${RELEASE_TAG} -> ${VERSION}" >> $GITHUB_STEP_SUMMARY fi # -- STEP 8: Build Joomla install ZIP + SHA-256 checksum ------------------ - # Every patch builds an install-ready ZIP and uploads it to the minor release. - # Result: one Release per minor version with a ZIP for each patch. - name: "Step 8: Build Joomla package and update checksum" if: >- steps.version.outputs.skip != 'true' - env: - GH_TOKEN: ${{ secrets.GA_TOKEN || secrets.GH_TOKEN || github.token }} run: | VERSION="${{ steps.version.outputs.version }}" RELEASE_TAG="${{ steps.version.outputs.release_tag }}" REPO="${{ github.repository }}" + API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}" # All ZIPs upload to the major release tag (vXX) - gh release view "$RELEASE_TAG" --json tagName > /dev/null 2>&1 || { + RELEASE_JSON=$(curl -sf -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + "${API_BASE}/releases/tags/${RELEASE_TAG}" 2>/dev/null || true) + RELEASE_ID=$(echo "$RELEASE_JSON" | python3 -c "import sys,json; print(json.load(sys.stdin).get('id',''))" 2>/dev/null || true) + if [ -z "$RELEASE_ID" ]; then echo "No release ${RELEASE_TAG} found — skipping ZIP upload" exit 0 - } + fi # Find extension element name from manifest MANIFEST=$(find . -maxdepth 2 -name "*.xml" -exec grep -l '/dev/null | head -1 || true) @@ -507,22 +519,78 @@ jobs: SHA256_ZIP=$(sha256sum "/tmp/${ZIP_NAME}" | cut -d' ' -f1) SHA256_TAR=$(sha256sum "/tmp/${TAR_NAME}" | cut -d' ' -f1) + # -- Delete existing assets with same name before uploading ------ + ASSETS=$(curl -sf -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + "${API_BASE}/releases/${RELEASE_ID}/assets" 2>/dev/null || echo "[]") + for ASSET_NAME in "$ZIP_NAME" "$TAR_NAME"; do + ASSET_ID=$(echo "$ASSETS" | python3 -c " + import sys,json + assets = json.load(sys.stdin) + for a in assets: + if a['name'] == '${ASSET_NAME}': + print(a['id']); break + " 2>/dev/null || true) + if [ -n "$ASSET_ID" ]; then + curl -sf -X DELETE -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + "${API_BASE}/releases/${RELEASE_ID}/assets/${ASSET_ID}" 2>/dev/null || true + fi + done + # -- Upload both to release tag ---------------------------------- - gh release upload "$RELEASE_TAG" "/tmp/${ZIP_NAME}" --clobber 2>/dev/null || true - gh release upload "$RELEASE_TAG" "/tmp/${TAR_NAME}" --clobber 2>/dev/null || true + curl -sf -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Content-Type: application/octet-stream" \ + --data-binary @"/tmp/${ZIP_NAME}" \ + "${API_BASE}/releases/${RELEASE_ID}/assets?name=${ZIP_NAME}" > /dev/null 2>&1 || true + + curl -sf -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Content-Type: application/octet-stream" \ + --data-binary @"/tmp/${TAR_NAME}" \ + "${API_BASE}/releases/${RELEASE_ID}/assets?name=${TAR_NAME}" > /dev/null 2>&1 || true # -- Update updates.xml with both download formats --------------- if [ -f "updates.xml" ]; then - ZIP_URL="https://github.com/${REPO}/releases/download/${RELEASE_TAG}/${ZIP_NAME}" - TAR_URL="https://github.com/${REPO}/releases/download/${RELEASE_TAG}/${TAR_NAME}" + ZIP_URL="${GITEA_URL}/${GITEA_ORG}/${GITEA_REPO}/releases/download/${RELEASE_TAG}/${ZIP_NAME}" + TAR_URL="${GITEA_URL}/${GITEA_ORG}/${GITEA_REPO}/releases/download/${RELEASE_TAG}/${TAR_NAME}" - # Replace downloads block with both formats + SHA - sed -i "s|.*|\n ${ZIP_URL}\n ${TAR_URL}\n |" updates.xml 2>/dev/null || true - if grep -q '' updates.xml; then - sed -i "s|.*|sha256:${SHA256_ZIP}|" updates.xml - else - sed -i "s||\n sha256:${SHA256_ZIP}|" updates.xml - fi + # Use Python to update only the stable entry's downloads + sha256 + python3 << 'PYEOF' + import re + + with open("updates.xml") as f: + content = f.read() + + zip_url = "${ZIP_URL}" + tar_url = "${TAR_URL}" + sha = "${SHA256_ZIP}" + + # Find the stable update block and replace its downloads + sha256 + def replace_stable(m): + block = m.group(0) + # Replace downloads block + new_downloads = ( + " \n" + f" {zip_url}\n" + f" {tar_url}\n" + " " + ) + block = re.sub(r' .*?', new_downloads, block, flags=re.DOTALL) + # Add or replace sha256 + if '' in block: + block = re.sub(r' .*?', f' sha256:{sha}', block) + else: + block = block.replace('', f'\n sha256:{sha}') + return block + + content = re.sub( + r' .*?stable.*?', + replace_stable, + content, + flags=re.DOTALL + ) + + with open("updates.xml", "w") as f: + f.write(content) + PYEOF git add updates.xml git commit -m "chore(release): ZIP + tar.gz for ${VERSION} [skip ci]" \ @@ -537,7 +605,47 @@ jobs: echo "| \`${ZIP_NAME}\` | ${ZIP_SIZE} | \`${SHA256_ZIP}\` |" >> $GITHUB_STEP_SUMMARY echo "| \`${TAR_NAME}\` | ${TAR_SIZE} | \`${SHA256_TAR}\` |" >> $GITHUB_STEP_SUMMARY echo "| Release | \`${RELEASE_TAG}\` | |" >> $GITHUB_STEP_SUMMARY - echo "| Download | [${PACKAGE_NAME}](https://github.com/${REPO}/releases/download/${RELEASE_TAG}/${PACKAGE_NAME}) |" >> $GITHUB_STEP_SUMMARY + echo "| Download | [${ZIP_NAME}](${GITEA_URL}/${GITEA_ORG}/${GITEA_REPO}/releases/download/${RELEASE_TAG}/${ZIP_NAME}) |" >> $GITHUB_STEP_SUMMARY + + # -- STEP 9: Mirror to GitHub (stable only) -------------------------------- + - name: "Step 9: Mirror release to GitHub" + if: >- + steps.version.outputs.skip != 'true' && + steps.version.outputs.stability == 'stable' && + secrets.GH_MIRROR_TOKEN != '' + continue-on-error: true + env: + GH_TOKEN: ${{ secrets.GH_MIRROR_TOKEN }} + run: | + VERSION="${{ steps.version.outputs.version }}" + RELEASE_TAG="${{ steps.version.outputs.release_tag }}" + MAJOR="${{ steps.version.outputs.major }}" + BRANCH="${{ steps.version.outputs.branch }}" + GH_REPO="${{ vars.GH_MIRROR_REPO || github.repository }}" + + NOTES=$(php /tmp/mokostandards-api/cli/release_notes.php --path . --version "$VERSION" 2>/dev/null || true) + [ -z "$NOTES" ] && NOTES="Release ${VERSION}" + echo "$NOTES" > /tmp/release_notes.md + + EXISTING=$(gh release view "$RELEASE_TAG" --repo "$GH_REPO" --json tagName -q .tagName 2>/dev/null || true) + + if [ -z "$EXISTING" ]; then + gh release create "$RELEASE_TAG" \ + --repo "$GH_REPO" \ + --title "v${MAJOR} (latest: ${VERSION})" \ + --notes-file /tmp/release_notes.md \ + --target "$BRANCH" || true + else + gh release edit "$RELEASE_TAG" \ + --repo "$GH_REPO" \ + --title "v${MAJOR} (latest: ${VERSION})" || true + fi + + # Upload assets to GitHub mirror + for PKG in /tmp/${EXT_ELEMENT:-pkg}-${VERSION}.*; do + [ -f "$PKG" ] && gh release upload "$RELEASE_TAG" "$PKG" --repo "$GH_REPO" --clobber 2>/dev/null || true + done + echo "GitHub mirror updated: ${GH_REPO} ${RELEASE_TAG}" >> $GITHUB_STEP_SUMMARY # -- Summary -------------------------------------------------------------- - name: Pipeline Summary @@ -558,5 +666,5 @@ jobs: echo "| Version | \`${VERSION}\` |" >> $GITHUB_STEP_SUMMARY echo "| Branch | \`${{ steps.version.outputs.branch }}\` |" >> $GITHUB_STEP_SUMMARY echo "| Tag | \`${{ steps.version.outputs.tag }}\` |" >> $GITHUB_STEP_SUMMARY - echo "| Release | [View](https://github.com/${{ github.repository }}/releases/tag/${{ steps.version.outputs.tag }}) |" >> $GITHUB_STEP_SUMMARY + echo "| Release | [View](${GITEA_URL}/${GITEA_ORG}/${GITEA_REPO}/releases/tag/${{ steps.version.outputs.tag }}) |" >> $GITHUB_STEP_SUMMARY fi diff --git a/templates/workflows/joomla/update-server.yml.template b/templates/workflows/joomla/update-server.yml.template index 7225722..4a9d62c 100644 --- a/templates/workflows/joomla/update-server.yml.template +++ b/templates/workflows/joomla/update-server.yml.template @@ -46,6 +46,9 @@ on: env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + GITEA_URL: ${{ vars.GITEA_URL || 'https://git.mokoconsulting.tech' }} + GITEA_ORG: ${{ vars.GITEA_ORG || github.repository_owner }} + GITEA_REPO: ${{ vars.GITEA_REPO || github.event.repository.name }} permissions: contents: write @@ -61,15 +64,14 @@ jobs: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: - token: ${{ secrets.GA_TOKEN || secrets.GH_TOKEN || github.token }} + token: ${{ secrets.GITHUB_TOKEN }} fetch-depth: 0 - name: Setup MokoStandards tools env: - GH_TOKEN: ${{ secrets.GA_TOKEN || secrets.GH_TOKEN || github.token }} - MOKO_CLONE_TOKEN: ${{ secrets.GA_TOKEN || secrets.GH_TOKEN || github.token }} - MOKO_CLONE_HOST: ${{ secrets.GA_TOKEN && 'git.mokoconsulting.tech/MokoConsulting' || 'github.com/mokoconsulting-tech' }} - COMPOSER_AUTH: '{"github-oauth":{"github.com":"${{ secrets.GH_TOKEN || github.token }}"}}' + MOKO_CLONE_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MOKO_CLONE_HOST: git.mokoconsulting.tech/MokoConsulting + COMPOSER_AUTH: '{"github-oauth":{"github.com":"${{ secrets.GH_MIRROR_TOKEN }}"}}' run: | git clone --depth 1 --branch {{standards_branch}} --quiet \ "https://x-access-token:${MOKO_CLONE_TOKEN}@${MOKO_CLONE_HOST}/MokoStandards-API.git" \ @@ -79,9 +81,11 @@ jobs: fi - name: Generate updates.xml entry + id: update run: | BRANCH="${{ github.ref_name }}" REPO="${{ github.repository }}" + API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}" VERSION=$(php /tmp/mokostandards-api/cli/version_read.php --path . 2>/dev/null || echo "0.0.0") # Auto-bump patch on alpha/beta/rc branches (not dev — dev bumps manually) @@ -113,6 +117,8 @@ jobs: STABILITY="stable" fi + echo "stability=${STABILITY}" >> "$GITHUB_OUTPUT" + # Parse manifest (portable — no grep -P) MANIFEST=$(find . -maxdepth 2 -name "*.xml" -exec grep -l '/dev/null | head -1) if [ -z "$MANIFEST" ]; then @@ -175,10 +181,10 @@ jobs: esac PACKAGE_NAME="${EXT_ELEMENT}-${DISPLAY_VERSION}.zip" - DOWNLOAD_URL="https://github.com/${REPO}/releases/download/${RELEASE_TAG}/${PACKAGE_NAME}" - INFO_URL="https://github.com/${REPO}" + DOWNLOAD_URL="${GITEA_URL}/${GITEA_ORG}/${GITEA_REPO}/releases/download/${RELEASE_TAG}/${PACKAGE_NAME}" + INFO_URL="${GITEA_URL}/${GITEA_ORG}/${GITEA_REPO}" - # ── Build install packages (ZIP + tar.gz) ─────────────────── + # -- Build install packages (ZIP + tar.gz) -------------------- SOURCE_DIR="src" [ ! -d "$SOURCE_DIR" ] && SOURCE_DIR="htdocs" if [ -d "$SOURCE_DIR" ]; then @@ -194,20 +200,62 @@ jobs: SHA256=$(sha256sum "/tmp/${PACKAGE_NAME}" | cut -d' ' -f1) - # Ensure release exists - gh release view "$RELEASE_TAG" --json tagName > /dev/null 2>&1 || \ - gh release create "$RELEASE_TAG" --title "${RELEASE_TAG} (${DISPLAY_VERSION})" --notes "${STABILITY} release" --prerelease --target main 2>/dev/null || true + # Ensure release exists on Gitea + RELEASE_JSON=$(curl -sf -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + "${API_BASE}/releases/tags/${RELEASE_TAG}" 2>/dev/null || true) + RELEASE_ID=$(echo "$RELEASE_JSON" | python3 -c "import sys,json; print(json.load(sys.stdin).get('id',''))" 2>/dev/null || true) - # Upload both formats - gh release upload "$RELEASE_TAG" "/tmp/${PACKAGE_NAME}" --clobber 2>/dev/null || true - gh release upload "$RELEASE_TAG" "/tmp/${TAR_NAME}" --clobber 2>/dev/null || true + if [ -z "$RELEASE_ID" ]; then + # Create release + RELEASE_JSON=$(curl -sf -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Content-Type: application/json" \ + "${API_BASE}/releases" \ + -d "$(python3 -c "import json; print(json.dumps({ + 'tag_name': '${RELEASE_TAG}', + 'name': '${RELEASE_TAG} (${DISPLAY_VERSION})', + 'body': '${STABILITY} release', + 'prerelease': True, + 'target_commitish': 'main' + }))")" 2>/dev/null || true) + RELEASE_ID=$(echo "$RELEASE_JSON" | python3 -c "import sys,json; print(json.load(sys.stdin).get('id',''))" 2>/dev/null || true) + fi + + if [ -n "$RELEASE_ID" ]; then + # Delete existing assets with same name before uploading + ASSETS=$(curl -sf -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + "${API_BASE}/releases/${RELEASE_ID}/assets" 2>/dev/null || echo "[]") + for ASSET_FILE in "$PACKAGE_NAME" "$TAR_NAME"; do + ASSET_ID=$(echo "$ASSETS" | python3 -c " + import sys,json + assets = json.load(sys.stdin) + for a in assets: + if a['name'] == '${ASSET_FILE}': + print(a['id']); break + " 2>/dev/null || true) + if [ -n "$ASSET_ID" ]; then + curl -sf -X DELETE -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + "${API_BASE}/releases/${RELEASE_ID}/assets/${ASSET_ID}" 2>/dev/null || true + fi + done + + # Upload both formats + curl -sf -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Content-Type: application/octet-stream" \ + --data-binary @"/tmp/${PACKAGE_NAME}" \ + "${API_BASE}/releases/${RELEASE_ID}/assets?name=${PACKAGE_NAME}" > /dev/null 2>&1 || true + + curl -sf -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Content-Type: application/octet-stream" \ + --data-binary @"/tmp/${TAR_NAME}" \ + "${API_BASE}/releases/${RELEASE_ID}/assets?name=${TAR_NAME}" > /dev/null 2>&1 || true + fi echo "Packages: ${PACKAGE_NAME} + ${TAR_NAME} (SHA: ${SHA256})" >> $GITHUB_STEP_SUMMARY else SHA256="" fi - # ── Build the new entry ─────────────────────────────────────── + # -- Build the new entry ----------------------------------------- NEW_ENTRY="" NEW_ENTRY="${NEW_ENTRY} \n" NEW_ENTRY="${NEW_ENTRY} ${EXT_NAME}\n" @@ -222,7 +270,7 @@ jobs: NEW_ENTRY="${NEW_ENTRY} \n" NEW_ENTRY="${NEW_ENTRY} ${INFO_URL}\n" NEW_ENTRY="${NEW_ENTRY} \n" - TAR_URL="https://github.com/${REPO}/releases/download/${RELEASE_TAG}/${EXT_ELEMENT}-${DISPLAY_VERSION}.tar.gz" + TAR_URL="${GITEA_URL}/${GITEA_ORG}/${GITEA_REPO}/releases/download/${RELEASE_TAG}/${EXT_ELEMENT}-${DISPLAY_VERSION}.tar.gz" NEW_ENTRY="${NEW_ENTRY} ${DOWNLOAD_URL}\n" NEW_ENTRY="${NEW_ENTRY} ${TAR_URL}\n" NEW_ENTRY="${NEW_ENTRY} \n" @@ -233,10 +281,10 @@ jobs: NEW_ENTRY="${NEW_ENTRY} https://mokoconsulting.tech\n" NEW_ENTRY="${NEW_ENTRY} " - # ── Write new entry to temp file ─────────────────────────────── + # -- Write new entry to temp file -------------------------------- printf '%b' "$NEW_ENTRY" > /tmp/new_entry.xml - # ── Merge into updates.xml ───────────────────────────────────── + # -- Merge into updates.xml (only update this stability channel) - if [ ! -f "updates.xml" ]; then printf '%s\n' '' > updates.xml printf '%s\n' '' >> updates.xml @@ -244,15 +292,21 @@ jobs: printf '\n%s\n' '' >> updates.xml else # Remove existing entry for this stability, insert new one - printf 'import re\nstability = "%s"\n' "${STABILITY}" > /tmp/merge_xml.py - printf 'with open("updates.xml") as f: content = f.read()\n' >> /tmp/merge_xml.py - printf 'with open("/tmp/new_entry.xml") as f: new_entry = f.read()\n' >> /tmp/merge_xml.py - printf 'pattern = r" .*?" + re.escape(stability) + r".*?\\n?"\n' >> /tmp/merge_xml.py - printf 'content = re.sub(pattern, "", content, flags=re.DOTALL)\n' >> /tmp/merge_xml.py - printf 'content = content.replace("", new_entry + "\\n")\n' >> /tmp/merge_xml.py - printf 'content = re.sub(r"\\n{3,}", "\\n\\n", content)\n' >> /tmp/merge_xml.py - printf 'with open("updates.xml", "w") as f: f.write(content)\n' >> /tmp/merge_xml.py - python3 /tmp/merge_xml.py 2>/dev/null || { + python3 << PYEOF + import re + stability = "${STABILITY}" + with open("updates.xml") as f: + content = f.read() + with open("/tmp/new_entry.xml") as f: + new_entry = f.read() + pattern = r" .*?" + re.escape(stability) + r".*?\n?" + content = re.sub(pattern, "", content, flags=re.DOTALL) + content = content.replace("", new_entry + "\n") + content = re.sub(r"\n{3,}", "\n\n", content) + with open("updates.xml", "w") as f: + f.write(content) + PYEOF + if [ $? -ne 0 ]; then # Fallback: rebuild keeping other stability entries { printf '%s\n' '' @@ -267,7 +321,7 @@ jobs: printf '\n%s\n' '' } > /tmp/updates_new.xml mv /tmp/updates_new.xml updates.xml - } + fi fi # Commit @@ -280,6 +334,23 @@ jobs: git push } + # -- Mirror to GitHub (stable and rc only) -------------------------------- + - name: Mirror release to GitHub + if: >- + (steps.update.outputs.stability == 'stable' || steps.update.outputs.stability == 'rc') && + secrets.GH_MIRROR_TOKEN != '' + continue-on-error: true + env: + GH_TOKEN: ${{ secrets.GH_MIRROR_TOKEN }} + run: | + GH_REPO="${{ vars.GH_MIRROR_REPO || github.repository }}" + STABILITY="${{ steps.update.outputs.stability }}" + echo "GitHub mirror sync for ${STABILITY} — ${GH_REPO}" >> $GITHUB_STEP_SUMMARY + # Mirror packages if they exist + for PKG in /tmp/*.zip /tmp/*.tar.gz; do + [ -f "$PKG" ] && gh release upload "${RELEASE_TAG}" "$PKG" --repo "$GH_REPO" --clobber 2>/dev/null || true + done + - name: SFTP deploy to dev server if: contains(github.ref, 'dev/') env: @@ -290,15 +361,15 @@ jobs: DEV_PORT: ${{ vars.DEV_FTP_PORT }} DEV_KEY: ${{ secrets.DEV_FTP_KEY }} DEV_PASS: ${{ secrets.DEV_FTP_PASSWORD }} - GH_TOKEN: ${{ secrets.GA_TOKEN || secrets.GH_TOKEN || github.token }} run: | - # ── Permission check: admin or maintain role required ────── + # -- Permission check: admin or maintain role required -------- ACTOR="${{ github.actor }}" REPO="${{ github.repository }}" - PERMISSION=$(gh api "repos/${REPO}/collaborators/${ACTOR}/permission" \ - --jq '.permission' 2>/dev/null || \ - gh api "repos/${REPO}/collaborators/${ACTOR}" \ - --jq '.role' 2>/dev/null || echo "read") + API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}" + + PERMISSION=$(curl -sf -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + "${API_BASE}/collaborators/${ACTOR}/permission" 2>/dev/null | \ + python3 -c "import sys,json; print(json.load(sys.stdin).get('permission','read'))" 2>/dev/null || echo "read") case "$PERMISSION" in admin|maintain|write) ;; *) diff --git a/templates/workflows/terraform/index.md b/templates/workflows/terraform/index.md index 5856529..46188d4 100644 --- a/templates/workflows/terraform/index.md +++ b/templates/workflows/terraform/index.md @@ -21,7 +21,7 @@ along with this program. If not, see . # FILE INFORMATION DEFGROUP: MokoStandards.Documentation INGROUP: MokoStandards.Terraform -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /templates/workflows/infrastructure/terraform/index.md VERSION: 04.06.00 BRIEF: Documentation index for Terraform workflow templates @@ -276,7 +276,7 @@ Modify the `terraform init` step: | Applies To | All Repositories | | Jurisdiction | Tennessee, USA | | Owner | Moko Consulting | -| Repo | https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards | +| Repo | https://git.mokoconsulting.tech/MokoConsulting/MokoStandards | | Path | /templates/workflows/infrastructure/terraform/index.md | | Version | 01.00.00 | | Status | Active | diff --git a/wrappers/index.md b/wrappers/index.md index bbeb087..a861546 100644 --- a/wrappers/index.md +++ b/wrappers/index.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: GPL-3.0-or-later # FILE INFORMATION DEFGROUP: MokoStandards.Wrappers INGROUP: MokoStandards -REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards-API +REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API PATH: /wrappers/index.md VERSION: 04.06.00 BRIEF: PHP wrapper scripts — one per CLI script in api/; add logging and repo-root detection