apadmi_grout 1.2.0 → 2.2.0

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 (31) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/lib/apadmi/grout/actions/find_tickets_to_move_action/find_tickets_to_move_action.rb +24 -0
  4. data/lib/apadmi/grout/actions/find_tickets_to_move_action/find_tickets_to_move_ado_action.rb +91 -0
  5. data/lib/apadmi/grout/{jira/actions/find_tickets_to_move_action.rb → actions/find_tickets_to_move_action/find_tickets_to_move_jira_action.rb} +16 -17
  6. data/lib/apadmi/grout/actions/generate_release_notes_action/generate_release_notes_action.rb +48 -0
  7. data/lib/apadmi/grout/actions/generate_release_notes_action/issue_classifier.rb +51 -0
  8. data/lib/apadmi/grout/{release_notes/actions → actions}/issues_from_changelog_action.rb +11 -6
  9. data/lib/apadmi/grout/actions/move_tickets_action.rb +34 -0
  10. data/lib/apadmi/grout/di.rb +58 -9
  11. data/lib/apadmi/grout/{jira/models/find_tickets_options.rb → models/ado_config.rb} +2 -2
  12. data/lib/apadmi/grout/models/bitrise.rb +38 -0
  13. data/lib/apadmi/grout/models/find_tickets_options.rb +44 -0
  14. data/lib/apadmi/grout/{jira/models → models}/flag_messages.rb +0 -0
  15. data/lib/apadmi/grout/models/issue.rb +49 -0
  16. data/lib/apadmi/grout/{jira/models → models}/pull_request.rb +0 -0
  17. data/lib/apadmi/grout/models/release_notes_config.rb +47 -0
  18. data/lib/apadmi/grout/{release_notes/models → models}/release_notes_templates.rb +8 -8
  19. data/lib/apadmi/grout/service/bitrise_service/bitrise_service.rb +103 -0
  20. data/lib/apadmi/grout/service/board_service/ado_board_service.rb +199 -0
  21. data/lib/apadmi/grout/service/board_service/board_service.rb +59 -0
  22. data/lib/apadmi/grout/{jira/wrapper/jira_wrapper.rb → service/board_service/jira_board_service.rb} +65 -107
  23. data/lib/apadmi/grout/utils/git_utils.rb +32 -6
  24. data/lib/apadmi/grout/utils/network_service.rb +123 -0
  25. data/lib/apadmi/grout/version.rb +1 -1
  26. data/lib/apadmi_grout.rb +3 -21
  27. metadata +24 -15
  28. data/lib/apadmi/grout/jira/actions/move_jira_tickets_action.rb +0 -58
  29. data/lib/apadmi/grout/jira/models/version.rb +0 -23
  30. data/lib/apadmi/grout/release_notes/actions/generate_release_notes_action.rb +0 -39
  31. data/lib/apadmi/grout/release_notes/models/release_notes_config.rb +0 -74
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "mustache"
4
-
5
- module Apadmi
6
- module Grout
7
- # Finds and returns a list of all the issues who's ids exist in the given changelog
8
- class GenerateReleaseNotesAction
9
- # @param jira_base_url [String] Jira base url
10
- def initialize(jira_base_url)
11
- @jira_base_url = jira_base_url
12
- end
13
-
14
- # @param config [Apadmi::Grout::ReleaseNotesConfig]
15
- def run(config)
16
- base_url = "#{@jira_base_url}/browse/"
17
-
18
- Mustache.render(
19
- config.templates.document_template,
20
- config: config,
21
- rendered_moved_issues: render_classified_issues(config.templates.list_template, base_url, config.classified_moved_issues),
22
- rendered_release_issues: render_classified_issues(config.templates.list_template, base_url, config.classified_release_issues)
23
- ).strip
24
- end
25
-
26
- private
27
-
28
- def render_classified_issues(template, base_url, classified_issues)
29
- return if classified_issues.empty
30
-
31
- Mustache.render(
32
- template,
33
- classified_issues: classified_issues,
34
- base_url: base_url
35
- )
36
- end
37
- end
38
- end
39
- end
@@ -1,74 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Apadmi
4
- module Grout
5
- # @param tasks [Array<JIRA::Resource::Issue>]
6
- # @param features [Array<JIRA::Resource::Issue>] aka stories
7
- # @param improvements [Array<JIRA::Resource::Issue>]
8
- # @param defects [Array<JIRA::Resource::Issue>] aka bugs
9
- # @param others [Array<JIRA::Resource::Issue>] any other non-standard issue types
10
- ClassifiedIssues = Struct.new(
11
- :tasks,
12
- :features,
13
- :improvements,
14
- :defects,
15
- :others
16
- ) do
17
- # @return returns true if all categories are empty
18
- def empty
19
- tasks.empty? && features.empty? &&
20
- improvements.empty? && defects.empty? && others.empty?
21
- end
22
- end
23
-
24
- # @param title [String] The title of the document
25
- # @param app_version [String] The app version pertaining to this release
26
- # @param min_os_version [String] The min supported os version of this release
27
- # @param date [String] Today's date
28
- # @param moved_issues [Array<JIRA::Resource::Issue>] Issues moved to a new state by this build job
29
- # @param release_issues [Array<JIRA::Resource::Issue>] Issues considered part of this release
30
- # @param commit_hash [String] Commit hash from which release was built
31
- # @param ci_build_number [String] CI build number which built the release
32
- # @param ci_build_url [String] Link to CI build job
33
- # @param templates [Apadmi::Grout::Templates] Mustache templates to use to generate the document
34
- ReleaseNotesConfig = Struct.new(
35
- :title,
36
- :app_version,
37
- :min_os_version,
38
- :date,
39
- :moved_issues,
40
- :release_issues,
41
- :commit_hash,
42
- :ci_build_number,
43
- :ci_build_url,
44
- :templates
45
- ) do
46
- def classified_moved_issues
47
- classify_issues(moved_issues)
48
- end
49
-
50
- def classified_release_issues
51
- classify_issues(release_issues)
52
- end
53
-
54
- private
55
-
56
- def classify_issues(issues)
57
- ClassifiedIssues.new(
58
- filter_issues_by_type(%w[Task], issues),
59
- filter_issues_by_type(%w[Story Debt], issues),
60
- filter_issues_by_type(%w[Improvement Rework], issues),
61
- filter_issues_by_type(%w[Bug], issues),
62
- issues - filter_issues_by_type(%w[Task Story Debt Improvement Rework Bug], issues)
63
- )
64
- end
65
-
66
- # @param types [Array<String>] List of types to match on
67
- # @param issues [Array<JIRA::Resource::Issue>]
68
- # @return [Array<JIRA::Resource::Issue>]
69
- def filter_issues_by_type(types, issues)
70
- issues.find_all { |issue| types.include?(issue.issuetype.name) }
71
- end
72
- end
73
- end
74
- end