chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
name: Bug report
|
||||
description: Report a reproducible problem in OpenHarness
|
||||
title: "[Bug]: "
|
||||
labels:
|
||||
- bug
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for reporting a bug. Please include concrete steps, environment details, and error output.
|
||||
- type: textarea
|
||||
id: summary
|
||||
attributes:
|
||||
label: What happened?
|
||||
description: Describe the bug and the behavior you expected.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: repro
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Include commands, prompts, or config that reliably reproduces the issue.
|
||||
placeholder: |
|
||||
1. Run `uv run oh ...`
|
||||
2. Trigger ...
|
||||
3. Observe ...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: OS, Python version, Node version if relevant, provider/base URL, and install method.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant logs or screenshots
|
||||
description: Paste error output, stack traces, or terminal screenshots.
|
||||
render: shell
|
||||
@@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Contribution guide
|
||||
url: https://github.com/HKUDS/OpenHarness/blob/main/CONTRIBUTING.md
|
||||
about: Read local setup, validation, and PR expectations before contributing.
|
||||
- name: Showcase ideas
|
||||
url: https://github.com/HKUDS/OpenHarness/blob/main/docs/SHOWCASE.md
|
||||
about: See example workflows and suggest new real-world use cases.
|
||||
@@ -0,0 +1,33 @@
|
||||
name: Feature request
|
||||
description: Propose a focused improvement or missing workflow
|
||||
title: "[Feature]: "
|
||||
labels:
|
||||
- enhancement
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please describe the workflow gap as concretely as possible. Small, scoped requests are easier to prioritize.
|
||||
- type: textarea
|
||||
id: problem
|
||||
attributes:
|
||||
label: What workflow is missing or painful today?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: proposal
|
||||
attributes:
|
||||
label: Proposed change
|
||||
description: Explain the behavior you want and any relevant CLI, UI, or provider details.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: alternatives
|
||||
attributes:
|
||||
label: Alternatives considered
|
||||
description: If you have a workaround or competing approach, include it here.
|
||||
- type: textarea
|
||||
id: extra
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Links to related issues, code references, or benchmarks.
|
||||
@@ -0,0 +1,15 @@
|
||||
## Summary
|
||||
|
||||
- What problem does this PR solve?
|
||||
- What changed?
|
||||
|
||||
## Validation
|
||||
|
||||
- [ ] `uv run ruff check src tests scripts`
|
||||
- [ ] `uv run pytest -q`
|
||||
- [ ] `cd frontend/terminal && npx tsc --noEmit` (if frontend touched)
|
||||
|
||||
## Notes
|
||||
|
||||
- Related issue:
|
||||
- Follow-up work:
|
||||
@@ -0,0 +1,59 @@
|
||||
name: Autopilot Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- "docs/autopilot/**"
|
||||
- "autopilot-dashboard/**"
|
||||
- ".github/workflows/autopilot-pages.yml"
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
concurrency:
|
||||
group: autopilot-pages
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "20"
|
||||
cache: "npm"
|
||||
cache-dependency-path: autopilot-dashboard/package-lock.json
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: autopilot-dashboard
|
||||
run: npm ci
|
||||
|
||||
- name: Build dashboard
|
||||
working-directory: autopilot-dashboard
|
||||
run: npm run build
|
||||
|
||||
- name: Configure Pages
|
||||
uses: actions/configure-pages@v5
|
||||
with:
|
||||
enablement: true
|
||||
|
||||
- name: Upload autopilot dashboard artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: docs/autopilot
|
||||
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
||||
@@ -0,0 +1,53 @@
|
||||
name: Autopilot Run Next
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 */2 * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
concurrency:
|
||||
group: autopilot-run-next
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
run-next:
|
||||
runs-on: self-hosted
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
clean: false
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.11"
|
||||
|
||||
- name: Set up uv
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
|
||||
- name: Install dependencies
|
||||
run: uv sync --extra dev
|
||||
|
||||
- name: Execute autopilot tick
|
||||
run: uv run python -m openharness autopilot tick --cwd "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Export dashboard
|
||||
run: uv run python -m openharness autopilot export-dashboard --cwd "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Commit dashboard updates
|
||||
run: |
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
git add docs/autopilot
|
||||
git diff --cached --quiet && exit 0
|
||||
git commit -m "autopilot: refresh dashboard after run"
|
||||
git push
|
||||
@@ -0,0 +1,53 @@
|
||||
name: Autopilot Scan
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "*/30 * * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
concurrency:
|
||||
group: autopilot-scan
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
scan:
|
||||
runs-on: self-hosted
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
clean: false
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.11"
|
||||
|
||||
- name: Set up uv
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
|
||||
- name: Install dependencies
|
||||
run: uv sync --extra dev
|
||||
|
||||
- name: Scan autopilot intake
|
||||
run: uv run python -m openharness autopilot scan all --cwd "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Export dashboard
|
||||
run: uv run python -m openharness autopilot export-dashboard --cwd "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Commit dashboard updates
|
||||
run: |
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
git add docs/autopilot
|
||||
git diff --cached --quiet && exit 0
|
||||
git commit -m "autopilot: refresh dashboard after scan"
|
||||
git push
|
||||
@@ -0,0 +1,83 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
python-tests:
|
||||
name: Python tests (${{ matrix.python-version }})
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
python-version:
|
||||
- "3.10"
|
||||
- "3.11"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
|
||||
- name: Set up uv
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
|
||||
- name: Install dependencies
|
||||
run: uv sync --extra dev
|
||||
|
||||
- name: Run test suite
|
||||
run: uv run pytest -q
|
||||
|
||||
python-quality:
|
||||
name: Python quality
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.11"
|
||||
|
||||
- name: Set up uv
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
|
||||
- name: Install dependencies
|
||||
run: uv sync --extra dev
|
||||
|
||||
- name: Ruff
|
||||
run: uv run ruff check src tests scripts
|
||||
|
||||
frontend-typecheck:
|
||||
name: Frontend typecheck
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: frontend/terminal
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "20"
|
||||
cache: npm
|
||||
cache-dependency-path: frontend/terminal/package-lock.json
|
||||
|
||||
- name: Install frontend dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: TypeScript check
|
||||
run: npx tsc --noEmit
|
||||
Reference in New Issue
Block a user