- Replace Go interface{} with any (Go 1.18+ standard)
- Add database indexes to frequently queried model fields
- Add JSDoc documentation to frontend API client methods
- Remove deprecated docker-compose version keys
- Add concurrency groups to all 25 GitHub Actions workflows
- Add YAML front matter and fix H1→H2 headings in docs
Coverage: Backend 85.5%, Frontend 87.73%
Security: No vulnerabilities detected
Refs: docs/plans/instruction_compliance_spec.md
67 lines
2.1 KiB
YAML
67 lines
2.1 KiB
YAML
name: Monitor Caddy Major Release
|
|
|
|
on:
|
|
schedule:
|
|
- cron: '17 7 * * 1' # Mondays at 07:17 UTC
|
|
workflow_dispatch: {}
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}
|
|
cancel-in-progress: false
|
|
|
|
permissions:
|
|
contents: read
|
|
issues: write
|
|
|
|
jobs:
|
|
check-caddy-major:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check for Caddy v3 and open issue
|
|
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
|
|
with:
|
|
script: |
|
|
const upstream = { owner: 'caddyserver', repo: 'caddy' };
|
|
const { data: releases } = await github.rest.repos.listReleases({
|
|
...upstream,
|
|
per_page: 50,
|
|
});
|
|
const latestV3 = releases.find(r => /^v3\./.test(r.tag_name));
|
|
if (!latestV3) {
|
|
core.info('No Caddy v3 release detected.');
|
|
return;
|
|
}
|
|
|
|
const issueTitle = `Track upgrade to Caddy v3 (${latestV3.tag_name})`;
|
|
|
|
const { data: existing } = await github.rest.issues.listForRepo({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
state: 'open',
|
|
per_page: 100,
|
|
});
|
|
|
|
if (existing.some(i => i.title === issueTitle)) {
|
|
core.info('Issue already exists — nothing to do.');
|
|
return;
|
|
}
|
|
|
|
const body = [
|
|
'Caddy v3 has been released upstream and detected by the scheduled monitor.',
|
|
'',
|
|
`Detected release: ${latestV3.tag_name} (${latestV3.html_url})`,
|
|
'',
|
|
'- Create a feature branch to evaluate the v3 migration.',
|
|
'- Review breaking changes and update Docker base images/workflows.',
|
|
'- Validate Trivy scans and update any policies as needed.',
|
|
'',
|
|
'Current policy: remain on latest 2.x until v3 is validated.'
|
|
].join('\n');
|
|
|
|
await github.rest.issues.create({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
title: issueTitle,
|
|
body,
|
|
});
|