gitlab_support_readiness 1.0.95 → 1.0.97
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.
- checksums.yaml +4 -4
- data/lib/support_readiness/repos/zendesk_salesforce_sync.rb +4 -0
- data/lib/support_readiness/salesforce/accounts.rb +3 -0
- data/lib/support_readiness/salesforce/subscription_definitions.rb +19 -0
- data/lib/support_readiness/support_super_form_processor/disable_us_government.rb +178 -0
- data/lib/support_readiness/support_super_form_processor/enable_us_government.rb +12 -7
- data/lib/support_readiness/support_super_form_processor/shared.rb +2 -2
- data/lib/support_readiness/support_super_form_processor.rb +1 -0
- data/lib/support_readiness/ticket_processor/organization_notes.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a1ef97a0e31a1b469b1e012d856d5915d9b96c6ee85984b851854eb219fadf1
|
4
|
+
data.tar.gz: 5be4b830b795774ed4640a19afb8093ac29dd0636d4ea124309e9525762bb8a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78b62c7a8e266710bc424266234075691e376b120dccc10dbea12617c676c8b7d4eb788b5edfa9d19a517b892fd4ecdae2a623a3a065931474fd11977c956b11
|
7
|
+
data.tar.gz: dd20a3f36025cf1ed488a497ab97f2560b604f0512861798c79a854a59efa0a1189681c9d20546eba244084a072aa3a04a114a16d8e62e54532adaa017822a24
|
@@ -752,6 +752,7 @@ module Readiness
|
|
752
752
|
'sub_consumption_cicd_minutes' => org.organization_fields['sub_consumption_cicd_minutes'],
|
753
753
|
'sub_consumption_duo_enterprise' => org.organization_fields['sub_consumption_duo_enterprise'],
|
754
754
|
'sub_consumption_duo_premium' => org.organization_fields['sub_consumption_duo_premium'],
|
755
|
+
'sub_consumption_duo_amazon_q' => org.organization_fields['sub_consumption_duo_amazon_q'],
|
755
756
|
'sub_consumption_eap' => org.organization_fields['sub_consumption_eap'],
|
756
757
|
'sub_consumption_storage' => org.organization_fields['sub_consumption_storage'],
|
757
758
|
'sub_proserv' => org.organization_fields['sub_proserv'],
|
@@ -806,6 +807,7 @@ module Readiness
|
|
806
807
|
'sub_consumption_cicd_minutes' => org.organization_fields['sub_consumption_cicd_minutes'],
|
807
808
|
'sub_consumption_duo_enterprise' => org.organization_fields['sub_consumption_duo_enterprise'],
|
808
809
|
'sub_consumption_duo_premium' => org.organization_fields['sub_consumption_duo_premium'],
|
810
|
+
'sub_consumption_duo_amazon_q' => org.organization_fields['sub_consumption_duo_amazon_q'],
|
809
811
|
'sub_consumption_eap' => org.organization_fields['sub_consumption_eap'],
|
810
812
|
'sub_consumption_storage' => org.organization_fields['sub_consumption_storage'],
|
811
813
|
'sub_proserv' => org.organization_fields['sub_proserv'],
|
@@ -1001,6 +1003,7 @@ module Readiness
|
|
1001
1003
|
'sub_consumption_cicd_minutes' => account['sub_consumption_cicd_minutes'],
|
1002
1004
|
'sub_consumption_duo_enterprise' => account['sub_consumption_duo_enterprise'],
|
1003
1005
|
'sub_consumption_duo_premium' => account['sub_consumption_duo_premium'],
|
1006
|
+
'sub_consumption_duo_amazon_q' => account['sub_consumption_duo_amazon_q'],
|
1004
1007
|
'sub_consumption_eap' => account['sub_consumption_eap'],
|
1005
1008
|
'sub_consumption_storage' => account['sub_consumption_storage'],
|
1006
1009
|
'sub_dotcom_premium' => account['sub_dotcom_premium'],
|
@@ -1053,6 +1056,7 @@ module Readiness
|
|
1053
1056
|
'sub_consumption_cicd_minutes' => account['sub_consumption_cicd_minutes'],
|
1054
1057
|
'sub_consumption_duo_enterprise' => account['sub_consumption_duo_enterprise'],
|
1055
1058
|
'sub_consumption_duo_premium' => account['sub_consumption_duo_premium'],
|
1059
|
+
'sub_consumption_duo_amazon_q' => account['sub_consumption_duo_amazon_q'],
|
1056
1060
|
'sub_consumption_eap' => account['sub_consumption_eap'],
|
1057
1061
|
'sub_consumption_storage' => account['sub_consumption_storage'],
|
1058
1062
|
'sub_dotcom_premium' => account['sub_dotcom_premium'],
|
@@ -149,6 +149,7 @@ module Readiness
|
|
149
149
|
"sub_consumption_cicd_minutes" => subscriptions.include?('sub_consumption_cicd_minutes'),
|
150
150
|
"sub_consumption_duo_enterprise" => subscriptions.include?('sub_consumption_duo_enterprise'),
|
151
151
|
"sub_consumption_duo_premium" => subscriptions.include?('sub_consumption_duo_premium'),
|
152
|
+
"sub_consumption_duo_amazon_q" => subscriptions.include?('sub_consumption_duo_amazon_q'),
|
152
153
|
"sub_consumption_eap" => subscriptions.include?('sub_consumption_eap'),
|
153
154
|
"sub_consumption_storage" => subscriptions.include?('sub_consumption_storage'),
|
154
155
|
"sub_proserv" => subscriptions.include?('sub_proserv'),
|
@@ -205,6 +206,7 @@ module Readiness
|
|
205
206
|
"sub_consumption_cicd_minutes" => subscriptions.include?('sub_consumption_cicd_minutes'),
|
206
207
|
"sub_consumption_duo_enterprise" => subscriptions.include?('sub_consumption_duo_enterprise'),
|
207
208
|
"sub_consumption_duo_premium" => subscriptions.include?('sub_consumption_duo_premium'),
|
209
|
+
"sub_consumption_duo_amazon_q" => subscriptions.include?('sub_consumption_duo_amazon_q'),
|
208
210
|
"sub_consumption_eap" => subscriptions.include?('sub_consumption_eap'),
|
209
211
|
"sub_consumption_storage" => subscriptions.include?('sub_consumption_storage'),
|
210
212
|
"sub_proserv" => subscriptions.include?('sub_proserv'),
|
@@ -244,6 +246,7 @@ module Readiness
|
|
244
246
|
sub_types.push('sub_consumption_cicd_minutes') if SubscriptionDefinitions.consumption_cicd_minutes.include? sub.Name
|
245
247
|
sub_types.push('sub_consumption_duo_premium') if SubscriptionDefinitions.consumption_duo_premium.include? sub.Name
|
246
248
|
sub_types.push('sub_consumption_duo_enterprise') if SubscriptionDefinitions.consumption_duo_enterprise.include? sub.Name
|
249
|
+
sub_types.push('sub_consumption_duo_amazon_q') if SubscriptionDefinitions.consumption_duo_amazon_q.include? sub.Name
|
247
250
|
sub_types.push('sub_consumption_eap') if SubscriptionDefinitions.consumption_eap.include? sub.Name
|
248
251
|
sub_types.push('sub_consumption_storage') if SubscriptionDefinitions.consumption_storage.include? sub.Name
|
249
252
|
sub_types.push('sub_proserv') if SubscriptionDefinitions.proserv.include? sub.Name
|
@@ -78,6 +78,25 @@ module Readiness
|
|
78
78
|
]
|
79
79
|
end
|
80
80
|
|
81
|
+
##
|
82
|
+
# Defines Consumption => GitLab Duo with Amazon Q subscriptions
|
83
|
+
#
|
84
|
+
# @author Jason Colyer
|
85
|
+
# @since 1.0.40
|
86
|
+
# @return [Array]
|
87
|
+
def self.consumption_duo_amazon_q
|
88
|
+
[
|
89
|
+
'Dedicated - GitLab Duo with Amazon Q - 1 Year',
|
90
|
+
'Dedicated - GitLab Duo with Amazon Q - 2 Year',
|
91
|
+
'Dedicated - GitLab Duo with Amazon Q - 3 Year',
|
92
|
+
'Dedicated - GitLab Duo with Amazon Q - Monthly',
|
93
|
+
'Self-Managed - GitLab Duo with Amazon Q - 1 Year',
|
94
|
+
'Self-Managed - GitLab Duo with Amazon Q - 2 Year',
|
95
|
+
'Self-Managed - GitLab Duo with Amazon Q - 3 Year',
|
96
|
+
'Self-Managed - GitLab Duo with Amazon Q - Monthly'
|
97
|
+
]
|
98
|
+
end
|
99
|
+
|
81
100
|
##
|
82
101
|
# Defines Consumption => CI/CD Minutes subscriptions
|
83
102
|
#
|
@@ -0,0 +1,178 @@
|
|
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 DisableUSGov within the module {Readiness::Zendesk}.
|
9
|
+
#
|
10
|
+
# @author Jason Colyer
|
11
|
+
# @since 1.0.97
|
12
|
+
class DisableUSGov < Readiness::Client
|
13
|
+
##
|
14
|
+
# Process a Disable US Government request
|
15
|
+
#
|
16
|
+
# @author Jason Colyer
|
17
|
+
# @since 1.0.97
|
18
|
+
def self.process!(gitlab_client, gitlab_admin_client, zendesk_client, sfdc_client)
|
19
|
+
@gitlab_client = gitlab_client
|
20
|
+
@gitlab_admin_client = gitlab_admin_client
|
21
|
+
@zendesk_client = zendesk_client
|
22
|
+
@sfdc_client = sfdc_client
|
23
|
+
requester
|
24
|
+
zd_user
|
25
|
+
checks
|
26
|
+
unless errors.count.zero?
|
27
|
+
Readiness::SupportSuperFormProcessor::Shared.invalid_enable_usgov(requester, errors)
|
28
|
+
end
|
29
|
+
issue = Readiness::GitLab::Issues.new
|
30
|
+
issue.title = 'Remove US Government Support exception'
|
31
|
+
issue.description = message
|
32
|
+
create = Readiness::GitLab::Issues.create!(@gitlab_client, project, issue)
|
33
|
+
puts "Issue created: #{create.web_url}"
|
34
|
+
exit 0
|
35
|
+
end
|
36
|
+
|
37
|
+
##
|
38
|
+
# Peform validity checks for this request
|
39
|
+
#
|
40
|
+
# @author Jason Colyer
|
41
|
+
# @since 1.0.97
|
42
|
+
def self.checks
|
43
|
+
errors.push("Invalid SFDC account given: #{account_id}") if account.nil?
|
44
|
+
return unless errors.count.zero?
|
45
|
+
|
46
|
+
errors.push("SFDC account #{account_id} does not have an exception to remove") if account.Support_Instance__c != 'federal-support'
|
47
|
+
end
|
48
|
+
|
49
|
+
##
|
50
|
+
# Sets the global variable errors
|
51
|
+
#
|
52
|
+
# @author Jason Colyer
|
53
|
+
# @since 1.0.97
|
54
|
+
def self.errors
|
55
|
+
@errors ||= []
|
56
|
+
end
|
57
|
+
|
58
|
+
##
|
59
|
+
# Sets the global variable requester
|
60
|
+
#
|
61
|
+
# @author Jason Colyer
|
62
|
+
# @since 1.0.97
|
63
|
+
def self.requester
|
64
|
+
@requester ||= Readiness::SupportSuperFormProcessor::Shared.gitlab_user_check(@gitlab_admin_client, requester_email)
|
65
|
+
end
|
66
|
+
|
67
|
+
##
|
68
|
+
# Sets the global variable zd_user
|
69
|
+
#
|
70
|
+
# @author Jason Colyer
|
71
|
+
# @since 1.0.97
|
72
|
+
def self.zd_user
|
73
|
+
@zd_user ||= Readiness::SupportSuperFormProcessor::Shared.zendesk_user_check(@zendesk_client, requester_email)
|
74
|
+
end
|
75
|
+
|
76
|
+
##
|
77
|
+
# Sets the global variable requester_email
|
78
|
+
#
|
79
|
+
# @author Jason Colyer
|
80
|
+
# @since 1.0.97
|
81
|
+
def self.requester_email
|
82
|
+
@requester_email ||= ENV.fetch('REQUESTER_EMAIL')
|
83
|
+
end
|
84
|
+
|
85
|
+
##
|
86
|
+
# Sets the global variable account
|
87
|
+
#
|
88
|
+
# @author Jason Colyer
|
89
|
+
# @since 1.0.97
|
90
|
+
def self.account
|
91
|
+
@account ||= fetch_account
|
92
|
+
end
|
93
|
+
|
94
|
+
##
|
95
|
+
# Run a SQOL query to get account information
|
96
|
+
#
|
97
|
+
# @author Jason Colyer
|
98
|
+
# @since 1.0.97
|
99
|
+
def self.fetch_account
|
100
|
+
query = Readiness::Salesforce::Queries.new(account_query)
|
101
|
+
results = Readiness::Salesforce::Queries.run!(@sfdc_client, query)
|
102
|
+
results.first
|
103
|
+
end
|
104
|
+
|
105
|
+
##
|
106
|
+
# Sets the global variable account_id
|
107
|
+
#
|
108
|
+
# @author Jason Colyer
|
109
|
+
# @since 1.0.97
|
110
|
+
def self.account_id
|
111
|
+
@account_id ||= ENV.fetch('DISABLE_US_GOV_SUPPORT_SFDC_ACCOUNT')
|
112
|
+
end
|
113
|
+
|
114
|
+
##
|
115
|
+
# Returns a String to get account information
|
116
|
+
#
|
117
|
+
# @author Jason Colyer
|
118
|
+
# @since 1.0.97
|
119
|
+
def self.account_query
|
120
|
+
<<~STRING
|
121
|
+
SELECT
|
122
|
+
Account_ID_18__c,
|
123
|
+
Name,
|
124
|
+
Ultimate_Parent_Sales_Segment_Employees__c,
|
125
|
+
Account_Owner_Calc__c,
|
126
|
+
Technical_Account_Manager_Name__c,
|
127
|
+
GS_Health_Score_Color__c,
|
128
|
+
Restricted_Account__c,
|
129
|
+
Solutions_Architect_Lookup__r.Name,
|
130
|
+
Support_Hold__c,
|
131
|
+
Support_Instance__c,
|
132
|
+
(
|
133
|
+
SELECT
|
134
|
+
Id,
|
135
|
+
Name,
|
136
|
+
Zuora__ProductName__c,
|
137
|
+
Zuora__EffectiveEndDate__c,
|
138
|
+
Zuora__Quantity__c,
|
139
|
+
Zuora__TotalContractValue__c,
|
140
|
+
Subscription_Status__c
|
141
|
+
FROM Zuora__R00N40000001lGjTEAU__r
|
142
|
+
)
|
143
|
+
FROM Account
|
144
|
+
WHERE
|
145
|
+
Id = '#{account_id}'
|
146
|
+
STRING
|
147
|
+
end
|
148
|
+
|
149
|
+
##
|
150
|
+
# Return the string for the issue body
|
151
|
+
#
|
152
|
+
# @author Jason Colyer
|
153
|
+
# @since 1.0.97
|
154
|
+
def self.message
|
155
|
+
<<~STRING
|
156
|
+
## Remove US Government Support exception for #{account.Account_ID_18__c}
|
157
|
+
|
158
|
+
A request has been filed to remove the US Government Support exception for a SFDC account. The details are as follows:
|
159
|
+
|
160
|
+
- Requester: @#{requester.username}
|
161
|
+
- SFDC Account: [#{account.Account_ID_18__c}](https://gitlab.lightning.force.com/lightning/r/Account/#{account.Account_ID_18__c}/view)
|
162
|
+
|
163
|
+
#### Readiness TODO list
|
164
|
+
|
165
|
+
- [ ] Review above information for accuracy
|
166
|
+
- [ ] Confirm the corresponding organization does not currently have an ongoing tickets
|
167
|
+
- [ ] Follow the process detailed in [this handbook page](https://handbook.gitlab.com/handbook/support/readiness/operations/docs/policies/us_gov_support_exceptions)
|
168
|
+
|
169
|
+
/assign @#{requester.username} @jcolyer @secole @lyle
|
170
|
+
|
171
|
+
/label ~"Readiness::Triage" "Readiness::Current Quarter"
|
172
|
+
|
173
|
+
cc @leeeee-gtlb
|
174
|
+
STRING
|
175
|
+
end
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
@@ -27,8 +27,8 @@ module Readiness
|
|
27
27
|
Readiness::SupportSuperFormProcessor::Shared.invalid_enable_usgov(requester, errors)
|
28
28
|
end
|
29
29
|
issue = Readiness::GitLab::Issues.new
|
30
|
-
issue.title = '
|
31
|
-
issue.description = message
|
30
|
+
issue.title = 'Add US Government Support exception'
|
31
|
+
issue.description = message
|
32
32
|
create = Readiness::GitLab::Issues.create!(@gitlab_client, project, issue)
|
33
33
|
puts "Issue created: #{create.web_url}"
|
34
34
|
exit 0
|
@@ -44,7 +44,7 @@ module Readiness
|
|
44
44
|
errors.push("Invalid SFDC opportunity given: #{opportunity_id}") if opportunity.nil?
|
45
45
|
return unless errors.count.zero?
|
46
46
|
|
47
|
-
errors.push("SFDC account #{account_id}
|
47
|
+
errors.push("SFDC account #{account_id} already has the exception") if account.Support_Instance__c == 'federal-support'
|
48
48
|
errors.push("Missing US Government SKU on #{account_id}") unless correct_sku?
|
49
49
|
end
|
50
50
|
|
@@ -54,6 +54,8 @@ module Readiness
|
|
54
54
|
# @author Jason Colyer
|
55
55
|
# @since 1.0.42
|
56
56
|
def self.correct_sku?
|
57
|
+
return false if account.Zuora__R00N40000001lGjTEAU__r.nil?
|
58
|
+
|
57
59
|
account.Zuora__R00N40000001lGjTEAU__r.map { |r| r.Name }.each do |name|
|
58
60
|
return true if Readiness::Salesforce::SubscriptionDefinitions.usgov_12x5.include? name
|
59
61
|
return true if Readiness::Salesforce::SubscriptionDefinitions.usgov_24x7.include? name
|
@@ -172,6 +174,7 @@ module Readiness
|
|
172
174
|
Restricted_Account__c,
|
173
175
|
Solutions_Architect_Lookup__r.Name,
|
174
176
|
Support_Hold__c,
|
177
|
+
Support_Instance__c,
|
175
178
|
(
|
176
179
|
SELECT
|
177
180
|
Id,
|
@@ -211,9 +214,9 @@ module Readiness
|
|
211
214
|
# @since 1.0.42
|
212
215
|
def self.message
|
213
216
|
<<~STRING
|
214
|
-
##
|
217
|
+
## Add US Government Support exception for #{account.Account_ID_18__c}
|
215
218
|
|
216
|
-
A request has been filed to
|
219
|
+
A request has been filed to add the US Government Support exception for a SFDC account. The details are as follows:
|
217
220
|
|
218
221
|
- Requester: @#{requester.username}
|
219
222
|
- SFDC Account: [#{account.Account_ID_18__c}](https://gitlab.lightning.force.com/lightning/r/Account/#{account.Account_ID_18__c}/view)
|
@@ -224,11 +227,13 @@ module Readiness
|
|
224
227
|
#### Readiness TODO list
|
225
228
|
|
226
229
|
- [ ] Review above information
|
227
|
-
- [ ] Follow the process detailed in [this handbook page](https://handbook.gitlab.com/handbook/support/readiness/operations/docs/policies/
|
230
|
+
- [ ] Follow the process detailed in [this handbook page](https://handbook.gitlab.com/handbook/support/readiness/operations/docs/policies/us_gov_support_exceptions)
|
228
231
|
|
229
232
|
/assign @#{requester.username} @jcolyer @secole @lyle
|
230
233
|
|
231
|
-
|
234
|
+
/label ~"Readiness::Triage" "Readiness::Current Quarter"
|
235
|
+
|
236
|
+
cc @jscarborough @leeeee-gtlb
|
232
237
|
STRING
|
233
238
|
end
|
234
239
|
end
|
@@ -215,7 +215,7 @@ module Readiness
|
|
215
215
|
email.subject = 'Invalid Support Super Form submission'
|
216
216
|
email.text = invalid_enable_usgov_message(requester, errors)
|
217
217
|
Readiness::Mailgun::Emails.send!(mailgun_client, email)
|
218
|
-
puts "Invalid enable us gov submission by #{requester.email}"
|
218
|
+
puts "Invalid enable/disable us gov submission by #{requester.email}"
|
219
219
|
exit 0
|
220
220
|
end
|
221
221
|
|
@@ -485,7 +485,7 @@ module Readiness
|
|
485
485
|
<<~STRING
|
486
486
|
Greetings @#{requester.username} ,
|
487
487
|
|
488
|
-
Your recent request to enable US Goverment support was not able to be filed due to the following issues:
|
488
|
+
Your recent request to enable/disable US Goverment support was not able to be filed due to the following issues:
|
489
489
|
|
490
490
|
#{errors.map { |e| "- #{e}" }.join("\n")}
|
491
491
|
|
@@ -12,6 +12,7 @@ module Readiness
|
|
12
12
|
|
13
13
|
require "#{__dir__}/support_super_form_processor/create_article"
|
14
14
|
require "#{__dir__}/support_super_form_processor/create_macro"
|
15
|
+
require "#{__dir__}/support_super_form_processor/disable_us_government"
|
15
16
|
require "#{__dir__}/support_super_form_processor/edit_macro"
|
16
17
|
require "#{__dir__}/support_super_form_processor/enable_us_government"
|
17
18
|
require "#{__dir__}/support_super_form_processor/global_ir_dotcom_subscriptions_billing_entity_change"
|
@@ -359,6 +359,7 @@ module Readiness
|
|
359
359
|
addons.push('AI') if @organization.organization_fields['sub_consumption_ai']
|
360
360
|
addons.push('GitLab Duo Premium') if @organization.organization_fields['sub_consumption_duo_premium']
|
361
361
|
addons.push('GitLab Duo Enterprise') if @organization.organization_fields['sub_consumption_duo_enterprise']
|
362
|
+
addons.push('GitLab Duo with Amazon Q') if @organization.organization_fields['sub_consumption_duo_amazon_q']
|
362
363
|
addons.push('AI addon') if @organization.organization_fields['sub_consumption_ai']
|
363
364
|
addons.push('Success Advanced') if @organization.organization_fields['sub_ss_success_growth']
|
364
365
|
addons.push('Success Signature') if @organization.organization_fields['sub_ss_success_enterprise']
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab_support_readiness
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.97
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Colyer
|
@@ -319,6 +319,7 @@ files:
|
|
319
319
|
- lib/support_readiness/support_super_form_processor.rb
|
320
320
|
- lib/support_readiness/support_super_form_processor/create_article.rb
|
321
321
|
- lib/support_readiness/support_super_form_processor/create_macro.rb
|
322
|
+
- lib/support_readiness/support_super_form_processor/disable_us_government.rb
|
322
323
|
- lib/support_readiness/support_super_form_processor/edit_macro.rb
|
323
324
|
- lib/support_readiness/support_super_form_processor/enable_us_government.rb
|
324
325
|
- lib/support_readiness/support_super_form_processor/global_ir_dotcom_subscriptions_billing_entity_change.rb
|