- Add html-lint job to CI that runs djlint on all PRs
- Configure djlint in pyproject.toml with Jinja2 profile and accessibility rules
- Add djlint to requirements-dev.txt
- Expand accessibility section in frontend Copilot instructions (WCAG 2.1 AA)
- Wire html-lint into CI dependency chain (test/mypy/build depend on it)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Fix ruff format: add blank line before nested function in app/views/filemanager.py
- Fix ruff format: use double-quote escaping in tests/test_config.py
- Remove deploy job (Portainer webhook) from ci.yml
- Add update-k8s-manifest job: after main-branch build, updates
apps/docuelevate/preprod/docuelevate-stack.yaml in christianlouis/k8s-cluster-state
with the new GHCR image tag (ghcr.io/christianlouis/docuelevate:main-<short-sha>)
using mikefarah/yq@v4.44.6 and GH_PAT secret for cross-repo write access
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Move get_all_settings_from_db import to module level in app/views/settings.py
- Move get_provider_status and get_settings_for_display imports to module level in app/views/status.py
- Fix CI workflow: replace deprecated 'file' parameter with 'files' in codecov-action
- Fix CI workflow: update test results upload to use codecov-action@v5 with report_type instead of deprecated test-results-action@v1
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Create new ruff-auto-fix.yml workflow that automatically fixes formatting issues
- Auto-commits fixes back to PR branches
- Comments on PRs when fixes are applied
- Restructure CI pipeline to run lint before tests (Stage 1 → Stage 2)
- Update CONTRIBUTING.md with current Ruff tooling (replaces outdated Black/Flake8 references)
- Add clear pre-commit setup instructions
- Document new CI workflow structure
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Add types-requests and types-paramiko stubs to requirements-dev.txt
- Configure mypy disable_error_code in pyproject.toml for SQLAlchemy/ORM
false positives and dynamic library type issues
- Add comprehensive pylint configuration in pyproject.toml with documented
suppressions for framework-specific patterns and false positives
- Update CI workflow to use pyproject.toml config instead of inline flags
- Both mypy and pylint now pass with exit code 0
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Refactors .github/workflows/tests.yaml so that flake8, black, mypy,
pylint, and bandit each run as their own job in parallel with the test
job. This ensures a failure in one tool never blocks the others, and
contributors see full feedback from every tool on every CI run.
- Upgrades actions/checkout to v4 and actions/setup-python to v5
- All linter jobs are enforced (no continue-on-error)
- Test artifacts (junit.xml, coverage.xml) always uploaded
- Bandit JSON report always uploaded as artifact
- Adds docs/CIWorkflow.md with maintainer documentation
- Updates CONTRIBUTING.md with CI workflow table and link
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Add missing pytest markers (e2e, requires_docker) to pyproject.toml
- Update CI workflow to skip E2E tests with -m "not e2e"
- Update integration test documentation with CI configuration notes
- E2E tests can still be run locally with: pytest -m e2e
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Update generate_build_metadata.sh to sync VERSION from latest git tag
- Change BUILD_DATE format from date-only to ISO 8601 with time (YYYY-MM-DDTHH:MM:SSZ)
- Fix VERSION file from 0.5.0 to 0.9.1 (matching latest git tag v0.9.1)
- Change version fallback from hardcoded '0.5.0-dev' to 'unknown' in config.py
- Update release.yml to commit all build metadata files (not just VERSION)
- Update BuildMetadata.md documentation to reflect automated versioning
- Add tests for build_date with time format and version unknown fallback
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Update Codecov action from v3 to v5 with token authentication
- Add Codecov test results action v1 for test analytics
- Update pytest to generate JUnit XML for test results
- Add comprehensive status badges to README including:
- Codecov coverage badge
- CI/CD workflow status badges (Tests, Docker CI, CodeQL)
- GitHub release, license, and Python version badges
- Social badges for stars, forks, issues, and PRs
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Add Redis and RabbitMQ services to CI workflow
- Fix Jinja2 template error by passing file=None in error cases
- Fix test expecting dict response format for list_files endpoint
- Fix NOT NULL constraint by providing valid local_filename
- Fix retry-subtask to validate subtask name before checking processed file
- Add mock for process_document in reprocess test
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Change Docker Hub image name to christianlouis/docuelevate
- Update GHCR references to use docuelevate
- Ensure consistency across all Docker build tags
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>