gitflow-analytics 1.0.3__tar.gz → 1.3.6__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 (229) hide show
  1. gitflow_analytics-1.3.6/CHANGELOG.md +317 -0
  2. gitflow_analytics-1.3.6/CLAUDE.md +756 -0
  3. gitflow_analytics-1.3.6/PKG-INFO +1015 -0
  4. gitflow_analytics-1.3.6/README.md +956 -0
  5. gitflow_analytics-1.3.6/docs/README.md +116 -0
  6. gitflow_analytics-1.3.6/docs/SECURITY.md +191 -0
  7. gitflow_analytics-1.3.6/docs/STORY_POINTS_CONFIG_SUMMARY.md +107 -0
  8. gitflow_analytics-1.3.6/docs/STRUCTURE.md +193 -0
  9. gitflow_analytics-1.3.6/docs/architecture/README.md +183 -0
  10. gitflow_analytics-1.3.6/docs/architecture/branch-analysis-optimization.md +204 -0
  11. gitflow_analytics-1.3.6/docs/architecture/caching-strategy.md +200 -0
  12. gitflow_analytics-1.3.6/docs/architecture/llm-classifier-refactoring.md +167 -0
  13. gitflow_analytics-1.3.6/docs/architecture/ml-pipeline.md +192 -0
  14. gitflow_analytics-1.3.6/docs/configuration/configuration.md +494 -0
  15. gitflow_analytics-1.3.6/docs/deployment/README.md +261 -0
  16. gitflow_analytics-1.3.6/docs/design/README.md +251 -0
  17. gitflow_analytics-1.3.6/docs/design/commit-classification-design.md +1203 -0
  18. gitflow_analytics-1.3.6/docs/design/platform-agnostic-pm-framework.md +1273 -0
  19. gitflow_analytics-1.3.6/docs/developer/README.md +208 -0
  20. gitflow_analytics-1.3.6/docs/developer/contributing.md +190 -0
  21. gitflow_analytics-1.3.6/docs/developer/development-setup.md +278 -0
  22. gitflow_analytics-1.3.6/docs/developer/training-guide.md +308 -0
  23. gitflow_analytics-1.3.6/docs/examples/README.md +236 -0
  24. gitflow_analytics-1.3.6/docs/getting-started/README.md +58 -0
  25. gitflow_analytics-1.3.6/docs/getting-started/first-analysis.md +264 -0
  26. gitflow_analytics-1.3.6/docs/getting-started/installation.md +225 -0
  27. gitflow_analytics-1.3.6/docs/getting-started/quickstart.md +196 -0
  28. gitflow_analytics-1.3.6/docs/guides/LLM_CLASSIFICATION_GUIDE.md +164 -0
  29. gitflow_analytics-1.3.6/docs/guides/README.md +104 -0
  30. gitflow_analytics-1.3.6/docs/guides/chatgpt-setup.md +92 -0
  31. gitflow_analytics-1.3.6/docs/guides/ml-categorization.md +593 -0
  32. gitflow_analytics-1.3.6/docs/guides/troubleshooting.md +331 -0
  33. gitflow_analytics-1.3.6/docs/reference/README.md +162 -0
  34. gitflow_analytics-1.3.6/docs/reference/cache-system.md +310 -0
  35. gitflow_analytics-1.3.6/docs/reference/cli-commands.md +314 -0
  36. gitflow_analytics-1.3.6/docs/reference/configuration-schema.md +440 -0
  37. gitflow_analytics-1.3.6/docs/reference/json-export-schema.md +528 -0
  38. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/pyproject.toml +12 -8
  39. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/_version.py +1 -1
  40. gitflow_analytics-1.3.6/src/gitflow_analytics/classification/__init__.py +31 -0
  41. gitflow_analytics-1.3.6/src/gitflow_analytics/classification/batch_classifier.py +752 -0
  42. gitflow_analytics-1.3.6/src/gitflow_analytics/classification/classifier.py +464 -0
  43. gitflow_analytics-1.3.6/src/gitflow_analytics/classification/feature_extractor.py +725 -0
  44. gitflow_analytics-1.3.6/src/gitflow_analytics/classification/linguist_analyzer.py +574 -0
  45. gitflow_analytics-1.3.6/src/gitflow_analytics/classification/model.py +455 -0
  46. gitflow_analytics-1.3.6/src/gitflow_analytics/cli.py +4647 -0
  47. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/cli_rich.py +198 -48
  48. gitflow_analytics-1.3.6/src/gitflow_analytics/config/__init__.py +43 -0
  49. gitflow_analytics-1.3.6/src/gitflow_analytics/config/errors.py +261 -0
  50. gitflow_analytics-1.3.6/src/gitflow_analytics/config/loader.py +904 -0
  51. gitflow_analytics-1.3.6/src/gitflow_analytics/config/profiles.py +264 -0
  52. gitflow_analytics-1.3.6/src/gitflow_analytics/config/repository.py +124 -0
  53. gitflow_analytics-1.3.6/src/gitflow_analytics/config/schema.py +441 -0
  54. gitflow_analytics-1.3.6/src/gitflow_analytics/config/validator.py +154 -0
  55. gitflow_analytics-1.3.6/src/gitflow_analytics/config.py +44 -0
  56. gitflow_analytics-1.3.6/src/gitflow_analytics/core/analyzer.py +1403 -0
  57. gitflow_analytics-1.3.6/src/gitflow_analytics/core/cache.py +1652 -0
  58. gitflow_analytics-1.3.6/src/gitflow_analytics/core/data_fetcher.py +1193 -0
  59. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/core/identity.py +363 -14
  60. gitflow_analytics-1.3.6/src/gitflow_analytics/core/metrics_storage.py +526 -0
  61. gitflow_analytics-1.3.6/src/gitflow_analytics/core/progress.py +372 -0
  62. gitflow_analytics-1.3.6/src/gitflow_analytics/core/schema_version.py +269 -0
  63. gitflow_analytics-1.3.6/src/gitflow_analytics/extractors/ml_tickets.py +1100 -0
  64. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/extractors/story_points.py +8 -1
  65. gitflow_analytics-1.3.6/src/gitflow_analytics/extractors/tickets.py +918 -0
  66. gitflow_analytics-1.3.6/src/gitflow_analytics/identity_llm/__init__.py +6 -0
  67. gitflow_analytics-1.3.6/src/gitflow_analytics/identity_llm/analysis_pass.py +231 -0
  68. gitflow_analytics-1.3.6/src/gitflow_analytics/identity_llm/analyzer.py +464 -0
  69. gitflow_analytics-1.3.6/src/gitflow_analytics/identity_llm/models.py +76 -0
  70. gitflow_analytics-1.3.6/src/gitflow_analytics/integrations/github_integration.py +338 -0
  71. gitflow_analytics-1.3.6/src/gitflow_analytics/integrations/jira_integration.py +721 -0
  72. gitflow_analytics-1.3.6/src/gitflow_analytics/integrations/orchestrator.py +269 -0
  73. gitflow_analytics-1.3.6/src/gitflow_analytics/metrics/activity_scoring.py +322 -0
  74. gitflow_analytics-1.3.6/src/gitflow_analytics/metrics/branch_health.py +470 -0
  75. gitflow_analytics-1.3.6/src/gitflow_analytics/metrics/dora.py +690 -0
  76. gitflow_analytics-1.3.6/src/gitflow_analytics/models/database.py +1098 -0
  77. gitflow_analytics-1.3.6/src/gitflow_analytics/pm_framework/__init__.py +115 -0
  78. gitflow_analytics-1.3.6/src/gitflow_analytics/pm_framework/adapters/__init__.py +50 -0
  79. gitflow_analytics-1.3.6/src/gitflow_analytics/pm_framework/adapters/jira_adapter.py +1845 -0
  80. gitflow_analytics-1.3.6/src/gitflow_analytics/pm_framework/base.py +406 -0
  81. gitflow_analytics-1.3.6/src/gitflow_analytics/pm_framework/models.py +211 -0
  82. gitflow_analytics-1.3.6/src/gitflow_analytics/pm_framework/orchestrator.py +652 -0
  83. gitflow_analytics-1.3.6/src/gitflow_analytics/pm_framework/registry.py +333 -0
  84. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/__init__.py +9 -10
  85. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/chatgpt_analyzer.py +259 -0
  86. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/classifiers/__init__.py +3 -3
  87. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/classifiers/change_type.py +742 -0
  88. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/classifiers/domain_classifier.py +272 -165
  89. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/classifiers/intent_analyzer.py +535 -0
  90. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/classifiers/llm/__init__.py +35 -0
  91. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/classifiers/llm/base.py +193 -0
  92. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/classifiers/llm/batch_processor.py +383 -0
  93. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/classifiers/llm/cache.py +479 -0
  94. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/classifiers/llm/cost_tracker.py +435 -0
  95. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/classifiers/llm/openai_client.py +403 -0
  96. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/classifiers/llm/prompts.py +373 -0
  97. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/classifiers/llm/response_parser.py +287 -0
  98. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/classifiers/llm_commit_classifier.py +607 -0
  99. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/classifiers/risk_analyzer.py +215 -189
  100. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/core/__init__.py +4 -4
  101. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/core/llm_fallback.py +239 -235
  102. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/core/nlp_engine.py +157 -148
  103. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/core/pattern_cache.py +214 -192
  104. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/core/processor.py +673 -0
  105. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/enhanced_analyzer.py +2236 -0
  106. gitflow_analytics-1.3.6/src/gitflow_analytics/qualitative/example_enhanced_usage.py +420 -0
  107. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/models/__init__.py +7 -7
  108. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/models/schemas.py +155 -121
  109. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/utils/__init__.py +4 -4
  110. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/utils/batch_processor.py +136 -123
  111. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/utils/cost_tracker.py +142 -140
  112. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/utils/metrics.py +172 -158
  113. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/qualitative/utils/text_processing.py +146 -104
  114. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/__init__.py +100 -0
  115. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/analytics_writer.py +996 -0
  116. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/base.py +648 -0
  117. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/branch_health_writer.py +322 -0
  118. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/classification_writer.py +924 -0
  119. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/cli_integration.py +427 -0
  120. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/csv_writer.py +1803 -0
  121. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/data_models.py +504 -0
  122. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/database_report_generator.py +427 -0
  123. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/example_usage.py +344 -0
  124. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/factory.py +499 -0
  125. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/formatters.py +698 -0
  126. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/html_generator.py +1116 -0
  127. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/interfaces.py +489 -0
  128. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/json_exporter.py +2770 -0
  129. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/narrative_writer.py +2398 -0
  130. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/story_point_correlation.py +1144 -0
  131. gitflow_analytics-1.3.6/src/gitflow_analytics/reports/weekly_trends_writer.py +389 -0
  132. gitflow_analytics-1.3.6/src/gitflow_analytics/training/__init__.py +5 -0
  133. gitflow_analytics-1.3.6/src/gitflow_analytics/training/model_loader.py +377 -0
  134. gitflow_analytics-1.3.6/src/gitflow_analytics/training/pipeline.py +550 -0
  135. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/__init__.py +1 -1
  136. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/app.py +129 -126
  137. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/screens/__init__.py +3 -3
  138. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/screens/analysis_progress_screen.py +188 -179
  139. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/screens/configuration_screen.py +154 -178
  140. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/screens/loading_screen.py +100 -110
  141. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/screens/main_screen.py +89 -72
  142. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/screens/results_screen.py +305 -281
  143. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/widgets/__init__.py +2 -2
  144. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/widgets/data_table.py +67 -69
  145. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/widgets/export_modal.py +76 -76
  146. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/tui/widgets/progress_widget.py +41 -46
  147. gitflow_analytics-1.3.6/src/gitflow_analytics.egg-info/PKG-INFO +1015 -0
  148. gitflow_analytics-1.3.6/src/gitflow_analytics.egg-info/SOURCES.txt +202 -0
  149. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics.egg-info/requires.txt +1 -0
  150. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/core/test_analyzer.py +21 -1
  151. gitflow_analytics-1.3.6/tests/core/test_progress.py +254 -0
  152. gitflow_analytics-1.3.6/tests/debug_bulk_exists.py +62 -0
  153. gitflow_analytics-1.3.6/tests/debug_commit_story_points.py +145 -0
  154. gitflow_analytics-1.3.6/tests/debug_database_storage.py +228 -0
  155. gitflow_analytics-1.3.6/tests/debug_jira_enrichment.py +110 -0
  156. gitflow_analytics-1.3.6/tests/debug_story_points.py +121 -0
  157. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/qualitative/test_basic_integration.py +2 -1
  158. gitflow_analytics-1.3.6/tests/test_atomic_caching.py +451 -0
  159. gitflow_analytics-1.3.6/tests/test_classification_system.py +311 -0
  160. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/test_cli.py +14 -57
  161. gitflow_analytics-1.3.6/tests/test_config.py +239 -0
  162. gitflow_analytics-1.3.6/tests/test_config_extends.py +213 -0
  163. gitflow_analytics-1.3.6/tests/test_config_profiles.py +203 -0
  164. gitflow_analytics-1.3.6/tests/test_config_story_points.py +190 -0
  165. gitflow_analytics-1.3.6/tests/test_jira_connection.py +41 -0
  166. gitflow_analytics-1.3.6/tests/test_llm_commit_classification.py +435 -0
  167. gitflow_analytics-1.3.6/tests/test_march_2025_comparison.py +434 -0
  168. gitflow_analytics-1.3.6/tests/test_ml_accuracy.py +213 -0
  169. gitflow_analytics-1.3.6/tests/test_ml_components.py +156 -0
  170. gitflow_analytics-1.3.6/tests/test_ml_comprehensive.py +548 -0
  171. gitflow_analytics-1.3.6/tests/test_ml_integration.py +121 -0
  172. gitflow_analytics-1.3.6/tests/test_report_abstraction.py +374 -0
  173. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/test_reports.py +2 -2
  174. gitflow_analytics-1.3.6/tests/test_story_points_analysis.py +455 -0
  175. gitflow_analytics-1.3.6/tests/test_training_pipeline.py +452 -0
  176. gitflow_analytics-1.3.6/tests/test_two_step_process.py +321 -0
  177. gitflow_analytics-1.0.3/CHANGELOG.md +0 -112
  178. gitflow_analytics-1.0.3/CLAUDE.md +0 -339
  179. gitflow_analytics-1.0.3/PKG-INFO +0 -490
  180. gitflow_analytics-1.0.3/README.md +0 -432
  181. gitflow_analytics-1.0.3/docs/DEPLOY.md +0 -308
  182. gitflow_analytics-1.0.3/docs/configuration.md +0 -258
  183. gitflow_analytics-1.0.3/src/gitflow_analytics/cli.py +0 -889
  184. gitflow_analytics-1.0.3/src/gitflow_analytics/config.py +0 -508
  185. gitflow_analytics-1.0.3/src/gitflow_analytics/core/analyzer.py +0 -292
  186. gitflow_analytics-1.0.3/src/gitflow_analytics/core/cache.py +0 -344
  187. gitflow_analytics-1.0.3/src/gitflow_analytics/extractors/tickets.py +0 -180
  188. gitflow_analytics-1.0.3/src/gitflow_analytics/integrations/github_integration.py +0 -174
  189. gitflow_analytics-1.0.3/src/gitflow_analytics/integrations/jira_integration.py +0 -284
  190. gitflow_analytics-1.0.3/src/gitflow_analytics/integrations/orchestrator.py +0 -146
  191. gitflow_analytics-1.0.3/src/gitflow_analytics/metrics/dora.py +0 -331
  192. gitflow_analytics-1.0.3/src/gitflow_analytics/models/database.py +0 -308
  193. gitflow_analytics-1.0.3/src/gitflow_analytics/qualitative/classifiers/change_type.py +0 -468
  194. gitflow_analytics-1.0.3/src/gitflow_analytics/qualitative/classifiers/intent_analyzer.py +0 -436
  195. gitflow_analytics-1.0.3/src/gitflow_analytics/qualitative/core/processor.py +0 -540
  196. gitflow_analytics-1.0.3/src/gitflow_analytics/reports/__init__.py +0 -0
  197. gitflow_analytics-1.0.3/src/gitflow_analytics/reports/analytics_writer.py +0 -471
  198. gitflow_analytics-1.0.3/src/gitflow_analytics/reports/csv_writer.py +0 -339
  199. gitflow_analytics-1.0.3/src/gitflow_analytics/reports/narrative_writer.py +0 -269
  200. gitflow_analytics-1.0.3/src/gitflow_analytics.egg-info/PKG-INFO +0 -490
  201. gitflow_analytics-1.0.3/src/gitflow_analytics.egg-info/SOURCES.txt +0 -88
  202. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/LICENSE +0 -0
  203. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/MANIFEST.in +0 -0
  204. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/docs/design/git_pm_correlation_design.md +0 -0
  205. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/docs/design/qualitative_data_extraction.md +0 -0
  206. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/setup.cfg +0 -0
  207. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/__init__.py +0 -0
  208. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/core/__init__.py +0 -0
  209. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/core/branch_mapper.py +0 -0
  210. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/extractors/__init__.py +0 -0
  211. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/extractors/base.py +0 -0
  212. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/integrations/__init__.py +0 -0
  213. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/metrics/__init__.py +0 -0
  214. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics/models/__init__.py +0 -0
  215. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics.egg-info/dependency_links.txt +0 -0
  216. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics.egg-info/entry_points.txt +0 -0
  217. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/src/gitflow_analytics.egg-info/top_level.txt +0 -0
  218. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/__init__.py +0 -0
  219. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/conftest.py +0 -0
  220. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/core/__init__.py +0 -0
  221. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/core/test_cache.py +0 -0
  222. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/core/test_identity.py +0 -0
  223. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/extractors/__init__.py +0 -0
  224. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/integrations/__init__.py +0 -0
  225. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/metrics/__init__.py +0 -0
  226. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/models/__init__.py +0 -0
  227. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/qualitative/__init__.py +0 -0
  228. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/reports/__init__.py +0 -0
  229. {gitflow_analytics-1.0.3 → gitflow_analytics-1.3.6}/tests/test_metrics.py +0 -0
@@ -0,0 +1,317 @@
1
+ # Changelog
2
+
3
+ All notable changes to GitFlow Analytics will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.2.24] - 2025-01-26
9
+
10
+ ### Fixed
11
+ - Consolidated all multi-repository analysis fixes for EWTN organization
12
+ - Verified accuracy with sniff test on Aug 18-24 data (4 commits confirmed)
13
+ - All previous fixes working correctly:
14
+ - Repository processing progress indicator
15
+ - Authentication prompt elimination
16
+ - Qualitative analysis error handling
17
+ - Timestamp type handling
18
+
19
+ ### Verified
20
+ - Multi-repository analysis accuracy confirmed
21
+ - Proper commit attribution across 95 repositories
22
+ - Correct date range filtering
23
+ - Accurate ticket coverage calculation (75%)
24
+
25
+ ## [1.2.23] - 2025-01-25
26
+
27
+ ### Fixed
28
+ - Fixed qualitative analysis 'int' object is not subscriptable error
29
+ - Corrected timestamp default value in NLP engine from time.time() to datetime.now()
30
+ - Added proper datetime import to nlp_engine module
31
+ - This resolves type mismatch when timestamp field is missing
32
+
33
+ ## [1.2.22] - 2025-01-25
34
+
35
+ ### Fixed
36
+ - Fixed qualitative analysis commit format handling
37
+ - Now handles both dict and object formats for commits
38
+ - Fixed 'dict' object has no attribute 'hash' error
39
+ - Fixed SQLAlchemy warning about text expressions
40
+ - Added proper text() wrapper for SELECT 1 statement
41
+
42
+ ## [1.2.21] - 2025-01-25
43
+
44
+ ### Fixed
45
+ - Fixed password prompts in data_fetcher during fetch/pull operations
46
+ - Replaced GitPython's fetch() and pull() with subprocess calls
47
+ - Added same environment variables to prevent credential prompts
48
+ - Added 30-second timeout for both fetch and pull operations
49
+ - This fixes the issue in the two-step fetch/classify process
50
+
51
+ ## [1.2.20] - 2025-01-25
52
+
53
+ ### Fixed
54
+ - Replaced GitPython clone with subprocess for better control
55
+ - Uses subprocess.run with explicit timeout (30 seconds)
56
+ - Disables credential helper to prevent prompts
57
+ - Sets GIT_TERMINAL_PROMPT=0 and GIT_ASKPASS= to force failure
58
+ - Shows which repository is being cloned for debugging
59
+ - Properly handles timeout with clear error message
60
+
61
+ ## [1.2.19] - 2025-01-25
62
+
63
+ ### Fixed
64
+ - Improved clone operation with timeout and better credential handling
65
+ - Added HTTP timeout (30 seconds) to prevent hanging on network issues
66
+ - Fixed environment variable passing to GitPython
67
+ - Added progress counter (x/95) to description for better visibility
68
+ - Enhanced credential failure detection
69
+
70
+ ## [1.2.18] - 2025-01-25
71
+
72
+ ### Fixed
73
+ - Enhanced GitHub authentication handling to prevent interactive password prompts
74
+ - Added GIT_TERMINAL_PROMPT=0 to disable git credential prompts
75
+ - Added GIT_ASKPASS=/bin/echo to prevent password dialogs
76
+ - Better detection of authentication failures (401, 403, permission denied)
77
+ - Clear error messages when authentication fails instead of hanging
78
+
79
+ ## [1.2.17] - 2025-01-25
80
+
81
+ ### Fixed
82
+ - **CRITICAL**: Fixed indentation bug in CLI that prevented multi-repository analysis
83
+ - Repository analysis code was incorrectly placed outside the for loop
84
+ - This caused only the last repository to be analyzed instead of all repositories
85
+ - Progress indicator now correctly updates for each repository (fixes "0/95" issue)
86
+ - Added authentication error handling for GitHub operations
87
+ - Prevents password prompts when GitHub token is invalid or expired
88
+ - Continues with local repository state if authentication fails
89
+ - Provides clear error messages for authentication issues
90
+
91
+ ## [1.2.2] - 2025-01-07
92
+
93
+ ### Fixed
94
+ - Fixed repositories not being updated from remote before analysis
95
+ - Added automatic git fetch/pull before analyzing repositories
96
+ - Impact: Ensures latest commits are included in analysis (fixes EWTN missing commits issue)
97
+
98
+ ## [1.2.1] - 2025-01-07
99
+
100
+ ### Fixed
101
+ - Fixed commits not being stored in CachedCommit table during fetch step
102
+ - Fixed narrative report generation when CSV generation is disabled (now default)
103
+ - Fixed canonical_id not being set on commits loaded from database
104
+ - Fixed timezone comparison issues in batch classification
105
+ - Fixed missing `classify_commits_batch` method in LLMCommitClassifier
106
+ - Fixed complexity_delta None value handling in narrative reports
107
+ - Fixed LLM classification to properly use API keys from .env files
108
+
109
+ ### Added
110
+ - Added token tracking and cost display for LLM classification
111
+ - Added LLM usage statistics display after batch classification
112
+ - Shows model, API calls, total tokens, cost, and cache hits
113
+ - Improved error handling in commit storage with detailed logging
114
+
115
+ ### Changed
116
+ - Commits are now properly stored in CachedCommit table during data fetch
117
+ - Identity resolver now updates canonical_id on commits for proper attribution
118
+ - Batch classifier now correctly queries commits with timezone-aware filtering
119
+
120
+ ## [1.2.0] - 2025-01-07
121
+
122
+ ### Added
123
+ - Two-step process (fetch then classify) is now the default behavior for better performance and cost efficiency
124
+ - Automatic data fetching when using batch classification mode
125
+ - New `--use-legacy-classification` flag to use the old single-step process if needed
126
+
127
+ ### Changed
128
+ - `analyze` command now uses two-step process by default (fetch raw data, then classify)
129
+ - `--use-batch-classification` is now enabled by default (was previously opt-in)
130
+ - Improved messaging to clearly indicate Step 1 (fetch) and Step 2 (classify) operations
131
+ - Better integration between fetch and analyze operations for seamless user experience
132
+
133
+ ### Fixed
134
+ - Fixed JIRA integration error: "'IntegrationOrchestrator' object has no attribute 'jira'"
135
+ - Corrected attribute access to use `orchestrator.integrations.get('jira')` instead of `orchestrator.jira`
136
+ - Fixed batch classification mode to automatically perform data fetching when needed
137
+
138
+ ### Performance
139
+ - Two-step process reduces LLM costs by batching classification requests
140
+ - Faster subsequent runs when data is already fetched and cached
141
+ - More efficient processing of large repositories with many commits
142
+
143
+ ## [1.1.0] - 2025-01-06
144
+
145
+ ### Added
146
+ - Database-backed reporting system with SQLite storage for daily metrics
147
+ - Weekly trend analysis showing week-over-week changes in classification patterns
148
+ - Commit classification breakdown in project activity sections of narrative reports
149
+ - Support for flexible configuration field names (api_key/openrouter_api_key, model/primary_model)
150
+ - Auto-enable qualitative analysis when configured (no CLI flag needed)
151
+ - New `DailyMetrics` and `WeeklyTrends` database tables
152
+ - Database report generator that pulls directly from SQLite
153
+ - Per-developer and per-project classification metrics
154
+ - Cost tracking configuration mapping from cost_tracking.daily_budget_usd
155
+
156
+ ### Changed
157
+ - All commits now properly classified into meaningful categories (feature, bug_fix, refactor, etc.)
158
+ - Tracked commits no longer use "tracked_work" as a category - properly classified instead
159
+ - Ticket information now enhances classification accuracy
160
+ - Ticket coverage displayed separately from classifications as a process metric
161
+ - HTML report temporarily disabled pending redesign (code preserved)
162
+ - Improved configuration field mapping for better compatibility
163
+
164
+ ### Fixed
165
+ - Ticket platform filtering now properly respects configuration (e.g., JIRA-only)
166
+ - DateTime import scope issues in CLI module
167
+ - Classification data structure in narrative reports
168
+ - Identity resolution for developer mappings
169
+ - Qualitative analysis auto-enablement from configuration
170
+
171
+ ### Performance
172
+ - Database caching reduces report generation time by up to 80%
173
+ - Batch processing for daily metrics storage
174
+ - Optimized queries with proper indexing
175
+ - Pre-calculated weekly trends for instant retrieval
176
+
177
+ ## [1.0.7] - 2025-08-01
178
+
179
+ ### Fixed
180
+ - Fixed timezone comparison error when sorting deployments in DORA metrics
181
+ - Added proper timezone normalization for all timestamps before sorting
182
+ - Improved handling of None timestamps in DORA calculations
183
+
184
+ ## [1.0.6] - 2025-08-01
185
+
186
+ ### Fixed
187
+ - Fixed timezone comparison errors in DORA metrics calculation
188
+ - Added comprehensive timezone handling for all deployment and PR timestamps
189
+ - Enhanced debug logging to trace analysis pipeline stages
190
+
191
+ ## [1.0.5] - 2025-08-01
192
+
193
+ ### Fixed
194
+ - Fixed DEBUG logging not appearing due to logger configuration issues
195
+ - Added timestamp normalization to ensure all Git commits use UTC timezone
196
+ - Enhanced debug output to identify which report fails
197
+
198
+ ## [1.0.4] - 2025-08-01
199
+
200
+ ### Added
201
+ - Structured logging with --log option (none|INFO|DEBUG)
202
+ - Enhanced timezone error debugging capabilities
203
+ - Safe datetime comparison functions
204
+
205
+ ### Fixed
206
+ - Improved debugging output for timezone-related issues
207
+ - Better error messages for datetime comparison failures
208
+
209
+ ## [1.0.3] - 2025-08-01
210
+
211
+ ### Fixed
212
+ - Fixed comprehensive timezone comparison issues in database queries and report generation
213
+ - Improved timezone-aware datetime handling across all components
214
+ - Fixed timezone-related errors that were still affecting v1.0.2
215
+
216
+ ## [1.0.2] - 2025-08-01
217
+
218
+ ### Fixed
219
+ - Fixed SQLite index naming conflicts that could cause database errors
220
+ - Fixed PR cache UNIQUE constraint errors with proper upsert logic
221
+ - Fixed timezone comparison errors in report generation
222
+ - Added loading screen to TUI (before abandoning TUI approach)
223
+ - Moved Rich to core dependencies for better CLI output
224
+
225
+ ## [1.0.1] - 2025-07-31
226
+
227
+ ### Added
228
+ - Path exclusion support for filtering boilerplate/generated files from line count metrics
229
+ - Configurable via `analysis.exclude.paths` in YAML configuration
230
+ - Default exclusions for common patterns (node_modules, lock files, minified files, etc.)
231
+ - Filtered metrics available as `filtered_insertions`, `filtered_deletions`, `filtered_files_changed`
232
+ - JIRA integration for fetching story points from tickets
233
+ - Configurable story point field names via `jira_integration.story_point_fields`
234
+ - Automatic story point extraction from JIRA tickets referenced in commits
235
+ - Support for custom field IDs and field names
236
+ - Organization-based repository discovery from GitHub
237
+ - Automatic discovery of all non-archived repositories in an organization
238
+ - No manual repository configuration needed for organization-wide analysis
239
+ - Ticket platform filtering via `analysis.ticket_platforms`
240
+ - Ability to track only specific platforms (e.g., only JIRA, ignoring GitHub Issues)
241
+ - Enhanced `.env` file support
242
+ - Automatic loading from configuration directory
243
+ - Validation of required environment variables
244
+ - Clear error messages for missing credentials
245
+ - New CLI command: `discover-jira-fields` to find custom field IDs
246
+
247
+ ### Changed
248
+ - All report generators now use filtered line counts when available
249
+ - Cache and output directories now default to config file location (not current directory)
250
+ - Improved developer identity resolution with better consolidation
251
+
252
+ ### Fixed
253
+ - Timezone comparison errors between GitHub and local timestamps
254
+ - License configuration in pyproject.toml for PyPI compatibility
255
+ - Manual identity mapping format validation
256
+ - Linting errors for better code quality
257
+
258
+ ### Documentation
259
+ - Added comprehensive environment variable configuration guide
260
+ - Complete configuration examples with `.env` and YAML files
261
+ - Path exclusion documentation with default patterns
262
+ - Updated README with clearer setup instructions
263
+
264
+ ## [1.0.0] - 2025-07-29
265
+
266
+ ### Added
267
+ - Initial release of GitFlow Analytics
268
+ - Core Git repository analysis with batch processing
269
+ - Developer identity resolution with fuzzy matching
270
+ - Manual identity mapping support
271
+ - Story point extraction from commit messages
272
+ - Multi-platform ticket tracking (GitHub, JIRA, Linear, ClickUp)
273
+ - Comprehensive caching system with SQLite
274
+ - CSV report generation:
275
+ - Weekly metrics
276
+ - Developer statistics
277
+ - Activity distribution
278
+ - Developer focus analysis
279
+ - Qualitative insights
280
+ - Markdown narrative reports with insights
281
+ - JSON export for API integration
282
+ - DORA metrics calculation:
283
+ - Deployment frequency
284
+ - Lead time for changes
285
+ - Mean time to recovery
286
+ - Change failure rate
287
+ - GitHub PR enrichment (optional)
288
+ - Branch to project mapping
289
+ - YAML configuration with environment variable support
290
+ - Progress bars for long operations
291
+ - Anonymization support for reports
292
+
293
+ ### Configuration Features
294
+ - Repository definitions with project keys
295
+ - Story point extraction patterns
296
+ - Developer identity similarity threshold
297
+ - Manual identity mappings
298
+ - Default ticket platform specification
299
+ - Branch mapping rules
300
+ - Output format selection
301
+ - Cache TTL configuration
302
+
303
+ ### Developer Experience
304
+ - Clear CLI with helpful error messages
305
+ - Comprehensive documentation
306
+ - Sample configuration files
307
+ - Progress indicators during analysis
308
+ - Detailed logging of operations
309
+
310
+ [1.0.7]: https://github.com/bobmatnyc/gitflow-analytics/releases/tag/v1.0.7
311
+ [1.0.6]: https://github.com/bobmatnyc/gitflow-analytics/releases/tag/v1.0.6
312
+ [1.0.5]: https://github.com/bobmatnyc/gitflow-analytics/releases/tag/v1.0.5
313
+ [1.0.4]: https://github.com/bobmatnyc/gitflow-analytics/releases/tag/v1.0.4
314
+ [1.0.3]: https://github.com/bobmatnyc/gitflow-analytics/releases/tag/v1.0.3
315
+ [1.0.2]: https://github.com/bobmatnyc/gitflow-analytics/releases/tag/v1.0.2
316
+ [1.0.1]: https://github.com/bobmatnyc/gitflow-analytics/releases/tag/v1.0.1
317
+ [1.0.0]: https://github.com/bobmatnyc/gitflow-analytics/releases/tag/v1.0.0