codedna 0.8.4__tar.gz → 0.9.1__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.
- codedna-0.9.1/PKG-INFO +398 -0
- codedna-0.9.1/README.md +346 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/__init__.py +1 -1
- {codedna-0.8.4 → codedna-0.9.1}/codedna/analyzer.py +161 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/api.py +174 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/cli.py +401 -2
- {codedna-0.8.4 → codedna-0.9.1}/codedna/db.py +126 -0
- codedna-0.9.1/codedna/webhooks.py +138 -0
- codedna-0.9.1/dashboard/Dockerfile +28 -0
- codedna-0.9.1/dashboard/app/feedback/page.tsx +209 -0
- codedna-0.9.1/dashboard/app/repos/page.tsx +179 -0
- codedna-0.9.1/dashboard/app/trends/page.tsx +202 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/NavClient.tsx +3 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/lib/i18n/en.ts +43 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/lib/i18n/tr.ts +40 -0
- {codedna-0.8.4 → codedna-0.9.1}/pyproject.toml +3 -3
- codedna-0.8.4/PKG-INFO +0 -577
- codedna-0.8.4/README.md +0 -525
- {codedna-0.8.4 → codedna-0.9.1}/.gitignore +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/LICENSE +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/ai.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/ai_box.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/ai_fingerprint.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/auth.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/bus_factor.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/demo.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/git_hook.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/integrations/__init__.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/integrations/github_bot.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/integrations/jira.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/integrations/lemonsqueezy.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/interview.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/onboarding.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/plan.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/protection.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/rate_limit.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/scorer.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/sprint_health.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/survey.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/codedna/tech_debt.py +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/.env.local.example +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/.gitignore +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/README.md +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/ai-compare/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/api/auth/login/route.ts +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/api/auth/logout/route.ts +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/api/auth/me/route.ts +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/api/auth/register/route.ts +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/api/billing/checkout/route.ts +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/billing/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/bus-factor/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/commits/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/debt/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/favicon.ico +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/files/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/fonts/GeistMonoVF.woff +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/fonts/GeistVF.woff +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/globals.css +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/interview/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/layout.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/login/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/onboarding/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/pricing/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/protected/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/register/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/settings/integrations/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/app/sprints/page.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/AuthProvider.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/ClientProviders.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/CommitTable.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/CostInfoTooltip.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/ErrorBanner.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/FeatureGate.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/FileHeatmap.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/LanguageSwitcher.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/OverviewTitles.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/QuickInsights.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/RiskBadge.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/SummaryCards.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/UnderstandingChart.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/components/UpgradeBanner.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/lib/api.ts +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/lib/auth.ts +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/lib/i18n/index.tsx +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/lib/plan.ts +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/next-env.d.ts +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/next.config.mjs +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/package-lock.json +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/package.json +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/postcss.config.mjs +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/tailwind.config.ts +0 -0
- {codedna-0.8.4 → codedna-0.9.1}/dashboard/tsconfig.json +0 -0
codedna-0.9.1/PKG-INFO
ADDED
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: codedna
|
|
3
|
+
Version: 0.9.1
|
|
4
|
+
Summary: AI Code Transparency Tool — detect AI-written code, analyze commit quality, track understanding debt, sprint health, bus factor, and more
|
|
5
|
+
Project-URL: Homepage, https://codedna.dev
|
|
6
|
+
Project-URL: Repository, https://github.com/natureco-official/codedna
|
|
7
|
+
Project-URL: Issues, https://github.com/natureco-official/codedna/issues
|
|
8
|
+
Project-URL: Changelog, https://github.com/natureco-official/codedna/blob/main/CHANGELOG.md
|
|
9
|
+
Author-email: NatureCo <hello@natureco.me>
|
|
10
|
+
Maintainer-email: Gencay Olgun <info@natureco.me>
|
|
11
|
+
License: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: ai,ai-detection,bus-factor,code-analysis,code-quality,commit-analysis,developer-tools,devops,discord,docker,export,feedback,git,multi-repo,slack,sprint-health,team-analytics,technical-debt,transparency,trends,webhook
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Environment :: Console
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Natural Language :: English
|
|
19
|
+
Classifier: Natural Language :: Turkish
|
|
20
|
+
Classifier: Operating System :: MacOS
|
|
21
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
22
|
+
Classifier: Operating System :: OS Independent
|
|
23
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
24
|
+
Classifier: Programming Language :: Python :: 3
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
27
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
28
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
29
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
30
|
+
Classifier: Topic :: Utilities
|
|
31
|
+
Classifier: Typing :: Typed
|
|
32
|
+
Requires-Python: >=3.10
|
|
33
|
+
Requires-Dist: bcrypt>=5.0.0
|
|
34
|
+
Requires-Dist: fastapi>=0.138.0
|
|
35
|
+
Requires-Dist: gitpython>=3.1.50
|
|
36
|
+
Requires-Dist: pyjwt>=2.13.0
|
|
37
|
+
Requires-Dist: rich>=15.0.0
|
|
38
|
+
Requires-Dist: tree-sitter-javascript>=0.25.0
|
|
39
|
+
Requires-Dist: tree-sitter-python>=0.25.0
|
|
40
|
+
Requires-Dist: tree-sitter-typescript>=0.23.2
|
|
41
|
+
Requires-Dist: tree-sitter>=0.25.2
|
|
42
|
+
Requires-Dist: typer>=0.26.7
|
|
43
|
+
Requires-Dist: uvicorn[standard]>=0.49.0
|
|
44
|
+
Provides-Extra: dashboard
|
|
45
|
+
Requires-Dist: next-cmd>=0.5.0; extra == 'dashboard'
|
|
46
|
+
Provides-Extra: dev
|
|
47
|
+
Requires-Dist: black>=24.0.0; extra == 'dev'
|
|
48
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
49
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
50
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
51
|
+
Description-Content-Type: text/markdown
|
|
52
|
+
|
|
53
|
+
<div align="center">
|
|
54
|
+
|
|
55
|
+
# 🧬 CodeDNA — AI Code Transparency Tool
|
|
56
|
+
|
|
57
|
+
**Understand every line of code you commit. Is it really yours, or AI's?**
|
|
58
|
+
|
|
59
|
+
Detect which code was written by AI, measure how well developers actually understand their commits, analyze commit quality, track trends, and map out "understanding debt" across your entire team.
|
|
60
|
+
|
|
61
|
+
[](https://pypi.org/project/codedna/)
|
|
62
|
+
[](https://opensource.org/licenses/MIT)
|
|
63
|
+
[](https://www.python.org/downloads/)
|
|
64
|
+
[](https://github.com/natureco-official/codedna/stargazers)
|
|
65
|
+
|
|
66
|
+
[**Quick Start**](#-quick-start) • [**Features**](#-features) • [**Commands**](#-commands) • [**Pricing**](#-pricing) • [**Docs**](#-documentation)
|
|
67
|
+
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 🎯 The Problem
|
|
73
|
+
|
|
74
|
+
In 2026, developers write **78% of their code with AI help** (Copilot, Cursor, ChatGPT, Claude). The result?
|
|
75
|
+
|
|
76
|
+
- 😰 **"Understanding Debt"** — Code is committed, but no one actually knows how it works
|
|
77
|
+
- 🚌 **Bus Factor = 1** — Everyone uses the same AI, no one understands the codebase
|
|
78
|
+
- 💰 **Technical Debt Explosion** — Without human review, AI-generated code decays fast
|
|
79
|
+
- 🐛 **Bug Multiplication** — 3 months later: "Who wrote this? I don't even know what it does"
|
|
80
|
+
|
|
81
|
+
**CodeDNA solves this.** Every commit is scored. Every developer is measured. Every team gets visibility.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## ✨ Features
|
|
86
|
+
|
|
87
|
+
### 🔍 AI Detection (4-metric fingerprint)
|
|
88
|
+
CodeDNA uses 4 heuristics to detect AI-generated code:
|
|
89
|
+
|
|
90
|
+
| Metric | AI Signature | Score |
|
|
91
|
+
|--------|--------------|-------|
|
|
92
|
+
| `comment_ratio > 0.3` | AI over-comments its code | +0.20 |
|
|
93
|
+
| `avg_function_length > 50` | AI produces large monolithic blocks | +0.15 |
|
|
94
|
+
| `single_commit_ratio > 0.7` | Bulk-paste commits are AI-red flag | +0.30 |
|
|
95
|
+
| High complexity + single commit | AI signature → +0.25 |
|
|
96
|
+
|
|
97
|
+
**Total > 0.50 → AI suspected.** Combined with Tree-sitter AST analysis, this gives 80%+ accuracy.
|
|
98
|
+
|
|
99
|
+
### 🤖 AI Score Explanation
|
|
100
|
+
Each file's score includes a plain-English breakdown of why it scored that way:
|
|
101
|
+
- *"High comment ratio (35%) — AI-generated code tends to over-comment (+0.20)"*
|
|
102
|
+
- *"High single-commit ratio (85%) — bulk paste indicator (+0.30)"*
|
|
103
|
+
|
|
104
|
+
### 📝 Commit Message Quality Analysis
|
|
105
|
+
- Detects conventional commit types (`feat:`, `fix:`, `docs:`, etc.)
|
|
106
|
+
- Estimates quality score (0-5) based on message clarity
|
|
107
|
+
- Detects ticket references (JIRA, GitHub Issues)
|
|
108
|
+
- Score bonus for scope + ticket references
|
|
109
|
+
|
|
110
|
+
### 📊 Export & Import
|
|
111
|
+
- `codedna export --format json|csv` — export all data
|
|
112
|
+
- `codedna import file.json` — restore from export
|
|
113
|
+
- API endpoints: `GET /export`, `POST /import`
|
|
114
|
+
|
|
115
|
+
### 👤 Developer Understanding Score
|
|
116
|
+
- **Survey-based** — Quick Q&A after each commit
|
|
117
|
+
- **Tracked over time** — See your understanding curve
|
|
118
|
+
- **Trend charts** — Dashboard `/trends` page
|
|
119
|
+
|
|
120
|
+
### 🚌 Bus Factor Analysis
|
|
121
|
+
- **Ownership tracking** — Who owns which file?
|
|
122
|
+
- **Risk identification** — Single points of failure
|
|
123
|
+
|
|
124
|
+
### 💰 Technical Debt Estimation
|
|
125
|
+
- **Cost in USD** — How much would it cost to fix this?
|
|
126
|
+
- **Trend over time** — Is debt increasing?
|
|
127
|
+
|
|
128
|
+
### 🏃 Sprint Health
|
|
129
|
+
- **Velocity tracking** — Real commits vs. AI-assisted
|
|
130
|
+
- **Quality metrics** — Per-sprint scoring
|
|
131
|
+
|
|
132
|
+
### 📈 Trend Charts (Dashboard)
|
|
133
|
+
Time-series visualization of:
|
|
134
|
+
- Daily average AI probability over time
|
|
135
|
+
- Understanding score trend
|
|
136
|
+
- Commit frequency bar chart
|
|
137
|
+
|
|
138
|
+
### 👀 Live Monitoring (`codedna watch`)
|
|
139
|
+
- Polls git repo for new commits (configurable interval)
|
|
140
|
+
- Auto-runs analysis on each new commit
|
|
141
|
+
- `--once` flag for cron-based usage
|
|
142
|
+
- `--notify` for webhook alerts
|
|
143
|
+
|
|
144
|
+
### 🔔 Webhook Notifications (Slack/Discord)
|
|
145
|
+
- Configure via `codedna webhook` interactive wizard
|
|
146
|
+
- Automatic alerts on high AI risk detection
|
|
147
|
+
- Protected module violation notifications
|
|
148
|
+
- Configurable risk threshold
|
|
149
|
+
|
|
150
|
+
### 💬 Feedback Loop
|
|
151
|
+
- Dashboard `/feedback` page
|
|
152
|
+
- Mark AI detections as correct/incorrect/unsure
|
|
153
|
+
- API endpoints for CRUD operations
|
|
154
|
+
- Historical view of all feedback
|
|
155
|
+
|
|
156
|
+
### 📂 Multi-Repo Dashboard
|
|
157
|
+
- Add/remove repositories via dashboard `/repos`
|
|
158
|
+
- API-backed CRUD with `~/.codedna/repos.json`
|
|
159
|
+
- Centralized view across projects
|
|
160
|
+
|
|
161
|
+
### 🤖 AI Tool Comparison (Enterprise)
|
|
162
|
+
Copilot vs. Cursor vs. Claude — which tool produces more debt?
|
|
163
|
+
|
|
164
|
+
### 🎯 Interview Tool (Enterprise)
|
|
165
|
+
Auto-generates questions from real code, records responses, exports reports.
|
|
166
|
+
|
|
167
|
+
### 🚀 Developer Onboarding
|
|
168
|
+
Ramp-up curve, mentor matching, first PR analysis.
|
|
169
|
+
|
|
170
|
+
### 🛡️ Protected Modules
|
|
171
|
+
Mark critical files — "AI may not touch auth/, payment/, security/"
|
|
172
|
+
|
|
173
|
+
### 🐳 Docker Self-Hosted
|
|
174
|
+
```bash
|
|
175
|
+
docker compose up
|
|
176
|
+
# API → http://localhost:8000
|
|
177
|
+
# Dashboard → http://localhost:3000
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 🚀 Quick Start
|
|
183
|
+
|
|
184
|
+
### Installation
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
pip install codedna
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### First Use (60 seconds)
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
cd your-awesome-project
|
|
194
|
+
codedna init # Install git hook + create DB
|
|
195
|
+
codedna scan # Analyze all files
|
|
196
|
+
codedna status # Last commit score
|
|
197
|
+
codedna history # Past commits
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Run the Dashboard
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
codedna dashboard # Web UI (port 3000) + API (port 8000)
|
|
204
|
+
codedna serve # API only (port 8000)
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 📋 Commands (30+ total)
|
|
210
|
+
|
|
211
|
+
### 📊 Analysis & Reporting
|
|
212
|
+
```bash
|
|
213
|
+
codedna scan # Full repo AI scan
|
|
214
|
+
codedna status # Last commit score + commit message analysis
|
|
215
|
+
codedna history # Commit history with understanding scores
|
|
216
|
+
codedna report # Generate HTML report
|
|
217
|
+
codedna ai-compare # AI tool comparison (Enterprise)
|
|
218
|
+
codedna export --format json # Export all data (JSON/CSV)
|
|
219
|
+
codedna import file.json # Restore from export
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### 👀 Monitoring
|
|
223
|
+
```bash
|
|
224
|
+
codedna watch # Live repo monitoring (poll mode)
|
|
225
|
+
codedna watch --once # Single analysis (cron-friendly)
|
|
226
|
+
codedna watch --notify # With webhook alerts
|
|
227
|
+
codedna webhook --show # Show webhook config
|
|
228
|
+
codedna webhook --test # Send test notification
|
|
229
|
+
codedna webhook --reset # Clear webhook config
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### 🛡️ Protection & Policies
|
|
233
|
+
```bash
|
|
234
|
+
codedna protect add <path> # Add protected module
|
|
235
|
+
codedna protect remove <path> # Remove protection
|
|
236
|
+
codedna protect list # List protected modules
|
|
237
|
+
codedna protect check # Show violations
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### 👥 Team & Process
|
|
241
|
+
```bash
|
|
242
|
+
codedna onboarding # Developer ramp-up (Team+)
|
|
243
|
+
codedna interview start # Start interview (Enterprise)
|
|
244
|
+
codedna interview list # List interviews
|
|
245
|
+
codedna interview score # Score interview
|
|
246
|
+
codedna bus-factor # Ownership analysis (Team+)
|
|
247
|
+
codedna debt # Technical debt (Team+)
|
|
248
|
+
codedna sprint create # Create sprint
|
|
249
|
+
codedna sprint health # Latest sprint score
|
|
250
|
+
codedna sprint history # All sprints
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### 🌐 Infrastructure
|
|
254
|
+
```bash
|
|
255
|
+
codedna serve # FastAPI REST (port 8000)
|
|
256
|
+
codedna dashboard # Web dashboard (port 3000)
|
|
257
|
+
codedna pr-comment # GitHub PR comment
|
|
258
|
+
codedna plan # Plan/license management
|
|
259
|
+
codedna setup # AI analysis config wizard
|
|
260
|
+
codedna security-check # Pre-publish secret scanner
|
|
261
|
+
codedna doctor # System health check
|
|
262
|
+
codedna update # Self-upgrade from PyPI
|
|
263
|
+
codedna uninstall # Remove git hook
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## 💎 Pricing
|
|
269
|
+
|
|
270
|
+
| Plan | Price | Repos | History | Dashboard | Key Features |
|
|
271
|
+
|------|-------|-------|---------|-----------|--------------|
|
|
272
|
+
| **Free** | $0 | 1 | 7 days | ❌ | AI detection, local only |
|
|
273
|
+
| **Pro** | $12/mo | ∞ | 90 days | ✅ | + Export, Webhooks, Watch |
|
|
274
|
+
| **Team** | $24/mo | ∞ | 365 days | ✅ | + Bus Factor, Sprint, Onboarding |
|
|
275
|
+
| **Enterprise** | $49/mo | ∞ | ∞ | ✅ | + AI Compare, Interview Tool, SSO |
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## 🔌 Integrations
|
|
280
|
+
|
|
281
|
+
- **GitHub Actions** — Auto-comment on PR
|
|
282
|
+
- **Jira** — Sprint health webhook
|
|
283
|
+
- **Slack** — AI risk notifications
|
|
284
|
+
- **Discord** — Webhook alerts
|
|
285
|
+
- **GitHub Copilot / Cursor / Claude** — AI tool detection
|
|
286
|
+
- **Docker** — Self-hosted deployment
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## 🛠️ Architecture
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
CLI (Python, Typer, Tree-sitter, GitPython, SQLite)
|
|
294
|
+
│
|
|
295
|
+
├── codedna scan / status / history
|
|
296
|
+
├── codedna export / import
|
|
297
|
+
├── codedna watch / webhook
|
|
298
|
+
├── codedna protect / bus-factor / debt
|
|
299
|
+
├── codedna sprint / onboarding
|
|
300
|
+
├── codedna serve / dashboard
|
|
301
|
+
└── codedna doctor / update / security-check
|
|
302
|
+
│
|
|
303
|
+
↓ HTTP
|
|
304
|
+
REST API (FastAPI, JWT Auth, Rate Limiting)
|
|
305
|
+
├── /health, /repo/*
|
|
306
|
+
├── /commits, /files, /report
|
|
307
|
+
├── /survey, /sprints, /bus-factor, /debt
|
|
308
|
+
├── /trends, /trends/commits
|
|
309
|
+
├── /feedback (POST + GET)
|
|
310
|
+
├── /repos (GET + POST + DELETE)
|
|
311
|
+
├── /export, /import
|
|
312
|
+
├── /auth (register, login, me)
|
|
313
|
+
└── /billing (checkout, webhook, subscription)
|
|
314
|
+
│
|
|
315
|
+
↓ HTTP
|
|
316
|
+
Web Dashboard (Next.js 14, TypeScript, Tailwind)
|
|
317
|
+
├── / (overview + metrics)
|
|
318
|
+
├── /files, /commits, /report
|
|
319
|
+
├── /bus-factor, /debt, /sprints
|
|
320
|
+
├── /trends (charts)
|
|
321
|
+
├── /feedback (AI accuracy feedback)
|
|
322
|
+
├── /repos (multi-repo management)
|
|
323
|
+
├── /ai-compare, /onboarding
|
|
324
|
+
├── /protected, /interview
|
|
325
|
+
├── /pricing, /billing
|
|
326
|
+
└── /login, /register
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Self-Hosted (Docker)
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
git clone https://github.com/natureco-official/codedna.git
|
|
333
|
+
cd codedna
|
|
334
|
+
docker compose up
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## 🏗️ Tech Stack
|
|
340
|
+
|
|
341
|
+
- **Python 3.10+** with Typer, FastAPI, Tree-sitter, GitPython, SQLite
|
|
342
|
+
- **Next.js 14** with TypeScript, Tailwind CSS
|
|
343
|
+
- **Docker** — API + Dashboard containers
|
|
344
|
+
- **Lemon Squeezy** — Billing
|
|
345
|
+
- **uv** — Python packaging
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## 🔒 Security
|
|
350
|
+
|
|
351
|
+
- HMAC-SHA256 webhook verification
|
|
352
|
+
- bcrypt password hashing (cost 12)
|
|
353
|
+
- JWT tokens (7-day expiry)
|
|
354
|
+
- httpOnly + secure + sameSite cookies
|
|
355
|
+
- Parameterized SQL queries
|
|
356
|
+
- Pydantic input validation
|
|
357
|
+
- Rate limiting
|
|
358
|
+
- No telemetry — your code stays yours
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## 🌍 Supported Languages
|
|
363
|
+
|
|
364
|
+
Python (`.py`), JavaScript (`.js`), TypeScript (`.ts`), JSX (`.jsx`), TSX (`.tsx`)
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## 🧪 Testing
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
pytest # 23+ tests
|
|
372
|
+
pytest --cov=codedna # With coverage
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## 📚 Documentation
|
|
378
|
+
|
|
379
|
+
- CLI Reference — `codedna --help` or per-command `--help`
|
|
380
|
+
- API Reference — http://localhost:8000/docs (when running)
|
|
381
|
+
- [Contributing Guide](CONTRIBUTING.md)
|
|
382
|
+
- [Security Policy](SECURITY.md)
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## 📜 License
|
|
387
|
+
|
|
388
|
+
MIT License — Copyright (c) 2026 NatureCo
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
<div align="center">
|
|
393
|
+
|
|
394
|
+
**Made with 🌿 in Turkey**
|
|
395
|
+
|
|
396
|
+
[⭐ Star us on GitHub](https://github.com/natureco-official/codedna) • [📦 Install from PyPI](https://pypi.org/project/codedna/)
|
|
397
|
+
|
|
398
|
+
</div>
|