chore: Sync MokoStandards workflows and configurations #71

Merged
jmiller-moko merged 10 commits from chore/sync-mokostandards-updates into main 2026-01-30 03:43:52 +00:00
jmiller-moko commented 2026-01-30 02:15:08 +00:00 (Migrated from github.com)

This PR syncs workflows, scripts, and configurations from the MokoStandards repository.

Updated files:

  • GitHub workflows (CI, build, release, etc.)
  • Dependabot configuration
  • Maintenance scripts
  • Platform-specific configurations

Files are synced based on detected platform type (terraform/generic/dolibarr/joomla).

Please review and merge if appropriate for this repository.

This PR syncs workflows, scripts, and configurations from the MokoStandards repository. Updated files: - GitHub workflows (CI, build, release, etc.) - Dependabot configuration - Maintenance scripts - Platform-specific configurations Files are synced based on detected platform type (terraform/generic/dolibarr/joomla). Please review and merge if appropriate for this repository.
copilot-pull-request-reviewer[bot] (Migrated from github.com) reviewed 2026-01-30 02:19:35 +00:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) left a comment

Pull request overview

This PR syncs workflows, scripts, and configurations from the MokoStandards repository to ensure consistency across projects. The sync includes validation scripts, XML schema definitions for repository structure validation, GitHub Actions workflows, and configuration files.

Changes:

  • Added 4 Python validation/maintenance scripts for repository structure, CodeQL config, platform detection, and file header validation
  • Added 3 XML schema definition files for Joomla/WaaS components, Dolibarr/CRM modules, and generic repositories
  • Added/updated GitHub Actions workflows including reusable deployment, script executor, release, and unified CI workflows
  • Updated Dependabot and GitHub Copilot configurations with expanded package ecosystem monitoring

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 31 comments.

Show a summary per file
File Description
scripts/validate/validate_structure_v2.py Repository structure validator with XML/JSON schema support
scripts/validate/validate_codeql_config.py CodeQL workflow language configuration validator
scripts/validate/auto_detect_platform.py Platform type detection script with confidence scoring
scripts/maintenance/validate_file_headers.py Copyright header and file information validator
scripts/maintenance/update_changelog.py CHANGELOG.md updater following Keep a Changelog format
scripts/maintenance/release_version.py Version release automation script
scripts/definitions/waas-component.xml Repository structure schema for Joomla/WaaS components
scripts/definitions/default-repository.xml Default repository structure schema
scripts/definitions/crm-module.xml Repository structure schema for Dolibarr/CRM modules
MokoStandards.override.tf Terraform configuration to prevent sync of template files
.github/workflows/reusable-script-executor.yml Reusable workflow for executing MokoStandards scripts
.github/workflows/reusable-deploy.yml Reusable type-aware deployment workflow
.github/workflows/release.yml Automated release workflow for Joomla extensions
.github/workflows/ci.yml Unified CI workflow with auto-detection for all platforms
.github/dependabot.yml Enhanced Dependabot config with Python, npm, and Composer monitoring
.github/copilot.yml GitHub Copilot configuration with allowed domains

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

## Pull request overview This PR syncs workflows, scripts, and configurations from the MokoStandards repository to ensure consistency across projects. The sync includes validation scripts, XML schema definitions for repository structure validation, GitHub Actions workflows, and configuration files. **Changes:** - Added 4 Python validation/maintenance scripts for repository structure, CodeQL config, platform detection, and file header validation - Added 3 XML schema definition files for Joomla/WaaS components, Dolibarr/CRM modules, and generic repositories - Added/updated GitHub Actions workflows including reusable deployment, script executor, release, and unified CI workflows - Updated Dependabot and GitHub Copilot configurations with expanded package ecosystem monitoring ### Reviewed changes Copilot reviewed 16 out of 16 changed files in this pull request and generated 31 comments. <details> <summary>Show a summary per file</summary> | File | Description | | ---- | ----------- | | scripts/validate/validate_structure_v2.py | Repository structure validator with XML/JSON schema support | | scripts/validate/validate_codeql_config.py | CodeQL workflow language configuration validator | | scripts/validate/auto_detect_platform.py | Platform type detection script with confidence scoring | | scripts/maintenance/validate_file_headers.py | Copyright header and file information validator | | scripts/maintenance/update_changelog.py | CHANGELOG.md updater following Keep a Changelog format | | scripts/maintenance/release_version.py | Version release automation script | | scripts/definitions/waas-component.xml | Repository structure schema for Joomla/WaaS components | | scripts/definitions/default-repository.xml | Default repository structure schema | | scripts/definitions/crm-module.xml | Repository structure schema for Dolibarr/CRM modules | | MokoStandards.override.tf | Terraform configuration to prevent sync of template files | | .github/workflows/reusable-script-executor.yml | Reusable workflow for executing MokoStandards scripts | | .github/workflows/reusable-deploy.yml | Reusable type-aware deployment workflow | | .github/workflows/release.yml | Automated release workflow for Joomla extensions | | .github/workflows/ci.yml | Unified CI workflow with auto-detection for all platforms | | .github/dependabot.yml | Enhanced Dependabot config with Python, npm, and Composer monitoring | | .github/copilot.yml | GitHub Copilot configuration with allowed domains | </details> --- 💡 <a href="/mokoconsulting-tech/MokoCassiopeia/new/main/.github/instructions?filename=*.instructions.md" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Add Copilot custom instructions</a> for smarter, more guided reviews. <a href="https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Learn how to get started</a>.
@@ -45,0 +64,4 @@
# Monitor npm dependencies for security updates
- package-ecosystem: "npm"
directory: "/"
schedule:
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:29 +00:00

Hardcoded reviewer team "mokoconsulting-tech/maintainers" may not exist in all repositories where this configuration is synced. Consider making this configurable or document that repositories must have this team configured.

Hardcoded reviewer team "mokoconsulting-tech/maintainers" may not exist in all repositories where this configuration is synced. Consider making this configurable or document that repositories must have this team configured.
@@ -45,0 +66,4 @@
directory: "/"
schedule:
interval: "monthly"
open-pull-requests-limit: 1
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:29 +00:00

Hardcoded assignee "jmiller-moko" may not be appropriate for all repositories that sync this configuration. Consider making this configurable or removing it to let repository-specific settings take precedence.

Hardcoded assignee "jmiller-moko" may not be appropriate for all repositories that sync this configuration. Consider making this configurable or removing it to let repository-specific settings take precedence.
@@ -0,0 +1,305 @@
# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:27 +00:00

Using actions/download-artifact@v7 which does not exist yet. The latest stable version is v4. This will cause the workflow to fail. Change to actions/download-artifact@v4.

        uses: actions/download-artifact@v4
Using actions/download-artifact@v7 which does not exist yet. The latest stable version is v4. This will cause the workflow to fail. Change to actions/download-artifact@v4. ```suggestion uses: actions/download-artifact@v4 ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:27 +00:00

The SSH key is being written to a file and used directly. Consider adding proper error handling and validation to ensure the secret is not empty before attempting to use it. Additionally, ensure that the cleanup of this sensitive file is guaranteed even if the workflow fails.

The SSH key is being written to a file and used directly. Consider adding proper error handling and validation to ensure the secret is not empty before attempting to use it. Additionally, ensure that the cleanup of this sensitive file is guaranteed even if the workflow fails.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:29 +00:00

Using actions/checkout@v6 which does not exist yet. The latest stable version is v4. This will cause the workflow to fail. Change to actions/checkout@v4.

        uses: actions/checkout@v4
Using actions/checkout@v6 which does not exist yet. The latest stable version is v4. This will cause the workflow to fail. Change to actions/checkout@v4. ```suggestion uses: actions/checkout@v4 ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:30 +00:00

Using actions/checkout@v6 which does not exist yet. The latest stable version is v4. This will cause the workflow to fail. Change to actions/checkout@v4.

        uses: actions/checkout@v4
Using actions/checkout@v6 which does not exist yet. The latest stable version is v4. This will cause the workflow to fail. Change to actions/checkout@v4. ```suggestion uses: actions/checkout@v4 ```
@@ -0,0 +1,193 @@
# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:28 +00:00

Using actions/checkout@v6 which does not exist yet. The latest stable version of actions/checkout is v4. This will cause the workflow to fail. Change to actions/checkout@v4.

        uses: actions/checkout@v4
Using actions/checkout@v6 which does not exist yet. The latest stable version of actions/checkout is v4. This will cause the workflow to fail. Change to actions/checkout@v4. ```suggestion uses: actions/checkout@v4 ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:30 +00:00

Using actions/setup-python@v6 which does not exist yet. The latest stable version is v5. This will cause the workflow to fail. Change to actions/setup-python@v5.

        uses: actions/setup-python@v5
Using actions/setup-python@v6 which does not exist yet. The latest stable version is v5. This will cause the workflow to fail. Change to actions/setup-python@v5. ```suggestion uses: actions/setup-python@v5 ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:30 +00:00

Using actions/upload-artifact@v6 which does not exist yet. The latest stable version is v4. This will cause the workflow to fail. Change to actions/upload-artifact@v4.

        uses: actions/upload-artifact@v4
Using actions/upload-artifact@v6 which does not exist yet. The latest stable version is v4. This will cause the workflow to fail. Change to actions/upload-artifact@v4. ```suggestion uses: actions/upload-artifact@v4 ```
@@ -0,0 +1,163 @@
# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:28 +00:00

The timestamp "2026-01-28T05:40:00Z" appears to be very recent (2 days before the current date of Jan 30, 2026). Ensure this timestamp is accurate and reflects the actual last modification date of this configuration.

The timestamp "2026-01-28T05:40:00Z" appears to be very recent (2 days before the current date of Jan 30, 2026). Ensure this timestamp is accurate and reflects the actual last modification date of this configuration.
@@ -0,0 +1,362 @@
<?xml version="1.0" encoding="UTF-8"?>
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:27 +00:00

Same inconsistency as in waas-component.xml: this file uses both "required" boolean elements and "requirement-status" string elements. Based on the validate_structure_v2.py parser expecting "requirementStatus", all "required" elements should be converted to "requirement-status" elements for consistency.

Same inconsistency as in waas-component.xml: this file uses both "required" boolean elements and "requirement-status" string elements. Based on the validate_structure_v2.py parser expecting "requirementStatus", all "required" elements should be converted to "requirement-status" elements for consistency.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:30 +00:00

The date "2026-01-07T00:00:00Z" is in the past relative to the current date of January 30, 2026. If this represents the last update timestamp, it should be updated to reflect the actual sync date.

The date "2026-01-07T00:00:00Z" is in the past relative to the current date of January 30, 2026. If this represents the last update timestamp, it should be updated to reflect the actual sync date.
@@ -0,0 +1,595 @@
<?xml version="1.0" encoding="UTF-8"?>
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:31 +00:00

The date "2026-01-16T00:00:00Z" is in the past relative to the current date of January 30, 2026. If this represents the last update timestamp, it should be updated to reflect the actual sync date.

The date "2026-01-16T00:00:00Z" is in the past relative to the current date of January 30, 2026. If this represents the last update timestamp, it should be updated to reflect the actual sync date.
@@ -0,0 +1,389 @@
<?xml version="1.0" encoding="UTF-8"?>
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:29 +00:00

The date in the metadata states "2026-01-15T00:00:00Z" which is in the past (current date is January 30, 2026). If this is meant to reflect the last update date, it should be updated to the actual sync date, or use a more recent timestamp.

The date in the metadata states "2026-01-15T00:00:00Z" which is in the past (current date is January 30, 2026). If this is meant to reflect the last update date, it should be updated to the actual sync date, or use a more recent timestamp.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:31 +00:00

Inconsistent XML element naming: this uses "requirement-status" while other files in the PR use "requirement-status" and "requirementStatus" interchangeably. The element should use "requirement-status" (with hyphen) consistently as per XML naming conventions, but the Python code expects "requirementStatus" (camelCase) when parsing. This inconsistency could cause validation issues.

        <requirement-status>required</requirement-status>
Inconsistent XML element naming: this uses "requirement-status" while other files in the PR use "requirement-status" and "requirementStatus" interchangeably. The element should use "requirement-status" (with hyphen) consistently as per XML naming conventions, but the Python code expects "requirementStatus" (camelCase) when parsing. This inconsistency could cause validation issues. ```suggestion <requirement-status>required</requirement-status> ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:31 +00:00

Inconsistent "required" element usage. This file uses both "required" (boolean element) and "requirement-status" (string element with values like "required", "suggested", "optional"). Based on the validate_structure_v2.py parser which expects "requirementStatus", these "required" elements should be replaced with "requirement-status" elements set to "required" for consistency.

Inconsistent "required" element usage. This file uses both "required" (boolean element) and "requirement-status" (string element with values like "required", "suggested", "optional"). Based on the validate_structure_v2.py parser which expects "requirementStatus", these "required" elements should be replaced with "requirement-status" elements set to "required" for consistency.
@@ -0,0 +1,450 @@
#!/usr/bin/env python3
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:33 +00:00

Import of 'json' is not used.


Import of 'json' is not used. ```suggestion ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:33 +00:00

Import of 'Tuple' is not used.

from typing import List, Optional
Import of 'Tuple' is not used. ```suggestion from typing import List, Optional ```
@@ -0,0 +1,317 @@
#!/usr/bin/env python3
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:33 +00:00

Import of 'os' is not used.


Import of 'os' is not used. ```suggestion ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:33 +00:00

Import of 'datetime' is not used.


Import of 'datetime' is not used. ```suggestion ```
@@ -0,0 +1,331 @@
#!/usr/bin/env python3
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:34 +00:00

Import of 'os' is not used.


Import of 'os' is not used. ```suggestion ```
@@ -0,0 +1,533 @@
#!/usr/bin/env python3
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:32 +00:00

Variable manifest_patterns is not used.


Variable manifest_patterns is not used. ```suggestion ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:32 +00:00

Import of 'os' is not used.


Import of 'os' is not used. ```suggestion ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:32 +00:00

Import of 'asdict' is not used.

from dataclasses import dataclass
Import of 'asdict' is not used. ```suggestion from dataclasses import dataclass ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:32 +00:00

Import of 'Tuple' is not used.

from typing import Dict, List, Optional
Import of 'Tuple' is not used. ```suggestion from typing import Dict, List, Optional ```
@@ -0,0 +144,4 @@
try:
with open(cache_file, 'wb') as f:
pickle.dump(result, f)
except (pickle.PickleError, OSError):
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:35 +00:00

'except' clause does nothing but pass and there is no explanatory comment.

'except' clause does nothing but pass and there is no explanatory comment.
@@ -0,0 +153,4 @@
for cache_file in self.cache_dir.glob("*.pkl"):
try:
cache_file.unlink()
except OSError:
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:35 +00:00

'except' clause does nothing but pass and there is no explanatory comment.

            except OSError:
                # Ignore failures to delete cache files: stale cache entries are non-critical
'except' clause does nothing but pass and there is no explanatory comment. ```suggestion except OSError: # Ignore failures to delete cache files: stale cache entries are non-critical ```
@@ -0,0 +1,258 @@
#!/usr/bin/env python3
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:28 +00:00

The copyright year states "2026" in the header. Given that the current date is January 30, 2026 (as stated in the system context), this is technically accurate but may be premature if this code was written before 2026. Consider whether this should be "2025" if the initial creation was in 2025, or maintain "2026" if this is genuinely new content from 2026.

Copyright (C) 2025-2026 Moko Consulting <hello@mokoconsulting.tech>
The copyright year states "2026" in the header. Given that the current date is January 30, 2026 (as stated in the system context), this is technically accurate but may be premature if this code was written before 2026. Consider whether this should be "2025" if the initial creation was in 2025, or maintain "2026" if this is genuinely new content from 2026. ```suggestion Copyright (C) 2025-2026 Moko Consulting <hello@mokoconsulting.tech> ```
@@ -0,0 +1,408 @@
#!/usr/bin/env python3
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:34 +00:00

Import of 'os' is not used.


Import of 'os' is not used. ```suggestion ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:34 +00:00

Import of 'Tuple' is not used.

from typing import List, Dict, Optional, Any
Import of 'Tuple' is not used. ```suggestion from typing import List, Dict, Optional, Any ```
@@ -0,0 +111,4 @@
return "json"
elif content.startswith('<?xml') or content.startswith('<'):
return "xml"
except Exception:
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 02:19:35 +00:00

'except' clause does nothing but pass and there is no explanatory comment.

            except Exception:
                # Intentionally ignore read/parse errors; fall through to the generic
                # "Unable to detect schema format" ValueError raised below.
'except' clause does nothing but pass and there is no explanatory comment. ```suggestion except Exception: # Intentionally ignore read/parse errors; fall through to the generic # "Unable to detect schema format" ValueError raised below. ```
jmiller-moko commented 2026-01-30 02:35:42 +00:00 (Migrated from github.com)

@copilot open a new pull request to apply changes based on the comments in this thread

@copilot open a new pull request to apply changes based on the comments in [this thread](https://github.com/mokoconsulting-tech/MokoCassiopeia/pull/71#pullrequestreview-3725976210)
Copilot commented 2026-01-30 02:35:49 +00:00 (Migrated from github.com)

@jmiller-moko I've opened a new pull request, #72, to work on those changes. Once the pull request is ready, I'll request review from you.

@jmiller-moko I've opened a new pull request, #72, to work on those changes. Once the pull request is ready, I'll request review from you.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoCassiopeia#71