gitradar 0.1.5__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.
Files changed (56) hide show
  1. gitradar-0.1.5/LICENSE +21 -0
  2. gitradar-0.1.5/PKG-INFO +251 -0
  3. gitradar-0.1.5/README.md +228 -0
  4. gitradar-0.1.5/demo/api/index.py +14 -0
  5. gitradar-0.1.5/demo/gitradar/__init__.py +22 -0
  6. gitradar-0.1.5/demo/gitradar/cli.py +214 -0
  7. gitradar-0.1.5/demo/gitradar/config.py +117 -0
  8. gitradar-0.1.5/demo/gitradar/models.py +67 -0
  9. gitradar-0.1.5/demo/gitradar/prompts/__init__.py +18 -0
  10. gitradar-0.1.5/demo/gitradar/services/github.py +179 -0
  11. gitradar-0.1.5/demo/gitradar/services/llm.py +342 -0
  12. gitradar-0.1.5/demo/gitradar/utils/ui.py +196 -0
  13. gitradar-0.1.5/demo/gitradar/web/__init__.py +7 -0
  14. gitradar-0.1.5/demo/gitradar/web/app.py +173 -0
  15. gitradar-0.1.5/examples/python_sdk_usage.py +48 -0
  16. gitradar-0.1.5/gitradar/__init__.py +22 -0
  17. gitradar-0.1.5/gitradar/cli.py +214 -0
  18. gitradar-0.1.5/gitradar/config.py +117 -0
  19. gitradar-0.1.5/gitradar/models.py +67 -0
  20. gitradar-0.1.5/gitradar/prompts/__init__.py +18 -0
  21. gitradar-0.1.5/gitradar/prompts/gap_analysis_system.j2 +36 -0
  22. gitradar-0.1.5/gitradar/prompts/gap_analysis_user.j2 +21 -0
  23. gitradar-0.1.5/gitradar/prompts/query_expansion_system.j2 +19 -0
  24. gitradar-0.1.5/gitradar/prompts/query_expansion_user.j2 +1 -0
  25. gitradar-0.1.5/gitradar/prompts/relevance_evaluation_system.j2 +22 -0
  26. gitradar-0.1.5/gitradar/prompts/relevance_evaluation_user.j2 +14 -0
  27. gitradar-0.1.5/gitradar/services/github.py +179 -0
  28. gitradar-0.1.5/gitradar/services/llm.py +342 -0
  29. gitradar-0.1.5/gitradar/utils/ui.py +196 -0
  30. gitradar-0.1.5/gitradar/web/__init__.py +7 -0
  31. gitradar-0.1.5/gitradar/web/app.py +173 -0
  32. gitradar-0.1.5/gitradar/web/static/apple-touch-icon.png +0 -0
  33. gitradar-0.1.5/gitradar/web/static/css/style.css +1430 -0
  34. gitradar-0.1.5/gitradar/web/static/favicon-96x96.png +0 -0
  35. gitradar-0.1.5/gitradar/web/static/favicon.ico +0 -0
  36. gitradar-0.1.5/gitradar/web/static/favicon.svg +1 -0
  37. gitradar-0.1.5/gitradar/web/static/js/app.js +1206 -0
  38. gitradar-0.1.5/gitradar/web/static/site.webmanifest +21 -0
  39. gitradar-0.1.5/gitradar/web/static/web-app-manifest-192x192.png +0 -0
  40. gitradar-0.1.5/gitradar/web/static/web-app-manifest-512x512.png +0 -0
  41. gitradar-0.1.5/gitradar/web/templates/index.html +521 -0
  42. gitradar-0.1.5/gitradar.egg-info/PKG-INFO +251 -0
  43. gitradar-0.1.5/gitradar.egg-info/SOURCES.txt +54 -0
  44. gitradar-0.1.5/gitradar.egg-info/dependency_links.txt +1 -0
  45. gitradar-0.1.5/gitradar.egg-info/entry_points.txt +2 -0
  46. gitradar-0.1.5/gitradar.egg-info/requires.txt +14 -0
  47. gitradar-0.1.5/gitradar.egg-info/top_level.txt +6 -0
  48. gitradar-0.1.5/pyproject.toml +40 -0
  49. gitradar-0.1.5/setup.cfg +4 -0
  50. gitradar-0.1.5/tests/conftest.py +27 -0
  51. gitradar-0.1.5/tests/test_cli.py +29 -0
  52. gitradar-0.1.5/tests/test_llm.py +163 -0
  53. gitradar-0.1.5/tests/test_models.py +90 -0
  54. gitradar-0.1.5/tests/test_prompts.py +58 -0
  55. gitradar-0.1.5/tests/test_relevance.py +75 -0
  56. gitradar-0.1.5/tests/test_web.py +81 -0
gitradar-0.1.5/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 GitRadar Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO берез, INCLUDING BUT NOT LIMITED TO THE
17
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
19
+ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
21
+ THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,251 @@
1
+ Metadata-Version: 2.4
2
+ Name: gitradar
3
+ Version: 0.1.5
4
+ Summary: CLI tool for GitHub market & gap analysis using LLM and GitHub REST API
5
+ Author-email: GitRadar Developer <developer@example.com>
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: typer[all]>=0.9.0
10
+ Requires-Dist: rich>=13.0.0
11
+ Requires-Dist: openai>=1.0.0
12
+ Requires-Dist: httpx>=0.25.0
13
+ Requires-Dist: pydantic>=2.0.0
14
+ Requires-Dist: pydantic-settings>=2.0.0
15
+ Requires-Dist: python-dotenv>=1.0.0
16
+ Requires-Dist: jinja2>=3.0.0
17
+ Requires-Dist: flask>=3.0.0
18
+ Requires-Dist: typing-extensions>=4.0.0
19
+ Provides-Extra: dev
20
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
21
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
22
+ Dynamic: license-file
23
+
24
+ # 📡 GitRadar
25
+
26
+ <p align="center">
27
+ <img src="./assets/gitradar-banner.jpg" alt="GitRadar Banner" width="850"/>
28
+ </p>
29
+
30
+ <p align="center">
31
+ <b>Smart GitHub Market & Gap Analysis Tool Driven by AI & GitHub REST API</b><br>
32
+ <i>Validate your developer project ideas in seconds — via Rich Terminal CLI, Interactive Web Dashboard, or 1-Click Vercel Web Demo.</i>
33
+ </p>
34
+
35
+ <p align="center">
36
+ <a href="https://github.com/AtaCanYmc/GitRadar/actions"><img src="https://img.shields.io/github/actions/workflow/status/AtaCanYmc/GitRadar/ci.yml?branch=main&style=flat-square&logo=github&label=CI" alt="CI Status"></a>
37
+ <a href="https://pypi.org/project/gitradar/"><img src="https://img.shields.io/pypi/v/gitradar?style=flat-square&color=blue&logo=pypi" alt="PyPI Version"></a>
38
+ <a href="https://pypi.org/project/gitradar/"><img src="https://img.shields.io/pypi/pyversions/gitradar?style=flat-square&logo=python" alt="Python Versions"></a>
39
+ <a href="./LICENSE"><img src="https://img.shields.io/github/license/AtaCanYmc/GitRadar?style=flat-square" alt="License"></a>
40
+ <a href="https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FAtaCanYmc%2FGitRadar&root-directory=demo"><img src="https://vercel.com/button" alt="Deploy with Vercel"></a>
41
+ </p>
42
+
43
+ ---
44
+
45
+ ## 💡 What is GitRadar?
46
+
47
+ **GitRadar** is an open-source AI developer tool designed for developers, creators, and founders to perform instant **Market & Gap Analysis** on software project concepts.
48
+
49
+ Before spending weeks building a new side project or open-source tool, GitRadar helps you answer critical questions:
50
+ - *What open-source repositories already exist for this concept on GitHub?*
51
+ - *What capabilities are existing repos missing (unmet market needs)?*
52
+ - *What unique differentiators will make your project stand out?*
53
+ - *How should you architect the software, what technology stack to choose, and what open-source building blocks can you leverage?*
54
+
55
+ GitRadar expands your raw idea into intelligent GitHub queries, fetches candidate repositories via the GitHub REST API, semantically analyzes competitors using direct **OpenAI-compatible AI connections** (supporting OpenAI, Groq, DeepSeek, OpenRouter, and Ollama), and renders an executive report in your terminal, local **Web Dashboard**, or hosted **Vercel Web Demo**.
56
+
57
+ ---
58
+
59
+ ## ✨ Key Features
60
+
61
+ - 🧠 **AI Query Expansion**: Translates raw developer ideas into optimized search keywords, language filters, and GitHub topic tags (`#cli`, `#ai`, `#devtools`).
62
+ - 🛠️ **Technical Implementation & Open-Source Roadmap**: Recommends architecture overviews, tech stacks, and relevant open-source libraries (`Typer`, `LiteLLM`, `Qdrant`, `Tree-sitter`, etc.) to build your idea.
63
+ - 🌐 **AI Response Language Choice**: Choose report output languages (`English`, `Turkish`, `Spanish`, `German`, `French`, etc.) via `--lang` flag or Web UI settings.
64
+ - 📥 **Web UI Report Export**: Export generated reports directly to **Markdown (`.md`)**, **JSON (`.json`)**, or **Copy to Clipboard**.
65
+ - ⚙️ **In-Browser Settings Modal**: Configure models, repository limits, AI response language, and custom Groq / GitHub API keys on the fly.
66
+ - ⚡ **1-Click Vercel Web Demo (`demo/`)**: Deploy a serverless web demo on Vercel where anyone can run GitRadar using their own API keys safely.
67
+ - 🎯 **Semantic Gap Analysis**: Synthesizes market saturation levels, competitor profiles, unmet needs, differentiators, and strategic recommendations.
68
+ - 🎨 **Rich Terminal UX & Web Dashboard**: Color-coded terminal panels via Rich, glassmorphic dark/light UI modes, EN/TR UI i18n translation switcher, and RealFaviconGenerator favicons.
69
+
70
+ ---
71
+
72
+ ## 🚀 1-Click Vercel Web Demo
73
+
74
+ Deploy your own Web Demo instance to Vercel instantly:
75
+
76
+ [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FAtaCanYmc%2FGitRadar&root-directory=demo)
77
+
78
+ ---
79
+
80
+ ## 🛠️ Quick Start & Installation
81
+
82
+ Install GitRadar from PyPI or locally:
83
+
84
+ ```bash
85
+ pip install gitradar
86
+ ```
87
+
88
+ Or install from source in editable mode:
89
+
90
+ ```bash
91
+ git clone https://github.com/AtaCanYmc/GitRadar.git
92
+ cd GitRadar
93
+ pip install -e ".[dev]"
94
+ ```
95
+
96
+ ---
97
+
98
+ ## 🔑 Configuration
99
+
100
+ GitRadar uses a universal **OpenAI-compatible connection schema** (`api_key`, `base_url`, `model`). It works out-of-the-box with **OpenAI**, **Groq**, **DeepSeek**, **OpenRouter**, or local self-hosted models (**Ollama**, **vLLM**, **LM Studio**).
101
+
102
+ 1. **Set your API Key** (OpenAI, Groq, or compatible provider):
103
+ ```bash
104
+ # Standard OpenAI
105
+ gitradar config --openai-api-key "sk-..."
106
+
107
+ # Or Groq (auto-routed to Groq OpenAI endpoint)
108
+ gitradar config --openai-api-key "gsk_..."
109
+ # Or legacy flag: gitradar config --groq-api-key "gsk_..."
110
+ ```
111
+
112
+ 2. *(Optional)* **Set a Custom Base URL** for alternative providers:
113
+ ```bash
114
+ # Groq
115
+ gitradar config --base-url "https://api.groq.com/openai/v1" --model "llama-3.3-70b-versatile"
116
+
117
+ # DeepSeek
118
+ gitradar config --base-url "https://api.deepseek.com" --model "deepseek-chat"
119
+
120
+ # Local Ollama
121
+ gitradar config --base-url "http://localhost:11434/v1" --model "llama3.2"
122
+ ```
123
+
124
+ 3. *(Optional)* **Set a GitHub Access Token** to boost API rate limits (from 60 to 5,000 requests/hour):
125
+ ```bash
126
+ gitradar config --github-token "ghp_your_github_token_here"
127
+ ```
128
+
129
+ 4. *(Optional)* **Set Default Output Language & Model**:
130
+ ```bash
131
+ gitradar config --lang Turkish --model gpt-4o-mini
132
+ ```
133
+
134
+ 5. **Inspect Active Settings**:
135
+ ```bash
136
+ gitradar config --show
137
+ ```
138
+
139
+ ---
140
+
141
+ ## 💻 CLI Commands & Usage
142
+
143
+ ### 💡 1. `gitradar analyze <IDEA>`
144
+
145
+ Executes the full end-to-end AI market and gap analysis workflow in the terminal:
146
+
147
+ ```bash
148
+ gitradar analyze "AI powered code review tool for terminal and git hooks" --lang Turkish
149
+ ```
150
+
151
+ **Options:**
152
+ - `--limit` / `-l`: Maximum repositories to evaluate (Default: `10`)
153
+ - `--min-relevance` / `-r`: Minimum relevance score threshold percentage (Default: `50`)
154
+ - `--model` / `-m`: Override AI model (e.g. `gpt-4o-mini`, `gpt-4o`, `llama-3.3-70b-versatile`, `deepseek-chat`)
155
+ - `--api-key` / `-k`: Override API Key for this run
156
+ - `--base-url` / `-u`: Override Base URL endpoint for this run
157
+ - `--lang` / `--language`: Set output language for AI report (e.g. `Turkish`, `English`, `Spanish`)
158
+
159
+ ---
160
+
161
+ ### 🌐 2. `gitradar ui`
162
+
163
+ Launches the local interactive web dashboard in your default browser:
164
+
165
+ ```bash
166
+ gitradar ui --port 5000
167
+ ```
168
+
169
+ ---
170
+
171
+ ### 🔍 3. `gitradar search <QUERY>`
172
+
173
+ Performs a fast, direct GitHub repository search without LLM synthesis:
174
+
175
+ ```bash
176
+ gitradar search "terminal devtools" --limit 5 --sort stars
177
+ ```
178
+
179
+ ---
180
+
181
+ ### ⚙️ 4. `gitradar config`
182
+
183
+ View or update credentials and preferences:
184
+
185
+ ```bash
186
+ gitradar config --show
187
+ ```
188
+
189
+ ---
190
+
191
+ ## 🐍 Python SDK Usage
192
+
193
+ Import GitRadar services directly in Python scripts:
194
+
195
+ ```python
196
+ import asyncio
197
+ from gitradar.services.github import GitHubService
198
+ from gitradar.services.llm import LLMService
199
+
200
+ async def main():
201
+ idea = "AI automated documentation generator"
202
+
203
+ github_service = GitHubService()
204
+ llm_service = LLMService(language="Turkish")
205
+
206
+ # 1. Expand idea into search keywords
207
+ queries = llm_service.expand_idea_to_queries(idea, language="Turkish")
208
+
209
+ # 2. Fetch candidate repos
210
+ repos = await github_service.search_and_enrich(
211
+ keywords=queries.search_keywords,
212
+ topics=queries.github_topics,
213
+ limit=5,
214
+ )
215
+
216
+ # 3. Synthesize Market & Gap Report with Tech Roadmap
217
+ report = llm_service.analyze_market_and_gaps(idea, repos, language="Turkish")
218
+ print("Market Saturation:", report.market_saturation)
219
+ print("Opportunity Score:", report.opportunity_score)
220
+ if report.implementation_guide:
221
+ print("Recommended Stack:", report.implementation_guide.recommended_tech_stack)
222
+
223
+ asyncio.run(main())
224
+ ```
225
+
226
+ ---
227
+
228
+ ## 🧪 Testing
229
+
230
+ Run unit and integration tests with `pytest`:
231
+
232
+ ```bash
233
+ pytest
234
+ ```
235
+
236
+ ---
237
+
238
+ ## 📚 Documentation Index
239
+
240
+ - [ARCHITECTURE.md](./ARCHITECTURE.md): Deep-dive into technical design, data models, and prompt engine.
241
+ - [demo/README.md](./demo/README.md): Step-by-step Vercel Web Demo deployment guide.
242
+ - [CONTRIBUTING.md](./CONTRIBUTING.md): PR guidelines, coding standards, and conventional commits.
243
+ - [SECURITY.md](./SECURITY.md): Security policy and vulnerability reporting.
244
+ - [CHANGELOG.md](./CHANGELOG.md): Semantic release history.
245
+ - [examples/README.md](./examples/README.md): Code samples and JSON report schemas.
246
+
247
+ ---
248
+
249
+ ## 📄 License
250
+
251
+ GitRadar is open-source software licensed under the [MIT License](./LICENSE).
@@ -0,0 +1,228 @@
1
+ # 📡 GitRadar
2
+
3
+ <p align="center">
4
+ <img src="./assets/gitradar-banner.jpg" alt="GitRadar Banner" width="850"/>
5
+ </p>
6
+
7
+ <p align="center">
8
+ <b>Smart GitHub Market & Gap Analysis Tool Driven by AI & GitHub REST API</b><br>
9
+ <i>Validate your developer project ideas in seconds — via Rich Terminal CLI, Interactive Web Dashboard, or 1-Click Vercel Web Demo.</i>
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="https://github.com/AtaCanYmc/GitRadar/actions"><img src="https://img.shields.io/github/actions/workflow/status/AtaCanYmc/GitRadar/ci.yml?branch=main&style=flat-square&logo=github&label=CI" alt="CI Status"></a>
14
+ <a href="https://pypi.org/project/gitradar/"><img src="https://img.shields.io/pypi/v/gitradar?style=flat-square&color=blue&logo=pypi" alt="PyPI Version"></a>
15
+ <a href="https://pypi.org/project/gitradar/"><img src="https://img.shields.io/pypi/pyversions/gitradar?style=flat-square&logo=python" alt="Python Versions"></a>
16
+ <a href="./LICENSE"><img src="https://img.shields.io/github/license/AtaCanYmc/GitRadar?style=flat-square" alt="License"></a>
17
+ <a href="https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FAtaCanYmc%2FGitRadar&root-directory=demo"><img src="https://vercel.com/button" alt="Deploy with Vercel"></a>
18
+ </p>
19
+
20
+ ---
21
+
22
+ ## 💡 What is GitRadar?
23
+
24
+ **GitRadar** is an open-source AI developer tool designed for developers, creators, and founders to perform instant **Market & Gap Analysis** on software project concepts.
25
+
26
+ Before spending weeks building a new side project or open-source tool, GitRadar helps you answer critical questions:
27
+ - *What open-source repositories already exist for this concept on GitHub?*
28
+ - *What capabilities are existing repos missing (unmet market needs)?*
29
+ - *What unique differentiators will make your project stand out?*
30
+ - *How should you architect the software, what technology stack to choose, and what open-source building blocks can you leverage?*
31
+
32
+ GitRadar expands your raw idea into intelligent GitHub queries, fetches candidate repositories via the GitHub REST API, semantically analyzes competitors using direct **OpenAI-compatible AI connections** (supporting OpenAI, Groq, DeepSeek, OpenRouter, and Ollama), and renders an executive report in your terminal, local **Web Dashboard**, or hosted **Vercel Web Demo**.
33
+
34
+ ---
35
+
36
+ ## ✨ Key Features
37
+
38
+ - 🧠 **AI Query Expansion**: Translates raw developer ideas into optimized search keywords, language filters, and GitHub topic tags (`#cli`, `#ai`, `#devtools`).
39
+ - 🛠️ **Technical Implementation & Open-Source Roadmap**: Recommends architecture overviews, tech stacks, and relevant open-source libraries (`Typer`, `LiteLLM`, `Qdrant`, `Tree-sitter`, etc.) to build your idea.
40
+ - 🌐 **AI Response Language Choice**: Choose report output languages (`English`, `Turkish`, `Spanish`, `German`, `French`, etc.) via `--lang` flag or Web UI settings.
41
+ - 📥 **Web UI Report Export**: Export generated reports directly to **Markdown (`.md`)**, **JSON (`.json`)**, or **Copy to Clipboard**.
42
+ - ⚙️ **In-Browser Settings Modal**: Configure models, repository limits, AI response language, and custom Groq / GitHub API keys on the fly.
43
+ - ⚡ **1-Click Vercel Web Demo (`demo/`)**: Deploy a serverless web demo on Vercel where anyone can run GitRadar using their own API keys safely.
44
+ - 🎯 **Semantic Gap Analysis**: Synthesizes market saturation levels, competitor profiles, unmet needs, differentiators, and strategic recommendations.
45
+ - 🎨 **Rich Terminal UX & Web Dashboard**: Color-coded terminal panels via Rich, glassmorphic dark/light UI modes, EN/TR UI i18n translation switcher, and RealFaviconGenerator favicons.
46
+
47
+ ---
48
+
49
+ ## 🚀 1-Click Vercel Web Demo
50
+
51
+ Deploy your own Web Demo instance to Vercel instantly:
52
+
53
+ [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FAtaCanYmc%2FGitRadar&root-directory=demo)
54
+
55
+ ---
56
+
57
+ ## 🛠️ Quick Start & Installation
58
+
59
+ Install GitRadar from PyPI or locally:
60
+
61
+ ```bash
62
+ pip install gitradar
63
+ ```
64
+
65
+ Or install from source in editable mode:
66
+
67
+ ```bash
68
+ git clone https://github.com/AtaCanYmc/GitRadar.git
69
+ cd GitRadar
70
+ pip install -e ".[dev]"
71
+ ```
72
+
73
+ ---
74
+
75
+ ## 🔑 Configuration
76
+
77
+ GitRadar uses a universal **OpenAI-compatible connection schema** (`api_key`, `base_url`, `model`). It works out-of-the-box with **OpenAI**, **Groq**, **DeepSeek**, **OpenRouter**, or local self-hosted models (**Ollama**, **vLLM**, **LM Studio**).
78
+
79
+ 1. **Set your API Key** (OpenAI, Groq, or compatible provider):
80
+ ```bash
81
+ # Standard OpenAI
82
+ gitradar config --openai-api-key "sk-..."
83
+
84
+ # Or Groq (auto-routed to Groq OpenAI endpoint)
85
+ gitradar config --openai-api-key "gsk_..."
86
+ # Or legacy flag: gitradar config --groq-api-key "gsk_..."
87
+ ```
88
+
89
+ 2. *(Optional)* **Set a Custom Base URL** for alternative providers:
90
+ ```bash
91
+ # Groq
92
+ gitradar config --base-url "https://api.groq.com/openai/v1" --model "llama-3.3-70b-versatile"
93
+
94
+ # DeepSeek
95
+ gitradar config --base-url "https://api.deepseek.com" --model "deepseek-chat"
96
+
97
+ # Local Ollama
98
+ gitradar config --base-url "http://localhost:11434/v1" --model "llama3.2"
99
+ ```
100
+
101
+ 3. *(Optional)* **Set a GitHub Access Token** to boost API rate limits (from 60 to 5,000 requests/hour):
102
+ ```bash
103
+ gitradar config --github-token "ghp_your_github_token_here"
104
+ ```
105
+
106
+ 4. *(Optional)* **Set Default Output Language & Model**:
107
+ ```bash
108
+ gitradar config --lang Turkish --model gpt-4o-mini
109
+ ```
110
+
111
+ 5. **Inspect Active Settings**:
112
+ ```bash
113
+ gitradar config --show
114
+ ```
115
+
116
+ ---
117
+
118
+ ## 💻 CLI Commands & Usage
119
+
120
+ ### 💡 1. `gitradar analyze <IDEA>`
121
+
122
+ Executes the full end-to-end AI market and gap analysis workflow in the terminal:
123
+
124
+ ```bash
125
+ gitradar analyze "AI powered code review tool for terminal and git hooks" --lang Turkish
126
+ ```
127
+
128
+ **Options:**
129
+ - `--limit` / `-l`: Maximum repositories to evaluate (Default: `10`)
130
+ - `--min-relevance` / `-r`: Minimum relevance score threshold percentage (Default: `50`)
131
+ - `--model` / `-m`: Override AI model (e.g. `gpt-4o-mini`, `gpt-4o`, `llama-3.3-70b-versatile`, `deepseek-chat`)
132
+ - `--api-key` / `-k`: Override API Key for this run
133
+ - `--base-url` / `-u`: Override Base URL endpoint for this run
134
+ - `--lang` / `--language`: Set output language for AI report (e.g. `Turkish`, `English`, `Spanish`)
135
+
136
+ ---
137
+
138
+ ### 🌐 2. `gitradar ui`
139
+
140
+ Launches the local interactive web dashboard in your default browser:
141
+
142
+ ```bash
143
+ gitradar ui --port 5000
144
+ ```
145
+
146
+ ---
147
+
148
+ ### 🔍 3. `gitradar search <QUERY>`
149
+
150
+ Performs a fast, direct GitHub repository search without LLM synthesis:
151
+
152
+ ```bash
153
+ gitradar search "terminal devtools" --limit 5 --sort stars
154
+ ```
155
+
156
+ ---
157
+
158
+ ### ⚙️ 4. `gitradar config`
159
+
160
+ View or update credentials and preferences:
161
+
162
+ ```bash
163
+ gitradar config --show
164
+ ```
165
+
166
+ ---
167
+
168
+ ## 🐍 Python SDK Usage
169
+
170
+ Import GitRadar services directly in Python scripts:
171
+
172
+ ```python
173
+ import asyncio
174
+ from gitradar.services.github import GitHubService
175
+ from gitradar.services.llm import LLMService
176
+
177
+ async def main():
178
+ idea = "AI automated documentation generator"
179
+
180
+ github_service = GitHubService()
181
+ llm_service = LLMService(language="Turkish")
182
+
183
+ # 1. Expand idea into search keywords
184
+ queries = llm_service.expand_idea_to_queries(idea, language="Turkish")
185
+
186
+ # 2. Fetch candidate repos
187
+ repos = await github_service.search_and_enrich(
188
+ keywords=queries.search_keywords,
189
+ topics=queries.github_topics,
190
+ limit=5,
191
+ )
192
+
193
+ # 3. Synthesize Market & Gap Report with Tech Roadmap
194
+ report = llm_service.analyze_market_and_gaps(idea, repos, language="Turkish")
195
+ print("Market Saturation:", report.market_saturation)
196
+ print("Opportunity Score:", report.opportunity_score)
197
+ if report.implementation_guide:
198
+ print("Recommended Stack:", report.implementation_guide.recommended_tech_stack)
199
+
200
+ asyncio.run(main())
201
+ ```
202
+
203
+ ---
204
+
205
+ ## 🧪 Testing
206
+
207
+ Run unit and integration tests with `pytest`:
208
+
209
+ ```bash
210
+ pytest
211
+ ```
212
+
213
+ ---
214
+
215
+ ## 📚 Documentation Index
216
+
217
+ - [ARCHITECTURE.md](./ARCHITECTURE.md): Deep-dive into technical design, data models, and prompt engine.
218
+ - [demo/README.md](./demo/README.md): Step-by-step Vercel Web Demo deployment guide.
219
+ - [CONTRIBUTING.md](./CONTRIBUTING.md): PR guidelines, coding standards, and conventional commits.
220
+ - [SECURITY.md](./SECURITY.md): Security policy and vulnerability reporting.
221
+ - [CHANGELOG.md](./CHANGELOG.md): Semantic release history.
222
+ - [examples/README.md](./examples/README.md): Code samples and JSON report schemas.
223
+
224
+ ---
225
+
226
+ ## 📄 License
227
+
228
+ GitRadar is open-source software licensed under the [MIT License](./LICENSE).
@@ -0,0 +1,14 @@
1
+ import os
2
+ import sys
3
+ from pathlib import Path
4
+
5
+ # Add demo directory to sys.path so bundled gitradar package is importable on Vercel
6
+ DEMO_DIR = Path(__file__).parent.parent
7
+ if str(DEMO_DIR) not in sys.path:
8
+ sys.path.insert(0, str(DEMO_DIR))
9
+
10
+ # Import monkeypatch for Python compatibility
11
+ import gitradar # noqa: F401
12
+ from gitradar.web.app import create_app
13
+
14
+ app = create_app()
@@ -0,0 +1,22 @@
1
+ """
2
+ GitRadar: Smart GitHub Market & Gap Analysis CLI tool.
3
+ """
4
+
5
+ import sys
6
+ import typing
7
+
8
+ # Fix compatibility issue on Python < 3.11 where third-party packages (e.g. litellm)
9
+ # attempt to import 'NotRequired' or other PEP 655/673 types directly from 'typing'.
10
+ if sys.version_info < (3, 11):
11
+ try:
12
+ import typing_extensions
13
+
14
+ for _name in ("NotRequired", "Required", "Self", "Never", "LiteralString", "TypeAlias", "Override", "dataclass_transform"):
15
+ if not hasattr(typing, _name) and hasattr(typing_extensions, _name):
16
+ setattr(typing, _name, getattr(typing_extensions, _name))
17
+ except ImportError:
18
+ pass
19
+
20
+ __version__ = "0.2.0"
21
+ __author__ = "GitRadar Developer"
22
+