From cc58d1ec79aa743e716d5d5bafdb6951f701b0f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Ku=C4=87?= Date: Tue, 26 Aug 2025 21:33:57 +0200 Subject: [PATCH] Update JSON schema for runner context to avoid issues with GitLab and owner property not being present MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Kuć --- .../runner-context-response-0.1.schema.json | 8 ++- .../schemavalidators/schemavalidators_test.go | 4 ++ ...ner_context_gitlab_no_protection-v0.1.json | 61 +++++++++++++++++++ 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 internal/schemavalidators/testdata/runner_context_gitlab_no_protection-v0.1.json diff --git a/internal/schemavalidators/external_schemas/runnercontext/runner-context-response-0.1.schema.json b/internal/schemavalidators/external_schemas/runnercontext/runner-context-response-0.1.schema.json index a902433c8..c61c1441b 100644 --- a/internal/schemavalidators/external_schemas/runnercontext/runner-context-response-0.1.schema.json +++ b/internal/schemavalidators/external_schemas/runnercontext/runner-context-response-0.1.schema.json @@ -7,6 +7,13 @@ "id": { "type": "string", "description": "Unique identifier for the runner context schema version" + }, + "errors": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Array of error messages" } }, "additionalProperties": false, @@ -319,7 +326,6 @@ "additionalProperties": false, "type": "object", "required": [ - "owner", "repository" ] }, diff --git a/internal/schemavalidators/schemavalidators_test.go b/internal/schemavalidators/schemavalidators_test.go index 10361a77e..13b2ba2d2 100644 --- a/internal/schemavalidators/schemavalidators_test.go +++ b/internal/schemavalidators/schemavalidators_test.go @@ -194,6 +194,10 @@ func TestValidateRunnerContext(t *testing.T) { name: "0.1 GitHub rulesets", filePath: "./testdata/runner_context_rulesets-v0.1.json", }, + { + name: "0.1 GitLab no protection", + filePath: "./testdata/runner_context_gitlab_no_protection-v0.1.json", + }, { name: "invalid Chainloop runner context - missing meta", filePath: "./testdata/runner_context_missing-meta-v0.1.json", diff --git a/internal/schemavalidators/testdata/runner_context_gitlab_no_protection-v0.1.json b/internal/schemavalidators/testdata/runner_context_gitlab_no_protection-v0.1.json new file mode 100644 index 000000000..808459515 --- /dev/null +++ b/internal/schemavalidators/testdata/runner_context_gitlab_no_protection-v0.1.json @@ -0,0 +1,61 @@ +{ + "meta": { + "id": "chainloop.dev/runner-context/v0.1" + }, + "data": { + "tool": "platform@6df8c658", + "provider": "gitlab", + "repos": [ + { + "repository": "69340413", + "branches": [ + { + "name": "main", + "active_rules": [ + { + "name": "allow_force_push", + "enabled": "false" + }, + { + "name": "code_owner_approval_required", + "enabled": "false" + }, + { + "name": "push_access_levels", + "enabled": "true", + "context": [ + { + "name": "access_level", + "value": "40", + "enabled": "true" + }, + { + "name": "access_level_description", + "value": "Maintainers", + "enabled": "true" + } + ] + }, + { + "name": "merge_access_levels", + "enabled": "true", + "context": [ + { + "name": "access_level", + "value": "40", + "enabled": "true" + }, + { + "name": "access_level_description", + "value": "Maintainers", + "enabled": "true" + } + ] + } + ] + } + ] + } + ] + } +} \ No newline at end of file