apadmi_grout 1.2.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
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