@aifabrix/builder 2.52.1 → 2.53.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 (225) hide show
  1. package/lib/app/deploy-config.js +3 -2
  2. package/lib/channels/add-channel.js +11 -41
  3. package/lib/channels/approval-guides/index.js +3 -0
  4. package/lib/channels/approval-guides/microsoft-copilot.js +26 -17
  5. package/lib/channels/channel-add-existing.js +72 -0
  6. package/lib/channels/channel-runtime-resolver.js +5 -1
  7. package/lib/channels/channel-status-display.js +30 -3
  8. package/lib/channels/microsoft-copilot-entra-sso-form.js +73 -2
  9. package/lib/channels/microsoft-copilot-entra-sso.js +26 -5
  10. package/lib/channels/microsoft-copilot-limits.js +22 -3
  11. package/lib/channels/microsoft-copilot-package.js +59 -14
  12. package/lib/channels/microsoft-copilot-validate.js +40 -10
  13. package/lib/cli/attach-default-help-examples.js +102 -0
  14. package/lib/cli/index.js +2 -0
  15. package/lib/cli/setup-credential-deployment.js +7 -5
  16. package/lib/cli/setup-utility-validate.js +1 -0
  17. package/lib/commands/credential-push.js +37 -5
  18. package/lib/commands/package-score.js +72 -0
  19. package/lib/commands/role-assistant.js +46 -8
  20. package/lib/deployment/deployer-poll-run.js +2 -2
  21. package/lib/deployment/deployer.js +1 -1
  22. package/lib/deployment/environment.js +2 -2
  23. package/lib/external-system/deploy.js +11 -21
  24. package/lib/integration-definition/apply.js +12 -14
  25. package/lib/integration-definition/enrich-openapi-operations.js +9 -10
  26. package/lib/lab/package-parity-score.js +417 -0
  27. package/lib/programmatic/capability-registry.js +1 -0
  28. package/lib/programmatic/help-content/channel-onboarding.md +35 -0
  29. package/lib/programmatic/help-content/cip-overview.md +27 -0
  30. package/lib/programmatic/help-content/connected-system-ui.md +70 -0
  31. package/lib/programmatic/help-content/dimensions-guide.md +23 -0
  32. package/lib/programmatic/help-content/enterprise-sync-fabrix.md +123 -0
  33. package/lib/programmatic/help-content/overview.md +25 -0
  34. package/lib/programmatic/help-content/subscription-guide.md +27 -0
  35. package/lib/programmatic/help-content/workflow.md +50 -0
  36. package/lib/programmatic/openapi-component-schemas.js +1 -0
  37. package/lib/programmatic/openapi-descriptions.js +6 -0
  38. package/lib/programmatic/openapi-envelope-examples.js +11 -0
  39. package/lib/programmatic/openapi-operation-bindings.js +5 -0
  40. package/lib/programmatic/openapi-request-schemas.js +39 -13
  41. package/lib/programmatic/openapi-result-schemas.js +30 -0
  42. package/lib/programmatic/openapi-schema-descriptions-core.js +18 -0
  43. package/lib/programmatic/openapi-schema-descriptions-operations.js +19 -0
  44. package/lib/programmatic/persist-supplied-openapi.js +180 -0
  45. package/lib/programmatic/route-handler-map.js +6 -0
  46. package/lib/programmatic/run-integration-definition.js +13 -5
  47. package/lib/role-assistant/evidence-sync.js +55 -7
  48. package/lib/role-assistant/test-runner-attachments.js +118 -0
  49. package/lib/role-assistant/test-runner-bid-apply.js +100 -21
  50. package/lib/role-assistant/test-runner-bid-document.js +1 -1
  51. package/lib/role-assistant/test-runner-start-payload.js +96 -0
  52. package/lib/role-assistant/test-runner-workhub-answers.js +11 -7
  53. package/lib/role-assistant/test-runner-workhub-helpers.js +100 -0
  54. package/lib/role-assistant/test-runner-workhub-soft.js +86 -0
  55. package/lib/role-assistant/test-runner-workhub.js +68 -105
  56. package/lib/role-assistant/test-runner.js +5 -63
  57. package/lib/role-assistant/test-suite.js +33 -40
  58. package/lib/schema/external-datasource.schema.json +13 -4
  59. package/lib/utils/compose-generator.js +10 -1
  60. package/lib/utils/compose-traefik-extra-routes.js +107 -0
  61. package/lib/utils/docker-build.js +2 -2
  62. package/lib/utils/help-builder.js +2 -1
  63. package/lib/utils/promote-dev-docker-image.js +15 -10
  64. package/package.json +14 -16
  65. package/templates/README.md +12 -1
  66. package/templates/applications/dataplane/application.yaml +8 -1
  67. package/templates/applications/dataplane/env.template +1 -1
  68. package/templates/applications/miso-controller/application.yaml +2 -1
  69. package/templates/applications/miso-controller/rbac.yaml +1 -0
  70. package/templates/channels/microsoft-copilot/ai-plugin.template.json.hbs +6 -2
  71. package/templates/channels/microsoft-copilot/entra-sso-registration.template.md.hbs +8 -5
  72. package/templates/channels/microsoft-copilot/fi-fi.template.json.hbs +7 -0
  73. package/templates/channels/microsoft-copilot/install.template.md.hbs +74 -22
  74. package/templates/channels/microsoft-copilot/manifest.template.json.hbs +29 -14
  75. package/templates/channels/microsoft-copilot/oauth-plugin-vault-required.template.md.hbs +6 -2
  76. package/templates/python/docker-compose.hbs +36 -0
  77. package/templates/typescript/docker-compose.hbs +36 -0
  78. package/.cursor/plans/Archive/157.1-security-quality-violations-by-type.csv +0 -374
  79. package/.cursor/process/README.md +0 -9
  80. package/.cursor/rules/anchor-docs.mdc +0 -15
  81. package/.cursor/rules/assistant-driven-integration-build.mdc +0 -40
  82. package/.cursor/rules/cli-layout.mdc +0 -81
  83. package/.cursor/rules/cli-product-neutral.mdc +0 -43
  84. package/.cursor/rules/deploy-rules/docker-image-ip-policy.mdc +0 -49
  85. package/.cursor/rules/docs-rules.mdc +0 -32
  86. package/.cursor/rules/plan-rules/application-lifecycle.mdc +0 -30
  87. package/.cursor/rules/plan-rules/plan-frontmatter.mdc +0 -35
  88. package/.cursor/rules/plan-rules/plan-lifecycle.mdc +0 -31
  89. package/.cursor/rules/plan-rules/plan-validation-gate.mdc +0 -34
  90. package/.cursor/rules/project-rules.mdc +0 -913
  91. package/.cursor/skills/README.md +0 -15
  92. package/.dockerignore +0 -52
  93. package/.eslintignore +0 -22
  94. package/.markdownlint.json +0 -14
  95. package/anchor-docs/README.md +0 -10
  96. package/anchor-docs/_TEMPLATE +0 -24
  97. package/babel.config.js +0 -6
  98. package/bin/builder-api-cleanup.js +0 -26
  99. package/bin/builder-api-nest.js +0 -10
  100. package/bin/builder-api-spike.js +0 -19
  101. package/enterprise-knowledge/README.md +0 -50
  102. package/enterprise-knowledge/enterprise-integration-lifecycle/README.md +0 -22
  103. package/enterprise-knowledge/enterprise-integration-lifecycle/application.json +0 -15
  104. package/enterprise-knowledge/enterprise-integration-lifecycle/deploy.js +0 -69
  105. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-deploy.json +0 -52
  106. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-system.json +0 -29
  107. package/enterprise-knowledge/enterprise-integration-lifecycle/env.template +0 -2
  108. package/integration/README.md +0 -81
  109. package/integration/github/README.md +0 -53
  110. package/integration/github/application.json +0 -21
  111. package/integration/github/deploy.js +0 -72
  112. package/integration/github/env.template +0 -11
  113. package/integration/github/github-datasource-issue-comments.json +0 -239
  114. package/integration/github/github-datasource-issues.json +0 -399
  115. package/integration/github/github-datasource-repository.json +0 -354
  116. package/integration/github/github-deploy.json +0 -1202
  117. package/integration/github/github-system.json +0 -82
  118. package/integration/hubspot-test/README.md +0 -159
  119. package/integration/hubspot-test/application.json +0 -54
  120. package/integration/hubspot-test/companies.json +0 -2048
  121. package/integration/hubspot-test/create-hubspot.js +0 -523
  122. package/integration/hubspot-test/env.template +0 -4
  123. package/integration/hubspot-test/hubspot-test-datasource-company.json +0 -138
  124. package/integration/hubspot-test/hubspot-test-datasource-contact.json +0 -146
  125. package/integration/hubspot-test/hubspot-test-datasource-deal.json +0 -146
  126. package/integration/hubspot-test/hubspot-test-datasource-users.json +0 -76
  127. package/integration/hubspot-test/hubspot-test-deploy.json +0 -2160
  128. package/integration/hubspot-test/hubspot-test-system.json +0 -74
  129. package/integration/hubspot-test/rbac.json +0 -166
  130. package/integration/hubspot-test/test-artifacts/wizard-hubspot-credential-real.yaml +0 -20
  131. package/integration/hubspot-test/test-artifacts/wizard-hubspot-env-vars.yaml +0 -9
  132. package/integration/hubspot-test/test-artifacts/wizard-invalid-add-datasource.yaml +0 -5
  133. package/integration/hubspot-test/test-artifacts/wizard-invalid-app-name.yaml +0 -5
  134. package/integration/hubspot-test/test-artifacts/wizard-invalid-credential-create.yaml +0 -7
  135. package/integration/hubspot-test/test-artifacts/wizard-invalid-credential-select.yaml +0 -7
  136. package/integration/hubspot-test/test-artifacts/wizard-invalid-known-platform.yaml +0 -4
  137. package/integration/hubspot-test/test-artifacts/wizard-invalid-missing-app.yaml +0 -4
  138. package/integration/hubspot-test/test-artifacts/wizard-invalid-missing-source.yaml +0 -2
  139. package/integration/hubspot-test/test-artifacts/wizard-invalid-mode.yaml +0 -5
  140. package/integration/hubspot-test/test-artifacts/wizard-invalid-openapi-file.yaml +0 -5
  141. package/integration/hubspot-test/test-artifacts/wizard-invalid-openapi-url.yaml +0 -4
  142. package/integration/hubspot-test/test-artifacts/wizard-invalid-source.yaml +0 -4
  143. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-array-test.yaml +0 -5
  144. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-key-test.yaml +0 -5
  145. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-path-test.yaml +0 -5
  146. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-test.yaml +0 -5
  147. package/integration/hubspot-test/test-artifacts/wizard-valid-for-rbac-test.yaml +0 -5
  148. package/integration/hubspot-test/test-artifacts/wizard-valid-for-rbac-yaml-test.yaml +0 -5
  149. package/integration/hubspot-test/test-dataplane-down-helpers.js +0 -249
  150. package/integration/hubspot-test/test-dataplane-down-tests.js +0 -386
  151. package/integration/hubspot-test/test-dataplane-down.js +0 -209
  152. package/integration/hubspot-test/test.js +0 -1588
  153. package/integration/hubspot-test/wizard-hubspot-e2e.yaml +0 -16
  154. package/integration/hubspot-test/wizard-hubspot-platform.yaml +0 -8
  155. package/integration/hubspot-test/wizard-hubspot-test-headless.yaml +0 -23
  156. package/integration/roundtrip-test-local/README.md +0 -143
  157. package/integration/roundtrip-test-local/application.yaml +0 -13
  158. package/integration/roundtrip-test-local/env.template +0 -15
  159. package/integration/roundtrip-test-local/roundtrip-test-local-datasource-roundtrip-test-company.yaml +0 -14
  160. package/integration/roundtrip-test-local/roundtrip-test-local-deploy.json +0 -61
  161. package/integration/roundtrip-test-local/roundtrip-test-local-system.yaml +0 -25
  162. package/integration/roundtrip-test-local2/README.md +0 -143
  163. package/integration/roundtrip-test-local2/application.yaml +0 -13
  164. package/integration/roundtrip-test-local2/env.template +0 -15
  165. package/integration/roundtrip-test-local2/roundtrip-test-local2-datasource-company.yaml +0 -31
  166. package/integration/roundtrip-test-local2/roundtrip-test-local2-deploy.json +0 -86
  167. package/integration/roundtrip-test-local2/roundtrip-test-local2-system.yaml +0 -25
  168. package/integration/test/wizard.yaml +0 -8
  169. package/jest.config.coverage.js +0 -37
  170. package/jest.config.default.js +0 -11
  171. package/jest.config.integration.fixtures.js +0 -22
  172. package/jest.config.integration.js +0 -33
  173. package/jest.config.isolated.js +0 -11
  174. package/jest.config.manual.js +0 -30
  175. package/jest.global-live-fabrix-hooks.js +0 -36
  176. package/jest.isolated-projects.js +0 -283
  177. package/jest.projects.js +0 -79
  178. package/lib/integration-definition/openapi-enrichment/hubspot-crm-companies.json +0 -205
  179. package/packages/builder-api/README.md +0 -120
  180. package/packages/builder-api/package.json +0 -30
  181. package/packages/builder-api/src/app.module.ts +0 -7
  182. package/packages/builder-api/src/auth/auth.module.ts +0 -5
  183. package/packages/builder-api/src/external-system/external-system.module.ts +0 -5
  184. package/packages/builder-api/src/main.ts +0 -16
  185. package/packages/builder-api/tsconfig.json +0 -15
  186. package/scripts/check-builder-api-architecture-grep.js +0 -79
  187. package/scripts/check-datasource-test-run-schema-sync.js +0 -34
  188. package/scripts/ci-fix.sh +0 -19
  189. package/scripts/ci-simulate.sh +0 -19
  190. package/scripts/diagnose-cli.js +0 -150
  191. package/scripts/docker_image_content_gate.js +0 -47
  192. package/scripts/docker_image_content_gate.sh +0 -5
  193. package/scripts/export-builder-api-evidence.js +0 -262
  194. package/scripts/install-local.js +0 -490
  195. package/scripts/lib/builder-api-docker-staging-copy.js +0 -60
  196. package/scripts/lib/builder-api-docker-staging-core.js +0 -183
  197. package/scripts/lib/docker-image-content-gate-core.js +0 -166
  198. package/scripts/lib/plan-actor.js +0 -109
  199. package/scripts/lib/plan-config.js +0 -20
  200. package/scripts/lib/plan-gates.js +0 -154
  201. package/scripts/lib/plan-meta.js +0 -104
  202. package/scripts/lib/plan-parse.js +0 -162
  203. package/scripts/lib/plan-prevalidate-gates.js +0 -337
  204. package/scripts/lib/plan-run-core.js +0 -125
  205. package/scripts/lib/plan-run-report.js +0 -119
  206. package/scripts/plan-approve.js +0 -24
  207. package/scripts/plan-archive.js +0 -49
  208. package/scripts/plan-run.js +0 -13
  209. package/scripts/plan-set-actor.js +0 -21
  210. package/scripts/plan-validate.js +0 -80
  211. package/scripts/pnpm/af.mjs +0 -125
  212. package/scripts/pnpm/check-quiet.mjs +0 -32
  213. package/scripts/pnpm/dev-install.mjs +0 -29
  214. package/scripts/pnpm/dev-reload.mjs +0 -18
  215. package/scripts/pnpm/help.mjs +0 -55
  216. package/scripts/pnpm/lib/dev-reload-core.mjs +0 -189
  217. package/scripts/pnpm/lib/dev-reload-log-capture.mjs +0 -67
  218. package/scripts/pnpm/lib/dev-reload-log-utils.mjs +0 -32
  219. package/scripts/pnpm/lib/resolve-aifabrix-bin.mjs +0 -124
  220. package/scripts/pnpm/lib/resolve-app-url.mjs +0 -183
  221. package/scripts/pnpm/lib/spinner.mjs +0 -42
  222. package/scripts/pnpm-global-remove.js +0 -48
  223. package/scripts/stage_builder_api_for_docker.js +0 -65
  224. package/scripts/sync-builder-api-template.js +0 -44
  225. package/scripts/test-dataplane-bootstrap.js +0 -331
@@ -1,72 +0,0 @@
1
- #!/usr/bin/env node
2
- /* eslint-disable no-console */
3
- /**
4
- * Deploy github external system and datasources using aifabrix CLI.
5
- * Run: node deploy.js
6
- * Flow: check auth → login if needed → deploy → run integration tests.
7
- */
8
-
9
- const { execSync } = require('child_process');
10
- const path = require('path');
11
-
12
- const scriptDir = __dirname;
13
- // Project root (repo containing integration/ and builder/) so deploy/test-integration resolve app paths correctly
14
- const projectRoot = path.join(scriptDir, '..', '..');
15
- const appKey = 'github';
16
- const env = process.env.ENVIRONMENT || 'dev';
17
- // Controller URL: from config (aifabrix auth config) or set CONTROLLER env before running
18
-
19
- /**
20
- * Run a shell command with optional options.
21
- * @param {string} cmd - Command to run
22
- * @param {Object} [options={}] - Options (cwd, stdio, ignoreExit)
23
- * @returns {boolean} True if command succeeded
24
- */
25
- function run(cmd, options = {}) {
26
- const opts = { cwd: scriptDir, stdio: 'inherit', ...options };
27
- try {
28
- execSync(cmd, opts);
29
- return true;
30
- } catch (err) {
31
- if (options.ignoreExit) return false;
32
- process.exit(err.status ?? 1);
33
- }
34
- }
35
-
36
- /**
37
- * Check if aifabrix auth is logged in.
38
- * @returns {boolean} True if logged in
39
- */
40
- function isLoggedIn() {
41
- try {
42
- execSync('aifabrix auth status', { cwd: scriptDir, stdio: 'pipe' });
43
- return true;
44
- } catch {
45
- return false;
46
- }
47
- }
48
-
49
- console.log('🔍 Checking authentication...');
50
- if (!isLoggedIn()) {
51
- console.log('⚠ Not logged in. Run login (e.g. aifabrix login --controller <url> --method device --environment ' + env + ').');
52
- run('aifabrix login --environment ' + env);
53
- }
54
-
55
- console.log('🔍 Validating configuration...');
56
- run('aifabrix validate "' + path.join(scriptDir, 'github-system.json') + '"');
57
- run('aifabrix validate "' + path.join(scriptDir, 'github-datasource-issues.json') + '"');
58
- run('aifabrix validate "' + path.join(scriptDir, 'github-datasource-issue-comments.json') + '"');
59
- run('aifabrix validate "' + path.join(scriptDir, 'github-datasource-repository.json') + '"');
60
- console.log('✔ Validation passed');
61
-
62
- console.log('🚀 Deploying ' + appKey + '...');
63
- run('aifabrix deploy ' + appKey, { cwd: projectRoot });
64
- console.log('✔ Deployment complete');
65
-
66
- if (process.env.RUN_TESTS !== 'false') {
67
- console.log('🧪 Running integration tests...');
68
- run('aifabrix test-integration ' + appKey, { cwd: projectRoot });
69
- console.log('✔ Tests passed');
70
- }
71
-
72
- console.log('✔ Done.');
@@ -1,11 +0,0 @@
1
- # GitHub test E2E – copy values into deploy / system configuration.
2
- # Authentication is delegated via Miso API Provider `github` (GitHub App + expiring user tokens).
3
- # Do not store OAuth client secrets here; configure the provider in Miso Controller.
4
-
5
- # Repository owner (organization or user login)
6
- GITHUB_OWNER=your-github-owner
7
-
8
- # Repository name (without owner prefix)
9
- GITHUB_REPO=your-repo-name
10
-
11
- BASE_URL=https://api.github.com
@@ -1,239 +0,0 @@
1
- {
2
- "key": "github-issue-comments",
3
- "displayName": "GitHub Issue Comments",
4
- "description": "Comments on repository issues via GitHub REST API: list and create.",
5
- "enabled": true,
6
- "systemKey": "github",
7
- "resourceType": "message",
8
- "entityType": "recordStorage",
9
- "version": "1.0.0",
10
- "businessOrder": 2,
11
- "metadataSchema": {
12
- "type": "object",
13
- "properties": {
14
- "externalId": {
15
- "type": "string",
16
- "index": true,
17
- "description": "Stable external record identifier (comment id as string)"
18
- },
19
- "id": {
20
- "type": "integer",
21
- "index": true,
22
- "description": "GitHub comment id"
23
- },
24
- "issueNumber": {
25
- "type": "integer",
26
- "index": true,
27
- "description": "Parent issue number"
28
- },
29
- "body": {
30
- "type": "string",
31
- "description": "Comment body (markdown)"
32
- },
33
- "htmlUrl": {
34
- "type": "string",
35
- "format": "uri",
36
- "description": "Web URL for the comment"
37
- },
38
- "createdAt": {
39
- "type": "string",
40
- "format": "date-time",
41
- "description": "Comment creation timestamp"
42
- },
43
- "updatedAt": {
44
- "type": "string",
45
- "format": "date-time",
46
- "description": "Comment last update timestamp"
47
- }
48
- },
49
- "required": [
50
- "id"
51
- ]
52
- },
53
- "fieldMappings": {
54
- "attributes": {
55
- "externalId": {
56
- "expression": "{{raw.id}}"
57
- },
58
- "id": {
59
- "expression": "{{raw.id}}"
60
- },
61
- "body": {
62
- "expression": "{{raw.body}}"
63
- },
64
- "htmlUrl": {
65
- "expression": "{{raw.html_url}}"
66
- },
67
- "createdAt": {
68
- "expression": "{{raw.created_at}}"
69
- },
70
- "updatedAt": {
71
- "expression": "{{raw.updated_at}}"
72
- }
73
- }
74
- },
75
- "primaryKey": [
76
- "id"
77
- ],
78
- "labelKey": [
79
- "id"
80
- ],
81
- "exposed": {
82
- "readonly": [
83
- "id",
84
- "htmlUrl",
85
- "createdAt",
86
- "updatedAt"
87
- ],
88
- "schema": {
89
- "externalId": "metadata.externalId",
90
- "id": "metadata.id",
91
- "body": "metadata.body",
92
- "htmlUrl": "metadata.htmlUrl",
93
- "createdAt": "metadata.createdAt",
94
- "updatedAt": "metadata.updatedAt"
95
- },
96
- "profiles": {
97
- "default": [
98
- "id",
99
- "body",
100
- "htmlUrl",
101
- "createdAt",
102
- "updatedAt"
103
- ],
104
- "create": [
105
- "body"
106
- ]
107
- }
108
- },
109
- "openapi": {
110
- "enabled": true,
111
- "autoRbac": false,
112
- "operations": {
113
- "list": {
114
- "operationId": "list-repos-owner-repo-issues-issue-number-comments",
115
- "method": "GET",
116
- "path": "/repos/{GITHUB_OWNER}/{GITHUB_REPO}/issues/{issueNumber}/comments",
117
- "permissions": ["external-system:read"]
118
- }
119
- },
120
- "documentKey": "github-issue-comments"
121
- },
122
- "quality": {
123
- "rejectIf": [
124
- {
125
- "field": "id",
126
- "operator": "empty",
127
- "message": "Comment id cannot be empty"
128
- },
129
- {
130
- "field": "body",
131
- "operator": "empty",
132
- "message": "Comment body cannot be empty"
133
- }
134
- ]
135
- },
136
- "testPayload": {
137
- "payloadTemplate": {
138
- "id": 900001,
139
- "body": "E2E test comment from AI Fabrix.",
140
- "html_url": "https://github.com/octocat/Hello-World/issues/42#issuecomment-900001",
141
- "created_at": "2025-01-15T11:00:00Z",
142
- "updated_at": "2025-01-15T11:00:00Z"
143
- },
144
- "expectedResult": {
145
- "id": 900001,
146
- "issueNumber": 42,
147
- "body": "E2E test comment from AI Fabrix.",
148
- "htmlUrl": "https://github.com/octocat/Hello-World/issues/42#issuecomment-900001"
149
- }
150
- },
151
- "execution": {
152
- "engine": "cip",
153
- "cip": {
154
- "version": "1.0",
155
- "inputType": "void",
156
- "outputType": "records",
157
- "operations": {
158
- "list": {
159
- "enabled": true,
160
- "description": "List comments on an issue (requires parameters.issueNumber)",
161
- "steps": [
162
- {
163
- "fetch": {
164
- "source": "openapi",
165
- "openapiRef": "list",
166
- "query": {
167
- "per_page": "100"
168
- }
169
- }
170
- },
171
- {
172
- "map": {
173
- "useFieldMappings": true,
174
- "inputPath": "$",
175
- "inline": {
176
- "issueNumber": "{{parameters.issueNumber}}"
177
- }
178
- }
179
- },
180
- {
181
- "output": {
182
- "mode": "records"
183
- }
184
- }
185
- ]
186
- },
187
- "create": {
188
- "enabled": true,
189
- "description": "Create a comment on an issue",
190
- "steps": [
191
- {
192
- "fetch": {
193
- "source": "http",
194
- "method": "POST",
195
- "path": "/repos/{{GITHUB_OWNER}}/{{GITHUB_REPO}}/issues/{{parameters.issueNumber}}/comments",
196
- "headers": {
197
- "Accept": "application/vnd.github+json",
198
- "X-GitHub-Api-Version": "2022-11-28",
199
- "Content-Type": "application/json"
200
- },
201
- "bodyTemplate": {
202
- "body": "{{parameters.body}}"
203
- }
204
- }
205
- },
206
- {
207
- "map": {
208
- "useFieldMappings": true,
209
- "inputPath": "$",
210
- "inline": {
211
- "issueNumber": "{{parameters.issueNumber}}"
212
- }
213
- }
214
- },
215
- {
216
- "output": {
217
- "mode": "records"
218
- }
219
- }
220
- ]
221
- }
222
- }
223
- }
224
- },
225
- "capabilities": [
226
- {
227
- "key": "list",
228
- "description": "List comments on an issue",
229
- "riskLevel": "low",
230
- "approvalRequired": false
231
- },
232
- {
233
- "key": "create",
234
- "description": "Create a comment on an issue",
235
- "riskLevel": "medium",
236
- "approvalRequired": false
237
- }
238
- ]
239
- }