Skip to content

Commit 4816c74

Browse files
committed
chore: update .gitignore to include local Claude Code settings
Added entries to ignore local configuration files for Claude Code while keeping shared project settings in version control.
1 parent 4f35e4c commit 4816c74

3 files changed

Lines changed: 94 additions & 2 deletions

File tree

.github/workflows/odds-kenpom.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Odds pipeline - KenPom metrics (daily)
2+
3+
permissions: read-all
4+
5+
on:
6+
workflow_dispatch:
7+
schedule:
8+
- cron: "40 9 * * *"
9+
10+
jobs:
11+
kenpom:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Check out repository
15+
uses: actions/checkout@v4
16+
17+
- name: Set up uv
18+
uses: astral-sh/setup-uv@v3
19+
20+
- name: Init schema (idempotent)
21+
env:
22+
DATABASE_URL: ${{ secrets.DATABASE_URL }}
23+
working-directory: odds
24+
run: uv run python -m odds_pipeline schema
25+
26+
- name: Collect KenPom ratings
27+
env:
28+
DATABASE_URL: ${{ secrets.DATABASE_URL }}
29+
KENPOM_EMAIL: ${{ secrets.KENPOM_EMAIL }}
30+
KENPOM_PASSWORD: ${{ secrets.KENPOM_PASSWORD }}
31+
working-directory: odds
32+
run: uv run python -m odds_pipeline collect-kenpom --season 2026 --metric-type pomeroy_ratings
33+
34+
- name: Collect KenPom efficiency
35+
env:
36+
DATABASE_URL: ${{ secrets.DATABASE_URL }}
37+
KENPOM_EMAIL: ${{ secrets.KENPOM_EMAIL }}
38+
KENPOM_PASSWORD: ${{ secrets.KENPOM_PASSWORD }}
39+
working-directory: odds
40+
run: uv run python -m odds_pipeline collect-kenpom --season 2026 --metric-type efficiency
41+
42+
- name: Collect KenPom four factors
43+
env:
44+
DATABASE_URL: ${{ secrets.DATABASE_URL }}
45+
KENPOM_EMAIL: ${{ secrets.KENPOM_EMAIL }}
46+
KENPOM_PASSWORD: ${{ secrets.KENPOM_PASSWORD }}
47+
working-directory: odds
48+
run: uv run python -m odds_pipeline collect-kenpom --season 2026 --metric-type four_factors
49+

.gitignore

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,5 +150,7 @@ log.txt
150150

151151
.DS_Store
152152

153-
# Claude Code local config
154-
.claude/
153+
# Claude Code config
154+
# Keep shared Claude Code project config in git, but ignore local-only files.
155+
.claude/settings.local.json
156+
.claude/agent-memory-local/

odds/README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Odds pipeline (Postgres + GitHub Actions)
2+
3+
This folder contains a minimal, repo-local odds data pipeline designed for:
4+
- **rolling 5-day freshness windows**
5+
- strict **canonical normalization** (spreads/totals/moneylines)
6+
- scheduled orchestration via **GitHub Actions**
7+
8+
## Required secrets / env vars
9+
10+
- `DATABASE_URL` (required): Postgres connection string (persistent store).
11+
- `ODDS_API_KEY` (collector key; required once collectors are enabled).
12+
- `KENPOM_EMAIL` / `KENPOM_PASSWORD` (required for KenPom scraping via kenpompy).
13+
14+
Optional:
15+
- `WINDOW_DAYS` (default 5)
16+
- `ODDS_STALE_MINUTES` (default 180)
17+
- `SCORES_STALE_HOURS` (default 24)
18+
19+
## Additional sources
20+
21+
- **ESPN**: schedules + historical scores via the public scoreboard endpoint (stored in `raw_games_snapshots`).
22+
- **Action Network**: best-effort HTML scrape from `actionnetwork.com` to supplement game IDs/links (stored in `raw_games_snapshots`).
23+
- **KenPom**: team metrics scraped via `kenpompy` (stored in `raw_kenpom_team_metrics`).
24+
25+
## Initialize schema
26+
27+
From repo root, using **pip**:
28+
29+
```bash
30+
python -m pip install -e odds
31+
python -m odds_pipeline.schema
32+
```
33+
34+
Or with **uv**:
35+
36+
```bash
37+
cd odds
38+
uv sync
39+
uv run python -m odds_pipeline.schema
40+
```
41+

0 commit comments

Comments
 (0)