refactor: fix definition drift — migrate to .mokogitea, rename templates/gitea → templates/mokogitea
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 46s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Has been cancelled
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Has been cancelled
Platform: moko-platform CI / Gate 4: Governance (push) Has been cancelled
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been cancelled
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 46s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Has been cancelled
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Has been cancelled
Platform: moko-platform CI / Gate 4: Governance (push) Has been cancelled
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been cancelled
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
- Replace all .github/workflows refs in definitions with .mokogitea/workflows - Add all 13 universal workflows to every platform definition - Fix ISSUE_TEMPLATE paths: .github/ → .mokogitea/ - Fix template source paths: templates/github/ → templates/mokogitea/ - Remove 60+ dead template references pointing to non-existent files - Rename templates/gitea/ directory to templates/mokogitea/ - Add orphaned workflows (ci-platform, issue-branch) to definitions Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,223 +1,223 @@
|
|||||||
# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
# FILE INFORMATION
|
# FILE INFORMATION
|
||||||
# DEFGROUP: Gitea.Workflow
|
# DEFGROUP: Gitea.Workflow
|
||||||
# INGROUP: moko-platform.Release
|
# INGROUP: moko-platform.Release
|
||||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
# REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
||||||
# PATH: /templates/workflows/universal/pre-release.yml.template
|
# PATH: /templates/workflows/universal/pre-release.yml.template
|
||||||
# VERSION: 05.01.00
|
# VERSION: 05.01.00
|
||||||
# BRIEF: Manual pre-release -- builds dev/alpha/beta/rc packages from any branch
|
# BRIEF: Manual pre-release -- builds dev/alpha/beta/rc packages from any branch
|
||||||
|
|
||||||
name: "Universal: Pre-Release"
|
name: "Universal: Pre-Release"
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
types: [closed]
|
types: [closed]
|
||||||
branches:
|
branches:
|
||||||
- dev
|
- dev
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
stability:
|
stability:
|
||||||
description: 'Pre-release channel'
|
description: 'Pre-release channel'
|
||||||
required: true
|
required: true
|
||||||
type: choice
|
type: choice
|
||||||
options:
|
options:
|
||||||
- development
|
- development
|
||||||
- alpha
|
- alpha
|
||||||
- beta
|
- beta
|
||||||
- release-candidate
|
- release-candidate
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
|
||||||
env:
|
env:
|
||||||
GITEA_URL: ${{ vars.GITEA_URL || 'https://git.mokoconsulting.tech' }}
|
GITEA_URL: ${{ vars.GITEA_URL || 'https://git.mokoconsulting.tech' }}
|
||||||
GITEA_ORG: ${{ vars.GITEA_ORG || github.repository_owner }}
|
GITEA_ORG: ${{ vars.GITEA_ORG || github.repository_owner }}
|
||||||
GITEA_REPO: ${{ vars.GITEA_REPO || github.event.repository.name }}
|
GITEA_REPO: ${{ vars.GITEA_REPO || github.event.repository.name }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: "Build Pre-Release (${{ inputs.stability || 'development' }})"
|
name: "Build Pre-Release (${{ inputs.stability || 'development' }})"
|
||||||
runs-on: release
|
runs-on: release
|
||||||
if: >-
|
if: >-
|
||||||
github.event_name == 'workflow_dispatch' ||
|
github.event_name == 'workflow_dispatch' ||
|
||||||
(github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'dev')
|
(github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'dev')
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
token: ${{ secrets.GA_TOKEN }}
|
token: ${{ secrets.GA_TOKEN }}
|
||||||
|
|
||||||
- name: Setup moko-platform tools
|
- name: Setup moko-platform tools
|
||||||
env:
|
env:
|
||||||
MOKO_CLONE_TOKEN: ${{ secrets.GA_TOKEN }}
|
MOKO_CLONE_TOKEN: ${{ secrets.GA_TOKEN }}
|
||||||
MOKO_CLONE_HOST: git.mokoconsulting.tech/MokoConsulting
|
MOKO_CLONE_HOST: git.mokoconsulting.tech/MokoConsulting
|
||||||
run: |
|
run: |
|
||||||
if ! command -v composer &> /dev/null; then
|
if ! command -v composer &> /dev/null; then
|
||||||
sudo apt-get update -qq && sudo apt-get install -y -qq php-cli php-mbstring php-xml php-zip php-curl composer >/dev/null 2>&1
|
sudo apt-get update -qq && sudo apt-get install -y -qq php-cli php-mbstring php-xml php-zip php-curl composer >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
git clone --depth 1 --branch main --quiet \
|
git clone --depth 1 --branch main --quiet \
|
||||||
"https://x-access-token:${MOKO_CLONE_TOKEN}@${MOKO_CLONE_HOST}/moko-platform.git" \
|
"https://x-access-token:${MOKO_CLONE_TOKEN}@${MOKO_CLONE_HOST}/moko-platform.git" \
|
||||||
/tmp/moko-platform-api
|
/tmp/moko-platform-api
|
||||||
cd /tmp/moko-platform-api && composer install --no-dev --no-interaction --quiet
|
cd /tmp/moko-platform-api && composer install --no-dev --no-interaction --quiet
|
||||||
echo "MOKO_CLI=/tmp/moko-platform-api/cli" >> "$GITHUB_ENV"
|
echo "MOKO_CLI=/tmp/moko-platform-api/cli" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Detect platform
|
- name: Detect platform
|
||||||
id: platform
|
id: platform
|
||||||
run: |
|
run: |
|
||||||
php ${MOKO_CLI}/manifest_read.php --path . --github-output
|
php ${MOKO_CLI}/manifest_read.php --path . --github-output
|
||||||
|
|
||||||
- name: Resolve metadata and bump version
|
- name: Resolve metadata and bump version
|
||||||
id: meta
|
id: meta
|
||||||
run: |
|
run: |
|
||||||
STABILITY="${{ inputs.stability || 'development' }}"
|
STABILITY="${{ inputs.stability || 'development' }}"
|
||||||
|
|
||||||
# Map stability to Gitea release tag
|
# Map stability to Gitea release tag
|
||||||
case "$STABILITY" in
|
case "$STABILITY" in
|
||||||
development) TAG="development" ;;
|
development) TAG="development" ;;
|
||||||
alpha) TAG="alpha" ;;
|
alpha) TAG="alpha" ;;
|
||||||
beta) TAG="beta" ;;
|
beta) TAG="beta" ;;
|
||||||
release-candidate) TAG="release-candidate" ;;
|
release-candidate) TAG="release-candidate" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Read current version (includes suffix from manifest, e.g. 01.02.14-dev)
|
# Read current version (includes suffix from manifest, e.g. 01.02.14-dev)
|
||||||
VERSION=$(php ${MOKO_CLI}/version_read.php --path . 2>/dev/null)
|
VERSION=$(php ${MOKO_CLI}/version_read.php --path . 2>/dev/null)
|
||||||
[ -z "$VERSION" ] && VERSION="00.00.01"
|
[ -z "$VERSION" ] && VERSION="00.00.01"
|
||||||
|
|
||||||
php ${MOKO_CLI}/version_set_platform.php \
|
php ${MOKO_CLI}/version_set_platform.php \
|
||||||
--path . --version "$VERSION" --branch "${{ github.ref_name }}" 2>/dev/null || true
|
--path . --version "$VERSION" --branch "${{ github.ref_name }}" 2>/dev/null || true
|
||||||
|
|
||||||
# Verify version consistency across all files
|
# Verify version consistency across all files
|
||||||
php ${MOKO_CLI}/version_check.php --path . --fix 2>/dev/null || true
|
php ${MOKO_CLI}/version_check.php --path . --fix 2>/dev/null || true
|
||||||
|
|
||||||
# Commit version bump
|
# Commit version bump
|
||||||
git config --local user.email "gitea-actions[bot]@mokoconsulting.tech"
|
git config --local user.email "gitea-actions[bot]@mokoconsulting.tech"
|
||||||
git config --local user.name "gitea-actions[bot]"
|
git config --local user.name "gitea-actions[bot]"
|
||||||
git remote set-url origin "https://jmiller:${{ secrets.GA_TOKEN }}@git.mokoconsulting.tech/${{ github.repository }}.git"
|
git remote set-url origin "https://jmiller:${{ secrets.GA_TOKEN }}@git.mokoconsulting.tech/${{ github.repository }}.git"
|
||||||
git add -A
|
git add -A
|
||||||
git diff --cached --quiet || {
|
git diff --cached --quiet || {
|
||||||
git commit -m "chore(version): pre-release bump to ${VERSION} [skip ci]"
|
git commit -m "chore(version): pre-release bump to ${VERSION} [skip ci]"
|
||||||
git push origin HEAD 2>&1
|
git push origin HEAD 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Auto-detect element via manifest_element.php
|
# Auto-detect element via manifest_element.php
|
||||||
php ${MOKO_CLI}/manifest_element.php \
|
php ${MOKO_CLI}/manifest_element.php \
|
||||||
--path . --version "$VERSION" --stability "$STABILITY" \
|
--path . --version "$VERSION" --stability "$STABILITY" \
|
||||||
--repo "${GITEA_REPO}" --github-output
|
--repo "${GITEA_REPO}" --github-output
|
||||||
|
|
||||||
# Read back element outputs
|
# Read back element outputs
|
||||||
EXT_ELEMENT=$(grep '^ext_element=' "$GITHUB_OUTPUT" | tail -1 | cut -d= -f2)
|
EXT_ELEMENT=$(grep '^ext_element=' "$GITHUB_OUTPUT" | tail -1 | cut -d= -f2)
|
||||||
ZIP_NAME=$(grep '^zip_name=' "$GITHUB_OUTPUT" | tail -1 | cut -d= -f2)
|
ZIP_NAME=$(grep '^zip_name=' "$GITHUB_OUTPUT" | tail -1 | cut -d= -f2)
|
||||||
[ -z "$EXT_ELEMENT" ] && EXT_ELEMENT=$(echo "${GITEA_REPO}" | tr '[:upper:]' '[:lower:]' | tr -d ' -')
|
[ -z "$EXT_ELEMENT" ] && EXT_ELEMENT=$(echo "${GITEA_REPO}" | tr '[:upper:]' '[:lower:]' | tr -d ' -')
|
||||||
[ -z "$ZIP_NAME" ] && ZIP_NAME="${EXT_ELEMENT}-${VERSION}.zip"
|
[ -z "$ZIP_NAME" ] && ZIP_NAME="${EXT_ELEMENT}-${VERSION}.zip"
|
||||||
|
|
||||||
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
|
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
|
||||||
echo "stability=${STABILITY}" >> "$GITHUB_OUTPUT"
|
echo "stability=${STABILITY}" >> "$GITHUB_OUTPUT"
|
||||||
echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
|
echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
|
||||||
echo "zip_name=${ZIP_NAME}" >> "$GITHUB_OUTPUT"
|
echo "zip_name=${ZIP_NAME}" >> "$GITHUB_OUTPUT"
|
||||||
echo "ext_element=${EXT_ELEMENT}" >> "$GITHUB_OUTPUT"
|
echo "ext_element=${EXT_ELEMENT}" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
echo "=== Pre-Release: ${EXT_ELEMENT} ${VERSION} ==="
|
echo "=== Pre-Release: ${EXT_ELEMENT} ${VERSION} ==="
|
||||||
|
|
||||||
- name: Create release
|
- name: Create release
|
||||||
id: release
|
id: release
|
||||||
run: |
|
run: |
|
||||||
TAG="${{ steps.meta.outputs.tag }}"
|
TAG="${{ steps.meta.outputs.tag }}"
|
||||||
VERSION="${{ steps.meta.outputs.version }}"
|
VERSION="${{ steps.meta.outputs.version }}"
|
||||||
API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}"
|
API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}"
|
||||||
php ${MOKO_CLI}/release_create.php \
|
php ${MOKO_CLI}/release_create.php \
|
||||||
--path . --version "$VERSION" --tag "$TAG" \
|
--path . --version "$VERSION" --tag "$TAG" \
|
||||||
--token "${{ secrets.GA_TOKEN }}" --api-base "$API_BASE" \
|
--token "${{ secrets.GA_TOKEN }}" --api-base "$API_BASE" \
|
||||||
--repo "${GITEA_REPO}" --branch dev --prerelease
|
--repo "${GITEA_REPO}" --branch dev --prerelease
|
||||||
|
|
||||||
- name: Build package and upload
|
- name: Build package and upload
|
||||||
id: package
|
id: package
|
||||||
run: |
|
run: |
|
||||||
VERSION="${{ steps.meta.outputs.version }}"
|
VERSION="${{ steps.meta.outputs.version }}"
|
||||||
TAG="${{ steps.meta.outputs.tag }}"
|
TAG="${{ steps.meta.outputs.tag }}"
|
||||||
API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}"
|
API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}"
|
||||||
php ${MOKO_CLI}/release_package.php \
|
php ${MOKO_CLI}/release_package.php \
|
||||||
--path . --version "$VERSION" --tag "$TAG" \
|
--path . --version "$VERSION" --tag "$TAG" \
|
||||||
--token "${{ secrets.GA_TOKEN }}" --api-base "$API_BASE" \
|
--token "${{ secrets.GA_TOKEN }}" --api-base "$API_BASE" \
|
||||||
--repo "${GITEA_REPO}" --output /tmp || true
|
--repo "${GITEA_REPO}" --output /tmp || true
|
||||||
|
|
||||||
- name: Update updates.xml
|
- name: Update updates.xml
|
||||||
if: steps.platform.outputs.platform == 'joomla'
|
if: steps.platform.outputs.platform == 'joomla'
|
||||||
run: |
|
run: |
|
||||||
VERSION="${{ steps.meta.outputs.version }}"
|
VERSION="${{ steps.meta.outputs.version }}"
|
||||||
STABILITY="${{ steps.meta.outputs.stability }}"
|
STABILITY="${{ steps.meta.outputs.stability }}"
|
||||||
SHA256="${{ steps.package.outputs.sha256_zip }}"
|
SHA256="${{ steps.package.outputs.sha256_zip }}"
|
||||||
|
|
||||||
if [ ! -f "updates.xml" ]; then
|
if [ ! -f "updates.xml" ]; then
|
||||||
echo "No updates.xml -- skipping"
|
echo "No updates.xml -- skipping"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SHA_FLAG=""
|
SHA_FLAG=""
|
||||||
[ -n "$SHA256" ] && SHA_FLAG="--sha ${SHA256}"
|
[ -n "$SHA256" ] && SHA_FLAG="--sha ${SHA256}"
|
||||||
|
|
||||||
php ${MOKO_CLI}/updates_xml_build.php \
|
php ${MOKO_CLI}/updates_xml_build.php \
|
||||||
--path . --version "${VERSION}" --stability "${STABILITY}" \
|
--path . --version "${VERSION}" --stability "${STABILITY}" \
|
||||||
--gitea-url "${GITEA_URL}" --org "${GITEA_ORG}" --repo "${GITEA_REPO}" \
|
--gitea-url "${GITEA_URL}" --org "${GITEA_ORG}" --repo "${GITEA_REPO}" \
|
||||||
${SHA_FLAG}
|
${SHA_FLAG}
|
||||||
|
|
||||||
# Commit and push
|
# Commit and push
|
||||||
if ! git diff --quiet updates.xml 2>/dev/null; then
|
if ! git diff --quiet updates.xml 2>/dev/null; then
|
||||||
git config --local user.email "gitea-actions[bot]@mokoconsulting.tech"
|
git config --local user.email "gitea-actions[bot]@mokoconsulting.tech"
|
||||||
git config --local user.name "gitea-actions[bot]"
|
git config --local user.name "gitea-actions[bot]"
|
||||||
git add updates.xml
|
git add updates.xml
|
||||||
git commit -m "chore: update ${STABILITY} channel ${VERSION} [skip ci]"
|
git commit -m "chore: update ${STABILITY} channel ${VERSION} [skip ci]"
|
||||||
git push origin HEAD 2>&1 || echo "WARNING: push failed"
|
git push origin HEAD 2>&1 || echo "WARNING: push failed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: "Sync updates.xml to all branches"
|
- name: "Sync updates.xml to all branches"
|
||||||
if: steps.platform.outputs.platform == 'joomla'
|
if: steps.platform.outputs.platform == 'joomla'
|
||||||
run: |
|
run: |
|
||||||
CURRENT_BRANCH="${{ github.ref_name }}"
|
CURRENT_BRANCH="${{ github.ref_name }}"
|
||||||
git config --local user.email "gitea-actions[bot]@mokoconsulting.tech"
|
git config --local user.email "gitea-actions[bot]@mokoconsulting.tech"
|
||||||
git config --local user.name "gitea-actions[bot]"
|
git config --local user.name "gitea-actions[bot]"
|
||||||
|
|
||||||
for BRANCH in main dev; do
|
for BRANCH in main dev; do
|
||||||
[ "$BRANCH" = "$CURRENT_BRANCH" ] && continue
|
[ "$BRANCH" = "$CURRENT_BRANCH" ] && continue
|
||||||
echo "Syncing updates.xml -> ${BRANCH}"
|
echo "Syncing updates.xml -> ${BRANCH}"
|
||||||
git fetch origin "${BRANCH}" 2>/dev/null || continue
|
git fetch origin "${BRANCH}" 2>/dev/null || continue
|
||||||
git checkout "origin/${BRANCH}" -- updates.xml 2>/dev/null || continue
|
git checkout "origin/${BRANCH}" -- updates.xml 2>/dev/null || continue
|
||||||
git checkout "${CURRENT_BRANCH}" -- updates.xml
|
git checkout "${CURRENT_BRANCH}" -- updates.xml
|
||||||
if ! git diff --quiet updates.xml 2>/dev/null; then
|
if ! git diff --quiet updates.xml 2>/dev/null; then
|
||||||
git add updates.xml
|
git add updates.xml
|
||||||
git commit -m "chore: sync updates.xml from ${CURRENT_BRANCH} [skip ci]"
|
git commit -m "chore: sync updates.xml from ${CURRENT_BRANCH} [skip ci]"
|
||||||
git push origin HEAD:refs/heads/${BRANCH} 2>&1 || echo "WARNING: push to ${BRANCH} failed"
|
git push origin HEAD:refs/heads/${BRANCH} 2>&1 || echo "WARNING: push to ${BRANCH} failed"
|
||||||
fi
|
fi
|
||||||
git checkout "${CURRENT_BRANCH}" 2>/dev/null
|
git checkout "${CURRENT_BRANCH}" 2>/dev/null
|
||||||
done
|
done
|
||||||
|
|
||||||
- name: "Delete lesser pre-release channels (cascade)"
|
- name: "Delete lesser pre-release channels (cascade)"
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}"
|
API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}"
|
||||||
TOKEN="${{ secrets.GA_TOKEN }}"
|
TOKEN="${{ secrets.GA_TOKEN }}"
|
||||||
|
|
||||||
php ${MOKO_CLI}/release_cascade.php \
|
php ${MOKO_CLI}/release_cascade.php \
|
||||||
--stability "${{ steps.meta.outputs.stability }}" \
|
--stability "${{ steps.meta.outputs.stability }}" \
|
||||||
--token "${TOKEN}" \
|
--token "${TOKEN}" \
|
||||||
--api-base "${API_BASE}"
|
--api-base "${API_BASE}"
|
||||||
|
|
||||||
- name: Summary
|
- name: Summary
|
||||||
if: always()
|
if: always()
|
||||||
run: |
|
run: |
|
||||||
VERSION="${{ steps.meta.outputs.version }}"
|
VERSION="${{ steps.meta.outputs.version }}"
|
||||||
STABILITY="${{ steps.meta.outputs.stability }}"
|
STABILITY="${{ steps.meta.outputs.stability }}"
|
||||||
ZIP_NAME="${{ steps.meta.outputs.zip_name }}"
|
ZIP_NAME="${{ steps.meta.outputs.zip_name }}"
|
||||||
SHA256="${{ steps.package.outputs.sha256_zip }}"
|
SHA256="${{ steps.package.outputs.sha256_zip }}"
|
||||||
echo "## Pre-Release Complete" >> $GITHUB_STEP_SUMMARY
|
echo "## Pre-Release Complete" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "" >> $GITHUB_STEP_SUMMARY
|
echo "" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "| Field | Value |" >> $GITHUB_STEP_SUMMARY
|
echo "| Field | Value |" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "|-------|-------|" >> $GITHUB_STEP_SUMMARY
|
echo "|-------|-------|" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "| Version | \`${VERSION}\` |" >> $GITHUB_STEP_SUMMARY
|
echo "| Version | \`${VERSION}\` |" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "| Channel | ${STABILITY} |" >> $GITHUB_STEP_SUMMARY
|
echo "| Channel | ${STABILITY} |" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "| Package | \`${ZIP_NAME}\` |" >> $GITHUB_STEP_SUMMARY
|
echo "| Package | \`${ZIP_NAME}\` |" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "| SHA-256 | \`${SHA256:-n/a}\` |" >> $GITHUB_STEP_SUMMARY
|
echo "| SHA-256 | \`${SHA256:-n/a}\` |" >> $GITHUB_STEP_SUMMARY
|
||||||
|
|||||||
+188
-188
@@ -1,188 +1,188 @@
|
|||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
/* Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
*
|
||||||
* FILE INFORMATION
|
* FILE INFORMATION
|
||||||
* DEFGROUP: moko-platform.CLI
|
* DEFGROUP: moko-platform.CLI
|
||||||
* INGROUP: moko-platform
|
* INGROUP: moko-platform
|
||||||
* REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
* REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
||||||
* PATH: /cli/client_health_check.php
|
* PATH: /cli/client_health_check.php
|
||||||
* BRIEF: Verify a client site's update server, installed version, and release availability
|
* BRIEF: Verify a client site's update server, installed version, and release availability
|
||||||
*
|
*
|
||||||
* Usage:
|
* Usage:
|
||||||
* php client_health_check.php --update-url URL
|
* php client_health_check.php --update-url URL
|
||||||
* php client_health_check.php --path /repo --github-output
|
* php client_health_check.php --path /repo --github-output
|
||||||
*
|
*
|
||||||
* Options:
|
* Options:
|
||||||
* --path Repository root (reads update server URL from manifest)
|
* --path Repository root (reads update server URL from manifest)
|
||||||
* --update-url Update server XML URL (overrides manifest)
|
* --update-url Update server XML URL (overrides manifest)
|
||||||
* --site-url Live site URL for version checking via Joomla API (optional)
|
* --site-url Live site URL for version checking via Joomla API (optional)
|
||||||
* --api-token Joomla API token for site-url (optional)
|
* --api-token Joomla API token for site-url (optional)
|
||||||
* --github-output Export results to $GITHUB_OUTPUT
|
* --github-output Export results to $GITHUB_OUTPUT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
$path = '.';
|
$path = '.';
|
||||||
$updateUrl = null;
|
$updateUrl = null;
|
||||||
$siteUrl = null;
|
$siteUrl = null;
|
||||||
$apiToken = null;
|
$apiToken = null;
|
||||||
$ghOutput = false;
|
$ghOutput = false;
|
||||||
|
|
||||||
foreach ($argv as $i => $arg) {
|
foreach ($argv as $i => $arg) {
|
||||||
if ($arg === '--path' && isset($argv[$i + 1])) $path = $argv[$i + 1];
|
if ($arg === '--path' && isset($argv[$i + 1])) $path = $argv[$i + 1];
|
||||||
if ($arg === '--update-url' && isset($argv[$i + 1])) $updateUrl = $argv[$i + 1];
|
if ($arg === '--update-url' && isset($argv[$i + 1])) $updateUrl = $argv[$i + 1];
|
||||||
if ($arg === '--site-url' && isset($argv[$i + 1])) $siteUrl = $argv[$i + 1];
|
if ($arg === '--site-url' && isset($argv[$i + 1])) $siteUrl = $argv[$i + 1];
|
||||||
if ($arg === '--api-token' && isset($argv[$i + 1])) $apiToken = $argv[$i + 1];
|
if ($arg === '--api-token' && isset($argv[$i + 1])) $apiToken = $argv[$i + 1];
|
||||||
if ($arg === '--github-output') $ghOutput = true;
|
if ($arg === '--github-output') $ghOutput = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$root = realpath($path) ?: $path;
|
$root = realpath($path) ?: $path;
|
||||||
$checks = [];
|
$checks = [];
|
||||||
|
|
||||||
// ── Resolve update server URL from manifest ─────────────────────────────
|
// ── Resolve update server URL from manifest ─────────────────────────────
|
||||||
if ($updateUrl === null) {
|
if ($updateUrl === null) {
|
||||||
$searchDirs = ["{$root}/src", $root];
|
$searchDirs = ["{$root}/src", $root];
|
||||||
foreach ($searchDirs as $dir) {
|
foreach ($searchDirs as $dir) {
|
||||||
if (!is_dir($dir)) continue;
|
if (!is_dir($dir)) continue;
|
||||||
foreach (glob("{$dir}/*.xml") ?: [] as $f) {
|
foreach (glob("{$dir}/*.xml") ?: [] as $f) {
|
||||||
$xml = file_get_contents($f);
|
$xml = file_get_contents($f);
|
||||||
if (preg_match('/<server[^>]*>([^<]+)<\/server>/', $xml, $m)) {
|
if (preg_match('/<server[^>]*>([^<]+)<\/server>/', $xml, $m)) {
|
||||||
$updateUrl = trim($m[1]);
|
$updateUrl = trim($m[1]);
|
||||||
break 2;
|
break 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($updateUrl === null) {
|
if ($updateUrl === null) {
|
||||||
fwrite(STDERR, "No update server URL found. Use --update-url or provide a manifest with <updateservers>.\n");
|
fwrite(STDERR, "No update server URL found. Use --update-url or provide a manifest with <updateservers>.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "Update server: {$updateUrl}\n\n";
|
echo "Update server: {$updateUrl}\n\n";
|
||||||
|
|
||||||
// ── Check 1: Update server accessible ───────────────────────────────────
|
// ── Check 1: Update server accessible ───────────────────────────────────
|
||||||
echo "--- Update Server ---\n";
|
echo "--- Update Server ---\n";
|
||||||
$ch = curl_init($updateUrl);
|
$ch = curl_init($updateUrl);
|
||||||
curl_setopt_array($ch, [
|
curl_setopt_array($ch, [
|
||||||
CURLOPT_RETURNTRANSFER => true,
|
CURLOPT_RETURNTRANSFER => true,
|
||||||
CURLOPT_TIMEOUT => 15,
|
CURLOPT_TIMEOUT => 15,
|
||||||
CURLOPT_FOLLOWLOCATION => true,
|
CURLOPT_FOLLOWLOCATION => true,
|
||||||
CURLOPT_HTTPHEADER => ['User-Agent: MokoHealthCheck/1.0'],
|
CURLOPT_HTTPHEADER => ['User-Agent: MokoHealthCheck/1.0'],
|
||||||
]);
|
]);
|
||||||
$response = curl_exec($ch);
|
$response = curl_exec($ch);
|
||||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
|
|
||||||
if ($httpCode === 200 && !empty($response)) {
|
if ($httpCode === 200 && !empty($response)) {
|
||||||
echo " PASS: HTTP {$httpCode}, " . strlen($response) . " bytes\n";
|
echo " PASS: HTTP {$httpCode}, " . strlen($response) . " bytes\n";
|
||||||
$checks['update_server'] = 'pass';
|
$checks['update_server'] = 'pass';
|
||||||
} else {
|
} else {
|
||||||
echo " FAIL: HTTP {$httpCode}\n";
|
echo " FAIL: HTTP {$httpCode}\n";
|
||||||
$checks['update_server'] = 'fail';
|
$checks['update_server'] = 'fail';
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Check 2: Parse updates.xml for stable version ───────────────────────
|
// ── Check 2: Parse updates.xml for stable version ───────────────────────
|
||||||
$stableVersion = null;
|
$stableVersion = null;
|
||||||
$downloadUrl = null;
|
$downloadUrl = null;
|
||||||
|
|
||||||
if (!empty($response)) {
|
if (!empty($response)) {
|
||||||
$sections = preg_split('/<update>/', $response);
|
$sections = preg_split('/<update>/', $response);
|
||||||
foreach ($sections as $section) {
|
foreach ($sections as $section) {
|
||||||
if (strpos($section, '<tag>stable</tag>') !== false) {
|
if (strpos($section, '<tag>stable</tag>') !== false) {
|
||||||
if (preg_match('/<version>([^<]+)<\/version>/', $section, $m)) {
|
if (preg_match('/<version>([^<]+)<\/version>/', $section, $m)) {
|
||||||
$stableVersion = $m[1];
|
$stableVersion = $m[1];
|
||||||
}
|
}
|
||||||
if (preg_match('/<downloadurl[^>]*>([^<]+)<\/downloadurl>/', $section, $m)) {
|
if (preg_match('/<downloadurl[^>]*>([^<]+)<\/downloadurl>/', $section, $m)) {
|
||||||
$downloadUrl = trim($m[1]);
|
$downloadUrl = trim($m[1]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($stableVersion === null && preg_match('/<version>([^<]+)<\/version>/', $response, $m)) {
|
if ($stableVersion === null && preg_match('/<version>([^<]+)<\/version>/', $response, $m)) {
|
||||||
$stableVersion = $m[1];
|
$stableVersion = $m[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "\n--- Stable Release ---\n";
|
echo "\n--- Stable Release ---\n";
|
||||||
if ($stableVersion !== null) {
|
if ($stableVersion !== null) {
|
||||||
echo " Version: {$stableVersion}\n";
|
echo " Version: {$stableVersion}\n";
|
||||||
$checks['stable_version'] = $stableVersion;
|
$checks['stable_version'] = $stableVersion;
|
||||||
} else {
|
} else {
|
||||||
echo " FAIL: Could not parse stable version\n";
|
echo " FAIL: Could not parse stable version\n";
|
||||||
$checks['stable_version'] = 'fail';
|
$checks['stable_version'] = 'fail';
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Check 3: Download URL accessible ────────────────────────────────────
|
// ── Check 3: Download URL accessible ────────────────────────────────────
|
||||||
if ($downloadUrl !== null) {
|
if ($downloadUrl !== null) {
|
||||||
echo "\n--- Download URL ---\n";
|
echo "\n--- Download URL ---\n";
|
||||||
$ch = curl_init($downloadUrl);
|
$ch = curl_init($downloadUrl);
|
||||||
curl_setopt_array($ch, [
|
curl_setopt_array($ch, [
|
||||||
CURLOPT_NOBODY => true,
|
CURLOPT_NOBODY => true,
|
||||||
CURLOPT_TIMEOUT => 15,
|
CURLOPT_TIMEOUT => 15,
|
||||||
CURLOPT_FOLLOWLOCATION => true,
|
CURLOPT_FOLLOWLOCATION => true,
|
||||||
]);
|
]);
|
||||||
curl_exec($ch);
|
curl_exec($ch);
|
||||||
$dlCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
$dlCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
$dlSize = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
|
$dlSize = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
|
||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
|
|
||||||
if ($dlCode === 200) {
|
if ($dlCode === 200) {
|
||||||
$sizeKb = $dlSize > 0 ? round($dlSize / 1024) . 'KB' : 'unknown size';
|
$sizeKb = $dlSize > 0 ? round($dlSize / 1024) . 'KB' : 'unknown size';
|
||||||
echo " PASS: HTTP {$dlCode}, {$sizeKb}\n";
|
echo " PASS: HTTP {$dlCode}, {$sizeKb}\n";
|
||||||
$checks['download'] = 'pass';
|
$checks['download'] = 'pass';
|
||||||
} else {
|
} else {
|
||||||
echo " FAIL: HTTP {$dlCode}\n";
|
echo " FAIL: HTTP {$dlCode}\n";
|
||||||
$checks['download'] = 'fail';
|
$checks['download'] = 'fail';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Check 4: Site version (optional) ────────────────────────────────────
|
// ── Check 4: Site version (optional) ────────────────────────────────────
|
||||||
if ($siteUrl !== null && $apiToken !== null) {
|
if ($siteUrl !== null && $apiToken !== null) {
|
||||||
echo "\n--- Site Version ---\n";
|
echo "\n--- Site Version ---\n";
|
||||||
$apiUrl = rtrim($siteUrl, '/') . '/api/index.php/v1/extensions?filter[type]=file';
|
$apiUrl = rtrim($siteUrl, '/') . '/api/index.php/v1/extensions?filter[type]=file';
|
||||||
$ch = curl_init($apiUrl);
|
$ch = curl_init($apiUrl);
|
||||||
curl_setopt_array($ch, [
|
curl_setopt_array($ch, [
|
||||||
CURLOPT_RETURNTRANSFER => true,
|
CURLOPT_RETURNTRANSFER => true,
|
||||||
CURLOPT_TIMEOUT => 15,
|
CURLOPT_TIMEOUT => 15,
|
||||||
CURLOPT_HTTPHEADER => [
|
CURLOPT_HTTPHEADER => [
|
||||||
"X-Joomla-Token: {$apiToken}",
|
"X-Joomla-Token: {$apiToken}",
|
||||||
'Accept: application/json',
|
'Accept: application/json',
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
$siteResponse = curl_exec($ch);
|
$siteResponse = curl_exec($ch);
|
||||||
$siteCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
$siteCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
|
|
||||||
if ($siteCode === 200) {
|
if ($siteCode === 200) {
|
||||||
echo " API accessible (HTTP {$siteCode})\n";
|
echo " API accessible (HTTP {$siteCode})\n";
|
||||||
$checks['site_api'] = 'pass';
|
$checks['site_api'] = 'pass';
|
||||||
} else {
|
} else {
|
||||||
echo " WARN: Site API returned HTTP {$siteCode}\n";
|
echo " WARN: Site API returned HTTP {$siteCode}\n";
|
||||||
$checks['site_api'] = 'warn';
|
$checks['site_api'] = 'warn';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Summary ─────────────────────────────────────────────────────────────
|
// ── Summary ─────────────────────────────────────────────────────────────
|
||||||
echo "\n=== Health Check Summary ===\n";
|
echo "\n=== Health Check Summary ===\n";
|
||||||
$failed = 0;
|
$failed = 0;
|
||||||
foreach ($checks as $name => $result) {
|
foreach ($checks as $name => $result) {
|
||||||
$icon = ($result === 'fail') ? 'FAIL' : (($result === 'warn') ? 'WARN' : 'OK');
|
$icon = ($result === 'fail') ? 'FAIL' : (($result === 'warn') ? 'WARN' : 'OK');
|
||||||
if ($result === 'fail') $failed++;
|
if ($result === 'fail') $failed++;
|
||||||
echo " {$icon}: {$name} = {$result}\n";
|
echo " {$icon}: {$name} = {$result}\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($ghOutput) {
|
if ($ghOutput) {
|
||||||
$ghFile = getenv('GITHUB_OUTPUT');
|
$ghFile = getenv('GITHUB_OUTPUT');
|
||||||
if ($ghFile) {
|
if ($ghFile) {
|
||||||
file_put_contents($ghFile, "health_status=" . ($failed > 0 ? 'fail' : 'pass') . "\n", FILE_APPEND);
|
file_put_contents($ghFile, "health_status=" . ($failed > 0 ? 'fail' : 'pass') . "\n", FILE_APPEND);
|
||||||
file_put_contents($ghFile, "health_version=" . ($stableVersion ?? 'unknown') . "\n", FILE_APPEND);
|
file_put_contents($ghFile, "health_version=" . ($stableVersion ?? 'unknown') . "\n", FILE_APPEND);
|
||||||
file_put_contents($ghFile, "health_failures={$failed}\n", FILE_APPEND);
|
file_put_contents($ghFile, "health_failures={$failed}\n", FILE_APPEND);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exit($failed > 0 ? 1 : 0);
|
exit($failed > 0 ? 1 : 0);
|
||||||
|
|||||||
+136
-136
@@ -1,136 +1,136 @@
|
|||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
/* Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
*
|
||||||
* FILE INFORMATION
|
* FILE INFORMATION
|
||||||
* DEFGROUP: moko-platform.CLI
|
* DEFGROUP: moko-platform.CLI
|
||||||
* INGROUP: moko-platform
|
* INGROUP: moko-platform
|
||||||
* REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
* REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
||||||
* PATH: /cli/joomla_compat_check.php
|
* PATH: /cli/joomla_compat_check.php
|
||||||
* BRIEF: Check if extension targetplatform regex matches the latest Joomla version
|
* BRIEF: Check if extension targetplatform regex matches the latest Joomla version
|
||||||
*
|
*
|
||||||
* Usage:
|
* Usage:
|
||||||
* php joomla_compat_check.php --path /repo
|
* php joomla_compat_check.php --path /repo
|
||||||
* php joomla_compat_check.php --path /repo --github-output
|
* php joomla_compat_check.php --path /repo --github-output
|
||||||
*
|
*
|
||||||
* Options:
|
* Options:
|
||||||
* --path Repository root (default: .)
|
* --path Repository root (default: .)
|
||||||
* --github-output Export results to $GITHUB_OUTPUT
|
* --github-output Export results to $GITHUB_OUTPUT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
$path = '.';
|
$path = '.';
|
||||||
$ghOutput = false;
|
$ghOutput = false;
|
||||||
|
|
||||||
foreach ($argv as $i => $arg) {
|
foreach ($argv as $i => $arg) {
|
||||||
if ($arg === '--path' && isset($argv[$i + 1])) $path = $argv[$i + 1];
|
if ($arg === '--path' && isset($argv[$i + 1])) $path = $argv[$i + 1];
|
||||||
if ($arg === '--github-output') $ghOutput = true;
|
if ($arg === '--github-output') $ghOutput = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$root = realpath($path) ?: $path;
|
$root = realpath($path) ?: $path;
|
||||||
|
|
||||||
// ── Find manifest and extract targetplatform ────────────────────────────
|
// ── Find manifest and extract targetplatform ────────────────────────────
|
||||||
$manifest = null;
|
$manifest = null;
|
||||||
$searchDirs = ["{$root}/src", $root];
|
$searchDirs = ["{$root}/src", $root];
|
||||||
foreach ($searchDirs as $dir) {
|
foreach ($searchDirs as $dir) {
|
||||||
if (!is_dir($dir)) continue;
|
if (!is_dir($dir)) continue;
|
||||||
foreach (glob("{$dir}/*.xml") ?: [] as $f) {
|
foreach (glob("{$dir}/*.xml") ?: [] as $f) {
|
||||||
$xml = file_get_contents($f);
|
$xml = file_get_contents($f);
|
||||||
if (strpos($xml, '<extension') !== false && strpos($xml, 'targetplatform') !== false) {
|
if (strpos($xml, '<extension') !== false && strpos($xml, 'targetplatform') !== false) {
|
||||||
$manifest = $f;
|
$manifest = $f;
|
||||||
break 2;
|
break 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($manifest === null) {
|
if ($manifest === null) {
|
||||||
fwrite(STDERR, "No manifest with targetplatform found\n");
|
fwrite(STDERR, "No manifest with targetplatform found\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$xml = file_get_contents($manifest);
|
$xml = file_get_contents($manifest);
|
||||||
$relManifest = str_replace($root . '/', '', $manifest);
|
$relManifest = str_replace($root . '/', '', $manifest);
|
||||||
|
|
||||||
// Extract targetplatform version regex
|
// Extract targetplatform version regex
|
||||||
$targetRegex = '';
|
$targetRegex = '';
|
||||||
if (preg_match('/targetplatform[^>]*version="([^"]+)"/', $xml, $m)) {
|
if (preg_match('/targetplatform[^>]*version="([^"]+)"/', $xml, $m)) {
|
||||||
$targetRegex = $m[1];
|
$targetRegex = $m[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($targetRegex)) {
|
if (empty($targetRegex)) {
|
||||||
echo "No targetplatform version found in {$relManifest}\n";
|
echo "No targetplatform version found in {$relManifest}\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "Manifest: {$relManifest}\n";
|
echo "Manifest: {$relManifest}\n";
|
||||||
echo "Target regex: {$targetRegex}\n";
|
echo "Target regex: {$targetRegex}\n";
|
||||||
|
|
||||||
// ── Fetch latest Joomla version ─────────────────────────────────────────
|
// ── Fetch latest Joomla version ─────────────────────────────────────────
|
||||||
$joomlaVersions = [];
|
$joomlaVersions = [];
|
||||||
$updateUrl = 'https://update.joomla.org/core/sts/list_sts.xml';
|
$updateUrl = 'https://update.joomla.org/core/sts/list_sts.xml';
|
||||||
$updateXml = @file_get_contents($updateUrl);
|
$updateXml = @file_get_contents($updateUrl);
|
||||||
|
|
||||||
if ($updateXml === false) {
|
if ($updateXml === false) {
|
||||||
// Fallback: try the LTS feed
|
// Fallback: try the LTS feed
|
||||||
$updateUrl = 'https://update.joomla.org/core/list.xml';
|
$updateUrl = 'https://update.joomla.org/core/list.xml';
|
||||||
$updateXml = @file_get_contents($updateUrl);
|
$updateXml = @file_get_contents($updateUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($updateXml !== false) {
|
if ($updateXml !== false) {
|
||||||
// Parse all version entries
|
// Parse all version entries
|
||||||
preg_match_all('/<version>([^<]+)<\/version>/', $updateXml, $matches);
|
preg_match_all('/<version>([^<]+)<\/version>/', $updateXml, $matches);
|
||||||
$joomlaVersions = $matches[1] ?? [];
|
$joomlaVersions = $matches[1] ?? [];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($joomlaVersions)) {
|
if (empty($joomlaVersions)) {
|
||||||
echo "WARNING: Could not fetch Joomla versions from update server\n";
|
echo "WARNING: Could not fetch Joomla versions from update server\n";
|
||||||
echo "Tested URL: {$updateUrl}\n";
|
echo "Tested URL: {$updateUrl}\n";
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort and get latest
|
// Sort and get latest
|
||||||
usort($joomlaVersions, 'version_compare');
|
usort($joomlaVersions, 'version_compare');
|
||||||
$latestJoomla = end($joomlaVersions);
|
$latestJoomla = end($joomlaVersions);
|
||||||
|
|
||||||
echo "Latest Joomla: {$latestJoomla}\n";
|
echo "Latest Joomla: {$latestJoomla}\n";
|
||||||
|
|
||||||
// ── Test compatibility ──────────────────────────────────────────────────
|
// ── Test compatibility ──────────────────────────────────────────────────
|
||||||
// The targetplatform regex uses Joomla's regex format
|
// The targetplatform regex uses Joomla's regex format
|
||||||
// Common patterns: "5\.[0-9]+" or "((5.[0-9])|(6.[0-9]))"
|
// Common patterns: "5\.[0-9]+" or "((5.[0-9])|(6.[0-9]))"
|
||||||
$compatible = @preg_match("/{$targetRegex}/", $latestJoomla);
|
$compatible = @preg_match("/{$targetRegex}/", $latestJoomla);
|
||||||
|
|
||||||
if ($compatible === false) {
|
if ($compatible === false) {
|
||||||
echo "ERROR: Invalid regex in targetplatform: {$targetRegex}\n";
|
echo "ERROR: Invalid regex in targetplatform: {$targetRegex}\n";
|
||||||
$result = 'error';
|
$result = 'error';
|
||||||
} elseif ($compatible === 1) {
|
} elseif ($compatible === 1) {
|
||||||
echo "PASS: Joomla {$latestJoomla} matches targetplatform regex\n";
|
echo "PASS: Joomla {$latestJoomla} matches targetplatform regex\n";
|
||||||
$result = 'pass';
|
$result = 'pass';
|
||||||
} else {
|
} else {
|
||||||
// Check which major versions are supported
|
// Check which major versions are supported
|
||||||
$supported = [];
|
$supported = [];
|
||||||
foreach (['5.0', '5.1', '5.2', '5.3', '5.4', '6.0', '6.1', '6.2', '7.0'] as $v) {
|
foreach (['5.0', '5.1', '5.2', '5.3', '5.4', '6.0', '6.1', '6.2', '7.0'] as $v) {
|
||||||
if (@preg_match("/{$targetRegex}/", $v)) {
|
if (@preg_match("/{$targetRegex}/", $v)) {
|
||||||
$supported[] = $v;
|
$supported[] = $v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "WARN: Joomla {$latestJoomla} does NOT match targetplatform regex\n";
|
echo "WARN: Joomla {$latestJoomla} does NOT match targetplatform regex\n";
|
||||||
echo "Supported versions: " . implode(', ', $supported) . "\n";
|
echo "Supported versions: " . implode(', ', $supported) . "\n";
|
||||||
echo "Consider updating targetplatform to include Joomla {$latestJoomla}\n";
|
echo "Consider updating targetplatform to include Joomla {$latestJoomla}\n";
|
||||||
$result = 'warn';
|
$result = 'warn';
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Export ───────────────────────────────────────────────────────────────
|
// ── Export ───────────────────────────────────────────────────────────────
|
||||||
if ($ghOutput) {
|
if ($ghOutput) {
|
||||||
$ghFile = getenv('GITHUB_OUTPUT');
|
$ghFile = getenv('GITHUB_OUTPUT');
|
||||||
if ($ghFile) {
|
if ($ghFile) {
|
||||||
file_put_contents($ghFile, "compat_result={$result}\n", FILE_APPEND);
|
file_put_contents($ghFile, "compat_result={$result}\n", FILE_APPEND);
|
||||||
file_put_contents($ghFile, "compat_joomla={$latestJoomla}\n", FILE_APPEND);
|
file_put_contents($ghFile, "compat_joomla={$latestJoomla}\n", FILE_APPEND);
|
||||||
file_put_contents($ghFile, "compat_regex={$targetRegex}\n", FILE_APPEND);
|
file_put_contents($ghFile, "compat_regex={$targetRegex}\n", FILE_APPEND);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exit($result === 'error' ? 1 : 0);
|
exit($result === 'error' ? 1 : 0);
|
||||||
|
|||||||
+209
-209
@@ -1,209 +1,209 @@
|
|||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
/* Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
*
|
||||||
* FILE INFORMATION
|
* FILE INFORMATION
|
||||||
* DEFGROUP: moko-platform.CLI
|
* DEFGROUP: moko-platform.CLI
|
||||||
* INGROUP: moko-platform
|
* INGROUP: moko-platform
|
||||||
* REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
* REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
||||||
* PATH: /cli/theme_lint.php
|
* PATH: /cli/theme_lint.php
|
||||||
* BRIEF: Lint theme files — CSS syntax, image sizes, hardcoded URLs
|
* BRIEF: Lint theme files — CSS syntax, image sizes, hardcoded URLs
|
||||||
*
|
*
|
||||||
* Usage:
|
* Usage:
|
||||||
* php theme_lint.php --path /repo
|
* php theme_lint.php --path /repo
|
||||||
* php theme_lint.php --path /repo --max-image-kb 500
|
* php theme_lint.php --path /repo --max-image-kb 500
|
||||||
* php theme_lint.php --path /repo --github-output
|
* php theme_lint.php --path /repo --github-output
|
||||||
*
|
*
|
||||||
* Options:
|
* Options:
|
||||||
* --path Repository root (default: .)
|
* --path Repository root (default: .)
|
||||||
* --max-image-kb Maximum image file size in KB (default: 500)
|
* --max-image-kb Maximum image file size in KB (default: 500)
|
||||||
* --github-output Export results to $GITHUB_OUTPUT
|
* --github-output Export results to $GITHUB_OUTPUT
|
||||||
* --strict Exit 1 on any warning (default: only on errors)
|
* --strict Exit 1 on any warning (default: only on errors)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
$path = '.';
|
$path = '.';
|
||||||
$maxImageKb = 500;
|
$maxImageKb = 500;
|
||||||
$ghOutput = false;
|
$ghOutput = false;
|
||||||
$strict = false;
|
$strict = false;
|
||||||
|
|
||||||
foreach ($argv as $i => $arg) {
|
foreach ($argv as $i => $arg) {
|
||||||
if ($arg === '--path' && isset($argv[$i + 1])) $path = $argv[$i + 1];
|
if ($arg === '--path' && isset($argv[$i + 1])) $path = $argv[$i + 1];
|
||||||
if ($arg === '--max-image-kb' && isset($argv[$i + 1])) $maxImageKb = (int)$argv[$i + 1];
|
if ($arg === '--max-image-kb' && isset($argv[$i + 1])) $maxImageKb = (int)$argv[$i + 1];
|
||||||
if ($arg === '--github-output') $ghOutput = true;
|
if ($arg === '--github-output') $ghOutput = true;
|
||||||
if ($arg === '--strict') $strict = true;
|
if ($arg === '--strict') $strict = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$root = realpath($path) ?: $path;
|
$root = realpath($path) ?: $path;
|
||||||
$errors = 0;
|
$errors = 0;
|
||||||
$warnings = 0;
|
$warnings = 0;
|
||||||
|
|
||||||
// ── Find source directory ───────────────────────────────────────────────
|
// ── Find source directory ───────────────────────────────────────────────
|
||||||
$srcDir = null;
|
$srcDir = null;
|
||||||
foreach (['src', 'htdocs'] as $d) {
|
foreach (['src', 'htdocs'] as $d) {
|
||||||
if (is_dir("{$root}/{$d}")) { $srcDir = "{$root}/{$d}"; break; }
|
if (is_dir("{$root}/{$d}")) { $srcDir = "{$root}/{$d}"; break; }
|
||||||
}
|
}
|
||||||
if ($srcDir === null) {
|
if ($srcDir === null) {
|
||||||
fwrite(STDERR, "No src/ or htdocs/ directory in {$root}\n");
|
fwrite(STDERR, "No src/ or htdocs/ directory in {$root}\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "Theme Lint: {$srcDir}\n\n";
|
echo "Theme Lint: {$srcDir}\n\n";
|
||||||
|
|
||||||
// ── Check 1: CSS syntax validation ──────────────────────────────────────
|
// ── Check 1: CSS syntax validation ──────────────────────────────────────
|
||||||
echo "--- CSS Syntax ---\n";
|
echo "--- CSS Syntax ---\n";
|
||||||
$cssFiles = findFiles($srcDir, '*.css');
|
$cssFiles = findFiles($srcDir, '*.css');
|
||||||
$cssMinFiles = findFiles($srcDir, '*.min.css');
|
$cssMinFiles = findFiles($srcDir, '*.min.css');
|
||||||
$cssToCheck = array_diff($cssFiles, $cssMinFiles);
|
$cssToCheck = array_diff($cssFiles, $cssMinFiles);
|
||||||
|
|
||||||
if (empty($cssToCheck)) {
|
if (empty($cssToCheck)) {
|
||||||
echo " No CSS files to check\n";
|
echo " No CSS files to check\n";
|
||||||
} else {
|
} else {
|
||||||
foreach ($cssToCheck as $file) {
|
foreach ($cssToCheck as $file) {
|
||||||
$content = file_get_contents($file);
|
$content = file_get_contents($file);
|
||||||
$relPath = str_replace($root . '/', '', $file);
|
$relPath = str_replace($root . '/', '', $file);
|
||||||
|
|
||||||
// Check for unmatched braces
|
// Check for unmatched braces
|
||||||
$openBraces = substr_count($content, '{');
|
$openBraces = substr_count($content, '{');
|
||||||
$closeBraces = substr_count($content, '}');
|
$closeBraces = substr_count($content, '}');
|
||||||
if ($openBraces !== $closeBraces) {
|
if ($openBraces !== $closeBraces) {
|
||||||
echo " ERROR: {$relPath}: unmatched braces (open={$openBraces}, close={$closeBraces})\n";
|
echo " ERROR: {$relPath}: unmatched braces (open={$openBraces}, close={$closeBraces})\n";
|
||||||
$errors++;
|
$errors++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for empty rules
|
// Check for empty rules
|
||||||
if (preg_match_all('/\{[\s]*\}/', $content, $m)) {
|
if (preg_match_all('/\{[\s]*\}/', $content, $m)) {
|
||||||
$count = count($m[0]);
|
$count = count($m[0]);
|
||||||
echo " WARN: {$relPath}: {$count} empty rule(s)\n";
|
echo " WARN: {$relPath}: {$count} empty rule(s)\n";
|
||||||
$warnings++;
|
$warnings++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for !important abuse (more than 10 in one file)
|
// Check for !important abuse (more than 10 in one file)
|
||||||
$importantCount = substr_count($content, '!important');
|
$importantCount = substr_count($content, '!important');
|
||||||
if ($importantCount > 10) {
|
if ($importantCount > 10) {
|
||||||
echo " WARN: {$relPath}: {$importantCount} !important declarations (consider refactoring)\n";
|
echo " WARN: {$relPath}: {$importantCount} !important declarations (consider refactoring)\n";
|
||||||
$warnings++;
|
$warnings++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($errors === 0) {
|
if ($errors === 0) {
|
||||||
echo " OK: " . count($cssToCheck) . " CSS file(s) checked\n";
|
echo " OK: " . count($cssToCheck) . " CSS file(s) checked\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Check 2: Image file sizes ───────────────────────────────────────────
|
// ── Check 2: Image file sizes ───────────────────────────────────────────
|
||||||
echo "\n--- Image Sizes (max {$maxImageKb}KB) ---\n";
|
echo "\n--- Image Sizes (max {$maxImageKb}KB) ---\n";
|
||||||
$imageExts = ['*.jpg', '*.jpeg', '*.png', '*.gif', '*.webp', '*.svg', '*.bmp'];
|
$imageExts = ['*.jpg', '*.jpeg', '*.png', '*.gif', '*.webp', '*.svg', '*.bmp'];
|
||||||
$images = [];
|
$images = [];
|
||||||
foreach ($imageExts as $ext) {
|
foreach ($imageExts as $ext) {
|
||||||
$images = array_merge($images, findFiles($srcDir, $ext));
|
$images = array_merge($images, findFiles($srcDir, $ext));
|
||||||
}
|
}
|
||||||
// Also check root images/ directory
|
// Also check root images/ directory
|
||||||
if (is_dir("{$root}/images")) {
|
if (is_dir("{$root}/images")) {
|
||||||
foreach ($imageExts as $ext) {
|
foreach ($imageExts as $ext) {
|
||||||
$images = array_merge($images, findFiles("{$root}/images", $ext));
|
$images = array_merge($images, findFiles("{$root}/images", $ext));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$oversized = 0;
|
$oversized = 0;
|
||||||
$totalSize = 0;
|
$totalSize = 0;
|
||||||
foreach ($images as $file) {
|
foreach ($images as $file) {
|
||||||
$size = filesize($file);
|
$size = filesize($file);
|
||||||
$totalSize += $size;
|
$totalSize += $size;
|
||||||
$relPath = str_replace($root . '/', '', $file);
|
$relPath = str_replace($root . '/', '', $file);
|
||||||
$sizeKb = round($size / 1024);
|
$sizeKb = round($size / 1024);
|
||||||
|
|
||||||
if ($sizeKb > $maxImageKb) {
|
if ($sizeKb > $maxImageKb) {
|
||||||
echo " WARN: {$relPath}: {$sizeKb}KB (exceeds {$maxImageKb}KB limit)\n";
|
echo " WARN: {$relPath}: {$sizeKb}KB (exceeds {$maxImageKb}KB limit)\n";
|
||||||
$oversized++;
|
$oversized++;
|
||||||
$warnings++;
|
$warnings++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$totalMb = round($totalSize / 1024 / 1024, 1);
|
$totalMb = round($totalSize / 1024 / 1024, 1);
|
||||||
echo " " . count($images) . " image(s), {$totalMb}MB total";
|
echo " " . count($images) . " image(s), {$totalMb}MB total";
|
||||||
if ($oversized > 0) {
|
if ($oversized > 0) {
|
||||||
echo ", {$oversized} oversized";
|
echo ", {$oversized} oversized";
|
||||||
}
|
}
|
||||||
echo "\n";
|
echo "\n";
|
||||||
|
|
||||||
// ── Check 3: Hardcoded URLs in CSS/JS ───────────────────────────────────
|
// ── Check 3: Hardcoded URLs in CSS/JS ───────────────────────────────────
|
||||||
echo "\n--- Hardcoded URLs ---\n";
|
echo "\n--- Hardcoded URLs ---\n";
|
||||||
$codeFiles = array_merge(
|
$codeFiles = array_merge(
|
||||||
findFiles($srcDir, '*.css'),
|
findFiles($srcDir, '*.css'),
|
||||||
findFiles($srcDir, '*.js')
|
findFiles($srcDir, '*.js')
|
||||||
);
|
);
|
||||||
// Exclude minified files
|
// Exclude minified files
|
||||||
$codeFiles = array_filter($codeFiles, function($f) {
|
$codeFiles = array_filter($codeFiles, function($f) {
|
||||||
return !preg_match('/\.min\.(css|js)$/', $f);
|
return !preg_match('/\.min\.(css|js)$/', $f);
|
||||||
});
|
});
|
||||||
|
|
||||||
$urlPatterns = [
|
$urlPatterns = [
|
||||||
'/https?:\/\/clarksvillefurs\.com/' => 'hardcoded production URL',
|
'/https?:\/\/clarksvillefurs\.com/' => 'hardcoded production URL',
|
||||||
'/https?:\/\/[a-z]+\.dev\.mokoconsulting\.tech/' => 'hardcoded dev URL',
|
'/https?:\/\/[a-z]+\.dev\.mokoconsulting\.tech/' => 'hardcoded dev URL',
|
||||||
'/https?:\/\/localhost/' => 'localhost reference',
|
'/https?:\/\/localhost/' => 'localhost reference',
|
||||||
];
|
];
|
||||||
|
|
||||||
$urlIssues = 0;
|
$urlIssues = 0;
|
||||||
foreach ($codeFiles as $file) {
|
foreach ($codeFiles as $file) {
|
||||||
$content = file_get_contents($file);
|
$content = file_get_contents($file);
|
||||||
$relPath = str_replace($root . '/', '', $file);
|
$relPath = str_replace($root . '/', '', $file);
|
||||||
|
|
||||||
foreach ($urlPatterns as $pattern => $desc) {
|
foreach ($urlPatterns as $pattern => $desc) {
|
||||||
if (preg_match_all($pattern, $content, $matches)) {
|
if (preg_match_all($pattern, $content, $matches)) {
|
||||||
$count = count($matches[0]);
|
$count = count($matches[0]);
|
||||||
echo " WARN: {$relPath}: {$count} {$desc}\n";
|
echo " WARN: {$relPath}: {$count} {$desc}\n";
|
||||||
$urlIssues++;
|
$urlIssues++;
|
||||||
$warnings++;
|
$warnings++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($urlIssues === 0) {
|
if ($urlIssues === 0) {
|
||||||
echo " OK: No hardcoded URLs found\n";
|
echo " OK: No hardcoded URLs found\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Summary ─────────────────────────────────────────────────────────────
|
// ── Summary ─────────────────────────────────────────────────────────────
|
||||||
echo "\n=== Summary ===\n";
|
echo "\n=== Summary ===\n";
|
||||||
echo "Errors: {$errors}\n";
|
echo "Errors: {$errors}\n";
|
||||||
echo "Warnings: {$warnings}\n";
|
echo "Warnings: {$warnings}\n";
|
||||||
|
|
||||||
if ($ghOutput) {
|
if ($ghOutput) {
|
||||||
$ghFile = getenv('GITHUB_OUTPUT');
|
$ghFile = getenv('GITHUB_OUTPUT');
|
||||||
if ($ghFile) {
|
if ($ghFile) {
|
||||||
file_put_contents($ghFile, "lint_errors={$errors}\n", FILE_APPEND);
|
file_put_contents($ghFile, "lint_errors={$errors}\n", FILE_APPEND);
|
||||||
file_put_contents($ghFile, "lint_warnings={$warnings}\n", FILE_APPEND);
|
file_put_contents($ghFile, "lint_warnings={$warnings}\n", FILE_APPEND);
|
||||||
file_put_contents($ghFile, "lint_images=" . count($images) . "\n", FILE_APPEND);
|
file_put_contents($ghFile, "lint_images=" . count($images) . "\n", FILE_APPEND);
|
||||||
file_put_contents($ghFile, "lint_css=" . count($cssToCheck) . "\n", FILE_APPEND);
|
file_put_contents($ghFile, "lint_css=" . count($cssToCheck) . "\n", FILE_APPEND);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($errors > 0) {
|
if ($errors > 0) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if ($strict && $warnings > 0) {
|
if ($strict && $warnings > 0) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|
||||||
// ── Helper: recursively find files matching a glob pattern ──────────────
|
// ── Helper: recursively find files matching a glob pattern ──────────────
|
||||||
function findFiles(string $dir, string $pattern): array
|
function findFiles(string $dir, string $pattern): array
|
||||||
{
|
{
|
||||||
$results = [];
|
$results = [];
|
||||||
if (!is_dir($dir)) return $results;
|
if (!is_dir($dir)) return $results;
|
||||||
|
|
||||||
$iterator = new RecursiveIteratorIterator(
|
$iterator = new RecursiveIteratorIterator(
|
||||||
new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS)
|
new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS)
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($iterator as $file) {
|
foreach ($iterator as $file) {
|
||||||
if (fnmatch($pattern, $file->getFilename())) {
|
if (fnmatch($pattern, $file->getFilename())) {
|
||||||
$results[] = $file->getPathname();
|
$results[] = $file->getPathname();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $results;
|
return $results;
|
||||||
}
|
}
|
||||||
|
|||||||
+233
-233
@@ -1,233 +1,233 @@
|
|||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
/* Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
*
|
||||||
* FILE INFORMATION
|
* FILE INFORMATION
|
||||||
* DEFGROUP: moko-platform.CLI
|
* DEFGROUP: moko-platform.CLI
|
||||||
* INGROUP: moko-platform
|
* INGROUP: moko-platform
|
||||||
* REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
* REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
||||||
* PATH: /cli/version_bump_remote.php
|
* PATH: /cli/version_bump_remote.php
|
||||||
* BRIEF: Bump version in manifest XML and CHANGELOG.md on a remote branch via Gitea API
|
* BRIEF: Bump version in manifest XML and CHANGELOG.md on a remote branch via Gitea API
|
||||||
*
|
*
|
||||||
* Usage:
|
* Usage:
|
||||||
* php version_bump_remote.php --path . --branch dev --bump minor --token TOKEN --api-base URL
|
* php version_bump_remote.php --path . --branch dev --bump minor --token TOKEN --api-base URL
|
||||||
* php version_bump_remote.php --path . --branch dev --bump patch --token TOKEN --api-base URL
|
* php version_bump_remote.php --path . --branch dev --bump patch --token TOKEN --api-base URL
|
||||||
* php version_bump_remote.php --path . --branch dev --bump minor --no-changelog --token TOKEN --api-base URL
|
* php version_bump_remote.php --path . --branch dev --bump minor --no-changelog --token TOKEN --api-base URL
|
||||||
*
|
*
|
||||||
* Options:
|
* Options:
|
||||||
* --path Repository root (reads current version from local manifest)
|
* --path Repository root (reads current version from local manifest)
|
||||||
* --branch Target branch to bump (required, e.g. dev)
|
* --branch Target branch to bump (required, e.g. dev)
|
||||||
* --bump Bump type: patch | minor | major (default: minor)
|
* --bump Bump type: patch | minor | major (default: minor)
|
||||||
* --token Gitea API token (or GA_TOKEN env var)
|
* --token Gitea API token (or GA_TOKEN env var)
|
||||||
* --api-base Gitea API base URL for the repo
|
* --api-base Gitea API base URL for the repo
|
||||||
* --no-changelog Skip CHANGELOG.md bump
|
* --no-changelog Skip CHANGELOG.md bump
|
||||||
* --repo Repository path (owner/repo) for API base construction
|
* --repo Repository path (owner/repo) for API base construction
|
||||||
* --gitea-url Gitea instance URL (default: env GITEA_URL)
|
* --gitea-url Gitea instance URL (default: env GITEA_URL)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
$path = '.';
|
$path = '.';
|
||||||
$branch = null;
|
$branch = null;
|
||||||
$bumpType = 'minor';
|
$bumpType = 'minor';
|
||||||
$token = null;
|
$token = null;
|
||||||
$apiBase = null;
|
$apiBase = null;
|
||||||
$noChangelog = false;
|
$noChangelog = false;
|
||||||
$repo = null;
|
$repo = null;
|
||||||
$giteaUrl = null;
|
$giteaUrl = null;
|
||||||
|
|
||||||
foreach ($argv as $i => $arg) {
|
foreach ($argv as $i => $arg) {
|
||||||
if ($arg === '--path' && isset($argv[$i + 1])) $path = $argv[$i + 1];
|
if ($arg === '--path' && isset($argv[$i + 1])) $path = $argv[$i + 1];
|
||||||
if ($arg === '--branch' && isset($argv[$i + 1])) $branch = $argv[$i + 1];
|
if ($arg === '--branch' && isset($argv[$i + 1])) $branch = $argv[$i + 1];
|
||||||
if ($arg === '--bump' && isset($argv[$i + 1])) $bumpType = $argv[$i + 1];
|
if ($arg === '--bump' && isset($argv[$i + 1])) $bumpType = $argv[$i + 1];
|
||||||
if ($arg === '--token' && isset($argv[$i + 1])) $token = $argv[$i + 1];
|
if ($arg === '--token' && isset($argv[$i + 1])) $token = $argv[$i + 1];
|
||||||
if ($arg === '--api-base' && isset($argv[$i + 1])) $apiBase = $argv[$i + 1];
|
if ($arg === '--api-base' && isset($argv[$i + 1])) $apiBase = $argv[$i + 1];
|
||||||
if ($arg === '--no-changelog') $noChangelog = true;
|
if ($arg === '--no-changelog') $noChangelog = true;
|
||||||
if ($arg === '--repo' && isset($argv[$i + 1])) $repo = $argv[$i + 1];
|
if ($arg === '--repo' && isset($argv[$i + 1])) $repo = $argv[$i + 1];
|
||||||
if ($arg === '--gitea-url' && isset($argv[$i + 1])) $giteaUrl = $argv[$i + 1];
|
if ($arg === '--gitea-url' && isset($argv[$i + 1])) $giteaUrl = $argv[$i + 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($token === null) $token = getenv('GA_TOKEN') ?: getenv('GITEA_TOKEN') ?: null;
|
if ($token === null) $token = getenv('GA_TOKEN') ?: getenv('GITEA_TOKEN') ?: null;
|
||||||
if ($giteaUrl === null) $giteaUrl = getenv('GITEA_URL') ?: 'https://git.mokoconsulting.tech';
|
if ($giteaUrl === null) $giteaUrl = getenv('GITEA_URL') ?: 'https://git.mokoconsulting.tech';
|
||||||
|
|
||||||
if ($apiBase === null && $repo !== null) {
|
if ($apiBase === null && $repo !== null) {
|
||||||
$apiBase = rtrim($giteaUrl, '/') . '/api/v1/repos/' . $repo;
|
$apiBase = rtrim($giteaUrl, '/') . '/api/v1/repos/' . $repo;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($branch === null || $token === null || $apiBase === null) {
|
if ($branch === null || $token === null || $apiBase === null) {
|
||||||
fwrite(STDERR, "Usage: version_bump_remote.php --branch BRANCH --token TOKEN --api-base URL [--bump minor|patch|major]\n");
|
fwrite(STDERR, "Usage: version_bump_remote.php --branch BRANCH --token TOKEN --api-base URL [--bump minor|patch|major]\n");
|
||||||
fwrite(STDERR, " or: version_bump_remote.php --branch BRANCH --token TOKEN --repo owner/repo\n");
|
fwrite(STDERR, " or: version_bump_remote.php --branch BRANCH --token TOKEN --repo owner/repo\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$root = realpath($path) ?: $path;
|
$root = realpath($path) ?: $path;
|
||||||
|
|
||||||
// ── Read current version from local manifest ────────────────────────────
|
// ── Read current version from local manifest ────────────────────────────
|
||||||
$version = null;
|
$version = null;
|
||||||
$manifestFile = null;
|
$manifestFile = null;
|
||||||
|
|
||||||
$searchDirs = ["{$root}/src", $root];
|
$searchDirs = ["{$root}/src", $root];
|
||||||
foreach ($searchDirs as $dir) {
|
foreach ($searchDirs as $dir) {
|
||||||
if (!is_dir($dir)) continue;
|
if (!is_dir($dir)) continue;
|
||||||
foreach (glob("{$dir}/*.xml") ?: [] as $f) {
|
foreach (glob("{$dir}/*.xml") ?: [] as $f) {
|
||||||
$xml = file_get_contents($f);
|
$xml = file_get_contents($f);
|
||||||
if (strpos($xml, '<extension') !== false || strpos($xml, '<version>') !== false) {
|
if (strpos($xml, '<extension') !== false || strpos($xml, '<version>') !== false) {
|
||||||
if (preg_match('|<version>(\d{2}\.\d{2}\.\d{2})</version>|', $xml, $m)) {
|
if (preg_match('|<version>(\d{2}\.\d{2}\.\d{2})</version>|', $xml, $m)) {
|
||||||
if ($version === null || version_compare($m[1], $version, '>')) {
|
if ($version === null || version_compare($m[1], $version, '>')) {
|
||||||
$version = $m[1];
|
$version = $m[1];
|
||||||
$manifestFile = basename($f);
|
$manifestFile = basename($f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($version === null) {
|
if ($version === null) {
|
||||||
fwrite(STDERR, "No version found in manifest XML\n");
|
fwrite(STDERR, "No version found in manifest XML\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Compute next version ────────────────────────────────────────────────
|
// ── Compute next version ────────────────────────────────────────────────
|
||||||
if (!preg_match('/^(\d{2})\.(\d{2})\.(\d{2})$/', $version, $parts)) {
|
if (!preg_match('/^(\d{2})\.(\d{2})\.(\d{2})$/', $version, $parts)) {
|
||||||
fwrite(STDERR, "Invalid version format: {$version}\n");
|
fwrite(STDERR, "Invalid version format: {$version}\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$major = (int)$parts[1];
|
$major = (int)$parts[1];
|
||||||
$minor = (int)$parts[2];
|
$minor = (int)$parts[2];
|
||||||
$patch = (int)$parts[3];
|
$patch = (int)$parts[3];
|
||||||
|
|
||||||
switch ($bumpType) {
|
switch ($bumpType) {
|
||||||
case 'major': $major++; $minor = 0; $patch = 0; break;
|
case 'major': $major++; $minor = 0; $patch = 0; break;
|
||||||
case 'minor': $minor++; $patch = 0; break;
|
case 'minor': $minor++; $patch = 0; break;
|
||||||
default: $patch++; break;
|
default: $patch++; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$nextVersion = sprintf('%02d.%02d.%02d', $major, $minor, $patch);
|
$nextVersion = sprintf('%02d.%02d.%02d', $major, $minor, $patch);
|
||||||
echo "{$version} -> {$nextVersion} ({$branch})\n";
|
echo "{$version} -> {$nextVersion} ({$branch})\n";
|
||||||
|
|
||||||
// ── Helper: Gitea API request ───────────────────────────────────────────
|
// ── Helper: Gitea API request ───────────────────────────────────────────
|
||||||
function giteaApi(string $method, string $url, string $token, ?string $body = null): ?array
|
function giteaApi(string $method, string $url, string $token, ?string $body = null): ?array
|
||||||
{
|
{
|
||||||
$ch = curl_init($url);
|
$ch = curl_init($url);
|
||||||
curl_setopt_array($ch, [
|
curl_setopt_array($ch, [
|
||||||
CURLOPT_RETURNTRANSFER => true,
|
CURLOPT_RETURNTRANSFER => true,
|
||||||
CURLOPT_HTTPHEADER => [
|
CURLOPT_HTTPHEADER => [
|
||||||
"Authorization: token {$token}",
|
"Authorization: token {$token}",
|
||||||
'Content-Type: application/json',
|
'Content-Type: application/json',
|
||||||
],
|
],
|
||||||
CURLOPT_CUSTOMREQUEST => $method,
|
CURLOPT_CUSTOMREQUEST => $method,
|
||||||
CURLOPT_TIMEOUT => 30,
|
CURLOPT_TIMEOUT => 30,
|
||||||
]);
|
]);
|
||||||
if ($body !== null) {
|
if ($body !== null) {
|
||||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
|
||||||
}
|
}
|
||||||
$response = curl_exec($ch);
|
$response = curl_exec($ch);
|
||||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
|
|
||||||
if ($httpCode >= 400 || $response === false) {
|
if ($httpCode >= 400 || $response === false) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return json_decode($response, true) ?: [];
|
return json_decode($response, true) ?: [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Helper: Update a file on a remote branch ────────────────────────────
|
// ── Helper: Update a file on a remote branch ────────────────────────────
|
||||||
function updateRemoteFile(
|
function updateRemoteFile(
|
||||||
string $apiBase,
|
string $apiBase,
|
||||||
string $token,
|
string $token,
|
||||||
string $filePath,
|
string $filePath,
|
||||||
string $branch,
|
string $branch,
|
||||||
callable $transform,
|
callable $transform,
|
||||||
string $commitMessage
|
string $commitMessage
|
||||||
): bool {
|
): bool {
|
||||||
$url = "{$apiBase}/contents/{$filePath}?ref={$branch}";
|
$url = "{$apiBase}/contents/{$filePath}?ref={$branch}";
|
||||||
$file = giteaApi('GET', $url, $token);
|
$file = giteaApi('GET', $url, $token);
|
||||||
if ($file === null || !isset($file['sha']) || !isset($file['content'])) {
|
if ($file === null || !isset($file['sha']) || !isset($file['content'])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$content = base64_decode($file['content']);
|
$content = base64_decode($file['content']);
|
||||||
$newContent = $transform($content);
|
$newContent = $transform($content);
|
||||||
|
|
||||||
if ($newContent === $content) {
|
if ($newContent === $content) {
|
||||||
fwrite(STDERR, " {$filePath}: no changes needed\n");
|
fwrite(STDERR, " {$filePath}: no changes needed\n");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$payload = json_encode([
|
$payload = json_encode([
|
||||||
'content' => base64_encode($newContent),
|
'content' => base64_encode($newContent),
|
||||||
'sha' => $file['sha'],
|
'sha' => $file['sha'],
|
||||||
'message' => $commitMessage,
|
'message' => $commitMessage,
|
||||||
'branch' => $branch,
|
'branch' => $branch,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$result = giteaApi('PUT', "{$apiBase}/contents/{$filePath}", $token, $payload);
|
$result = giteaApi('PUT', "{$apiBase}/contents/{$filePath}", $token, $payload);
|
||||||
if ($result === null) {
|
if ($result === null) {
|
||||||
fwrite(STDERR, " {$filePath}: failed to update\n");
|
fwrite(STDERR, " {$filePath}: failed to update\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo " {$filePath}: updated on {$branch}\n";
|
echo " {$filePath}: updated on {$branch}\n";
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Update manifest XML on the remote branch ────────────────────────────
|
// ── Update manifest XML on the remote branch ────────────────────────────
|
||||||
$manifestPaths = [];
|
$manifestPaths = [];
|
||||||
if ($manifestFile !== null) {
|
if ($manifestFile !== null) {
|
||||||
$manifestPaths[] = "src/{$manifestFile}";
|
$manifestPaths[] = "src/{$manifestFile}";
|
||||||
}
|
}
|
||||||
$manifestPaths = array_merge($manifestPaths, [
|
$manifestPaths = array_merge($manifestPaths, [
|
||||||
'src/templateDetails.xml',
|
'src/templateDetails.xml',
|
||||||
'src/manifest.xml',
|
'src/manifest.xml',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$manifestUpdated = false;
|
$manifestUpdated = false;
|
||||||
foreach ($manifestPaths as $mPath) {
|
foreach ($manifestPaths as $mPath) {
|
||||||
$result = updateRemoteFile(
|
$result = updateRemoteFile(
|
||||||
$apiBase, $token, $mPath, $branch,
|
$apiBase, $token, $mPath, $branch,
|
||||||
function (string $content) use ($version, $nextVersion): string {
|
function (string $content) use ($version, $nextVersion): string {
|
||||||
return str_replace(
|
return str_replace(
|
||||||
"<version>{$version}</version>",
|
"<version>{$version}</version>",
|
||||||
"<version>{$nextVersion}</version>",
|
"<version>{$nextVersion}</version>",
|
||||||
$content
|
$content
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
"chore(version): bump {$version} -> {$nextVersion} [skip ci]"
|
"chore(version): bump {$version} -> {$nextVersion} [skip ci]"
|
||||||
);
|
);
|
||||||
if ($result) {
|
if ($result) {
|
||||||
$manifestUpdated = true;
|
$manifestUpdated = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$manifestUpdated) {
|
if (!$manifestUpdated) {
|
||||||
fwrite(STDERR, "WARNING: could not update manifest on {$branch}\n");
|
fwrite(STDERR, "WARNING: could not update manifest on {$branch}\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Update CHANGELOG.md on the remote branch ────────────────────────────
|
// ── Update CHANGELOG.md on the remote branch ────────────────────────────
|
||||||
if (!$noChangelog) {
|
if (!$noChangelog) {
|
||||||
updateRemoteFile(
|
updateRemoteFile(
|
||||||
$apiBase, $token, 'CHANGELOG.md', $branch,
|
$apiBase, $token, 'CHANGELOG.md', $branch,
|
||||||
function (string $content) use ($version, $nextVersion): string {
|
function (string $content) use ($version, $nextVersion): string {
|
||||||
$content = str_replace("VERSION: {$version}", "VERSION: {$nextVersion}", $content);
|
$content = str_replace("VERSION: {$version}", "VERSION: {$nextVersion}", $content);
|
||||||
|
|
||||||
if (strpos($content, '[Unreleased]') === false
|
if (strpos($content, '[Unreleased]') === false
|
||||||
&& strpos($content, "## [{$nextVersion}]") === false
|
&& strpos($content, "## [{$nextVersion}]") === false
|
||||||
) {
|
) {
|
||||||
$marker = "## [{$version}]";
|
$marker = "## [{$version}]";
|
||||||
if (strpos($content, $marker) !== false) {
|
if (strpos($content, $marker) !== false) {
|
||||||
$unreleased = "## [{$nextVersion}] - Unreleased\n\n### Added\n\n### Changed\n\n### Fixed\n\n";
|
$unreleased = "## [{$nextVersion}] - Unreleased\n\n### Added\n\n### Changed\n\n### Fixed\n\n";
|
||||||
$content = str_replace($marker, $unreleased . $marker, $content);
|
$content = str_replace($marker, $unreleased . $marker, $content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $content;
|
return $content;
|
||||||
},
|
},
|
||||||
"chore(version): bump CHANGELOG {$version} -> {$nextVersion} [skip ci]"
|
"chore(version): bump CHANGELOG {$version} -> {$nextVersion} [skip ci]"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|||||||
+169
-822
File diff suppressed because it is too large
Load Diff
@@ -209,7 +209,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.md.template"
|
template = "templates/mokogitea/copilot-instructions.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -508,7 +508,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.md.template"
|
template = "templates/mokogitea/CLAUDE.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -959,57 +959,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+159
-244
@@ -304,6 +304,22 @@ locals {
|
|||||||
description = "Gitea Actions workflows (universal)"
|
description = "Gitea Actions workflows (universal)"
|
||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
files = [
|
files = [
|
||||||
|
{
|
||||||
|
name = "auto-bump.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Auto-bump patch version on push to dev"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/auto-bump.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "auto-release.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Universal build and release pipeline on merge to main"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/auto-release.yml"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name = "branch-cleanup.yml"
|
name = "branch-cleanup.yml"
|
||||||
extension = "yml"
|
extension = "yml"
|
||||||
@@ -311,6 +327,149 @@ locals {
|
|||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = ".mokogitea/workflows/branch-cleanup.yml"
|
template = ".mokogitea/workflows/branch-cleanup.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "cascade-dev.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Forward-merge main to dev and pre-release branches on push to main"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/cascade-dev.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "cleanup.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Scheduled cleanup of retired workflows, stale branches, and old runs"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/cleanup.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "gitleaks.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Secret scanning — detect leaked credentials, API keys, and tokens"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/gitleaks.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "issue-branch.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Auto-create feature branch from issue assignment"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/issue-branch.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "notify.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Notification workflow for release and CI events"
|
||||||
|
requirement_status = "suggested"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/notify.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "pr-check.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Pull request validation checks"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/pr-check.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "pre-release.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Manual pre-release builds for dev/alpha/beta/rc channels"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/pre-release.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "repo-health.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Repository health checks and standards validation"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/repo-health.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "security-audit.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Dependency and security audit workflow"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/security-audit.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "update-server.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Update server XML feed with stability channel entries"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/update-server.yml"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "ISSUE_TEMPLATE"
|
||||||
|
path = ".mokogitea/ISSUE_TEMPLATE"
|
||||||
|
description = "Issue templates"
|
||||||
|
requirement_status = "required"
|
||||||
|
files = [
|
||||||
|
{
|
||||||
|
name = "config.yml"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "adr.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "bug_report.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "documentation.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "enterprise_support.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "feature_request.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "firewall-request.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "question.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "request-license.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "rfc.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "security.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -327,250 +486,6 @@ locals {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name = ".github"
|
|
||||||
path = ".github"
|
|
||||||
description = "GitHub-specific configuration"
|
|
||||||
requirement_status = "required"
|
|
||||||
purpose = "Contains GitHub Actions workflows and configuration"
|
|
||||||
subdirectories = [
|
|
||||||
{
|
|
||||||
name = "workflows"
|
|
||||||
path = ".github/workflows"
|
|
||||||
description = "GitHub Actions workflows"
|
|
||||||
requirement_status = "required"
|
|
||||||
files = [
|
|
||||||
{
|
|
||||||
name = "test.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Comprehensive testing workflow"
|
|
||||||
requirement_status = "optional"
|
|
||||||
always_overwrite = true
|
|
||||||
source_path = "templates/workflows/generic"
|
|
||||||
source_filename = "test.yml.template"
|
|
||||||
source_type = "template"
|
|
||||||
destination_path = ".github/workflows"
|
|
||||||
destination_filename = "test.yml"
|
|
||||||
create_path = true
|
|
||||||
template = "templates/workflows/generic/test.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "code-quality.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Code quality and linting workflow"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
source_path = "templates/workflows/generic"
|
|
||||||
source_filename = "code-quality.yml.template"
|
|
||||||
source_type = "template"
|
|
||||||
destination_path = ".github/workflows"
|
|
||||||
destination_filename = "code-quality.yml"
|
|
||||||
create_path = true
|
|
||||||
template = "templates/workflows/generic/code-quality.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "codeql-analysis.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "CodeQL security analysis workflow"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
source_path = "templates/workflows/generic"
|
|
||||||
source_filename = "codeql-analysis.yml.template"
|
|
||||||
source_type = "template"
|
|
||||||
destination_path = ".github/workflows"
|
|
||||||
destination_filename = "codeql-analysis.yml"
|
|
||||||
create_path = true
|
|
||||||
template = "templates/workflows/generic/codeql-analysis.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "deploy.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Deployment workflow"
|
|
||||||
requirement_status = "optional"
|
|
||||||
always_overwrite = true
|
|
||||||
source_path = "templates/workflows/generic"
|
|
||||||
source_filename = "deploy.yml.template"
|
|
||||||
source_type = "template"
|
|
||||||
destination_path = ".github/workflows"
|
|
||||||
destination_filename = "deploy.yml"
|
|
||||||
create_path = true
|
|
||||||
template = "templates/workflows/generic/deploy.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "release-cycle.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Release management workflow with automated release flow"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
source_path = ".github/workflows"
|
|
||||||
source_filename = "release-cycle.yml"
|
|
||||||
source_type = "copy"
|
|
||||||
destination_path = ".github/workflows"
|
|
||||||
destination_filename = "release-cycle.yml"
|
|
||||||
create_path = true
|
|
||||||
template = ".github/workflows/release-cycle.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "standards-compliance.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "MokoStandards compliance validation"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
source_path = ".github/workflows"
|
|
||||||
source_filename = "standards-compliance.yml"
|
|
||||||
source_type = "copy"
|
|
||||||
destination_path = ".github/workflows"
|
|
||||||
destination_filename = "standards-compliance.yml"
|
|
||||||
create_path = true
|
|
||||||
template = ".github/workflows/standards-compliance.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "enterprise-firewall-setup.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Enterprise firewall configuration for trusted domain access"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/enterprise-firewall-setup.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "deploy-dev.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "SFTP deployment of src/ to the development server"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/deploy-dev.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "deploy-demo.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "SFTP deployment of src/ to the demo server on merge to main"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/deploy-demo.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "deploy-rs.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "SFTP deployment of src/ to the release staging server on merge to main"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/deploy-rs.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "sync-version-on-merge.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Auto-bump patch version on merge and propagate to all file headers"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/sync-version-on-merge.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "auto-release.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Auto-create GitHub Release on push to main with version from README.md"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/auto-release.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "repository-cleanup.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Scheduled cleanup: delete retired workflows, stale branches, old workflow runs"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/repository-cleanup.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "auto-dev-issue.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Auto-create tracking issue when a dev/** branch is pushed"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/auto-dev-issue.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "cascade-dev.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Forward-merge main to all open branches (dev, rc/*, beta/*, alpha/*) on push to main"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/cascade-dev.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "gitleaks.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Secret scanning — detect leaked credentials, API keys, and tokens using Gitleaks"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/gitleaks.yml"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "ISSUE_TEMPLATE"
|
|
||||||
path = ".github/ISSUE_TEMPLATE"
|
|
||||||
description = "GitHub issue templates synced from MokoStandards"
|
|
||||||
requirement_status = "required"
|
|
||||||
files = [
|
|
||||||
{
|
|
||||||
name = "config.yml"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "adr.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "bug_report.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "documentation.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "enterprise_support.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "feature_request.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "firewall-request.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "question.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "request-license.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "rfc.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "security.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name = "node_modules"
|
name = "node_modules"
|
||||||
path = "node_modules"
|
path = "node_modules"
|
||||||
|
|||||||
+164
-780
@@ -444,6 +444,22 @@ locals {
|
|||||||
description = "Gitea Actions workflows (universal)"
|
description = "Gitea Actions workflows (universal)"
|
||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
files = [
|
files = [
|
||||||
|
{
|
||||||
|
name = "auto-bump.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Auto-bump patch version on push to dev"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/auto-bump.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "auto-release.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Universal build and release pipeline on merge to main"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/auto-release.yml"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name = "branch-cleanup.yml"
|
name = "branch-cleanup.yml"
|
||||||
extension = "yml"
|
extension = "yml"
|
||||||
@@ -451,6 +467,154 @@ locals {
|
|||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = ".mokogitea/workflows/branch-cleanup.yml"
|
template = ".mokogitea/workflows/branch-cleanup.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "cascade-dev.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Forward-merge main to dev and pre-release branches on push to main"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/cascade-dev.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "cleanup.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Scheduled cleanup of retired workflows, stale branches, and old runs"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/cleanup.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "gitleaks.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Secret scanning — detect leaked credentials, API keys, and tokens"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/gitleaks.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "issue-branch.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Auto-create feature branch from issue assignment"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/issue-branch.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "notify.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Notification workflow for release and CI events"
|
||||||
|
requirement_status = "suggested"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/notify.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "pr-check.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Pull request validation checks"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/pr-check.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "pre-release.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Manual pre-release builds for dev/alpha/beta/rc channels"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/pre-release.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "repo-health.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Repository health checks and standards validation"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/repo-health.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "security-audit.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Dependency and security audit workflow"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/security-audit.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "update-server.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Update server XML feed with stability channel entries"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/update-server.yml"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "ISSUE_TEMPLATE"
|
||||||
|
path = ".mokogitea/ISSUE_TEMPLATE"
|
||||||
|
description = "Issue templates"
|
||||||
|
requirement_status = "required"
|
||||||
|
files = [
|
||||||
|
{
|
||||||
|
name = "config.yml"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "adr.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "bug_report.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "documentation.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "enterprise_support.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "feature_request.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "firewall-request.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "question.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "request-license.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "rfc.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "security.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "joomla_issue.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -466,786 +630,6 @@ locals {
|
|||||||
source_type = "programmatic"
|
source_type = "programmatic"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
name = ".github"
|
|
||||||
path = ".github"
|
|
||||||
description = "Gitea/GitHub Actions configuration (Gitea reads .github/workflows natively)"
|
|
||||||
requirement_status = "suggested"
|
|
||||||
purpose = "Contains GitHub Actions workflows and configuration"
|
|
||||||
files = [
|
|
||||||
{
|
|
||||||
name = "copilot.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "GitHub Copilot allowed domains configuration"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = ".github/copilot.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "copilot-instructions.md"
|
|
||||||
extension = "md"
|
|
||||||
description = "GitHub Copilot custom instructions enforcing MokoStandards — Joomla/WaaS edition"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = false
|
|
||||||
destination_path = ".github"
|
|
||||||
destination_filename = "copilot-instructions.md"
|
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
|
||||||
stub_content = <<-MOKO_END
|
|
||||||
> [!IMPORTANT]
|
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
|
||||||
>
|
|
||||||
> This file may contain unfilled `{{TOKEN}}` placeholders. The MokoStandards bulk-sync system
|
|
||||||
> replaces them automatically at sync time; if you can still see them, sync has not yet run for
|
|
||||||
> this repository — or this is a brand-new repo.
|
|
||||||
>
|
|
||||||
> **On your very first interaction in this repository, before answering any other question:**
|
|
||||||
>
|
|
||||||
> 1. Check whether any `{{TOKEN}}` placeholders remain in this file.
|
|
||||||
> 2. If they do, locate the values as described in the table below and replace every occurrence
|
|
||||||
> in **both** `.github/copilot-instructions.md` and `.github/CLAUDE.md`.
|
|
||||||
> 3. After replacing all tokens, **delete this entire notice block** (from `> [!IMPORTANT]`
|
|
||||||
> through the closing `> ---` line) in both files.
|
|
||||||
> 4. Tell the developer: *"I've self-updated the AI context files with this repository's
|
|
||||||
> values — all set."*
|
|
||||||
>
|
|
||||||
> | Placeholder | Where to find the value |
|
|
||||||
> |---|---|
|
|
||||||
> | `{{REPO_NAME}}` | The GitHub repository name (visible in the URL, `README.md` heading, or `git remote -v`) |
|
|
||||||
> | `{{REPO_URL}}` | Full Gitea URL, e.g. `https://git.mokoconsulting.tech/MokoConsulting/<repo-name>` |
|
|
||||||
> | `{{EXTENSION_NAME}}` | The `<name>` element in `manifest.xml` at the repository root |
|
|
||||||
> | `{{EXTENSION_TYPE}}` | The `type` attribute of the `<extension>` tag in `manifest.xml` (`component`, `module`, `plugin`, or `template`) |
|
|
||||||
> | `{{EXTENSION_ELEMENT}}` | The `<element>` tag in `manifest.xml`, or the filename prefix (e.g. `com_myextension`, `mod_mymodule`) |
|
|
||||||
>
|
|
||||||
> ---
|
|
||||||
|
|
||||||
# {{REPO_NAME}} — GitHub Copilot Custom Instructions
|
|
||||||
|
|
||||||
## What This Repo Is
|
|
||||||
|
|
||||||
This is a **Moko Consulting MokoWaaS** (Joomla) repository governed by [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards). All coding standards, workflows, and policies are defined there and enforced here via bulk sync.
|
|
||||||
|
|
||||||
Repository URL: {{REPO_URL}}
|
|
||||||
Extension name: **{{EXTENSION_NAME}}**
|
|
||||||
Extension type: **{{EXTENSION_TYPE}}** (`{{EXTENSION_ELEMENT}}`)
|
|
||||||
Platform: **Joomla 4.x / MokoWaaS**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Primary Language
|
|
||||||
|
|
||||||
**PHP** (≥ 7.4) is the primary language for this Joomla extension. JavaScript may be used for frontend enhancements. YAML uses 2-space indentation. All other text files use tabs per `.editorconfig`.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## File Header — Always Required on New Files
|
|
||||||
|
|
||||||
Every new file needs a copyright header as its first content.
|
|
||||||
|
|
||||||
**PHP:**
|
|
||||||
```php
|
|
||||||
<?php
|
|
||||||
/* Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
|
||||||
*
|
|
||||||
* This file is part of a Moko Consulting project.
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*
|
|
||||||
* FILE INFORMATION
|
|
||||||
* DEFGROUP: {{REPO_NAME}}.{{EXTENSION_TYPE}}
|
|
||||||
* INGROUP: {{REPO_NAME}}
|
|
||||||
* REPO: {{REPO_URL}}
|
|
||||||
* PATH: /path/to/file.php
|
|
||||||
* VERSION: XX.YY.ZZ
|
|
||||||
* BRIEF: One-line description of purpose
|
|
||||||
*/
|
|
||||||
|
|
||||||
defined('_JEXEC') or die;
|
|
||||||
```
|
|
||||||
|
|
||||||
**Markdown:**
|
|
||||||
```markdown
|
|
||||||
<!--
|
|
||||||
Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
|
||||||
|
|
||||||
This file is part of a Moko Consulting project.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
# FILE INFORMATION
|
|
||||||
DEFGROUP: {{REPO_NAME}}.Documentation
|
|
||||||
INGROUP: {{REPO_NAME}}
|
|
||||||
REPO: {{REPO_URL}}
|
|
||||||
PATH: /docs/file.md
|
|
||||||
VERSION: XX.YY.ZZ
|
|
||||||
BRIEF: One-line description
|
|
||||||
-->
|
|
||||||
```
|
|
||||||
|
|
||||||
**YAML / Shell / XML:** Use the appropriate comment syntax with the same fields. JSON files are exempt.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Version Management
|
|
||||||
|
|
||||||
**`README.md` is the single source of truth for the repository version.**
|
|
||||||
|
|
||||||
- **Bump the patch version on every PR** — increment `XX.YY.ZZ` (e.g. `01.02.03` → `01.02.04`) in `README.md` before opening the PR; the `sync-version-on-merge` workflow propagates it automatically to all badges and `FILE INFORMATION` headers on merge to `main`.
|
|
||||||
- The `VERSION: XX.YY.ZZ` field in `README.md` governs all other version references.
|
|
||||||
- Version format is zero-padded semver: `XX.YY.ZZ` (e.g. `01.02.03`).
|
|
||||||
- Never hardcode a specific version in document body text — use the badge or FILE INFORMATION header only.
|
|
||||||
|
|
||||||
### Joomla Version Alignment
|
|
||||||
|
|
||||||
The version in `README.md` **must always match** the `<version>` tag in `manifest.xml` and the latest entry in `updates.xml`. The `make release` command / release workflow updates all three automatically.
|
|
||||||
|
|
||||||
```xml
|
|
||||||
<!-- In manifest.xml — must match README.md version -->
|
|
||||||
<version>01.02.04</version>
|
|
||||||
|
|
||||||
<!-- In updates.xml — prepend a new <update> block for every release.
|
|
||||||
The version="[56].*" regex matches Joomla 5.x and 6.x. -->
|
|
||||||
<updates>
|
|
||||||
<update>
|
|
||||||
<name>{{EXTENSION_NAME}}</name>
|
|
||||||
<version>01.02.04</version>
|
|
||||||
<downloads>
|
|
||||||
<downloadurl type="full" format="zip">
|
|
||||||
{{REPO_URL}}/releases/download/01.02.04/{{EXTENSION_ELEMENT}}-01.02.04.zip
|
|
||||||
</downloadurl>
|
|
||||||
</downloads>
|
|
||||||
<targetplatform name="joomla" version="[56].*" />
|
|
||||||
</update>
|
|
||||||
<!-- … older entries preserved below … -->
|
|
||||||
</updates>
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Joomla Extension Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
{{REPO_NAME}}/
|
|
||||||
├── manifest.xml # Joomla installer manifest (root — required)
|
|
||||||
├── updates.xml # Update server manifest (root — required, see below)
|
|
||||||
├── site/ # Frontend (site) code
|
|
||||||
│ ├── controller.php
|
|
||||||
│ ├── controllers/
|
|
||||||
│ ├── models/
|
|
||||||
│ └── views/
|
|
||||||
├── admin/ # Backend (admin) code
|
|
||||||
│ ├── controller.php
|
|
||||||
│ ├── controllers/
|
|
||||||
│ ├── models/
|
|
||||||
│ ├── views/
|
|
||||||
│ └── sql/
|
|
||||||
├── language/ # Language INI files
|
|
||||||
├── media/ # CSS, JS, images (deployed to /media/{{EXTENSION_ELEMENT}}/)
|
|
||||||
├── docs/ # Technical documentation
|
|
||||||
├── tests/ # Test suite
|
|
||||||
├── .github/
|
|
||||||
│ ├── workflows/
|
|
||||||
│ ├── copilot-instructions.md # This file
|
|
||||||
│ └── CLAUDE.md
|
|
||||||
├── README.md # Version source of truth
|
|
||||||
├── CHANGELOG.md
|
|
||||||
├── CONTRIBUTING.md
|
|
||||||
├── LICENSE # GPL-3.0-or-later
|
|
||||||
└── Makefile # Build automation
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## updates.xml — Required in Repo Root
|
|
||||||
|
|
||||||
`updates.xml` **must exist at the repository root**. It is the Joomla update server manifest that allows Joomla installations to check for new versions of this extension.
|
|
||||||
|
|
||||||
The `manifest.xml` must reference it via:
|
|
||||||
```xml
|
|
||||||
<updateservers>
|
|
||||||
<server type="extension" priority="1" name="{{EXTENSION_NAME}}">
|
|
||||||
{{REPO_URL}}/raw/main/updates.xml
|
|
||||||
</server>
|
|
||||||
</updateservers>
|
|
||||||
```
|
|
||||||
|
|
||||||
**Rules:**
|
|
||||||
- Every release must prepend a new `<update>` block at the top of `updates.xml` — old entries must be preserved below.
|
|
||||||
- The `<version>` in `updates.xml` must exactly match `<version>` in `manifest.xml` and the version in `README.md`.
|
|
||||||
- The `<downloadurl>` must be a publicly accessible direct download link (GitHub Releases asset URL).
|
|
||||||
- `<targetplatform name="joomla" version="[56].*">` — Joomla treats the version value as a regex; `[56].*` matches Joomla 5.x and 6.x.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## manifest.xml Rules
|
|
||||||
|
|
||||||
- Lives at the repo root as `manifest.xml` (not inside `site/` or `admin/`).
|
|
||||||
- `<version>` tag must be kept in sync with `README.md` version and `updates.xml`.
|
|
||||||
- Must include `<updateservers>` block pointing to this repo's `updates.xml`.
|
|
||||||
- Must include `<files folder="site">` and `<administration>` sections.
|
|
||||||
- Joomla 4.x requires `<namespace path="src">Moko\{{EXTENSION_NAME}}</namespace>` for namespaced extensions.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## GitHub Actions — Token Usage
|
|
||||||
|
|
||||||
Every workflow must use **`secrets.GA_TOKEN`** (the Gitea API token). Use `secrets.GH_TOKEN` only for GitHub mirror operations (stable/RC releases).
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# ✅ Correct
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.GA_TOKEN }}
|
|
||||||
|
|
||||||
env:
|
|
||||||
GA_TOKEN: ${{ secrets.GA_TOKEN }}
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# ❌ Wrong — never use these in workflows
|
|
||||||
token: ${{ github.token }}
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## MokoStandards Reference
|
|
||||||
|
|
||||||
This repository is governed by [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards). Authoritative policies:
|
|
||||||
|
|
||||||
| Document | Purpose |
|
|
||||||
|----------|---------|
|
|
||||||
| [file-header-standards.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/file-header-standards.md) | Copyright-header rules for every file type |
|
|
||||||
| [coding-style-guide.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/coding-style-guide.md) | Naming and formatting conventions |
|
|
||||||
| [branching-strategy.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/branching-strategy.md) | Branch naming, hierarchy, and release workflow |
|
|
||||||
| [merge-strategy.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/merge-strategy.md) | Squash-merge policy and PR title/body conventions |
|
|
||||||
| [changelog-standards.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/changelog-standards.md) | How and when to update CHANGELOG.md |
|
|
||||||
| [joomla-development-guide.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/guide/waas/joomla-development-guide.md) | MokoWaaS Joomla extension development guide |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Naming Conventions
|
|
||||||
|
|
||||||
| Context | Convention | Example |
|
|
||||||
|---------|-----------|---------|
|
|
||||||
| PHP class | `PascalCase` | `MyController` |
|
|
||||||
| PHP method / function | `camelCase` | `getItems()` |
|
|
||||||
| PHP variable | `$snake_case` | `$item_id` |
|
|
||||||
| PHP constant | `UPPER_SNAKE_CASE` | `MAX_ITEMS` |
|
|
||||||
| PHP class file | `PascalCase.php` | `ItemModel.php` |
|
|
||||||
| YAML workflow | `kebab-case.yml` | `ci-joomla.yml` |
|
|
||||||
| Markdown doc | `kebab-case.md` | `installation-guide.md` |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Commit Messages
|
|
||||||
|
|
||||||
Format: `<type>(<scope>): <subject>` — imperative, lower-case subject, no trailing period.
|
|
||||||
|
|
||||||
Valid types: `feat` · `fix` · `docs` · `chore` · `ci` · `refactor` · `style` · `test` · `perf` · `revert` · `build`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Branch Naming
|
|
||||||
|
|
||||||
Format: `<prefix>/<MAJOR.MINOR.PATCH>[/description]`
|
|
||||||
|
|
||||||
Approved prefixes: `dev/` · `rc/` · `version/` · `patch/` · `copilot/` · `dependabot/`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Keeping Documentation Current
|
|
||||||
|
|
||||||
| Change type | Documentation to update |
|
|
||||||
|-------------|------------------------|
|
|
||||||
| New or renamed PHP class/method | PHPDoc block; `docs/api/` entry |
|
|
||||||
| New or changed manifest.xml | Update `updates.xml` version; bump README.md version |
|
|
||||||
| New release | Prepend `<update>` block to `updates.xml`; update CHANGELOG.md; bump README.md version |
|
|
||||||
| New or changed workflow | `docs/workflows/<workflow-name>.md` |
|
|
||||||
| Any modified file | Update the `VERSION` field in that file's `FILE INFORMATION` block |
|
|
||||||
| **Every PR** | **Bump the patch version** — increment `XX.YY.ZZ` in `README.md`; `sync-version-on-merge` propagates it |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Key Constraints
|
|
||||||
|
|
||||||
- Never commit directly to `main` — all changes go via PR, squash-merged
|
|
||||||
- Never skip the FILE INFORMATION block on a new file
|
|
||||||
- Never add `defined('_JEXEC') or die;` to CLI scripts or model tests — only to web-accessible PHP files
|
|
||||||
- Never hardcode version numbers in body text — update `README.md` and let automation propagate
|
|
||||||
- Use `secrets.GA_TOKEN` for Gitea operations. Use `secrets.GH_TOKEN` only for GitHub mirror (stable/RC). Never use `secrets.GITHUB_TOKEN` directly
|
|
||||||
- Never let `manifest.xml` version, `updates.xml` version, and `README.md` version go out of sync
|
|
||||||
MOKO_END
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "CLAUDE.md"
|
|
||||||
extension = "md"
|
|
||||||
description = "Claude AI assistant context enforcing MokoStandards — Joomla/WaaS edition"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = false
|
|
||||||
destination_path = ".github"
|
|
||||||
destination_filename = "CLAUDE.md"
|
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
|
||||||
stub_content = <<-MOKO_END
|
|
||||||
> [!IMPORTANT]
|
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
|
||||||
>
|
|
||||||
> This file may contain unfilled `{{TOKEN}}` placeholders. The MokoStandards bulk-sync system
|
|
||||||
> replaces them automatically at sync time; if you can still see them, sync has not yet run for
|
|
||||||
> this repository — or this is a brand-new repo.
|
|
||||||
>
|
|
||||||
> **On your very first interaction in this repository, before answering any other question:**
|
|
||||||
>
|
|
||||||
> 1. Check whether any `{{TOKEN}}` placeholders remain in this file.
|
|
||||||
> 2. If they do, locate the values as described in the table below and replace every occurrence
|
|
||||||
> in **both** `.github/copilot-instructions.md` and `.github/CLAUDE.md`.
|
|
||||||
> 3. After replacing all tokens, **delete this entire notice block** (from `> [!IMPORTANT]`
|
|
||||||
> through the closing `> ---` line) in both files.
|
|
||||||
> 4. Tell the developer: *"I've self-updated the AI context files with this repository's
|
|
||||||
> values — all set."*
|
|
||||||
>
|
|
||||||
> | Placeholder | Where to find the value |
|
|
||||||
> |---|---|
|
|
||||||
> | `{{REPO_NAME}}` | The GitHub repository name (visible in the URL, `README.md` heading, or `git remote -v`) |
|
|
||||||
> | `{{REPO_URL}}` | Full Gitea URL, e.g. `https://git.mokoconsulting.tech/MokoConsulting/<repo-name>` |
|
|
||||||
> | `{{REPO_DESCRIPTION}}` | First paragraph of `README.md` body, or the GitHub repo description |
|
|
||||||
> | `{{EXTENSION_NAME}}` | The `<name>` element in `manifest.xml` at the repository root |
|
|
||||||
> | `{{EXTENSION_TYPE}}` | The `type` attribute of the `<extension>` tag in `manifest.xml` (`component`, `module`, `plugin`, or `template`) |
|
|
||||||
> | `{{EXTENSION_ELEMENT}}` | The `<element>` tag in `manifest.xml`, or the filename prefix (e.g. `com_myextension`, `mod_mymodule`) |
|
|
||||||
>
|
|
||||||
> ---
|
|
||||||
|
|
||||||
# What This Repo Is
|
|
||||||
|
|
||||||
**{{REPO_NAME}}** is a Moko Consulting **MokoWaaS** (Joomla) extension repository.
|
|
||||||
|
|
||||||
{{REPO_DESCRIPTION}}
|
|
||||||
|
|
||||||
Extension name: **{{EXTENSION_NAME}}**
|
|
||||||
Extension type: **{{EXTENSION_TYPE}}** (`{{EXTENSION_ELEMENT}}`)
|
|
||||||
Repository URL: {{REPO_URL}}
|
|
||||||
|
|
||||||
This repository is governed by [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards) — the single source of truth for coding standards, file-header policies, GitHub Actions workflows, and Terraform configuration templates across all Moko Consulting repositories.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Repo Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
{{REPO_NAME}}/
|
|
||||||
├── manifest.xml # Joomla installer manifest (root — required)
|
|
||||||
├── updates.xml # Update server manifest (root — required)
|
|
||||||
├── site/ # Frontend (site) code
|
|
||||||
│ ├── controller.php
|
|
||||||
│ ├── controllers/
|
|
||||||
│ ├── models/
|
|
||||||
│ └── views/
|
|
||||||
├── admin/ # Backend (admin) code
|
|
||||||
│ ├── controller.php
|
|
||||||
│ ├── controllers/
|
|
||||||
│ ├── models/
|
|
||||||
│ ├── views/
|
|
||||||
│ └── sql/
|
|
||||||
├── language/ # Language INI files
|
|
||||||
├── media/ # CSS, JS, images
|
|
||||||
├── docs/ # Technical documentation
|
|
||||||
├── tests/ # Test suite
|
|
||||||
├── .github/
|
|
||||||
│ ├── workflows/ # CI/CD workflows (synced from MokoStandards)
|
|
||||||
│ ├── copilot-instructions.md
|
|
||||||
│ └── CLAUDE.md # This file
|
|
||||||
├── README.md # Version source of truth
|
|
||||||
├── CHANGELOG.md
|
|
||||||
├── CONTRIBUTING.md
|
|
||||||
└── LICENSE # GPL-3.0-or-later
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Primary Language
|
|
||||||
|
|
||||||
**PHP** (≥ 7.4) is the primary language for this Joomla extension. YAML uses 2-space indentation. All other text files use tabs per `.editorconfig`.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Version Management
|
|
||||||
|
|
||||||
**`README.md` is the single source of truth for the repository version.**
|
|
||||||
|
|
||||||
- **Bump the patch version on every PR** — increment `XX.YY.ZZ` (e.g. `01.02.03` → `01.02.04`) in `README.md` before opening the PR; the `sync-version-on-merge` workflow propagates it to all `FILE INFORMATION` headers automatically on merge.
|
|
||||||
- Version format is zero-padded semver: `XX.YY.ZZ` (e.g. `01.02.03`).
|
|
||||||
- Never hardcode a version number in body text — use the badge or FILE INFORMATION header only.
|
|
||||||
|
|
||||||
### Joomla Version Alignment
|
|
||||||
|
|
||||||
Three files must **always have the same version**:
|
|
||||||
|
|
||||||
| File | Where the version lives |
|
|
||||||
|------|------------------------|
|
|
||||||
| `README.md` | `FILE INFORMATION` block + badge |
|
|
||||||
| `manifest.xml` | `<version>` tag |
|
|
||||||
| `updates.xml` | `<version>` in the most recent `<update>` block |
|
|
||||||
|
|
||||||
The `make release` command / release workflow syncs all three automatically.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# updates.xml — Required in Repo Root
|
|
||||||
|
|
||||||
`updates.xml` is the Joomla update server manifest. It allows Joomla installations to check for new versions of this extension via:
|
|
||||||
|
|
||||||
```xml
|
|
||||||
<!-- In manifest.xml -->
|
|
||||||
<updateservers>
|
|
||||||
<server type="extension" priority="1" name="{{EXTENSION_NAME}}">
|
|
||||||
{{REPO_URL}}/raw/main/updates.xml
|
|
||||||
</server>
|
|
||||||
</updateservers>
|
|
||||||
```
|
|
||||||
|
|
||||||
**Rules:**
|
|
||||||
- Every release prepends a new `<update>` block at the top — older entries are preserved.
|
|
||||||
- `<version>` in `updates.xml` must exactly match `<version>` in `manifest.xml` and `README.md`.
|
|
||||||
- `<downloadurl>` must be a publicly accessible GitHub Releases asset URL.
|
|
||||||
- `<targetplatform version="[56].*">` — Joomla treats the version value as a regex; `[56].*` matches Joomla 5.x and 6.x.
|
|
||||||
|
|
||||||
Example `updates.xml` entry for a new release:
|
|
||||||
```xml
|
|
||||||
<updates>
|
|
||||||
<update>
|
|
||||||
<name>{{EXTENSION_NAME}}</name>
|
|
||||||
<description>{{REPO_NAME}}</description>
|
|
||||||
<element>{{EXTENSION_ELEMENT}}</element>
|
|
||||||
<type>{{EXTENSION_TYPE}}</type>
|
|
||||||
<version>01.02.04</version>
|
|
||||||
<infourl title="Release Information">{{REPO_URL}}/releases/tag/01.02.04</infourl>
|
|
||||||
<downloads>
|
|
||||||
<downloadurl type="full" format="zip">
|
|
||||||
{{REPO_URL}}/releases/download/01.02.04/{{EXTENSION_ELEMENT}}-01.02.04.zip
|
|
||||||
</downloadurl>
|
|
||||||
</downloads>
|
|
||||||
<targetplatform name="joomla" version="[56].*" />
|
|
||||||
<php_minimum>7.4</php_minimum>
|
|
||||||
<maintainer>Moko Consulting</maintainer>
|
|
||||||
<maintainerurl>https://mokoconsulting.tech</maintainerurl>
|
|
||||||
</update>
|
|
||||||
</updates>
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# File Header Requirements
|
|
||||||
|
|
||||||
Every new file **must** have a copyright header as its first content. JSON files, binary files, generated files, and third-party files are exempt.
|
|
||||||
|
|
||||||
**PHP:**
|
|
||||||
```php
|
|
||||||
<?php
|
|
||||||
/* Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
|
||||||
*
|
|
||||||
* This file is part of a Moko Consulting project.
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*
|
|
||||||
* FILE INFORMATION
|
|
||||||
* DEFGROUP: {{REPO_NAME}}.{{EXTENSION_TYPE}}
|
|
||||||
* INGROUP: {{REPO_NAME}}
|
|
||||||
* REPO: {{REPO_URL}}
|
|
||||||
* PATH: /site/controllers/item.php
|
|
||||||
* VERSION: XX.YY.ZZ
|
|
||||||
* BRIEF: One-line description of file purpose
|
|
||||||
*/
|
|
||||||
|
|
||||||
defined('_JEXEC') or die;
|
|
||||||
```
|
|
||||||
|
|
||||||
**Markdown / YAML / Shell / XML:** Use the appropriate comment syntax with the same fields.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Coding Standards
|
|
||||||
|
|
||||||
## Naming Conventions
|
|
||||||
|
|
||||||
| Context | Convention | Example |
|
|
||||||
|---------|-----------|---------|
|
|
||||||
| PHP class | `PascalCase` | `ItemModel` |
|
|
||||||
| PHP method / function | `camelCase` | `getItems()` |
|
|
||||||
| PHP variable | `$snake_case` | `$item_id` |
|
|
||||||
| PHP constant | `UPPER_SNAKE_CASE` | `MAX_ITEMS` |
|
|
||||||
| PHP class file | `PascalCase.php` | `ItemModel.php` |
|
|
||||||
| YAML workflow | `kebab-case.yml` | `ci-joomla.yml` |
|
|
||||||
| Markdown doc | `kebab-case.md` | `installation-guide.md` |
|
|
||||||
|
|
||||||
## Commit Messages
|
|
||||||
|
|
||||||
Format: `<type>(<scope>): <subject>` — imperative, lower-case subject, no trailing period.
|
|
||||||
|
|
||||||
Valid types: `feat` · `fix` · `docs` · `chore` · `ci` · `refactor` · `style` · `test` · `perf` · `revert` · `build`
|
|
||||||
|
|
||||||
## Branch Naming
|
|
||||||
|
|
||||||
Format: `<prefix>/<MAJOR.MINOR.PATCH>[/description]`
|
|
||||||
|
|
||||||
Approved prefixes: `dev/` · `rc/` · `version/` · `patch/` · `copilot/` · `dependabot/`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# GitHub Actions — Token Usage
|
|
||||||
|
|
||||||
Every workflow must use **`secrets.GA_TOKEN`** (the Gitea API token). Use `secrets.GH_TOKEN` only for GitHub mirror operations (stable/RC releases).
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# ✅ Correct
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.GA_TOKEN }}
|
|
||||||
|
|
||||||
env:
|
|
||||||
GA_TOKEN: ${{ secrets.GA_TOKEN }}
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# ❌ Wrong — never use these
|
|
||||||
token: ${{ github.token }}
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Keeping Documentation Current
|
|
||||||
|
|
||||||
| Change type | Documentation to update |
|
|
||||||
|-------------|------------------------|
|
|
||||||
| New or renamed PHP class/method | PHPDoc block; `docs/api/` entry |
|
|
||||||
| New or changed `manifest.xml` | Sync version to `updates.xml` and `README.md` |
|
|
||||||
| New release | Prepend `<update>` to `updates.xml`; update `CHANGELOG.md`; bump `README.md` |
|
|
||||||
| New or changed workflow | `docs/workflows/<workflow-name>.md` |
|
|
||||||
| Any modified file | Update the `VERSION` field in that file's `FILE INFORMATION` block |
|
|
||||||
| **Every PR** | **Bump the patch version** — increment `XX.YY.ZZ` in `README.md`; `sync-version-on-merge` propagates it |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# What NOT to Do
|
|
||||||
|
|
||||||
- **Never commit directly to `main`** — all changes go through a PR.
|
|
||||||
- **Never hardcode version numbers** in body text — update `README.md` and let automation propagate.
|
|
||||||
- **Never let `manifest.xml`, `updates.xml`, and `README.md` versions diverge.**
|
|
||||||
- **Never skip the FILE INFORMATION block** on a new source file.
|
|
||||||
- **Never use bare `catch (\Throwable $e) {}`** — always log or re-throw.
|
|
||||||
- **Never mix tabs and spaces** within a file — follow `.editorconfig`.
|
|
||||||
- **Never use `github.token` or `secrets.GITHUB_TOKEN` in workflows** — always use `secrets.GH_TOKEN`.
|
|
||||||
- **Never remove `defined('_JEXEC') or die;`** from web-accessible PHP files.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# PR Checklist
|
|
||||||
|
|
||||||
Before opening a PR, verify:
|
|
||||||
|
|
||||||
- [ ] Patch version bumped in `README.md` (e.g. `01.02.03` → `01.02.04`)
|
|
||||||
- [ ] If this is a release: `manifest.xml` version updated; `updates.xml` updated with new entry
|
|
||||||
- [ ] FILE INFORMATION headers updated in modified files
|
|
||||||
- [ ] CHANGELOG.md updated
|
|
||||||
- [ ] Tests pass
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Key Policy Documents (MokoStandards)
|
|
||||||
|
|
||||||
| Document | Purpose |
|
|
||||||
|----------|---------|
|
|
||||||
| [file-header-standards.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/file-header-standards.md) | Copyright-header rules for every file type |
|
|
||||||
| [coding-style-guide.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/coding-style-guide.md) | Naming and formatting conventions |
|
|
||||||
| [branching-strategy.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/branching-strategy.md) | Branch naming, hierarchy, and release workflow |
|
|
||||||
| [merge-strategy.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/merge-strategy.md) | Squash-merge policy and PR conventions |
|
|
||||||
| [changelog-standards.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/policy/changelog-standards.md) | How and when to update CHANGELOG.md |
|
|
||||||
| [joomla-development-guide.md](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards/blob/main/docs/guide/waas/joomla-development-guide.md) | MokoWaaS Joomla extension development guide |
|
|
||||||
MOKO_END
|
|
||||||
}
|
|
||||||
]
|
|
||||||
subdirectories = [
|
|
||||||
{
|
|
||||||
name = "workflows"
|
|
||||||
path = ".gitea/workflows"
|
|
||||||
description = "Gitea Actions CI/CD workflows"
|
|
||||||
requirement_status = "required"
|
|
||||||
files = [
|
|
||||||
{
|
|
||||||
name = "auto-release.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Automated release — builds zip, creates Gitea release, updates SHA in updates.xml. Triggered by push to main (stable) or pre-release tags"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/auto-release.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "ci-dolibarr.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Continuous integration — PHP linting, PHPStan static analysis, Dolibarr module validation"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/ci-dolibarr.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "publish-to-mokodolimods.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "On release, copies src/ into htdocs/custom/ in mokodolimods repo and opens a PR"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/publish-to-mokodolimods.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "pre-release.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Manual pre-release — builds dev/alpha/beta/rc packages with patch version bump"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/pre-release.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "deploy-manual.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Manual deployment — allows selecting target environment and branch for on-demand deploys"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/deploy-manual.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "repo-health.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Repository health checks — validates required files, structure compliance, and standards alignment"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/repo-health.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "update-server.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Update server maintenance — validates updates.xml format and ensures download URLs are reachable"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/update-server.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "pr-check.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "PR gate — validates PHP syntax, manifest XML, and package build before merge to main"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/pr-check.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "security-audit.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Dependency vulnerability scanning — weekly schedule and on PR when lock files change"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/security-audit.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "notify.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Push notifications via ntfy on release success or workflow failure"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/notify.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "cleanup.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Scheduled cleanup — delete merged branches and old workflow runs weekly"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/cleanup.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "cascade-dev.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Forward-merge main to all open branches (dev, rc/*, beta/*, alpha/*) on push to main"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/cascade-dev.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "gitleaks.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Secret scanning — detect leaked credentials, API keys, and tokens using Gitleaks"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/gitleaks.yml"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "ISSUE_TEMPLATE"
|
|
||||||
path = ".github/ISSUE_TEMPLATE"
|
|
||||||
description = "GitHub issue templates synced from MokoStandards"
|
|
||||||
requirement_status = "required"
|
|
||||||
files = [
|
|
||||||
{
|
|
||||||
name = "config.yml"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "adr.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "bug_report.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "documentation.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "enterprise_support.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "feature_request.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "firewall-request.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "question.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "request-license.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "rfc.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "security.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "joomla_issue.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
+169
-194
@@ -140,6 +140,22 @@ locals {
|
|||||||
description = "Gitea Actions workflows (universal)"
|
description = "Gitea Actions workflows (universal)"
|
||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
files = [
|
files = [
|
||||||
|
{
|
||||||
|
name = "auto-bump.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Auto-bump patch version on push to dev"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/auto-bump.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "auto-release.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Universal build and release pipeline on merge to main"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/auto-release.yml"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name = "branch-cleanup.yml"
|
name = "branch-cleanup.yml"
|
||||||
extension = "yml"
|
extension = "yml"
|
||||||
@@ -147,6 +163,159 @@ locals {
|
|||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = ".mokogitea/workflows/branch-cleanup.yml"
|
template = ".mokogitea/workflows/branch-cleanup.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "cascade-dev.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Forward-merge main to dev and pre-release branches on push to main"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/cascade-dev.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "cleanup.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Scheduled cleanup of retired workflows, stale branches, and old runs"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/cleanup.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "gitleaks.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Secret scanning — detect leaked credentials, API keys, and tokens"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/gitleaks.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "issue-branch.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Auto-create feature branch from issue assignment"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/issue-branch.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "notify.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Notification workflow for release and CI events"
|
||||||
|
requirement_status = "suggested"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/notify.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "pr-check.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Pull request validation checks"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/pr-check.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "pre-release.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Manual pre-release builds for dev/alpha/beta/rc channels"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/pre-release.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "repo-health.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Repository health checks and standards validation"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/repo-health.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "security-audit.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Dependency and security audit workflow"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/security-audit.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "update-server.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Update server XML feed with stability channel entries"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/update-server.yml"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "ISSUE_TEMPLATE"
|
||||||
|
path = ".mokogitea/ISSUE_TEMPLATE"
|
||||||
|
description = "Issue templates"
|
||||||
|
requirement_status = "required"
|
||||||
|
files = [
|
||||||
|
{
|
||||||
|
name = "config.yml"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "adr.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "bug_report.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "documentation.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "enterprise_support.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "feature_request.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "firewall-request.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "question.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "request-license.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "rfc.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "security.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "dolibarr_issue.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "dolibarr_module_id_request.md"
|
||||||
|
always_overwrite = true
|
||||||
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -162,200 +331,6 @@ locals {
|
|||||||
source_type = "programmatic"
|
source_type = "programmatic"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
name = ".github"
|
|
||||||
path = ".github"
|
|
||||||
description = "GitHub configuration"
|
|
||||||
required = true
|
|
||||||
purpose = "Contains GitHub Actions workflows and configuration"
|
|
||||||
subdirectories = [
|
|
||||||
{
|
|
||||||
name = "workflows"
|
|
||||||
path = ".github/workflows"
|
|
||||||
description = "GitHub Actions workflows"
|
|
||||||
requirement_status = "required"
|
|
||||||
files = [
|
|
||||||
{
|
|
||||||
name = "codeql-analysis.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "CodeQL security analysis workflow"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/generic/codeql-analysis.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "standards-compliance.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "MokoStandards compliance validation"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = ".github/workflows/standards-compliance.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "enterprise-firewall-setup.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Enterprise firewall configuration"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/enterprise-firewall-setup.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "deploy-dev.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "SFTP deployment to dev server (htdocs/)"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/deploy-dev.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "deploy-demo.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "SFTP deployment to demo server"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/deploy-demo.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "deploy-rs.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "SFTP deployment to release staging server"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/deploy-rs.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "sync-version-on-merge.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Auto-bump patch version on merge"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/sync-version-on-merge.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "auto-release.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Auto-create GitHub Release on minor version"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/auto-release.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "repository-cleanup.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Scheduled cleanup: retired workflows, stale branches"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/repository-cleanup.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "auto-dev-issue.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Auto-create tracking issue on dev/rc branch creation"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/auto-dev-issue.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "repo_health.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Dolibarr platform health checks (shared guardrails, no module-specific checks)"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/dolibarr/repo_health.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "cascade-dev.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Forward-merge main to all open branches (dev, rc/*, beta/*, alpha/*) on push to main"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/cascade-dev.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "gitleaks.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Secret scanning — detect leaked credentials, API keys, and tokens using Gitleaks"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "workflows/gitleaks.yml"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "ISSUE_TEMPLATE"
|
|
||||||
path = ".github/ISSUE_TEMPLATE"
|
|
||||||
description = "GitHub issue templates"
|
|
||||||
requirement_status = "required"
|
|
||||||
files = [
|
|
||||||
{
|
|
||||||
name = "config.yml"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "adr.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "bug_report.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "documentation.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "enterprise_support.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "feature_request.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "firewall-request.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "question.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "request-license.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "rfc.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "security.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "dolibarr_issue.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "dolibarr_module_id_request.md"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+103
-118
@@ -414,212 +414,197 @@ locals {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = ".github"
|
name = ".mokogitea"
|
||||||
path = ".github"
|
path = ".mokogitea"
|
||||||
description = "GitHub-specific configuration"
|
description = "Gitea-specific configuration and workflows"
|
||||||
required = true
|
requirement_status = "required"
|
||||||
purpose = "GitHub Actions workflows and configuration"
|
purpose = "Contains Gitea Actions workflows, manifest.xml, and CI/CD configuration"
|
||||||
subdirectories = [
|
subdirectories = [
|
||||||
{
|
{
|
||||||
name = "workflows"
|
name = "workflows"
|
||||||
path = ".github/workflows"
|
path = ".mokogitea/workflows"
|
||||||
description = "GitHub Actions workflows"
|
description = "Gitea Actions workflows (universal)"
|
||||||
required = true
|
requirement_status = "required"
|
||||||
files = [
|
files = [
|
||||||
{
|
{
|
||||||
name = "deploy-dev.yml"
|
name = "auto-bump.yml"
|
||||||
extension = "yml"
|
extension = "yml"
|
||||||
description = "SFTP deployment of src/ to the development server"
|
description = "Auto-bump patch version on push to dev"
|
||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/workflows/shared/deploy-dev.yml.template"
|
template = ".mokogitea/workflows/auto-bump.yml"
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "deploy-demo.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "SFTP deployment of src/ to the demo server on merge to main"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/deploy-demo.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "deploy-rs.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "SFTP deployment of src/ to the release staging server on merge to main"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/deploy-rs.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "sync-version-on-merge.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Auto-bump patch version on merge and propagate to all file headers"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/sync-version-on-merge.yml.template"
|
|
||||||
},,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "auto-release.yml"
|
name = "auto-release.yml"
|
||||||
extension = "yml"
|
extension = "yml"
|
||||||
description = "Auto-create GitHub Release on push to main with version from README.md"
|
description = "Universal build and release pipeline on merge to main"
|
||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/workflows/shared/auto-release.yml.template"
|
template = ".mokogitea/workflows/auto-release.yml"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name = "codeql-analysis.yml"
|
name = "branch-cleanup.yml"
|
||||||
extension = "yml"
|
extension = "yml"
|
||||||
description = "CodeQL security analysis workflow"
|
description = "Auto-delete merged feature branches after PR merge"
|
||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/workflows/generic/codeql-analysis.yml.template"
|
template = ".mokogitea/workflows/branch-cleanup.yml"
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "repository-cleanup.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "One-time cleanup: reset labels, strip issue template headers, delete old branches — self-deletes after run"
|
|
||||||
requirement_status = "suggested"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/repository-cleanup.yml.template"
|
|
||||||
{
|
|
||||||
name = "standards-compliance.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "MokoStandards self-compliance validation"
|
|
||||||
requirement_status = "suggested"
|
|
||||||
always_overwrite = true
|
|
||||||
template = ".github/workflows/standards-compliance.yml"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "enterprise-firewall-setup.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Enterprise firewall rules setup workflow"
|
|
||||||
requirement_status = "suggested"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/enterprise-firewall-setup.yml.template"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "auto-dev-issue.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "Auto-create tracking issue when a dev/** branch is pushed"
|
|
||||||
requirement_status = "required"
|
|
||||||
always_overwrite = true
|
|
||||||
template = "templates/workflows/shared/auto-dev-issue.yml.template"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "cascade-dev.yml"
|
name = "cascade-dev.yml"
|
||||||
extension = "yml"
|
extension = "yml"
|
||||||
description = "Forward-merge main to all open branches (dev, rc/*, beta/*, alpha/*) on push to main"
|
description = "Forward-merge main to dev and pre-release branches on push to main"
|
||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "workflows/cascade-dev.yml"
|
template = ".mokogitea/workflows/cascade-dev.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "cleanup.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Scheduled cleanup of retired workflows, stale branches, and old runs"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/cleanup.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "gitleaks.yml"
|
name = "gitleaks.yml"
|
||||||
extension = "yml"
|
extension = "yml"
|
||||||
description = "Secret scanning — detect leaked credentials, API keys, and tokens using Gitleaks"
|
description = "Secret scanning — detect leaked credentials, API keys, and tokens"
|
||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "workflows/gitleaks.yml"
|
template = ".mokogitea/workflows/gitleaks.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "issue-branch.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Auto-create feature branch from issue assignment"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/issue-branch.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "notify.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Notification workflow for release and CI events"
|
||||||
|
requirement_status = "suggested"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/notify.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "pr-check.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Pull request validation checks"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/pr-check.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "pre-release.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Manual pre-release builds for dev/alpha/beta/rc channels"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/pre-release.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "repo-health.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Repository health checks and standards validation"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/repo-health.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "security-audit.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Dependency and security audit workflow"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/security-audit.yml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "update-server.yml"
|
||||||
|
extension = "yml"
|
||||||
|
description = "Update server XML feed with stability channel entries"
|
||||||
|
requirement_status = "required"
|
||||||
|
always_overwrite = true
|
||||||
|
template = ".mokogitea/workflows/update-server.yml"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "ISSUE_TEMPLATE"
|
name = "ISSUE_TEMPLATE"
|
||||||
path = ".github/ISSUE_TEMPLATE"
|
path = ".mokogitea/ISSUE_TEMPLATE"
|
||||||
description = "GitHub issue templates"
|
description = "Issue templates"
|
||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
files = [
|
files = [
|
||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
files = [
|
files = [
|
||||||
{
|
{
|
||||||
name = "config.tf"
|
name = "manifest.xml"
|
||||||
extension = "tf"
|
extension = "xml"
|
||||||
description = "Repository override configuration for bulk sync"
|
description = "Repository manifest — version, platform, governance metadata"
|
||||||
requirement_status = "suggested"
|
|
||||||
always_overwrite = false
|
|
||||||
audience = "developer"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "copilot.yml"
|
|
||||||
extension = "yml"
|
|
||||||
description = "GitHub Copilot configuration — topic list and repo metadata"
|
|
||||||
requirement_status = "required"
|
requirement_status = "required"
|
||||||
always_overwrite = true
|
|
||||||
audience = "developer"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "copilot-instructions.md"
|
|
||||||
extension = "md"
|
|
||||||
description = "GitHub Copilot custom instructions for this repository"
|
|
||||||
requirement_status = "suggested"
|
|
||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
audience = "developer"
|
template = "managed-by-sync"
|
||||||
},
|
source_type = "programmatic"
|
||||||
{
|
|
||||||
name = "CLAUDE.md"
|
|
||||||
extension = "md"
|
|
||||||
description = "Claude Code context and instructions for this repository"
|
|
||||||
requirement_status = "suggested"
|
|
||||||
always_overwrite = false
|
|
||||||
audience = "developer"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -497,57 +497,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -548,57 +548,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -549,57 +549,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -471,7 +471,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -815,7 +815,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1188,67 +1188,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -473,7 +473,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -817,7 +817,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1190,67 +1190,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -818,7 +818,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1211,62 +1211,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -324,67 +324,67 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -453,7 +453,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -752,7 +752,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1110,67 +1110,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -324,67 +324,67 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -549,57 +549,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -520,7 +520,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -817,7 +817,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1210,62 +1210,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -520,7 +520,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -817,7 +817,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1210,62 +1210,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -549,57 +549,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -549,57 +549,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.dolibarr.md.template"
|
template = "templates/mokogitea/copilot-instructions.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -816,7 +816,7 @@ EOT
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.dolibarr.md.template"
|
template = "templates/mokogitea/CLAUDE.dolibarr.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1189,67 +1189,67 @@ EOT
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_issue.md"
|
name = "dolibarr_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_issue.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "dolibarr_module_id_request.md"
|
name = "dolibarr_module_id_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/dolibarr_module_id_request.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -549,57 +549,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -818,7 +818,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1211,62 +1211,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -818,7 +818,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1211,62 +1211,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -818,7 +818,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1211,62 +1211,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -818,7 +818,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1211,62 +1211,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -818,7 +818,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1211,62 +1211,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -818,7 +818,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1211,62 +1211,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -549,57 +549,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -818,7 +818,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1211,62 +1211,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -818,7 +818,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1211,62 +1211,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -497,7 +497,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -794,7 +794,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1163,62 +1163,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -549,57 +549,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -549,57 +549,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -590,57 +590,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -549,57 +549,57 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "copilot-instructions.md"
|
destination_filename = "copilot-instructions.md"
|
||||||
template = "templates/github/copilot-instructions.joomla.md.template"
|
template = "templates/mokogitea/copilot-instructions.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -818,7 +818,7 @@ locals {
|
|||||||
always_overwrite = false
|
always_overwrite = false
|
||||||
destination_path = ".github"
|
destination_path = ".github"
|
||||||
destination_filename = "CLAUDE.md"
|
destination_filename = "CLAUDE.md"
|
||||||
template = "templates/github/CLAUDE.joomla.md.template"
|
template = "templates/mokogitea/CLAUDE.joomla.md.template"
|
||||||
stub_content = <<-MOKO_END
|
stub_content = <<-MOKO_END
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **🔧 AI Self-Update Required on First Use**
|
> **🔧 AI Self-Update Required on First Use**
|
||||||
@@ -1211,62 +1211,62 @@ locals {
|
|||||||
{
|
{
|
||||||
name = "config.yml"
|
name = "config.yml"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/config.yml"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/config.yml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "adr.md"
|
name = "adr.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/adr.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/adr.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "bug_report.md"
|
name = "bug_report.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/bug_report.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/bug_report.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "documentation.md"
|
name = "documentation.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/documentation.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/documentation.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "enterprise_support.md"
|
name = "enterprise_support.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/enterprise_support.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/enterprise_support.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "feature_request.md"
|
name = "feature_request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/feature_request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/feature_request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "firewall-request.md"
|
name = "firewall-request.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/firewall-request.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/firewall-request.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "question.md"
|
name = "question.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/question.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/question.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "request-license.md"
|
name = "request-license.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/request-license.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/request-license.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "rfc.md"
|
name = "rfc.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/rfc.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/rfc.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "security.md"
|
name = "security.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/security.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/security.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = "joomla_issue.md"
|
name = "joomla_issue.md"
|
||||||
always_overwrite = true
|
always_overwrite = true
|
||||||
template = "templates/github/ISSUE_TEMPLATE/joomla_issue.md"
|
template = "templates/mokogitea/ISSUE_TEMPLATE/joomla_issue.md"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1245,7 +1245,7 @@ HCL;
|
|||||||
|
|
||||||
// CODEOWNERS — GitHub only; Gitea doesn't enforce it
|
// CODEOWNERS — GitHub only; Gitea doesn't enforce it
|
||||||
if ($this->adapter->getPlatformName() === 'github') {
|
if ($this->adapter->getPlatformName() === 'github') {
|
||||||
$shared[] = ['templates/github/CODEOWNERS', '.github/CODEOWNERS'];
|
$shared[] = ['templates/mokogitea/CODEOWNERS', '.github/CODEOWNERS'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Platform-specific gitignore (merged, not replaced)
|
// Platform-specific gitignore (merged, not replaced)
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
DEFGROUP: MokoStandards.Templates.GitHub
|
DEFGROUP: MokoStandards.Templates.GitHub
|
||||||
INGROUP: MokoStandards.Templates
|
INGROUP: MokoStandards.Templates
|
||||||
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
||||||
PATH: /templates/github/CLAUDE.dolibarr.md.template
|
PATH: /templates/mokogitea/CLAUDE.dolibarr.md.template
|
||||||
VERSION: XX.YY.ZZ
|
VERSION: XX.YY.ZZ
|
||||||
BRIEF: Claude AI assistant context template for Dolibarr/MokoCRM module repositories
|
BRIEF: Claude AI assistant context template for Dolibarr/MokoCRM module repositories
|
||||||
NOTE: Synced to .gitea/CLAUDE.md in all Dolibarr/CRM repos via bulk sync.
|
NOTE: Synced to .gitea/CLAUDE.md in all Dolibarr/CRM repos via bulk sync.
|
||||||
+1
-1
@@ -9,7 +9,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
DEFGROUP: MokoStandards.Templates.GitHub
|
DEFGROUP: MokoStandards.Templates.GitHub
|
||||||
INGROUP: MokoStandards.Templates
|
INGROUP: MokoStandards.Templates
|
||||||
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
||||||
PATH: /templates/github/CLAUDE.joomla.md.template
|
PATH: /templates/mokogitea/CLAUDE.joomla.md.template
|
||||||
VERSION: XX.YY.ZZ
|
VERSION: XX.YY.ZZ
|
||||||
BRIEF: Claude AI assistant context template for Joomla/MokoWaaS governed repositories
|
BRIEF: Claude AI assistant context template for Joomla/MokoWaaS governed repositories
|
||||||
NOTE: Synced to .gitea/CLAUDE.md in all Joomla/WaaS repos via bulk sync.
|
NOTE: Synced to .gitea/CLAUDE.md in all Joomla/WaaS repos via bulk sync.
|
||||||
@@ -9,7 +9,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
DEFGROUP: MokoStandards.Templates.GitHub
|
DEFGROUP: MokoStandards.Templates.GitHub
|
||||||
INGROUP: MokoStandards.Templates
|
INGROUP: MokoStandards.Templates
|
||||||
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
||||||
PATH: /templates/github/CLAUDE.md.template
|
PATH: /templates/mokogitea/CLAUDE.md.template
|
||||||
VERSION: XX.YY.ZZ
|
VERSION: XX.YY.ZZ
|
||||||
BRIEF: Standard CLAUDE.md template for Moko Consulting governed repositories
|
BRIEF: Standard CLAUDE.md template for Moko Consulting governed repositories
|
||||||
NOTE: Synced to .gitea/CLAUDE.md in all governed repositories via bulk sync.
|
NOTE: Synced to .gitea/CLAUDE.md in all governed repositories via bulk sync.
|
||||||
@@ -22,7 +22,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||||||
DEFGROUP: MokoStandards.Templates
|
DEFGROUP: MokoStandards.Templates
|
||||||
INGROUP: MokoStandards.GitHub
|
INGROUP: MokoStandards.GitHub
|
||||||
REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards
|
REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards
|
||||||
PATH: /templates/github/README.md
|
PATH: /templates/mokogitea/README.md
|
||||||
BRIEF: GitHub-specific templates including issues, PRs, and CODEOWNERS
|
BRIEF: GitHub-specific templates including issues, PRs, and CODEOWNERS
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@@ -371,7 +371,7 @@ Require status checks that verify:
|
|||||||
|
|
||||||
## Metadata
|
## Metadata
|
||||||
|
|
||||||
* **Document**: templates/github/README.md
|
* **Document**: templates/mokogitea/README.md
|
||||||
* **Repository**: [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards)
|
* **Repository**: [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/MokoStandards)
|
||||||
* **Owner**: Moko Consulting Engineering Team
|
* **Owner**: Moko Consulting Engineering Team
|
||||||
* **Scope**: GitHub templates and configuration
|
* **Scope**: GitHub templates and configuration
|
||||||
+1
-1
@@ -9,7 +9,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
DEFGROUP: MokoStandards.Templates.GitHub
|
DEFGROUP: MokoStandards.Templates.GitHub
|
||||||
INGROUP: MokoStandards.Templates
|
INGROUP: MokoStandards.Templates
|
||||||
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
||||||
PATH: /templates/github/copilot-instructions.dolibarr.md.template
|
PATH: /templates/mokogitea/copilot-instructions.dolibarr.md.template
|
||||||
VERSION: XX.YY.ZZ
|
VERSION: XX.YY.ZZ
|
||||||
BRIEF: GitHub Copilot custom instructions template for Dolibarr/MokoCRM module repositories
|
BRIEF: GitHub Copilot custom instructions template for Dolibarr/MokoCRM module repositories
|
||||||
NOTE: Synced to .gitea/copilot-instructions.md in all Dolibarr/CRM module repos via bulk sync.
|
NOTE: Synced to .gitea/copilot-instructions.md in all Dolibarr/CRM module repos via bulk sync.
|
||||||
+1
-1
@@ -9,7 +9,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
DEFGROUP: MokoStandards.Templates.GitHub
|
DEFGROUP: MokoStandards.Templates.GitHub
|
||||||
INGROUP: MokoStandards.Templates
|
INGROUP: MokoStandards.Templates
|
||||||
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
||||||
PATH: /templates/github/copilot-instructions.joomla.md.template
|
PATH: /templates/mokogitea/copilot-instructions.joomla.md.template
|
||||||
VERSION: XX.YY.ZZ
|
VERSION: XX.YY.ZZ
|
||||||
BRIEF: GitHub Copilot custom instructions template for Joomla/MokoWaaS governed repositories
|
BRIEF: GitHub Copilot custom instructions template for Joomla/MokoWaaS governed repositories
|
||||||
NOTE: Synced to .gitea/copilot-instructions.md in all Joomla/WaaS repos via bulk sync.
|
NOTE: Synced to .gitea/copilot-instructions.md in all Joomla/WaaS repos via bulk sync.
|
||||||
+1
-1
@@ -9,7 +9,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
DEFGROUP: MokoStandards.Templates.GitHub
|
DEFGROUP: MokoStandards.Templates.GitHub
|
||||||
INGROUP: MokoStandards.Templates
|
INGROUP: MokoStandards.Templates
|
||||||
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
||||||
PATH: /templates/github/copilot-instructions.md.template
|
PATH: /templates/mokogitea/copilot-instructions.md.template
|
||||||
VERSION: XX.YY.ZZ
|
VERSION: XX.YY.ZZ
|
||||||
BRIEF: Standard GitHub Copilot custom instructions template for Moko Consulting governed repositories
|
BRIEF: Standard GitHub Copilot custom instructions template for Moko Consulting governed repositories
|
||||||
NOTE: Synced to .gitea/copilot-instructions.md in all governed repositories via bulk sync.
|
NOTE: Synced to .gitea/copilot-instructions.md in all governed repositories via bulk sync.
|
||||||
+1
-1
@@ -8,7 +8,7 @@
|
|||||||
# DEFGROUP: GitHub.Dependabot
|
# DEFGROUP: GitHub.Dependabot
|
||||||
# INGROUP: MokoStandards.Security
|
# INGROUP: MokoStandards.Security
|
||||||
# REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
# REPO: https://git.mokoconsulting.tech/mokoconsulting-tech/MokoStandards
|
||||||
# PATH: /templates/github/dependabot.yml.template
|
# PATH: /templates/mokogitea/dependabot.yml.template
|
||||||
# VERSION: XX.YY.ZZ
|
# VERSION: XX.YY.ZZ
|
||||||
# BRIEF: Template Dependabot configuration for governed repositories
|
# BRIEF: Template Dependabot configuration for governed repositories
|
||||||
# NOTE: Copy to .gitea/dependabot.yml and remove ecosystems that don't apply.
|
# NOTE: Copy to .gitea/dependabot.yml and remove ecosystems that don't apply.
|
||||||
@@ -1,116 +1,116 @@
|
|||||||
# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
# FILE INFORMATION
|
# FILE INFORMATION
|
||||||
# DEFGROUP: Gitea.Workflow
|
# DEFGROUP: Gitea.Workflow
|
||||||
# INGROUP: MokoStandards
|
# INGROUP: MokoStandards
|
||||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
# REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
||||||
# PATH: /templates/workflows/dependency-audit.yml
|
# PATH: /templates/workflows/dependency-audit.yml
|
||||||
# VERSION: 01.00.00
|
# VERSION: 01.00.00
|
||||||
# BRIEF: Scheduled dependency audit — runs composer audit across repos
|
# BRIEF: Scheduled dependency audit — runs composer audit across repos
|
||||||
|
|
||||||
name: Dependency Audit
|
name: Dependency Audit
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 8 * * 1' # Every Monday at 08:00 UTC
|
- cron: '0 8 * * 1' # Every Monday at 08:00 UTC
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
audit:
|
audit:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup PHP
|
- name: Setup PHP
|
||||||
uses: shivammathur/setup-php@v2
|
uses: shivammathur/setup-php@v2
|
||||||
with:
|
with:
|
||||||
php-version: '8.3'
|
php-version: '8.3'
|
||||||
tools: composer
|
tools: composer
|
||||||
|
|
||||||
- name: Run composer audit
|
- name: Run composer audit
|
||||||
id: audit
|
id: audit
|
||||||
run: |
|
run: |
|
||||||
if [ ! -f composer.json ]; then
|
if [ ! -f composer.json ]; then
|
||||||
echo "No composer.json found — skipping."
|
echo "No composer.json found — skipping."
|
||||||
echo "skip=true" >> "$GITHUB_OUTPUT"
|
echo "skip=true" >> "$GITHUB_OUTPUT"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "skip=false" >> "$GITHUB_OUTPUT"
|
echo "skip=false" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
AUDIT_OUTPUT=$(composer audit --format=json 2>&1)
|
AUDIT_OUTPUT=$(composer audit --format=json 2>&1)
|
||||||
AUDIT_EXIT=$?
|
AUDIT_EXIT=$?
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
echo "$AUDIT_OUTPUT" > audit-results.json
|
echo "$AUDIT_OUTPUT" > audit-results.json
|
||||||
|
|
||||||
if [ "$AUDIT_EXIT" -ne 0 ]; then
|
if [ "$AUDIT_EXIT" -ne 0 ]; then
|
||||||
echo "vulnerable=true" >> "$GITHUB_OUTPUT"
|
echo "vulnerable=true" >> "$GITHUB_OUTPUT"
|
||||||
else
|
else
|
||||||
echo "vulnerable=false" >> "$GITHUB_OUTPUT"
|
echo "vulnerable=false" >> "$GITHUB_OUTPUT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Parse vulnerabilities
|
- name: Parse vulnerabilities
|
||||||
if: steps.audit.outputs.skip != 'true'
|
if: steps.audit.outputs.skip != 'true'
|
||||||
id: parse
|
id: parse
|
||||||
run: |
|
run: |
|
||||||
if [ "${{ steps.audit.outputs.vulnerable }}" = "true" ]; then
|
if [ "${{ steps.audit.outputs.vulnerable }}" = "true" ]; then
|
||||||
echo "## Vulnerabilities Found" >> "$GITHUB_STEP_SUMMARY"
|
echo "## Vulnerabilities Found" >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "" >> "$GITHUB_STEP_SUMMARY"
|
echo "" >> "$GITHUB_STEP_SUMMARY"
|
||||||
|
|
||||||
# Extract advisory count
|
# Extract advisory count
|
||||||
ADVISORIES=$(jq -r '.advisories | length // 0' audit-results.json 2>/dev/null || echo "0")
|
ADVISORIES=$(jq -r '.advisories | length // 0' audit-results.json 2>/dev/null || echo "0")
|
||||||
echo "Found **${ADVISORIES}** advisories." >> "$GITHUB_STEP_SUMMARY"
|
echo "Found **${ADVISORIES}** advisories." >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "" >> "$GITHUB_STEP_SUMMARY"
|
echo "" >> "$GITHUB_STEP_SUMMARY"
|
||||||
|
|
||||||
# List each advisory
|
# List each advisory
|
||||||
jq -r '
|
jq -r '
|
||||||
.advisories | to_entries[] |
|
.advisories | to_entries[] |
|
||||||
"| \(.key) | \(.value[0].title // "N/A") | \(.value[0].cve // "N/A") | \(.value[0].affectedVersions // "N/A") |"
|
"| \(.key) | \(.value[0].title // "N/A") | \(.value[0].cve // "N/A") | \(.value[0].affectedVersions // "N/A") |"
|
||||||
' audit-results.json 2>/dev/null | {
|
' audit-results.json 2>/dev/null | {
|
||||||
echo "| Package | Title | CVE | Affected Versions |"
|
echo "| Package | Title | CVE | Affected Versions |"
|
||||||
echo "|---------|-------|-----|-------------------|"
|
echo "|---------|-------|-----|-------------------|"
|
||||||
cat
|
cat
|
||||||
} >> "$GITHUB_STEP_SUMMARY"
|
} >> "$GITHUB_STEP_SUMMARY"
|
||||||
|
|
||||||
echo "count=${ADVISORIES}" >> "$GITHUB_OUTPUT"
|
echo "count=${ADVISORIES}" >> "$GITHUB_OUTPUT"
|
||||||
else
|
else
|
||||||
echo "## No Vulnerabilities Found" >> "$GITHUB_STEP_SUMMARY"
|
echo "## No Vulnerabilities Found" >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "" >> "$GITHUB_STEP_SUMMARY"
|
echo "" >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "All dependencies passed the audit." >> "$GITHUB_STEP_SUMMARY"
|
echo "All dependencies passed the audit." >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "count=0" >> "$GITHUB_OUTPUT"
|
echo "count=0" >> "$GITHUB_OUTPUT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Notify via ntfy
|
- name: Notify via ntfy
|
||||||
if: steps.audit.outputs.vulnerable == 'true'
|
if: steps.audit.outputs.vulnerable == 'true'
|
||||||
run: |
|
run: |
|
||||||
NTFY_URL="${{ vars.NTFY_URL }}"
|
NTFY_URL="${{ vars.NTFY_URL }}"
|
||||||
NTFY_TOPIC="${{ vars.NTFY_TOPIC }}"
|
NTFY_TOPIC="${{ vars.NTFY_TOPIC }}"
|
||||||
REPO="${{ github.repository }}"
|
REPO="${{ github.repository }}"
|
||||||
COUNT="${{ steps.parse.outputs.count }}"
|
COUNT="${{ steps.parse.outputs.count }}"
|
||||||
RUN_URL="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
|
RUN_URL="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
|
||||||
|
|
||||||
curl -s \
|
curl -s \
|
||||||
-H "Title: Dependency Audit: ${REPO}" \
|
-H "Title: Dependency Audit: ${REPO}" \
|
||||||
-H "Priority: high" \
|
-H "Priority: high" \
|
||||||
-H "Tags: warning,package" \
|
-H "Tags: warning,package" \
|
||||||
-H "Click: ${RUN_URL}" \
|
-H "Click: ${RUN_URL}" \
|
||||||
-d "Found ${COUNT} vulnerability advisory(ies) in ${REPO}. Review the workflow run for details." \
|
-d "Found ${COUNT} vulnerability advisory(ies) in ${REPO}. Review the workflow run for details." \
|
||||||
"${NTFY_URL}/${NTFY_TOPIC}"
|
"${NTFY_URL}/${NTFY_TOPIC}"
|
||||||
|
|
||||||
- name: Summary
|
- name: Summary
|
||||||
if: always() && steps.audit.outputs.skip != 'true'
|
if: always() && steps.audit.outputs.skip != 'true'
|
||||||
run: |
|
run: |
|
||||||
echo "" >> "$GITHUB_STEP_SUMMARY"
|
echo "" >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "---" >> "$GITHUB_STEP_SUMMARY"
|
echo "---" >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "" >> "$GITHUB_STEP_SUMMARY"
|
echo "" >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "Audit completed at $(date -u '+%Y-%m-%d %H:%M:%S UTC')." >> "$GITHUB_STEP_SUMMARY"
|
echo "Audit completed at $(date -u '+%Y-%m-%d %H:%M:%S UTC')." >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "Repository: **${{ github.repository }}**" >> "$GITHUB_STEP_SUMMARY"
|
echo "Repository: **${{ github.repository }}**" >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "Branch: **${{ github.ref_name }}**" >> "$GITHUB_STEP_SUMMARY"
|
echo "Branch: **${{ github.ref_name }}**" >> "$GITHUB_STEP_SUMMARY"
|
||||||
|
|||||||
Reference in New Issue
Block a user