gitlab-cloud-connector 0.1.0 → 0.2.1
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/.rubocop.yml +1 -3
- data/CONTRIBUTING.md +50 -0
- data/LICENSE +28 -0
- data/Makefile +33 -0
- data/README.md +11 -221
- data/Rakefile +1 -5
- data/config/add_ons/duo_enterprise.yml +2 -0
- data/config/add_ons/duo_pro.yml +2 -0
- data/config/backend_services/ai_gateway.yml +5 -0
- data/config/backend_services/duo_workflow_service.yml +5 -0
- data/config/backend_services/observability.yml +5 -0
- data/config/backend_services/security_gateway.yml +5 -0
- data/config/license_types/premium.yml +2 -0
- data/config/license_types/ultimate.yml +2 -0
- data/config/schemas/add_on_schema.json +15 -0
- data/config/schemas/backend_service_schema.json +26 -0
- data/config/schemas/license_type_schema.json +15 -0
- data/config/schemas/unit_primitive_schema.json +97 -0
- data/config/unit_primitives/ask_build.yml +15 -0
- data/config/unit_primitives/ask_commit.yml +15 -0
- data/config/unit_primitives/ask_epic.yml +15 -0
- data/config/unit_primitives/ask_issue.yml +15 -0
- data/config/unit_primitives/code_suggestions.yml +19 -0
- data/config/unit_primitives/complete_code.yml +19 -0
- data/config/unit_primitives/documentation_search.yml +19 -0
- data/config/unit_primitives/duo_chat.yml +19 -0
- data/config/unit_primitives/duo_workflow_execute_workflow.yml +13 -0
- data/config/unit_primitives/explain_code.yml +17 -0
- data/config/unit_primitives/explain_vulnerability.yml +17 -0
- data/config/unit_primitives/fix_code.yml +17 -0
- data/config/unit_primitives/generate_code.yml +19 -0
- data/config/unit_primitives/generate_commit_message.yml +17 -0
- data/config/unit_primitives/generate_issue_description.yml +15 -0
- data/config/unit_primitives/glab_ask_git_command.yml +17 -0
- data/config/unit_primitives/include_dependency_context.yml +15 -0
- data/config/unit_primitives/include_file_context.yml +17 -0
- data/config/unit_primitives/include_issue_context.yml +15 -0
- data/config/unit_primitives/include_merge_request_context.yml +15 -0
- data/config/unit_primitives/include_snippet_context.yml +17 -0
- data/config/unit_primitives/observability_all.yml +14 -0
- data/config/unit_primitives/refactor_code.yml +17 -0
- data/config/unit_primitives/resolve_vulnerability.yml +17 -0
- data/config/unit_primitives/security_scans.yml +13 -0
- data/config/unit_primitives/summarize_comments.yml +17 -0
- data/config/unit_primitives/summarize_review.yml +15 -0
- data/config/unit_primitives/troubleshoot_job.yml +17 -0
- data/config/unit_primitives/write_tests.yml +17 -0
- data/lib/cloud_connector.rb +10 -0
- data/lib/gitlab/cloud_connector/json_web_token.rb +59 -0
- data/lib/gitlab/cloud_connector/{backend_service.rb → version.rb} +1 -3
- metadata +85 -48
- data/.idea/.gitignore +0 -8
- data/.idea/gitlab-cloud-connector.iml +0 -127
- data/.idea/inspectionProfiles/Project_Default.xml +0 -9
- data/.idea/misc.xml +0 -4
- data/.idea/modules.xml +0 -8
- data/.idea/vcs.xml +0 -7
- data/CHANGELOG.md +0 -5
- data/Dangerfile +0 -5
- data/config/cloud_connector/backend_services/ai_gateway/unit_primitives/code_suggestions.yml +0 -19
- data/config/cloud_connector/backend_services/ai_gateway/unit_primitives/documentation_search.yml +0 -19
- data/config/cloud_connector/backend_services/ai_gateway/unit_primitives/duo_chat.yml +0 -19
- data/lib/gitlab/cloud_connector/auth/json_web_token.rb +0 -82
- data/lib/gitlab/cloud_connector/base_group.rb +0 -39
- data/lib/gitlab/cloud_connector/configuration.rb +0 -24
- data/lib/gitlab/cloud_connector/deliverable.rb +0 -31
- data/lib/gitlab/cloud_connector/delivered_by.rb +0 -10
- data/lib/gitlab/cloud_connector/purchasable_decorator.rb +0 -59
- data/lib/gitlab/cloud_connector/token_issuer.rb +0 -44
- data/lib/gitlab/cloud_connector/unit_primitives.rb +0 -195
- data/lib/gitlab/cloud_connector.rb +0 -68
- data/lib/gitlab/popen.rb +0 -68
- data/lib/utils/parse_helper.rb +0 -15
- data/lib/utils/strong_memoize.rb +0 -145
- data/sig/gitlab/cloud_connector.rbs +0 -0
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab-cloud-connector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nikola Milojevic
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,100 +16,137 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 7.0
|
19
|
+
version: '7.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 7.0
|
26
|
+
version: '7.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: jwt
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.9.3
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.9.3
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: gitlab-styles
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 12.0.1
|
34
48
|
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
54
|
+
version: 12.0.1
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
56
|
+
name: rake
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- - "
|
59
|
+
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
61
|
+
version: 13.0.6
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- - "
|
66
|
+
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
68
|
+
version: 13.0.6
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
70
|
+
name: rspec
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
75
|
+
version: '3.8'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
description:
|
70
|
-
|
82
|
+
version: '3.8'
|
83
|
+
description: This gem provides common CloudConnector configuration and libraries for
|
84
|
+
GitLab projects.
|
71
85
|
email:
|
72
86
|
- nmilojevic@gitlab.com
|
73
87
|
executables: []
|
74
88
|
extensions: []
|
75
89
|
extra_rdoc_files: []
|
76
90
|
files:
|
77
|
-
- ".idea/.gitignore"
|
78
|
-
- ".idea/gitlab-cloud-connector.iml"
|
79
|
-
- ".idea/inspectionProfiles/Project_Default.xml"
|
80
|
-
- ".idea/misc.xml"
|
81
|
-
- ".idea/modules.xml"
|
82
|
-
- ".idea/vcs.xml"
|
83
91
|
- ".rspec"
|
84
92
|
- ".rubocop.yml"
|
85
|
-
-
|
86
|
-
-
|
93
|
+
- CONTRIBUTING.md
|
94
|
+
- LICENSE
|
95
|
+
- Makefile
|
87
96
|
- README.md
|
88
97
|
- Rakefile
|
89
|
-
- config/
|
90
|
-
- config/
|
91
|
-
- config/
|
92
|
-
-
|
93
|
-
-
|
94
|
-
-
|
95
|
-
-
|
96
|
-
-
|
97
|
-
-
|
98
|
-
-
|
99
|
-
-
|
100
|
-
-
|
101
|
-
-
|
102
|
-
-
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
106
|
-
|
107
|
-
|
98
|
+
- config/add_ons/duo_enterprise.yml
|
99
|
+
- config/add_ons/duo_pro.yml
|
100
|
+
- config/backend_services/ai_gateway.yml
|
101
|
+
- config/backend_services/duo_workflow_service.yml
|
102
|
+
- config/backend_services/observability.yml
|
103
|
+
- config/backend_services/security_gateway.yml
|
104
|
+
- config/license_types/premium.yml
|
105
|
+
- config/license_types/ultimate.yml
|
106
|
+
- config/schemas/add_on_schema.json
|
107
|
+
- config/schemas/backend_service_schema.json
|
108
|
+
- config/schemas/license_type_schema.json
|
109
|
+
- config/schemas/unit_primitive_schema.json
|
110
|
+
- config/unit_primitives/ask_build.yml
|
111
|
+
- config/unit_primitives/ask_commit.yml
|
112
|
+
- config/unit_primitives/ask_epic.yml
|
113
|
+
- config/unit_primitives/ask_issue.yml
|
114
|
+
- config/unit_primitives/code_suggestions.yml
|
115
|
+
- config/unit_primitives/complete_code.yml
|
116
|
+
- config/unit_primitives/documentation_search.yml
|
117
|
+
- config/unit_primitives/duo_chat.yml
|
118
|
+
- config/unit_primitives/duo_workflow_execute_workflow.yml
|
119
|
+
- config/unit_primitives/explain_code.yml
|
120
|
+
- config/unit_primitives/explain_vulnerability.yml
|
121
|
+
- config/unit_primitives/fix_code.yml
|
122
|
+
- config/unit_primitives/generate_code.yml
|
123
|
+
- config/unit_primitives/generate_commit_message.yml
|
124
|
+
- config/unit_primitives/generate_issue_description.yml
|
125
|
+
- config/unit_primitives/glab_ask_git_command.yml
|
126
|
+
- config/unit_primitives/include_dependency_context.yml
|
127
|
+
- config/unit_primitives/include_file_context.yml
|
128
|
+
- config/unit_primitives/include_issue_context.yml
|
129
|
+
- config/unit_primitives/include_merge_request_context.yml
|
130
|
+
- config/unit_primitives/include_snippet_context.yml
|
131
|
+
- config/unit_primitives/observability_all.yml
|
132
|
+
- config/unit_primitives/refactor_code.yml
|
133
|
+
- config/unit_primitives/resolve_vulnerability.yml
|
134
|
+
- config/unit_primitives/security_scans.yml
|
135
|
+
- config/unit_primitives/summarize_comments.yml
|
136
|
+
- config/unit_primitives/summarize_review.yml
|
137
|
+
- config/unit_primitives/troubleshoot_job.yml
|
138
|
+
- config/unit_primitives/write_tests.yml
|
139
|
+
- lib/cloud_connector.rb
|
140
|
+
- lib/gitlab/cloud_connector/json_web_token.rb
|
141
|
+
- lib/gitlab/cloud_connector/version.rb
|
142
|
+
homepage: https://gitlab.com/gitlab-org/cloud-connector/gitlab-cloud-connector
|
143
|
+
licenses:
|
144
|
+
- MIT
|
108
145
|
metadata:
|
109
146
|
allowed_push_host: https://rubygems.org
|
110
|
-
homepage_uri: https://gitlab.com
|
111
|
-
source_code_uri: https://gitlab.com/gitlab-org/
|
112
|
-
changelog_uri: https://gitlab.com/gitlab-org/
|
147
|
+
homepage_uri: https://gitlab.com/gitlab-org/cloud-connector/gitlab-cloud-connector
|
148
|
+
source_code_uri: https://gitlab.com/gitlab-org/cloud-connector/gitlab-cloud-connector
|
149
|
+
changelog_uri: https://gitlab.com/gitlab-org/cloud-connector/gitlab-cloud-connector/-/releases
|
113
150
|
post_install_message:
|
114
151
|
rdoc_options: []
|
115
152
|
require_paths:
|
@@ -128,5 +165,5 @@ requirements: []
|
|
128
165
|
rubygems_version: 3.4.19
|
129
166
|
signing_key:
|
130
167
|
specification_version: 4
|
131
|
-
summary: GitLab cloud connector project
|
168
|
+
summary: GitLab cloud connector project.
|
132
169
|
test_files: []
|
data/.idea/.gitignore
DELETED
@@ -1,127 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<module type="RUBY_MODULE" version="4">
|
3
|
-
<component name="FacetManager">
|
4
|
-
<facet type="RailsFacetType" name="Ruby on Rails">
|
5
|
-
<configuration>
|
6
|
-
<RAILS_FACET_CONFIG_ID NAME="RAILS_FACET_SUPPORT_REMOVED" VALUE="false" />
|
7
|
-
<RAILS_FACET_CONFIG_ID NAME="RAILS_TESTS_SOURCES_PATCHED" VALUE="true" />
|
8
|
-
<RAILS_FACET_CONFIG_ID NAME="RAILS_FACET_APPLICATION_ROOT" VALUE="$MODULE_DIR$" />
|
9
|
-
</configuration>
|
10
|
-
</facet>
|
11
|
-
</component>
|
12
|
-
<component name="ModuleRunConfigurationManager">
|
13
|
-
<shared />
|
14
|
-
</component>
|
15
|
-
<component name="NewModuleRootManager">
|
16
|
-
<content url="file://$MODULE_DIR$">
|
17
|
-
<sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
|
18
|
-
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
19
|
-
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
20
|
-
<excludeFolder url="file://$MODULE_DIR$/.bundle" />
|
21
|
-
<excludeFolder url="file://$MODULE_DIR$/public/packs" />
|
22
|
-
<excludeFolder url="file://$MODULE_DIR$/vendor/bundle" />
|
23
|
-
<excludeFolder url="file://$MODULE_DIR$/vendor/cache" />
|
24
|
-
<excludeFolder url="file://$MODULE_DIR$/log" />
|
25
|
-
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
26
|
-
<excludeFolder url="file://$MODULE_DIR$/public/system" />
|
27
|
-
<excludeFolder url="file://$MODULE_DIR$/components" />
|
28
|
-
</content>
|
29
|
-
<orderEntry type="inheritedJdk" />
|
30
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
31
|
-
<orderEntry type="library" scope="PROVIDED" name="ast (v2.4.2, asdf: 3.2.1) [gem]" level="application" />
|
32
|
-
<orderEntry type="library" scope="PROVIDED" name="crass (v1.0.6, asdf: 3.2.1) [gem]" level="application" />
|
33
|
-
<orderEntry type="library" scope="PROVIDED" name="mail (v2.8.1, asdf: 3.2.1) [gem]" level="application" />
|
34
|
-
<orderEntry type="library" scope="PROVIDED" name="net-pop (v0.1.2, asdf: 3.2.1) [gem]" level="application" />
|
35
|
-
<orderEntry type="library" scope="PROVIDED" name="rack-test (v2.1.0, asdf: 3.2.1) [gem]" level="application" />
|
36
|
-
<orderEntry type="library" scope="PROVIDED" name="rails-html-sanitizer (v1.6.0, asdf: 3.2.1) [gem]" level="application" />
|
37
|
-
<orderEntry type="library" scope="PROVIDED" name="rainbow (v3.1.1, asdf: 3.2.1) [gem]" level="application" />
|
38
|
-
<orderEntry type="library" scope="PROVIDED" name="rubocop-rails (v2.18.0, asdf: 3.2.1) [gem]" level="application" />
|
39
|
-
<orderEntry type="library" scope="PROVIDED" name="tzinfo (v2.0.6, asdf: 3.2.1) [gem]" level="application" />
|
40
|
-
<orderEntry type="library" scope="PROVIDED" name="websocket-extensions (v0.1.5, asdf: 3.2.1) [gem]" level="application" />
|
41
|
-
</component>
|
42
|
-
<component name="RModuleSettingsStorage">
|
43
|
-
<LOAD_PATH number="0" />
|
44
|
-
<I18N_FOLDERS number="1" string0="$MODULE_DIR$/config/locales" />
|
45
|
-
</component>
|
46
|
-
<component name="RailsGeneratorsCache">
|
47
|
-
<option name="generators">
|
48
|
-
<list>
|
49
|
-
<option value="active_record:migration" />
|
50
|
-
<option value="active_record:model" />
|
51
|
-
<option value="active_record:observer" />
|
52
|
-
<option value="active_record:session_migration" />
|
53
|
-
<option value="controller" />
|
54
|
-
<option value="erb:controller" />
|
55
|
-
<option value="erb:mailer" />
|
56
|
-
<option value="erb:scaffold" />
|
57
|
-
<option value="generator" />
|
58
|
-
<option value="helper" />
|
59
|
-
<option value="integration_test" />
|
60
|
-
<option value="mailer" />
|
61
|
-
<option value="metal" />
|
62
|
-
<option value="migration" />
|
63
|
-
<option value="model" />
|
64
|
-
<option value="model_subclass" />
|
65
|
-
<option value="observer" />
|
66
|
-
<option value="performance_test" />
|
67
|
-
<option value="plugin" />
|
68
|
-
<option value="resource" />
|
69
|
-
<option value="scaffold" />
|
70
|
-
<option value="scaffold_controller" />
|
71
|
-
<option value="session_migration" />
|
72
|
-
<option value="stylesheets" />
|
73
|
-
<option value="test_unit:controller" />
|
74
|
-
<option value="test_unit:helper" />
|
75
|
-
<option value="test_unit:integration" />
|
76
|
-
<option value="test_unit:mailer" />
|
77
|
-
<option value="test_unit:model" />
|
78
|
-
<option value="test_unit:observer" />
|
79
|
-
<option value="test_unit:performance" />
|
80
|
-
<option value="test_unit:plugin" />
|
81
|
-
<option value="test_unit:scaffold" />
|
82
|
-
</list>
|
83
|
-
</option>
|
84
|
-
<option name="myGenerators">
|
85
|
-
<list>
|
86
|
-
<option value="active_record:migration" />
|
87
|
-
<option value="active_record:model" />
|
88
|
-
<option value="active_record:observer" />
|
89
|
-
<option value="active_record:session_migration" />
|
90
|
-
<option value="controller" />
|
91
|
-
<option value="erb:controller" />
|
92
|
-
<option value="erb:mailer" />
|
93
|
-
<option value="erb:scaffold" />
|
94
|
-
<option value="generator" />
|
95
|
-
<option value="helper" />
|
96
|
-
<option value="integration_test" />
|
97
|
-
<option value="mailer" />
|
98
|
-
<option value="metal" />
|
99
|
-
<option value="migration" />
|
100
|
-
<option value="model" />
|
101
|
-
<option value="model_subclass" />
|
102
|
-
<option value="observer" />
|
103
|
-
<option value="performance_test" />
|
104
|
-
<option value="plugin" />
|
105
|
-
<option value="resource" />
|
106
|
-
<option value="scaffold" />
|
107
|
-
<option value="scaffold_controller" />
|
108
|
-
<option value="session_migration" />
|
109
|
-
<option value="stylesheets" />
|
110
|
-
<option value="test_unit:controller" />
|
111
|
-
<option value="test_unit:helper" />
|
112
|
-
<option value="test_unit:integration" />
|
113
|
-
<option value="test_unit:mailer" />
|
114
|
-
<option value="test_unit:model" />
|
115
|
-
<option value="test_unit:observer" />
|
116
|
-
<option value="test_unit:performance" />
|
117
|
-
<option value="test_unit:plugin" />
|
118
|
-
<option value="test_unit:scaffold" />
|
119
|
-
</list>
|
120
|
-
</option>
|
121
|
-
</component>
|
122
|
-
<component name="RakeTasksCache">
|
123
|
-
<option name="myRootTask">
|
124
|
-
<RakeTaskImpl id="rake" />
|
125
|
-
</option>
|
126
|
-
</component>
|
127
|
-
</module>
|
@@ -1,9 +0,0 @@
|
|
1
|
-
<component name="InspectionProjectProfileManager">
|
2
|
-
<profile version="1.0">
|
3
|
-
<option name="myName" value="Project Default" />
|
4
|
-
<inspection_tool class="Rubocop" enabled="true" level="WARNING" enabled_by_default="true">
|
5
|
-
<option name="myUseStandardGemIfPossible" value="true" />
|
6
|
-
<option name="myRunRubocopOnSave" value="true" />
|
7
|
-
</inspection_tool>
|
8
|
-
</profile>
|
9
|
-
</component>
|
data/.idea/misc.xml
DELETED
data/.idea/modules.xml
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<project version="4">
|
3
|
-
<component name="ProjectModuleManager">
|
4
|
-
<modules>
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/.idea/gitlab-cloud-connector.iml" filepath="$PROJECT_DIR$/.idea/gitlab-cloud-connector.iml" />
|
6
|
-
</modules>
|
7
|
-
</component>
|
8
|
-
</project>
|
data/.idea/vcs.xml
DELETED
data/CHANGELOG.md
DELETED
data/Dangerfile
DELETED
data/config/cloud_connector/backend_services/ai_gateway/unit_primitives/code_suggestions.yml
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: code_suggestions
|
3
|
-
description:
|
4
|
-
backend: 'gitlab-ai-gateway'
|
5
|
-
cut_off_date: 2024-02-15 00:00:00 UTC
|
6
|
-
min_gitlab_version_for_free_access:
|
7
|
-
min_gitlab_version: '16.8'
|
8
|
-
min_backend_version:
|
9
|
-
delivered_by:
|
10
|
-
- code_suggestions
|
11
|
-
bundled_with:
|
12
|
-
- duo_pro
|
13
|
-
- duo_enterprise
|
14
|
-
introduced_by_url:
|
15
|
-
group: group::code suggestions
|
16
|
-
feature_category: code_suggestions
|
17
|
-
gitlab_realms:
|
18
|
-
- saas
|
19
|
-
- self-managed
|
data/config/cloud_connector/backend_services/ai_gateway/unit_primitives/documentation_search.yml
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: documentation_search
|
3
|
-
description:
|
4
|
-
backend: 'gitlab-ai-gateway'
|
5
|
-
cut_off_date:
|
6
|
-
min_gitlab_version_for_free_access: '16.8'
|
7
|
-
min_gitlab_version: '16.9'
|
8
|
-
min_backend_version:
|
9
|
-
delivered_by:
|
10
|
-
- duo_chat
|
11
|
-
bundled_with:
|
12
|
-
- duo_pro
|
13
|
-
- duo_enterprise
|
14
|
-
introduced_by_url:
|
15
|
-
group: group::duo_chat
|
16
|
-
feature_category: duo_chat
|
17
|
-
gitlab_realms:
|
18
|
-
- saas
|
19
|
-
- self-managed
|
@@ -1,19 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: duo_chat
|
3
|
-
description:
|
4
|
-
backend: 'gitlab-ai-gateway'
|
5
|
-
cut_off_date:
|
6
|
-
min_gitlab_version_for_free_access: '16.8'
|
7
|
-
min_gitlab_version: '16.9'
|
8
|
-
min_backend_version:
|
9
|
-
delivered_by:
|
10
|
-
- duo_chat
|
11
|
-
bundled_with:
|
12
|
-
- duo_pro
|
13
|
-
- duo_enterprise
|
14
|
-
introduced_by_url:
|
15
|
-
group: group::duo_chat
|
16
|
-
feature_category: duo_chat
|
17
|
-
gitlab_realms:
|
18
|
-
- saas
|
19
|
-
- self-managed
|
@@ -1,82 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "active_support"
|
4
|
-
require "active_support/all"
|
5
|
-
|
6
|
-
module Gitlab
|
7
|
-
module CloudConnector
|
8
|
-
module Auth
|
9
|
-
class JsonWebToken
|
10
|
-
NOT_BEFORE_TIME = 5.seconds.to_i.freeze
|
11
|
-
DEFAULT_EXPIRES_IN = 3.days.to_i.freeze
|
12
|
-
NoSigningKeyError = Class.new(StandardError)
|
13
|
-
|
14
|
-
attr_reader :expires_at, :scopes
|
15
|
-
|
16
|
-
def initialize(audience:, subject:, scopes:, expires_at: nil, extra_claims: nil, gitlab_realm: nil)
|
17
|
-
@id = SecureRandom.uuid
|
18
|
-
@audience = audience
|
19
|
-
@subject = subject
|
20
|
-
@scopes = Array.wrap(scopes)
|
21
|
-
@issuer = issuer
|
22
|
-
@issued_at = Time.current.to_i
|
23
|
-
@not_before = @issued_at - NOT_BEFORE_TIME
|
24
|
-
@expires_at = expires_at || (@issued_at + expires_in)
|
25
|
-
@extra_claims = extra_claims
|
26
|
-
@gitlab_realm = gitlab_realm || ::Gitlab::CloudConnector.gitlab_realm
|
27
|
-
end
|
28
|
-
|
29
|
-
def encode
|
30
|
-
headers = { typ: 'JWT' }
|
31
|
-
|
32
|
-
JWT.encode(payload, key, 'RS256', headers)
|
33
|
-
end
|
34
|
-
|
35
|
-
def payload
|
36
|
-
reserved_claims = {
|
37
|
-
jti: @id,
|
38
|
-
aud: @audience,
|
39
|
-
sub: @subject,
|
40
|
-
iss: @issuer,
|
41
|
-
iat: @issued_at,
|
42
|
-
nbf: @not_before,
|
43
|
-
exp: @expires_at
|
44
|
-
}
|
45
|
-
|
46
|
-
custom_claims = {
|
47
|
-
gitlab_realm: @gitlab_realm,
|
48
|
-
scopes: @scopes,
|
49
|
-
extra_claims: @extra_claims
|
50
|
-
}
|
51
|
-
|
52
|
-
reserved_claims.merge(custom_claims)
|
53
|
-
end
|
54
|
-
|
55
|
-
private
|
56
|
-
|
57
|
-
def expires_in
|
58
|
-
::Gitlab::CloudConnector.token_expires_in || DEFAULT_EXPIRES_IN
|
59
|
-
end
|
60
|
-
|
61
|
-
def issuer
|
62
|
-
issuer = Gitlab::CloudConnector.token_issuer
|
63
|
-
|
64
|
-
if issuer.is_a?(Proc)
|
65
|
-
p "lambda?"
|
66
|
-
issuer.call
|
67
|
-
else
|
68
|
-
issuer
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def key
|
73
|
-
key_data = Settings.value(:jwt_signing_key)
|
74
|
-
|
75
|
-
raise NoSigningKeyError unless key_data
|
76
|
-
|
77
|
-
OpenSSL::PKey::RSA.new(key_data)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'token_issuer'
|
4
|
-
|
5
|
-
module Gitlab
|
6
|
-
module CloudConnector
|
7
|
-
class BaseGroup
|
8
|
-
include TokenIssuer
|
9
|
-
|
10
|
-
attr_reader :name, :unit_primitives
|
11
|
-
|
12
|
-
def initialize(name, unit_primitives)
|
13
|
-
@name = name
|
14
|
-
@unit_primitives = unit_primitives
|
15
|
-
end
|
16
|
-
|
17
|
-
def cut_off_date
|
18
|
-
unit_primitives.values.map(&:cut_off_date).compact.max
|
19
|
-
end
|
20
|
-
|
21
|
-
def bundled_with
|
22
|
-
unit_primitives.values.flat_map(&:bundled_with).uniq
|
23
|
-
end
|
24
|
-
alias :add_ons :bundled_with
|
25
|
-
|
26
|
-
def feature_categories
|
27
|
-
unit_primitives.values.map(&:feature_category).uniq
|
28
|
-
end
|
29
|
-
|
30
|
-
def min_gitlab_version
|
31
|
-
unit_primitives.values.flat_map(&:min_gitlab_version).compact.min
|
32
|
-
end
|
33
|
-
|
34
|
-
def min_gitlab_version_for_free_access
|
35
|
-
unit_primitives.values.flat_map(&:min_gitlab_version_for_free_access).compact.min
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'unit_primitives'
|
4
|
-
require_relative 'purchasable_decorator'
|
5
|
-
|
6
|
-
module Gitlab
|
7
|
-
module CloudConnector
|
8
|
-
class Configuration
|
9
|
-
attr_reader :purchasable_decorator_class
|
10
|
-
attr_accessor :token_issuer, :token_subject, :gitlab_version, :token_expires_in, :gitlab_realm
|
11
|
-
|
12
|
-
def purchasable_decorator_class=(purchasable_decorator_class)
|
13
|
-
raise ArgumentError, 'Must be a class inheriting from Gitlab::CloudConnector::PurchasableDecorator' unless
|
14
|
-
purchasable_decorator_class < Gitlab::CloudConnector::PurchasableDecorator
|
15
|
-
|
16
|
-
@purchasable_decorator_class = purchasable_decorator_class
|
17
|
-
end
|
18
|
-
|
19
|
-
def purchasable_decorator_class
|
20
|
-
@purchasable_decorator_class ||= Gitlab::CloudConnector::PurchasableDecorator
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Gitlab
|
4
|
-
module CloudConnector
|
5
|
-
module Deliverable
|
6
|
-
def delivered_by
|
7
|
-
# TODO add memoization
|
8
|
-
result = Hash.new{ |h, k| h[k] = [] }
|
9
|
-
|
10
|
-
unit_primitives.values.each do |unit_primitive|
|
11
|
-
unit_primitive.delivered_by.each do |delivered_by|
|
12
|
-
result[delivered_by.to_sym] << unit_primitive
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
result.each do |delivered_by, unit_primitives|
|
17
|
-
result[delivered_by] = build_delivered_by(delivered_by, unit_primitives.index_by(&:key))
|
18
|
-
end
|
19
|
-
|
20
|
-
result
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def build_delivered_by(name, unit_primitives)
|
26
|
-
delivered_by = Gitlab::CloudConnector::DeliveredBy.new(name, unit_primitives)
|
27
|
-
Gitlab::CloudConnector.configuration.purchasable_decorator_class.new(delivered_by)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|