Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
3fbb5ef
feat/general-refinement - refactor: consolidate models and clean up p…
Aug 28, 2025
7fc0673
feat/general-refinement - fix: prioritize PyPI installation and use G…
Aug 28, 2025
2afdffd
feat/general-refinement - fix: remove unnecessary port configurations…
Aug 28, 2025
545dd63
feat/general-refinement - docs: add LLM-as-a-Judge concept and MCP cl…
Aug 28, 2025
9da51ca
feat/general-refinement - docs: highlight main purpose of improving d…
Aug 28, 2025
e782f21
feat/general-refinement - docs: add judge icons for better visual bra…
Aug 28, 2025
027ed48
feat/general-refinement - refactor: replace static research validatio…
Aug 29, 2025
ab3f326
feat/general-refinement - fix: correct judge_code_change trigger and …
Aug 29, 2025
25664af
feat/general-refinement - enhance: add Pragmatic Programmer principle…
Aug 29, 2025
1bdb335
feat/general-refinement - enhance: add comprehensive software enginee…
Aug 29, 2025
8565687
feat/general-refinement - fix: ensure judge_code_change is called for…
Aug 29, 2025
c3a9c79
feat/general-refinement - enhance: make judge_code_change documentati…
Aug 29, 2025
a52cf63
feat/general-refinement - fix: replace relative imports with absolute…
Aug 29, 2025
6957e4a
feat/general-refinement - fix: apply pre-commit hook auto-fixes
Aug 29, 2025
2ab32c1
feat/general-refinement - fix: resolve flake8 and mypy errors
Aug 29, 2025
dfab165
feat/general-refinement - fix: resolve complexity and final flake8 er…
Aug 29, 2025
bf636a8
feat/general-refinement - fix: apply black formatting
Aug 29, 2025
bb1c885
feat/general-refinement - test: demonstrate pre-commit blocking behav…
Aug 29, 2025
668f003
feat/general-refinement - test: this commit should be blocked by pre-…
Aug 29, 2025
8ba53d6
feat/general-refinement - add: pytest to pre-commit hooks and demonst…
Aug 29, 2025
c48ed76
feat/general-refinement - refactor: move prompts to Markdown files wi…
Aug 29, 2025
3fe3e40
feat/general-refinement - refactor prompts with perfect system/user s…
Aug 29, 2025
8b4da37
feat/general-refinement - Fix deterministic JSON parsing and remove e…
Aug 30, 2025
a8faee1
feat/general-refinement - Improve README documentation structure
Aug 30, 2025
21cfd79
feat/general-refinement - Upgrade to Python 3.13.5 and improve covera…
Aug 30, 2025
db94dde
feat/general-refinement - Fix Dockerfile merge conflict by keeping st…
Aug 30, 2025
42dc16f
feat/general-refinement - Implement dynamic Docker image versioning a…
Aug 30, 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
59 changes: 32 additions & 27 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,76 +7,79 @@ on:
branches: [ main, develop ]

env:
PYTHON_VERSION: "3.12"
PYTHON_VERSION: "3.13"

jobs:
test:
name: Test Suite
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.12", "3.13"]
python-version: ["3.13"]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"

- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Install dependencies
run: |
uv sync --all-extras --dev

- name: Run linting
run: |
uv run ruff check src tests
uv run ruff format --check src tests

- name: Run type checking
run: |
uv run mypy src

- name: Run tests
run: |
uv run pytest --cov=src/mcp_as_a_judge --cov-report=xml --cov-report=term-missing

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
fail_ci_if_error: true
fail_ci_if_error: false
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

security:
name: Security Scan
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"

- name: Set up Python
run: uv python install ${{ env.PYTHON_VERSION }}

- name: Install dependencies
run: uv sync --all-extras --dev

- name: Run safety check
run: |
uv add --dev safety
uv run safety check

- name: Run bandit security linter
run: |
uv add --dev bandit
Expand All @@ -86,31 +89,31 @@ jobs:
name: Build Package
runs-on: ubuntu-latest
needs: [test, security]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"

- name: Set up Python
run: uv python install ${{ env.PYTHON_VERSION }}

- name: Install dependencies
run: uv sync --all-extras --dev

- name: Build package
run: |
uv build --no-sources

- name: Check package
run: |
uv add --dev twine
uv run twine check dist/*

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
Expand All @@ -122,19 +125,21 @@ jobs:
name: Build Docker Image
runs-on: ubuntu-latest
needs: [test, security]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build Docker image
uses: docker/build-push-action@v5
with:
context: .
push: false
tags: mcp-as-a-judge:test
build-args: |
VERSION=dev-${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max
2 changes: 1 addition & 1 deletion .github/workflows/dependabot-auto-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
uses: dependabot/fetch-metadata@v2
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"

- name: Auto-merge Dependabot PRs for patch and minor updates
if: steps.metadata.outputs.update-type == 'version-update:semver-patch' || steps.metadata.outputs.update-type == 'version-update:semver-minor'
run: gh pr merge --auto --merge "$PR_URL"
Expand Down
34 changes: 18 additions & 16 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- 'v*'

env:
PYTHON_VERSION: "3.12"
PYTHON_VERSION: "3.13"
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

Expand All @@ -18,39 +18,39 @@ jobs:
contents: write
packages: write
id-token: write

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"

- name: Set up Python
run: uv python install ${{ env.PYTHON_VERSION }}

- name: Install dependencies
run: uv sync --all-extras --dev

- name: Extract version from tag
id: version
run: |
VERSION=${GITHUB_REF#refs/tags/v}
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT

- name: Verify version matches pyproject.toml
run: |
PROJECT_VERSION=$(uv run python -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['project']['version'])")
if [ "$PROJECT_VERSION" != "${{ steps.version.outputs.VERSION }}" ]; then
echo "Version mismatch: tag=${{ steps.version.outputs.VERSION }}, pyproject.toml=$PROJECT_VERSION"
exit 1
fi

- name: Generate changelog
id: changelog
run: |
Expand All @@ -60,23 +60,23 @@ jobs:
git log --pretty=format:"- %s" $(git describe --tags --abbrev=0 HEAD^)..HEAD >> $GITHUB_OUTPUT || echo "- Initial release" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT

- name: Build package
run: |
uv build --no-sources

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}

- name: Log in to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata for Docker
id: meta
uses: docker/metadata-action@v5
Expand All @@ -88,20 +88,22 @@ jobs:
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=raw,value=latest,enable={{is_default_branch}}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
VERSION=${{ steps.version.outputs.VERSION }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Create GitHub Release
uses: actions/create-release@v1
env:
Expand All @@ -112,7 +114,7 @@ jobs:
body: ${{ steps.changelog.outputs.CHANGELOG }}
draft: false
prerelease: false

- name: Upload release assets
uses: actions/upload-release-asset@v1
env:
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/semantic-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
workflow_dispatch:

env:
PYTHON_VERSION: "3.12"
PYTHON_VERSION: "3.13"

jobs:
semantic-release:
Expand All @@ -19,34 +19,34 @@ jobs:
issues: write
pull-requests: write
id-token: write

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}

- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"

- name: Set up Python
run: uv python install ${{ env.PYTHON_VERSION }}

- name: Install dependencies
run: uv sync --all-extras --dev

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install semantic-release
run: |
npm install -g semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github

- name: Run semantic-release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
Loading