From 96629f19160abf4edcaf82c2df27a104b06a5f06 Mon Sep 17 00:00:00 2001 From: Shahed Nasser Date: Mon, 29 Jan 2024 10:05:14 +0200 Subject: [PATCH] docs: change process for generating docblocks through actions (#6237) This PR changes the original process of generating docblocks through actions. The process now is: 1. When a PR is merged for the branch `changeset-release/develop`, the docblock generator tool us used to generate docblocks for the changed files. The changed files are determined by retrieving all comments since the last release and the files in each of those commits. 2. If there are changes after using the docblock generator tool, a PR is opened in the branch `chore/generate-tsdocs`. 3. Once the `chore/generate-tsdocs` is merged, it triggers an action that generates the references for the docs. This changes the previous behaviour of generating references on a new release. Both actions (that runs the docblock generator tool and that generates references for the docs) can also be triggered manually. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../generate-docblocks-reference.yml | 82 ++++ .github/workflows/generate-docblocks.yml | 53 +++ .github/workflows/generate-references.yml | 67 +-- .github/workflows/release.yml | 42 +- .../packages/docblock-generator/package.json | 6 +- .../src/classes/git-manager.ts | 75 +++ .../src/commands/run-release.ts | 38 ++ .../packages/docblock-generator/src/index.ts | 8 + docs-util/packages/utils/package.json | 1 + docs-util/yarn.lock | 445 +++++++++++++++++- 10 files changed, 698 insertions(+), 119 deletions(-) create mode 100644 .github/workflows/generate-docblocks-reference.yml create mode 100644 .github/workflows/generate-docblocks.yml create mode 100644 docs-util/packages/docblock-generator/src/classes/git-manager.ts create mode 100644 docs-util/packages/docblock-generator/src/commands/run-release.ts diff --git a/.github/workflows/generate-docblocks-reference.yml b/.github/workflows/generate-docblocks-reference.yml new file mode 100644 index 0000000000..ed27ac937d --- /dev/null +++ b/.github/workflows/generate-docblocks-reference.yml @@ -0,0 +1,82 @@ +name: Generate References for Docblocks [Automated] + +on: + pull_request: + branches: + - develop + types: + - closed + workflow_dispatch: + inputs: + referenceName: + description: 'Reference to Generate. Use either `all` or a name of a config file in `docs-util/packages/typedoc-config` such as `product`.' + required: false + default: 'all' + +jobs: + references: + runs-on: ubuntu-latest + if: github.event_name == 'workflow_dispatch' || (startsWith(github.head_ref, 'chore/generate-tsdocs') && github.event.pull_request.merged == true) + steps: + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@0.11.0 + with: + access_token: ${{ github.token }} + + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup Node.js environment + uses: actions/setup-node@v3 + with: + node-version: "16.10.0" + cache: "yarn" + + - name: Install dependencies + uses: ./.github/actions/cache-deps + with: + extension: reference + + - name: Build Packages + run: yarn build + + - name: Install Docs dependencies + working-directory: www + run: yarn install + + - name: Install Workspace dependencies + run: yarn install + working-directory: docs-util + + - name: Build Workspace dependencies + run: yarn build + working-directory: docs-util + + - name: Generate References + if: ${{ github.event_name == 'workflow_dispatch' }} + run: "yarn generate:reference ${{ github.event.inputs.referenceName }}" + working-directory: docs-util/packages/scripts + + - name: Generate References + if: ${{ github.event_name != 'workflow_dispatch' }} + run: "yarn generate:reference all" + working-directory: docs-util/packages/scripts + + - name: Get PR Message + id: pr-message + run: yarn generate:message + working-directory: docs-util/packages/scripts + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v4 + with: + commit-message: "chore(docs): Generated References (automated)" + base: "develop" + title: "chore(docs): Generated References" + labels: "type: chore" + add-paths: www/apps/docs/content/references/** + branch: "docs/generate-reference" + branch-suffix: "timestamp" + body: ${{ steps.pr-message.outputs.body }} \ No newline at end of file diff --git a/.github/workflows/generate-docblocks.yml b/.github/workflows/generate-docblocks.yml new file mode 100644 index 0000000000..b3c2da4d30 --- /dev/null +++ b/.github/workflows/generate-docblocks.yml @@ -0,0 +1,53 @@ +name: Generate Docblocks [Automated] + +on: + pull_request: + branches: + - develop + types: + - closed + workflow_dispatch: + +jobs: + generate: + if: github.event_name == 'workflow_dispatch' || (startsWith(github.head_ref, 'changeset-release/develop') && github.event.pull_request.merged == true) + name: Generated TSDoc PRs + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + + - name: Setup Node.js 18 + uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Install Dependencies + run: yarn + + - name: Install docs-util Dependencies + run: yarn + working-directory: docs-util + + - name: Build packages + run: yarn build + working-directory: docs-util + + - name: Run docblock generator + run: "yarn start run:release" + working-directory: docs-util/packages/docblock-generator + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GIT_OWNER: ${{ github.repository_owner }} + GIT_REPO: medusa + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + title: "Generated TSDocs" + body: "This PR holds all generated TSDocs for the upcoming release." + branch: "chore/generate-tsdocs" + team-reviewers: "@medusajs/docs" + add-paths: packages/** \ No newline at end of file diff --git a/.github/workflows/generate-references.yml b/.github/workflows/generate-references.yml index d86bdf6000..2657af8c41 100644 --- a/.github/workflows/generate-references.yml +++ b/.github/workflows/generate-references.yml @@ -3,78 +3,13 @@ on: workflow_dispatch: inputs: referenceName: - description: 'Reference to Generate. Use either `all` to generate all references, `api` to generate the API reference, or a name of a config file in `docs-util/packages/typedoc-config` such as `product`' + description: 'Reference to Generate. Use either `all` to generate all references, `api` to generate the API reference, or `ui` to generate UI reference.' required: false default: 'all' release: types: [published] jobs: - references: - runs-on: ubuntu-latest - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 - with: - access_token: ${{ github.token }} - - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup Node.js environment - uses: actions/setup-node@v3 - with: - node-version: "16.10.0" - cache: "yarn" - - - name: Install dependencies - uses: ./.github/actions/cache-deps - with: - extension: reference - - - name: Build Packages - run: yarn build - - - name: Install Docs dependencies - working-directory: www - run: yarn install - - - name: Install Workspace dependencies - run: yarn install - working-directory: docs-util - - - name: Build Workspace dependencies - run: yarn build - working-directory: docs-util - - - name: Generate References - if: ${{ github.event_name == 'workflow_dispatch' }} - run: "yarn generate:reference ${{ github.event.inputs.referenceName }}" - working-directory: docs-util/packages/scripts - - - name: Generate References - if: ${{ github.event_name != 'workflow_dispatch' }} - run: "yarn generate:reference all" - working-directory: docs-util/packages/scripts - - - name: Get PR Message - id: pr-message - run: yarn generate:message - working-directory: docs-util/packages/scripts - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 - with: - commit-message: "chore(docs): Generated References (automated)" - base: "develop" - title: "chore(docs): Generated References" - labels: "type: chore" - add-paths: www/apps/docs/content/references/** - branch: "docs/generate-reference" - branch-suffix: "timestamp" - body: ${{ steps.pr-message.outputs.body }} api: runs-on: ubuntu-latest if: ${{ github.event_name == 'release' || github.event.inputs.referenceName == 'all' || github.event.inputs.referenceName == 'api' }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2aae93d4a4..034018f968 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,44 +37,4 @@ jobs: - name: Create Release Pull Request uses: changesets/action@v1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - tsdoc-pr: - name: Generated TSDoc PRs - runs-on: ubuntu-latest - steps: - - name: Checkout Repo - uses: actions/checkout@v3 - - - name: Setup Node.js 18 - uses: actions/setup-node@v3 - with: - node-version: 18 - - - name: Install Dependencies - run: yarn - - - name: Build packages - run: yarn build - - - name: Install docs-util Dependencies - run: yarn - working-directory: docs-util - - - name: Build packages - run: yarn build - working-directory: docs-util - - - name: Run docblock generator - run: "yarn start run:commit ${{ github.sha }}" - working-directory: docs-util/packages/docblock-generator - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - title: "Generated TSDocs" - body: "This PR holds all generated TSDocs for the upcoming release." - branch: "chore/generate-tsdocs" - team-reviewers: "@medusajs/docs" - add-paths: packages/** \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/docs-util/packages/docblock-generator/package.json b/docs-util/packages/docblock-generator/package.json index 2bec3ace9e..00e59c7847 100644 --- a/docs-util/packages/docblock-generator/package.json +++ b/docs-util/packages/docblock-generator/package.json @@ -2,7 +2,8 @@ "name": "docblock-generator", "license": "MIT", "scripts": { - "start": "ts-node src/index.ts", + "dev": "ts-node src/index.ts", + "start": "node dist/index.js", "build": "tsc", "watch": "tsc --watch", "prepublishOnly": "cross-env NODE_ENV=production tsc --build" @@ -23,7 +24,8 @@ "eslint": "^8.56.0", "minimatch": "^9.0.3", "ts-node": "^10.9.1", - "typescript": "5.2" + "typescript": "5.2", + "utils": "*" }, "devDependencies": { "@types/node": "^20.9.4" diff --git a/docs-util/packages/docblock-generator/src/classes/git-manager.ts b/docs-util/packages/docblock-generator/src/classes/git-manager.ts new file mode 100644 index 0000000000..8bb1f6b5a8 --- /dev/null +++ b/docs-util/packages/docblock-generator/src/classes/git-manager.ts @@ -0,0 +1,75 @@ +import { Octokit } from "octokit" + +type Options = { + owner?: string + repo?: string + authToken?: string +} + +export class GitManager { + private owner: string + private repo: string + private authToken: string + private octokit: Octokit + private gitApiVersion = "2022-11-28" + + constructor(options?: Options) { + this.owner = options?.owner || process.env.GIT_OWNER || "" + this.repo = options?.repo || process.env.GIT_REPO || "" + this.authToken = options?.authToken || process.env.GITHUB_TOKEN || "" + + this.octokit = new Octokit({ + auth: this.authToken, + }) + } + + async getCommitFilesSinceLastRelease() { + // list releases to get the latest two releases + const { data: release } = await this.octokit.request( + "GET /repos/{owner}/{repo}/releases/latest", + { + owner: this.owner, + repo: this.repo, + headers: { + "X-GitHub-Api-Version": this.gitApiVersion, + }, + } + ) + + // get commits between the last two releases + const commits = await this.octokit.paginate( + "GET /repos/{owner}/{repo}/commits", + { + owner: this.owner, + repo: this.repo, + since: release.published_at || undefined, + per_page: 100, + } + ) + + // get files of each of the commits + const files = new Set() + + await Promise.all( + commits.map(async (commit) => { + const { + data: { files: commitFiles }, + } = await this.octokit.request( + "GET /repos/{owner}/{repo}/commits/{ref}", + { + owner: this.owner, + repo: this.repo, + ref: commit.sha, + headers: { + "X-GitHub-Api-Version": this.gitApiVersion, + }, + } + ) + + commitFiles?.forEach((commitFile) => files.add(commitFile.filename)) + }) + ) + + return [...files] + } +} diff --git a/docs-util/packages/docblock-generator/src/commands/run-release.ts b/docs-util/packages/docblock-generator/src/commands/run-release.ts new file mode 100644 index 0000000000..f62ec52717 --- /dev/null +++ b/docs-util/packages/docblock-generator/src/commands/run-release.ts @@ -0,0 +1,38 @@ +import filterFiles from "../utils/filter-files.js" +import path from "path" +import DocblockGenerator from "../classes/docblock-generator.js" +import getMonorepoRoot from "../utils/get-monorepo-root.js" +import { GitManager } from "../classes/git-manager.js" + +export default async function () { + const gitManager = new GitManager() + + console.log("Get files in commits since last release") + + const files = await gitManager.getCommitFilesSinceLastRelease() + + // filter changed files + let filteredFiles = filterFiles(files) + + if (!filteredFiles.length) { + console.log("No applicable files changed. Canceling...") + return + } + + console.log( + `${filteredFiles.length} files have changed. Running generator on them...` + ) + + filteredFiles = filteredFiles.map((filePath) => + path.resolve(getMonorepoRoot(), filePath) + ) + + // generate docblocks for each of the files. + const docblockGenerator = new DocblockGenerator({ + paths: filteredFiles, + }) + + await docblockGenerator.run() + + console.log(`Finished generating docs for ${filteredFiles.length} files.`) +} diff --git a/docs-util/packages/docblock-generator/src/index.ts b/docs-util/packages/docblock-generator/src/index.ts index 407c564e6d..bb641a3da0 100644 --- a/docs-util/packages/docblock-generator/src/index.ts +++ b/docs-util/packages/docblock-generator/src/index.ts @@ -4,6 +4,7 @@ import { Command } from "commander" import run from "./commands/run.js" import runGitChanges from "./commands/run-git-changes.js" import runGitCommit from "./commands/run-git-commit.js" +import runRelease from "./commands/run-release.js" const program = new Command() @@ -30,4 +31,11 @@ program .argument("", "The SHA of a commit.") .action(runGitCommit) +program + .command("run:release") + .description( + "Generate TSDoc doc-blocks for files part of the latest release. It will retrieve the files of commits between the latest two releases." + ) + .action(runRelease) + program.parse() diff --git a/docs-util/packages/utils/package.json b/docs-util/packages/utils/package.json index c41eddcad4..f63fa97eb8 100644 --- a/docs-util/packages/utils/package.json +++ b/docs-util/packages/utils/package.json @@ -21,6 +21,7 @@ "typescript": "5.2" }, "dependencies": { + "octokit": "^3.1.2", "rimraf": "^5.0.5" } } diff --git a/docs-util/yarn.lock b/docs-util/yarn.lock index 42584a8c95..585932935a 100644 --- a/docs-util/yarn.lock +++ b/docs-util/yarn.lock @@ -842,6 +842,79 @@ __metadata: languageName: node linkType: hard +"@octokit/app@npm:^14.0.2": + version: 14.0.2 + resolution: "@octokit/app@npm:14.0.2" + dependencies: + "@octokit/auth-app": ^6.0.0 + "@octokit/auth-unauthenticated": ^5.0.0 + "@octokit/core": ^5.0.0 + "@octokit/oauth-app": ^6.0.0 + "@octokit/plugin-paginate-rest": ^9.0.0 + "@octokit/types": ^12.0.0 + "@octokit/webhooks": ^12.0.4 + checksum: 92b4193bfbe0b12196329f7b7d1d3f038575eb54680a95a68a70b62f5ecaa23de9a240a7ad64711f1639266f37c80f09a8975ae8a754fd680384dc1410ae477b + languageName: node + linkType: hard + +"@octokit/auth-app@npm:^6.0.0": + version: 6.0.3 + resolution: "@octokit/auth-app@npm:6.0.3" + dependencies: + "@octokit/auth-oauth-app": ^7.0.0 + "@octokit/auth-oauth-user": ^4.0.0 + "@octokit/request": ^8.0.2 + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^12.0.0 + deprecation: ^2.3.1 + lru-cache: ^10.0.0 + universal-github-app-jwt: ^1.1.2 + universal-user-agent: ^6.0.0 + checksum: fba541abcc35e05cd0adf49b4c0174a2bc8e5b44d702259e074640332578ce7fb03392523e64f64abafc266adbf6dda0a537ce0fa0bd265275793e81d7949244 + languageName: node + linkType: hard + +"@octokit/auth-oauth-app@npm:^7.0.0": + version: 7.0.1 + resolution: "@octokit/auth-oauth-app@npm:7.0.1" + dependencies: + "@octokit/auth-oauth-device": ^6.0.0 + "@octokit/auth-oauth-user": ^4.0.0 + "@octokit/request": ^8.0.2 + "@octokit/types": ^12.0.0 + "@types/btoa-lite": ^1.0.0 + btoa-lite: ^1.0.0 + universal-user-agent: ^6.0.0 + checksum: 721bc0bfe31263f68a2f8c6d9d19e55853535f8d08efd2460e33f33b8a0c40ece943018b180635ffad34006fa45e6721b2dbc644675d4a3a8fb0222b0775e831 + languageName: node + linkType: hard + +"@octokit/auth-oauth-device@npm:^6.0.0": + version: 6.0.1 + resolution: "@octokit/auth-oauth-device@npm:6.0.1" + dependencies: + "@octokit/oauth-methods": ^4.0.0 + "@octokit/request": ^8.0.0 + "@octokit/types": ^12.0.0 + universal-user-agent: ^6.0.0 + checksum: 9e969de43e5238bef62def6897dddf5c544fce2e582e3ce8ae2889d6ac9de954930e360b526d7f94c11a093709faff8ab4c77039ab218dde679865b09d85baf5 + languageName: node + linkType: hard + +"@octokit/auth-oauth-user@npm:^4.0.0": + version: 4.0.1 + resolution: "@octokit/auth-oauth-user@npm:4.0.1" + dependencies: + "@octokit/auth-oauth-device": ^6.0.0 + "@octokit/oauth-methods": ^4.0.0 + "@octokit/request": ^8.0.2 + "@octokit/types": ^12.0.0 + btoa-lite: ^1.0.0 + universal-user-agent: ^6.0.0 + checksum: e887674a65a6083b4ad1d4ab9f48da71d3b386d5eba3c9715b6d9bc2b3837217d9f307c5a2da568941ff138a55b8113c077e952ca8d0295e96de895a521d6a6f + languageName: node + linkType: hard + "@octokit/auth-token@npm:^3.0.0": version: 3.0.4 resolution: "@octokit/auth-token@npm:3.0.4" @@ -856,6 +929,16 @@ __metadata: languageName: node linkType: hard +"@octokit/auth-unauthenticated@npm:^5.0.0": + version: 5.0.1 + resolution: "@octokit/auth-unauthenticated@npm:5.0.1" + dependencies: + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^12.0.0 + checksum: c9cad429981a34021ec9f1fdc238c39eba36807683859a3bffb9dd66abf1ce016c9a2ff31fe09313458e59b37f8fa91522c0e34a1daecefdabcdf23a494fbcc2 + languageName: node + linkType: hard + "@octokit/core@npm:^4.0.5": version: 4.2.4 resolution: "@octokit/core@npm:4.2.4" @@ -871,6 +954,21 @@ __metadata: languageName: node linkType: hard +"@octokit/core@npm:^5.0.0": + version: 5.1.0 + resolution: "@octokit/core@npm:5.1.0" + dependencies: + "@octokit/auth-token": ^4.0.0 + "@octokit/graphql": ^7.0.0 + "@octokit/request": ^8.0.2 + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^12.0.0 + before-after-hook: ^2.2.0 + universal-user-agent: ^6.0.0 + checksum: a1d2882373b4a33cd9f6e56d76bcc82e5589a477829fc3491b1ef471a8a83fa437b339a2c76d97d9e8ea4ca12bf3ebf32e66119ba16977e542d98f1f5dd3c994 + languageName: node + linkType: hard + "@octokit/core@npm:^5.0.2": version: 5.0.2 resolution: "@octokit/core@npm:5.0.2" @@ -929,6 +1027,42 @@ __metadata: languageName: node linkType: hard +"@octokit/oauth-app@npm:^6.0.0": + version: 6.1.0 + resolution: "@octokit/oauth-app@npm:6.1.0" + dependencies: + "@octokit/auth-oauth-app": ^7.0.0 + "@octokit/auth-oauth-user": ^4.0.0 + "@octokit/auth-unauthenticated": ^5.0.0 + "@octokit/core": ^5.0.0 + "@octokit/oauth-authorization-url": ^6.0.2 + "@octokit/oauth-methods": ^4.0.0 + "@types/aws-lambda": ^8.10.83 + universal-user-agent: ^6.0.0 + checksum: 9d67ca196eabbb397c677e006d28148d6c5185f88d86e5444c219e43b95e0ecaee5d31807ea24aedb64a76d61c0a53acd8091613e15d10733f41960bd981463c + languageName: node + linkType: hard + +"@octokit/oauth-authorization-url@npm:^6.0.2": + version: 6.0.2 + resolution: "@octokit/oauth-authorization-url@npm:6.0.2" + checksum: 8c06e538b3e392f0fa68f3347078c32f92c03474eb214e4e82774513a54c164bac14c228f7dbd79d22a920df1a8b2e0765dd6ee45929bda0b77e5cf7f0d92c71 + languageName: node + linkType: hard + +"@octokit/oauth-methods@npm:^4.0.0": + version: 4.0.1 + resolution: "@octokit/oauth-methods@npm:4.0.1" + dependencies: + "@octokit/oauth-authorization-url": ^6.0.2 + "@octokit/request": ^8.0.2 + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^12.0.0 + btoa-lite: ^1.0.0 + checksum: fcaa5636780e3f406ddea9c6c881e7ae0b2a9fe0ec3bcd2748825ff27219a9ea1e223020bff0c988748d3ec18c6aa91bc9bcb557c8522553b3eccdcd4494d925 + languageName: node + linkType: hard + "@octokit/openapi-types@npm:^18.0.0": version: 18.1.1 resolution: "@octokit/openapi-types@npm:18.1.1" @@ -943,6 +1077,62 @@ __metadata: languageName: node linkType: hard +"@octokit/plugin-paginate-graphql@npm:^4.0.0": + version: 4.0.0 + resolution: "@octokit/plugin-paginate-graphql@npm:4.0.0" + peerDependencies: + "@octokit/core": ">=5" + checksum: a76ede8b7ceef78f319f80083c7043f5e721c10468e520e1989c4b81fc57ccb549324ef323ee86bc62abfb7a75b0c1b30b1f64715da50737b4ec6ffb2a9b95a4 + languageName: node + linkType: hard + +"@octokit/plugin-paginate-rest@npm:^9.0.0": + version: 9.1.5 + resolution: "@octokit/plugin-paginate-rest@npm:9.1.5" + dependencies: + "@octokit/types": ^12.4.0 + peerDependencies: + "@octokit/core": ">=5" + checksum: a17055dff8fde5ebc03bf935294ffa4605ed714cb15252f0fa63cda1b95e738fafb5ab9748b18fbdfa5615d5f6686cbf193c6d6426e7dc4fd1dda91c87263f3b + languageName: node + linkType: hard + +"@octokit/plugin-rest-endpoint-methods@npm:^10.0.0": + version: 10.2.0 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.2.0" + dependencies: + "@octokit/types": ^12.3.0 + peerDependencies: + "@octokit/core": ">=5" + checksum: 4d00a2334753955f0c3841ba8fc0880c093b94838e011864ee737d958d2d64e3d45d34fa4c8b64bccf9e13c6de81318cbd6e2b24df37992941d12f54def28432 + languageName: node + linkType: hard + +"@octokit/plugin-retry@npm:^6.0.0": + version: 6.0.1 + resolution: "@octokit/plugin-retry@npm:6.0.1" + dependencies: + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^12.0.0 + bottleneck: ^2.15.3 + peerDependencies: + "@octokit/core": ">=5" + checksum: 721b5a7949e3defdec5f1b451850ab924162fd2712c9ab59a2aaaad5b9ed6ee2a9447fe82ec1f91086cf23aaaceb14ff4e74de67ba3c63c5029e59c67b50979c + languageName: node + linkType: hard + +"@octokit/plugin-throttling@npm:^8.0.0": + version: 8.1.3 + resolution: "@octokit/plugin-throttling@npm:8.1.3" + dependencies: + "@octokit/types": ^12.2.0 + bottleneck: ^2.15.3 + peerDependencies: + "@octokit/core": ^5.0.0 + checksum: aa21da4078a64f8ce0e7f340d041ad8d58d2fc8eb3fa658ba82e0b3207d689ccfbdd0fd3e2104fb2eea1de37f7857bae835705465122dda310d0fd7041bfdf94 + languageName: node + linkType: hard + "@octokit/request-error@npm:^3.0.0": version: 3.0.3 resolution: "@octokit/request-error@npm:3.0.3" @@ -979,7 +1169,7 @@ __metadata: languageName: node linkType: hard -"@octokit/request@npm:^8.0.1, @octokit/request@npm:^8.0.2": +"@octokit/request@npm:^8.0.0, @octokit/request@npm:^8.0.1, @octokit/request@npm:^8.0.2": version: 8.1.6 resolution: "@octokit/request@npm:8.1.6" dependencies: @@ -991,7 +1181,7 @@ __metadata: languageName: node linkType: hard -"@octokit/types@npm:^12.0.0": +"@octokit/types@npm:^12.0.0, @octokit/types@npm:^12.2.0, @octokit/types@npm:^12.3.0, @octokit/types@npm:^12.4.0": version: 12.4.0 resolution: "@octokit/types@npm:12.4.0" dependencies: @@ -1009,6 +1199,32 @@ __metadata: languageName: node linkType: hard +"@octokit/webhooks-methods@npm:^4.0.0": + version: 4.0.0 + resolution: "@octokit/webhooks-methods@npm:4.0.0" + checksum: 67182bf353b5fad1832d8d2647192348e3cf17aed8b8feeb8c10f680691c176b51f133d143aee43961f0eac3cd848b2f993fa03c7477980fc9a926bd8d7ba934 + languageName: node + linkType: hard + +"@octokit/webhooks-types@npm:7.1.0": + version: 7.1.0 + resolution: "@octokit/webhooks-types@npm:7.1.0" + checksum: 5a293214d8c7ba72bab1e866c308005c55b3588c13f4d1ed101726fd362ff584282e7f9a486852d7fe87d15a547a3b234e31d8c559170ecf453d7305fbe4924a + languageName: node + linkType: hard + +"@octokit/webhooks@npm:^12.0.4": + version: 12.0.11 + resolution: "@octokit/webhooks@npm:12.0.11" + dependencies: + "@octokit/request-error": ^5.0.0 + "@octokit/webhooks-methods": ^4.0.0 + "@octokit/webhooks-types": 7.1.0 + aggregate-error: ^3.1.0 + checksum: 6ea5d259b499d104cad93b4bf329b72fbe2cc53ca2ca9ad932dc4999053b1d72f581bb43302fe0e86ab496acc7067d049700ef9800ea72f92a7b1d5223e37964 + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -1100,6 +1316,13 @@ __metadata: languageName: node linkType: hard +"@types/aws-lambda@npm:^8.10.83": + version: 8.10.131 + resolution: "@types/aws-lambda@npm:8.10.131" + checksum: be87250cd1460a2a6c7e8b23075fa4e3d9cf9685e8c0fa5e6122c6895b49aed880fc2c16c9a2291e95d3bbc3f505f40675ed7da060a58342616737ec1a06cf05 + languageName: node + linkType: hard + "@types/babel__core@npm:^7.18.0": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" @@ -1141,6 +1364,13 @@ __metadata: languageName: node linkType: hard +"@types/btoa-lite@npm:^1.0.0": + version: 1.0.2 + resolution: "@types/btoa-lite@npm:1.0.2" + checksum: daffbb47e4fe6493df70d83878b550adab48bab2f02b3591a59367af3ecebf34c971e070479ab68d83ca59cbeefbc61a50d9a7552f639dc908706183e0222bab + languageName: node + linkType: hard + "@types/doctrine@npm:^0.0.9": version: 0.0.9 resolution: "@types/doctrine@npm:0.0.9" @@ -1155,6 +1385,15 @@ __metadata: languageName: node linkType: hard +"@types/jsonwebtoken@npm:^9.0.0": + version: 9.0.5 + resolution: "@types/jsonwebtoken@npm:9.0.5" + dependencies: + "@types/node": "*" + checksum: c582b8420586f3b9550f7e34992cb32be300bc953636f3b087ed9c180ce7ea5c2e4b35090be2d57f0d3168cc3ca1074932907caa2afe09f4e9c84cf5c0daefa8 + languageName: node + linkType: hard + "@types/node@npm:*, @types/node@npm:^20.8.3, @types/node@npm:^20.9.4": version: 20.10.0 resolution: "@types/node@npm:20.10.0" @@ -1380,6 +1619,16 @@ __metadata: languageName: node linkType: hard +"aggregate-error@npm:^3.1.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 + languageName: node + linkType: hard + "ajv@npm:^6.12.4": version: 6.12.6 resolution: "ajv@npm:6.12.6" @@ -1517,6 +1766,13 @@ __metadata: languageName: node linkType: hard +"bottleneck@npm:^2.15.3": + version: 2.19.5 + resolution: "bottleneck@npm:2.19.5" + checksum: b0f72e45b2e0f56a21ba720183f16bef8e693452fb0495d997fa354e42904353a94bd8fd429868e6751bc85e54b6755190519eed5a0ae0a94a5185209ae7c6d0 + languageName: node + linkType: hard + "bplist-parser@npm:^0.2.0": version: 0.2.0 resolution: "bplist-parser@npm:0.2.0" @@ -1568,6 +1824,13 @@ __metadata: languageName: node linkType: hard +"btoa-lite@npm:^1.0.0": + version: 1.0.0 + resolution: "btoa-lite@npm:1.0.0" + checksum: 7a4f0568ae3c915464650f98fde7901ae07b13a333a614515a0c86876b3528670fafece28dfef9745d971a613bb83341823afb0c20c6f318b384c1e364b9eb95 + languageName: node + linkType: hard + "buffer-crc32@npm:~0.2.3": version: 0.2.13 resolution: "buffer-crc32@npm:0.2.13" @@ -1575,6 +1838,13 @@ __metadata: languageName: node linkType: hard +"buffer-equal-constant-time@npm:1.0.1": + version: 1.0.1 + resolution: "buffer-equal-constant-time@npm:1.0.1" + checksum: fb2294e64d23c573d0dd1f1e7a466c3e978fe94a4e0f8183937912ca374619773bef8e2aceb854129d2efecbbc515bbd0cc78d2734a3e3031edb0888531bbc8e + languageName: node + linkType: hard + "buffer-writer@npm:2.0.0": version: 2.0.0 resolution: "buffer-writer@npm:2.0.0" @@ -1678,6 +1948,13 @@ __metadata: languageName: node linkType: hard +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 + languageName: node + linkType: hard + "cliui@npm:^7.0.2": version: 7.0.4 resolution: "cliui@npm:7.0.4" @@ -1902,7 +2179,7 @@ __metadata: languageName: node linkType: hard -"deprecation@npm:^2.0.0": +"deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": version: 2.3.1 resolution: "deprecation@npm:2.3.1" checksum: 23d688ba66b74d09b908c40a76179418acbeeb0bfdf218c8075c58ad8d0c315130cb91aa3dffb623aa3a411a3569ce56c6460de6c8d69071c17fe6dd2442f032 @@ -1944,6 +2221,7 @@ __metadata: minimatch: ^9.0.3 ts-node: ^10.9.1 typescript: 5.2 + utils: "*" bin: workflow-diagrams-generator: dist/index.js languageName: unknown @@ -2002,6 +2280,15 @@ __metadata: languageName: node linkType: hard +"ecdsa-sig-formatter@npm:1.0.11": + version: 1.0.11 + resolution: "ecdsa-sig-formatter@npm:1.0.11" + dependencies: + safe-buffer: ^5.0.1 + checksum: ebfbf19d4b8be938f4dd4a83b8788385da353d63307ede301a9252f9f7f88672e76f2191618fd8edfc2f24679236064176fab0b78131b161ee73daa37125408c + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.4.535": version: 1.4.593 resolution: "electron-to-chromium@npm:1.4.593" @@ -2752,6 +3039,13 @@ __metadata: languageName: node linkType: hard +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -3016,6 +3310,45 @@ __metadata: languageName: node linkType: hard +"jsonwebtoken@npm:^9.0.2": + version: 9.0.2 + resolution: "jsonwebtoken@npm:9.0.2" + dependencies: + jws: ^3.2.2 + lodash.includes: ^4.3.0 + lodash.isboolean: ^3.0.3 + lodash.isinteger: ^4.0.4 + lodash.isnumber: ^3.0.3 + lodash.isplainobject: ^4.0.6 + lodash.isstring: ^4.0.1 + lodash.once: ^4.0.0 + ms: ^2.1.1 + semver: ^7.5.4 + checksum: d287a29814895e866db2e5a0209ce730cbc158441a0e5a70d5e940eb0d28ab7498c6bf45029cc8b479639bca94056e9a7f254e2cdb92a2f5750c7f358657a131 + languageName: node + linkType: hard + +"jwa@npm:^1.4.1": + version: 1.4.1 + resolution: "jwa@npm:1.4.1" + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: ^5.0.1 + checksum: 5c533540bf38702e73cf14765805a94027c66a0aa8b16bc3e89d8d905e61a4ce2791e87e21be97d1293a5ee9d4f3e5e47737e671768265ca4f25706db551d5e9 + languageName: node + linkType: hard + +"jws@npm:^3.2.2": + version: 3.2.2 + resolution: "jws@npm:3.2.2" + dependencies: + jwa: ^1.4.1 + safe-buffer: ^5.0.1 + checksum: e770704533d92df358adad7d1261fdecad4d7b66fa153ba80d047e03ca0f1f73007ce5ed3fbc04d2eba09ba6e7e6e645f351e08e5ab51614df1b0aa4f384dfff + languageName: node + linkType: hard + "keyv@npm:^4.5.3": version: 4.5.4 resolution: "keyv@npm:4.5.4" @@ -3129,6 +3462,48 @@ __metadata: languageName: node linkType: hard +"lodash.includes@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.includes@npm:4.3.0" + checksum: 7ca498b9b75bf602d04e48c0adb842dfc7d90f77bcb2a91a2b2be34a723ad24bc1c8b3683ec6b2552a90f216c723cdea530ddb11a3320e08fa38265703978f4b + languageName: node + linkType: hard + +"lodash.isboolean@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isboolean@npm:3.0.3" + checksum: 0aac604c1ef7e72f9a6b798e5b676606042401dd58e49f051df3cc1e3adb497b3d7695635a5cbec4ae5f66456b951fdabe7d6b387055f13267cde521f10ec7f7 + languageName: node + linkType: hard + +"lodash.isinteger@npm:^4.0.4": + version: 4.0.4 + resolution: "lodash.isinteger@npm:4.0.4" + checksum: 4c3e023a2373bf65bf366d3b8605b97ec830bca702a926939bcaa53f8e02789b6a176e7f166b082f9365bfec4121bfeb52e86e9040cb8d450e64c858583f61b7 + languageName: node + linkType: hard + +"lodash.isnumber@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isnumber@npm:3.0.3" + checksum: 2d01530513a1ee4f72dd79528444db4e6360588adcb0e2ff663db2b3f642d4bb3d687051ae1115751ca9082db4fdef675160071226ca6bbf5f0c123dbf0aa12d + languageName: node + linkType: hard + +"lodash.isplainobject@npm:^4.0.6": + version: 4.0.6 + resolution: "lodash.isplainobject@npm:4.0.6" + checksum: afd70b5c450d1e09f32a737bed06ff85b873ecd3d3d3400458725283e3f2e0bb6bf48e67dbe7a309eb371a822b16a26cca4a63c8c52db3fc7dc9d5f9dd324cbb + languageName: node + linkType: hard + +"lodash.isstring@npm:^4.0.1": + version: 4.0.1 + resolution: "lodash.isstring@npm:4.0.1" + checksum: 09eaf980a283f9eef58ef95b30ec7fee61df4d6bf4aba3b5f096869cc58f24c9da17900febc8ffd67819b4e29de29793190e88dc96983db92d84c95fa85d1c92 + languageName: node + linkType: hard + "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -3136,6 +3511,13 @@ __metadata: languageName: node linkType: hard +"lodash.once@npm:^4.0.0": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: 46a9a0a66c45dd812fcc016e46605d85ad599fe87d71a02f6736220554b52ffbe82e79a483ad40f52a8a95755b0d1077fba259da8bfb6694a7abbf4a48f1fc04 + languageName: node + linkType: hard + "lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -3152,6 +3534,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.0.0": + version: 10.2.0 + resolution: "lru-cache@npm:10.2.0" + checksum: c9847612aa2daaef102d30542a8d6d9b2c2bb36581c1bf0dc3ebf5e5f3352c772a749e604afae2e46873b930a9e9523743faac4e5b937c576ab29196774712ee + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -3323,6 +3712,13 @@ __metadata: languageName: node linkType: hard +"ms@npm:^2.1.1": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -3410,6 +3806,24 @@ __metadata: languageName: node linkType: hard +"octokit@npm:^3.1.2": + version: 3.1.2 + resolution: "octokit@npm:3.1.2" + dependencies: + "@octokit/app": ^14.0.2 + "@octokit/core": ^5.0.0 + "@octokit/oauth-app": ^6.0.0 + "@octokit/plugin-paginate-graphql": ^4.0.0 + "@octokit/plugin-paginate-rest": ^9.0.0 + "@octokit/plugin-rest-endpoint-methods": ^10.0.0 + "@octokit/plugin-retry": ^6.0.0 + "@octokit/plugin-throttling": ^8.0.0 + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^12.0.0 + checksum: 8d9b1847c1c5295fed2b9ea574213ae55f9a12d75913bc77575f48382b8d1998446adeea32095d4866591b224678b0ffa4b6c8ccdb2c4dcd2ec679033a1dc696 + languageName: node + linkType: hard + "once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -4073,6 +4487,13 @@ __metadata: languageName: node linkType: hard +"safe-buffer@npm:^5.0.1, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + "safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" @@ -4080,13 +4501,6 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: 6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 - languageName: node - linkType: hard - "scripts@workspace:packages/scripts": version: 0.0.0-use.local resolution: "scripts@workspace:packages/scripts" @@ -4794,6 +5208,16 @@ __metadata: languageName: node linkType: hard +"universal-github-app-jwt@npm:^1.1.2": + version: 1.1.2 + resolution: "universal-github-app-jwt@npm:1.1.2" + dependencies: + "@types/jsonwebtoken": ^9.0.0 + jsonwebtoken: ^9.0.2 + checksum: 061d2a52c25f0a09a5ae40167e6006ba89510df9934070996d8ca3019afd34f7f28fbb74a93d1627beb4209faf04ec9173f0dc9ff351ee2ec42ab76cff389a80 + languageName: node + linkType: hard + "universal-user-agent@npm:^6.0.0": version: 6.0.1 resolution: "universal-user-agent@npm:6.0.1" @@ -4850,6 +5274,7 @@ __metadata: resolution: "utils@workspace:packages/utils" dependencies: "@types/node": ^16.11.10 + octokit: ^3.1.2 rimraf: ^5.0.5 typescript: 5.2 peerDependencies: