Keep external sync as script-managed automation
Constraint: The maintainer wants periodic upstream sync handled by script logic rather than Gitea workflow automation. Rejected: Repository-owned Gitea Actions schedule | The remote Gitea runner setup is unnecessary for the current direction. Confidence: high Scope-risk: narrow Directive: Treat scripts/sync_external_plugins.ps1 as the synchronization entry point unless a new scheduler is explicitly requested. Tested: python scripts\\validate_marketplace.py; rg found no remaining Gitea Actions sync references. Not-tested: External scheduler/container execution.
This commit is contained in:
@@ -1,46 +0,0 @@
|
|||||||
name: Sync external skill plugins
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
schedule:
|
|
||||||
- cron: "17 3 * * *"
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
sync:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout marketplace
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Sync external plugins
|
|
||||||
shell: pwsh
|
|
||||||
run: ./scripts/sync_external_plugins.ps1
|
|
||||||
|
|
||||||
- name: Validate marketplace
|
|
||||||
run: python scripts/validate_marketplace.py
|
|
||||||
|
|
||||||
- name: Commit synced changes
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if git diff --quiet; then
|
|
||||||
echo "No external plugin updates."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
git config user.name "EAPIL Skill Sync"
|
|
||||||
git config user.email "skill-sync@users.noreply.git.playones.com"
|
|
||||||
git add .agents plugins/codex/plugins plugins/codex/.agents config/external-sources.lock.json
|
|
||||||
git commit -m "Sync external skill plugins" \
|
|
||||||
-m "Constraint: Scheduled sync vendors configured third-party skill sources into Codex plugin layout." \
|
|
||||||
-m "Rejected: Git submodules | Codex marketplace installs do not reliably recurse external submodules." \
|
|
||||||
-m "Confidence: medium" \
|
|
||||||
-m "Scope-risk: moderate" \
|
|
||||||
-m "Directive: Review upstream license or structure changes before expanding adapters." \
|
|
||||||
-m "Tested: scripts/sync_external_plugins.ps1; scripts/validate_marketplace.py." \
|
|
||||||
-m "Not-tested: Manual plugin install in Codex UI."
|
|
||||||
git push
|
|
||||||
@@ -97,15 +97,7 @@ After sync, validate the marketplace:
|
|||||||
python scripts\validate_marketplace.py
|
python scripts\validate_marketplace.py
|
||||||
```
|
```
|
||||||
|
|
||||||
`.gitea/workflows/sync-external-skills.yml` is a scheduled workflow prototype for Git-side periodic sync.
|
Periodic sync should call the script directly from a maintenance process, cron job, or service container. Keep the scheduling layer outside this repository; the repository only defines source config, generated plugin output, and validation.
|
||||||
|
|
||||||
For a Docker-hosted Gitea instance, the workflow file alone is not enough. Gitea must have Actions enabled and an `act_runner` container registered before scheduled jobs will run. The runner that handles this repository should provide:
|
|
||||||
|
|
||||||
- A label matching `runs-on: ubuntu-latest`, or adjust the workflow to your runner label.
|
|
||||||
- `git`, `python`, and `pwsh` in the job environment.
|
|
||||||
- Network access from the job container to GitHub for upstream skill repos and to the Gitea instance for checkout/push.
|
|
||||||
|
|
||||||
If the Gitea server does not have Actions enabled, run the same sync command from a host cron job or a small maintenance container that checks out this repository, runs the sync script, validates, commits, and pushes changes.
|
|
||||||
|
|
||||||
## Layout
|
## Layout
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"""Validate this repository's Codex marketplace layout.
|
"""Validate this repository's Codex marketplace layout.
|
||||||
|
|
||||||
This is intentionally narrower than Codex's internal plugin validator. It checks
|
This is intentionally narrower than Codex's internal plugin validator. It checks
|
||||||
the structure this repo generates so scheduled sync jobs can fail before
|
the structure this repo generates so sync automation can fail before
|
||||||
committing malformed marketplace data.
|
committing malformed marketplace data.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user