gitlab-cloud-connector 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c57fb113278c2e577aad185c79e45c5e640495c12a9bc0b48afbd925aa7c74a
4
- data.tar.gz: 4639436cc983b23598ff7f46a58c87d502c36030f5a06becb339a97460a2889e
3
+ metadata.gz: 631ee0be48c3afe5732dcdd2cbf8f1f2bfb081ac40783a3790981072c80ab57d
4
+ data.tar.gz: b22b16aaf5e29d67081cd4ee03e83f572daeed2db9ab15962c0e82ed192676ab
5
5
  SHA512:
6
- metadata.gz: 0030a33d736c6cfbd1f0af157a3627cc541ad3d379275c0649a78786881f12cefe06e316ca6d80bbf74a5cbdc34d728861312af8494efa376d85e3810b416765
7
- data.tar.gz: d02c56fd8f8c79b3f64decc114be325c07bae61b7b15a6fbf741d1ed5de7b4cf2c7c9de9a616f3228a9202e1028e5fbe8cf3551ff83e92d9a44c490270ad689b
6
+ metadata.gz: c4cb3e67ea39fb9b7db24a5fe6b9375d8e1b8278c27bd91b929d11dd8bec180adbfb7a182d9f175a744ac3e7f2e490bd05bc888b7770d01b4b30dfe7f2aa3aff
7
+ data.tar.gz: 01ce43956fe3a3fc248757294520cf220dbc00b25b7d5f3774fc5320f467874f0f1ac1f43bbe91efcf07d1d9c80df7dbbfe21ce1ca429f3c5719a045396ebdd8
data/CONTRIBUTING.md CHANGED
@@ -1,8 +1,8 @@
1
- ## Making changes to this repository
1
+ # Making changes to this repository
2
2
 
3
3
  We welcome contributions. When making changes:
4
4
 
5
- 1. Follow good git commit practices. Summarize the change concisely in the commit title,
5
+ 1. Follow good Git commit practices. Summarize the change concisely in the commit title,
6
6
  and add relevant details in the commit body.
7
7
  1. Add a [changelog trailer](https://docs.gitlab.com/ee/user/project/changelogs.html) where it applies.
8
8
  1. Open a merge request.
@@ -44,7 +44,6 @@ This code of conduct applies both within project spaces and in public spaces
44
44
  when an individual is representing the project or its community.
45
45
 
46
46
  Instances of abusive, harassing, or otherwise unacceptable behavior can be
47
- reported by emailing contact@gitlab.com.
47
+ reported by emailing <contact@gitlab.com>.
48
48
 
49
- This Code of Conduct is adapted from the [Contributor Covenant](https://contributor-covenant.org), version 1.1.0,
50
- available at [https://contributor-covenant.org/version/1/1/0/](https://contributor-covenant.org/version/1/1/0/).
49
+ This Code of Conduct is adapted from the [Contributor Covenant, version 1.1.0](https://contributor-covenant.org/version/1/1/0/).
data/README.md CHANGED
@@ -10,6 +10,54 @@ We expect Bundler is used to manage dependencies. To add the dependency, add it
10
10
  gem "gitlab-cloud-connector", "~> 0.1.1", require: 'cloud_connector'
11
11
  ```
12
12
 
13
+ ## Usage
14
+
15
+ ### Data Storage
16
+
17
+ Cloud Connector uses YAML files stored in the project's `/config` directory. The data is organized by model type:
18
+
19
+ ```yaml
20
+ # config/backend_services/ai_gateway.yml
21
+ name: ai_gateway
22
+ description: "AI Gateway"
23
+ jwt_aud: gitlab-ai-gateway
24
+
25
+ # config/add_ons/duo_pro.yml
26
+ name: duo_pro
27
+ description: "Duo Pro"
28
+
29
+ # config/unit_primitives/duo_chat.yml
30
+ name: duo_chat
31
+ description: "Duo Chat"
32
+ backend_services:
33
+ - ai_gateway
34
+ add_ons:
35
+ - duo_pro
36
+ - duo_enterprise
37
+ ```
38
+
39
+ ### Working with DataModels
40
+
41
+ `DataModels` are the core data structures in the Cloud Connector. Each model inherits from `DataModel::Base`. The data is loaded from YAML files into memory at runtime, making it efficient for read operations and relationship traversal.
42
+
43
+ ```ruby
44
+ require 'cloud_connector'
45
+
46
+ # Find unit primitive by name
47
+ # Note: value should be a symbol (e.g., `:duo_chat` instead of `'duo_chat'`).
48
+ duo_chat = Gitlab::CloudConnector::DataModels::UnitPrimitive.find_by_name(:duo_chat)
49
+ duo_chat.description
50
+ duo_chat.cut_off_date
51
+
52
+ # access associations
53
+ duo_chat.add_ons
54
+ duo_chat.license_types
55
+ duo_chat.backend_services
56
+
57
+ # read duo_chat audiences
58
+ duo_chat.backend_services.map(&:jwt_aud)
59
+ ```
60
+
13
61
  ## Release Process
14
62
 
15
63
  See [Release Process](../../README.md#release-process)
@@ -18,4 +66,3 @@ Once the new gem version is visible on [RubyGems.org](https://rubygems.org/gems/
18
66
  it is recommended to update [GitLab's `Gemfile`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/Gemfile)
19
67
  and [Customers Dot's `Gemfile`](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/main/Gemfile) to bump the `gitlab-cloud-connector`
20
68
  Ruby gem to the new version also. See [Usage](#usage) for how to do this.
21
-
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-06/schema#",
3
+ "type": "object",
4
+ "description": "This is the legacy format for the service object that is being deprecated. Consider transitioning to the new format.",
5
+ "required": ["name"],
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "pattern": "^[a-z0-9]+(_[a-z0-9]+)*$",
10
+ "description": "The unique name of the service, consisting of lowercase alphanumeric characters and underscores."
11
+ },
12
+ "basic_unit_primitive": {
13
+ "type": "string",
14
+ "pattern": "^[a-z0-9]+(_[a-z0-9]+)*$",
15
+ "description": "The basic unit primitive identifier."
16
+ },
17
+ "gitlab_realm": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "string",
21
+ "enum": ["gitlab-com", "self-managed"]
22
+ },
23
+ "description": "An array of unit primitives associated with the service."
24
+ },
25
+ "description": {
26
+ "type": "string",
27
+ "description": "A brief description of the service."
28
+ },
29
+ "unit_primitives": {
30
+ "type": "array",
31
+ "items": {
32
+ "type": "string"
33
+ },
34
+ "description": "An array of unit primitives associated with the service."
35
+ }
36
+ },
37
+ "additionalProperties": false
38
+ }
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: agent_quick_actions
3
+ gitlab_realm:
4
+ - self-managed
5
+ unit_primitives:
6
+ - agent_quick_actions
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: anthropic_proxy
3
+ unit_primitives:
4
+ - categorize_duo_chat_question
5
+ - generate_commit_message
6
+ - generate_issue_description
7
+ - glab_ask_git_command
8
+ - resolve_vulnerability
9
+ - review_merge_request
10
+ - summarize_issue_discussions
11
+ - summarize_review
@@ -0,0 +1,5 @@
1
+ ---
2
+ name: code_suggestions
3
+ unit_primitives:
4
+ - complete_code
5
+ - generate_code
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: duo_chat
3
+ basic_unit_primitive: duo_chat
4
+ unit_primitives:
5
+ - ask_build
6
+ - ask_commit
7
+ - ask_epic
8
+ - ask_issue
9
+ - ask_merge_request
10
+ - documentation_search
11
+ - duo_chat
12
+ - explain_code
13
+ - fix_code
14
+ - include_dependency_context
15
+ - include_file_context
16
+ - include_issue_context
17
+ - include_local_git_context
18
+ - include_merge_request_context
19
+ - include_snippet_context
20
+ - refactor_code
21
+ - write_tests
@@ -0,0 +1,4 @@
1
+ ---
2
+ name: duo_workflow
3
+ unit_primitives:
4
+ - duo_workflow_execute_workflow
@@ -0,0 +1,4 @@
1
+ ---
2
+ name: generate_description
3
+ unit_primitives:
4
+ - generate_issue_description
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: sast
3
+ gitlab_realm:
4
+ - gitlab-com
5
+ unit_primitives:
6
+ - security_scans
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: self_hosted_models
3
+ gitlab_realm:
4
+ - gitlab-com
5
+ unit_primitives:
6
+ - ask_build
7
+ - ask_commit
8
+ - ask_epic
9
+ - ask_issue
10
+ - ask_merge_request
11
+ - complete_code
12
+ - generate_code
13
+ - documentation_search
14
+ - duo_chat
15
+ - explain_code
16
+ - fix_code
17
+ - include_dependency_context
18
+ - include_file_context
19
+ - include_issue_context
20
+ - include_local_git_context
21
+ - include_merge_request_context
22
+ - include_snippet_context
23
+ - refactor_code
24
+ - write_tests
@@ -0,0 +1,4 @@
1
+ ---
2
+ name: summarize_new_merge_request
3
+ unit_primitives:
4
+ - summarize_merge_request
@@ -0,0 +1,9 @@
1
+ ---
2
+ name: vertex_ai_proxy
3
+ unit_primitives:
4
+ - generate_commit_message
5
+ - generate_cube_query
6
+ - glab_ask_git_command
7
+ - semantic_search_issue
8
+ - summarize_issue_discussions
9
+ - summarize_merge_request
@@ -8,4 +8,5 @@ documentation_url: https://docs.gitlab.com/ee/user/gitlab_duo/#code-explanation
8
8
  backend_services:
9
9
  - ai_gateway
10
10
  add_ons:
11
+ - duo_pro
11
12
  - duo_enterprise
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: generate_cube_query
3
3
  description: Convert plain text questions about event data in to a structured query in JSON format.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
4
5
  group: group::platform insights
5
6
  feature_category: product_analytics_visualization
6
7
  backend_services:
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: review_merge_request
3
3
  description: Review new hunk and old hunk of a merge request diff.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
4
5
  group: group::code review
5
6
  feature_category: code_review_workflow
6
7
  documentation_url: https://docs.gitlab.com/ee/user/gitlab_duo/#code-review
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: summarize_merge_request
3
3
  description: Summarize merge request from the comments.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
4
5
  group: group::code review
5
6
  feature_category: code_review_workflow
6
7
  documentation_url: https://docs.gitlab.com/ee/user/gitlab_duo/#merge-request-summary
@@ -5,6 +5,9 @@ require 'active_support/time'
5
5
 
6
6
  module Gitlab
7
7
  module CloudConnector
8
- autoload(:JsonWebToken, 'gitlab/cloud_connector/json_web_token.rb')
8
+ autoload(:JsonWebToken, 'gitlab/cloud_connector/json_web_token')
9
+ autoload(:Configuration, 'gitlab/cloud_connector/configuration')
10
+ autoload(:DataModels, 'gitlab/cloud_connector/data_models')
11
+ autoload(:AvailableServicesGenerator, 'gitlab/cloud_connector/available_services_generator')
9
12
  end
10
13
  end
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/core_ext/enumerable'
4
+ require 'active_support/core_ext/object/blank'
5
+
6
+ module Gitlab
7
+ module CloudConnector
8
+ class AvailableServicesGenerator
9
+ GITLAB_REALMS = %w[gitlab-com self-managed].freeze
10
+ WRONG_GITLAB_REALM_MESSAGE = 'Wrong gitlab_realm. Please use one of the following: %s'
11
+ IGNORE_UNIT_PRIMITIVES = %w[
12
+ agent_quick_actions
13
+ ask_build
14
+ ask_commit
15
+ ask_epic
16
+ ask_issue
17
+ ask_merge_request
18
+ categorize_duo_chat_question
19
+ complete_code
20
+ documentation_search
21
+ duo_workflow_execute_workflow
22
+ duo_workflow_generate_token
23
+ explain_code
24
+ fix_code
25
+ generate_code
26
+ generate_issue_description
27
+ refactor_code
28
+ security_scans
29
+ semantic_search_issue
30
+ summarize_issue_discussions
31
+ summarize_merge_request
32
+ write_tests
33
+ ].freeze
34
+
35
+ def generate(gitlab_realm)
36
+ raise WRONG_GITLAB_REALM_MESSAGE % GITLAB_REALMS.join(', ') unless GITLAB_REALMS.include?(gitlab_realm)
37
+
38
+ {
39
+ 'services' => generate_services_config(gitlab_realm)
40
+ }
41
+ end
42
+
43
+ private
44
+
45
+ def generate_services_config(gitlab_realm)
46
+ services_config = {}
47
+
48
+ DataModels::Service.each do |service|
49
+ next if service.gitlab_realm && !service.gitlab_realm&.include?(gitlab_realm)
50
+
51
+ service_config = generate_service_config(service.unit_primitives, service.basic_unit_primitive)
52
+ # Remove duo_pro for self_hosted_models
53
+ service_config['bundled_with'].delete('duo_pro') if service.name == 'self_hosted_models'
54
+
55
+ services_config[service.name] = service_config
56
+ end
57
+
58
+ # Generate a stand-alone service for each unit primitive (except the ones in the ignore list)
59
+ unit_primitives = DataModels::UnitPrimitive.reject { |up| IGNORE_UNIT_PRIMITIVES.include?(up.name) }
60
+ unit_primitives.each do |unit_primitive|
61
+ next if services_config[unit_primitive.name]
62
+
63
+ services_config[unit_primitive.name] = generate_service_config([unit_primitive])
64
+ end
65
+
66
+ services_config.sort.to_h
67
+ end
68
+
69
+ def generate_service_config(unit_primitives, basic_unit_primitive = nil)
70
+ sample_primitive = unit_primitives.find { |up| up.name == basic_unit_primitive } if basic_unit_primitive
71
+ sample_primitive ||= unit_primitives.first
72
+ backend_service = sample_primitive&.backend_services&.first
73
+
74
+ {
75
+ 'backend' => backend_service&.jwt_aud,
76
+ 'cut_off_date' => sample_primitive&.cut_off_date&.strftime('%Y-%m-%d %H:%M:%S UTC'),
77
+ 'min_gitlab_version' => sample_primitive&.min_gitlab_version,
78
+ 'min_gitlab_version_for_free_access' => sample_primitive&.min_gitlab_version_for_free_access,
79
+ 'bundled_with' => generate_bundled_config(unit_primitives),
80
+ 'license_types' => sample_primitive&.license_types&.map(&:name)
81
+ }.compact_blank
82
+ end
83
+
84
+ def generate_bundled_config(unit_primitives)
85
+ unit_primitives.each_with_object({}) do |primitive, bundled|
86
+ target_groups = primitive.add_ons.any? ? primitive.add_ons.map(&:name) : ['_irrelevant']
87
+ target_groups.each do |group_name|
88
+ group_name = group_name.to_s
89
+ bundled[group_name] ||= { 'unit_primitives' => [] }
90
+ bundled[group_name]['unit_primitives'] << primitive.name
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gitlab
4
+ module CloudConnector
5
+ module Configuration
6
+ class << self
7
+ attr_writer :config_dir
8
+
9
+ def config_dir
10
+ @config_dir ||= File.expand_path("../../../config", __dir__).freeze
11
+ end
12
+
13
+ def configure
14
+ yield self if block_given?
15
+ end
16
+
17
+ def reset!
18
+ @config_dir = nil
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gitlab
4
+ module CloudConnector
5
+ module DataModel
6
+ module Associations
7
+ module ClassMethods
8
+ # rubocop:disable Naming/PredicateName
9
+ def has_and_belongs_to_many(name)
10
+ define_method(name) do
11
+ instance_variable_get(:"@#{name}_association") ||
12
+ instance_variable_set(:"@#{name}_association", load_association_records(name))
13
+ end
14
+ end
15
+ # rubocop:enable Naming/PredicateName
16
+ end
17
+
18
+ def self.included(base)
19
+ base.extend ClassMethods
20
+ end
21
+
22
+ private
23
+
24
+ def load_association_records(association_name)
25
+ names = Array(self[association_name])
26
+ association_class = Gitlab::CloudConnector::DataModels.const_get(association_name.to_s.classify)
27
+ association_class.select { |record| names.include?(record.name.to_s) }
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'associations'
4
+ require_relative 'data_loader'
5
+
6
+ module Gitlab
7
+ module CloudConnector
8
+ module DataModel
9
+ class Base
10
+ include Associations
11
+ extend Enumerable
12
+
13
+ class << self
14
+ def model_name
15
+ name&.demodulize
16
+ end
17
+
18
+ def each(&block)
19
+ all.each(&block)
20
+ end
21
+
22
+ def find_by_name(name)
23
+ all.find { |record| record.name.to_sym == name }
24
+ end
25
+
26
+ def all
27
+ @all ||= data_loader.load!
28
+ end
29
+
30
+ private
31
+
32
+ def data_loader
33
+ @data_loader ||= DataLoader.new(self)
34
+ end
35
+ end
36
+
37
+ def initialize(**opts)
38
+ opts.each do |key, value|
39
+ instance_variable_set(:"@#{key}", value)
40
+ end
41
+ end
42
+
43
+ def [](name)
44
+ instance_variable_get(:"@#{name}")
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yaml'
4
+
5
+ module Gitlab
6
+ module CloudConnector
7
+ module DataModel
8
+ class DataLoader
9
+ def initialize(model_class)
10
+ @model_class = model_class
11
+ end
12
+
13
+ def load!
14
+ Dir.glob(data_files_path).map { |file| load_model_from_file(file) }
15
+ end
16
+
17
+ private
18
+
19
+ attr_reader :model_class
20
+
21
+ def data_files_path
22
+ File.join(CloudConnector::Configuration.config_dir, model_class.model_name.tableize, '*.yml')
23
+ end
24
+
25
+ def load_model_from_file(file_path)
26
+ data = YAML.safe_load(
27
+ File.read(file_path),
28
+ permitted_classes: [Time],
29
+ symbolize_names: true
30
+ ).deep_symbolize_keys!
31
+
32
+ model_class.new(**data)
33
+ rescue StandardError => e
34
+ raise "Error loading file #{file_path}: #{e.message}"
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'data_model/base'
4
+
5
+ module Gitlab
6
+ module CloudConnector
7
+ module DataModels
8
+ class UnitPrimitive < DataModel::Base
9
+ has_and_belongs_to_many :backend_services
10
+ has_and_belongs_to_many :add_ons
11
+ has_and_belongs_to_many :license_types
12
+
13
+ attr_reader :cut_off_date, :deprecated_by_url, :deprecation_message, :description, :documentation_url,
14
+ :feature_category, :group, :introduced_by_url, :milestone, :min_gitlab_version,
15
+ :min_gitlab_version_for_free_access, :name, :unit_primitive_issue_url
16
+ end
17
+
18
+ class Service < DataModel::Base
19
+ has_and_belongs_to_many :unit_primitives
20
+
21
+ attr_reader :basic_unit_primitive, :description, :gitlab_realm, :name
22
+ end
23
+
24
+ class BackendService < DataModel::Base
25
+ attr_reader :description, :group, :jwt_aud, :name, :project_url
26
+ end
27
+
28
+ class LicenseType < DataModel::Base
29
+ attr_reader :description, :name
30
+ end
31
+
32
+ class AddOn < DataModel::Base
33
+ attr_reader :description, :name
34
+ end
35
+ end
36
+ end
37
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module CloudConnector
5
- VERSION = '0.2.2'
5
+ VERSION = '0.2.3'
6
6
  end
7
7
  end
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.2.2
4
+ version: 0.2.3
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-28 00:00:00.000000000 Z
11
+ date: 2024-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -107,7 +107,18 @@ files:
107
107
  - config/schemas/add_on_schema.json
108
108
  - config/schemas/backend_service_schema.json
109
109
  - config/schemas/license_type_schema.json
110
+ - config/schemas/service_schema.json
110
111
  - config/schemas/unit_primitive_schema.json
112
+ - config/services/agent_quick_actions.yml
113
+ - config/services/anthropic_proxy.yml
114
+ - config/services/code_suggestions.yml
115
+ - config/services/duo_chat.yml
116
+ - config/services/duo_workflow.yml
117
+ - config/services/generate_description.yml
118
+ - config/services/sast.yml
119
+ - config/services/self_hosted_models.yml
120
+ - config/services/summarize_new_merge_request.yml
121
+ - config/services/vertex_ai_proxy.yml
111
122
  - config/unit_primitives/agent_quick_actions.yml
112
123
  - config/unit_primitives/ask_build.yml
113
124
  - config/unit_primitives/ask_commit.yml
@@ -120,7 +131,6 @@ files:
120
131
  - config/unit_primitives/documentation_search.yml
121
132
  - config/unit_primitives/duo_chat.yml
122
133
  - config/unit_primitives/duo_workflow_execute_workflow.yml
123
- - config/unit_primitives/duo_workflow_generate_token.yml
124
134
  - config/unit_primitives/explain_code.yml
125
135
  - config/unit_primitives/explain_vulnerability.yml
126
136
  - config/unit_primitives/fix_code.yml
@@ -144,11 +154,16 @@ files:
144
154
  - config/unit_primitives/summarize_comments.yml
145
155
  - config/unit_primitives/summarize_issue_discussions.yml
146
156
  - config/unit_primitives/summarize_merge_request.yml
147
- - config/unit_primitives/summarize_new_merge_request.yml
148
157
  - config/unit_primitives/summarize_review.yml
149
158
  - config/unit_primitives/troubleshoot_job.yml
150
159
  - config/unit_primitives/write_tests.yml
151
160
  - lib/cloud_connector.rb
161
+ - lib/gitlab/cloud_connector/available_services_generator.rb
162
+ - lib/gitlab/cloud_connector/configuration.rb
163
+ - lib/gitlab/cloud_connector/data_model/associations.rb
164
+ - lib/gitlab/cloud_connector/data_model/base.rb
165
+ - lib/gitlab/cloud_connector/data_model/data_loader.rb
166
+ - lib/gitlab/cloud_connector/data_models.rb
152
167
  - lib/gitlab/cloud_connector/json_web_token.rb
153
168
  - lib/gitlab/cloud_connector/version.rb
154
169
  homepage: https://gitlab.com/gitlab-org/cloud-connector/gitlab-cloud-connector
@@ -1,10 +0,0 @@
1
- ---
2
- name: duo_workflow_generate_token
3
- description: Automate tasks and help increase productivity in your development workflow by using GitLab Duo Workflow.
4
- group: group::duo workflow
5
- feature_category: duo_workflow
6
- documentation_url: https://docs.gitlab.com/ee/user/gitlab_duo/#gitlab-duo-workflow
7
- introduced_by_url: https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/10734
8
- unit_primitive_issue_url: https://gitlab.com/gitlab-org/duo-workflow/duo-workflow-service/-/issues/17
9
- backend_services:
10
- - duo_workflow_service
@@ -1,11 +0,0 @@
1
- ---
2
- name: summarize_new_merge_request
3
- description: Summarizes the changes for a new merge request based on the diff.
4
- cut_off_date: 2024-10-17T00:00:00+00:00 # this is the cut_off date used for duo_enterprise rollout (feature requires duo_enterprise add_on in order to be used).
5
- group: group::code review
6
- feature_category: code_review_workflow
7
- introduced_by_url: gitlab.com/gitlab-org/cloud-connector/gitlab-cloud-connector/-/merge_requests/54
8
- backend_services:
9
- - ai_gateway
10
- add_ons:
11
- - duo_enterprise