gitlab-cloud-connector 0.1.1 → 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.
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