Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
df9ce52
Add Claude Code Github Action
AgentO3 Jul 14, 2025
491124c
chore: rename workflow file to follow GitHub directory structure
AgentO3 Jul 14, 2025
a768f3a
feat: Add YAML format support for Agentfile configurations
AgentO3 Jul 14, 2025
a595b3f
Add GitHub workflow for automated testing
AgentO3 Jul 14, 2025
fc85ccb
fix: Update test mocks for YAML parser integration
AgentO3 Jul 14, 2025
7636875
fix: Resolve pylint errors and improve code quality
AgentO3 Jul 14, 2025
48b905a
fix: Resolve test failures and pylint warnings
AgentO3 Jul 14, 2025
508e33d
feat: support multiple agents in Agentfile
AgentO3 Jul 15, 2025
2117d16
feat: add support for routers, chains, and orchestrators in YAML parser
AgentO3 Jul 15, 2025
3208922
feat: add YAML format support for Agentfile
AgentO3 Jul 15, 2025
c9340ec
fix: correct formatting issues in agentman module
AgentO3 Jul 15, 2025
ad9d59a
Merge pull request #2 from o3-cloud/claude/issue-1-20250714_144116
AgentO3 Jul 15, 2025
3b755ef
Add environment variable support for MCP secrets and server configura…
AgentO3 Jul 15, 2025
9c1a7b2
feat(parser): improve readability by removing unnecessary blank lines
AgentO3 Jul 16, 2025
a254103
feat: add environment variable expansion in Agentfiles
AgentO3 Jul 16, 2025
05711ee
fix(agentfile_parser): simplify expand_env_vars function by removing …
AgentO3 Jul 16, 2025
4b7ffc8
Merge pull request #5 from o3-cloud/claude/issue-4-20250715-2236
AgentO3 Jul 16, 2025
333e6a2
feat: Add JSONSchema YAML support to Agentfile output format
AgentO3 Jul 19, 2025
c5a5e06
feat: enhance agent file parsing with schema support
AgentO3 Jul 20, 2025
98ddb8b
refactor: simplify response_format construction and clean up code
AgentO3 Jul 20, 2025
9500bfe
feat: add structured output format for agent validation
AgentO3 Jul 20, 2025
d8553dd
feat(agentfile_parser): integrate YAML parsing and refactor imports
AgentO3 Jul 20, 2025
7365740
Merge pull request #12 from o3-cloud/claude/issue-8-20250719-1349
AgentO3 Jul 20, 2025
9f1236a
feat(ci): add GitHub Actions workflow for Docker image build and push
AgentO3 Jul 20, 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
60 changes: 60 additions & 0 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Claude Code

on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]
pull_request:
types: [opened]

jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) ||
(github.event_name == 'pull_request' && (github.event.action == 'opened' || contains(github.event.pull_request.body, '@claude')))
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GH_PAT }}

# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4)
# model: "claude-opus-4-20250514"

# Optional: Customize the trigger phrase (default: @claude)
# trigger_phrase: "/claude"

# Optional: Trigger when specific user is assigned to an issue
# assignee_trigger: "claude-bot"

# Optional: Allow Claude to run specific commands
allowed_tools: Bash

# Optional: Add custom instructions for Claude to customize its behavior for your project
# custom_instructions: |
# Follow our coding standards
# Ensure all new code has tests
# Use TypeScript for new files

# Optional: Custom environment variables for Claude
# claude_env: |
# NODE_ENV: test


64 changes: 64 additions & 0 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Build and Push Docker Image

on:
push:
branches:
- main
paths:
- 'docker/Dockerfile.base'
- '.github/workflows/docker-build.yml'
pull_request:
branches:
- main
paths:
- 'docker/Dockerfile.base'
- '.github/workflows/docker-build.yml'
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}/base

jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

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

- 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
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=sha,prefix={{branch}}
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: .
file: ./docker/Dockerfile.base
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
platforms: linux/amd64,linux/arm64
77 changes: 77 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Tests

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
test:
name: Test Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v4
with:
enable-cache: true

- name: Install dependencies
run: |
uv sync --extra dev

- name: Run tests with coverage
run: |
uv run pytest --cov=src/agentman --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: false
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

lint:
name: Code Quality
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install uv
uses: astral-sh/setup-uv@v4
with:
enable-cache: true

- name: Install dependencies
run: |
uv sync --extra dev

- name: Run black
run: |
uv run black src tests

- name: Run isort
run: |
uv run isort --check-only src tests

- name: Run pylint
run: |
uv run pylint src/agentman
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,5 @@ htmlcov/
.coverage

# Generated files
agent/
agent/
build/
Loading