gitlab-cloud-connector 0.1.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +9 -0
  3. data/Makefile +1 -1
  4. data/README.md +12 -20
  5. data/config/backend_services/observability.yml +5 -0
  6. data/config/backend_services/security_gateway.yml +5 -0
  7. data/config/schemas/add_on_schema.json +15 -0
  8. data/config/schemas/backend_service_schema.json +26 -0
  9. data/config/schemas/license_type_schema.json +15 -0
  10. data/config/schemas/unit_primitive_schema.json +97 -0
  11. data/config/unit_primitives/ask_build.yml +15 -0
  12. data/config/unit_primitives/ask_commit.yml +15 -0
  13. data/config/unit_primitives/ask_epic.yml +15 -0
  14. data/config/unit_primitives/ask_issue.yml +15 -0
  15. data/config/unit_primitives/complete_code.yml +19 -0
  16. data/config/{config/unit_primitives → unit_primitives}/documentation_search.yml +1 -1
  17. data/config/{config/unit_primitives → unit_primitives}/duo_chat.yml +1 -1
  18. data/config/unit_primitives/duo_workflow_execute_workflow.yml +13 -0
  19. data/config/unit_primitives/explain_code.yml +17 -0
  20. data/config/{config/unit_primitives → unit_primitives}/explain_vulnerability.yml +1 -3
  21. data/config/unit_primitives/fix_code.yml +17 -0
  22. data/config/unit_primitives/generate_code.yml +19 -0
  23. data/config/{config/unit_primitives → unit_primitives}/generate_commit_message.yml +1 -3
  24. data/config/unit_primitives/generate_issue_description.yml +15 -0
  25. data/config/{config/unit_primitives → unit_primitives}/glab_ask_git_command.yml +1 -3
  26. data/config/unit_primitives/include_dependency_context.yml +15 -0
  27. data/config/unit_primitives/include_file_context.yml +17 -0
  28. data/config/unit_primitives/include_issue_context.yml +15 -0
  29. data/config/unit_primitives/include_merge_request_context.yml +15 -0
  30. data/config/unit_primitives/include_snippet_context.yml +17 -0
  31. data/config/unit_primitives/observability_all.yml +14 -0
  32. data/config/unit_primitives/refactor_code.yml +17 -0
  33. data/config/{config/unit_primitives → unit_primitives}/resolve_vulnerability.yml +1 -3
  34. data/config/unit_primitives/security_scans.yml +13 -0
  35. data/config/{config/unit_primitives → unit_primitives}/summarize_comments.yml +3 -5
  36. data/config/unit_primitives/summarize_review.yml +15 -0
  37. data/config/{config/unit_primitives → unit_primitives}/troubleshoot_job.yml +1 -3
  38. data/config/unit_primitives/write_tests.yml +17 -0
  39. data/lib/cloud_connector.rb +10 -0
  40. data/lib/gitlab/cloud_connector/json_web_token.rb +59 -0
  41. data/lib/gitlab/cloud_connector/version.rb +1 -1
  42. metadata +73 -18
  43. data/CHANGELOG.md +0 -5
  44. /data/config/{config/add_ons → add_ons}/duo_enterprise.yml +0 -0
  45. /data/config/{config/add_ons → add_ons}/duo_pro.yml +0 -0
  46. /data/config/{config/backend_services → backend_services}/ai_gateway.yml +0 -0
  47. /data/config/{config/backend_services → backend_services}/duo_workflow_service.yml +0 -0
  48. /data/config/{config/license_types → license_types}/premium.yml +0 -0
  49. /data/config/{config/license_types → license_types}/ultimate.yml +0 -0
  50. /data/config/{config/unit_primitives → unit_primitives}/code_suggestions.yml +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef484dd6688a77fb53285cb64da089ff4741c2dd45915cc5b3c1c93a99403612
4
- data.tar.gz: c53d6956e07d9840c73d311059925663cb6fb726bbf69a37248a37f5ea845a2b
3
+ metadata.gz: 770d5e1b4415c2544e4fb0be3d99fa19b05ab8f7969fc0f6c2c1fc5ea6fb0fb9
4
+ data.tar.gz: 04e860d904164310a5cabce27bea3896f0d93e6bd66a24fae7e56610f5eaef0e
5
5
  SHA512:
6
- metadata.gz: bb3b18c295b9f03d4ba08e955104b0e24274e95738387298304aeff89c237deedee58f52d495a4e1c2c508f3bdac94ac267604f35d62e4bab8ca86092e5e4b95
7
- data.tar.gz: 56a742ad75a4093c244110f9d0029a46de8556e8e46e8a80b330bc5869a2647d5ca1d7fa37c951bc07ae16161c0a0a9bfe1f626be2402d9c95c9ebe13f35c3fd
6
+ metadata.gz: 1a355ece375da0c859f01cddea2adbd9e1a94800b314e1fc649358c607b1f1b109aa38552c36afd341d02e6aff10f1fb86cf48242fecb068edf47119d59d5f62
7
+ data.tar.gz: 4b2e636501b08c3a2ba6d4dee1eb9599d73e9da252035ada0c7c5ae4aa6b7aa843c2119d5f7db2afdfb908ee3fab8b96648784ec0e28bd3a5c569699fb96f895
data/CONTRIBUTING.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## Making changes to this repository
2
+
3
+ We welcome contributions. When making changes:
4
+
5
+ 1. Follow good git commit practices. Summarize the change concisely in the commit title,
6
+ and add relevant details in the commit body.
7
+ 1. Add a [changelog trailer](https://docs.gitlab.com/ee/user/project/changelogs.html) where it applies.
8
+ 1. Open a merge request.
9
+
1
10
  ## Developer Certificate of Origin and License
2
11
 
3
12
  By contributing to GitLab B.V., you accept and agree to the following terms and
data/Makefile CHANGED
@@ -21,7 +21,7 @@ copy-assets:
21
21
  @if [ -d "${RUBY_DIR}/config" ]; then rm -rf ${RUBY_DIR}/config; fi
22
22
  # Copy required assets
23
23
  @mkdir -p ${RUBY_DIR}/config
24
- @cp -r ${ROOT_DIR}/config ${RUBY_DIR}/config
24
+ @cp -r ${ROOT_DIR}/config/* ${RUBY_DIR}/config
25
25
  @cp ${ROOT_DIR}/LICENSE ${RUBY_DIR}/
26
26
  @cp ${ROOT_DIR}/CONTRIBUTING.md ${RUBY_DIR}/
27
27
 
data/README.md CHANGED
@@ -1,29 +1,21 @@
1
- # Gitlab::CloudConnector
1
+ # gitlab-cloud-connector (Ruby)
2
2
 
3
- Gitlab Cloud Connector is shared library that contains Unit Primitives configuration and Cloud Connector libraries that are shared for GitLab projects.
3
+ Ruby gem containing shared code for Cloud Connector token issuers (GitLab, CustomersDot).
4
4
 
5
- ## Installation
5
+ ## Usage
6
6
 
7
- Install the gem and add to the application's Gemfile by executing:
7
+ We expect Bundler is used to manage dependencies. To add the dependency, add it to `Gemfile`:
8
8
 
9
- $ bundle add gitlab-cloud-connector
10
-
11
- If bundler is not being used to manage dependencies, install the gem by executing:
12
-
13
- $ gem install gitlab-cloud-connector
9
+ ```Gemfile
10
+ gem "gitlab-cloud-connector", "~> 0.1.1", require: 'cloud_connector'
11
+ ```
14
12
 
15
13
  ## Release Process
16
14
 
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.
15
+ See [Release Process](../../README.md#release-process)
20
16
 
21
- To release a new version:
17
+ Once the new gem version is visible on [RubyGems.org](https://rubygems.org/gems/gitlab-cloud-connector),
18
+ it is recommended to update [GitLab's `Gemfile`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/Gemfile)
19
+ and [Customers Dot's `Gemfile`](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/main/Gemfile) to bump the `gitlab-cloud-connector`
20
+ Ruby gem to the new version also. See [Usage](#usage) for how to do this.
22
21
 
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.
@@ -0,0 +1,5 @@
1
+ ---
2
+ name: observability
3
+ project_url: https://gitlab.com/gitlab-org/opstrace/opstrace
4
+ group: group:observability
5
+ jwt_aud: gitlab-observability-backend
@@ -0,0 +1,5 @@
1
+ ---
2
+ name: security_gateway
3
+ project_url: https://gitlab.com/gitlab-org/secure/sast-scanner-service
4
+ group: group::static analysis
5
+ jwt_aud: gitlab-security-gateway
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-06/schema#",
3
+ "type": "object",
4
+ "required": ["name"],
5
+ "properties": {
6
+ "name": {
7
+ "type": "string",
8
+ "pattern": "^[a-z0-9]+(_[a-z0-9]+)*$"
9
+ },
10
+ "description": {
11
+ "type": "string"
12
+ }
13
+ },
14
+ "additionalProperties": false
15
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-06/schema#",
3
+ "type": "object",
4
+ "required": ["name", "project_url", "jwt_aud"],
5
+ "properties": {
6
+ "name": {
7
+ "type": "string",
8
+ "pattern": "^[a-z0-9]+(_[a-z0-9]+)*"
9
+ },
10
+ "description": {
11
+ "type": "string"
12
+ },
13
+ "project_url": {
14
+ "type": "string",
15
+ "format": "url"
16
+ },
17
+ "group": {
18
+ "type": "string"
19
+ },
20
+ "jwt_aud": {
21
+ "type": "string",
22
+ "pattern": "^gitlab-[a-z0-9]+(-[a-z0-9]+)*$"
23
+ }
24
+ },
25
+ "additionalProperties": false
26
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-06/schema#",
3
+ "type": "object",
4
+ "required": ["name"],
5
+ "properties": {
6
+ "name": {
7
+ "type": "string",
8
+ "pattern": "^[a-z0-9]+(_[a-z0-9]+)*$"
9
+ },
10
+ "description": {
11
+ "type": "string"
12
+ }
13
+ },
14
+ "additionalProperties": false
15
+ }
@@ -0,0 +1,97 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-06/schema#",
3
+ "type": "object",
4
+ "required": ["name", "description", "group", "feature_category", "backend_services", "license_types"],
5
+ "properties": {
6
+ "name": {
7
+ "description": "Name of the unit primitive",
8
+ "type": "string",
9
+ "pattern": "^[a-z0-9]+(_[a-z0-9]+)*$"
10
+ },
11
+ "description": {
12
+ "description": "Description of the unit primitive",
13
+ "type": ["string", "null"]
14
+ },
15
+ "group": {
16
+ "description": "The group that introduced the unit primitive",
17
+ "type": ["string", "null"]
18
+ },
19
+ "feature_category": {
20
+ "description": "The feature category that introduced the unit primitive",
21
+ "type": ["string", "null"]
22
+ },
23
+ "unit_primitive_issue_url": {
24
+ "description": "Url of original unit primitive issue",
25
+ "type": ["string", "null"]
26
+ },
27
+ "introduced_by_url": {
28
+ "description": "URL of merge request introducing the Unit Primitive",
29
+ "type": ["string", "null"]
30
+ },
31
+ "documentation_url": {
32
+ "description": "URL of documentation for introduced Unit Primitive",
33
+ "type": ["string", "null"]
34
+ },
35
+ "milestone": {
36
+ "description": "Milestone in which the Unit Primitive was introduced",
37
+ "type": ["string", "null"]
38
+ },
39
+ "cut_off_date": {
40
+ "description": "After this date, unit primitive has no free access",
41
+ "anyOf": [
42
+ {
43
+ "type": "null"
44
+ },
45
+ {
46
+ "type": "time",
47
+ "format": "date-time"
48
+ }
49
+ ]
50
+ },
51
+ "min_gitlab_version": {
52
+ "description": "Minimum gitlab version required to use this Unit Primitive",
53
+ "type": ["string", "null"],
54
+ "pattern": "\\A(\\d+\\.\\d+)"
55
+ },
56
+ "min_gitlab_version_for_free_access": {
57
+ "description": "Minimum gitlab version required to use this Unit Primitive while it has free access",
58
+ "type": ["string", "null"],
59
+ "pattern": "\\A(\\d+\\.\\d+)"
60
+ },
61
+ "backend_services": {
62
+ "type": "array",
63
+ "items": {
64
+ "type": "string"
65
+ }
66
+ },
67
+ "add_ons": {
68
+ "anyOf": [
69
+ {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "string"
73
+ }
74
+ },
75
+ {
76
+ "type": "null"
77
+ }
78
+ ]
79
+ },
80
+ "license_types": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string"
84
+ }
85
+ },
86
+ "deprecated": {
87
+ "description": "Indicates if the unit primitive is deprecated",
88
+ "type": "boolean",
89
+ "default": false
90
+ },
91
+ "deprecation_message": {
92
+ "description": "Message explaining why the unit primitive is deprecated and any additional context",
93
+ "type": ["string", "null"]
94
+ }
95
+ },
96
+ "additionalProperties": false
97
+ }
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: ask_build
3
+ description: Ask questions about GitLab builds.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ license_types:
15
+ - ultimate
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: ask_commit
3
+ description: Ask questions about GitLab commits.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ license_types:
15
+ - ultimate
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: ask_epic
3
+ description: Ask questions about GitLab epics.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ license_types:
15
+ - ultimate
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: ask_issue
3
+ description: Ask questions about GitLab issues.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ license_types:
15
+ - ultimate
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: complete_code
3
+ description: Helps you write code more efficiently by showing code 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: https://gitlab.com/gitlab-org/gitlab/-/issues/497813
8
+ introduced_by_url: https://gitlab.com/gitlab-org/cloud-connector/gitlab-cloud-connector/-/merge_requests/46
9
+ documentation_url: https://docs.gitlab.com/ee/user/project/repository/code_suggestions/#code-completion
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,7 +1,7 @@
1
1
  ---
2
2
  name: documentation_search
3
3
  description: Perform semantic search on gitlab documentations for a given query.
4
- cut_off_date:
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
5
  min_gitlab_version_for_free_access: '16.8'
6
6
  min_gitlab_version: '16.9'
7
7
  unit_primitive_issue_url:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: duo_chat
3
3
  description: Ask various GitLab-related questions and tasks.
4
- cut_off_date:
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
5
  min_gitlab_version_for_free_access: '16.8'
6
6
  min_gitlab_version: '16.9'
7
7
  unit_primitive_issue_url:
@@ -0,0 +1,13 @@
1
+ ---
2
+ name: duo_workflow_execute_workflow
3
+ description: Automate tasks and help increase productivity in your development workflow by using GitLab Duo Workflow.
4
+ cut_off_date:
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo workflow
9
+ feature_category: duo_workflow
10
+ backend_services:
11
+ - duo_workflow_service
12
+ license_types:
13
+ - ultimate
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: explain_code
3
+ description: Explain function or method of the selected code.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::source code
9
+ feature_category: source_code_management
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ - duo_pro
15
+ license_types:
16
+ - premium
17
+ - ultimate
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: explain_vulnerability
3
3
  description: Explain a security vulnerability of the given CVE or code.
4
- cut_off_date:
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
5
  min_gitlab_version_for_free_access: '17.2'
6
6
  min_gitlab_version: '17.2'
7
7
  unit_primitive_issue_url:
@@ -12,8 +12,6 @@ feature_category: vulnerability_management
12
12
  backend_services:
13
13
  - ai_gateway
14
14
  add_ons:
15
- - duo_pro
16
15
  - duo_enterprise
17
16
  license_types:
18
- - premium
19
17
  - ultimate
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: fix_code
3
+ description: Fix the selected code.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ - duo_pro
15
+ license_types:
16
+ - premium
17
+ - ultimate
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: generate_code
3
+ description: Helps you write code more efficiently by generating code 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: https://gitlab.com/gitlab-org/gitlab/-/issues/497813
8
+ introduced_by_url: https://gitlab.com/gitlab-org/cloud-connector/gitlab-cloud-connector/-/merge_requests/46
9
+ documentation_url: https://docs.gitlab.com/ee/user/project/repository/code_suggestions/#code-generation
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,7 +1,7 @@
1
1
  ---
2
2
  name: generate_commit_message
3
3
  description: Generate a Git commit message.
4
- cut_off_date:
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
5
  min_gitlab_version_for_free_access: '17.2'
6
6
  min_gitlab_version: '17.2'
7
7
  unit_primitive_issue_url:
@@ -12,8 +12,6 @@ feature_category: code_review_workflow
12
12
  backend_services:
13
13
  - ai_gateway
14
14
  add_ons:
15
- - duo_pro
16
15
  - duo_enterprise
17
16
  license_types:
18
- - premium
19
17
  - ultimate
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: generate_issue_description
3
+ description: Generate an issue description.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::project management
9
+ feature_category: team_planning
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ license_types:
15
+ - ultimate
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: glab_ask_git_command
3
3
  description: Discover or recall git commands when and where you need them.
4
- cut_off_date:
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
5
  min_gitlab_version_for_free_access: '17.2'
6
6
  min_gitlab_version: '17.2'
7
7
  unit_primitive_issue_url:
@@ -12,8 +12,6 @@ feature_category: code_review_workflow
12
12
  backend_services:
13
13
  - ai_gateway
14
14
  add_ons:
15
- - duo_pro
16
15
  - duo_enterprise
17
16
  license_types:
18
- - premium
19
17
  - ultimate
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: include_dependency_context
3
+ description: Include dependency context in the prompt.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ license_types:
15
+ - ultimate
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: include_file_context
3
+ description: Include file context in the prompt.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ - duo_pro
15
+ license_types:
16
+ - premium
17
+ - ultimate
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: include_issue_context
3
+ description: Include issue context in the prompt.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ license_types:
15
+ - ultimate
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: include_merge_request_context
3
+ description: Include merge request context in the prompt.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ license_types:
15
+ - ultimate
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: include_snippet_context
3
+ description: Include snippet context in the prompt.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ - duo_pro
15
+ license_types:
16
+ - premium
17
+ - ultimate
@@ -0,0 +1,14 @@
1
+ ---
2
+ name: observability_all
3
+ description: Observability unit primitive.
4
+ cut_off_date:
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::platform insights
9
+ feature_category: observability
10
+ backend_services:
11
+ - observability
12
+ license_types:
13
+ - premium
14
+ - ultimate
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: refactor_code
3
+ description: Refactor the selected code.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ - duo_pro
15
+ license_types:
16
+ - premium
17
+ - ultimate
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: resolve_vulnerability
3
3
  description: Write code that fixes the vulnerability.
4
- cut_off_date:
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
5
  min_gitlab_version_for_free_access: '17.2'
6
6
  min_gitlab_version: '17.2'
7
7
  unit_primitive_issue_url:
@@ -12,8 +12,6 @@ feature_category: vulnerability_management
12
12
  backend_services:
13
13
  - ai_gateway
14
14
  add_ons:
15
- - duo_pro
16
15
  - duo_enterprise
17
16
  license_types:
18
- - premium
19
17
  - ultimate
@@ -0,0 +1,13 @@
1
+ ---
2
+ name: security_scans
3
+ description: Used to check your source code for known vulnerabilities.
4
+ cut_off_date:
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::static analysis
9
+ feature_category: static_application_security_testing
10
+ backend_services:
11
+ - security_gateway
12
+ license_types:
13
+ - ultimate
@@ -1,19 +1,17 @@
1
1
  ---
2
2
  name: summarize_comments
3
3
  description: Summarize comments of the issue or epic.
4
- cut_off_date:
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
5
  min_gitlab_version_for_free_access: '17.2'
6
6
  min_gitlab_version: '17.2'
7
7
  unit_primitive_issue_url:
8
8
  introduced_by_url:
9
9
  documentation_url:
10
- group: group::ai framework
11
- feature_category: ai_abstraction_layer
10
+ group: group::project management
11
+ feature_category: team_planning
12
12
  backend_services:
13
13
  - ai_gateway
14
14
  add_ons:
15
- - duo_pro
16
15
  - duo_enterprise
17
16
  license_types:
18
- - premium
19
17
  - ultimate
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: summarize_review
3
+ description: Summarize open reviews in merge requests.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::code review
9
+ feature_category: code_review_workflow
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_enterprise
14
+ license_types:
15
+ - ultimate
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: troubleshoot_job
3
3
  description: Troubleshoot why a GitLab CI job failed and suggest a fix for it.
4
- cut_off_date:
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
5
  min_gitlab_version_for_free_access: '17.2'
6
6
  min_gitlab_version: '17.2'
7
7
  unit_primitive_issue_url:
@@ -12,8 +12,6 @@ feature_category: continuous_integration
12
12
  backend_services:
13
13
  - ai_gateway
14
14
  add_ons:
15
- - duo_pro
16
15
  - duo_enterprise
17
16
  license_types:
18
- - premium
19
17
  - ultimate
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: write_tests
3
+ description: Write tests for the selected code.
4
+ cut_off_date: 2024-10-17T00:00:00+00:00
5
+ unit_primitive_issue_url:
6
+ introduced_by_url:
7
+ documentation_url:
8
+ group: group::duo_chat
9
+ feature_category: duo_chat
10
+ backend_services:
11
+ - ai_gateway
12
+ add_ons:
13
+ - duo_pro
14
+ - duo_enterprise
15
+ license_types:
16
+ - premium
17
+ - ultimate
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support'
4
+ require 'active_support/time'
5
+
6
+ module Gitlab
7
+ module CloudConnector
8
+ autoload(:JsonWebToken, 'gitlab/cloud_connector/json_web_token.rb')
9
+ end
10
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'jwt'
4
+
5
+ module Gitlab
6
+ module CloudConnector
7
+ class JsonWebToken
8
+ SIGNING_ALGORITHM = 'RS256'
9
+ NOT_BEFORE_TIME_SEC = 5.seconds.to_i
10
+
11
+ attr_reader :issued_at, :expires_at
12
+
13
+ def initialize(issuer:, audience:, subject:, realm:, scopes:, ttl:, extra_claims: {})
14
+ @id = SecureRandom.uuid
15
+ @audience = audience
16
+ @subject = subject
17
+ @issuer = issuer
18
+ @issued_at = Time.current.to_i
19
+ @not_before = @issued_at - NOT_BEFORE_TIME_SEC
20
+ @expires_at = (@issued_at + ttl).to_i
21
+ @realm = realm
22
+ @scopes = scopes
23
+ @extra_claims = extra_claims
24
+ end
25
+
26
+ # jwk:
27
+ # The key (pair) as an instance of JWT::JWK.
28
+ #
29
+ # Returns a signed and Base64-encoded JSON Web Token string, to be
30
+ # written to the HTTP Authorization header field.
31
+ def encode(jwk)
32
+ header_fields = { typ: 'JWT', kid: jwk.kid }
33
+
34
+ JWT.encode(payload, jwk.signing_key, SIGNING_ALGORITHM, header_fields)
35
+ end
36
+
37
+ def payload
38
+ {
39
+ jti: @id,
40
+ aud: @audience,
41
+ sub: @subject,
42
+ iss: @issuer,
43
+ iat: @issued_at,
44
+ nbf: @not_before,
45
+ exp: @expires_at
46
+ }.merge(cloud_connector_claims)
47
+ end
48
+
49
+ private
50
+
51
+ def cloud_connector_claims
52
+ {
53
+ gitlab_realm: @realm,
54
+ scopes: @scopes
55
+ }.merge(@extra_claims)
56
+ end
57
+ end
58
+ end
59
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module CloudConnector
5
- VERSION = '0.1.1'
5
+ VERSION = '0.2.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-cloud-connector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.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-10-11 00:00:00.000000000 Z
11
+ date: 2024-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '7.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '7.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jwt
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::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
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: gitlab-styles
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -62,27 +90,54 @@ extra_rdoc_files: []
62
90
  files:
63
91
  - ".rspec"
64
92
  - ".rubocop.yml"
65
- - CHANGELOG.md
66
93
  - CONTRIBUTING.md
67
94
  - LICENSE
68
95
  - Makefile
69
96
  - README.md
70
97
  - Rakefile
71
- - config/config/add_ons/duo_enterprise.yml
72
- - config/config/add_ons/duo_pro.yml
73
- - config/config/backend_services/ai_gateway.yml
74
- - config/config/backend_services/duo_workflow_service.yml
75
- - config/config/license_types/premium.yml
76
- - config/config/license_types/ultimate.yml
77
- - config/config/unit_primitives/code_suggestions.yml
78
- - config/config/unit_primitives/documentation_search.yml
79
- - config/config/unit_primitives/duo_chat.yml
80
- - config/config/unit_primitives/explain_vulnerability.yml
81
- - config/config/unit_primitives/generate_commit_message.yml
82
- - config/config/unit_primitives/glab_ask_git_command.yml
83
- - config/config/unit_primitives/resolve_vulnerability.yml
84
- - config/config/unit_primitives/summarize_comments.yml
85
- - config/config/unit_primitives/troubleshoot_job.yml
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
86
141
  - lib/gitlab/cloud_connector/version.rb
87
142
  homepage: https://gitlab.com/gitlab-org/cloud-connector/gitlab-cloud-connector
88
143
  licenses:
data/CHANGELOG.md DELETED
@@ -1,5 +0,0 @@
1
- ## [Unreleased]
2
-
3
- ## [0.1.0] - 2024-07-117
4
-
5
- - Initial release
File without changes