gitlab-cloud-connector 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -3
  3. data/CHANGELOG.md +1 -1
  4. data/CONTRIBUTING.md +41 -0
  5. data/LICENSE +28 -0
  6. data/Makefile +33 -0
  7. data/README.md +16 -218
  8. data/Rakefile +1 -5
  9. data/config/config/add_ons/duo_enterprise.yml +2 -0
  10. data/config/config/add_ons/duo_pro.yml +2 -0
  11. data/config/config/backend_services/ai_gateway.yml +5 -0
  12. data/config/config/backend_services/duo_workflow_service.yml +5 -0
  13. data/config/config/license_types/premium.yml +2 -0
  14. data/config/config/license_types/ultimate.yml +2 -0
  15. data/config/config/unit_primitives/code_suggestions.yml +19 -0
  16. data/config/{cloud_connector/backend_services/ai_gateway → config}/unit_primitives/documentation_search.yml +11 -11
  17. data/config/{cloud_connector/backend_services/ai_gateway → config}/unit_primitives/duo_chat.yml +11 -11
  18. data/config/config/unit_primitives/explain_vulnerability.yml +19 -0
  19. data/config/config/unit_primitives/generate_commit_message.yml +19 -0
  20. data/config/config/unit_primitives/glab_ask_git_command.yml +19 -0
  21. data/config/config/unit_primitives/resolve_vulnerability.yml +19 -0
  22. data/config/config/unit_primitives/summarize_comments.yml +19 -0
  23. data/config/config/unit_primitives/troubleshoot_job.yml +19 -0
  24. data/lib/gitlab/cloud_connector/{backend_service.rb → version.rb} +1 -3
  25. metadata +40 -58
  26. data/.idea/.gitignore +0 -8
  27. data/.idea/gitlab-cloud-connector.iml +0 -127
  28. data/.idea/inspectionProfiles/Project_Default.xml +0 -9
  29. data/.idea/misc.xml +0 -4
  30. data/.idea/modules.xml +0 -8
  31. data/.idea/vcs.xml +0 -7
  32. data/Dangerfile +0 -5
  33. data/config/cloud_connector/backend_services/ai_gateway/unit_primitives/code_suggestions.yml +0 -19
  34. data/lib/gitlab/cloud_connector/auth/json_web_token.rb +0 -82
  35. data/lib/gitlab/cloud_connector/base_group.rb +0 -39
  36. data/lib/gitlab/cloud_connector/configuration.rb +0 -24
  37. data/lib/gitlab/cloud_connector/deliverable.rb +0 -31
  38. data/lib/gitlab/cloud_connector/delivered_by.rb +0 -10
  39. data/lib/gitlab/cloud_connector/purchasable_decorator.rb +0 -59
  40. data/lib/gitlab/cloud_connector/token_issuer.rb +0 -44
  41. data/lib/gitlab/cloud_connector/unit_primitives.rb +0 -195
  42. data/lib/gitlab/cloud_connector.rb +0 -68
  43. data/lib/gitlab/popen.rb +0 -68
  44. data/lib/utils/parse_helper.rb +0 -15
  45. data/lib/utils/strong_memoize.rb +0 -145
  46. data/sig/gitlab/cloud_connector.rbs +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c5bb789b8f217dd5b85dea32aa05101ece88b73ec439d68a5ef42b5bc362c5f
4
- data.tar.gz: 6121096669714066e395e6e7e820f55a81f2787cfabb21d895c110a4ddc5aa9d
3
+ metadata.gz: ef484dd6688a77fb53285cb64da089ff4741c2dd45915cc5b3c1c93a99403612
4
+ data.tar.gz: c53d6956e07d9840c73d311059925663cb6fb726bbf69a37248a37f5ea845a2b
5
5
  SHA512:
6
- metadata.gz: 1a26a433e6339d320825260377887ce161803403f7dee582abef232ac86ce164145672c91b539a944731f7152e168afa15ba5c8f39f189ae954f0bca937e2ef3
7
- data.tar.gz: 9406ef59e2f255065f2f84160e316e7e34f715bada69dd943e40af35eaea0eae642481499135bd52e62213636798800689dc0d8d00214a5da008327e2d853174
6
+ metadata.gz: bb3b18c295b9f03d4ba08e955104b0e24274e95738387298304aeff89c237deedee58f52d495a4e1c2c508f3bdac94ac267604f35d62e4bab8ca86092e5e4b95
7
+ data.tar.gz: 56a742ad75a4093c244110f9d0029a46de8556e8e46e8a80b330bc5869a2647d5ca1d7fa37c951bc07ae16161c0a0a9bfe1f626be2402d9c95c9ebe13f35c3fd
data/.rubocop.yml CHANGED
@@ -1,3 +1 @@
1
- inherit_gem:
2
- gitlab-styles:
3
- - rubocop-default.yml
1
+ inherit_from: ../../.rubocop.yml
data/CHANGELOG.md CHANGED
@@ -1,5 +1,5 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.1.0] - 2024-06-11
3
+ ## [0.1.0] - 2024-07-117
4
4
 
5
5
  - Initial release
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,41 @@
1
+ ## Developer Certificate of Origin and License
2
+
3
+ By contributing to GitLab B.V., you accept and agree to the following terms and
4
+ conditions for your present and future contributions submitted to GitLab B.V.
5
+ Except for the license granted herein to GitLab B.V. and recipients of software
6
+ distributed by GitLab B.V., you reserve all right, title, and interest in and to
7
+ your Contributions.
8
+
9
+ All contributions are subject to the
10
+ [Developer Certificate of Origin and License](https://docs.gitlab.com/ee/legal/developer_certificate_of_origin).
11
+
12
+ _This notice should stay as the first item in the CONTRIBUTING.md file._
13
+
14
+ ## Code of conduct
15
+
16
+ As contributors and maintainers of this project, we pledge to respect all people
17
+ who contribute through reporting issues, posting feature requests, updating
18
+ documentation, submitting pull requests or patches, and other activities.
19
+
20
+ We are committed to making participation in this project a harassment-free
21
+ experience for everyone, regardless of level of experience, gender, gender
22
+ identity and expression, sexual orientation, disability, personal appearance,
23
+ body size, race, ethnicity, age, or religion.
24
+
25
+ Examples of unacceptable behavior by participants include the use of sexual
26
+ language or imagery, derogatory comments or personal attacks, trolling, public
27
+ or private harassment, insults, or other unprofessional conduct.
28
+
29
+ Project maintainers have the right and responsibility to remove, edit, or reject
30
+ comments, commits, code, wiki edits, issues, and other contributions that are
31
+ not aligned to this Code of Conduct. Project maintainers who do not follow the
32
+ Code of Conduct may be removed from the project team.
33
+
34
+ This code of conduct applies both within project spaces and in public spaces
35
+ when an individual is representing the project or its community.
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior can be
38
+ reported by emailing contact@gitlab.com.
39
+
40
+ This Code of Conduct is adapted from the [Contributor Covenant](https://contributor-covenant.org), version 1.1.0,
41
+ available at [https://contributor-covenant.org/version/1/1/0/](https://contributor-covenant.org/version/1/1/0/).
data/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ Copyright (c) 2011-present GitLab B.V.
2
+
3
+ Portions of this software are licensed as follows:
4
+
5
+ * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license".
6
+ * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE".
7
+ * All content that resides under the "jh/" directory of this repository, if that directory exists, is licensed under the license defined in "jh/LICENSE".
8
+ * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license.
9
+ * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component.
10
+ * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below.
11
+
12
+ Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ of this software and associated documentation files (the "Software"), to deal
14
+ in the Software without restriction, including without limitation the rights
15
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
+ copies of the Software, and to permit persons to whom the Software is
17
+ furnished to do so, subject to the following conditions:
18
+
19
+ The above copyright notice and this permission notice shall be included in all
20
+ copies or substantial portions of the Software.
21
+
22
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
+ SOFTWARE.
data/Makefile ADDED
@@ -0,0 +1,33 @@
1
+ # Makefile at the project root
2
+
3
+ # Directories
4
+ RUBY_DIR := $(shell pwd)
5
+ ROOT_DIR := ${RUBY_DIR}/../..
6
+
7
+ # Assets
8
+ ASSETS := config LICENSE CONTRIBUTING.md
9
+
10
+ .PHONY: build
11
+ build: copy-assets
12
+ @echo "Building Ruby gem..."
13
+ @gem build gitlab-cloud-connector.gemspec
14
+ @echo "Ruby gem built successfully."
15
+ @make clean
16
+
17
+ .PHONY: copy-assets
18
+ copy-assets:
19
+ @echo "Copying assets to Ruby gem directory..."
20
+ # Ensure the target config directory is removed
21
+ @if [ -d "${RUBY_DIR}/config" ]; then rm -rf ${RUBY_DIR}/config; fi
22
+ # Copy required assets
23
+ @mkdir -p ${RUBY_DIR}/config
24
+ @cp -r ${ROOT_DIR}/config ${RUBY_DIR}/config
25
+ @cp ${ROOT_DIR}/LICENSE ${RUBY_DIR}/
26
+ @cp ${ROOT_DIR}/CONTRIBUTING.md ${RUBY_DIR}/
27
+
28
+ .PHONY: clean
29
+ clean:
30
+ @echo "Cleaning up Ruby gem directory..."
31
+ @rm -rf ${RUBY_DIR}/config
32
+ @rm -f ${RUBY_DIR}/LICENSE
33
+ @rm -f ${RUBY_DIR}/CONTRIBUTING.md
data/README.md CHANGED
@@ -1,231 +1,29 @@
1
- # Gitlab::Cloud::Connector
1
+ # Gitlab::CloudConnector
2
2
 
3
- TODO: Delete this and the text below, and describe your gem
4
-
5
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/gitlab/cloud/connector`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ Gitlab Cloud Connector is shared library that contains Unit Primitives configuration and Cloud Connector libraries that are shared for GitLab projects.
6
4
 
7
5
  ## Installation
8
6
 
9
- TODO: Replace `UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG` with your gem name right after releasing it to RubyGems.org. Please do not do it earlier due to security reasons. Alternatively, replace this section with instructions to install your gem from git if you don't plan to release to RubyGems.org.
10
-
11
7
  Install the gem and add to the application's Gemfile by executing:
12
8
 
13
- $ bundle add UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG
9
+ $ bundle add gitlab-cloud-connector
14
10
 
15
11
  If bundler is not being used to manage dependencies, install the gem by executing:
16
12
 
17
- $ gem install UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG
18
-
19
- ## Usage
20
-
21
- You need to configure the Gitlab Cloud Connector gem first.
22
- Create a class that inherits `Gitlab::CloudConnector::PurchasableDecorator` class and overrides the `available_for?` method.
23
-
24
- Example:
25
-
26
- ```ruby
27
- require 'gitlab/cloud_connector/unit_primitives'
28
-
29
-
30
- class CustomPurchasableDecorator < Gitlab::CloudConnector::PurchasableDecorator
31
- extend ::Gitlab::Utils::Override
32
-
33
- override :available_for?
34
- def available_for?(namespace)
35
- add_on_purchases(namespace).any?
36
- end
37
-
38
- private
39
-
40
- def add_on_purchases(namespace = nil)
41
- results = GitlabSubscriptions::AddOnPurchase
42
- .by_add_on_name(add_ons)
43
- .active
44
- results = results.by_namespace_id(namespace.self_and_ancestor_ids) if namespace
45
-
46
- results
47
- end
48
- end
49
- ```
50
-
51
- Create `config/initializers/cloud_connector.rb` initializer
52
-
53
- ```ruby
54
- # config/initializers/cloud_connector.rb
55
-
56
- require 'gitlab/cloud_connector'
57
- require 'custom_purchasable_decorator'
58
-
59
- Gitlab::CloudConnector.configure do |config|
60
- config.purchasable_decorator_class = CustomPurchasableDecorator
61
- config.token_issuer = -> { Doorkeeper::OpenidConnect.configuration.issuer }
62
- config.token_subject = Gitlab::CurrentSettings.uuid
63
- config.gitlab_version = Gitlab::VERSION
64
- config.gitlab_realm = 'self-managed'
65
- end
66
- ```
67
-
68
- The CloudConnector unit primitives are grouped by `backend_services` and by the way how they are delivered: `delivered_by` (trough common interface i.e Duo Chat).
69
-
70
- ```ruby
71
- Gitlab::CloudConnector.unit_primitives
72
- ```
73
-
74
- To access specific unit primitive:
75
-
76
- ```ruby
77
- code_suggestions = Gitlab::CloudConnector.unit_primitives[:code_suggestions]
78
- code_suggestions.min_gitlab_version
79
- code_suggestions.cut_off_date
80
- code_suggestions.add_ons
81
- code_suggestions.feature_categories
82
- code_suggestions.free_access?
83
- code_suggestions.supported_gitlab_version?('16.8')
84
- ```
85
-
86
- You can group unit primitives by backend service that is hosting the unit primitive.
87
-
88
- ```ruby
89
- ai_gateway = Gitlab::CloudConnector.backend_services[:ai_gateway]
90
- ai_gateway.min_gitlab_version # returns the smallest required gitlab version from all grouped unit primitives
91
- ai_gateway.cut_off_date # returns the latest cut-off-date from all grouped unit primitives
92
- ai_gateway.add_ons # returns uniq union of all add-on names bundled with grouped unit primitives
93
- ai_gateway.feature_categories # returns uniq union of all feature-categories that introduced grouped unit primitives
94
- ai_gateway.delivered_by # return groups of unit primitives that are delivered together and hosted by this backend service
95
- ai_gateway.unit_primitives # return list of unit primitives that are hosted by this backend service
96
- ```
97
-
98
- You can group unit primitives that are delivered together. The unit primitives can share common user interface. (i.e. Duo Chat)
99
-
100
- ```ruby
101
- delivered_by = Gitlab::CloudConnector.delivered_by[:duo_chat]
102
- delivered_by.min_gitlab_version # returns the smallest required gitlab version from all grouped unit primitives
103
- delivered_by.cut_off_date # returns the latest cut-off-date from all grouped unit primitives
104
- delivered_by.add_ons # returns uniq union of all add-on names bundled with grouped unit primitives
105
- delivered_by.feature_categories # returns uniq union of all feature-categories that introduced grouped unit primitives
106
- delivered_by.free_access? # checks if at least one UP in the group has free access
107
- delivered_by.supported_gitlab_version?('16.8') # checks if at least one UP in the group is supported by provided gitlab version
108
- delivered_by.unit_primitives # return list of unit primitives that are delivered together via duo_chat
109
- ```
110
-
111
- To list all available add-ons for the instance:
112
-
113
- ```ruby
114
- Gitlab::CloudConnector.add_ons
115
- ```
116
-
117
- ### AccessTokens
118
-
119
- You can issue an isntance access token that will contain all allowed scopes across all backend services.
120
- Note that audience header will contain the list of audiences, containing multiple supported backends,
121
- that can authenticate this JWT token.
122
-
123
- ```ruby
124
- Gitlab::CloudConnector.instance_access_token(License.last, gitlab_version: '16.8')
125
- ```
126
-
127
- You can issue a token per backend service, that will contain all allowed scopes for unit primitives that are hosted by specified backend service.
128
-
129
- ```ruby
130
- Gitlab::CloudConnector.backend_services[:ai_gateway].access_token(License.last, gitlab_version: '16.8')
131
- ```
132
-
133
- You can issue a token per delivered_by group, that will contain all allowed scopes for unit primitives that are delivered by a common user interface (i.e. Duo Chat)
134
-
135
- ```ruby
136
- Gitlab::CloudConnector.delivered_by[:duo_chat].access_token(License.last, gitlab_version: '16.8')
137
- ```
138
-
139
- ### Permission checks
140
-
141
- You can call all public methods implemented in PurchasableDecorator on delivered_by group or on unit primitive level
142
-
143
- If you want to check if the access to the group has free access
144
-
145
- ```ruby
146
- Gitlab::CloudConnector.delivered_by[:duo_chat].free_access?
147
- ```
148
-
149
- You can also call any other public method that is implemented by `CloudConnector::PurchasableInterface`
150
-
151
-
152
- Or you can check for specific unit primitive:
153
-
154
- ```ruby
155
- Gitlab::CloudConnector.unit_primitives[:documentation_search].free_access?
156
- ```
157
-
158
-
159
-
160
- ## Development
161
-
162
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
163
-
164
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
165
-
166
- ## Contributing
167
-
168
- Bug reports and pull requests are welcome on GitLab: []() # TODO add link
169
-
170
- ### Introduce new unit primitive
171
-
172
- The GitLab codebase provides bin/unit-primitive, a dedicated tool to create new unit primitive definitions.
173
- The tool asks various questions about the new unit primitive, then creates a YAML definition in config/backend_services/[backend_service]/unit_primitives/[unit_primitive_name].yml file.
174
-
175
- ```sh
176
- bin/unit_primitive new_feature
177
-
178
- >> Description of the unit primitive (enter to skip):
179
- ?>
180
- You picked the bakcend 'ai_gateway'
181
-
182
- >> Cut off date when the service is no longer available for free (enter to skip):
183
- ?> 2024-12-22 00:00
184
-
185
- >>Minimum gitlab version (enter to skip):
186
- ?> 16.7
187
-
188
- >>Minimum gitlab version when feature has free access (enter to skip):
189
- ?> 16.8
190
-
191
- >>Minimum backend service version (enter to skip):
192
- ?> 2.3
193
-
194
- You picked the add_ons '["duo_enterprise", "duo_pro"]'
195
- You picked the delivered_by '["duo_chat"]'
196
- You picked the group 'group::cloud connector'
197
- You picked the feature_category 'cloud_connector'
198
-
199
- >> URL of the original unit primitive issue (enter to skip):
200
- ?>
201
-
202
- >> URL of the MR introducing the unit primitive (enter to skip):
203
- ?>
204
-
205
- You picked the gitlab_realms '["saas", "self-managed"]'
13
+ $ gem install gitlab-cloud-connector
206
14
 
207
- create config/cloud_connector/backend_services/ai_gateway/unit_primitives/new_feature.yml
208
- ---
209
- name: new_feature
210
- description:
211
- cut_off_date: 2024-12-22 00:00
212
- minumum_gitlab_version: '16.7'
213
- min_gitlab_version_for_free_access: '16.8'
214
- min_backend_version: '2.3'
215
- bundled_with:
216
- - duo_enterprise
217
- - duo_pro
218
- delivered_by:
219
- - duo_chat
220
- unit_primitive_issue_url:
221
- introduced_by_url:
222
- group: group::cloud connector
223
- feature_category: cloud_connector
224
- milestone: 16.7
225
- gitlab_realms:
226
- - saas
227
- - self-managed
228
- ```
15
+ ## Release Process
229
16
 
17
+ We release `gitlab-cloud-connector` on an ad-hoc basis. There is no regularity to when
18
+ we release, we just release when we make a change - no matter the size of the
19
+ change.
230
20
 
21
+ To release a new version:
231
22
 
23
+ 1. Create a Merge Request.
24
+ 1. Use Merge Request template [Release.md](https://gitlab.com/gitlab-org/ruby/gems/gitlab-cloud-connector/-/blob/master/.gitlab/merge_request_templates/Release.md).
25
+ 1. Follow the instructions.
26
+ 1. After the Merge Request has been merged, a new gem version is [published automatically](https://gitlab.com/gitlab-org/components/gem-release).
27
+ 1. Once the new gem version is visible on [RubyGems.org](https://rubygems.org/gems/gitlab-cloud-connector),
28
+ it is recommended to update [GitLab's `Gemfile`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/Gemfile)
29
+ and [Customers Dot's `Gemfile`](https://gitlab.com/gitlab-org/customers-gitlab-com) to bump the `gitlab-cloud-connector` Ruby gem to the new version also.
data/Rakefile CHANGED
@@ -5,8 +5,4 @@ require "rspec/core/rake_task"
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
- require "rubocop/rake_task"
9
-
10
- RuboCop::RakeTask.new
11
-
12
- task default: %i[spec rubocop]
8
+ task default: :spec
@@ -0,0 +1,2 @@
1
+ ---
2
+ name: duo_enterprise
@@ -0,0 +1,2 @@
1
+ ---
2
+ name: duo_pro
@@ -0,0 +1,5 @@
1
+ ---
2
+ name: ai_gateway
3
+ project_url: https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist
4
+ group: group::ai framework
5
+ jwt_aud: gitlab-ai-gateway
@@ -0,0 +1,5 @@
1
+ ---
2
+ name: duo_workflow_service
3
+ project_url: https://gitlab.com/gitlab-org/duo-workflow/duo-workflow-service
4
+ group: group:ai model validation
5
+ jwt_aud: gitlab-duo-workflow-service
@@ -0,0 +1,2 @@
1
+ ---
2
+ name: premium
@@ -0,0 +1,2 @@
1
+ ---
2
+ name: ultimate
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: code_suggestions
3
+ description: Helps you write code more efficiently by generating code and showing suggestions as you type.
4
+ cut_off_date: 2024-02-15T00:00:00+00:00
5
+ min_gitlab_version_for_free_access:
6
+ min_gitlab_version: '16.8'
7
+ unit_primitive_issue_url:
8
+ introduced_by_url:
9
+ documentation_url:
10
+ group: group::code suggestions
11
+ feature_category: code_suggestions
12
+ backend_services:
13
+ - ai_gateway
14
+ add_ons:
15
+ - duo_pro
16
+ - duo_enterprise
17
+ license_types:
18
+ - premium
19
+ - ultimate
@@ -1,19 +1,19 @@
1
1
  ---
2
2
  name: documentation_search
3
- description:
4
- backend: 'gitlab-ai-gateway'
3
+ description: Perform semantic search on gitlab documentations for a given query.
5
4
  cut_off_date:
6
5
  min_gitlab_version_for_free_access: '16.8'
7
6
  min_gitlab_version: '16.9'
8
- min_backend_version:
9
- delivered_by:
10
- - duo_chat
11
- bundled_with:
12
- - duo_pro
13
- - duo_enterprise
7
+ unit_primitive_issue_url:
14
8
  introduced_by_url:
9
+ documentation_url:
15
10
  group: group::duo_chat
16
11
  feature_category: duo_chat
17
- gitlab_realms:
18
- - saas
19
- - self-managed
12
+ backend_services:
13
+ - ai_gateway
14
+ add_ons:
15
+ - duo_pro
16
+ - duo_enterprise
17
+ license_types:
18
+ - premium
19
+ - ultimate
@@ -1,19 +1,19 @@
1
1
  ---
2
2
  name: duo_chat
3
- description:
4
- backend: 'gitlab-ai-gateway'
3
+ description: Ask various GitLab-related questions and tasks.
5
4
  cut_off_date:
6
5
  min_gitlab_version_for_free_access: '16.8'
7
6
  min_gitlab_version: '16.9'
8
- min_backend_version:
9
- delivered_by:
10
- - duo_chat
11
- bundled_with:
12
- - duo_pro
13
- - duo_enterprise
7
+ unit_primitive_issue_url:
14
8
  introduced_by_url:
9
+ documentation_url:
15
10
  group: group::duo_chat
16
11
  feature_category: duo_chat
17
- gitlab_realms:
18
- - saas
19
- - self-managed
12
+ backend_services:
13
+ - ai_gateway
14
+ add_ons:
15
+ - duo_pro
16
+ - duo_enterprise
17
+ license_types:
18
+ - premium
19
+ - ultimate
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: explain_vulnerability
3
+ description: Explain a security vulnerability of the given CVE or code.
4
+ cut_off_date:
5
+ min_gitlab_version_for_free_access: '17.2'
6
+ min_gitlab_version: '17.2'
7
+ unit_primitive_issue_url:
8
+ introduced_by_url:
9
+ documentation_url:
10
+ group: group::threat insights
11
+ feature_category: vulnerability_management
12
+ backend_services:
13
+ - ai_gateway
14
+ add_ons:
15
+ - duo_pro
16
+ - duo_enterprise
17
+ license_types:
18
+ - premium
19
+ - ultimate
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: generate_commit_message
3
+ description: Generate a Git commit message.
4
+ cut_off_date:
5
+ min_gitlab_version_for_free_access: '17.2'
6
+ min_gitlab_version: '17.2'
7
+ unit_primitive_issue_url:
8
+ introduced_by_url:
9
+ documentation_url:
10
+ group: group::code review
11
+ feature_category: code_review_workflow
12
+ backend_services:
13
+ - ai_gateway
14
+ add_ons:
15
+ - duo_pro
16
+ - duo_enterprise
17
+ license_types:
18
+ - premium
19
+ - ultimate
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: glab_ask_git_command
3
+ description: Discover or recall git commands when and where you need them.
4
+ cut_off_date:
5
+ min_gitlab_version_for_free_access: '17.2'
6
+ min_gitlab_version: '17.2'
7
+ unit_primitive_issue_url:
8
+ introduced_by_url:
9
+ documentation_url:
10
+ group: group::code review
11
+ feature_category: code_review_workflow
12
+ backend_services:
13
+ - ai_gateway
14
+ add_ons:
15
+ - duo_pro
16
+ - duo_enterprise
17
+ license_types:
18
+ - premium
19
+ - ultimate
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: resolve_vulnerability
3
+ description: Write code that fixes the vulnerability.
4
+ cut_off_date:
5
+ min_gitlab_version_for_free_access: '17.2'
6
+ min_gitlab_version: '17.2'
7
+ unit_primitive_issue_url:
8
+ introduced_by_url:
9
+ documentation_url:
10
+ group: group::threat insights
11
+ feature_category: vulnerability_management
12
+ backend_services:
13
+ - ai_gateway
14
+ add_ons:
15
+ - duo_pro
16
+ - duo_enterprise
17
+ license_types:
18
+ - premium
19
+ - ultimate
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: summarize_comments
3
+ description: Summarize comments of the issue or epic.
4
+ cut_off_date:
5
+ min_gitlab_version_for_free_access: '17.2'
6
+ min_gitlab_version: '17.2'
7
+ unit_primitive_issue_url:
8
+ introduced_by_url:
9
+ documentation_url:
10
+ group: group::ai framework
11
+ feature_category: ai_abstraction_layer
12
+ backend_services:
13
+ - ai_gateway
14
+ add_ons:
15
+ - duo_pro
16
+ - duo_enterprise
17
+ license_types:
18
+ - premium
19
+ - ultimate
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: troubleshoot_job
3
+ description: Troubleshoot why a GitLab CI job failed and suggest a fix for it.
4
+ cut_off_date:
5
+ min_gitlab_version_for_free_access: '17.2'
6
+ min_gitlab_version: '17.2'
7
+ unit_primitive_issue_url:
8
+ introduced_by_url:
9
+ documentation_url:
10
+ group: group::pipeline execution
11
+ feature_category: continuous_integration
12
+ backend_services:
13
+ - ai_gateway
14
+ add_ons:
15
+ - duo_pro
16
+ - duo_enterprise
17
+ license_types:
18
+ - premium
19
+ - ultimate
@@ -2,8 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module CloudConnector
5
- class BackendService < BaseGroup
6
- include Deliverable
7
- end
5
+ VERSION = '0.1.1'
8
6
  end
9
7
  end