From 31b3fcc1667fab264cc37a25636d5d6e29d85495 Mon Sep 17 00:00:00 2001 From: Wolfgang Amann <8766375+wollefitz@users.noreply.github.com> Date: Thu, 21 Mar 2024 19:17:26 +0100 Subject: [PATCH] feat(github): get repository content (#2186) * feat(github): get repository content * chore(github): change type of prBody to Text --- .../element-templates/github-connector.json | 111 ++++++++++++++++-- 1 file changed, 104 insertions(+), 7 deletions(-) diff --git a/connectors/github/element-templates/github-connector.json b/connectors/github/element-templates/github-connector.json index a05dbbddc8..6a6318b5c4 100644 --- a/connectors/github/element-templates/github-connector.json +++ b/connectors/github/element-templates/github-connector.json @@ -2,7 +2,7 @@ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json", "name": "GitHub Outbound Connector", "id": "io.camunda.connectors.GitHub.v1", - "version": 6, + "version": 7, "description": "Manage issues, branches, releases, and more", "icon": { "contents": "data:image/svg+xml;utf8,%3Csvg width='98' height='96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z' fill='%2324292f'/%3E%3C/svg%3E" @@ -245,6 +245,10 @@ { "name": "Create an organization invitation", "value": "orgInvitation" + }, + { + "name": "Get repository content", + "value": "getRepoContent" } ], "condition": { @@ -488,7 +492,8 @@ "searchIssues", "getIssue", "listCommits", - "listCollaborators" + "listCollaborators", + "getRepoContent" ] } }, @@ -529,7 +534,8 @@ "createWorkflowDispatchEvent", "createReference", "createPullRequest", - "listCollaborators" + "listCollaborators", + "getRepoContent" ] } }, @@ -570,7 +576,8 @@ "createWorkflowDispatchEvent", "createReference", "createPullRequest", - "listCollaborators" + "listCollaborators", + "getRepoContent" ] } }, @@ -1372,8 +1379,10 @@ }, "constraints": { "notEmpty": true, - "minLength": 40, - "maxLength": 40 + "pattern": { + "value": "^(=.+|.{40})", + "message": "must consist of 40 characters." + } }, "condition": { "property": "operationType", @@ -1449,7 +1458,7 @@ "label": "Body", "description": "The contents of the pull request", "group": "input", - "type": "String", + "type": "Text", "feel": "optional", "value": "", "binding": { @@ -1534,6 +1543,46 @@ ] } }, + { + "label": "Path", + "description": "The path of the content within the repository", + "group": "input", + "type": "String", + "feel": "optional", + "value": "", + "binding": { + "type": "zeebe:input", + "name": "contentPath" + }, + "constraints": { + "notEmpty": true + }, + "condition": { + "property": "operationType", + "oneOf": [ + "getRepoContent" + ] + } + }, + { + "label": "Ref", + "description": "The name of the commit/branch/tag. Default: the repository's main branch", + "group": "input", + "type": "String", + "feel": "optional", + "value": "", + "binding": { + "type": "zeebe:input", + "name": "ref" + }, + "optional": true, + "condition": { + "property": "operationType", + "oneOf": [ + "getRepoContent" + ] + } + }, { "group": "configuration", "type": "Hidden", @@ -1722,6 +1771,21 @@ ] } }, + { + "group": "input", + "type": "Hidden", + "value": "={\"ref\": if ref = null then null else ref}", + "binding": { + "type": "zeebe:input", + "name": "queryParameters" + }, + "condition": { + "property": "operationType", + "oneOf": [ + "getRepoContent" + ] + } + }, { "label": "Result variable", "description": "Name of variable to store the response in. Details in the documentation", @@ -2074,6 +2138,25 @@ ] } }, + { + "label": "Result expression", + "id": "resultExpressionGetContent", + "description": "Expression to map the response into process variables. Details in the documentation", + "group": "output", + "type": "String", + "feel": "required", + "value": "={repositoryContent: response.body}", + "binding": { + "type": "zeebe:taskHeader", + "key": "resultExpression" + }, + "condition": { + "property": "operationType", + "oneOf": [ + "getRepoContent" + ] + } + }, { "label": "Connection timeout", "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout", @@ -2402,6 +2485,20 @@ ] } }, + { + "type": "Hidden", + "value": "=baseUrl + \"/repos/\" + owner + \"/\" + repo + \"/contents/\" + contentPath", + "binding": { + "type": "zeebe:input", + "name": "url" + }, + "condition": { + "property": "operationType", + "oneOf": [ + "getRepoContent" + ] + } + }, { "label": "Error expression", "description": "Expression to handle errors. Details in the documentation",