Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
9c2d96c
Initial plan
Copilot Mar 3, 2026
ecc8491
Add GitHub Pages, MCP server, quick-start README, and AI skills
Copilot Mar 3, 2026
d78f742
Add getting-started doc, GitLab CI, ArgoCD, Flux, and SRE scaffold ge…
Copilot Mar 3, 2026
875f20b
Add Python venv setup instructions to all install docs and .gitignore…
Copilot Mar 4, 2026
c53e21c
Update cli/scaffold_sre.py
chefgs Mar 4, 2026
dc26575
Update skills/README.md
chefgs Mar 4, 2026
38629d2
Update mcp_server/README.md
chefgs Mar 4, 2026
5764362
Update cli/test_cli.py
chefgs Mar 4, 2026
9be17ea
Update cli/scaffold_gitlab.py
chefgs Mar 4, 2026
5ba11be
Fix deploy job to use method-appropriate Docker image in scaffold_git…
Copilot Mar 4, 2026
bbaa06e
Update cli/scaffold_sre.py
chefgs Mar 4, 2026
0501e25
Update cli/scaffold_sre.py
chefgs Mar 4, 2026
78e1f5d
Make wildcard sourceRepos an explicit opt-in flag in scaffold_argocd.py
Copilot Mar 4, 2026
015f7d0
Update cli/scaffold_gitlab.py
chefgs Mar 4, 2026
349f62a
Update cli/scaffold_gitlab.py
chefgs Mar 4, 2026
0c4d301
Fix kubernetes_tools default to use tools actually present in all_k8s
Copilot Mar 4, 2026
e15b61f
Pin docs/GITLAB-CI-README.md example image to bitnami/kubectl:1.29
Copilot Mar 4, 2026
e02f12b
Only set KUBE_NAMESPACE in deploy job variables when provided via --k…
Copilot Mar 4, 2026
1b2267f
Remove stale write/readback comment from generate_jenkins_pipeline in…
Copilot Mar 4, 2026
1cea5c3
Update mcp_server/test_server.py
chefgs Mar 4, 2026
61d66a4
Update cli/scaffold_gitlab.py
chefgs Mar 4, 2026
3c8c905
Update cli/scaffold_gitlab.py
chefgs Mar 4, 2026
a000ff7
Fix skills/README.md code injection risk and remove unused --custom-v…
Copilot Mar 4, 2026
c05ddf4
Add comprehensive test suite covering CLI, MCP server, and skills wit…
Copilot Mar 4, 2026
d3413ba
Update bug-documenting tests to use pytest.xfail for proper lifecycle…
Copilot Mar 4, 2026
18e54bd
Initial plan: create test reports and CLI output screenshots
Copilot Mar 4, 2026
1b2bd9b
Add CLI output examples doc and pytest HTML test report to docs/test-…
Copilot Mar 4, 2026
814a361
Add docs/TEST_REPORT.md and test-summary-chart.png with full CLI outp…
Copilot Mar 4, 2026
c3d99cd
Update root README: add Testing section with report links, refresh Re…
Copilot Mar 4, 2026
3f5e3ce
Add .github/workflows/sanity.yml: sanity tests for all scenarios with…
Copilot Mar 4, 2026
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
32 changes: 32 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: CI

on:
push:
branches: [main, "copilot/**"]
pull_request:
branches: [main]

permissions:
contents: read

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

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

- name: Install dependencies
run: |
pip install -r cli/requirements.txt pytest
pip install -r mcp_server/requirements.txt

- name: Run CLI tests
run: pytest cli/test_cli.py -v

- name: Run MCP server tests
run: pytest mcp_server/test_server.py -v
46 changes: 46 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Deploy GitHub Pages

on:
push:
branches:
- main
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Pages
uses: actions/configure-pages@v5

- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site

- name: Upload artifact
uses: actions/upload-pages-artifact@v3

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
97 changes: 97 additions & 0 deletions .github/workflows/sanity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Sanity Tests — All Scenarios

# Run on every push and on PRs targeting main so every branch gets feedback.
on:
push:
branches: ["**"]
pull_request:
branches: [main]

permissions:
contents: read

jobs:
sanity:
name: Sanity Tests
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

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

- name: Install dependencies
run: |
pip install -r cli/requirements.txt -r mcp_server/requirements.txt pytest pytest-html

# ── CLI scaffold scenarios ─────────────────────────────────────────────

- name: "Scenario: GitHub Actions scaffold"
run: pytest tests/test_comprehensive.py::TestScaffoldGHA -v

- name: "Scenario: Jenkins scaffold"
run: pytest tests/test_comprehensive.py::TestScaffoldJenkins -v

- name: "Scenario: GitLab CI scaffold"
run: pytest tests/test_comprehensive.py::TestScaffoldGitlabExtended -v

- name: "Scenario: ArgoCD / Flux GitOps scaffold"
run: pytest tests/test_comprehensive.py::TestScaffoldArgoCDExtended -v

- name: "Scenario: SRE config scaffold (Prometheus, Grafana, SLO)"
run: pytest tests/test_comprehensive.py::TestScaffoldSREExtended -v

# ── MCP server tool scenarios ──────────────────────────────────────────

- name: "Scenario: MCP server — GitHub Actions tool"
run: pytest tests/test_comprehensive.py::TestMCPServerGHA -v

- name: "Scenario: MCP server — Jenkins tool"
run: pytest tests/test_comprehensive.py::TestMCPServerJenkins -v

- name: "Scenario: MCP server — Kubernetes tool"
run: pytest tests/test_comprehensive.py::TestMCPServerK8s -v

- name: "Scenario: MCP server — GitLab CI tool"
run: pytest tests/test_comprehensive.py::TestMCPServerGitLab -v

- name: "Scenario: MCP server — ArgoCD / Flux tool"
run: pytest tests/test_comprehensive.py::TestMCPServerArgoCD -v

- name: "Scenario: MCP server — SRE tool"
run: pytest tests/test_comprehensive.py::TestMCPServerSRE -v

- name: "Scenario: MCP server — Dev container tool"
run: pytest tests/test_comprehensive.py::TestMCPServerDevcontainer -v

# ── AI skills definitions ──────────────────────────────────────────────

- name: "Scenario: AI skills definitions (OpenAI & Claude)"
run: pytest tests/test_comprehensive.py::TestSkillsDefinitions -v

# ── CLI and MCP server unit tests ─────────────────────────────────────

- name: "Scenario: CLI integration tests (devopsos unified CLI)"
run: pytest cli/test_cli.py -v

- name: "Scenario: MCP server unit tests"
run: pytest mcp_server/test_server.py -v

# ── Combined report artifact ───────────────────────────────────────────

- name: Generate combined HTML report
if: always()
run: |
pytest cli/test_cli.py mcp_server/test_server.py tests/test_comprehensive.py \
--html=sanity-report.html --self-contained-html -q

- name: Upload sanity test report
if: always()
uses: actions/upload-artifact@v4
with:
name: sanity-test-report
path: sanity-report.html
retention-days: 30
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
__pycache__/
*.py[cod]
*.pyo
.pytest_cache/
*.egg-info/
dist/
build/
.env
*.log
_site/
.jekyll-cache/
.venv/
venv/
docs/test-report.html
Loading