Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
77 changes: 77 additions & 0 deletions .github/ISSUE_TEMPLATE/1-bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Bug Report
description: Report a bug or regression.
title: "[Bug]: "
labels:
- bug
body:
- type: markdown
attributes:
value: |
# Bug Report

- type: textarea
id: summary
attributes:
label: Summary
placeholder: Briefly describe the bug.
validations:
required: true

- type: textarea
id: steps_to_reproduce
attributes:
label: Steps to Reproduce
placeholder: |
1. Go to ...
2. Run ...
3. Observe ...
validations:
required: true

- type: textarea
id: expected_behavior
attributes:
label: Expected Behavior
placeholder: Describe the expected result.
validations:
required: true

- type: textarea
id: actual_behavior
attributes:
label: Actual Behavior
placeholder: Describe what actually happened.
validations:
required: true

- type: textarea
id: environment
attributes:
label: Environment
placeholder: |
- OS:
- Python version:
- Package manager:
- FastAPI version:
- Deployment environment:
validations:
required: true

- type: textarea
id: logs_or_error_message
attributes:
label: Logs / Error Message
placeholder: Paste relevant logs, stack traces, or error messages.
render: shell

- type: input
id: related_repository_pr_issue
attributes:
label: Related Repository / PR / Issue
placeholder: e.g. org/repo, #123, or PR #456

- type: textarea
id: additional_context
attributes:
label: Additional Context
placeholder: Add any extra context, screenshots, or links.
63 changes: 63 additions & 0 deletions .github/ISSUE_TEMPLATE/2-feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Feature Request
description: Suggest an improvement or new capability.
title: "[Feature]: "
labels:
- enhancement
body:
- type: markdown
attributes:
value: |
# Feature Request

- type: textarea
id: problem
attributes:
label: Problem
placeholder: What problem are you trying to solve?
validations:
required: true

- type: textarea
id: proposed_solution
attributes:
label: Proposed Solution
placeholder: Describe the proposed change.
validations:
required: true

- type: textarea
id: use_case
attributes:
label: Use Case
placeholder: Explain the practical use case for this feature.
validations:
required: true

- type: textarea
id: expected_user_experience
attributes:
label: Expected User Experience
placeholder: Describe the desired end-user experience.

- type: textarea
id: alternatives_considered
attributes:
label: Alternatives Considered
placeholder: Describe any alternatives you considered.

- type: dropdown
id: priority
attributes:
label: Priority
options:
- Low
- Medium
- High
validations:
required: true

- type: textarea
id: additional_context
attributes:
label: Additional Context
placeholder: Add any extra details, links, or examples.
88 changes: 88 additions & 0 deletions .github/ISSUE_TEMPLATE/3-agent-review-feedback.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Agent Review Feedback
description: Report low-quality or incorrect agent review output.
title: "[Agent Review]: "
labels:
- feedback
body:
- type: markdown
attributes:
value: |
# Agent Review Feedback

- type: dropdown
id: feedback_type
attributes:
label: Feedback Type
options:
- False positive
- False negative
- Low-quality suggestion
- Incorrect explanation
- Security-related issue
- Performance-related issue
- Other
validations:
required: true

- type: input
id: repository_pr_link
attributes:
label: Repository / PR Link
placeholder: Paste the repository or pull request link.
validations:
required: true

- type: input
id: agent_comment_link
attributes:
label: Agent Comment Link
placeholder: Paste the link to the relevant agent comment.

- type: textarea
id: original_agent_comment
attributes:
label: Original Agent Comment
placeholder: Paste the original agent comment.
validations:
required: true

- type: textarea
id: why_this_feedback_is_needed
attributes:
label: Why This Feedback Is Needed
placeholder: Explain why the review output was problematic.
validations:
required: true

- type: textarea
id: expected_correct_behavior
attributes:
label: Expected Correct Behavior
placeholder: Describe the expected correct behavior or review outcome.
validations:
required: true

- type: textarea
id: relevant_code_snippet
attributes:
label: Relevant Code Snippet
placeholder: Paste any relevant code snippet.
render: text

- type: dropdown
id: severity
attributes:
label: Severity
options:
- Low
- Medium
- High
- Critical
validations:
required: true

- type: textarea
id: additional_context
attributes:
label: Additional Context
placeholder: Add any supporting context, screenshots, or links.
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Questions and discussions
url: https://github.com/xueyulinn/codehawk/discussions
about: Ask questions or start general discussions here.
30 changes: 30 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Pull Request

## Summary

## Related Issue

## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Refactor
- [ ] Documentation
- [ ] Test
- [ ] CI/CD
- [ ] Chore

## Changes Made

## How to Test

## Checklist
- [ ] Code builds successfully
- [ ] Tests added or updated
- [ ] Existing tests pass
- [ ] Documentation updated if needed
- [ ] No secrets or sensitive data included
- [ ] Breaking changes documented

## Breaking Changes

## Additional Notes
117 changes: 117 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: PR Checks

on:
pull_request:

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v4

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

- name: Set up uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: |
pyproject.toml
uv.lock

- name: Install dependencies
run: uv sync --frozen --group dev

- name: Compile Python sources
run: uv run python -m compileall codehawk

lint:
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v4

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

- name: Set up uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: |
pyproject.toml
uv.lock

- name: Install dependencies
run: uv sync --frozen --group dev

- name: Run lint checks
run: uv run ruff check .

unit-test:
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v4

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

- name: Set up uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: |
pyproject.toml
uv.lock

- name: Install dependencies
run: uv sync --frozen --group dev

- name: Run unit tests
if: ${{ hashFiles('tests/**/*.py', '**/test_*.py', '**/*_test.py') != '' }}
run: uv run pytest

- name: Skip unit tests when no tests are present
if: ${{ hashFiles('tests/**/*.py', '**/test_*.py', '**/*_test.py') == '' }}
run: echo "No test files found; skipping pytest."

type-check:
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v4

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

- name: Set up uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: |
pyproject.toml
uv.lock

- name: Install dependencies
run: uv sync --frozen --group dev

- name: Run type checks
run: uv run mypy codehawk
Loading
Loading