Skip to content

Commit d4c7565

Browse files
kwschulzclaude
andcommitted
feat: v0.2.0 - CLI overhaul and Codecov integration
BREAKING CHANGES: - Rename CLI command: `device` → `get` - Raw HAR files deleted by default after sanitization (use --keep-raw to retain) Features: - Add --keep-raw flag to preserve unsanitized HAR files - Generalize CLI for any URL/hostname (not just devices) Docs: - Rewrite Quick Start with platform-specific tabs (Windows/macOS/Linux) - Add DevTools to comparison table, acknowledge Chrome v130+ sanitization - Remove Modules section (API docs belong in code) CI: - Add GitHub Actions workflow with Codecov integration Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 2fd52d0 commit d4c7565

8 files changed

Lines changed: 139 additions & 308 deletions

File tree

.github/workflows/ci.yml

Lines changed: 10 additions & 156 deletions
Original file line numberDiff line numberDiff line change
@@ -5,82 +5,13 @@ on:
55
branches: [main]
66
pull_request:
77
branches: [main]
8-
workflow_dispatch:
9-
10-
concurrency:
11-
group: ${{ github.workflow }}-${{ github.ref }}
12-
cancel-in-progress: true
13-
14-
env:
15-
PYTHON_VERSION: "3.10"
16-
FORCE_COLOR: "1"
178

189
jobs:
19-
# ===========================================================================
20-
# Linting & Formatting
21-
# ===========================================================================
22-
lint:
23-
name: Lint & Format
24-
runs-on: ubuntu-latest
25-
steps:
26-
- uses: actions/checkout@v4
27-
28-
- name: Set up Python
29-
uses: actions/setup-python@v5
30-
with:
31-
python-version: ${{ env.PYTHON_VERSION }}
32-
33-
- name: Install ruff
34-
run: pip install ruff
35-
36-
- name: Run ruff linter
37-
run: ruff check .
38-
39-
- name: Run ruff formatter
40-
run: ruff format --check .
41-
42-
# ===========================================================================
43-
# Type Checking
44-
# ===========================================================================
45-
typecheck:
46-
name: Type Check
47-
runs-on: ubuntu-latest
48-
steps:
49-
- uses: actions/checkout@v4
50-
51-
- name: Set up Python
52-
uses: actions/setup-python@v5
53-
with:
54-
python-version: ${{ env.PYTHON_VERSION }}
55-
56-
- name: Install dependencies
57-
run: |
58-
pip install -e ".[dev,cli]"
59-
60-
- name: Run mypy
61-
run: mypy src/
62-
63-
# ===========================================================================
64-
# Tests
65-
# ===========================================================================
6610
test:
67-
name: Test (Python ${{ matrix.python-version }}, ${{ matrix.os }})
68-
runs-on: ${{ matrix.os }}
11+
runs-on: ubuntu-latest
6912
strategy:
70-
fail-fast: false
7113
matrix:
72-
os: [ubuntu-latest, macos-latest, windows-latest]
73-
python-version: ["3.10", "3.11", "3.12", "3.13"]
74-
exclude:
75-
# Reduce matrix size - test oldest and newest on all platforms
76-
- os: macos-latest
77-
python-version: "3.11"
78-
- os: macos-latest
79-
python-version: "3.12"
80-
- os: windows-latest
81-
python-version: "3.11"
82-
- os: windows-latest
83-
python-version: "3.12"
14+
python-version: ["3.10", "3.11", "3.12"]
8415

8516
steps:
8617
- uses: actions/checkout@v4
@@ -92,96 +23,19 @@ jobs:
9223

9324
- name: Install dependencies
9425
run: |
26+
python -m pip install --upgrade pip
9527
pip install -e ".[dev,cli]"
9628
29+
- name: Lint with ruff
30+
run: ruff check .
31+
9732
- name: Run tests with coverage
98-
run: |
99-
pytest --cov=har_capture --cov-report=xml --cov-report=term-missing
33+
run: pytest --cov=har_capture --cov-report=xml
10034

10135
- name: Upload coverage to Codecov
102-
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10'
103-
uses: codecov/codecov-action@v4
36+
if: matrix.python-version == '3.12'
37+
uses: codecov/codecov-action@v5
10438
with:
39+
token: ${{ secrets.CODECOV_TOKEN }}
10540
files: ./coverage.xml
10641
fail_ci_if_error: false
107-
verbose: true
108-
109-
# ===========================================================================
110-
# Security
111-
# ===========================================================================
112-
security:
113-
name: Security Scan
114-
runs-on: ubuntu-latest
115-
steps:
116-
- uses: actions/checkout@v4
117-
118-
- name: Set up Python
119-
uses: actions/setup-python@v5
120-
with:
121-
python-version: ${{ env.PYTHON_VERSION }}
122-
123-
- name: Install dependencies
124-
run: |
125-
pip install pip-audit
126-
127-
- name: Run pip-audit
128-
run: |
129-
pip install -e ".[full]"
130-
pip-audit
131-
132-
# ===========================================================================
133-
# Build
134-
# ===========================================================================
135-
build:
136-
name: Build Package
137-
runs-on: ubuntu-latest
138-
steps:
139-
- uses: actions/checkout@v4
140-
141-
- name: Set up Python
142-
uses: actions/setup-python@v5
143-
with:
144-
python-version: ${{ env.PYTHON_VERSION }}
145-
146-
- name: Install build tools
147-
run: pip install build twine
148-
149-
- name: Build package
150-
run: python -m build
151-
152-
- name: Check package
153-
run: twine check dist/*
154-
155-
- name: Upload artifacts
156-
uses: actions/upload-artifact@v4
157-
with:
158-
name: dist
159-
path: dist/
160-
161-
# ===========================================================================
162-
# Docs
163-
# ===========================================================================
164-
docs:
165-
name: Documentation
166-
runs-on: ubuntu-latest
167-
steps:
168-
- uses: actions/checkout@v4
169-
170-
- name: Check README renders
171-
run: |
172-
pip install "readme-renderer[md]"
173-
python -m readme_renderer README.md -o /dev/null
174-
175-
# ===========================================================================
176-
# All Checks Pass
177-
# ===========================================================================
178-
all-checks:
179-
name: All Checks Pass
180-
if: always()
181-
needs: [lint, typecheck, test, security, build, docs]
182-
runs-on: ubuntu-latest
183-
steps:
184-
- name: Check all jobs passed
185-
uses: re-actors/alls-green@release/v1
186-
with:
187-
jobs: ${{ toJSON(needs) }}

0 commit comments

Comments
 (0)