gitflow-analytics 1.3.6__tar.gz → 1.3.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/PKG-INFO +1 -1
  2. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/_version.py +1 -1
  3. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/cli.py +103 -53
  4. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/config/loader.py +1 -0
  5. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/config/schema.py +3 -0
  6. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/core/data_fetcher.py +246 -154
  7. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics.egg-info/PKG-INFO +1 -1
  8. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics.egg-info/SOURCES.txt +0 -7
  9. gitflow_analytics-1.3.6/docs/STORY_POINTS_CONFIG_SUMMARY.md +0 -107
  10. gitflow_analytics-1.3.6/docs/guides/LLM_CLASSIFICATION_GUIDE.md +0 -164
  11. gitflow_analytics-1.3.6/tests/debug_bulk_exists.py +0 -62
  12. gitflow_analytics-1.3.6/tests/debug_commit_story_points.py +0 -145
  13. gitflow_analytics-1.3.6/tests/debug_database_storage.py +0 -228
  14. gitflow_analytics-1.3.6/tests/debug_jira_enrichment.py +0 -110
  15. gitflow_analytics-1.3.6/tests/debug_story_points.py +0 -121
  16. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/CHANGELOG.md +0 -0
  17. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/CLAUDE.md +0 -0
  18. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/LICENSE +0 -0
  19. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/MANIFEST.in +0 -0
  20. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/README.md +0 -0
  21. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/README.md +0 -0
  22. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/SECURITY.md +0 -0
  23. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/STRUCTURE.md +0 -0
  24. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/architecture/README.md +0 -0
  25. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/architecture/branch-analysis-optimization.md +0 -0
  26. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/architecture/caching-strategy.md +0 -0
  27. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/architecture/llm-classifier-refactoring.md +0 -0
  28. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/architecture/ml-pipeline.md +0 -0
  29. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/configuration/configuration.md +0 -0
  30. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/deployment/README.md +0 -0
  31. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/design/README.md +0 -0
  32. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/design/commit-classification-design.md +0 -0
  33. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/design/git_pm_correlation_design.md +0 -0
  34. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/design/platform-agnostic-pm-framework.md +0 -0
  35. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/design/qualitative_data_extraction.md +0 -0
  36. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/developer/README.md +0 -0
  37. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/developer/contributing.md +0 -0
  38. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/developer/development-setup.md +0 -0
  39. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/developer/training-guide.md +0 -0
  40. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/examples/README.md +0 -0
  41. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/getting-started/README.md +0 -0
  42. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/getting-started/first-analysis.md +0 -0
  43. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/getting-started/installation.md +0 -0
  44. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/getting-started/quickstart.md +0 -0
  45. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/guides/README.md +0 -0
  46. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/guides/chatgpt-setup.md +0 -0
  47. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/guides/ml-categorization.md +0 -0
  48. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/guides/troubleshooting.md +0 -0
  49. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/reference/README.md +0 -0
  50. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/reference/cache-system.md +0 -0
  51. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/reference/cli-commands.md +0 -0
  52. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/reference/configuration-schema.md +0 -0
  53. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/docs/reference/json-export-schema.md +0 -0
  54. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/pyproject.toml +0 -0
  55. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/setup.cfg +0 -0
  56. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/__init__.py +0 -0
  57. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/classification/__init__.py +0 -0
  58. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/classification/batch_classifier.py +0 -0
  59. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/classification/classifier.py +0 -0
  60. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/classification/feature_extractor.py +0 -0
  61. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/classification/linguist_analyzer.py +0 -0
  62. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/classification/model.py +0 -0
  63. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/cli_rich.py +0 -0
  64. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/config/__init__.py +0 -0
  65. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/config/errors.py +0 -0
  66. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/config/profiles.py +0 -0
  67. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/config/repository.py +0 -0
  68. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/config/validator.py +0 -0
  69. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/config.py +0 -0
  70. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/core/__init__.py +0 -0
  71. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/core/analyzer.py +0 -0
  72. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/core/branch_mapper.py +0 -0
  73. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/core/cache.py +0 -0
  74. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/core/identity.py +0 -0
  75. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/core/metrics_storage.py +0 -0
  76. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/core/progress.py +0 -0
  77. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/core/schema_version.py +0 -0
  78. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/extractors/__init__.py +0 -0
  79. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/extractors/base.py +0 -0
  80. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/extractors/ml_tickets.py +0 -0
  81. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/extractors/story_points.py +0 -0
  82. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/extractors/tickets.py +0 -0
  83. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/identity_llm/__init__.py +0 -0
  84. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/identity_llm/analysis_pass.py +0 -0
  85. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/identity_llm/analyzer.py +0 -0
  86. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/identity_llm/models.py +0 -0
  87. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/integrations/__init__.py +0 -0
  88. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/integrations/github_integration.py +0 -0
  89. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/integrations/jira_integration.py +0 -0
  90. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/integrations/orchestrator.py +0 -0
  91. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/metrics/__init__.py +0 -0
  92. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/metrics/activity_scoring.py +0 -0
  93. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/metrics/branch_health.py +0 -0
  94. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/metrics/dora.py +0 -0
  95. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/models/__init__.py +0 -0
  96. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/models/database.py +0 -0
  97. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/pm_framework/__init__.py +0 -0
  98. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/pm_framework/adapters/__init__.py +0 -0
  99. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/pm_framework/adapters/jira_adapter.py +0 -0
  100. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/pm_framework/base.py +0 -0
  101. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/pm_framework/models.py +0 -0
  102. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/pm_framework/orchestrator.py +0 -0
  103. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/pm_framework/registry.py +0 -0
  104. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/__init__.py +0 -0
  105. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/chatgpt_analyzer.py +0 -0
  106. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/__init__.py +0 -0
  107. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/change_type.py +0 -0
  108. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/domain_classifier.py +0 -0
  109. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/intent_analyzer.py +0 -0
  110. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/llm/__init__.py +0 -0
  111. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/llm/base.py +0 -0
  112. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/llm/batch_processor.py +0 -0
  113. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/llm/cache.py +0 -0
  114. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/llm/cost_tracker.py +0 -0
  115. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/llm/openai_client.py +0 -0
  116. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/llm/prompts.py +0 -0
  117. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/llm/response_parser.py +0 -0
  118. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/llm_commit_classifier.py +0 -0
  119. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/classifiers/risk_analyzer.py +0 -0
  120. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/core/__init__.py +0 -0
  121. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/core/llm_fallback.py +0 -0
  122. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/core/nlp_engine.py +0 -0
  123. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/core/pattern_cache.py +0 -0
  124. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/core/processor.py +0 -0
  125. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/enhanced_analyzer.py +0 -0
  126. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/example_enhanced_usage.py +0 -0
  127. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/models/__init__.py +0 -0
  128. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/models/schemas.py +0 -0
  129. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/utils/__init__.py +0 -0
  130. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/utils/batch_processor.py +0 -0
  131. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/utils/cost_tracker.py +0 -0
  132. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/utils/metrics.py +0 -0
  133. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/qualitative/utils/text_processing.py +0 -0
  134. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/__init__.py +0 -0
  135. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/analytics_writer.py +0 -0
  136. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/base.py +0 -0
  137. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/branch_health_writer.py +0 -0
  138. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/classification_writer.py +0 -0
  139. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/cli_integration.py +0 -0
  140. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/csv_writer.py +0 -0
  141. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/data_models.py +0 -0
  142. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/database_report_generator.py +0 -0
  143. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/example_usage.py +0 -0
  144. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/factory.py +0 -0
  145. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/formatters.py +0 -0
  146. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/html_generator.py +0 -0
  147. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/interfaces.py +0 -0
  148. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/json_exporter.py +0 -0
  149. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/narrative_writer.py +0 -0
  150. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/story_point_correlation.py +0 -0
  151. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/reports/weekly_trends_writer.py +0 -0
  152. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/training/__init__.py +0 -0
  153. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/training/model_loader.py +0 -0
  154. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/training/pipeline.py +0 -0
  155. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/__init__.py +0 -0
  156. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/app.py +0 -0
  157. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/screens/__init__.py +0 -0
  158. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/screens/analysis_progress_screen.py +0 -0
  159. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/screens/configuration_screen.py +0 -0
  160. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/screens/loading_screen.py +0 -0
  161. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/screens/main_screen.py +0 -0
  162. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/screens/results_screen.py +0 -0
  163. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/widgets/__init__.py +0 -0
  164. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/widgets/data_table.py +0 -0
  165. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/widgets/export_modal.py +0 -0
  166. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics/tui/widgets/progress_widget.py +0 -0
  167. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics.egg-info/dependency_links.txt +0 -0
  168. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics.egg-info/entry_points.txt +0 -0
  169. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics.egg-info/requires.txt +0 -0
  170. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/src/gitflow_analytics.egg-info/top_level.txt +0 -0
  171. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/__init__.py +0 -0
  172. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/conftest.py +0 -0
  173. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/core/__init__.py +0 -0
  174. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/core/test_analyzer.py +0 -0
  175. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/core/test_cache.py +0 -0
  176. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/core/test_identity.py +0 -0
  177. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/core/test_progress.py +0 -0
  178. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/extractors/__init__.py +0 -0
  179. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/integrations/__init__.py +0 -0
  180. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/metrics/__init__.py +0 -0
  181. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/models/__init__.py +0 -0
  182. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/qualitative/__init__.py +0 -0
  183. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/qualitative/test_basic_integration.py +0 -0
  184. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/reports/__init__.py +0 -0
  185. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_atomic_caching.py +0 -0
  186. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_classification_system.py +0 -0
  187. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_cli.py +0 -0
  188. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_config.py +0 -0
  189. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_config_extends.py +0 -0
  190. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_config_profiles.py +0 -0
  191. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_config_story_points.py +0 -0
  192. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_jira_connection.py +0 -0
  193. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_llm_commit_classification.py +0 -0
  194. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_march_2025_comparison.py +0 -0
  195. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_metrics.py +0 -0
  196. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_ml_accuracy.py +0 -0
  197. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_ml_components.py +0 -0
  198. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_ml_comprehensive.py +0 -0
  199. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_ml_integration.py +0 -0
  200. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_report_abstraction.py +0 -0
  201. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_reports.py +0 -0
  202. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_story_points_analysis.py +0 -0
  203. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_training_pipeline.py +0 -0
  204. {gitflow_analytics-1.3.6 → gitflow_analytics-1.3.11}/tests/test_two_step_process.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitflow-analytics
3
- Version: 1.3.6
3
+ Version: 1.3.11
4
4
  Summary: Analyze Git repositories for developer productivity insights
5
5
  Author-email: Bob Matyas <bobmatnyc@gmail.com>
6
6
  License: MIT
@@ -1,4 +1,4 @@
1
1
  """Version information for gitflow-analytics."""
2
2
 
3
- __version__ = "1.3.6"
3
+ __version__ = "1.3.11"
4
4
  __version_info__ = tuple(int(x) for x in __version__.split("."))
@@ -1069,6 +1069,7 @@ def analyze(
1069
1069
 
1070
1070
  # Perform data fetch for repositories that need analysis
1071
1071
  from .core.data_fetcher import GitDataFetcher
1072
+ from .core.progress import get_progress_service
1072
1073
 
1073
1074
  data_fetcher = GitDataFetcher(
1074
1075
  cache=cache,
@@ -1083,74 +1084,105 @@ def analyze(
1083
1084
  orchestrator = IntegrationOrchestrator(cfg, cache)
1084
1085
  jira_integration = orchestrator.integrations.get("jira")
1085
1086
 
1087
+ # Get progress service for overall repository progress
1088
+ progress = get_progress_service()
1089
+
1086
1090
  # Fetch data for repositories that need analysis
1087
1091
  total_commits = 0
1088
1092
  total_tickets = 0
1089
1093
 
1090
- for repo_config in repos_needing_analysis:
1091
- try:
1092
- repo_path = Path(repo_config.path)
1093
- project_key = repo_config.project_key or repo_path.name
1094
-
1095
- # Progress callback for fetch
1096
- def progress_callback(message: str):
1097
- if display:
1098
- display.print_status(f" {message}", "info")
1099
-
1100
- # Fetch repository data
1101
- result = data_fetcher.fetch_repository_data(
1102
- repo_path=repo_path,
1103
- project_key=project_key,
1104
- weeks_back=weeks,
1105
- branch_patterns=getattr(repo_config, "branch_patterns", None),
1106
- jira_integration=jira_integration,
1107
- progress_callback=progress_callback,
1108
- start_date=start_date,
1109
- end_date=end_date,
1110
- )
1094
+ # Create top-level progress for all repositories
1095
+ with progress.progress(
1096
+ total=len(repos_needing_analysis),
1097
+ description="Processing repositories",
1098
+ unit="repos",
1099
+ ) as repos_progress_ctx:
1111
1100
 
1112
- total_commits += result["stats"]["total_commits"]
1113
- total_tickets += result["stats"]["unique_tickets"]
1101
+ for idx, repo_config in enumerate(repos_needing_analysis, 1):
1102
+ try:
1103
+ repo_path = Path(repo_config.path)
1104
+ project_key = repo_config.project_key or repo_path.name
1114
1105
 
1115
- if display:
1116
- display.print_status(
1117
- f" ✅ {project_key}: {result['stats']['total_commits']} commits, "
1118
- f"{result['stats']['unique_tickets']} tickets",
1119
- "success",
1106
+ # Update overall progress description
1107
+ progress.set_description(
1108
+ repos_progress_ctx,
1109
+ f"Repository {idx}/{len(repos_needing_analysis)}: {project_key}",
1120
1110
  )
1121
1111
 
1122
- # Mark repository analysis as complete
1123
- cache.mark_repository_analysis_complete(
1124
- repo_path=str(repo_path),
1125
- repo_name=repo_config.name,
1126
- project_key=project_key,
1127
- analysis_start=start_date,
1128
- analysis_end=end_date,
1129
- weeks_analyzed=weeks,
1130
- commit_count=result["stats"]["total_commits"],
1131
- ticket_count=result["stats"]["unique_tickets"],
1132
- config_hash=config_hash,
1133
- )
1112
+ # Progress callback for fetch
1113
+ def progress_callback(message: str):
1114
+ if display:
1115
+ display.print_status(f" {message}", "info")
1134
1116
 
1135
- except Exception as e:
1136
- if display:
1137
- display.print_status(
1138
- f" ❌ Error fetching {project_key}: {e}", "error"
1117
+ # Fetch repository data
1118
+ # For organization discovery, use branch patterns from analysis config
1119
+ # Default to ["*"] to analyze all branches when not specified
1120
+ branch_patterns = None
1121
+ if hasattr(cfg.analysis, "branch_patterns"):
1122
+ branch_patterns = cfg.analysis.branch_patterns
1123
+ elif cfg.github.organization:
1124
+ # For organization discovery, default to analyzing all branches
1125
+ branch_patterns = ["*"]
1126
+
1127
+ result = data_fetcher.fetch_repository_data(
1128
+ repo_path=repo_path,
1129
+ project_key=project_key,
1130
+ weeks_back=weeks,
1131
+ branch_patterns=branch_patterns,
1132
+ jira_integration=jira_integration,
1133
+ progress_callback=progress_callback,
1134
+ start_date=start_date,
1135
+ end_date=end_date,
1139
1136
  )
1140
- else:
1141
- click.echo(f" ❌ Error fetching {project_key}: {e}")
1142
1137
 
1143
- # Mark repository analysis as failed
1144
- with contextlib.suppress(Exception):
1145
- cache.mark_repository_analysis_failed(
1138
+ total_commits += result["stats"]["total_commits"]
1139
+ total_tickets += result["stats"]["unique_tickets"]
1140
+
1141
+ if display:
1142
+ display.print_status(
1143
+ f" ✅ {project_key}: {result['stats']['total_commits']} commits, "
1144
+ f"{result['stats']['unique_tickets']} tickets",
1145
+ "success",
1146
+ )
1147
+
1148
+ # Mark repository analysis as complete
1149
+ cache.mark_repository_analysis_complete(
1146
1150
  repo_path=str(repo_path),
1147
1151
  repo_name=repo_config.name,
1152
+ project_key=project_key,
1148
1153
  analysis_start=start_date,
1149
1154
  analysis_end=end_date,
1150
- error_message=str(e),
1155
+ weeks_analyzed=weeks,
1156
+ commit_count=result["stats"]["total_commits"],
1157
+ ticket_count=result["stats"]["unique_tickets"],
1151
1158
  config_hash=config_hash,
1152
1159
  )
1153
- continue
1160
+
1161
+ # Update overall repository progress
1162
+ progress.update(repos_progress_ctx)
1163
+
1164
+ except Exception as e:
1165
+ if display:
1166
+ display.print_status(
1167
+ f" ❌ Error fetching {project_key}: {e}", "error"
1168
+ )
1169
+ else:
1170
+ click.echo(f" ❌ Error fetching {project_key}: {e}")
1171
+
1172
+ # Mark repository analysis as failed
1173
+ with contextlib.suppress(Exception):
1174
+ cache.mark_repository_analysis_failed(
1175
+ repo_path=str(repo_path),
1176
+ repo_name=repo_config.name,
1177
+ analysis_start=start_date,
1178
+ analysis_end=end_date,
1179
+ error_message=str(e),
1180
+ config_hash=config_hash,
1181
+ )
1182
+
1183
+ # Update progress even on failure
1184
+ progress.update(repos_progress_ctx)
1185
+ continue
1154
1186
 
1155
1187
  if display:
1156
1188
  display.print_status(
@@ -1322,11 +1354,20 @@ def analyze(
1322
1354
  display.print_status(f" {message}", "info")
1323
1355
 
1324
1356
  # Fetch repository data
1357
+ # For organization discovery, use branch patterns from analysis config
1358
+ # Default to ["*"] to analyze all branches when not specified
1359
+ branch_patterns = None
1360
+ if hasattr(cfg.analysis, "branch_patterns"):
1361
+ branch_patterns = cfg.analysis.branch_patterns
1362
+ elif cfg.github.organization:
1363
+ # For organization discovery, default to analyzing all branches
1364
+ branch_patterns = ["*"]
1365
+
1325
1366
  result = data_fetcher.fetch_repository_data(
1326
1367
  repo_path=repo_path,
1327
1368
  project_key=project_key,
1328
1369
  weeks_back=weeks,
1329
- branch_patterns=getattr(repo_config, "branch_patterns", None),
1370
+ branch_patterns=branch_patterns,
1330
1371
  jira_integration=jira_integration,
1331
1372
  progress_callback=progress_callback,
1332
1373
  start_date=start_date,
@@ -3649,11 +3690,20 @@ def fetch(
3649
3690
  click.echo(f" {message}")
3650
3691
 
3651
3692
  # Fetch repository data
3693
+ # For organization discovery, use branch patterns from analysis config
3694
+ # Default to ["*"] to analyze all branches when not specified
3695
+ branch_patterns = None
3696
+ if hasattr(cfg.analysis, "branch_patterns"):
3697
+ branch_patterns = cfg.analysis.branch_patterns
3698
+ elif cfg.github.organization:
3699
+ # For organization discovery, default to analyzing all branches
3700
+ branch_patterns = ["*"]
3701
+
3652
3702
  result = data_fetcher.fetch_repository_data(
3653
3703
  repo_path=repo_path,
3654
3704
  project_key=project_key,
3655
3705
  weeks_back=weeks,
3656
- branch_patterns=getattr(repo_config, "branch_patterns", None),
3706
+ branch_patterns=branch_patterns,
3657
3707
  jira_integration=jira_integration,
3658
3708
  progress_callback=progress_callback,
3659
3709
  start_date=start_date,
@@ -555,6 +555,7 @@ class ConfigLoader:
555
555
  branch_mapping_rules=analysis_data.get("branch_mapping_rules", {}),
556
556
  ticket_platforms=analysis_data.get("ticket_platforms"),
557
557
  auto_identity_analysis=analysis_data.get("identity", {}).get("auto_analysis", True),
558
+ branch_patterns=analysis_data.get("branch_patterns"),
558
559
  branch_analysis=branch_analysis_config,
559
560
  ml_categorization=ml_categorization_config,
560
561
  commit_classification=commit_classification_config,
@@ -305,6 +305,9 @@ class AnalysisConfig:
305
305
  branch_mapping_rules: dict[str, list[str]] = field(default_factory=dict)
306
306
  ticket_platforms: Optional[list[str]] = None
307
307
  auto_identity_analysis: bool = True # Enable automatic identity analysis by default
308
+ branch_patterns: Optional[list[str]] = (
309
+ None # Branch patterns to analyze (e.g., ["*"] for all branches)
310
+ )
308
311
  branch_analysis: BranchAnalysisConfig = field(default_factory=BranchAnalysisConfig)
309
312
  ml_categorization: MLCategorization = field(default_factory=MLCategorization)
310
313
  commit_classification: CommitClassificationConfig = field(