codedna 0.2.8__tar.gz → 0.2.10__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.2.8 → codedna-0.2.10}/PKG-INFO +1 -1
- {codedna-0.2.8 → codedna-0.2.10}/codedna/__init__.py +1 -1
- {codedna-0.2.8 → codedna-0.2.10}/codedna/analyzer.py +3 -3
- {codedna-0.2.8 → codedna-0.2.10}/codedna/cli.py +80 -80
- {codedna-0.2.8 → codedna-0.2.10}/pyproject.toml +1 -1
- {codedna-0.2.8 → codedna-0.2.10}/.env.example +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/.env.ls +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/.github/CODEOWNERS +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/.github/dependabot.yml +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/.github/workflows/codedna.yml +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/.github/workflows/codeql.yml +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/.github/workflows/test.yml +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/.gitignore +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/.python-version +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/CHANGELOG.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/CONTRIBUTING.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/LICENSE +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/README.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/SECURITY.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/ai.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/ai_box.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/ai_fingerprint.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/api.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/auth.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/bus_factor.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/db.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/git_hook.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/integrations/__init__.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/integrations/github_bot.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/integrations/jira.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/integrations/lemonsqueezy.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/interview.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/onboarding.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/plan.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/protection.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/rate_limit.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/scorer.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/sprint_health.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/survey.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/codedna/tech_debt.py +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/.env.local.example +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/.gitignore +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/README.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/ai-compare/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/api/auth/login/route.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/api/auth/logout/route.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/api/auth/me/route.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/api/auth/register/route.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/api/billing/checkout/route.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/billing/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/bus-factor/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/commits/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/debt/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/favicon.ico +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/files/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/fonts/GeistMonoVF.woff +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/fonts/GeistVF.woff +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/globals.css +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/interview/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/layout.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/login/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/onboarding/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/pricing/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/protected/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/register/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/settings/integrations/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/app/sprints/page.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/AnlamaGrafigi.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/AuthProvider.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/ClientProviders.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/CommitTable.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/CostInfoTooltip.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/FeatureGate.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/FileHeatmap.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/HataBanner.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/LanguageSwitcher.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/NavClient.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/OverviewTitles.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/QuickInsights.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/RiskBadge.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/SummaryCards.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/components/UpgradeBanner.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/lib/api.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/lib/auth.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/lib/i18n/en.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/lib/i18n/index.tsx +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/lib/i18n/tr.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/lib/plan.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/next-env.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/next.config.mjs +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/package-lock.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/package.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/postcss.config.mjs +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/tailwind.config.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/dashboard/tsconfig.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/hooks/post-commit +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/uv.lock +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/.bin/tsc +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/.bin/tsserver +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/.package-lock.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/LICENSE +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/README.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/assert/strict.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/assert.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/async_hooks.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/buffer.buffer.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/buffer.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/child_process.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/cluster.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/compatibility/disposable.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/compatibility/index.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/compatibility/indexable.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/compatibility/iterators.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/console.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/constants.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/crypto.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/dgram.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/dns/promises.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/dns.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/domain.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/events.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/fs/promises.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/fs.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/globals.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/globals.typedarray.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/http.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/http2.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/https.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/index.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/inspector.generated.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/module.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/net.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/os.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/package.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/path.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/perf_hooks.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/process.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/punycode.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/querystring.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/readline/promises.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/readline.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/repl.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/sea.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/stream/consumers.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/stream/promises.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/stream/web.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/stream.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/string_decoder.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/test.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/timers/promises.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/timers.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/tls.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/trace_events.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/ts5.6/index.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/tty.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/url.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/util.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/v8.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/vm.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/wasi.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/web-globals/domexception.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/web-globals/events.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/web-globals/fetch.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/worker_threads.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/node/zlib.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/vscode/LICENSE +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/vscode/README.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/vscode/index.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/@types/vscode/package.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/LICENSE.txt +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/README.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/SECURITY.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/ThirdPartyNoticeText.txt +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/bin/tsc +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/bin/tsserver +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/_tsc.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/_tsserver.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/_typingsInstaller.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.decorators.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.dom.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2015.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2016.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2017.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2018.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2019.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2020.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2021.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2022.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2023.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2024.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es5.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.es6.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.scripthost.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.webworker.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/tsc.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/tsserver.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/typesMap.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/typescript.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/typescript.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/typingsInstaller.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/watchGuard.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/typescript/package.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/LICENSE +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/README.md +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/agent.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/api.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/balanced-pool.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/cache.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/client.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/connector.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/content-type.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/cookies.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/dispatcher.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/errors.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/eventsource.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/fetch.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/file.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/filereader.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/formdata.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/global-dispatcher.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/global-origin.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/handlers.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/header.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/index.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/interceptors.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/mock-agent.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/mock-client.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/mock-errors.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/mock-interceptor.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/mock-pool.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/package.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/patch.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/pool-stats.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/pool.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/proxy-agent.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/readable.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/retry-agent.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/retry-handler.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/util.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/webidl.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/node_modules/undici-types/websocket.d.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/out/apiClient.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/out/apiClient.js.map +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/out/decorations.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/out/decorations.js.map +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/out/extension.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/out/extension.js.map +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/out/statusBar.js +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/out/statusBar.js.map +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/package-lock.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/package.json +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/src/apiClient.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/src/decorations.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/src/extension.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/src/statusBar.ts +0 -0
- {codedna-0.2.8 → codedna-0.2.10}/vscode-extension/tsconfig.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codedna
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.10
|
|
4
4
|
Summary: AI Code Transparency Tool - detect AI-written code and measure developer understanding
|
|
5
5
|
Project-URL: Homepage, https://codedna.dev
|
|
6
6
|
Project-URL: Repository, https://github.com/natureco-official/codedna
|
|
@@ -51,11 +51,11 @@ class FileAnalysisResult:
|
|
|
51
51
|
def complexity_label(self) -> str:
|
|
52
52
|
"""Karmaşıklık seviyesini metin olarak döndür."""
|
|
53
53
|
if self.complexity_score < 5:
|
|
54
|
-
return "
|
|
54
|
+
return "Low"
|
|
55
55
|
elif self.complexity_score < 15:
|
|
56
|
-
return "
|
|
56
|
+
return "Medium"
|
|
57
57
|
else:
|
|
58
|
-
return "
|
|
58
|
+
return "High"
|
|
59
59
|
|
|
60
60
|
@property
|
|
61
61
|
def ai_color(self) -> str:
|
|
@@ -102,7 +102,7 @@ def init(
|
|
|
102
102
|
|
|
103
103
|
bilgi = (
|
|
104
104
|
"[bold green]CodeDNA başarıyla kuruldu![/bold green]\n"
|
|
105
|
-
"
|
|
105
|
+
"From now on, every [bold]git commit[/bold] will run automatic analysis.\n\n"
|
|
106
106
|
"[dim]• Tüm repoyu taramak için:[/dim] [cyan]codedna scan[/cyan]\n"
|
|
107
107
|
"[dim]• Son commit skorunu görmek için:[/dim] [cyan]codedna status[/cyan]\n"
|
|
108
108
|
"[dim]• Geçmiş skorları görmek için:[/dim] [cyan]codedna history[/cyan]\n"
|
|
@@ -157,11 +157,11 @@ def doctor() -> None:
|
|
|
157
157
|
from importlib.metadata import version as _v
|
|
158
158
|
ts_msg = f"v{_v('tree-sitter')}"
|
|
159
159
|
except Exception:
|
|
160
|
-
ts_msg = "
|
|
160
|
+
ts_msg = "installed"
|
|
161
161
|
except ImportError:
|
|
162
162
|
ts_ok = False
|
|
163
|
-
ts_msg = "
|
|
164
|
-
kontroller.append(("Tree-sitter", ts_msg, ts_ok, ts_msg if ts_ok else "
|
|
163
|
+
ts_msg = "missing"
|
|
164
|
+
kontroller.append(("Tree-sitter", ts_msg, ts_ok, ts_msg if ts_ok else "not installed"))
|
|
165
165
|
|
|
166
166
|
try:
|
|
167
167
|
import fastapi
|
|
@@ -169,8 +169,8 @@ def doctor() -> None:
|
|
|
169
169
|
fa_msg = f"v{fastapi.__version__}"
|
|
170
170
|
except ImportError:
|
|
171
171
|
fa_ok = False
|
|
172
|
-
fa_msg = "
|
|
173
|
-
kontroller.append(("FastAPI", fa_msg, fa_ok, fa_msg if fa_ok else "
|
|
172
|
+
fa_msg = "missing"
|
|
173
|
+
kontroller.append(("FastAPI", fa_msg, fa_ok, fa_msg if fa_ok else "not installed"))
|
|
174
174
|
|
|
175
175
|
try:
|
|
176
176
|
from codedna.auth import _auth_db
|
|
@@ -200,7 +200,7 @@ def doctor() -> None:
|
|
|
200
200
|
kontroller.append(("Post-commit hook", "hata", False, str(e)))
|
|
201
201
|
|
|
202
202
|
tablo = Table(title="[bold]Sistem Durumu[/bold]", show_header=True, header_style="bold magenta", box=None)
|
|
203
|
-
tablo.add_column("
|
|
203
|
+
tablo.add_column("Component", style="cyan", no_wrap=True)
|
|
204
204
|
tablo.add_column("Durum", justify="center")
|
|
205
205
|
tablo.add_column("Detay", style="dim")
|
|
206
206
|
|
|
@@ -260,7 +260,7 @@ def setup_ai(
|
|
|
260
260
|
console.print(f"[bold]Provider:[/bold] {cfg.provider}")
|
|
261
261
|
console.print(f"[bold]Model:[/bold] {cfg.model}")
|
|
262
262
|
console.print(f"[bold]API Key:[/bold] {masked}")
|
|
263
|
-
console.print(f"[bold]
|
|
263
|
+
console.print(f"[bold]Active:[/bold] {'Yes' if cfg.enabled else 'No'}")
|
|
264
264
|
console.print(f"[bold]Config:[/bold] {AI_CONFIG_PATH}")
|
|
265
265
|
return
|
|
266
266
|
|
|
@@ -358,7 +358,7 @@ def scan(
|
|
|
358
358
|
|
|
359
359
|
kok = repo or find_git_root() or Path.cwd()
|
|
360
360
|
|
|
361
|
-
with console.status("[dim]
|
|
361
|
+
with console.status("[dim]Analyzing files...[/dim]"):
|
|
362
362
|
sonuclar = scan_repository(kok, max_files=max_files)
|
|
363
363
|
|
|
364
364
|
if not sonuclar:
|
|
@@ -399,12 +399,12 @@ def scan(
|
|
|
399
399
|
yuzde = int(s.ai_probability * 100)
|
|
400
400
|
ai_metin = f"{s.ai_color} %{yuzde}"
|
|
401
401
|
|
|
402
|
-
if s.complexity_label == "
|
|
403
|
-
karmasiklik = "[red]
|
|
404
|
-
elif s.complexity_label == "
|
|
405
|
-
karmasiklik = "[yellow]
|
|
402
|
+
if s.complexity_label == "High":
|
|
403
|
+
karmasiklik = "[red]High[/red]"
|
|
404
|
+
elif s.complexity_label == "Medium":
|
|
405
|
+
karmasiklik = "[yellow]Medium[/yellow]"
|
|
406
406
|
else:
|
|
407
|
-
karmasiklik = "[green]
|
|
407
|
+
karmasiklik = "[green]Low[/green]"
|
|
408
408
|
|
|
409
409
|
# DB'den tek sorguda gelen map'ten anlama skorunu oku
|
|
410
410
|
anlama_skor = anlama_skorlari_map.get(s.file_path)
|
|
@@ -426,7 +426,7 @@ def scan(
|
|
|
426
426
|
risk_etiketi, risk_renk = _risk_etiketi(ortalama_ai)
|
|
427
427
|
|
|
428
428
|
console.print(
|
|
429
|
-
f"\n[bold]Repo
|
|
429
|
+
f"\n[bold]Repo Summary:[/bold] {len(sonuclar)} files scanned · "
|
|
430
430
|
f"Average AI probability: [bold]%{ortalama_ai:.0f}[/bold] · "
|
|
431
431
|
f"Risk: [bold {risk_renk}]{risk_etiketi}[/bold {risk_renk}]\n"
|
|
432
432
|
)
|
|
@@ -591,9 +591,9 @@ def status(
|
|
|
591
591
|
@app.command()
|
|
592
592
|
def history(
|
|
593
593
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
594
|
-
limit: int = typer.Option(20, "--limit", "-n", help="
|
|
594
|
+
limit: int = typer.Option(20, "--limit", "-n", help="Number of commits to show"),
|
|
595
595
|
) -> None:
|
|
596
|
-
"""
|
|
596
|
+
"""Show historical commit scores as a table."""
|
|
597
597
|
console.print()
|
|
598
598
|
kok = repo or find_git_root() or Path.cwd()
|
|
599
599
|
db_yolu = _get_db(kok)
|
|
@@ -616,7 +616,7 @@ def history(
|
|
|
616
616
|
)
|
|
617
617
|
tablo.add_column("Commit", style="dim", min_width=10)
|
|
618
618
|
tablo.add_column("Yazar", min_width=15)
|
|
619
|
-
tablo.add_column("
|
|
619
|
+
tablo.add_column("Date", min_width=17)
|
|
620
620
|
tablo.add_column("Dosya", justify="right", min_width=6)
|
|
621
621
|
tablo.add_column("Anlama", justify="center", min_width=12)
|
|
622
622
|
|
|
@@ -657,7 +657,7 @@ def history(
|
|
|
657
657
|
def serve(
|
|
658
658
|
host: str = typer.Option("127.0.0.1", "--host", help="Dinlenecek IP adresi"),
|
|
659
659
|
port: int = typer.Option(8000, "--port", "-p", help="Port numarası"),
|
|
660
|
-
reload: bool = typer.Option(False, "--reload", help="
|
|
660
|
+
reload: bool = typer.Option(False, "--reload", help="Auto-reload in development mode"),
|
|
661
661
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
662
662
|
) -> None:
|
|
663
663
|
"""FastAPI REST sunucusunu başlat."""
|
|
@@ -701,7 +701,7 @@ def serve(
|
|
|
701
701
|
# ---------------------------------------------------------------------------
|
|
702
702
|
@app.command()
|
|
703
703
|
def report(
|
|
704
|
-
output: Path = typer.Option(Path("codedna-report.html"), "--output", "-o", help="
|
|
704
|
+
output: Path = typer.Option(Path("codedna-report.html"), "--output", "-o", help="Output file"),
|
|
705
705
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
706
706
|
open_browser: bool = typer.Option(False, "--open", help="Raporu tarayıcıda aç"),
|
|
707
707
|
) -> None:
|
|
@@ -717,7 +717,7 @@ def report(
|
|
|
717
717
|
console.print()
|
|
718
718
|
console.print("[bold cyan]🧬 CodeDNA[/bold cyan] — HTML rapor oluşturuluyor...\n")
|
|
719
719
|
|
|
720
|
-
with console.status("[dim]
|
|
720
|
+
with console.status("[dim]Analyzing files...[/dim]"):
|
|
721
721
|
sonuclar = scan_repository(kok, max_files=200)
|
|
722
722
|
|
|
723
723
|
sonuclar.sort(key=lambda s: s.ai_probability, reverse=True)
|
|
@@ -794,7 +794,7 @@ def ai_compare(
|
|
|
794
794
|
"[dim]⚠️ Bu tespit örüntü tabanlı bir tahmindir — kesin değildir.[/dim]\n"
|
|
795
795
|
)
|
|
796
796
|
|
|
797
|
-
with console.status("[dim]
|
|
797
|
+
with console.status("[dim]Analyzing files...[/dim]"):
|
|
798
798
|
sonuclar = compare_tools_in_repo(kok, db_yolu)
|
|
799
799
|
|
|
800
800
|
if not sonuclar:
|
|
@@ -803,7 +803,7 @@ def ai_compare(
|
|
|
803
803
|
|
|
804
804
|
tablo = Table(border_style="dim", show_lines=True, header_style="bold")
|
|
805
805
|
tablo.add_column("AI Aracı", min_width=12)
|
|
806
|
-
tablo.add_column("
|
|
806
|
+
tablo.add_column("File Count", justify="right", min_width=13)
|
|
807
807
|
tablo.add_column("Ort. AI Skoru", justify="right", min_width=13)
|
|
808
808
|
tablo.add_column("Ort. Anlama", justify="right", min_width=12)
|
|
809
809
|
|
|
@@ -835,10 +835,10 @@ def ai_compare(
|
|
|
835
835
|
@app.command()
|
|
836
836
|
def onboarding(
|
|
837
837
|
author: Optional[str] = typer.Option(None, "--author", "-a", help="Tek yazar analizi"),
|
|
838
|
-
team: bool = typer.Option(False, "--team", "-t", help="
|
|
838
|
+
team: bool = typer.Option(False, "--team", "-t", help="Team-wide summary"),
|
|
839
839
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
840
840
|
) -> None:
|
|
841
|
-
"""
|
|
841
|
+
"""Measure developer onboarding speed and show the ramp-up curve."""
|
|
842
842
|
from codedna.onboarding import (
|
|
843
843
|
get_author_curve, team_onboarding_summary, get_all_authors,
|
|
844
844
|
)
|
|
@@ -847,7 +847,7 @@ def onboarding(
|
|
|
847
847
|
if not is_feature_available("sprint_health"):
|
|
848
848
|
console.print(
|
|
849
849
|
Panel(
|
|
850
|
-
"[bold yellow]🔒
|
|
850
|
+
"[bold yellow]🔒 This feature is available on the Team plan.[/bold yellow]\n"
|
|
851
851
|
"[dim]Yükseltmek için:[/dim] [cyan]codedna plan activate <LICENSE_KEY>[/cyan]",
|
|
852
852
|
border_style="yellow",
|
|
853
853
|
)
|
|
@@ -947,7 +947,7 @@ def onboarding(
|
|
|
947
947
|
tablo.add_column("Hash", style="dim", min_width=10)
|
|
948
948
|
tablo.add_column("Tarih", min_width=12)
|
|
949
949
|
tablo.add_column("Hafta", justify="right", min_width=7)
|
|
950
|
-
tablo.add_column("
|
|
950
|
+
tablo.add_column("Understanding", justify="center", min_width=10)
|
|
951
951
|
|
|
952
952
|
for n in anketli:
|
|
953
953
|
skor = n.understanding_score or 0.0
|
|
@@ -1012,7 +1012,7 @@ def pr_comment(
|
|
|
1012
1012
|
|
|
1013
1013
|
console.print(f"\n[bold cyan]🧬 CodeDNA[/bold cyan] — PR #{hedef_pr} analiz ediliyor...\n")
|
|
1014
1014
|
|
|
1015
|
-
with console.status("[dim]
|
|
1015
|
+
with console.status("[dim]Scanning files...[/dim]"):
|
|
1016
1016
|
from codedna.scorer import scan_repository
|
|
1017
1017
|
sonuclar = scan_repository(kok, max_files=200)
|
|
1018
1018
|
|
|
@@ -1042,7 +1042,7 @@ def pr_comment(
|
|
|
1042
1042
|
# ---------------------------------------------------------------------------
|
|
1043
1043
|
# codedna protect
|
|
1044
1044
|
# ---------------------------------------------------------------------------
|
|
1045
|
-
protect_app = typer.Typer(help="
|
|
1045
|
+
protect_app = typer.Typer(help="Protected module management.")
|
|
1046
1046
|
app.add_typer(protect_app, name="protect")
|
|
1047
1047
|
|
|
1048
1048
|
|
|
@@ -1050,7 +1050,7 @@ app.add_typer(protect_app, name="protect")
|
|
|
1050
1050
|
def protect_add(
|
|
1051
1051
|
file_path: str = typer.Argument(..., help="Korunacak dosya yolu"),
|
|
1052
1052
|
threshold: float = typer.Option(3.5, "--threshold", "-t", help="Minimum anlama skoru eşiği"),
|
|
1053
|
-
label: str = typer.Option("", "--label", "-l", help="
|
|
1053
|
+
label: str = typer.Option("", "--label", "-l", help="Human-readable label"),
|
|
1054
1054
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
1055
1055
|
) -> None:
|
|
1056
1056
|
"""Bir dosyayı korumalı modül olarak işaretle."""
|
|
@@ -1058,7 +1058,7 @@ def protect_add(
|
|
|
1058
1058
|
from codedna.plan import is_feature_available
|
|
1059
1059
|
|
|
1060
1060
|
if not is_feature_available("bus_factor"):
|
|
1061
|
-
console.print("[bold yellow]🔒
|
|
1061
|
+
console.print("[bold yellow]🔒 This feature is available on the Team plan.[/bold yellow]")
|
|
1062
1062
|
raise typer.Exit(1)
|
|
1063
1063
|
|
|
1064
1064
|
kok = repo or find_git_root() or Path.cwd()
|
|
@@ -1073,7 +1073,7 @@ def protect_add(
|
|
|
1073
1073
|
kayit_id = protect_module(tam_yol, threshold, etiket, yazar, db_yolu)
|
|
1074
1074
|
console.print(
|
|
1075
1075
|
f"[green]✓[/green] Korumalı modül eklendi: [cyan]{file_path}[/cyan]\n"
|
|
1076
|
-
f" [dim]
|
|
1076
|
+
f" [dim]Label:[/dim] {etiket} · [dim]Threshold:[/dim] {threshold}/5 · [dim]ID:[/dim] #{kayit_id}"
|
|
1077
1077
|
)
|
|
1078
1078
|
|
|
1079
1079
|
|
|
@@ -1087,7 +1087,7 @@ def protect_remove(
|
|
|
1087
1087
|
from codedna.plan import is_feature_available
|
|
1088
1088
|
|
|
1089
1089
|
if not is_feature_available("bus_factor"):
|
|
1090
|
-
console.print("[bold yellow]🔒
|
|
1090
|
+
console.print("[bold yellow]🔒 This feature is available on the Team plan.[/bold yellow]")
|
|
1091
1091
|
raise typer.Exit(1)
|
|
1092
1092
|
|
|
1093
1093
|
kok = repo or find_git_root() or Path.cwd()
|
|
@@ -1104,12 +1104,12 @@ def protect_remove(
|
|
|
1104
1104
|
def protect_list(
|
|
1105
1105
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
1106
1106
|
) -> None:
|
|
1107
|
-
"""
|
|
1107
|
+
"""Show all protected modules and their statuses."""
|
|
1108
1108
|
from codedna.protection import check_protected_modules
|
|
1109
1109
|
from codedna.plan import is_feature_available
|
|
1110
1110
|
|
|
1111
1111
|
if not is_feature_available("bus_factor"):
|
|
1112
|
-
console.print("[bold yellow]🔒
|
|
1112
|
+
console.print("[bold yellow]🔒 This feature is available on the Team plan.[/bold yellow]")
|
|
1113
1113
|
raise typer.Exit(1)
|
|
1114
1114
|
|
|
1115
1115
|
kok = repo or find_git_root() or Path.cwd()
|
|
@@ -1119,22 +1119,22 @@ def protect_list(
|
|
|
1119
1119
|
moduller = check_protected_modules(db_yolu)
|
|
1120
1120
|
if not moduller:
|
|
1121
1121
|
console.print("[yellow]Henüz korumalı modül yok.[/yellow]")
|
|
1122
|
-
console.print("[dim]
|
|
1122
|
+
console.print("[dim]To add:[/dim] [cyan]codedna protect add <file> --label 'Label'[/cyan]")
|
|
1123
1123
|
return
|
|
1124
1124
|
|
|
1125
1125
|
tablo = Table(
|
|
1126
1126
|
title="[bold cyan]🛡️ Korumalı Modüller[/bold cyan]",
|
|
1127
1127
|
border_style="dim", show_lines=True, header_style="bold",
|
|
1128
1128
|
)
|
|
1129
|
-
tablo.add_column("
|
|
1130
|
-
tablo.add_column("
|
|
1131
|
-
tablo.add_column("
|
|
1129
|
+
tablo.add_column("File", min_width=30)
|
|
1130
|
+
tablo.add_column("Label", min_width=16)
|
|
1131
|
+
tablo.add_column("Threshold", justify="center", min_width=7)
|
|
1132
1132
|
tablo.add_column("Mevcut", justify="center", min_width=9)
|
|
1133
1133
|
tablo.add_column("Durum", justify="center", min_width=12)
|
|
1134
1134
|
|
|
1135
1135
|
for m in moduller:
|
|
1136
1136
|
mevcut_str = f"{m.mevcut_skor:.1f}" if m.mevcut_skor is not None else "—"
|
|
1137
|
-
if m.durum == "
|
|
1137
|
+
if m.durum == "VIOLATION":
|
|
1138
1138
|
durum_str = "[bold red]🔴 İHLAL[/bold red]"
|
|
1139
1139
|
elif m.durum == "SAFE":
|
|
1140
1140
|
durum_str = "[green]✅ SAFE[/green]"
|
|
@@ -1162,7 +1162,7 @@ def protect_check(
|
|
|
1162
1162
|
from codedna.plan import is_feature_available
|
|
1163
1163
|
|
|
1164
1164
|
if not is_feature_available("bus_factor"):
|
|
1165
|
-
console.print("[bold yellow]🔒
|
|
1165
|
+
console.print("[bold yellow]🔒 This feature is available on the Team plan.[/bold yellow]")
|
|
1166
1166
|
raise typer.Exit(1)
|
|
1167
1167
|
|
|
1168
1168
|
kok = repo or find_git_root() or Path.cwd()
|
|
@@ -1192,17 +1192,17 @@ def protect_check(
|
|
|
1192
1192
|
# ---------------------------------------------------------------------------
|
|
1193
1193
|
# codedna interview
|
|
1194
1194
|
# ---------------------------------------------------------------------------
|
|
1195
|
-
interview_app = typer.Typer(help="
|
|
1195
|
+
interview_app = typer.Typer(help="Candidate interview tool.")
|
|
1196
1196
|
app.add_typer(interview_app, name="interview")
|
|
1197
1197
|
|
|
1198
1198
|
|
|
1199
1199
|
@interview_app.command("start")
|
|
1200
1200
|
def interview_start(
|
|
1201
|
-
candidate: str = typer.Option(..., "--candidate", "-c", help="
|
|
1201
|
+
candidate: str = typer.Option(..., "--candidate", "-c", help="Candidate name"),
|
|
1202
1202
|
difficulty: str = typer.Option("medium", "--difficulty", "-d", help="Zorluk: easy|medium|hard"),
|
|
1203
1203
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
1204
1204
|
) -> None:
|
|
1205
|
-
"""
|
|
1205
|
+
"""Start a new interview session and show anonymized code."""
|
|
1206
1206
|
from codedna.interview import select_candidate_file, generate_questions, start_session
|
|
1207
1207
|
from codedna.plan import is_feature_available
|
|
1208
1208
|
|
|
@@ -1237,7 +1237,7 @@ def interview_start(
|
|
|
1237
1237
|
|
|
1238
1238
|
console.print(
|
|
1239
1239
|
Panel(
|
|
1240
|
-
f"[bold]
|
|
1240
|
+
f"[bold]Candidate:[/bold] {candidate}\n"
|
|
1241
1241
|
f"[bold]Zorluk:[/bold] {difficulty} · [dim]Karmaşıklık:[/dim] {dosya.karmasiklik_skoru:.0f} · [dim]Satır:[/dim] {dosya.satir_sayisi}\n"
|
|
1242
1242
|
f"[bold]Oturum ID:[/bold] [cyan]#{session_id}[/cyan]",
|
|
1243
1243
|
title="[bold cyan]🎯 Mülakat Başladı[/bold cyan]",
|
|
@@ -1263,14 +1263,14 @@ def interview_start(
|
|
|
1263
1263
|
@interview_app.command("list")
|
|
1264
1264
|
def interview_list(
|
|
1265
1265
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
1266
|
-
limit: int = typer.Option(10, "--limit", "-n", help="
|
|
1266
|
+
limit: int = typer.Option(10, "--limit", "-n", help="Number of sessions to show"),
|
|
1267
1267
|
) -> None:
|
|
1268
|
-
"""
|
|
1268
|
+
"""Show historical interview sessions."""
|
|
1269
1269
|
from codedna.interview import get_sessions
|
|
1270
1270
|
from codedna.plan import is_feature_available
|
|
1271
1271
|
|
|
1272
1272
|
if not is_feature_available("interview_tool"):
|
|
1273
|
-
console.print("[bold yellow]🔒
|
|
1273
|
+
console.print("[bold yellow]🔒 This feature is available on the Enterprise plan.[/bold yellow]")
|
|
1274
1274
|
raise typer.Exit(1)
|
|
1275
1275
|
|
|
1276
1276
|
kok = repo or find_git_root() or Path.cwd()
|
|
@@ -1287,8 +1287,8 @@ def interview_list(
|
|
|
1287
1287
|
border_style="dim", show_lines=True, header_style="bold",
|
|
1288
1288
|
)
|
|
1289
1289
|
tablo.add_column("#", justify="right", min_width=4)
|
|
1290
|
-
tablo.add_column("
|
|
1291
|
-
tablo.add_column("
|
|
1290
|
+
tablo.add_column("Candidate", min_width=16)
|
|
1291
|
+
tablo.add_column("Started", min_width=17)
|
|
1292
1292
|
tablo.add_column("Skor", justify="center", min_width=8)
|
|
1293
1293
|
tablo.add_column("Notlar", min_width=20)
|
|
1294
1294
|
|
|
@@ -1311,15 +1311,15 @@ def interview_list(
|
|
|
1311
1311
|
def interview_score(
|
|
1312
1312
|
session_id: int = typer.Argument(..., help="Oturum ID'si"),
|
|
1313
1313
|
score: float = typer.Option(..., "--score", "-s", help="0.0–5.0 arası puan"),
|
|
1314
|
-
notes: str = typer.Option("", "--notes", "-n", help="
|
|
1314
|
+
notes: str = typer.Option("", "--notes", "-n", help="Reviewer notes"),
|
|
1315
1315
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
1316
1316
|
) -> None:
|
|
1317
|
-
"""
|
|
1317
|
+
"""Add a human review score to an interview session."""
|
|
1318
1318
|
from codedna.interview import submit_score
|
|
1319
1319
|
from codedna.plan import is_feature_available
|
|
1320
1320
|
|
|
1321
1321
|
if not is_feature_available("interview_tool"):
|
|
1322
|
-
console.print("[bold yellow]🔒
|
|
1322
|
+
console.print("[bold yellow]🔒 This feature is available on the Enterprise plan.[/bold yellow]")
|
|
1323
1323
|
raise typer.Exit(1)
|
|
1324
1324
|
|
|
1325
1325
|
kok = repo or find_git_root() or Path.cwd()
|
|
@@ -1345,7 +1345,7 @@ def interview_score(
|
|
|
1345
1345
|
def bus_factor(
|
|
1346
1346
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
1347
1347
|
critical: bool = typer.Option(False, "--critical", "-c", help="Sadece kritik (bus_factor=1) dosyaları göster"),
|
|
1348
|
-
max_files: int = typer.Option(500, "--max", "-m", help="
|
|
1348
|
+
max_files: int = typer.Option(500, "--max", "-m", help="Maximum number of files to process"),
|
|
1349
1349
|
) -> None:
|
|
1350
1350
|
"""Repo genelinde bus factor analizi yap ve kritik sahiplik risklerini göster."""
|
|
1351
1351
|
from codedna.bus_factor import calculate_bus_factor, get_at_risk_files, _BUYUK_REPO_ESIGI
|
|
@@ -1355,7 +1355,7 @@ def bus_factor(
|
|
|
1355
1355
|
if not is_feature_available("bus_factor"):
|
|
1356
1356
|
console.print(
|
|
1357
1357
|
Panel(
|
|
1358
|
-
"[bold yellow]🔒
|
|
1358
|
+
"[bold yellow]🔒 This feature is available on the Team plan.[/bold yellow]\n"
|
|
1359
1359
|
"[dim]This feature is available on Team plan.[/dim]\n\n"
|
|
1360
1360
|
"[dim]Yükseltmek için:[/dim] [cyan]codedna plan activate <LICENSE_KEY>[/cyan]",
|
|
1361
1361
|
border_style="yellow",
|
|
@@ -1474,14 +1474,14 @@ def debt(
|
|
|
1474
1474
|
|
|
1475
1475
|
console.print(
|
|
1476
1476
|
Panel(
|
|
1477
|
-
f"[bold]
|
|
1477
|
+
f"[bold]File:[/bold] [dim]{borc.dosya_yolu}[/dim]\n"
|
|
1478
1478
|
f"[bold]Borç saati:[/bold] {borc.debt_saatleri:.1f} saat\n"
|
|
1479
1479
|
f"[bold]Aylık maliyet:[/bold] {maliyet_str}\n"
|
|
1480
1480
|
f"[bold]Risk:[/bold] [{risk_renk}]{borc.risk_seviyesi}[/{risk_renk}]\n"
|
|
1481
1481
|
f"[bold]AI olasılığı:[/bold] %{borc.ai_olasiligi*100:.0f} · "
|
|
1482
1482
|
f"[bold]Karmaşıklık:[/bold] {borc.karmasiklik:.0f} · "
|
|
1483
1483
|
f"[bold]Satır:[/bold] {borc.toplam_satir}",
|
|
1484
|
-
title="[bold cyan]💰
|
|
1484
|
+
title="[bold cyan]💰 Technical Debt — File Details[/bold cyan]",
|
|
1485
1485
|
border_style="cyan",
|
|
1486
1486
|
padding=(1, 2),
|
|
1487
1487
|
)
|
|
@@ -1514,14 +1514,14 @@ def debt(
|
|
|
1514
1514
|
console.print("[bold]En maliyetli 5 dosya:[/bold]")
|
|
1515
1515
|
tablo = Table(border_style="dim", show_lines=True, header_style="bold")
|
|
1516
1516
|
tablo.add_column("Dosya", style="white", min_width=30)
|
|
1517
|
-
tablo.add_column("
|
|
1518
|
-
tablo.add_column("
|
|
1517
|
+
tablo.add_column("Debt Hours", justify="right", min_width=11)
|
|
1518
|
+
tablo.add_column("Monthly", justify="right", min_width=10)
|
|
1519
1519
|
tablo.add_column("Risk", justify="center", min_width=10)
|
|
1520
1520
|
|
|
1521
1521
|
for d in ozet.en_pahali_5:
|
|
1522
1522
|
risk_renk = {
|
|
1523
|
-
"
|
|
1524
|
-
"
|
|
1523
|
+
"CRITICAL": "red", "HIGH": "yellow",
|
|
1524
|
+
"MEDIUM": "yellow", "LOW": "green",
|
|
1525
1525
|
}.get(d.risk_seviyesi, "white")
|
|
1526
1526
|
|
|
1527
1527
|
aylik = (
|
|
@@ -1561,12 +1561,12 @@ app.add_typer(sprint_app, name="sprint")
|
|
|
1561
1561
|
|
|
1562
1562
|
@sprint_app.command("create")
|
|
1563
1563
|
def sprint_olustur(
|
|
1564
|
-
name: str = typer.Option(..., "--name", "-n", help="Sprint
|
|
1565
|
-
start: str = typer.Option(..., "--start", "-s", help="
|
|
1566
|
-
end: str = typer.Option(..., "--end", "-e", help="
|
|
1564
|
+
name: str = typer.Option(..., "--name", "-n", help="Sprint name"),
|
|
1565
|
+
start: str = typer.Option(..., "--start", "-s", help="Start date (YYYY-MM-DD)"),
|
|
1566
|
+
end: str = typer.Option(..., "--end", "-e", help="End date (YYYY-MM-DD)"),
|
|
1567
1567
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
1568
1568
|
) -> None:
|
|
1569
|
-
"""
|
|
1569
|
+
"""Create a new sprint and calculate the health score."""
|
|
1570
1570
|
from datetime import datetime as dt
|
|
1571
1571
|
from codedna.sprint_health import calculate_sprint_health, save_sprint_result
|
|
1572
1572
|
from codedna.plan import is_feature_available
|
|
@@ -1574,7 +1574,7 @@ def sprint_olustur(
|
|
|
1574
1574
|
if not is_feature_available("sprint_health"):
|
|
1575
1575
|
console.print(
|
|
1576
1576
|
Panel(
|
|
1577
|
-
"[bold yellow]🔒
|
|
1577
|
+
"[bold yellow]🔒 This feature is available on the Team plan.[/bold yellow]\n"
|
|
1578
1578
|
"[dim]This feature is available on Team plan.[/dim]\n\n"
|
|
1579
1579
|
"[dim]Yükseltmek için:[/dim] [cyan]codedna plan activate <LICENSE_KEY>[/cyan]",
|
|
1580
1580
|
border_style="yellow",
|
|
@@ -1583,7 +1583,7 @@ def sprint_olustur(
|
|
|
1583
1583
|
)
|
|
1584
1584
|
raise typer.Exit(1)
|
|
1585
1585
|
|
|
1586
|
-
#
|
|
1586
|
+
# Parse dates
|
|
1587
1587
|
try:
|
|
1588
1588
|
baslangic = dt.fromisoformat(start)
|
|
1589
1589
|
bitis = dt.fromisoformat(end)
|
|
@@ -1614,7 +1614,7 @@ def sprint_olustur(
|
|
|
1614
1614
|
console.print(
|
|
1615
1615
|
Panel(
|
|
1616
1616
|
f"[bold]Sprint:[/bold] {sonuc.sprint_adi}\n"
|
|
1617
|
-
f"[bold]
|
|
1617
|
+
f"[bold]Date:[/bold] {start} → {end}\n"
|
|
1618
1618
|
f"[bold]Sağlık Skoru:[/bold] [{durum_renk}]{sonuc.health_score:.1f}/100 ({sonuc.durum})[/{durum_renk}]\n"
|
|
1619
1619
|
f"[bold]Toplam Commit:[/bold] {sonuc.toplam_commit}\n"
|
|
1620
1620
|
f"[bold]Ort. Anlama:[/bold] {f'{sonuc.avg_understanding:.1f}/5' if sonuc.avg_understanding else 'Veri yok'}\n"
|
|
@@ -1639,7 +1639,7 @@ def sprint_sagligi(
|
|
|
1639
1639
|
if not is_feature_available("sprint_health"):
|
|
1640
1640
|
console.print(
|
|
1641
1641
|
Panel(
|
|
1642
|
-
"[bold yellow]🔒
|
|
1642
|
+
"[bold yellow]🔒 This feature is available on the Team plan.[/bold yellow]\n"
|
|
1643
1643
|
"[dim]Yükseltmek için:[/dim] [cyan]codedna plan activate <LICENSE_KEY>[/cyan]",
|
|
1644
1644
|
border_style="yellow",
|
|
1645
1645
|
)
|
|
@@ -1672,7 +1672,7 @@ def sprint_sagligi(
|
|
|
1672
1672
|
console.print(
|
|
1673
1673
|
Panel(
|
|
1674
1674
|
f"[bold]Sprint:[/bold] {sprint['sprint_name']}\n"
|
|
1675
|
-
f"[bold]
|
|
1675
|
+
f"[bold]Date:[/bold] {bas} → {bit}\n"
|
|
1676
1676
|
f"[bold]Sağlık Skoru:[/bold] [{durum_renk}]{skor:.1f}/100 ({durum})[/{durum_renk}]\n"
|
|
1677
1677
|
f"[bold]Ort. Anlama:[/bold] {anlama_str}\n"
|
|
1678
1678
|
f"[bold]Borç Delta:[/bold] {delta_val:.1f} saat/commit",
|
|
@@ -1686,15 +1686,15 @@ def sprint_sagligi(
|
|
|
1686
1686
|
@sprint_app.command("history")
|
|
1687
1687
|
def sprint_gecmisi(
|
|
1688
1688
|
repo: Optional[Path] = typer.Option(None, "--repo", "-r", help="Git repo dizini"),
|
|
1689
|
-
limit: int = typer.Option(10, "--limit", "-n", help="
|
|
1689
|
+
limit: int = typer.Option(10, "--limit", "-n", help="Number of sprints to show"),
|
|
1690
1690
|
) -> None:
|
|
1691
|
-
"""
|
|
1691
|
+
"""Show historical sprints in a table."""
|
|
1692
1692
|
from codedna.db import get_sprint_history as db_sprint_gecmisi
|
|
1693
1693
|
from codedna.plan import is_feature_available
|
|
1694
1694
|
from datetime import datetime as dt
|
|
1695
1695
|
|
|
1696
1696
|
if not is_feature_available("sprint_health"):
|
|
1697
|
-
console.print("[bold yellow]🔒
|
|
1697
|
+
console.print("[bold yellow]🔒 This feature is available on the Team plan.[/bold yellow]")
|
|
1698
1698
|
raise typer.Exit(1)
|
|
1699
1699
|
|
|
1700
1700
|
kok = repo or find_git_root() or Path.cwd()
|
|
@@ -1713,10 +1713,10 @@ def sprint_gecmisi(
|
|
|
1713
1713
|
header_style="bold",
|
|
1714
1714
|
)
|
|
1715
1715
|
tablo.add_column("Sprint", min_width=16)
|
|
1716
|
-
tablo.add_column("
|
|
1717
|
-
tablo.add_column("
|
|
1718
|
-
tablo.add_column("
|
|
1719
|
-
tablo.add_column("
|
|
1716
|
+
tablo.add_column("Date Range", min_width=22)
|
|
1717
|
+
tablo.add_column("Health", justify="center", min_width=14)
|
|
1718
|
+
tablo.add_column("Understanding", justify="center", min_width=10)
|
|
1719
|
+
tablo.add_column("Debt Delta", justify="right", min_width=11)
|
|
1720
1720
|
|
|
1721
1721
|
for s in sprintler:
|
|
1722
1722
|
skor = s["health_score"] or 0.0
|
|
@@ -1807,8 +1807,8 @@ def plan(
|
|
|
1807
1807
|
}.get(mevcut, "white")
|
|
1808
1808
|
|
|
1809
1809
|
tablo = Table(border_style="dim", show_header=False, padding=(0, 1))
|
|
1810
|
-
tablo.add_column("
|
|
1811
|
-
tablo.add_column("
|
|
1810
|
+
tablo.add_column("Feature", style="dim")
|
|
1811
|
+
tablo.add_column("Value", style="white")
|
|
1812
1812
|
|
|
1813
1813
|
for k, v in limitler.items():
|
|
1814
1814
|
if isinstance(v, bool):
|
|
@@ -1822,7 +1822,7 @@ def plan(
|
|
|
1822
1822
|
console.print()
|
|
1823
1823
|
console.print(
|
|
1824
1824
|
Panel(
|
|
1825
|
-
f"[bold]
|
|
1825
|
+
f"[bold]Current Plan:[/bold] [{plan_renk}]{mevcut.value.upper()}[/{plan_renk}]\n\n"
|
|
1826
1826
|
+ (
|
|
1827
1827
|
"[dim]Lisans aktif etmek için:[/dim] [cyan]codedna plan activate <LICENSE_KEY>[/cyan]"
|
|
1828
1828
|
if mevcut == PlanEnum.FREE
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|