@aifabrix/builder 2.52.1 → 2.53.0

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 (224) 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/utils/compose-generator.js +10 -1
  59. package/lib/utils/compose-traefik-extra-routes.js +107 -0
  60. package/lib/utils/docker-build.js +2 -2
  61. package/lib/utils/help-builder.js +2 -1
  62. package/lib/utils/promote-dev-docker-image.js +15 -10
  63. package/package.json +14 -16
  64. package/templates/README.md +12 -1
  65. package/templates/applications/dataplane/application.yaml +8 -1
  66. package/templates/applications/dataplane/env.template +1 -1
  67. package/templates/applications/miso-controller/application.yaml +2 -1
  68. package/templates/applications/miso-controller/rbac.yaml +1 -0
  69. package/templates/channels/microsoft-copilot/ai-plugin.template.json.hbs +6 -2
  70. package/templates/channels/microsoft-copilot/entra-sso-registration.template.md.hbs +8 -5
  71. package/templates/channels/microsoft-copilot/fi-fi.template.json.hbs +7 -0
  72. package/templates/channels/microsoft-copilot/install.template.md.hbs +74 -22
  73. package/templates/channels/microsoft-copilot/manifest.template.json.hbs +29 -14
  74. package/templates/channels/microsoft-copilot/oauth-plugin-vault-required.template.md.hbs +6 -2
  75. package/templates/python/docker-compose.hbs +36 -0
  76. package/templates/typescript/docker-compose.hbs +36 -0
  77. package/.cursor/plans/Archive/157.1-security-quality-violations-by-type.csv +0 -374
  78. package/.cursor/process/README.md +0 -9
  79. package/.cursor/rules/anchor-docs.mdc +0 -15
  80. package/.cursor/rules/assistant-driven-integration-build.mdc +0 -40
  81. package/.cursor/rules/cli-layout.mdc +0 -81
  82. package/.cursor/rules/cli-product-neutral.mdc +0 -43
  83. package/.cursor/rules/deploy-rules/docker-image-ip-policy.mdc +0 -49
  84. package/.cursor/rules/docs-rules.mdc +0 -32
  85. package/.cursor/rules/plan-rules/application-lifecycle.mdc +0 -30
  86. package/.cursor/rules/plan-rules/plan-frontmatter.mdc +0 -35
  87. package/.cursor/rules/plan-rules/plan-lifecycle.mdc +0 -31
  88. package/.cursor/rules/plan-rules/plan-validation-gate.mdc +0 -34
  89. package/.cursor/rules/project-rules.mdc +0 -913
  90. package/.cursor/skills/README.md +0 -15
  91. package/.dockerignore +0 -52
  92. package/.eslintignore +0 -22
  93. package/.markdownlint.json +0 -14
  94. package/anchor-docs/README.md +0 -10
  95. package/anchor-docs/_TEMPLATE +0 -24
  96. package/babel.config.js +0 -6
  97. package/bin/builder-api-cleanup.js +0 -26
  98. package/bin/builder-api-nest.js +0 -10
  99. package/bin/builder-api-spike.js +0 -19
  100. package/enterprise-knowledge/README.md +0 -50
  101. package/enterprise-knowledge/enterprise-integration-lifecycle/README.md +0 -22
  102. package/enterprise-knowledge/enterprise-integration-lifecycle/application.json +0 -15
  103. package/enterprise-knowledge/enterprise-integration-lifecycle/deploy.js +0 -69
  104. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-deploy.json +0 -52
  105. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-system.json +0 -29
  106. package/enterprise-knowledge/enterprise-integration-lifecycle/env.template +0 -2
  107. package/integration/README.md +0 -81
  108. package/integration/github/README.md +0 -53
  109. package/integration/github/application.json +0 -21
  110. package/integration/github/deploy.js +0 -72
  111. package/integration/github/env.template +0 -11
  112. package/integration/github/github-datasource-issue-comments.json +0 -239
  113. package/integration/github/github-datasource-issues.json +0 -399
  114. package/integration/github/github-datasource-repository.json +0 -354
  115. package/integration/github/github-deploy.json +0 -1202
  116. package/integration/github/github-system.json +0 -82
  117. package/integration/hubspot-test/README.md +0 -159
  118. package/integration/hubspot-test/application.json +0 -54
  119. package/integration/hubspot-test/companies.json +0 -2048
  120. package/integration/hubspot-test/create-hubspot.js +0 -523
  121. package/integration/hubspot-test/env.template +0 -4
  122. package/integration/hubspot-test/hubspot-test-datasource-company.json +0 -138
  123. package/integration/hubspot-test/hubspot-test-datasource-contact.json +0 -146
  124. package/integration/hubspot-test/hubspot-test-datasource-deal.json +0 -146
  125. package/integration/hubspot-test/hubspot-test-datasource-users.json +0 -76
  126. package/integration/hubspot-test/hubspot-test-deploy.json +0 -2160
  127. package/integration/hubspot-test/hubspot-test-system.json +0 -74
  128. package/integration/hubspot-test/rbac.json +0 -166
  129. package/integration/hubspot-test/test-artifacts/wizard-hubspot-credential-real.yaml +0 -20
  130. package/integration/hubspot-test/test-artifacts/wizard-hubspot-env-vars.yaml +0 -9
  131. package/integration/hubspot-test/test-artifacts/wizard-invalid-add-datasource.yaml +0 -5
  132. package/integration/hubspot-test/test-artifacts/wizard-invalid-app-name.yaml +0 -5
  133. package/integration/hubspot-test/test-artifacts/wizard-invalid-credential-create.yaml +0 -7
  134. package/integration/hubspot-test/test-artifacts/wizard-invalid-credential-select.yaml +0 -7
  135. package/integration/hubspot-test/test-artifacts/wizard-invalid-known-platform.yaml +0 -4
  136. package/integration/hubspot-test/test-artifacts/wizard-invalid-missing-app.yaml +0 -4
  137. package/integration/hubspot-test/test-artifacts/wizard-invalid-missing-source.yaml +0 -2
  138. package/integration/hubspot-test/test-artifacts/wizard-invalid-mode.yaml +0 -5
  139. package/integration/hubspot-test/test-artifacts/wizard-invalid-openapi-file.yaml +0 -5
  140. package/integration/hubspot-test/test-artifacts/wizard-invalid-openapi-url.yaml +0 -4
  141. package/integration/hubspot-test/test-artifacts/wizard-invalid-source.yaml +0 -4
  142. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-array-test.yaml +0 -5
  143. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-key-test.yaml +0 -5
  144. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-path-test.yaml +0 -5
  145. package/integration/hubspot-test/test-artifacts/wizard-valid-for-dimension-test.yaml +0 -5
  146. package/integration/hubspot-test/test-artifacts/wizard-valid-for-rbac-test.yaml +0 -5
  147. package/integration/hubspot-test/test-artifacts/wizard-valid-for-rbac-yaml-test.yaml +0 -5
  148. package/integration/hubspot-test/test-dataplane-down-helpers.js +0 -249
  149. package/integration/hubspot-test/test-dataplane-down-tests.js +0 -386
  150. package/integration/hubspot-test/test-dataplane-down.js +0 -209
  151. package/integration/hubspot-test/test.js +0 -1588
  152. package/integration/hubspot-test/wizard-hubspot-e2e.yaml +0 -16
  153. package/integration/hubspot-test/wizard-hubspot-platform.yaml +0 -8
  154. package/integration/hubspot-test/wizard-hubspot-test-headless.yaml +0 -23
  155. package/integration/roundtrip-test-local/README.md +0 -143
  156. package/integration/roundtrip-test-local/application.yaml +0 -13
  157. package/integration/roundtrip-test-local/env.template +0 -15
  158. package/integration/roundtrip-test-local/roundtrip-test-local-datasource-roundtrip-test-company.yaml +0 -14
  159. package/integration/roundtrip-test-local/roundtrip-test-local-deploy.json +0 -61
  160. package/integration/roundtrip-test-local/roundtrip-test-local-system.yaml +0 -25
  161. package/integration/roundtrip-test-local2/README.md +0 -143
  162. package/integration/roundtrip-test-local2/application.yaml +0 -13
  163. package/integration/roundtrip-test-local2/env.template +0 -15
  164. package/integration/roundtrip-test-local2/roundtrip-test-local2-datasource-company.yaml +0 -31
  165. package/integration/roundtrip-test-local2/roundtrip-test-local2-deploy.json +0 -86
  166. package/integration/roundtrip-test-local2/roundtrip-test-local2-system.yaml +0 -25
  167. package/integration/test/wizard.yaml +0 -8
  168. package/jest.config.coverage.js +0 -37
  169. package/jest.config.default.js +0 -11
  170. package/jest.config.integration.fixtures.js +0 -22
  171. package/jest.config.integration.js +0 -33
  172. package/jest.config.isolated.js +0 -11
  173. package/jest.config.manual.js +0 -30
  174. package/jest.global-live-fabrix-hooks.js +0 -36
  175. package/jest.isolated-projects.js +0 -283
  176. package/jest.projects.js +0 -79
  177. package/lib/integration-definition/openapi-enrichment/hubspot-crm-companies.json +0 -205
  178. package/packages/builder-api/README.md +0 -120
  179. package/packages/builder-api/package.json +0 -30
  180. package/packages/builder-api/src/app.module.ts +0 -7
  181. package/packages/builder-api/src/auth/auth.module.ts +0 -5
  182. package/packages/builder-api/src/external-system/external-system.module.ts +0 -5
  183. package/packages/builder-api/src/main.ts +0 -16
  184. package/packages/builder-api/tsconfig.json +0 -15
  185. package/scripts/check-builder-api-architecture-grep.js +0 -79
  186. package/scripts/check-datasource-test-run-schema-sync.js +0 -34
  187. package/scripts/ci-fix.sh +0 -19
  188. package/scripts/ci-simulate.sh +0 -19
  189. package/scripts/diagnose-cli.js +0 -150
  190. package/scripts/docker_image_content_gate.js +0 -47
  191. package/scripts/docker_image_content_gate.sh +0 -5
  192. package/scripts/export-builder-api-evidence.js +0 -262
  193. package/scripts/install-local.js +0 -490
  194. package/scripts/lib/builder-api-docker-staging-copy.js +0 -60
  195. package/scripts/lib/builder-api-docker-staging-core.js +0 -183
  196. package/scripts/lib/docker-image-content-gate-core.js +0 -166
  197. package/scripts/lib/plan-actor.js +0 -109
  198. package/scripts/lib/plan-config.js +0 -20
  199. package/scripts/lib/plan-gates.js +0 -154
  200. package/scripts/lib/plan-meta.js +0 -104
  201. package/scripts/lib/plan-parse.js +0 -162
  202. package/scripts/lib/plan-prevalidate-gates.js +0 -337
  203. package/scripts/lib/plan-run-core.js +0 -125
  204. package/scripts/lib/plan-run-report.js +0 -119
  205. package/scripts/plan-approve.js +0 -24
  206. package/scripts/plan-archive.js +0 -49
  207. package/scripts/plan-run.js +0 -13
  208. package/scripts/plan-set-actor.js +0 -21
  209. package/scripts/plan-validate.js +0 -80
  210. package/scripts/pnpm/af.mjs +0 -125
  211. package/scripts/pnpm/check-quiet.mjs +0 -32
  212. package/scripts/pnpm/dev-install.mjs +0 -29
  213. package/scripts/pnpm/dev-reload.mjs +0 -18
  214. package/scripts/pnpm/help.mjs +0 -55
  215. package/scripts/pnpm/lib/dev-reload-core.mjs +0 -189
  216. package/scripts/pnpm/lib/dev-reload-log-capture.mjs +0 -67
  217. package/scripts/pnpm/lib/dev-reload-log-utils.mjs +0 -32
  218. package/scripts/pnpm/lib/resolve-aifabrix-bin.mjs +0 -124
  219. package/scripts/pnpm/lib/resolve-app-url.mjs +0 -183
  220. package/scripts/pnpm/lib/spinner.mjs +0 -42
  221. package/scripts/pnpm-global-remove.js +0 -48
  222. package/scripts/stage_builder_api_for_docker.js +0 -65
  223. package/scripts/sync-builder-api-template.js +0 -44
  224. 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
- }