Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
5a600ac
chore(deps): update dependency httpx to >=0.28.1
renovate[bot] Nov 19, 2025
54fcc18
chore(deps): update dependency black to >=24.10.0
renovate[bot] Nov 19, 2025
cabf57d
fix: Update CI configuration to prevent failure on Codecov errors and…
Wikid82 Nov 17, 2025
0a7442d
fix: update ruff version requirement and use GITHUB_TOKEN for GHCR auth
Wikid82 Nov 18, 2025
b570e4c
docs: simplify GitHub setup guide - no manual token needed
Wikid82 Nov 18, 2025
76f937d
fix: add missing frontend dependencies and remove trailing whitespace
Wikid82 Nov 18, 2025
9bd1604
fix: exclude generated frontend files from pre-commit hooks
Wikid82 Nov 18, 2025
a87b7ce
fix: replace Python tests with Go and React tests in CI
Wikid82 Nov 18, 2025
e6f8b15
fix: remove duplicate type declarations and update package-lock
Wikid82 Nov 18, 2025
be2b99f
feat: update docker-compose to use GHCR images and fix test failures
Wikid82 Nov 18, 2025
08db82d
fix: use golang:alpine base image for backend builder
Wikid82 Nov 18, 2025
3401757
feat: add Dockerfile validation to pre-commit hooks
Wikid82 Nov 18, 2025
6392ef3
chore: comprehensive update to ignore files
Wikid82 Nov 18, 2025
8e641b0
fix: Eliminate act() warnings in frontend tests and resolve Docker ar…
Wikid82 Nov 18, 2025
6273aa3
fix: Remove legacy Python lint job from CI workflow
Wikid82 Nov 18, 2025
46d14cd
chore: trigger workflows with updated action permissions
Wikid82 Nov 18, 2025
c979e3d
chore: test workflows after enabling all actions
Wikid82 Nov 18, 2025
9582320
feat: Add Trivy security scanning to Docker workflows
Wikid82 Nov 18, 2025
8716919
fix: Correct Docker tag format in metadata action
Wikid82 Nov 18, 2025
f14b0f3
fix: Remove SHA-based Docker tags causing invalid format errors
Wikid82 Nov 18, 2025
f2ea164
fix(docker): set ROLLUP_SKIP_NODEJS_NATIVE=1 to avoid arm64 native Ro…
Wikid82 Nov 18, 2025
37cef06
Docker: build frontend on BUILDPLATFORM to avoid arm64 Rollup native …
Wikid82 Nov 18, 2025
8434121
CI: Add CodeQL analysis workflow with security-events permissions and…
Wikid82 Nov 18, 2025
ffa1bd9
CI: Fix Trivy scan refs and guard SARIF upload; use metadata tags for…
Wikid82 Nov 18, 2025
d65b551
CI: Generate PR tag via ref_name; skip push & security scan on PR
Wikid82 Nov 18, 2025
e3134a2
Reduce Trivy findings: drop bash, switch to /bin/sh entrypoint, pin t…
Wikid82 Nov 18, 2025
3111421
CI: Pin Caddy base by digest in builds; enforce Trivy fail on CRITICA…
Wikid82 Nov 18, 2025
7788544
CI: Add Renovate automation and Caddy v3 monitor; fix CADDY_IMAGE ARG…
Wikid82 Nov 18, 2025
ae4f03e
CI: Show Trivy table output before SARIF upload; always upload SARIF;…
Wikid82 Nov 18, 2025
5488176
chore(deps): bump golang.org/x/crypto to v0.31.0 (fix CVE-2024-45337)
Wikid82 Nov 18, 2025
e3e6c75
ci: add checkout step to Renovate workflow so config file is available
Wikid82 Nov 19, 2025
59202c1
chore(ci): fix Renovate config and workflow; ensure checkout and vali…
Wikid82 Nov 19, 2025
6761f0f
chore(deps): update dependency passlib to >=1.7.4
renovate[bot] Nov 19, 2025
77b8b0c
chore(deps): update dependency pytest to >=7.4.4
renovate[bot] Nov 19, 2025
b78c87c
chore(deps): update dependency python-multipart to >=0.0.20
renovate[bot] Nov 19, 2025
65740e9
chore(deps): update dependency sqlalchemy to >=2.0.44
renovate[bot] Nov 19, 2025
eec702a
fix(ci): lowercase IMAGE_NAME in workflows; fix Renovate packageRule …
Wikid82 Nov 19, 2025
0d6fb54
fix(ci): normalize IMAGE_NAME to lowercase for registry compliance
Wikid82 Nov 19, 2025
6bf9fba
chore(ci): skip add-to-project when PROJECT_URL secret absent
Wikid82 Nov 19, 2025
939847e
ci: robust health check with retries; normalize IMAGE_NAME in publish…
Wikid82 Nov 19, 2025
7253dd4
fix(runtime): remove invalid Caddy --adapter json; use native JSON co…
Wikid82 Nov 19, 2025
1cf07a8
ci: skip heavy docker build/publish for renovate bot and chore(deps)/…
Wikid82 Nov 19, 2025
069e811
fix(ci): correct indentation for skip summary step in docker-build
Wikid82 Nov 19, 2025
50eefbd
fix(hooks): use python3 fallback in compile check script
Wikid82 Nov 19, 2025
c055a76
fix(ci): use ADD_TO_PROJECT_PAT for project access (user projects req…
Wikid82 Nov 19, 2025
de484db
ci(secrets): migrate GITHUB_TOKEN references to PROJECT_TOKEN secret
Wikid82 Nov 19, 2025
38adf58
chore(deps): update dependency coverage to >=7.12.0
renovate[bot] Nov 19, 2025
193e7e2
chore(deps): update dependency fastapi to >=0.121.2
renovate[bot] Nov 19, 2025
4ef17f4
chore(deps): update dependency go to v1.25.4
renovate[bot] Nov 19, 2025
6f98ae7
chore(deps): update dependency isort to >=5.13.2
renovate[bot] Nov 19, 2025
7ca6d8f
ci: streamline workflows, consolidate docker build/publish, add quali…
Wikid82 Nov 19, 2025
b297585
ci: fix propagation logic (main->dev, dev->feature/**)
Wikid82 Nov 19, 2025
3537dc0
ci: add GitHub Actions workflow for building and pushing Docker images
Wikid82 Nov 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 18 additions & 4 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,22 @@ coverage:
# Fail CI if Codecov upload/report indicates a problem
require_ci_to_pass: yes

# Exclude folders from Codecov (adjust as needed)
# Exclude folders from Codecov
ignore:
- tests/*
- docs/*
- .github/*
- "**/tests/*"
- "**/test/*"
- "**/__tests__/*"
- "**/test_*.go"
- "**/*_test.go"
- "**/*.test.ts"
- "**/*.test.tsx"
- "docs/*"
- ".github/*"
- "scripts/*"
- "tools/*"
- "frontend/node_modules/*"
- "frontend/dist/*"
- "frontend/coverage/*"
- "backend/cmd/seed/*"
- "backend/data/*"
- "*.md"
84 changes: 66 additions & 18 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,27 +1,75 @@
# Version control
.git
.gitignore
node_modules
venv
__pycache__
*.pyc
*.pyo
*.pyd
.github/

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
.venv/
venv/
env/
build/
dist/
*.egg-info
.DS_Store
.idea/
.vscode/
.env
.env.*
coverage/
.coverage
ENV/
.pytest_cache/
*.log
.coverage
*.cover
.hypothesis/
htmlcov/
*.egg-info/

# Node/Frontend build artifacts
frontend/node_modules/
frontend/coverage/
frontend/.vite/
frontend/*.tsbuildinfo
# Keep frontend/dist - needed in final image

# Go/Backend
backend/*.out
backend/coverage.*.out
# Keep backend/api binary - needed in final image

# Databases (runtime)
backend/data/*.db
backend/cmd/api/data/*.db
*.sqlite
*.sqlite3

# IDE
.vscode/
.idea/
*.swp
*.swo
*~

# Logs
*.log
logs/

# Environment
.env.local
.env.*.local

# OS
.DS_Store
Thumbs.db

# Documentation
docs/
*.md
!README.md

# Docker
docker-compose.override.yml
docker-compose*.yml
**/Dockerfile.*

# CI/CD
.github/
.pre-commit-config.yaml

# Scripts
scripts/
tools/
70 changes: 70 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
":semanticCommits",
":separateMultipleMajorReleases",
"helpers:pinGitHubActionDigests"
],
"baseBranches": ["development"],
"timezone": "UTC",
"dependencyDashboard": true,
"prConcurrentLimit": 10,
"prHourlyLimit": 5,
"labels": ["dependencies"],
"rebaseWhen": "conflicted",
"vulnerabilityAlerts": { "enabled": true },
"schedule": ["every weekday"],
"rangeStrategy": "bump",
"packageRules": [
{
"description": "Automerge safe patch updates",
"matchUpdateTypes": ["patch"],
"automerge": true
},
{
"description": "Frontend npm: automerge minor for devDependencies",
"matchManagers": ["npm"],
"matchDepTypes": ["devDependencies"],
"matchUpdateTypes": ["minor", "patch"],
"automerge": true,
"labels": ["dependencies", "npm"]
},
{
"description": "Backend Go modules",
"matchManagers": ["gomod"],
"labels": ["dependencies", "go"],
"matchUpdateTypes": ["minor", "patch"],
"automerge": false
},
{
"description": "GitHub Actions updates",
"matchManagers": ["github-actions"],
"labels": ["dependencies", "github-actions"],
"matchUpdateTypes": ["minor", "patch"],
"automerge": true
},
{
"description": "Docker: keep Caddy within v2 (no automatic jump to v3)",
"matchManagers": ["dockerfile"],
"matchPackageNames": ["caddy"],
"allowedVersions": "<3.0.0",
"labels": ["dependencies", "docker"],
"automerge": true
},
{
"description": "Group non-breaking npm minor/patch",
"matchManagers": ["npm"],
"matchUpdateTypes": ["minor", "patch"],
"groupName": "npm minor/patch",
"prPriority": -1
},
{
"description": "Group docker base minor/patch",
"matchManagers": ["dockerfile"],
"matchUpdateTypes": ["minor", "patch"],
"groupName": "docker base updates",
"prPriority": -1
}
]
}
18 changes: 13 additions & 5 deletions .github/workflows/auto-add-to-project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,23 @@ jobs:
add-to-project:
runs-on: ubuntu-latest
steps:
- name: Skip if PROJECT_URL not provided
- name: Determine project URL presence
id: project_check
run: |
if [ -z "${{ secrets.PROJECT_URL }}" ]; then
echo "PROJECT_URL secret not set; skipping add-to-project job."
exit 0
if [ -n "${{ secrets.PROJECT_URL }}" ]; then
echo "has_project=true" >> $GITHUB_OUTPUT
else
echo "has_project=false" >> $GITHUB_OUTPUT
fi

- name: Add issue or PR to project
if: steps.project_check.outputs.has_project == 'true'
uses: actions/add-to-project@1b844f0c5ac6446a402e0cb3693f9be5eca188c5 # v0.6.1
continue-on-error: true
with:
project-url: ${{ secrets.PROJECT_URL }}
github-token: ${{ secrets.GITHUB_TOKEN }}
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}

- name: Skip summary
if: steps.project_check.outputs.has_project == 'false'
run: echo "PROJECT_URL secret missing; skipping project assignment." >> $GITHUB_STEP_SUMMARY
62 changes: 62 additions & 0 deletions .github/workflows/caddy-major-monitor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Monitor Caddy Major Release

on:
schedule:
- cron: '17 7 * * 1' # Mondays at 07:17 UTC
workflow_dispatch: {}

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@v7
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,
});
73 changes: 0 additions & 73 deletions .github/workflows/ci.yml

This file was deleted.

Loading
Loading