gitglimpse 0.1.2__tar.gz → 0.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gitglimpse-0.1.4/PKG-INFO +391 -0
- gitglimpse-0.1.4/README.md +366 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/pyproject.toml +3 -2
- gitglimpse-0.1.4/src/gitglimpse/__init__.py +1 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/cli.py +348 -237
- gitglimpse-0.1.4/src/gitglimpse/commands/pr.md +39 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/commands/report.md +4 -2
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/commands/standup.md +5 -3
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/commands/week.md +4 -2
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/config.py +1 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/estimation.py +1 -1
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/formatters/json.py +3 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/formatters/markdown.py +6 -1
- gitglimpse-0.1.4/src/gitglimpse/formatters/pr.py +162 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/formatters/template.py +7 -4
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/git.py +83 -5
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/grouping.py +107 -2
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/providers/base.py +75 -3
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/providers/claude.py +4 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/providers/gemini.py +4 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/providers/local.py +11 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/providers/openai.py +4 -0
- gitglimpse-0.1.2/PKG-INFO +0 -23
- gitglimpse-0.1.2/src/gitglimpse/__init__.py +0 -1
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/.gitignore +0 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/LICENSE +0 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/commands/__init__.py +0 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/formatters/__init__.py +0 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/onboarding.py +0 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/providers/__init__.py +0 -0
- {gitglimpse-0.1.2 → gitglimpse-0.1.4}/src/gitglimpse/py.typed +0 -0
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gitglimpse
|
|
3
|
+
Version: 0.1.4
|
|
4
|
+
Summary: Extract structured context from your git history — PR descriptions, standups, weekly reports, and LLM-ready JSON.
|
|
5
|
+
Project-URL: Homepage, https://github.com/dino/gitglimpse
|
|
6
|
+
Project-URL: Repository, https://github.com/dino/gitglimpse
|
|
7
|
+
Project-URL: Bug Tracker, https://github.com/dino/gitglimpse/issues
|
|
8
|
+
Author: Dino
|
|
9
|
+
License: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: cli,developer-tools,git,standup
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Requires-Python: >=3.11
|
|
17
|
+
Requires-Dist: inquirerpy>=0.3.4
|
|
18
|
+
Requires-Dist: platformdirs>=4.0
|
|
19
|
+
Requires-Dist: rich>=13.0
|
|
20
|
+
Requires-Dist: tomli-w>=1.2
|
|
21
|
+
Requires-Dist: typer[all]>=0.9.0
|
|
22
|
+
Provides-Extra: llm
|
|
23
|
+
Requires-Dist: httpx>=0.27; extra == 'llm'
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
|
|
26
|
+
<div align="center">
|
|
27
|
+
|
|
28
|
+
<img src="docs/gitglimpse.png" alt="gitglimpse" width="120">
|
|
29
|
+
|
|
30
|
+
# gitglimpse
|
|
31
|
+
|
|
32
|
+
**Extract structured context from your git history. Standups, PR descriptions, weekly reports, and LLM-ready JSON — from one command.**
|
|
33
|
+
|
|
34
|
+
50KB of raw diffs → 1KB of structured signal. Less noise, fewer tokens, better output.
|
|
35
|
+
|
|
36
|
+
[](https://python.org)
|
|
37
|
+
[](LICENSE)
|
|
38
|
+
[](CONTRIBUTING.md)
|
|
39
|
+
|
|
40
|
+
<br>
|
|
41
|
+
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Why gitglimpse?
|
|
47
|
+
|
|
48
|
+
Modern development (especially with AI) creates **more changes across more files than ever**.
|
|
49
|
+
|
|
50
|
+
Git tracks *what changed* — but not in a way that's easy to understand quickly.
|
|
51
|
+
|
|
52
|
+
gitglimpse bridges that gap.
|
|
53
|
+
|
|
54
|
+
It turns raw git history into:
|
|
55
|
+
|
|
56
|
+
- 🧠 **Structured context (JSON)** for LLMs and tools
|
|
57
|
+
- 📝 **Standups & reports** for humans
|
|
58
|
+
- 🔍 **Clean summaries** without opening diffs or PRs
|
|
59
|
+
|
|
60
|
+
> Think of it as a **context extraction layer for your codebase**.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## ✨ Demo
|
|
65
|
+
|
|
66
|
+
<!-- TODO: Replace with real GIF -->
|
|
67
|
+

|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Quick Start
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
pip install gitglimpse
|
|
75
|
+
cd your-project
|
|
76
|
+
glimpse standup
|
|
77
|
+
````
|
|
78
|
+
|
|
79
|
+
That’s it. No API keys, no setup required.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Core Idea
|
|
84
|
+
|
|
85
|
+
gitglimpse is not just a “standup generator”.
|
|
86
|
+
|
|
87
|
+
It’s a **Git → Structured Context engine**.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
glimpse standup --json | your-llm
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Instead of dumping raw diffs into an LLM, you give it:
|
|
94
|
+
|
|
95
|
+
* grouped tasks
|
|
96
|
+
* extracted tickets
|
|
97
|
+
* filtered noise
|
|
98
|
+
* optional diffs
|
|
99
|
+
* structured JSON
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 🚀 Commands
|
|
104
|
+
|
|
105
|
+
### `glimpse pr`
|
|
106
|
+
|
|
107
|
+
Generate PR summaries from your branch.
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
glimpse pr
|
|
111
|
+
glimpse pr --json
|
|
112
|
+
glimpse pr --base develop
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### `glimpse standup`
|
|
118
|
+
|
|
119
|
+
Generate a daily summary or structured context.
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
glimpse standup
|
|
123
|
+
glimpse standup --json
|
|
124
|
+
glimpse standup --since "3 days ago"
|
|
125
|
+
glimpse standup --format markdown
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Example:
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
Yesterday:
|
|
132
|
+
• Add rate limiting middleware (AUTH-42, ~1.5h)
|
|
133
|
+
• Fix pagination bug (BUG-87, ~1h)
|
|
134
|
+
|
|
135
|
+
Estimated effort: 2.5h
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
### `glimpse week`
|
|
141
|
+
|
|
142
|
+
Weekly breakdown grouped by day.
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
glimpse week
|
|
146
|
+
glimpse week --json
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
### `glimpse init`
|
|
152
|
+
|
|
153
|
+
Install Claude Code / Cursor slash commands.
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
glimpse init
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Then in your editor:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
/standup
|
|
163
|
+
/pr
|
|
164
|
+
/week
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
### `glimpse config`
|
|
170
|
+
|
|
171
|
+
View or edit configuration.
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
glimpse config show
|
|
175
|
+
glimpse config setup
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## 🧩 Output Modes
|
|
181
|
+
|
|
182
|
+
| Mode | Description |
|
|
183
|
+
| ------------- | ------------------------------- |
|
|
184
|
+
| **Template** | Fast, deterministic, no LLM |
|
|
185
|
+
| **Local LLM** | Uses Ollama (privacy-first) |
|
|
186
|
+
| **Cloud API** | OpenAI / Anthropic / Gemini |
|
|
187
|
+
| **JSON** | Structured output for pipelines |
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 🔥 What Makes It Different
|
|
192
|
+
|
|
193
|
+
### 1. Noise Filtering (by default)
|
|
194
|
+
|
|
195
|
+
Removes:
|
|
196
|
+
|
|
197
|
+
* merge commits
|
|
198
|
+
* lock files
|
|
199
|
+
* formatting changes
|
|
200
|
+
|
|
201
|
+
So you only see meaningful work.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
### 2. Task Grouping
|
|
206
|
+
|
|
207
|
+
Commits → grouped into **real tasks**:
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
3 commits → 1 task
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
### 3. Ticket Extraction
|
|
216
|
+
|
|
217
|
+
Automatically parses:
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
feature/AUTH-42-login → AUTH-42
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
### 4. Works Without LLMs
|
|
226
|
+
|
|
227
|
+
No AI required.
|
|
228
|
+
|
|
229
|
+
* Good commits → good summaries
|
|
230
|
+
* Bad commits → fallback heuristics
|
|
231
|
+
* LLM → optional enhancement
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
### 5. Built for LLM Workflows
|
|
236
|
+
|
|
237
|
+
Instead of:
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
git diff | llm
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
You do:
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
glimpse standup --json | llm
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Cleaner input → better output.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## 🤖 Claude Code Integration
|
|
254
|
+
|
|
255
|
+
<!-- TODO: Add GIF showing /standup usage -->
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
glimpse init
|
|
259
|
+
git add .claude/commands/
|
|
260
|
+
git commit -m "add glimpse commands"
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
Now every dev on your team gets:
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
/standup
|
|
267
|
+
/pr
|
|
268
|
+
/week
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
📌 The repo becomes the distribution channel.
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## GitHub Action
|
|
276
|
+
|
|
277
|
+
Add automatic PR context to your repository:
|
|
278
|
+
|
|
279
|
+
```yaml
|
|
280
|
+
- uses: dino-zecevic/gitglimpse@main
|
|
281
|
+
with:
|
|
282
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Every pull request gets a structured summary with changes, ticket IDs, and effort estimates. The comment updates on each push.
|
|
286
|
+
|
|
287
|
+
See [action/README.md](action/README.md) for full configuration options.
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## 🧠 Multi-Project Mode
|
|
292
|
+
|
|
293
|
+
Run from a parent folder:
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
cd ~/projects
|
|
297
|
+
glimpse standup
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
gitglimpse will:
|
|
301
|
+
|
|
302
|
+
* detect repos automatically
|
|
303
|
+
* merge timelines
|
|
304
|
+
* group by project or task
|
|
305
|
+
|
|
306
|
+
<!-- TODO: Add multi-project GIF -->
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## ⚙️ Configuration
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
glimpse config setup
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Stored in:
|
|
317
|
+
|
|
318
|
+
```
|
|
319
|
+
~/.config/gitglimpse/config.toml
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
Supports:
|
|
323
|
+
|
|
324
|
+
* local models (Ollama)
|
|
325
|
+
* cloud APIs
|
|
326
|
+
* context modes (`commits`, `diffs`, `both`)
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Philosophy
|
|
331
|
+
|
|
332
|
+
* **Privacy-first** — works fully offline
|
|
333
|
+
* **LLM-optional** — useful without AI
|
|
334
|
+
* **Developer-first** — not a manager tool
|
|
335
|
+
* **Composable** — JSON output for pipelines
|
|
336
|
+
* **Honest** — no fake precision (effort is approximate)
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## When It’s Actually Useful
|
|
341
|
+
|
|
342
|
+
* Weekly summaries across repos
|
|
343
|
+
* PR descriptions
|
|
344
|
+
* Feeding context into coding agents
|
|
345
|
+
* Remembering what you did yesterday
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## ⚠️ Limitations
|
|
350
|
+
|
|
351
|
+
* Only sees **code changes** (not meetings, docs, etc.)
|
|
352
|
+
* Effort estimation is **heuristic, not accurate**
|
|
353
|
+
* Depends on git history quality
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Installation
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
pip install gitglimpse
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
Requirements:
|
|
364
|
+
|
|
365
|
+
* Python 3.11+
|
|
366
|
+
* git
|
|
367
|
+
* (optional) Ollama or API key
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## Contributing
|
|
372
|
+
|
|
373
|
+
PRs welcome — especially for:
|
|
374
|
+
|
|
375
|
+
* better effort estimation
|
|
376
|
+
* smarter task grouping
|
|
377
|
+
* improved noise filtering
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## License
|
|
382
|
+
|
|
383
|
+
MIT
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
<div align="center">
|
|
388
|
+
|
|
389
|
+
Built by Dino
|
|
390
|
+
|
|
391
|
+
</div>
|