chore: Sync MokoStandards workflows and configurations #75

Merged
jmiller-moko merged 1 commits from chore/sync-mokostandards-updates into main 2026-01-30 04:45:28 +00:00
jmiller-moko commented 2026-01-30 04:45:01 +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 04:52:56 +00:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) left a comment

Pull request overview

Syncs this repository’s CI/CD workflows, scripts, and configuration files with the MokoStandards baseline.

Changes:

  • Updates GitHub Actions workflows (CI, release, deploy) and Dependabot configuration.
  • Syncs/adjusts validation and maintenance scripts (imports and minor behavior scaffolding).
  • Updates repository structure XML definitions (requirements metadata and timestamps).

Reviewed changes

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

Show a summary per file
File Description
scripts/validate/validate_structure_v2.py Minor adjustments to validator script imports.
scripts/validate/validate_codeql_config.py Updates header metadata (copyright year).
scripts/validate/auto_detect_platform.py Minor adjustments to platform detection script imports/variables.
scripts/maintenance/validate_file_headers.py Minor adjustments to maintenance script imports.
scripts/maintenance/update_changelog.py Minor adjustments to maintenance script imports.
scripts/maintenance/release_version.py Minor adjustments to maintenance script imports.
scripts/definitions/waas-component.xml Updates schema metadata and requirement fields for WaaS component structure.
scripts/definitions/default-repository.xml Updates schema metadata timestamp.
scripts/definitions/crm-module.xml Updates schema metadata and requirement fields for CRM module structure.
.github/workflows/reusable-deploy.yml Adjusts deploy workflow steps around SSH key handling.
.github/workflows/release.yml Updates action versions used for release packaging/publishing.
.github/workflows/ci.yml Updates action versions used across CI jobs.
.github/dependabot.yml Minor documentation/comment changes to Dependabot configuration header.
Comments suppressed due to low confidence (1)

scripts/validate/auto_detect_platform.py:235

  • manifest_patterns is defined but never used. Either remove it, or iterate over manifest_patterns instead of hardcoding self.repo_path.glob("**/*.xml") so the patterns list actually controls the scan.
        manifest_patterns = ["**/*.xml"]
        skip_dirs = {".git", "vendor", "node_modules", ".github"}

        for xml_file in self.repo_path.glob("**/*.xml"):
            if any(skip_dir in xml_file.parts for skip_dir in skip_dirs):

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

## Pull request overview Syncs this repository’s CI/CD workflows, scripts, and configuration files with the MokoStandards baseline. **Changes:** - Updates GitHub Actions workflows (CI, release, deploy) and Dependabot configuration. - Syncs/adjusts validation and maintenance scripts (imports and minor behavior scaffolding). - Updates repository structure XML definitions (requirements metadata and timestamps). ### Reviewed changes Copilot reviewed 13 out of 13 changed files in this pull request and generated 16 comments. <details> <summary>Show a summary per file</summary> | File | Description | | ---- | ----------- | | scripts/validate/validate_structure_v2.py | Minor adjustments to validator script imports. | | scripts/validate/validate_codeql_config.py | Updates header metadata (copyright year). | | scripts/validate/auto_detect_platform.py | Minor adjustments to platform detection script imports/variables. | | scripts/maintenance/validate_file_headers.py | Minor adjustments to maintenance script imports. | | scripts/maintenance/update_changelog.py | Minor adjustments to maintenance script imports. | | scripts/maintenance/release_version.py | Minor adjustments to maintenance script imports. | | scripts/definitions/waas-component.xml | Updates schema metadata and requirement fields for WaaS component structure. | | scripts/definitions/default-repository.xml | Updates schema metadata timestamp. | | scripts/definitions/crm-module.xml | Updates schema metadata and requirement fields for CRM module structure. | | .github/workflows/reusable-deploy.yml | Adjusts deploy workflow steps around SSH key handling. | | .github/workflows/release.yml | Updates action versions used for release packaging/publishing. | | .github/workflows/ci.yml | Updates action versions used across CI jobs. | | .github/dependabot.yml | Minor documentation/comment changes to Dependabot configuration header. | </details> <details> <summary>Comments suppressed due to low confidence (1)</summary> **scripts/validate/auto_detect_platform.py:235** * `manifest_patterns` is defined but never used. Either remove it, or iterate over `manifest_patterns` instead of hardcoding `self.repo_path.glob("**/*.xml")` so the patterns list actually controls the scan. ``` manifest_patterns = ["**/*.xml"] skip_dirs = {".git", "vendor", "node_modules", ".github"} for xml_file in self.repo_path.glob("**/*.xml"): if any(skip_dir in xml_file.parts for skip_dir in skip_dirs): ``` </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>.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:55 +00:00

This change downgrades the release action from softprops/action-gh-release@v2 to @v1. Unless there is a specific compatibility reason, prefer keeping the current major (v2) to avoid losing fixes/behavior from newer releases.

        uses: softprops/action-gh-release@v2
This change downgrades the release action from `softprops/action-gh-release@v2` to `@v1`. Unless there is a specific compatibility reason, prefer keeping the current major (`v2`) to avoid losing fixes/behavior from newer releases. ```suggestion uses: softprops/action-gh-release@v2 ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:52 +00:00

This step no longer checks that secrets.DEPLOY_KEY is set before writing it to ~/.ssh/deploy_key. When the secret is missing/empty, this will create an invalid key file and later SSH/rsync will fail with a less actionable error. Please restore a fail-fast check when deployment-method is ssh/rsync.

This step no longer checks that `secrets.DEPLOY_KEY` is set before writing it to `~/.ssh/deploy_key`. When the secret is missing/empty, this will create an invalid key file and later SSH/rsync will fail with a less actionable error. Please restore a fail-fast check when `deployment-method` is ssh/rsync.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:53 +00:00

The SSH key cleanup step was removed. On self-hosted runners (or any runner reuse scenario), leaving ~/.ssh/deploy_key behind is a credential-handling risk. Please re-add a cleanup step guarded with if: always() to delete the key (and ideally known_hosts) after deployment.

The SSH key cleanup step was removed. On self-hosted runners (or any runner reuse scenario), leaving `~/.ssh/deploy_key` behind is a credential-handling risk. Please re-add a cleanup step guarded with `if: always()` to delete the key (and ideally `known_hosts`) after deployment.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:53 +00:00

These file requirements were switched to <required>true|false</required>, but the validator (validate_structure_v2.py) only consumes <requirement-status> and defaults missing values to required. Optional items (e.g., ROADMAP) will therefore be treated as required. Please revert to <requirement-status> or update the validator + schemas together.

        <requirement-status>required</requirement-status>
These file requirements were switched to `<required>true|false</required>`, but the validator (`validate_structure_v2.py`) only consumes `<requirement-status>` and defaults missing values to `required`. Optional items (e.g., ROADMAP) will therefore be treated as required. Please revert to `<requirement-status>` or update the validator + schemas together. ```suggestion <requirement-status>required</requirement-status> ```
@@ -28,3 +27,4 @@
<required>true</required>
<audience>general</audience>
<template>templates/licenses/GPL-3.0</template>
<license-type>GPL-3.0-or-later</license-type>
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:53 +00:00

This schema uses <required>true|false</required> for files/directories, but scripts/validate/validate_structure_v2.py currently reads <requirement-status> and defaults missing values to required. That means entries like ROADMAP (<required>false</required>) will still be treated as required. Please revert to <requirement-status> here, or update the validator + all schemas together.

This schema uses `<required>true|false</required>` for files/directories, but `scripts/validate/validate_structure_v2.py` currently reads `<requirement-status>` and defaults missing values to `required`. That means entries like ROADMAP (`<required>false</required>`) will still be treated as required. Please revert to `<requirement-status>` here, or update the validator + all schemas together.
@@ -27,12 +27,13 @@ NOTE: Updates CHANGELOG.md and optionally updates VERSION in files
"""
import argparse
import json
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:55 +00:00

json is imported but not used in this script. Please remove it (or use it) to avoid unused-import lint issues.


`json` is imported but not used in this script. Please remove it (or use it) to avoid unused-import lint issues. ```suggestion ```
@@ -34,3 +35,3 @@
from pathlib import Path
from typing import List, Optional
from typing import List, Optional, Tuple
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:51 +00:00

Tuple is imported from typing but not used in this script. Please remove it to avoid unused-import lint issues.

from typing import List, Optional
`Tuple` is imported from `typing` but not used in this script. Please remove it to avoid unused-import lint issues. ```suggestion from typing import List, Optional ```
@@ -30,2 +30,4 @@
import os
import re
import sys
from datetime import datetime
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:55 +00:00

os and datetime are imported but unused. Please remove them to keep the script minimal and avoid unused-import lint errors.

import re
import sys
`os` and `datetime` are imported but unused. Please remove them to keep the script minimal and avoid unused-import lint errors. ```suggestion import re import sys ```
@@ -28,6 +28,7 @@ VERSION: 05.00.00
BRIEF: Validate copyright headers and file information in repository files
"""
import os
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:54 +00:00

os is imported but not used anywhere in this script. Please remove it to avoid unused-import lint issues.


`os` is imported but not used anywhere in this script. Please remove it to avoid unused-import lint issues. ```suggestion ```
@@ -31,13 +31,14 @@ Exit codes:
import argparse
import hashlib
import json
import os
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:54 +00:00

os is imported but not used in this script. Please remove it to avoid unused-import lint issues.


`os` is imported but not used in this script. Please remove it to avoid unused-import lint issues. ```suggestion ```
@@ -40,3 +41,3 @@
from typing import Dict, List, Optional
from typing import Dict, List, Optional, Tuple
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:54 +00:00

asdict and Tuple are imported but not used. Please remove them (or update the implementation to use them) to keep the module lint-clean.

`asdict` and `Tuple` are imported but not used. Please remove them (or update the implementation to use them) to keep the module lint-clean.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:55 +00:00

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

        except (pickle.PickleError, OSError):
            # Cache write failures are non-fatal; detection will still run,
            # but results will not be cached for future executions.
'except' clause does nothing but pass and there is no explanatory comment. ```suggestion except (pickle.PickleError, OSError): # Cache write failures are non-fatal; detection will still run, # but results will not be cached for future executions. ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:56 +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.
@@ -27,11 +27,12 @@ Exit codes:
"""
import sys
import os
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:53 +00:00

os is imported but not used anywhere in this file. Please remove it to avoid unused-import lint issues.


`os` is imported but not used anywhere in this file. Please remove it to avoid unused-import lint issues. ```suggestion ```
@@ -33,3 +34,3 @@
from pathlib import Path
from typing import List, Dict, Optional, Any
from typing import List, Dict, Tuple, Optional, Any
from dataclasses import dataclass
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:52 +00:00

Tuple is imported from typing but not used in this module. Please remove it to keep the imports clean.

from typing import List, Dict, Optional, Any
`Tuple` is imported from `typing` but not used in this module. Please remove it to keep the imports clean. ```suggestion from typing import List, Dict, Optional, Any ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-01-30 04:52:56 +00:00

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

            except Exception:
                # If reading or inspecting the schema file fails here, fall through and
                # raise a generic ValueError below to indicate that the format could
                # not be detected.
'except' clause does nothing but pass and there is no explanatory comment. ```suggestion except Exception: # If reading or inspecting the schema file fails here, fall through and # raise a generic ValueError below to indicate that the format could # not be detected. ```
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoCassiopeia#75