gitlab_support_readiness 1.0.41 → 1.0.42

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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/lib/support_readiness/mailgun/client.rb +2 -1
  3. data/lib/support_readiness/mailgun/emails.rb +1 -1
  4. data/lib/support_readiness/support_super_form_processor/create_article.rb +375 -0
  5. data/lib/support_readiness/support_super_form_processor/create_macro.rb +183 -0
  6. data/lib/support_readiness/support_super_form_processor/edit_macro.rb +161 -0
  7. data/lib/support_readiness/support_super_form_processor/enable_us_government.rb +236 -0
  8. data/lib/support_readiness/support_super_form_processor/global_ir_dotcom_subscriptions_billing_entity_change.rb +218 -0
  9. data/lib/support_readiness/support_super_form_processor/global_ir_dotcom_subscriptions_extension.rb +238 -0
  10. data/lib/support_readiness/support_super_form_processor/global_ir_dotcom_subscriptions_investigate.rb +238 -0
  11. data/lib/support_readiness/support_super_form_processor/global_ir_dotcom_subscriptions_link.rb +213 -0
  12. data/lib/support_readiness/support_super_form_processor/global_ir_dotcom_subscriptions_nfr.rb +224 -0
  13. data/lib/support_readiness/support_super_form_processor/global_ir_dotcom_subscriptions_reset_seat_qsr.rb +194 -0
  14. data/lib/support_readiness/support_super_form_processor/global_ir_dotcom_trials_edit.rb +198 -0
  15. data/lib/support_readiness/support_super_form_processor/global_ir_dotcom_trials_extension.rb +228 -0
  16. data/lib/support_readiness/support_super_form_processor/global_ir_dotcom_trials_over_plan.rb +219 -0
  17. data/lib/support_readiness/support_super_form_processor/global_ir_hackerone_license.rb +172 -0
  18. data/lib/support_readiness/support_super_form_processor/global_ir_oem_license.rb +241 -0
  19. data/lib/support_readiness/support_super_form_processor/global_ir_order_management.rb +267 -0
  20. data/lib/support_readiness/support_super_form_processor/global_ir_other.rb +137 -0
  21. data/lib/support_readiness/support_super_form_processor/global_ir_provison_failure.rb +179 -0
  22. data/lib/support_readiness/support_super_form_processor/global_ir_sm_subscriptions_did_not_receive.rb +191 -0
  23. data/lib/support_readiness/support_super_form_processor/global_ir_sm_subscriptions_multiyear.rb +188 -0
  24. data/lib/support_readiness/support_super_form_processor/global_ir_sm_subscriptions_nfr.rb +215 -0
  25. data/lib/support_readiness/support_super_form_processor/global_ir_sm_subscriptions_resend.rb +188 -0
  26. data/lib/support_readiness/support_super_form_processor/global_ir_sm_subscriptions_scl.rb +194 -0
  27. data/lib/support_readiness/support_super_form_processor/global_ir_sm_subscriptions_temp.rb +234 -0
  28. data/lib/support_readiness/support_super_form_processor/global_ir_sm_trials_edit.rb +203 -0
  29. data/lib/support_readiness/support_super_form_processor/global_ir_sm_trials_extension.rb +233 -0
  30. data/lib/support_readiness/support_super_form_processor/global_ir_sm_trials_new.rb +223 -0
  31. data/lib/support_readiness/support_super_form_processor/global_ir_wider_community_license.rb +247 -0
  32. data/lib/support_readiness/support_super_form_processor/global_set_collaboration_id.rb +151 -0
  33. data/lib/support_readiness/support_super_form_processor/global_set_org_ase.rb +293 -0
  34. data/lib/support_readiness/support_super_form_processor/global_toggle_escalation.rb +142 -0
  35. data/lib/support_readiness/support_super_form_processor/gratis_support_extension.rb +247 -0
  36. data/lib/support_readiness/support_super_form_processor/gratis_support_former_customer.rb +288 -0
  37. data/lib/support_readiness/support_super_form_processor/gratis_support_migration.rb +238 -0
  38. data/lib/support_readiness/support_super_form_processor/gratis_support_other.rb +221 -0
  39. data/lib/support_readiness/support_super_form_processor/gratis_support_prospect.rb +288 -0
  40. data/lib/support_readiness/support_super_form_processor/gratis_support_upgrade.rb +298 -0
  41. data/lib/support_readiness/support_super_form_processor/namespace_availability.rb +213 -0
  42. data/lib/support_readiness/support_super_form_processor/pd_shadow_modification.rb +189 -0
  43. data/lib/support_readiness/support_super_form_processor/sa_request_for_support.rb +214 -0
  44. data/lib/support_readiness/support_super_form_processor/shared.rb +518 -0
  45. data/lib/support_readiness/support_super_form_processor/team_member_license.rb +144 -0
  46. data/lib/support_readiness/support_super_form_processor/two_fa_exemption.rb +260 -0
  47. data/lib/support_readiness/support_super_form_processor/usgov_ir_order_management.rb +252 -0
  48. data/lib/support_readiness/support_super_form_processor/usgov_ir_other.rb +136 -0
  49. data/lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_did_not_receive.rb +162 -0
  50. data/lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_multiyear.rb +159 -0
  51. data/lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_nfr.rb +196 -0
  52. data/lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_resend.rb +159 -0
  53. data/lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_scl.rb +160 -0
  54. data/lib/support_readiness/support_super_form_processor/usgov_ir_sm_subs_temp.rb +219 -0
  55. data/lib/support_readiness/support_super_form_processor/usgov_ir_sm_trials_edit.rb +189 -0
  56. data/lib/support_readiness/support_super_form_processor/usgov_ir_sm_trials_extension.rb +219 -0
  57. data/lib/support_readiness/support_super_form_processor/usgov_ir_sm_trials_new.rb +209 -0
  58. data/lib/support_readiness/support_super_form_processor/usgov_set_collaboration_id.rb +151 -0
  59. data/lib/support_readiness/support_super_form_processor/usgov_set_org_ase.rb +295 -0
  60. data/lib/support_readiness/support_super_form_processor.rb +67 -0
  61. data/lib/support_readiness.rb +1 -0
  62. metadata +59 -2
@@ -0,0 +1,234 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Defines the module Readiness.
4
+ module Readiness
5
+ # Defines the module SupportSuperFormProcessor
6
+ module SupportSuperFormProcessor
7
+ ##
8
+ # Defines the class GlobalIRSMSubscriptionsTemp within the module {Readiness::Zendesk}.
9
+ #
10
+ # @author Jason Colyer
11
+ # @since 1.0.42
12
+ class GlobalIRSMSubscriptionsTemp < Readiness::Client
13
+ ##
14
+ # Process a Global Internal Request Self-Managed Subscriptions Temp request
15
+ #
16
+ # @author Jason Colyer
17
+ # @since 1.0.42
18
+ def self.process!(gitlab_client, gitlab_admin_client, zendesk_client)
19
+ @gitlab_client = gitlab_client
20
+ @gitlab_admin_client = gitlab_admin_client
21
+ @zendesk_client = zendesk_client
22
+ requester
23
+ zd_user
24
+ ticket = Readiness::Zendesk::Tickets.new
25
+ ticket.email_cc_ids = [zd_user.id]
26
+ ticket.requester_id = 379855863520
27
+ ticket.submitter_id = 379855863520
28
+ ticket.comment = { html_body: body }
29
+ ticket.subject = 'Internal Request - SM - Extend an (almost) expired subscription'
30
+ ticket.tags = %w[lnr_internal_request lnr_valid_request lnr_sm_license lnr_sm_license_extension]
31
+ ticket.priority = request_priority
32
+ ticket.status = 'new'
33
+ ticket.ticket_form_id = 360000071293
34
+ ticket.custom_fields = [
35
+ { id: 4414446722578, value: 'ticket_group_not_applicable' },
36
+ { id: 360020614420, value: 'aof_lnr' },
37
+ { id: 360020735259, value: 'stage-frt' },
38
+ { id: 360018253094, value: 'all_regions' },
39
+ { id: 360004394559, value: 'free_plan' },
40
+ { id: 360005183820, value: zd_user.name },
41
+ { id: 360005248219, value: zd_user.email },
42
+ { id: 360020735319, value: 'sev3' },
43
+ { id: 360020288373, value: '0' },
44
+ { id: 360014776453, value: 'medium' },
45
+ { id: 6978426204828, value: 'ir_sm_temp' },
46
+ { id: 6978366086428, value: zd_user.email },
47
+ { id: 45195248, value: 'created_by_agent' }
48
+ ]
49
+ create = Readiness::Zendesk::Tickets.create!(@zendesk_client, ticket)
50
+ puts "Ticket created: https://gitlab.zendesk.com/agent/tickets/#{create.id}"
51
+ end
52
+
53
+ ##
54
+ # Sets the global variable requester
55
+ #
56
+ # @author Jason Colyer
57
+ # @since 1.0.42
58
+ def self.requester
59
+ @requester ||= Readiness::SupportSuperFormProcessor::Shared.gitlab_user_check(@gitlab_admin_client, requester_email)
60
+ end
61
+
62
+ ##
63
+ # Sets the global variable zd_user
64
+ #
65
+ # @author Jason Colyer
66
+ # @since 1.0.42
67
+ def self.zd_user
68
+ @zd_user ||= Readiness::SupportSuperFormProcessor::Shared.zendesk_user_check(@zendesk_client, requester_email)
69
+ end
70
+
71
+ ##
72
+ # Sets the global variable requester_email
73
+ #
74
+ # @author Jason Colyer
75
+ # @since 1.0.42
76
+ def self.requester_email
77
+ @requester_email ||= ENV.fetch('REQUESTER_EMAIL')
78
+ end
79
+
80
+ ##
81
+ # Sets the global variable request_priority
82
+ #
83
+ # @author Jason Colyer
84
+ # @since 1.0.42
85
+ def self.request_priority
86
+ @request_priority ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_PRIORITY')
87
+ end
88
+
89
+ ##
90
+ # Sets the global variable context
91
+ #
92
+ # @author Jason Colyer
93
+ # @since 1.0.42
94
+ def self.context
95
+ @context ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_CONTEXT')
96
+ end
97
+
98
+ ##
99
+ # Sets the global variable contact_name
100
+ #
101
+ # @author Jason Colyer
102
+ # @since 1.0.42
103
+ def self.contact_name
104
+ @contact_name ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_CONTACT_NAME')
105
+ end
106
+
107
+ ##
108
+ # Sets the global variable contact_email
109
+ #
110
+ # @author Jason Colyer
111
+ # @since 1.0.42
112
+ def self.contact_email
113
+ @contact_email ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_EMAIL')
114
+ end
115
+
116
+ ##
117
+ # Sets the global variable company
118
+ #
119
+ # @author Jason Colyer
120
+ # @since 1.0.42
121
+ def self.company
122
+ @company ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_COMPANY_NAME')
123
+ end
124
+
125
+ ##
126
+ # Sets the global variable opp_link
127
+ #
128
+ # @author Jason Colyer
129
+ # @since 1.0.42
130
+ def self.opp_link
131
+ @opp_link ||= ENV.fetch('SM_LICENSE_TEMP_OPP_LINK')
132
+ end
133
+
134
+ ##
135
+ # Sets the global variable current
136
+ #
137
+ # @author Jason Colyer
138
+ # @since 1.0.42
139
+ def self.current
140
+ @current ||= ENV.fetch('SM_LICENSE_TEMP_SEATS')
141
+ end
142
+
143
+ ##
144
+ # Sets the global variable trueup
145
+ #
146
+ # @author Jason Colyer
147
+ # @since 1.0.42
148
+ def self.trueup
149
+ @trueup ||= ENV.fetch('SM_LICENSE_TEMP_TRUEUPS')
150
+ end
151
+
152
+ ##
153
+ # Sets the global variable plan
154
+ #
155
+ # @author Jason Colyer
156
+ # @since 1.0.42
157
+ def self.plan
158
+ @plan ||= ENV.fetch('SM_LICENSE_TEMP_PLAN')
159
+ end
160
+
161
+ ##
162
+ # Sets the global variable extension_date
163
+ #
164
+ # @author Jason Colyer
165
+ # @since 1.0.42
166
+ def self.extension_date
167
+ @extension_date ||= ENV.fetch('SM_LICENSE_TEMP_EXPIRATION')
168
+ end
169
+
170
+ ##
171
+ # Sets the global variable sfdc_account_link
172
+ #
173
+ # @author Jason Colyer
174
+ # @since 1.0.42
175
+ def self.sfdc_account_link
176
+ @sfdc_account_link ||= ENV.fetch('SM_LICENSE_TEMP_SFDC_ACCOUNT')
177
+ end
178
+
179
+ ##
180
+ # Sets the global variable reason
181
+ #
182
+ # @author Jason Colyer
183
+ # @since 1.0.42
184
+ def self.reason
185
+ @reason ||= ENV.fetch('SM_LICENSE_TEMP_REASON')
186
+ end
187
+
188
+ ##
189
+ # Returns the ticket body
190
+ #
191
+ # @author Jason Colyer
192
+ # @since 1.0.42
193
+ # @return [String]
194
+ def self.body
195
+ <<~STRING
196
+ <p>
197
+ Greetings,
198
+ </p>
199
+ <p>
200
+ Please note that this is an <b>INTERNAL</b> ticket and should <b>NEVER</b> be shared with anyone. Please do not CC, BCC, forward, or anything else that can send the information from this ticket. <b>NEVER</b> add <i>anyone</i> outside of GitLab to this ticket or communications stemming from this ticket.
201
+ </p>
202
+ <p>
203
+ A request has been filed for Extend an (almost) expired subscription (SM).
204
+ </p>
205
+ <p>
206
+ The information for this is as follows:
207
+ </p>
208
+ <ul>
209
+ <li>Contact's name: #{contact_name}</li>
210
+ <li>
211
+ Contact's email: #{contact_email}
212
+ <a href="https://www.zuora.com/platform/apps/search?searchTerm=#{contact_email}" target='_blank'>(Zuora Search)</a>
213
+ <a href="https://customers.gitlab.com/admin/customer?model_name=customer&query=#{contact_email}" target='_blank'>(Portal Search)</a>
214
+ </li>
215
+ <li>Contact's company: #{company}</li>
216
+ <li>#{Readiness::SupportSuperFormProcessor::Shared.sfdc_account_string(sfdc_account_link)}</li>
217
+ <li>#{Readiness::SupportSuperFormProcessor::Shared.sfdc_opportunity_string(opp_link)}</li>
218
+ <li>Desired expiration date: #{extension_date}</li>
219
+ <li>Seats needed in temp license: #{current}</li>
220
+ <li>True-ups needed in temp license: #{trueup}</li>
221
+ <li>Plan for temp license: #{plan}</li>
222
+ <li>Reason for extension: #{reason}</li>
223
+ </ul>
224
+ <p>
225
+ Some additional context for this request is:
226
+ </p>
227
+ <pre>
228
+ #{context}
229
+ </pre>
230
+ STRING
231
+ end
232
+ end
233
+ end
234
+ end
@@ -0,0 +1,203 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Defines the module Readiness.
4
+ module Readiness
5
+ # Defines the module SupportSuperFormProcessor
6
+ module SupportSuperFormProcessor
7
+ ##
8
+ # Defines the class GlobalIRSMTrialsEdit within the module {Readiness::Zendesk}.
9
+ #
10
+ # @author Jason Colyer
11
+ # @since 1.0.42
12
+ class GlobalIRSMTrialsEdit < Readiness::Client
13
+ ##
14
+ # Process a Global Internal Request Self-Managed Trial Edit request
15
+ #
16
+ # @author Jason Colyer
17
+ # @since 1.0.42
18
+ def self.process!(gitlab_client, gitlab_admin_client, zendesk_client)
19
+ @gitlab_client = gitlab_client
20
+ @gitlab_admin_client = gitlab_admin_client
21
+ @zendesk_client = zendesk_client
22
+ requester
23
+ zd_user
24
+ ticket = Readiness::Zendesk::Tickets.new
25
+ ticket.email_cc_ids = [zd_user.id]
26
+ ticket.requester_id = 379855863520
27
+ ticket.submitter_id = 379855863520
28
+ ticket.comment = { html_body: body }
29
+ ticket.subject = 'Internal Request - SM - Modify an existing trial'
30
+ ticket.tags = %w[lnr_internal_request lnr_valid_request lnr_sm_trial lnr_sm_trial_edit]
31
+ ticket.priority = request_priority
32
+ ticket.status = 'new'
33
+ ticket.ticket_form_id = 360000071293
34
+ ticket.custom_fields = [
35
+ { id: 4414446722578, value: 'ticket_group_not_applicable' },
36
+ { id: 360020614420, value: 'aof_lnr' },
37
+ { id: 360020735259, value: 'stage-frt' },
38
+ { id: 360018253094, value: 'all_regions' },
39
+ { id: 360004394559, value: 'free_plan' },
40
+ { id: 360005183820, value: zd_user.name },
41
+ { id: 360005248219, value: zd_user.email },
42
+ { id: 360020735319, value: 'sev3' },
43
+ { id: 360020288373, value: '0' },
44
+ { id: 360014776453, value: 'medium' },
45
+ { id: 6978426204828, value: 'ir_modify_sm_trial' },
46
+ { id: 6978366086428, value: zd_user.email },
47
+ { id: 45195248, value: 'created_by_agent' }
48
+ ]
49
+ create = Readiness::Zendesk::Tickets.create!(@zendesk_client, ticket)
50
+ puts "Ticket created: https://gitlab.zendesk.com/agent/tickets/#{create.id}"
51
+ end
52
+
53
+ ##
54
+ # Sets the global variable requester
55
+ #
56
+ # @author Jason Colyer
57
+ # @since 1.0.42
58
+ def self.requester
59
+ @requester ||= Readiness::SupportSuperFormProcessor::Shared.gitlab_user_check(@gitlab_admin_client, requester_email)
60
+ end
61
+
62
+ ##
63
+ # Sets the global variable zd_user
64
+ #
65
+ # @author Jason Colyer
66
+ # @since 1.0.42
67
+ def self.zd_user
68
+ @zd_user ||= Readiness::SupportSuperFormProcessor::Shared.zendesk_user_check(@zendesk_client, requester_email)
69
+ end
70
+
71
+ ##
72
+ # Sets the global variable requester_email
73
+ #
74
+ # @author Jason Colyer
75
+ # @since 1.0.42
76
+ def self.requester_email
77
+ @requester_email ||= ENV.fetch('REQUESTER_EMAIL')
78
+ end
79
+
80
+ ##
81
+ # Sets the global variable request_priority
82
+ #
83
+ # @author Jason Colyer
84
+ # @since 1.0.42
85
+ def self.request_priority
86
+ @request_priority ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_PRIORITY')
87
+ end
88
+
89
+ ##
90
+ # Sets the global variable context
91
+ #
92
+ # @author Jason Colyer
93
+ # @since 1.0.42
94
+ def self.context
95
+ @context ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_CONTEXT')
96
+ end
97
+
98
+ ##
99
+ # Sets the global variable contact_name
100
+ #
101
+ # @author Jason Colyer
102
+ # @since 1.0.42
103
+ def self.contact_name
104
+ @contact_name ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_CONTACT_NAME')
105
+ end
106
+
107
+ ##
108
+ # Sets the global variable contact_email
109
+ #
110
+ # @author Jason Colyer
111
+ # @since 1.0.42
112
+ def self.contact_email
113
+ @contact_email ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_EMAIL')
114
+ end
115
+
116
+ ##
117
+ # Sets the global variable company
118
+ #
119
+ # @author Jason Colyer
120
+ # @since 1.0.42
121
+ def self.company
122
+ @company ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_COMPANY_NAME')
123
+ end
124
+
125
+ ##
126
+ # Sets the global variable license_link
127
+ #
128
+ # @author Jason Colyer
129
+ # @since 1.0.42
130
+ def self.license_link
131
+ @license_link ||= ENV.fetch('SM_TRIAL_EDIT_LICENSE')
132
+ end
133
+
134
+ ##
135
+ # Sets the global variable current
136
+ #
137
+ # @author Jason Colyer
138
+ # @since 1.0.42
139
+ def self.current
140
+ @current ||= ENV.fetch('SM_TRIAL_EDIT_SEATS')
141
+ end
142
+
143
+ ##
144
+ # Sets the global variable sfdc_account_link
145
+ #
146
+ # @author Jason Colyer
147
+ # @since 1.0.42
148
+ def self.sfdc_account_link
149
+ @sfdc_account_link ||= ENV.fetch('SM_TRIAL_EDIT_SFDC_ACCOUNT')
150
+ end
151
+
152
+ ##
153
+ # Sets the global variable plan
154
+ #
155
+ # @author Jason Colyer
156
+ # @since 1.0.42
157
+ def self.plan
158
+ @plan ||= ENV.fetch('SM_TRIAL_EDIT_PLAN')
159
+ end
160
+
161
+ ##
162
+ # Returns the ticket body
163
+ #
164
+ # @author Jason Colyer
165
+ # @since 1.0.42
166
+ # @return [String]
167
+ def self.body
168
+ <<~STRING
169
+ <p>
170
+ Greetings
171
+ </p>
172
+ <p>
173
+ A request has been filed for Modify an existing Self-managed trial.
174
+ </p>
175
+ <p>
176
+ Please note that this is an <b>INTERNAL</b> ticket and should <b>NEVER</b> be shared with anyone. Please do not CC, BCC, forward, or anything else that can send the information from this ticket. <b>NEVER</b> add <i>anyone</i> outside of GitLab to this ticket or communications stemming from this ticket.
177
+ </p>
178
+ <p>
179
+ The information for this is as follows:
180
+ </p>
181
+ <ul>
182
+ <li>Contact's name: #{contact_name}</li>
183
+ <li>
184
+ Contact's email: #{contact_email}
185
+ <a href="https://www.zuora.com/platform/apps/search?searchTerm=#{contact_email}" target='_blank'>(Zuora Search)</a>
186
+ <a href="https://customers.gitlab.com/admin/customer?model_name=customer&query=#{contact_email}" target='_blank'>(Portal Search)</a>
187
+ </li>
188
+ <li>Company: #{company}</li>
189
+ <li>License link: <a href='#{license_link}' target='_blank'>#{license_link}</a></li>
190
+ <li>User count: #{current}</li>
191
+ <li>Plan: #{plan}</li>
192
+ </ul>
193
+ <p>
194
+ Some additional context for this request is:
195
+ </p>
196
+ <pre>
197
+ #{context}
198
+ </pre>
199
+ STRING
200
+ end
201
+ end
202
+ end
203
+ end
@@ -0,0 +1,233 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Defines the module Readiness.
4
+ module Readiness
5
+ # Defines the module SupportSuperFormProcessor
6
+ module SupportSuperFormProcessor
7
+ ##
8
+ # Defines the class GlobalIRSMTrialsExtension within the module {Readiness::Zendesk}.
9
+ #
10
+ # @author Jason Colyer
11
+ # @since 1.0.42
12
+ class GlobalIRSMTrialsExtension < Readiness::Client
13
+ ##
14
+ # Process a Global Internal Request Self-Managed Trial Extension request
15
+ #
16
+ # @author Jason Colyer
17
+ # @since 1.0.42
18
+ def self.process!(gitlab_client, gitlab_admin_client, zendesk_client)
19
+ @gitlab_client = gitlab_client
20
+ @gitlab_admin_client = gitlab_admin_client
21
+ @zendesk_client = zendesk_client
22
+ requester
23
+ zd_user
24
+ ticket = Readiness::Zendesk::Tickets.new
25
+ ticket.email_cc_ids = [zd_user.id]
26
+ ticket.requester_id = 379855863520
27
+ ticket.submitter_id = 379855863520
28
+ ticket.comment = { html_body: body }
29
+ ticket.subject = 'Internal Request - SM - Extend an existing trial'
30
+ ticket.tags = %w[lnr_internal_request lnr_valid_request lnr_sm_trial lnr_sm_trial_extension]
31
+ ticket.priority = request_priority
32
+ ticket.status = 'new'
33
+ ticket.ticket_form_id = 360000071293
34
+ ticket.custom_fields = [
35
+ { id: 4414446722578, value: 'ticket_group_not_applicable' },
36
+ { id: 360020614420, value: 'aof_lnr' },
37
+ { id: 360020735259, value: 'stage-frt' },
38
+ { id: 360018253094, value: 'all_regions' },
39
+ { id: 360004394559, value: 'free_plan' },
40
+ { id: 360005183820, value: zd_user.name },
41
+ { id: 360005248219, value: zd_user.email },
42
+ { id: 360020735319, value: 'sev3' },
43
+ { id: 360020288373, value: '0' },
44
+ { id: 360014776453, value: 'medium' },
45
+ { id: 6978426204828, value: 'ir_extend_sm_trial' },
46
+ { id: 6978366086428, value: zd_user.email },
47
+ { id: 45195248, value: 'created_by_agent' }
48
+ ]
49
+ create = Readiness::Zendesk::Tickets.create!(@zendesk_client, ticket)
50
+ puts "Ticket created: https://gitlab.zendesk.com/agent/tickets/#{create.id}"
51
+ end
52
+
53
+ ##
54
+ # Sets the global variable requester
55
+ #
56
+ # @author Jason Colyer
57
+ # @since 1.0.42
58
+ def self.requester
59
+ @requester ||= Readiness::SupportSuperFormProcessor::Shared.gitlab_user_check(@gitlab_admin_client, requester_email)
60
+ end
61
+
62
+ ##
63
+ # Sets the global variable zd_user
64
+ #
65
+ # @author Jason Colyer
66
+ # @since 1.0.42
67
+ def self.zd_user
68
+ @zd_user ||= Readiness::SupportSuperFormProcessor::Shared.zendesk_user_check(@zendesk_client, requester_email)
69
+ end
70
+
71
+ ##
72
+ # Sets the global variable requester_email
73
+ #
74
+ # @author Jason Colyer
75
+ # @since 1.0.42
76
+ def self.requester_email
77
+ @requester_email ||= ENV.fetch('REQUESTER_EMAIL')
78
+ end
79
+
80
+ ##
81
+ # Sets the global variable request_priority
82
+ #
83
+ # @author Jason Colyer
84
+ # @since 1.0.42
85
+ def self.request_priority
86
+ @request_priority ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_PRIORITY')
87
+ end
88
+
89
+ ##
90
+ # Sets the global variable context
91
+ #
92
+ # @author Jason Colyer
93
+ # @since 1.0.42
94
+ def self.context
95
+ @context ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_CONTEXT')
96
+ end
97
+
98
+ ##
99
+ # Sets the global variable contact_name
100
+ #
101
+ # @author Jason Colyer
102
+ # @since 1.0.42
103
+ def self.contact_name
104
+ @contact_name ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_CONTACT_NAME')
105
+ end
106
+
107
+ ##
108
+ # Sets the global variable contact_email
109
+ #
110
+ # @author Jason Colyer
111
+ # @since 1.0.42
112
+ def self.contact_email
113
+ @contact_email ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_EMAIL')
114
+ end
115
+
116
+ ##
117
+ # Sets the global variable company
118
+ #
119
+ # @author Jason Colyer
120
+ # @since 1.0.42
121
+ def self.company
122
+ @company ||= ENV.fetch('INTERNAL_REQUEST_GLOBAL_COMPANY_NAME')
123
+ end
124
+
125
+ ##
126
+ # Sets the global variable license_link
127
+ #
128
+ # @author Jason Colyer
129
+ # @since 1.0.42
130
+ def self.license_link
131
+ @license_link ||= ENV.fetch('SM_TRIAL_EXTEND_LICENSE')
132
+ end
133
+
134
+ ##
135
+ # Sets the global variable current
136
+ #
137
+ # @author Jason Colyer
138
+ # @since 1.0.42
139
+ def self.current
140
+ @current ||= ENV.fetch('SM_TRIAL_EXTEND_NEW_SEATS')
141
+ end
142
+
143
+ ##
144
+ # Sets the global variable plan
145
+ #
146
+ # @author Jason Colyer
147
+ # @since 1.0.42
148
+ def self.plan
149
+ @plan ||= ENV.fetch('SM_TRIAL_EXTEND_NEW_PLAN')
150
+ end
151
+
152
+ ##
153
+ # Sets the global variable expiration
154
+ #
155
+ # @author Jason Colyer
156
+ # @since 1.0.42
157
+ def self.expiration
158
+ @expiration ||= ENV.fetch('SM_TRIAL_EXTEND_CURRENT_EXPIRATION')
159
+ end
160
+
161
+ ##
162
+ # Sets the global variable extension_date
163
+ #
164
+ # @author Jason Colyer
165
+ # @since 1.0.42
166
+ def self.extension_date
167
+ @extension_date ||= ENV.fetch('SM_TRIAL_EXTEND_NEW_EXPIRATION')
168
+ end
169
+
170
+ ##
171
+ # Sets the global variable sfdc_account_link
172
+ #
173
+ # @author Jason Colyer
174
+ # @since 1.0.42
175
+ def self.sfdc_account_link
176
+ @sfdc_account_link ||= ENV.fetch('SM_TRIAL_EXTEND_NEW_SFDC_ACCOUNT')
177
+ end
178
+
179
+ ##
180
+ # Sets the global variable reason
181
+ #
182
+ # @author Jason Colyer
183
+ # @since 1.0.42
184
+ def self.reason
185
+ @reason ||= ENV.fetch('SM_TRIAL_EXTEND_NEW_REASON')
186
+ end
187
+
188
+ ##
189
+ # Returns the ticket body
190
+ #
191
+ # @author Jason Colyer
192
+ # @since 1.0.42
193
+ # @return [String]
194
+ def self.body
195
+ <<~STRING
196
+ <p>
197
+ Greetings
198
+ </p>
199
+ <p>
200
+ Please note that this is an <b>INTERNAL</b> ticket and should <b>NEVER</b> be shared with anyone. Please do not CC, BCC, forward, or anything else that can send the information from this ticket. <b>NEVER</b> add <i>anyone</i> outside of GitLab to this ticket or communications stemming from this ticket.
201
+ </p>
202
+ <p>
203
+ A request has been filed for Extend an existing Self-managed trial.
204
+ </p>
205
+ <p>
206
+ The information for this is as follows:
207
+ </p>
208
+ <ul>
209
+ <li>Contact's name: #{contact_name}</li>
210
+ <li>
211
+ Contact's email: #{contact_email}
212
+ <a href="https://www.zuora.com/platform/apps/search?searchTerm=#{contact_email}" target='_blank'>(Zuora Search)</a>
213
+ <a href="https://customers.gitlab.com/admin/customer?model_name=customer&query=#{contact_email}" target='_blank'>(Portal Search)</a>
214
+ </li>
215
+ <li>Company: #{company}</li>
216
+ <li>Current license: <a href='#{license_link}' target='_blank'><%= @license_link %></a></li>
217
+ <li>Current license expiration date: #{expiration}</li>
218
+ <li>Desired expiration date: #{extension_date}</li>
219
+ <li>User count: #{current}</li>
220
+ <li>Plan: #{plan}</li>
221
+ <li>Reason for extension: #{reason}</li>
222
+ </ul>
223
+ <p>
224
+ Some additional context for this request is:
225
+ </p>
226
+ <pre>
227
+ #{context}
228
+ </pre>
229
+ STRING
230
+ end
231
+ end
232
+ end
233
+ end