gitflow-analytics 3.9.3__tar.gz → 3.10.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/PKG-INFO +1 -1
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/_version.py +1 -1
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/cli_wizards/install_wizard.py +243 -20
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics.egg-info/PKG-INFO +1 -1
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/CHANGELOG.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/CLAUDE.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/LICENSE +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/MANIFEST.in +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/README.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/README.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/REFACTOR.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/SECURITY.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/STRUCTURE.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/_archive/temp-files/PROGRESS_TRACKING_FIXES.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/_archive/temp-files/SYNTAX_ERROR_FIX.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/architecture/README.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/architecture/branch-analysis-optimization.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/architecture/caching-strategy.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/architecture/llm-classifier-refactoring.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/architecture/ml-pipeline.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/configuration/configuration.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/deployment/README.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/design/README.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/design/circuit-breaker-implementation.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/design/commit-classification-design.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/design/git_pm_correlation_design.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/design/platform-agnostic-pm-framework.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/design/qualitative_data_extraction.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/developer/README.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/developer/contributing.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/developer/development-setup.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/developer/training-guide.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/examples/README.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/getting-started/README.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/getting-started/first-analysis.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/getting-started/installation.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/getting-started/quickstart.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/guides/README.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/guides/chatgpt-setup.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/guides/identity-resolution-enhanced.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/guides/interactive-launcher.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/guides/managing-aliases.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/guides/ml-categorization.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/guides/pm-platform-setup.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/guides/troubleshooting.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/quick-reference/launcher-and-identity.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/reference/README.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/reference/cache-system.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/reference/cli-commands.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/reference/configuration-schema.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/reference/json-export-schema.md +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/pyproject.toml +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/setup.cfg +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/classification/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/classification/batch_classifier.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/classification/classifier.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/classification/feature_extractor.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/classification/linguist_analyzer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/classification/model.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/cli.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/cli_wizards/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/cli_wizards/run_launcher.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/aliases.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/errors.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/loader.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/profiles.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/repository.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/schema.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/validator.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/constants.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/analyzer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/branch_mapper.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/cache.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/data_fetcher.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/git_auth.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/git_timeout_wrapper.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/identity.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/metrics_storage.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/progress.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/schema_version.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/subprocess_git.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/extractors/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/extractors/base.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/extractors/ml_tickets.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/extractors/story_points.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/extractors/tickets.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/identity_llm/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/identity_llm/analysis_pass.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/identity_llm/analyzer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/identity_llm/models.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/integrations/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/integrations/github_integration.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/integrations/jira_integration.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/integrations/orchestrator.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/metrics/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/metrics/activity_scoring.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/metrics/branch_health.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/metrics/dora.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/models/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/models/database.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/pm_framework/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/pm_framework/adapters/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/pm_framework/adapters/jira_adapter.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/pm_framework/base.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/pm_framework/models.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/pm_framework/orchestrator.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/pm_framework/registry.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/chatgpt_analyzer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/change_type.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/domain_classifier.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/intent_analyzer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/llm/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/llm/base.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/llm/batch_processor.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/llm/cache.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/llm/cost_tracker.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/llm/openai_client.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/llm/prompts.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/llm/response_parser.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/llm_commit_classifier.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/classifiers/risk_analyzer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/core/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/core/llm_fallback.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/core/nlp_engine.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/core/pattern_cache.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/core/processor.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/enhanced_analyzer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/example_enhanced_usage.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/models/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/models/schemas.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/utils/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/utils/batch_processor.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/utils/cost_tracker.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/utils/metrics.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/utils/text_processing.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/analytics_writer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/base.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/branch_health_writer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/classification_writer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/cli_integration.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/csv_writer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/data_models.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/database_report_generator.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/example_usage.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/factory.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/formatters.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/html_generator.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/interfaces.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/json_exporter.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/narrative_writer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/story_point_correlation.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/reports/weekly_trends_writer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/security/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/security/config.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/security/extractors/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/security/extractors/dependency_checker.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/security/extractors/secret_detector.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/security/extractors/vulnerability_scanner.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/security/llm_analyzer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/security/security_analyzer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/training/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/training/model_loader.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/training/pipeline.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/ui/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/ui/progress_display.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/verify_activity.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics.egg-info/SOURCES.txt +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics.egg-info/dependency_links.txt +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics.egg-info/entry_points.txt +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics.egg-info/requires.txt +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics.egg-info/top_level.txt +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/conftest.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/core/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/core/test_analyzer.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/core/test_cache.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/core/test_data_fetcher.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/core/test_identity.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/core/test_progress.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/extractors/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/integrations/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/metrics/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/models/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/qualitative/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/qualitative/test_basic_integration.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/reports/__init__.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_atomic_caching.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_classification_system.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_cli.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_config.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_config_extends.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_config_profiles.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_config_story_points.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_jira_connection.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_llm_commit_classification.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_march_2025_comparison.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_metrics.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_ml_accuracy.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_ml_components.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_ml_comprehensive.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_ml_integration.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_pm_env_resolution.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_report_abstraction.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_reports.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_story_points_analysis.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_training_pipeline.py +0 -0
- {gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/tests/test_two_step_process.py +0 -0
|
@@ -7,6 +7,8 @@ and comprehensive configuration generation.
|
|
|
7
7
|
import getpass
|
|
8
8
|
import logging
|
|
9
9
|
import os
|
|
10
|
+
import re
|
|
11
|
+
import shutil
|
|
10
12
|
import stat
|
|
11
13
|
import subprocess
|
|
12
14
|
import sys
|
|
@@ -18,6 +20,8 @@ from typing import Optional
|
|
|
18
20
|
import click
|
|
19
21
|
import requests
|
|
20
22
|
import yaml
|
|
23
|
+
from git import GitCommandError, Repo
|
|
24
|
+
from git.exc import InvalidGitRepositoryError
|
|
21
25
|
from github import Github
|
|
22
26
|
from github.GithubException import GithubException
|
|
23
27
|
|
|
@@ -490,6 +494,203 @@ class InstallWizard:
|
|
|
490
494
|
logger.debug(f"Path validation error: {type(e).__name__}")
|
|
491
495
|
return None
|
|
492
496
|
|
|
497
|
+
def _detect_git_url(self, input_str: str) -> Optional[str]:
|
|
498
|
+
"""Detect if input is a Git URL and normalize it.
|
|
499
|
+
|
|
500
|
+
Args:
|
|
501
|
+
input_str: User input string
|
|
502
|
+
|
|
503
|
+
Returns:
|
|
504
|
+
Normalized Git URL if detected, None if it's a local path
|
|
505
|
+
"""
|
|
506
|
+
import re
|
|
507
|
+
|
|
508
|
+
# HTTPS URL patterns
|
|
509
|
+
https_pattern = r"^https?://[^/]+/[^/]+/[^/]+(?:\.git)?$"
|
|
510
|
+
# SSH URL pattern
|
|
511
|
+
ssh_pattern = r"^git@[^:]+:[^/]+/[^/]+(?:\.git)?$"
|
|
512
|
+
|
|
513
|
+
input_str = input_str.strip()
|
|
514
|
+
|
|
515
|
+
if re.match(https_pattern, input_str, re.IGNORECASE) or re.match(ssh_pattern, input_str):
|
|
516
|
+
# Ensure .git extension for consistency
|
|
517
|
+
if not input_str.endswith(".git"):
|
|
518
|
+
input_str = input_str + ".git"
|
|
519
|
+
return input_str
|
|
520
|
+
|
|
521
|
+
return None
|
|
522
|
+
|
|
523
|
+
def _clone_git_repository(self, git_url: str) -> Optional[tuple[Path, str]]:
|
|
524
|
+
"""Clone a Git repository to the local repos/ directory.
|
|
525
|
+
|
|
526
|
+
Args:
|
|
527
|
+
git_url: Git URL to clone
|
|
528
|
+
|
|
529
|
+
Returns:
|
|
530
|
+
Tuple of (local_path, original_url) if successful, None if failed
|
|
531
|
+
"""
|
|
532
|
+
try:
|
|
533
|
+
# Extract repository name from URL
|
|
534
|
+
# Handle both HTTPS and SSH formats
|
|
535
|
+
match = re.search(r"/([^/]+?)(?:\.git)?$", git_url)
|
|
536
|
+
if not match:
|
|
537
|
+
click.echo("❌ Could not extract repository name from URL")
|
|
538
|
+
return None
|
|
539
|
+
|
|
540
|
+
repo_name = match.group(1)
|
|
541
|
+
click.echo(f"📦 Repository: {repo_name}")
|
|
542
|
+
|
|
543
|
+
# Create repos directory in current working directory
|
|
544
|
+
repos_dir = Path.cwd() / "repos"
|
|
545
|
+
repos_dir.mkdir(parents=True, exist_ok=True)
|
|
546
|
+
click.echo(f"📁 Clone directory: {repos_dir}")
|
|
547
|
+
|
|
548
|
+
# Target path for cloned repository
|
|
549
|
+
target_path = repos_dir / repo_name
|
|
550
|
+
|
|
551
|
+
# Check if repository already exists
|
|
552
|
+
if target_path.exists():
|
|
553
|
+
click.echo(f"⚠️ Directory already exists: {target_path}")
|
|
554
|
+
|
|
555
|
+
# Check if it's a valid git repository
|
|
556
|
+
try:
|
|
557
|
+
existing_repo = Repo(target_path)
|
|
558
|
+
if existing_repo.working_dir:
|
|
559
|
+
click.echo("✅ Found existing git repository")
|
|
560
|
+
|
|
561
|
+
# Check if remote URL matches
|
|
562
|
+
try:
|
|
563
|
+
origin_url = existing_repo.remotes.origin.url
|
|
564
|
+
if origin_url == git_url or self._normalize_git_url(
|
|
565
|
+
origin_url
|
|
566
|
+
) == self._normalize_git_url(git_url):
|
|
567
|
+
click.echo(f"✅ Remote URL matches: {origin_url}")
|
|
568
|
+
|
|
569
|
+
# Offer to update
|
|
570
|
+
if click.confirm(
|
|
571
|
+
"Update existing repository (git pull)?", default=True
|
|
572
|
+
):
|
|
573
|
+
click.echo("🔄 Updating repository...")
|
|
574
|
+
origin = existing_repo.remotes.origin
|
|
575
|
+
origin.pull()
|
|
576
|
+
click.echo("✅ Repository updated")
|
|
577
|
+
|
|
578
|
+
return (target_path, git_url)
|
|
579
|
+
else:
|
|
580
|
+
click.echo("⚠️ Remote URL mismatch:")
|
|
581
|
+
click.echo(f" Existing: {origin_url}")
|
|
582
|
+
click.echo(f" Requested: {git_url}")
|
|
583
|
+
if not click.confirm(
|
|
584
|
+
"Use existing repository anyway?", default=False
|
|
585
|
+
):
|
|
586
|
+
return None
|
|
587
|
+
return (target_path, git_url)
|
|
588
|
+
except Exception as e:
|
|
589
|
+
click.echo(f"⚠️ Could not check remote URL: {type(e).__name__}")
|
|
590
|
+
if click.confirm("Use existing repository anyway?", default=False):
|
|
591
|
+
return (target_path, git_url)
|
|
592
|
+
return None
|
|
593
|
+
except InvalidGitRepositoryError:
|
|
594
|
+
click.echo("❌ Directory exists but is not a git repository")
|
|
595
|
+
if not click.confirm("Remove and re-clone?", default=False):
|
|
596
|
+
return None
|
|
597
|
+
|
|
598
|
+
# Remove existing directory
|
|
599
|
+
shutil.rmtree(target_path)
|
|
600
|
+
click.echo("🗑️ Removed existing directory")
|
|
601
|
+
|
|
602
|
+
# Clone the repository
|
|
603
|
+
click.echo(f"🔄 Cloning {git_url}...")
|
|
604
|
+
click.echo(" This may take a moment depending on repository size...")
|
|
605
|
+
|
|
606
|
+
# Clone with progress
|
|
607
|
+
Repo.clone_from(git_url, target_path, progress=self._get_git_progress())
|
|
608
|
+
|
|
609
|
+
# Verify clone succeeded
|
|
610
|
+
if not (target_path / ".git").exists():
|
|
611
|
+
click.echo("❌ Clone appeared to succeed but .git directory not found")
|
|
612
|
+
return None
|
|
613
|
+
|
|
614
|
+
click.echo(f"✅ Successfully cloned to: {target_path}")
|
|
615
|
+
return (target_path, git_url)
|
|
616
|
+
|
|
617
|
+
except GitCommandError as e:
|
|
618
|
+
click.echo("❌ Git clone failed")
|
|
619
|
+
|
|
620
|
+
# Parse error message for common issues
|
|
621
|
+
error_str = str(e).lower()
|
|
622
|
+
if "authentication failed" in error_str or "permission denied" in error_str:
|
|
623
|
+
click.echo("🔐 Authentication required")
|
|
624
|
+
click.echo(" For HTTPS: Configure Git credentials or use a personal access token")
|
|
625
|
+
click.echo(" For SSH: Ensure your SSH key is added to your Git provider")
|
|
626
|
+
elif "not found" in error_str or "does not exist" in error_str:
|
|
627
|
+
click.echo("🔍 Repository not found")
|
|
628
|
+
click.echo(" Check the URL and ensure you have access")
|
|
629
|
+
elif "network" in error_str or "timeout" in error_str:
|
|
630
|
+
click.echo("🌐 Network error")
|
|
631
|
+
click.echo(" Check your internet connection and try again")
|
|
632
|
+
else:
|
|
633
|
+
logger.debug(f"Git clone error type: {type(e).__name__}")
|
|
634
|
+
|
|
635
|
+
return None
|
|
636
|
+
|
|
637
|
+
except OSError as e:
|
|
638
|
+
error_type = type(e).__name__
|
|
639
|
+
click.echo(f"❌ File system error: {error_type}")
|
|
640
|
+
if "space" in str(e).lower():
|
|
641
|
+
click.echo("💾 Insufficient disk space")
|
|
642
|
+
logger.debug(f"Clone file system error: {error_type}")
|
|
643
|
+
return None
|
|
644
|
+
|
|
645
|
+
except Exception as e:
|
|
646
|
+
error_type = type(e).__name__
|
|
647
|
+
click.echo(f"❌ Unexpected error during clone: {error_type}")
|
|
648
|
+
logger.error(f"Clone error type: {error_type}")
|
|
649
|
+
return None
|
|
650
|
+
|
|
651
|
+
def _normalize_git_url(self, url: str) -> str:
|
|
652
|
+
"""Normalize Git URL for comparison.
|
|
653
|
+
|
|
654
|
+
Args:
|
|
655
|
+
url: Git URL to normalize
|
|
656
|
+
|
|
657
|
+
Returns:
|
|
658
|
+
Normalized URL (lowercase, with .git extension)
|
|
659
|
+
"""
|
|
660
|
+
url = url.lower().strip()
|
|
661
|
+
if not url.endswith(".git"):
|
|
662
|
+
url = url + ".git"
|
|
663
|
+
return url
|
|
664
|
+
|
|
665
|
+
def _get_git_progress(self):
|
|
666
|
+
"""Get a Git progress handler for clone operations.
|
|
667
|
+
|
|
668
|
+
Returns:
|
|
669
|
+
Progress handler for GitPython or None
|
|
670
|
+
"""
|
|
671
|
+
try:
|
|
672
|
+
from git import RemoteProgress
|
|
673
|
+
|
|
674
|
+
class CloneProgress(RemoteProgress):
|
|
675
|
+
"""Progress handler for git clone operations."""
|
|
676
|
+
|
|
677
|
+
def __init__(self):
|
|
678
|
+
super().__init__()
|
|
679
|
+
self.last_percent = 0
|
|
680
|
+
|
|
681
|
+
def update(self, op_code, cur_count, max_count=None, message=""):
|
|
682
|
+
if max_count:
|
|
683
|
+
percent = int((cur_count / max_count) * 100)
|
|
684
|
+
# Only show updates every 10%
|
|
685
|
+
if percent >= self.last_percent + 10:
|
|
686
|
+
click.echo(f" Progress: {percent}%")
|
|
687
|
+
self.last_percent = percent
|
|
688
|
+
|
|
689
|
+
return CloneProgress()
|
|
690
|
+
except Exception:
|
|
691
|
+
# If progress handler fails, return None (clone will work without it)
|
|
692
|
+
return None
|
|
693
|
+
|
|
493
694
|
def _setup_manual_repos(self) -> bool:
|
|
494
695
|
"""Setup manual repository configuration.
|
|
495
696
|
|
|
@@ -497,44 +698,66 @@ class InstallWizard:
|
|
|
497
698
|
True if setup successful, False otherwise
|
|
498
699
|
"""
|
|
499
700
|
click.echo("\n📦 Manual Repository Mode")
|
|
500
|
-
click.echo("You can specify one or more local repository paths.")
|
|
701
|
+
click.echo("You can specify one or more local repository paths or Git URLs.")
|
|
702
|
+
click.echo("Supported formats:")
|
|
703
|
+
click.echo(" • Local path: /path/to/repo or ~/repos/myproject")
|
|
704
|
+
click.echo(" • HTTPS URL: https://github.com/owner/repo.git")
|
|
705
|
+
click.echo(" • SSH URL: git@github.com:owner/repo.git")
|
|
501
706
|
click.echo()
|
|
502
707
|
|
|
503
708
|
repositories = []
|
|
504
709
|
while True:
|
|
505
|
-
|
|
506
|
-
"Enter repository path (or press Enter to finish)",
|
|
710
|
+
repo_input = click.prompt(
|
|
711
|
+
"Enter repository path or Git URL (or press Enter to finish)",
|
|
507
712
|
type=str,
|
|
508
713
|
default="",
|
|
509
714
|
show_default=False,
|
|
510
715
|
).strip()
|
|
511
716
|
|
|
512
|
-
if not
|
|
717
|
+
if not repo_input:
|
|
513
718
|
if not repositories:
|
|
514
719
|
click.echo("❌ At least one repository is required")
|
|
515
720
|
continue
|
|
516
721
|
break
|
|
517
722
|
|
|
518
|
-
#
|
|
519
|
-
|
|
520
|
-
if
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
723
|
+
# Check if input is a Git URL
|
|
724
|
+
git_url = self._detect_git_url(repo_input)
|
|
725
|
+
if git_url:
|
|
726
|
+
# Handle Git URL cloning
|
|
727
|
+
result = self._clone_git_repository(git_url)
|
|
728
|
+
if result is None:
|
|
729
|
+
# Clone failed, ask user if they want to retry or skip
|
|
730
|
+
if not click.confirm("Try a different repository?", default=True):
|
|
731
|
+
if repositories:
|
|
732
|
+
break # User has other repos, can finish
|
|
733
|
+
continue # User has no repos yet, must add at least one
|
|
526
734
|
continue
|
|
527
735
|
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
736
|
+
# Clone successful
|
|
737
|
+
local_path, original_url = result
|
|
738
|
+
repositories.append({"path": str(local_path), "git_url": original_url})
|
|
739
|
+
click.echo(f"Added repository #{len(repositories)}")
|
|
531
740
|
else:
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
741
|
+
# Handle local path
|
|
742
|
+
path_obj = self._validate_directory_path(repo_input, "Repository path")
|
|
743
|
+
if path_obj is None:
|
|
744
|
+
continue # Re-prompt
|
|
745
|
+
|
|
746
|
+
if not path_obj.exists():
|
|
747
|
+
click.echo(f"⚠️ Path does not exist: {path_obj}")
|
|
748
|
+
if not click.confirm("Add anyway?", default=False):
|
|
749
|
+
continue
|
|
750
|
+
|
|
751
|
+
# Check if it's a git repository
|
|
752
|
+
if (path_obj / ".git").exists():
|
|
753
|
+
click.echo(f"✅ Valid git repository: {path_obj}")
|
|
754
|
+
else:
|
|
755
|
+
click.echo(f"⚠️ Not a git repository: {path_obj}")
|
|
756
|
+
if not click.confirm("Add anyway?", default=False):
|
|
757
|
+
continue
|
|
535
758
|
|
|
536
|
-
|
|
537
|
-
|
|
759
|
+
repositories.append({"path": str(path_obj)})
|
|
760
|
+
click.echo(f"Added repository #{len(repositories)}")
|
|
538
761
|
|
|
539
762
|
if not click.confirm("Add another repository?", default=False):
|
|
540
763
|
break
|
|
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
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/_archive/temp-files/SYNTAX_ERROR_FIX.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/architecture/llm-classifier-refactoring.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/design/circuit-breaker-implementation.md
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/design/commit-classification-design.md
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/design/git_pm_correlation_design.md
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/design/platform-agnostic-pm-framework.md
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/design/qualitative_data_extraction.md
RENAMED
|
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
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/guides/identity-resolution-enhanced.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/docs/quick-reference/launcher-and-identity.md
RENAMED
|
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
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/classification/model.py
RENAMED
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/cli_wizards/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/__init__.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/aliases.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/profiles.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/repository.py
RENAMED
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/config/validator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/branch_mapper.py
RENAMED
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/data_fetcher.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/metrics_storage.py
RENAMED
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/schema_version.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/core/subprocess_git.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/extractors/__init__.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/extractors/base.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/extractors/ml_tickets.py
RENAMED
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/extractors/tickets.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/identity_llm/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/identity_llm/analyzer.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/identity_llm/models.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/integrations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/metrics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/metrics/branch_health.py
RENAMED
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/models/__init__.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/models/database.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/pm_framework/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/pm_framework/base.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/pm_framework/models.py
RENAMED
|
File without changes
|
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/pm_framework/registry.py
RENAMED
|
File without changes
|
{gitflow_analytics-3.9.3 → gitflow_analytics-3.10.4}/src/gitflow_analytics/qualitative/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|