gitflow-analytics 3.4.7__tar.gz → 3.6.0__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 (226) hide show
  1. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/PKG-INFO +1 -1
  2. gitflow_analytics-3.6.0/docs/guides/managing-aliases.md +425 -0
  3. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/_version.py +1 -1
  4. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/cli.py +477 -2
  5. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/cli_wizards/install_wizard.py +268 -22
  6. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/cli_wizards/run_launcher.py +98 -8
  7. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/config/__init__.py +3 -0
  8. gitflow_analytics-3.6.0/src/gitflow_analytics/config/aliases.py +306 -0
  9. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/config/loader.py +35 -1
  10. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/config/schema.py +1 -0
  11. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics.egg-info/PKG-INFO +1 -1
  12. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics.egg-info/SOURCES.txt +2 -0
  13. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/CHANGELOG.md +0 -0
  14. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/CLAUDE.md +0 -0
  15. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/LICENSE +0 -0
  16. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/MANIFEST.in +0 -0
  17. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/README.md +0 -0
  18. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/README.md +0 -0
  19. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/REFACTOR.md +0 -0
  20. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/SECURITY.md +0 -0
  21. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/STRUCTURE.md +0 -0
  22. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/_archive/temp-files/PROGRESS_TRACKING_FIXES.md +0 -0
  23. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/_archive/temp-files/SYNTAX_ERROR_FIX.md +0 -0
  24. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/architecture/README.md +0 -0
  25. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/architecture/branch-analysis-optimization.md +0 -0
  26. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/architecture/caching-strategy.md +0 -0
  27. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/architecture/llm-classifier-refactoring.md +0 -0
  28. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/architecture/ml-pipeline.md +0 -0
  29. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/configuration/configuration.md +0 -0
  30. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/deployment/README.md +0 -0
  31. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/design/README.md +0 -0
  32. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/design/circuit-breaker-implementation.md +0 -0
  33. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/design/commit-classification-design.md +0 -0
  34. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/design/git_pm_correlation_design.md +0 -0
  35. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/design/platform-agnostic-pm-framework.md +0 -0
  36. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/design/qualitative_data_extraction.md +0 -0
  37. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/developer/README.md +0 -0
  38. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/developer/contributing.md +0 -0
  39. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/developer/development-setup.md +0 -0
  40. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/developer/training-guide.md +0 -0
  41. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/examples/README.md +0 -0
  42. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/getting-started/README.md +0 -0
  43. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/getting-started/first-analysis.md +0 -0
  44. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/getting-started/installation.md +0 -0
  45. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/getting-started/quickstart.md +0 -0
  46. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/guides/README.md +0 -0
  47. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/guides/chatgpt-setup.md +0 -0
  48. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/guides/identity-resolution-enhanced.md +0 -0
  49. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/guides/interactive-launcher.md +0 -0
  50. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/guides/ml-categorization.md +0 -0
  51. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/guides/troubleshooting.md +0 -0
  52. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/quick-reference/launcher-and-identity.md +0 -0
  53. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/reference/README.md +0 -0
  54. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/reference/cache-system.md +0 -0
  55. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/reference/cli-commands.md +0 -0
  56. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/reference/configuration-schema.md +0 -0
  57. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/docs/reference/json-export-schema.md +0 -0
  58. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/pyproject.toml +0 -0
  59. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/setup.cfg +0 -0
  60. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/__init__.py +0 -0
  61. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/classification/__init__.py +0 -0
  62. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/classification/batch_classifier.py +0 -0
  63. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/classification/classifier.py +0 -0
  64. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/classification/feature_extractor.py +0 -0
  65. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/classification/linguist_analyzer.py +0 -0
  66. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/classification/model.py +0 -0
  67. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/cli_wizards/__init__.py +0 -0
  68. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/config/errors.py +0 -0
  69. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/config/profiles.py +0 -0
  70. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/config/repository.py +0 -0
  71. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/config/validator.py +0 -0
  72. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/config.py +0 -0
  73. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/constants.py +0 -0
  74. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/__init__.py +0 -0
  75. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/analyzer.py +0 -0
  76. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/branch_mapper.py +0 -0
  77. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/cache.py +0 -0
  78. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/data_fetcher.py +0 -0
  79. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/git_auth.py +0 -0
  80. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/git_timeout_wrapper.py +0 -0
  81. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/identity.py +0 -0
  82. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/metrics_storage.py +0 -0
  83. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/progress.py +0 -0
  84. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/schema_version.py +0 -0
  85. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/core/subprocess_git.py +0 -0
  86. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/extractors/__init__.py +0 -0
  87. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/extractors/base.py +0 -0
  88. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/extractors/ml_tickets.py +0 -0
  89. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/extractors/story_points.py +0 -0
  90. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/extractors/tickets.py +0 -0
  91. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/identity_llm/__init__.py +0 -0
  92. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/identity_llm/analysis_pass.py +0 -0
  93. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/identity_llm/analyzer.py +0 -0
  94. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/identity_llm/models.py +0 -0
  95. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/integrations/__init__.py +0 -0
  96. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/integrations/github_integration.py +0 -0
  97. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/integrations/jira_integration.py +0 -0
  98. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/integrations/orchestrator.py +0 -0
  99. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/metrics/__init__.py +0 -0
  100. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/metrics/activity_scoring.py +0 -0
  101. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/metrics/branch_health.py +0 -0
  102. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/metrics/dora.py +0 -0
  103. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/models/__init__.py +0 -0
  104. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/models/database.py +0 -0
  105. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/pm_framework/__init__.py +0 -0
  106. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/pm_framework/adapters/__init__.py +0 -0
  107. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/pm_framework/adapters/jira_adapter.py +0 -0
  108. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/pm_framework/base.py +0 -0
  109. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/pm_framework/models.py +0 -0
  110. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/pm_framework/orchestrator.py +0 -0
  111. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/pm_framework/registry.py +0 -0
  112. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/__init__.py +0 -0
  113. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/chatgpt_analyzer.py +0 -0
  114. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/__init__.py +0 -0
  115. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/change_type.py +0 -0
  116. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/domain_classifier.py +0 -0
  117. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/intent_analyzer.py +0 -0
  118. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/llm/__init__.py +0 -0
  119. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/llm/base.py +0 -0
  120. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/llm/batch_processor.py +0 -0
  121. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/llm/cache.py +0 -0
  122. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/llm/cost_tracker.py +0 -0
  123. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/llm/openai_client.py +0 -0
  124. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/llm/prompts.py +0 -0
  125. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/llm/response_parser.py +0 -0
  126. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/llm_commit_classifier.py +0 -0
  127. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/classifiers/risk_analyzer.py +0 -0
  128. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/core/__init__.py +0 -0
  129. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/core/llm_fallback.py +0 -0
  130. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/core/nlp_engine.py +0 -0
  131. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/core/pattern_cache.py +0 -0
  132. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/core/processor.py +0 -0
  133. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/enhanced_analyzer.py +0 -0
  134. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/example_enhanced_usage.py +0 -0
  135. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/models/__init__.py +0 -0
  136. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/models/schemas.py +0 -0
  137. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/utils/__init__.py +0 -0
  138. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/utils/batch_processor.py +0 -0
  139. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/utils/cost_tracker.py +0 -0
  140. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/utils/metrics.py +0 -0
  141. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/qualitative/utils/text_processing.py +0 -0
  142. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/__init__.py +0 -0
  143. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/analytics_writer.py +0 -0
  144. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/base.py +0 -0
  145. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/branch_health_writer.py +0 -0
  146. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/classification_writer.py +0 -0
  147. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/cli_integration.py +0 -0
  148. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/csv_writer.py +0 -0
  149. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/data_models.py +0 -0
  150. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/database_report_generator.py +0 -0
  151. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/example_usage.py +0 -0
  152. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/factory.py +0 -0
  153. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/formatters.py +0 -0
  154. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/html_generator.py +0 -0
  155. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/interfaces.py +0 -0
  156. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/json_exporter.py +0 -0
  157. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/narrative_writer.py +0 -0
  158. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/story_point_correlation.py +0 -0
  159. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/reports/weekly_trends_writer.py +0 -0
  160. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/security/__init__.py +0 -0
  161. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/security/config.py +0 -0
  162. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/security/extractors/__init__.py +0 -0
  163. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/security/extractors/dependency_checker.py +0 -0
  164. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/security/extractors/secret_detector.py +0 -0
  165. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/security/extractors/vulnerability_scanner.py +0 -0
  166. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/security/llm_analyzer.py +0 -0
  167. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/security/security_analyzer.py +0 -0
  168. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/training/__init__.py +0 -0
  169. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/training/model_loader.py +0 -0
  170. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/training/pipeline.py +0 -0
  171. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/__init__.py +0 -0
  172. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/app.py +0 -0
  173. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/progress_adapter.py +0 -0
  174. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/screens/__init__.py +0 -0
  175. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/screens/analysis_progress_screen.py +0 -0
  176. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/screens/configuration_screen.py +0 -0
  177. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/screens/loading_screen.py +0 -0
  178. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/screens/main_screen.py +0 -0
  179. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/screens/results_screen.py +0 -0
  180. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/widgets/__init__.py +0 -0
  181. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/widgets/data_table.py +0 -0
  182. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/widgets/export_modal.py +0 -0
  183. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/tui/widgets/progress_widget.py +0 -0
  184. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/ui/__init__.py +0 -0
  185. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/ui/progress_display.py +0 -0
  186. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics/verify_activity.py +0 -0
  187. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics.egg-info/dependency_links.txt +0 -0
  188. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics.egg-info/entry_points.txt +0 -0
  189. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics.egg-info/requires.txt +0 -0
  190. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/src/gitflow_analytics.egg-info/top_level.txt +0 -0
  191. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/__init__.py +0 -0
  192. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/conftest.py +0 -0
  193. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/core/__init__.py +0 -0
  194. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/core/test_analyzer.py +0 -0
  195. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/core/test_cache.py +0 -0
  196. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/core/test_data_fetcher.py +0 -0
  197. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/core/test_identity.py +0 -0
  198. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/core/test_progress.py +0 -0
  199. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/extractors/__init__.py +0 -0
  200. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/integrations/__init__.py +0 -0
  201. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/metrics/__init__.py +0 -0
  202. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/models/__init__.py +0 -0
  203. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/qualitative/__init__.py +0 -0
  204. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/qualitative/test_basic_integration.py +0 -0
  205. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/reports/__init__.py +0 -0
  206. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_atomic_caching.py +0 -0
  207. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_classification_system.py +0 -0
  208. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_cli.py +0 -0
  209. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_config.py +0 -0
  210. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_config_extends.py +0 -0
  211. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_config_profiles.py +0 -0
  212. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_config_story_points.py +0 -0
  213. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_jira_connection.py +0 -0
  214. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_llm_commit_classification.py +0 -0
  215. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_march_2025_comparison.py +0 -0
  216. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_metrics.py +0 -0
  217. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_ml_accuracy.py +0 -0
  218. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_ml_components.py +0 -0
  219. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_ml_comprehensive.py +0 -0
  220. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_ml_integration.py +0 -0
  221. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_pm_env_resolution.py +0 -0
  222. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_report_abstraction.py +0 -0
  223. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_reports.py +0 -0
  224. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_story_points_analysis.py +0 -0
  225. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/tests/test_training_pipeline.py +0 -0
  226. {gitflow_analytics-3.4.7 → gitflow_analytics-3.6.0}/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: 3.4.7
3
+ Version: 3.6.0
4
4
  Summary: Analyze Git repositories for developer productivity insights
5
5
  Author-email: Bob Matyas <bobmatnyc@gmail.com>
6
6
  License: MIT
@@ -0,0 +1,425 @@
1
+ # Managing Developer Aliases
2
+
3
+ This guide explains how to manage developer identity aliases in GitFlow Analytics, including creating, sharing, and maintaining alias configurations across multiple projects.
4
+
5
+ ## Overview
6
+
7
+ Developer aliases allow you to consolidate multiple email addresses and identities for the same developer into a single unified identity. This is particularly useful when:
8
+
9
+ - Developers use different email addresses across projects (personal, work, no-reply addresses)
10
+ - GitHub automatically generates no-reply email addresses for commits
11
+ - Team members change email addresses over time
12
+ - You want consistent identity resolution across multiple analysis configurations
13
+
14
+ ## Shared Aliases File
15
+
16
+ GitFlow Analytics supports a shared `aliases.yaml` file that can be referenced by multiple configuration files. This approach:
17
+
18
+ - **Centralizes identity mappings** - Maintain one source of truth for all projects
19
+ - **Reduces duplication** - No need to repeat alias configurations in every config file
20
+ - **Simplifies updates** - Change an alias once, apply everywhere
21
+ - **Supports team collaboration** - Share alias files across team members
22
+
23
+ ## Aliases File Format
24
+
25
+ Create an `aliases.yaml` file with the following structure:
26
+
27
+ ```yaml
28
+ # Developer Identity Aliases
29
+ # Generated by GitFlow Analytics
30
+ # Share this file across multiple config files
31
+ # Each alias maps multiple email addresses to a single developer
32
+
33
+ developer_aliases:
34
+ # Manual alias - high confidence
35
+ - name: "John Smith"
36
+ primary_email: "john.smith@company.com"
37
+ aliases:
38
+ - "jsmith@gmail.com"
39
+ - "150280367+jsmith@users.noreply.github.com"
40
+ - "john.smith@oldcompany.com"
41
+
42
+ # LLM-generated alias - includes confidence and reasoning
43
+ - name: "Jane Doe"
44
+ primary_email: "jane.doe@company.com"
45
+ aliases:
46
+ - "jane@personal.com"
47
+ - "jdoe@company.com"
48
+ confidence: 0.95
49
+ reasoning: "Same name pattern and commit style across all addresses"
50
+
51
+ # Backward compatibility - canonical_email also supported
52
+ - canonical_email: "bob@company.com"
53
+ aliases:
54
+ - "robert@gmail.com"
55
+ ```
56
+
57
+ ### Field Descriptions
58
+
59
+ - **name** (optional): Display name for the developer in reports
60
+ - **primary_email** (required): Primary email address for this developer
61
+ - **canonical_email**: Deprecated, use `primary_email` instead (still supported for backward compatibility)
62
+ - **aliases** (required): List of alternate email addresses for the same developer
63
+ - **confidence** (optional): Confidence score for LLM-generated aliases (0.0-1.0, default: 1.0)
64
+ - **reasoning** (optional): Explanation for why emails were grouped together (for LLM-generated aliases)
65
+
66
+ ## Using Aliases in Configuration
67
+
68
+ ### Method 1: Reference External Aliases File
69
+
70
+ Reference a shared aliases file in your config:
71
+
72
+ ```yaml
73
+ # config.yaml
74
+ analysis:
75
+ identity:
76
+ aliases_file: ../shared/aliases.yaml # Relative to config file
77
+ similarity_threshold: 0.85
78
+ ```
79
+
80
+ or with absolute path:
81
+
82
+ ```yaml
83
+ analysis:
84
+ identity:
85
+ aliases_file: /Users/team/shared-configs/aliases.yaml
86
+ ```
87
+
88
+ ### Method 2: Inline Manual Mappings
89
+
90
+ For project-specific aliases, use inline mappings:
91
+
92
+ ```yaml
93
+ analysis:
94
+ identity:
95
+ manual_mappings:
96
+ - name: "John Smith"
97
+ primary_email: "john.smith@company.com"
98
+ aliases:
99
+ - "jsmith@gmail.com"
100
+ ```
101
+
102
+ ### Method 3: Combine Both
103
+
104
+ Use both approaches for maximum flexibility:
105
+
106
+ ```yaml
107
+ analysis:
108
+ identity:
109
+ aliases_file: ../shared/team-aliases.yaml
110
+ manual_mappings:
111
+ # Project-specific aliases
112
+ - name: "Contract Developer"
113
+ primary_email: "contractor@external.com"
114
+ aliases:
115
+ - "temp-dev@project.com"
116
+ ```
117
+
118
+ The system will merge aliases from both sources, with inline `manual_mappings` taking precedence in case of conflicts.
119
+
120
+ ## Generating Aliases Automatically
121
+
122
+ GitFlow Analytics can analyze your commit history and automatically generate alias suggestions using LLM analysis.
123
+
124
+ ### Basic Usage
125
+
126
+ ```bash
127
+ # Analyze commits and generate aliases
128
+ gitflow-analytics aliases -c config.yaml
129
+
130
+ # Save to specific location
131
+ gitflow-analytics aliases -c config.yaml -o ~/shared/aliases.yaml
132
+
133
+ # Generate and apply automatically
134
+ gitflow-analytics aliases -c config.yaml --apply
135
+ ```
136
+
137
+ ### Confidence Threshold
138
+
139
+ Control the minimum confidence level for automatic alias generation:
140
+
141
+ ```bash
142
+ # Only include high-confidence matches (90%+)
143
+ gitflow-analytics aliases -c config.yaml --confidence-threshold 0.9
144
+
145
+ # Include all reasonable matches (70%+)
146
+ gitflow-analytics aliases -c config.yaml --confidence-threshold 0.7
147
+ ```
148
+
149
+ ### Review Process
150
+
151
+ The alias generation command will:
152
+
153
+ 1. **Analyze commit history** - Examine email addresses, names, and commit patterns
154
+ 2. **Generate suggestions** - Use LLM to identify likely matches with confidence scores
155
+ 3. **Display results** - Show proposed aliases with reasoning
156
+ 4. **Prompt for approval** - Ask before updating configuration (unless `--apply` is used)
157
+
158
+ Example output:
159
+
160
+ ```
161
+ 🔍 Analyzing developer identities from config.yaml
162
+ 📊 Confidence threshold: 90%
163
+
164
+ Found 3 potential aliases:
165
+
166
+ John Smith
167
+ Primary: john.smith@company.com
168
+ Aliases: jsmith@gmail.com, 150280367+jsmith@users.noreply.github.com
169
+ Confidence: 95%
170
+ Reasoning: Same name pattern and consistent commit style
171
+
172
+ Jane Doe
173
+ Primary: jane.doe@company.com
174
+ Aliases: jane@personal.com
175
+ Confidence: 92%
176
+ Reasoning: Name matches and overlapping commit timestamps
177
+
178
+ Apply these aliases? [y/N]:
179
+ ```
180
+
181
+ ## Multiple Configs Sharing Aliases
182
+
183
+ ### Recommended Directory Structure
184
+
185
+ ```
186
+ /project/
187
+ ├── shared/
188
+ │ └── aliases.yaml # Shared aliases
189
+ ├── team1/
190
+ │ └── config-team1.yaml # Team 1 config
191
+ ├── team2/
192
+ │ └── config-team2.yaml # Team 2 config
193
+ └── combined/
194
+ └── config-all.yaml # Combined config
195
+ ```
196
+
197
+ ### Configuration Examples
198
+
199
+ **Team 1 Config:**
200
+ ```yaml
201
+ # team1/config-team1.yaml
202
+ analysis:
203
+ identity:
204
+ aliases_file: ../shared/aliases.yaml
205
+ ```
206
+
207
+ **Team 2 Config:**
208
+ ```yaml
209
+ # team2/config-team2.yaml
210
+ analysis:
211
+ identity:
212
+ aliases_file: ../shared/aliases.yaml
213
+ ```
214
+
215
+ **Combined Config:**
216
+ ```yaml
217
+ # combined/config-all.yaml
218
+ analysis:
219
+ identity:
220
+ aliases_file: ../shared/aliases.yaml
221
+ ```
222
+
223
+ All three configurations now share the same alias mappings, ensuring consistent identity resolution across all analyses.
224
+
225
+ ## Programmatic Access
226
+
227
+ You can also work with aliases programmatically:
228
+
229
+ ```python
230
+ from pathlib import Path
231
+ from gitflow_analytics.config import AliasesManager, DeveloperAlias
232
+
233
+ # Load existing aliases
234
+ manager = AliasesManager(Path("aliases.yaml"))
235
+
236
+ # Add a new alias
237
+ manager.add_alias(DeveloperAlias(
238
+ name="John Smith",
239
+ primary_email="john@company.com",
240
+ aliases=["jsmith@gmail.com", "john.smith@oldcompany.com"],
241
+ confidence=1.0
242
+ ))
243
+
244
+ # Save changes
245
+ manager.save()
246
+
247
+ # Get statistics
248
+ stats = manager.get_statistics()
249
+ print(f"Total aliases: {stats['total_aliases']}")
250
+ print(f"Manual aliases: {stats['manual_aliases']}")
251
+ print(f"LLM-generated: {stats['llm_aliases']}")
252
+ print(f"Average confidence: {stats['avg_confidence']}")
253
+ ```
254
+
255
+ ## Best Practices
256
+
257
+ ### 1. Start with High Confidence
258
+
259
+ When using LLM-generated aliases, start with a high confidence threshold (0.9+) and gradually lower it as needed:
260
+
261
+ ```bash
262
+ gitflow-analytics aliases -c config.yaml --confidence-threshold 0.95
263
+ ```
264
+
265
+ ### 2. Review Before Applying
266
+
267
+ Always review LLM-generated aliases before applying them:
268
+
269
+ ```bash
270
+ # Generate and review
271
+ gitflow-analytics aliases -c config.yaml
272
+
273
+ # Apply after review
274
+ gitflow-analytics aliases -c config.yaml --apply
275
+ ```
276
+
277
+ ### 3. Use Shared Aliases for Teams
278
+
279
+ For team projects, maintain a shared `aliases.yaml` in version control:
280
+
281
+ ```bash
282
+ # Add to version control
283
+ git add shared/aliases.yaml
284
+ git commit -m "feat: add shared developer aliases"
285
+ ```
286
+
287
+ ### 4. Document Custom Aliases
288
+
289
+ Add comments to explain non-obvious aliases:
290
+
291
+ ```yaml
292
+ developer_aliases:
293
+ # John changed email when company was acquired
294
+ - name: "John Smith"
295
+ primary_email: "john.smith@newcompany.com"
296
+ aliases:
297
+ - "john.smith@oldcompany.com"
298
+ ```
299
+
300
+ ### 5. Update Aliases Regularly
301
+
302
+ Re-run alias generation periodically as new developers join:
303
+
304
+ ```bash
305
+ # Quarterly alias update
306
+ gitflow-analytics aliases -c config.yaml --confidence-threshold 0.9
307
+ ```
308
+
309
+ ### 6. Combine with Manual Mappings
310
+
311
+ Use aliases file for common mappings, inline for project-specific:
312
+
313
+ ```yaml
314
+ analysis:
315
+ identity:
316
+ # Shared team aliases
317
+ aliases_file: ../shared/team-aliases.yaml
318
+
319
+ # Project-specific exceptions
320
+ manual_mappings:
321
+ - name: "External Consultant"
322
+ primary_email: "consultant@external.com"
323
+ aliases:
324
+ - "temp-account@project.com"
325
+ ```
326
+
327
+ ## Troubleshooting
328
+
329
+ ### Aliases Not Loading
330
+
331
+ If aliases aren't being applied:
332
+
333
+ 1. **Check file path**: Ensure `aliases_file` path is correct relative to config file
334
+ 2. **Verify file exists**: Confirm the aliases.yaml file exists at the specified path
335
+ 3. **Check YAML syntax**: Validate YAML format (no tabs, proper indentation)
336
+ 4. **Review logs**: Check for warnings about alias loading failures
337
+
338
+ ```bash
339
+ # Test config loading
340
+ gitflow-analytics analyze -c config.yaml --validate-only
341
+ ```
342
+
343
+ ### Conflicting Aliases
344
+
345
+ If multiple aliases specify the same email:
346
+
347
+ - **Inline mappings take precedence** over aliases file
348
+ - **Later entries override earlier entries** in the same file
349
+ - **Use primary_email uniquely** - each developer should have one unique primary email
350
+
351
+ ### LLM Generation Errors
352
+
353
+ If alias generation fails:
354
+
355
+ 1. **Check API access**: Ensure you have a valid OpenRouter or OpenAI API key
356
+ 2. **Verify network**: Confirm internet connectivity for LLM API calls
357
+ 3. **Review commit history**: Ensure sufficient commit data exists for analysis
358
+ 4. **Try lower confidence**: Lower the threshold if no matches are found
359
+
360
+ ## Advanced Topics
361
+
362
+ ### Custom Similarity Threshold
363
+
364
+ Adjust the identity matching threshold:
365
+
366
+ ```yaml
367
+ analysis:
368
+ identity:
369
+ aliases_file: aliases.yaml
370
+ similarity_threshold: 0.90 # Higher = more strict matching
371
+ ```
372
+
373
+ ### Programmatic Alias Management
374
+
375
+ Build custom alias management tools:
376
+
377
+ ```python
378
+ from gitflow_analytics.config import AliasesManager
379
+
380
+ # Load and merge multiple alias files
381
+ main_mgr = AliasesManager(Path("main-aliases.yaml"))
382
+ team_mgr = AliasesManager(Path("team-aliases.yaml"))
383
+
384
+ # Merge team aliases into main
385
+ main_mgr.merge_from_mappings(team_mgr.to_manual_mappings())
386
+
387
+ # Save consolidated aliases
388
+ main_mgr.save()
389
+ ```
390
+
391
+ ### Alias Statistics and Validation
392
+
393
+ Get insights about your aliases:
394
+
395
+ ```python
396
+ manager = AliasesManager(Path("aliases.yaml"))
397
+ stats = manager.get_statistics()
398
+
399
+ print(f"Tracking {stats['total_email_addresses']} email addresses")
400
+ print(f"Consolidated into {stats['total_aliases']} developers")
401
+ print(f"Average confidence: {stats['avg_confidence']:.1%}")
402
+
403
+ # Find low-confidence aliases for review
404
+ low_confidence = [
405
+ a for a in manager.aliases
406
+ if a.confidence < 0.8
407
+ ]
408
+
409
+ for alias in low_confidence:
410
+ print(f"Review: {alias.name} ({alias.confidence:.0%} confidence)")
411
+ ```
412
+
413
+ ## Related Documentation
414
+
415
+ - [Identity Resolution Guide](identity-resolution-enhanced.md) - Core identity resolution concepts
416
+ - [Configuration Guide](../reference/configuration.md) - Complete configuration reference
417
+ - [Interactive Launcher](interactive-launcher.md) - Using the interactive launcher
418
+
419
+ ## Support
420
+
421
+ For issues or questions:
422
+
423
+ - Check [Troubleshooting Guide](troubleshooting.md)
424
+ - Review [GitHub Issues](https://github.com/EWTN-Global/gitflow-analytics/issues)
425
+ - Consult [Project Documentation](../README.md)
@@ -1,4 +1,4 @@
1
1
  """Version information for gitflow-analytics."""
2
2
 
3
- __version__ = "3.4.7"
3
+ __version__ = "3.6.0"
4
4
  __version_info__ = tuple(int(x) for x in __version__.split("."))