docstar-cli 1.2.1 → 1.4.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 (125) hide show
  1. package/README.md +7 -7
  2. package/dist/commands/api-test/whatsapp/send-message.js +35 -0
  3. package/dist/commands/config/get.d.ts +10 -0
  4. package/dist/commands/config/get.js +43 -0
  5. package/dist/commands/config/set.d.ts +11 -0
  6. package/dist/commands/config/set.js +33 -0
  7. package/dist/commands/dump-test/parent-page/collection.js +33 -0
  8. package/dist/commands/github/apps/add-repo-to-installation-for-authenticated-user.js +31 -0
  9. package/dist/commands/github/apps/check-authorization.js +31 -0
  10. package/dist/commands/github/apps/check-token.js +30 -0
  11. package/dist/commands/github/apps/create-content-attachment.js +30 -0
  12. package/dist/commands/github/apps/create-from-manifest.js +30 -0
  13. package/dist/commands/github/apps/create-installation-access-token.js +30 -0
  14. package/dist/commands/github/apps/delete-authorization.js +30 -0
  15. package/dist/commands/github/apps/delete-installation.js +30 -0
  16. package/dist/commands/github/apps/delete-token.js +30 -0
  17. package/dist/commands/github/apps/get-authenticated.js +30 -0
  18. package/dist/commands/github/apps/get-by-slug.js +30 -0
  19. package/dist/commands/github/apps/get-installation.js +30 -0
  20. package/dist/commands/github/apps/get-org-installation.js +30 -0
  21. package/dist/commands/github/apps/get-repo-installation.js +31 -0
  22. package/dist/commands/github/apps/get-subscription-plan-for-account-stubbed.js +30 -0
  23. package/dist/commands/github/apps/get-subscription-plan-for-account.js +30 -0
  24. package/dist/commands/github/apps/get-user-installation.js +30 -0
  25. package/dist/commands/github/apps/get-webhook-config-for-app.js +30 -0
  26. package/dist/commands/github/apps/get-webhook-delivery.js +30 -0
  27. package/dist/commands/github/apps/list-accounts-for-plan-stubbed.js +34 -0
  28. package/dist/commands/github/apps/list-accounts-for-plan.js +34 -0
  29. package/dist/commands/github/apps/list-installation-repos-for-authenticated-user.js +32 -0
  30. package/dist/commands/github/apps/list-installations-for-authenticated-user.js +31 -0
  31. package/dist/commands/github/apps/list-installations.js +33 -0
  32. package/dist/commands/github/apps/list-plans-stubbed.js +31 -0
  33. package/dist/commands/github/apps/list-plans.js +31 -0
  34. package/dist/commands/github/apps/list-repos-accessible-to-installation.js +31 -0
  35. package/dist/commands/github/apps/list-subscriptions-for-authenticated-user-stubbed.js +31 -0
  36. package/dist/commands/github/apps/list-subscriptions-for-authenticated-user.js +31 -0
  37. package/dist/commands/github/apps/list-webhook-deliveries.js +32 -0
  38. package/dist/commands/github/apps/redeliver-webhook-delivery.js +30 -0
  39. package/dist/commands/github/apps/remove-repo-from-installation-for-authenticated-user.js +31 -0
  40. package/dist/commands/github/apps/reset-authorization.js +31 -0
  41. package/dist/commands/github/apps/reset-token.js +30 -0
  42. package/dist/commands/github/apps/revoke-authorization-for-application.js +31 -0
  43. package/dist/commands/github/apps/revoke-grant-for-application.js +31 -0
  44. package/dist/commands/github/apps/revoke-installation-access-token.js +30 -0
  45. package/dist/commands/github/apps/scope-token.js +30 -0
  46. package/dist/commands/github/apps/suspend-installation.js +30 -0
  47. package/dist/commands/github/apps/unsuspend-installation.js +30 -0
  48. package/dist/commands/github/apps/update-webhook-config-for-app.js +30 -0
  49. package/dist/commands/github/meta/get-all-versions.js +30 -0
  50. package/dist/commands/github/meta/get-octocat.js +30 -0
  51. package/dist/commands/github/meta/get-zen.js +30 -0
  52. package/dist/commands/github/meta/get.js +30 -0
  53. package/dist/commands/github/meta/root.js +30 -0
  54. package/dist/commands/github/oauth-authorizations/create-authorization.js +30 -0
  55. package/dist/commands/github/oauth-authorizations/delete-authorization.js +30 -0
  56. package/dist/commands/github/oauth-authorizations/delete-grant.js +30 -0
  57. package/dist/commands/github/oauth-authorizations/get-authorization.js +30 -0
  58. package/dist/commands/github/oauth-authorizations/get-grant.js +30 -0
  59. package/dist/commands/github/oauth-authorizations/get-or-create-authorization-for-app-and-fingerprint.js +31 -0
  60. package/dist/commands/github/oauth-authorizations/get-or-create-authorization-for-app.js +30 -0
  61. package/dist/commands/github/oauth-authorizations/list-authorizations.js +32 -0
  62. package/dist/commands/github/oauth-authorizations/list-grants.js +32 -0
  63. package/dist/commands/github/oauth-authorizations/update-authorization.js +30 -0
  64. package/dist/commands/msg91/hello/assign-ticket.js +40 -0
  65. package/dist/commands/msg91/hello/bot-analytics.js +33 -0
  66. package/dist/commands/msg91/hello/close-all-ticket-by-filter-id.js +35 -0
  67. package/dist/commands/msg91/hello/close-all-ticket.js +37 -0
  68. package/dist/commands/msg91/hello/create-draft-email.js +35 -0
  69. package/dist/commands/msg91/hello/create-update.js +35 -0
  70. package/dist/commands/msg91/hello/delete-draft-email.js +33 -0
  71. package/dist/commands/msg91/hello/delete-draft.js +33 -0
  72. package/dist/commands/msg91/hello/email-inbox-list-1.js +36 -0
  73. package/dist/commands/msg91/hello/get-agent-team-bot.js +38 -0
  74. package/dist/commands/msg91/hello/get-draft.js +34 -0
  75. package/dist/commands/msg91/hello/get-save-filter-list-by-filter-id.js +31 -0
  76. package/dist/commands/msg91/hello/get-tickets.js +37 -0
  77. package/dist/commands/msg91/hello/hello-mail-send-api.js +38 -0
  78. package/dist/commands/msg91/hello/hello-mail-send.js +37 -0
  79. package/dist/commands/msg91/hello/mail-ticket-list.js +34 -0
  80. package/dist/commands/msg91/hello/open-ticket.js +32 -0
  81. package/dist/commands/msg91/hello/saved-filter-list.js +32 -0
  82. package/dist/commands/msg91/hello/statechangeapi.js +34 -0
  83. package/dist/commands/msg91/hello/update-draft-email.js +36 -0
  84. package/dist/commands/msg91/hello/update-draft-whatsapp.js +36 -0
  85. package/dist/commands/msg91/sms/add-flow.js +32 -0
  86. package/dist/commands/msg91/sms/add-template-version.js +32 -0
  87. package/dist/commands/msg91/sms/get-template-versions.js +33 -0
  88. package/dist/commands/msg91/sms/mark-default.js +33 -0
  89. package/dist/commands/msg91/sms/send-sms.js +37 -0
  90. package/dist/commands/msg91/sms/sms-analytics.js +33 -0
  91. package/dist/commands/msg91/sms/sms-logs.js +36 -0
  92. package/dist/commands/msg91/whatsapp/approve-join-requests.js +33 -0
  93. package/dist/commands/msg91/whatsapp/check-whatsapp-prepaid-balance.js +34 -0
  94. package/dist/commands/msg91/whatsapp/create-group.js +35 -0
  95. package/dist/commands/msg91/whatsapp/create-whatsapp-template.js +37 -0
  96. package/dist/commands/msg91/whatsapp/delete-group.js +32 -0
  97. package/dist/commands/msg91/whatsapp/delete-template.js +33 -0
  98. package/dist/commands/msg91/whatsapp/edit-template-1.js +35 -0
  99. package/dist/commands/msg91/whatsapp/edit-template.js +35 -0
  100. package/dist/commands/msg91/whatsapp/get-group-by-id.js +33 -0
  101. package/dist/commands/msg91/whatsapp/get-group-by-number.js +33 -0
  102. package/dist/commands/msg91/whatsapp/get-joinee-request.js +32 -0
  103. package/dist/commands/msg91/whatsapp/get-templates.js +39 -0
  104. package/dist/commands/msg91/whatsapp/interactive-wa-send-location.js +35 -0
  105. package/dist/commands/msg91/whatsapp/interactive-whatsapp-buttons.js +36 -0
  106. package/dist/commands/msg91/whatsapp/interactive-whatsapp-list.js +36 -0
  107. package/dist/commands/msg91/whatsapp/multiple-product-catalog.js +36 -0
  108. package/dist/commands/msg91/whatsapp/reject-join-requests-1.js +33 -0
  109. package/dist/commands/msg91/whatsapp/remove-participants.js +33 -0
  110. package/dist/commands/msg91/whatsapp/reset-group-invite-link-1.js +33 -0
  111. package/dist/commands/msg91/whatsapp/send-message-in-text.js +36 -0
  112. package/dist/commands/msg91/whatsapp/send-message-on-group.js +36 -0
  113. package/dist/commands/msg91/whatsapp/send-payment-link-via-whatsapp-payments.js +37 -0
  114. package/dist/commands/msg91/whatsapp/single-product-catalog.js +36 -0
  115. package/dist/commands/msg91/whatsapp/template-bulk.js +35 -0
  116. package/dist/commands/msg91/whatsapp/to-fetch-whatsapp-number.js +32 -0
  117. package/dist/commands/msg91/whatsapp/whatsapp-analytics.js +33 -0
  118. package/dist/commands/msg91/whatsapp/whatsapp-logs.js +36 -0
  119. package/dist/commands/msg91/whatsapp/whatsapp-voice-call.js +34 -0
  120. package/dist/commands/reqres/project/get-all-project.js +32 -0
  121. package/dist/lib/codegen.js +10 -0
  122. package/dist/lib/http.js +27 -4
  123. package/dist/lib/types.d.ts +1 -0
  124. package/package.json +4 -7
  125. package/oclif.manifest.json +0 -208
package/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # docstar-cli
2
2
 
3
- A CLI for calling published DocStar API endpoints directly from your terminal, without leaving the shell to read docs. Point it at a DocStar docs site, pick which modules (e.g. "Slack") you want, and it turns each published endpoint into a real command you can run. You can install from multiple docs sites/collections at once — each is kept separate under its own **CLI name**.
3
+ A CLI for calling published DocStar API endpoints directly from your terminal, without leaving the shell to read docs. Point it at a DocStar docs site, pick which modules (e.g. "Slack") you want, and it turns each published endpoint into a real command you can run. You can install from multiple docs sites/collections at once — each is kept separate under its own **slug**.
4
4
 
5
5
  ## Concepts: collection → module → endpoint
6
6
 
7
7
  Every command follows a fixed three-level hierarchy:
8
8
 
9
- 1. **Collection** — a docs site, identified by its **CLI name** (e.g. `msg91`). This is what `docstar-cli init` installs.
9
+ 1. **Collection** — a docs site, identified by its **slug** (e.g. `msg91`). This is what `docstar-cli init` installs.
10
10
  2. **Module** — a top-level section within that collection (e.g. `slack`).
11
11
  3. **Endpoint** — one published API within a module, turned into a command (e.g. `send-message-1`).
12
12
 
@@ -38,10 +38,10 @@ docstar-cli init localhost:3000 --collectionId paM4R4A26Hvb
38
38
 
39
39
  This fetches the list of published modules for that collection and shows an interactive checklist (nothing checked by default — press `space` to toggle a module, or select the **"Select all modules"** entry at the bottom of the list to install everything, then `enter` to confirm). For each selected module it:
40
40
 
41
- - saves its full endpoint contract to `~/.docstar/modules/<cli-name>/<module>.json`
42
- - registers a real CLI command for every endpoint: `docstar-cli <cli-name> <module> <command>`
41
+ - saves its full endpoint contract to `~/.docstar/modules/<slug>/<module>.json`
42
+ - registers a real CLI command for every endpoint: `docstar-cli <slug> <module> <command>`
43
43
 
44
- The **CLI name** comes from the collection's settings (set it under the collection's Domain settings in the docs editor — lowercase letters, numbers, `-` and `_` only; auto-generated from the collection name if not set yet). Running `init` against a different domain/collection adds it alongside any others already installed — nothing gets overwritten.
44
+ The **slug** is chosen when the collection is created in DocStar (lowercase letters, numbers, `-` and `_` only) and never changes afterwards; the same slug identifies the collection for MCP. Running `init` against a different domain/collection adds it alongside any others already installed — nothing gets overwritten.
45
45
 
46
46
  Everything is saved to `~/.docstar/config.json`, grouped by collection.
47
47
 
@@ -128,9 +128,9 @@ there's at least one installed module for `mcp` to expose.
128
128
 
129
129
  ## How it works
130
130
 
131
- - `docstar-cli init` talks to `GET /p/module.json?collectionId=...` (the collection's name, CLI name, and list of modules) and `GET /p/<module>/module.json?collectionId=...` (a module's endpoint contract) on the docs site.
131
+ - `docstar-cli init` talks to `GET /p/module.json?collectionId=...` (the collection's name, slug, and list of modules) and `GET /p/<module>/module.json?collectionId=...` (a module's endpoint contract) on the docs site.
132
132
  - Each endpoint's contract (method, url, base url, headers, body, and CLI parameter names) is saved locally and used to build the real HTTP request when you run its command — no network round-trip to the docs site is needed to run a command once a module is installed.
133
- - Commands are generated as real files on disk under this repo's `dist/commands/<cli-name>/<module>/`, which is why `npm run build` (it wipes `dist/`) requires re-running `docstar-cli init` for each installed collection afterwards to reinstall your modules.
133
+ - Commands are generated as real files on disk under this repo's `dist/commands/<slug>/<module>/`, which is why `npm run build` (it wipes `dist/`) requires re-running `docstar-cli init` for each installed collection afterwards to reinstall your modules.
134
134
 
135
135
  ## Development
136
136
 
@@ -0,0 +1,35 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["integrated_number","content_type","payload"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "send message"
9
+ static aliases = []
10
+ static flags = {
11
+ "integrated_number": Flags.string({description: "Required parameter"}),
12
+ "content_type": Flags.string({description: "Required parameter"}),
13
+ "payload": Flags.string({description: "Required parameter"}),
14
+ "Content-Type": Flags.string({description: 'Header value'}),
15
+ "authkey": Flags.string({description: 'Header value'}),
16
+ "content-type": Flags.string({description: 'Header value'}),
17
+ }
18
+
19
+ async run() {
20
+ const {flags} = await this.parse(Generated)
21
+ const params = {}
22
+ for (const [key, value] of Object.entries(flags)) {
23
+ if (value !== undefined) params[key] = value
24
+ }
25
+
26
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
27
+
28
+ try {
29
+ const result = await executeCliCommand("api-test", "whatsapp", "send-message", params)
30
+ this.log(JSON.stringify(result, null, 2))
31
+ } catch (error) {
32
+ this.error(error.message)
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,10 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class ConfigGet extends Command {
3
+ static args: {
4
+ cliName: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
5
+ key: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
6
+ };
7
+ static description: string;
8
+ static examples: string[];
9
+ run(): Promise<void>;
10
+ }
@@ -0,0 +1,43 @@
1
+ import { Args, Command } from '@oclif/core';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { configPath } from '../../lib/paths.js';
4
+ export default class ConfigGet extends Command {
5
+ static args = {
6
+ cliName: Args.string({ description: 'Installed collection (CLI name), e.g. msg91', required: true }),
7
+ key: Args.string({ description: 'Credential name to look up, e.g. authkey. Omit to show all saved credentials.', required: false }),
8
+ };
9
+ static description = 'Show saved credentials for a collection, or a single credential value';
10
+ static examples = [
11
+ '<%= config.bin %> <%= command.id %> msg91 # show all credentials saved for "msg91"',
12
+ '<%= config.bin %> <%= command.id %> msg91 authkey # show just the "authkey" value',
13
+ ];
14
+ async run() {
15
+ const { args } = await this.parse(ConfigGet);
16
+ let savedConfig;
17
+ try {
18
+ savedConfig = JSON.parse(await readFile(configPath(), 'utf8'));
19
+ }
20
+ catch {
21
+ this.error('No installed modules found. Run `docstar-cli init <domain>` first.');
22
+ }
23
+ const collection = savedConfig.collections.find((c) => c.cliName === args.cliName);
24
+ if (!collection) {
25
+ this.error(`Collection "${args.cliName}" isn't installed. Run \`docstar-cli list\` to see installed collections.`);
26
+ }
27
+ const credentials = collection.credentials || {};
28
+ if (args.key) {
29
+ if (!(args.key in credentials)) {
30
+ this.error(`No credential named "${args.key}" saved for collection "${args.cliName}".`);
31
+ }
32
+ this.log(credentials[args.key]);
33
+ return;
34
+ }
35
+ const entries = Object.entries(credentials);
36
+ if (entries.length === 0) {
37
+ this.log(`No credentials saved for collection "${args.cliName}".`);
38
+ return;
39
+ }
40
+ for (const [key, value] of entries)
41
+ this.log(`${key}=${value}`);
42
+ }
43
+ }
@@ -0,0 +1,11 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class ConfigSet extends Command {
3
+ static args: {
4
+ cliName: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
5
+ key: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
6
+ value: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
7
+ };
8
+ static description: string;
9
+ static examples: string[];
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,33 @@
1
+ import { Args, Command } from '@oclif/core';
2
+ import { readFile, writeFile } from 'node:fs/promises';
3
+ import { configPath } from '../../lib/paths.js';
4
+ export default class ConfigSet extends Command {
5
+ static args = {
6
+ cliName: Args.string({ description: 'Installed collection (CLI name), e.g. msg91', required: true }),
7
+ key: Args.string({ description: 'Credential name, matching a header/param name, e.g. authkey', required: true }),
8
+ value: Args.string({ description: 'Value to store', required: true }),
9
+ };
10
+ static description = [
11
+ 'Save a per-collection credential (e.g. an API/auth key) so it is injected into every request',
12
+ 'automatically, instead of having to pass it as a flag on every command.',
13
+ 'An explicit `--<key> value` flag on a command still overrides the saved credential.',
14
+ ].join('\n');
15
+ static examples = ['<%= config.bin %> <%= command.id %> msg91 authkey 279417Ac93k5fIO5qG6a9e6a8eP1'];
16
+ async run() {
17
+ const { args } = await this.parse(ConfigSet);
18
+ let savedConfig;
19
+ try {
20
+ savedConfig = JSON.parse(await readFile(configPath(), 'utf8'));
21
+ }
22
+ catch {
23
+ this.error('No installed modules found. Run `docstar-cli init <domain>` first.');
24
+ }
25
+ const collection = savedConfig.collections.find((c) => c.cliName === args.cliName);
26
+ if (!collection) {
27
+ this.error(`Collection "${args.cliName}" isn't installed. Run \`docstar-cli list\` to see installed collections.`);
28
+ }
29
+ collection.credentials = { ...collection.credentials, [args.key]: args.value };
30
+ await writeFile(configPath(), JSON.stringify(savedConfig, null, 2));
31
+ this.log(`Saved "${args.key}" for collection "${args.cliName}".`);
32
+ }
33
+ }
@@ -0,0 +1,33 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["username","password","this is a"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "this is the collection for api testing"
9
+ static aliases = []
10
+ static flags = {
11
+ "username": Flags.string({description: "Required parameter"}),
12
+ "password": Flags.string({description: "Required parameter"}),
13
+ "this is a": Flags.string({description: "Required parameter"}),
14
+ "content-type": Flags.string({description: 'Header value'}),
15
+ }
16
+
17
+ async run() {
18
+ const {flags} = await this.parse(Generated)
19
+ const params = {}
20
+ for (const [key, value] of Object.entries(flags)) {
21
+ if (value !== undefined) params[key] = value
22
+ }
23
+
24
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
25
+
26
+ try {
27
+ const result = await executeCliCommand("dump-test", "parent-page", "collection", params)
28
+ this.log(JSON.stringify(result, null, 2))
29
+ } catch (error) {
30
+ this.error(error.message)
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,31 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0","1"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "Add a single repository to an installation. The authenticated user must have admin access to the repository.\n\nYou must use a personal access token (which you can create via the [command line](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication)) to access this endpoint."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ "1": Flags.string({description: "Required parameter"}),
13
+ }
14
+
15
+ async run() {
16
+ const {flags} = await this.parse(Generated)
17
+ const params = {}
18
+ for (const [key, value] of Object.entries(flags)) {
19
+ if (value !== undefined) params[key] = value
20
+ }
21
+
22
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
23
+
24
+ try {
25
+ const result = await executeCliCommand("github", "apps", "add-repo-to-installation-for-authenticated-user", params)
26
+ this.log(JSON.stringify(result, null, 2))
27
+ } catch (error) {
28
+ this.error(error.message)
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,31 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0","1"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "**Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/).\n\nOAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ "1": Flags.string({description: "Required parameter"}),
13
+ }
14
+
15
+ async run() {
16
+ const {flags} = await this.parse(Generated)
17
+ const params = {}
18
+ for (const [key, value] of Object.entries(flags)) {
19
+ if (value !== undefined) params[key] = value
20
+ }
21
+
22
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
23
+
24
+ try {
25
+ const result = await executeCliCommand("github", "apps", "check-authorization", params)
26
+ this.log(JSON.stringify(result, null, 2))
27
+ } catch (error) {
28
+ this.error(error.message)
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,30 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the OAuth application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ }
13
+
14
+ async run() {
15
+ const {flags} = await this.parse(Generated)
16
+ const params = {}
17
+ for (const [key, value] of Object.entries(flags)) {
18
+ if (value !== undefined) params[key] = value
19
+ }
20
+
21
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
22
+
23
+ try {
24
+ const result = await executeCliCommand("github", "apps", "check-token", params)
25
+ this.log(JSON.stringify(result, null, 2))
26
+ } catch (error) {
27
+ this.error(error.message)
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the `id` of the content reference from the [`content_reference` event](https://docs.github.com/webhooks/event-payloads/#content_reference) to create an attachment.\n\nThe app must create a content attachment within six hours of the content reference URL being posted. See \"[Using content attachments](https://docs.github.com/apps/using-content-attachments/)\" for details about content attachments.\n\nYou must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ }
13
+
14
+ async run() {
15
+ const {flags} = await this.parse(Generated)
16
+ const params = {}
17
+ for (const [key, value] of Object.entries(flags)) {
18
+ if (value !== undefined) params[key] = value
19
+ }
20
+
21
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
22
+
23
+ try {
24
+ const result = await executeCliCommand("github", "apps", "create-content-attachment", params)
25
+ this.log(JSON.stringify(result, null, 2))
26
+ } catch (error) {
27
+ this.error(error.message)
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ }
13
+
14
+ async run() {
15
+ const {flags} = await this.parse(Generated)
16
+ const params = {}
17
+ for (const [key, value] of Object.entries(flags)) {
18
+ if (value !== undefined) params[key] = value
19
+ }
20
+
21
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
22
+
23
+ try {
24
+ const result = await executeCliCommand("github", "apps", "create-from-manifest", params)
25
+ this.log(JSON.stringify(result, null, 2))
26
+ } catch (error) {
27
+ this.error(error.message)
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the `repository_ids` when creating the token. When you omit `repository_ids`, the response does not contain the `repositories` key.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ }
13
+
14
+ async run() {
15
+ const {flags} = await this.parse(Generated)
16
+ const params = {}
17
+ for (const [key, value] of Object.entries(flags)) {
18
+ if (value !== undefined) params[key] = value
19
+ }
20
+
21
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
22
+
23
+ try {
24
+ const result = await executeCliCommand("github", "apps", "create-installation-access-token", params)
25
+ this.log(JSON.stringify(result, null, 2))
26
+ } catch (error) {
27
+ this.error(error.message)
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted.\nDeleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized)."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ }
13
+
14
+ async run() {
15
+ const {flags} = await this.parse(Generated)
16
+ const params = {}
17
+ for (const [key, value] of Object.entries(flags)) {
18
+ if (value !== undefined) params[key] = value
19
+ }
20
+
21
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
22
+
23
+ try {
24
+ const result = await executeCliCommand("github", "apps", "delete-authorization", params)
25
+ this.log(JSON.stringify(result, null, 2))
26
+ } catch (error) {
27
+ this.error(error.message)
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the \"[Suspend an app installation](https://docs.github.com/rest/reference/apps/#suspend-an-app-installation)\" endpoint.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ }
13
+
14
+ async run() {
15
+ const {flags} = await this.parse(Generated)
16
+ const params = {}
17
+ for (const [key, value] of Object.entries(flags)) {
18
+ if (value !== undefined) params[key] = value
19
+ }
20
+
21
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
22
+
23
+ try {
24
+ const result = await executeCliCommand("github", "apps", "delete-installation", params)
25
+ this.log(JSON.stringify(result, null, 2))
26
+ } catch (error) {
27
+ this.error(error.message)
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ }
13
+
14
+ async run() {
15
+ const {flags} = await this.parse(Generated)
16
+ const params = {}
17
+ for (const [key, value] of Object.entries(flags)) {
18
+ if (value !== undefined) params[key] = value
19
+ }
20
+
21
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
22
+
23
+ try {
24
+ const result = await executeCliCommand("github", "apps", "delete-token", params)
25
+ this.log(JSON.stringify(result, null, 2))
26
+ } catch (error) {
27
+ this.error(error.message)
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = []
6
+
7
+ export default class Generated extends Command {
8
+ static description = "Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the \"[List installations for the authenticated app](https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app)\" endpoint.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint."
9
+ static aliases = []
10
+ static flags = {
11
+
12
+ }
13
+
14
+ async run() {
15
+ const {flags} = await this.parse(Generated)
16
+ const params = {}
17
+ for (const [key, value] of Object.entries(flags)) {
18
+ if (value !== undefined) params[key] = value
19
+ }
20
+
21
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
22
+
23
+ try {
24
+ const result = await executeCliCommand("github", "apps", "get-authenticated", params)
25
+ this.log(JSON.stringify(result, null, 2))
26
+ } catch (error) {
27
+ this.error(error.message)
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "**Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`).\n\nIf the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a [personal access token](https://docs.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ }
13
+
14
+ async run() {
15
+ const {flags} = await this.parse(Generated)
16
+ const params = {}
17
+ for (const [key, value] of Object.entries(flags)) {
18
+ if (value !== undefined) params[key] = value
19
+ }
20
+
21
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
22
+
23
+ try {
24
+ const result = await executeCliCommand("github", "apps", "get-by-slug", params)
25
+ this.log(JSON.stringify(result, null, 2))
26
+ } catch (error) {
27
+ this.error(error.message)
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "Enables an authenticated GitHub App to find an installation's information using the installation id.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ }
13
+
14
+ async run() {
15
+ const {flags} = await this.parse(Generated)
16
+ const params = {}
17
+ for (const [key, value] of Object.entries(flags)) {
18
+ if (value !== undefined) params[key] = value
19
+ }
20
+
21
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
22
+
23
+ try {
24
+ const result = await executeCliCommand("github", "apps", "get-installation", params)
25
+ this.log(JSON.stringify(result, null, 2))
26
+ } catch (error) {
27
+ this.error(error.message)
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["0"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "Enables an authenticated GitHub App to find the organization's installation information.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint."
9
+ static aliases = []
10
+ static flags = {
11
+ "0": Flags.string({description: "Required parameter"}),
12
+ }
13
+
14
+ async run() {
15
+ const {flags} = await this.parse(Generated)
16
+ const params = {}
17
+ for (const [key, value] of Object.entries(flags)) {
18
+ if (value !== undefined) params[key] = value
19
+ }
20
+
21
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
22
+
23
+ try {
24
+ const result = await executeCliCommand("github", "apps", "get-org-installation", params)
25
+ this.log(JSON.stringify(result, null, 2))
26
+ } catch (error) {
27
+ this.error(error.message)
28
+ }
29
+ }
30
+ }