From 4ddc72c10f77844789e068abc7863bf2077fab7d Mon Sep 17 00:00:00 2001 From: Ignacio Aldama Vicente Date: Wed, 16 Jul 2025 15:45:51 +0200 Subject: [PATCH 01/13] feat: use CI scripts --- .github/workflows/labels.yml | 26 - .github/workflows/main.yml | 2 +- .github/workflows/with-docker.yml | 2 +- action.yml | 27 +- dist/index.js | 630 +- index.ts | 11 +- scripts/pull-request.ts | 279 +- test-data/.bitmap | 1415 +- test-data/.eslintrc.json | 2 +- test-data/pnpm-lock.yaml | 14009 +++++++--------- .../get-message/get-message.composition.tsx | 7 + .../scope/get-message/get-message.docs.mdx | 19 + .../scope/get-message/get-message.spec.tsx | 9 + test-data/scope/get-message/get-message.tsx | 16 + test-data/scope/get-message/index.ts | 2 + .../apps => scope}/my-app/index.html | 0 .../apps => scope}/my-app/index.ts | 0 .../apps => scope}/my-app/my-app.app-root.tsx | 0 .../apps => scope}/my-app/my-app.bit-app.ts | 0 .../my-app/my-app.composition.tsx | 0 .../apps => scope}/my-app/my-app.docs.mdx | 2 +- test-data/scope/my-app/my-app.tsx | 10 + .../apps => scope}/my-app/server.app-root.tsx | 0 .../apps => scope}/my-app/vite.config.js | 0 test-data/scope/my-env/.eslintrc.json | 6 + test-data/scope/my-env/config/eslintrc.cjs | 6 + .../scope/my-env/config/prettier.config.cjs | 8 + test-data/scope/my-env/config/tsconfig.json | 8 + test-data/scope/my-env/config/vite.config.mjs | 4 + .../scope/my-env/config/vitest.config.mjs | 10 + .../scope/my-env/config/vitest.setup.mjs | 2 + test-data/scope/my-env/env.jsonc | 3 + test-data/scope/my-env/index.ts | 4 + test-data/scope/my-env/my-env.bit-env.ts | 43 + test-data/scope/my-env/my-env.docs.mdx | 58 + test-data/scope/my-env/preview/docs.tsx | 8 + test-data/scope/my-env/preview/mounter.tsx | 19 + test-data/scope/my-env/tsconfig.json | 5 + test-data/scope/my-env/types/env.d.ts | 16 + test-data/test-scope/apps/.eslintrc.json | 6 - test-data/test-scope/apps/my-app/my-app.tsx | 10 - test-data/test-scope/apps/tsconfig.json | 5 - .../test-scope/get-hello-world/.eslintrc.json | 6 - .../get-hello-world.composition.tsx | 9 - .../get-hello-world/get-hello-world.docs.mdx | 11 - .../get-hello-world/get-hello-world.spec.ts | 9 - .../get-hello-world/get-hello-world.ts | 10 - test-data/test-scope/get-hello-world/index.ts | 1 - .../test-scope/get-hello-world/tsconfig.json | 5 - .../test-scope/sample-component-1/index.ts | 1 - .../sample-component-1.docs.mdx | 10 - .../sample-component-1.spec.ts | 5 - .../sample-component-1/sample-component-1.ts | 7 - .../test-scope/sample-component-10/index.ts | 1 - .../sample-component-10.docs.mdx | 10 - .../sample-component-10.spec.ts | 5 - .../sample-component-10.ts | 7 - .../test-scope/sample-component-100/index.ts | 1 - .../sample-component-100.docs.mdx | 10 - .../sample-component-100.spec.ts | 5 - .../sample-component-100.ts | 7 - .../test-scope/sample-component-11/index.ts | 1 - .../sample-component-11.docs.mdx | 10 - .../sample-component-11.spec.ts | 5 - .../sample-component-11.ts | 7 - .../test-scope/sample-component-12/index.ts | 1 - .../sample-component-12.docs.mdx | 10 - .../sample-component-12.spec.ts | 5 - .../sample-component-12.ts | 7 - .../test-scope/sample-component-13/index.ts | 1 - .../sample-component-13.docs.mdx | 10 - .../sample-component-13.spec.ts | 5 - .../sample-component-13.ts | 7 - .../test-scope/sample-component-14/index.ts | 1 - .../sample-component-14.docs.mdx | 10 - .../sample-component-14.spec.ts | 5 - .../sample-component-14.ts | 7 - .../test-scope/sample-component-15/index.ts | 1 - .../sample-component-15.docs.mdx | 10 - .../sample-component-15.spec.ts | 5 - .../sample-component-15.ts | 7 - .../test-scope/sample-component-16/index.ts | 1 - .../sample-component-16.docs.mdx | 10 - .../sample-component-16.spec.ts | 5 - .../sample-component-16.ts | 7 - .../test-scope/sample-component-17/index.ts | 1 - .../sample-component-17.docs.mdx | 10 - .../sample-component-17.spec.ts | 5 - .../sample-component-17.ts | 7 - .../test-scope/sample-component-18/index.ts | 1 - .../sample-component-18.docs.mdx | 10 - .../sample-component-18.spec.ts | 5 - .../sample-component-18.ts | 7 - .../test-scope/sample-component-19/index.ts | 1 - .../sample-component-19.docs.mdx | 10 - .../sample-component-19.spec.ts | 5 - .../sample-component-19.ts | 7 - .../test-scope/sample-component-2/index.ts | 1 - .../sample-component-2.docs.mdx | 10 - .../sample-component-2.spec.ts | 5 - .../sample-component-2/sample-component-2.ts | 7 - .../test-scope/sample-component-20/index.ts | 1 - .../sample-component-20.docs.mdx | 10 - .../sample-component-20.spec.ts | 5 - .../sample-component-20.ts | 7 - .../test-scope/sample-component-21/index.ts | 1 - .../sample-component-21.docs.mdx | 10 - .../sample-component-21.spec.ts | 5 - .../sample-component-21.ts | 7 - .../test-scope/sample-component-22/index.ts | 1 - .../sample-component-22.docs.mdx | 10 - .../sample-component-22.spec.ts | 5 - .../sample-component-22.ts | 7 - .../test-scope/sample-component-23/index.ts | 1 - .../sample-component-23.docs.mdx | 10 - .../sample-component-23.spec.ts | 5 - .../sample-component-23.ts | 7 - .../test-scope/sample-component-24/index.ts | 1 - .../sample-component-24.docs.mdx | 10 - .../sample-component-24.spec.ts | 5 - .../sample-component-24.ts | 7 - .../test-scope/sample-component-25/index.ts | 1 - .../sample-component-25.docs.mdx | 10 - .../sample-component-25.spec.ts | 5 - .../sample-component-25.ts | 7 - .../test-scope/sample-component-26/index.ts | 1 - .../sample-component-26.docs.mdx | 10 - .../sample-component-26.spec.ts | 5 - .../sample-component-26.ts | 7 - .../test-scope/sample-component-27/index.ts | 1 - .../sample-component-27.docs.mdx | 10 - .../sample-component-27.spec.ts | 5 - .../sample-component-27.ts | 7 - .../test-scope/sample-component-28/index.ts | 1 - .../sample-component-28.docs.mdx | 10 - .../sample-component-28.spec.ts | 5 - .../sample-component-28.ts | 7 - .../test-scope/sample-component-29/index.ts | 1 - .../sample-component-29.docs.mdx | 10 - .../sample-component-29.spec.ts | 5 - .../sample-component-29.ts | 7 - .../test-scope/sample-component-3/index.ts | 1 - .../sample-component-3.docs.mdx | 10 - .../sample-component-3.spec.ts | 5 - .../sample-component-3/sample-component-3.ts | 7 - .../test-scope/sample-component-30/index.ts | 1 - .../sample-component-30.docs.mdx | 10 - .../sample-component-30.spec.ts | 5 - .../sample-component-30.ts | 7 - .../test-scope/sample-component-31/index.ts | 1 - .../sample-component-31.docs.mdx | 10 - .../sample-component-31.spec.ts | 5 - .../sample-component-31.ts | 7 - .../test-scope/sample-component-32/index.ts | 1 - .../sample-component-32.docs.mdx | 10 - .../sample-component-32.spec.ts | 5 - .../sample-component-32.ts | 7 - .../test-scope/sample-component-33/index.ts | 1 - .../sample-component-33.docs.mdx | 10 - .../sample-component-33.spec.ts | 5 - .../sample-component-33.ts | 7 - .../test-scope/sample-component-34/index.ts | 1 - .../sample-component-34.docs.mdx | 10 - .../sample-component-34.spec.ts | 5 - .../sample-component-34.ts | 7 - .../test-scope/sample-component-35/index.ts | 1 - .../sample-component-35.docs.mdx | 10 - .../sample-component-35.spec.ts | 5 - .../sample-component-35.ts | 7 - .../test-scope/sample-component-36/index.ts | 1 - .../sample-component-36.docs.mdx | 10 - .../sample-component-36.spec.ts | 5 - .../sample-component-36.ts | 7 - .../test-scope/sample-component-37/index.ts | 1 - .../sample-component-37.docs.mdx | 10 - .../sample-component-37.spec.ts | 5 - .../sample-component-37.ts | 7 - .../test-scope/sample-component-38/index.ts | 1 - .../sample-component-38.docs.mdx | 10 - .../sample-component-38.spec.ts | 5 - .../sample-component-38.ts | 7 - .../test-scope/sample-component-39/index.ts | 1 - .../sample-component-39.docs.mdx | 10 - .../sample-component-39.spec.ts | 5 - .../sample-component-39.ts | 7 - .../test-scope/sample-component-4/index.ts | 1 - .../sample-component-4.docs.mdx | 10 - .../sample-component-4.spec.ts | 5 - .../sample-component-4/sample-component-4.ts | 7 - .../test-scope/sample-component-40/index.ts | 1 - .../sample-component-40.docs.mdx | 10 - .../sample-component-40.spec.ts | 5 - .../sample-component-40.ts | 7 - .../test-scope/sample-component-41/index.ts | 1 - .../sample-component-41.docs.mdx | 10 - .../sample-component-41.spec.ts | 5 - .../sample-component-41.ts | 7 - .../test-scope/sample-component-42/index.ts | 1 - .../sample-component-42.docs.mdx | 10 - .../sample-component-42.spec.ts | 5 - .../sample-component-42.ts | 7 - .../test-scope/sample-component-43/index.ts | 1 - .../sample-component-43.docs.mdx | 10 - .../sample-component-43.spec.ts | 5 - .../sample-component-43.ts | 7 - .../test-scope/sample-component-44/index.ts | 1 - .../sample-component-44.docs.mdx | 10 - .../sample-component-44.spec.ts | 5 - .../sample-component-44.ts | 7 - .../test-scope/sample-component-45/index.ts | 1 - .../sample-component-45.docs.mdx | 10 - .../sample-component-45.spec.ts | 5 - .../sample-component-45.ts | 7 - .../test-scope/sample-component-46/index.ts | 1 - .../sample-component-46.docs.mdx | 10 - .../sample-component-46.spec.ts | 5 - .../sample-component-46.ts | 7 - .../test-scope/sample-component-47/index.ts | 1 - .../sample-component-47.docs.mdx | 10 - .../sample-component-47.spec.ts | 5 - .../sample-component-47.ts | 7 - .../test-scope/sample-component-48/index.ts | 1 - .../sample-component-48.docs.mdx | 10 - .../sample-component-48.spec.ts | 5 - .../sample-component-48.ts | 7 - .../test-scope/sample-component-49/index.ts | 1 - .../sample-component-49.docs.mdx | 10 - .../sample-component-49.spec.ts | 5 - .../sample-component-49.ts | 7 - .../test-scope/sample-component-5/index.ts | 1 - .../sample-component-5.docs.mdx | 10 - .../sample-component-5.spec.ts | 5 - .../sample-component-5/sample-component-5.ts | 7 - .../test-scope/sample-component-50/index.ts | 1 - .../sample-component-50.docs.mdx | 10 - .../sample-component-50.spec.ts | 5 - .../sample-component-50.ts | 7 - .../test-scope/sample-component-51/index.ts | 1 - .../sample-component-51.docs.mdx | 10 - .../sample-component-51.spec.ts | 5 - .../sample-component-51.ts | 7 - .../test-scope/sample-component-52/index.ts | 1 - .../sample-component-52.docs.mdx | 10 - .../sample-component-52.spec.ts | 5 - .../sample-component-52.ts | 7 - .../test-scope/sample-component-53/index.ts | 1 - .../sample-component-53.docs.mdx | 10 - .../sample-component-53.spec.ts | 5 - .../sample-component-53.ts | 7 - .../test-scope/sample-component-54/index.ts | 1 - .../sample-component-54.docs.mdx | 10 - .../sample-component-54.spec.ts | 5 - .../sample-component-54.ts | 7 - .../test-scope/sample-component-55/index.ts | 1 - .../sample-component-55.docs.mdx | 10 - .../sample-component-55.spec.ts | 5 - .../sample-component-55.ts | 7 - .../test-scope/sample-component-56/index.ts | 1 - .../sample-component-56.docs.mdx | 10 - .../sample-component-56.spec.ts | 5 - .../sample-component-56.ts | 7 - .../test-scope/sample-component-57/index.ts | 1 - .../sample-component-57.docs.mdx | 10 - .../sample-component-57.spec.ts | 5 - .../sample-component-57.ts | 7 - .../test-scope/sample-component-58/index.ts | 1 - .../sample-component-58.docs.mdx | 10 - .../sample-component-58.spec.ts | 5 - .../sample-component-58.ts | 7 - .../test-scope/sample-component-59/index.ts | 1 - .../sample-component-59.docs.mdx | 10 - .../sample-component-59.spec.ts | 5 - .../sample-component-59.ts | 7 - .../test-scope/sample-component-6/index.ts | 1 - .../sample-component-6.docs.mdx | 10 - .../sample-component-6.spec.ts | 5 - .../sample-component-6/sample-component-6.ts | 7 - .../test-scope/sample-component-60/index.ts | 1 - .../sample-component-60.docs.mdx | 10 - .../sample-component-60.spec.ts | 5 - .../sample-component-60.ts | 7 - .../test-scope/sample-component-61/index.ts | 1 - .../sample-component-61.docs.mdx | 10 - .../sample-component-61.spec.ts | 5 - .../sample-component-61.ts | 7 - .../test-scope/sample-component-62/index.ts | 1 - .../sample-component-62.docs.mdx | 10 - .../sample-component-62.spec.ts | 5 - .../sample-component-62.ts | 7 - .../test-scope/sample-component-63/index.ts | 1 - .../sample-component-63.docs.mdx | 10 - .../sample-component-63.spec.ts | 5 - .../sample-component-63.ts | 7 - .../test-scope/sample-component-64/index.ts | 1 - .../sample-component-64.docs.mdx | 10 - .../sample-component-64.spec.ts | 5 - .../sample-component-64.ts | 7 - .../test-scope/sample-component-65/index.ts | 1 - .../sample-component-65.docs.mdx | 10 - .../sample-component-65.spec.ts | 5 - .../sample-component-65.ts | 7 - .../test-scope/sample-component-66/index.ts | 1 - .../sample-component-66.docs.mdx | 10 - .../sample-component-66.spec.ts | 5 - .../sample-component-66.ts | 7 - .../test-scope/sample-component-67/index.ts | 1 - .../sample-component-67.docs.mdx | 10 - .../sample-component-67.spec.ts | 5 - .../sample-component-67.ts | 7 - .../test-scope/sample-component-68/index.ts | 1 - .../sample-component-68.docs.mdx | 10 - .../sample-component-68.spec.ts | 5 - .../sample-component-68.ts | 7 - .../test-scope/sample-component-69/index.ts | 1 - .../sample-component-69.docs.mdx | 10 - .../sample-component-69.spec.ts | 5 - .../sample-component-69.ts | 7 - .../test-scope/sample-component-7/index.ts | 1 - .../sample-component-7.docs.mdx | 10 - .../sample-component-7.spec.ts | 5 - .../sample-component-7/sample-component-7.ts | 7 - .../test-scope/sample-component-70/index.ts | 1 - .../sample-component-70.docs.mdx | 10 - .../sample-component-70.spec.ts | 5 - .../sample-component-70.ts | 7 - .../test-scope/sample-component-71/index.ts | 1 - .../sample-component-71.docs.mdx | 10 - .../sample-component-71.spec.ts | 5 - .../sample-component-71.ts | 7 - .../test-scope/sample-component-72/index.ts | 1 - .../sample-component-72.docs.mdx | 10 - .../sample-component-72.spec.ts | 5 - .../sample-component-72.ts | 7 - .../test-scope/sample-component-73/index.ts | 1 - .../sample-component-73.docs.mdx | 10 - .../sample-component-73.spec.ts | 5 - .../sample-component-73.ts | 7 - .../test-scope/sample-component-74/index.ts | 1 - .../sample-component-74.docs.mdx | 10 - .../sample-component-74.spec.ts | 5 - .../sample-component-74.ts | 7 - .../test-scope/sample-component-75/index.ts | 1 - .../sample-component-75.docs.mdx | 10 - .../sample-component-75.spec.ts | 5 - .../sample-component-75.ts | 7 - .../test-scope/sample-component-76/index.ts | 1 - .../sample-component-76.docs.mdx | 10 - .../sample-component-76.spec.ts | 5 - .../sample-component-76.ts | 7 - .../test-scope/sample-component-77/index.ts | 1 - .../sample-component-77.docs.mdx | 10 - .../sample-component-77.spec.ts | 5 - .../sample-component-77.ts | 7 - .../test-scope/sample-component-78/index.ts | 1 - .../sample-component-78.docs.mdx | 10 - .../sample-component-78.spec.ts | 5 - .../sample-component-78.ts | 7 - .../test-scope/sample-component-79/index.ts | 1 - .../sample-component-79.docs.mdx | 10 - .../sample-component-79.spec.ts | 5 - .../sample-component-79.ts | 7 - .../test-scope/sample-component-8/index.ts | 1 - .../sample-component-8.docs.mdx | 10 - .../sample-component-8.spec.ts | 5 - .../sample-component-8/sample-component-8.ts | 7 - .../test-scope/sample-component-80/index.ts | 1 - .../sample-component-80.docs.mdx | 10 - .../sample-component-80.spec.ts | 5 - .../sample-component-80.ts | 7 - .../test-scope/sample-component-81/index.ts | 1 - .../sample-component-81.docs.mdx | 10 - .../sample-component-81.spec.ts | 5 - .../sample-component-81.ts | 7 - .../test-scope/sample-component-82/index.ts | 1 - .../sample-component-82.docs.mdx | 10 - .../sample-component-82.spec.ts | 5 - .../sample-component-82.ts | 7 - .../test-scope/sample-component-83/index.ts | 1 - .../sample-component-83.docs.mdx | 10 - .../sample-component-83.spec.ts | 5 - .../sample-component-83.ts | 7 - .../test-scope/sample-component-84/index.ts | 1 - .../sample-component-84.docs.mdx | 10 - .../sample-component-84.spec.ts | 5 - .../sample-component-84.ts | 7 - .../test-scope/sample-component-85/index.ts | 1 - .../sample-component-85.docs.mdx | 10 - .../sample-component-85.spec.ts | 5 - .../sample-component-85.ts | 7 - .../test-scope/sample-component-86/index.ts | 1 - .../sample-component-86.docs.mdx | 10 - .../sample-component-86.spec.ts | 5 - .../sample-component-86.ts | 7 - .../test-scope/sample-component-87/index.ts | 1 - .../sample-component-87.docs.mdx | 10 - .../sample-component-87.spec.ts | 5 - .../sample-component-87.ts | 7 - .../test-scope/sample-component-88/index.ts | 1 - .../sample-component-88.docs.mdx | 10 - .../sample-component-88.spec.ts | 5 - .../sample-component-88.ts | 7 - .../test-scope/sample-component-89/index.ts | 1 - .../sample-component-89.docs.mdx | 10 - .../sample-component-89.spec.ts | 5 - .../sample-component-89.ts | 7 - .../test-scope/sample-component-9/index.ts | 1 - .../sample-component-9.docs.mdx | 10 - .../sample-component-9.spec.ts | 5 - .../sample-component-9/sample-component-9.ts | 7 - .../test-scope/sample-component-90/index.ts | 1 - .../sample-component-90.docs.mdx | 10 - .../sample-component-90.spec.ts | 5 - .../sample-component-90.ts | 7 - .../test-scope/sample-component-91/index.ts | 1 - .../sample-component-91.docs.mdx | 10 - .../sample-component-91.spec.ts | 5 - .../sample-component-91.ts | 7 - .../test-scope/sample-component-92/index.ts | 1 - .../sample-component-92.docs.mdx | 10 - .../sample-component-92.spec.ts | 5 - .../sample-component-92.ts | 7 - .../test-scope/sample-component-93/index.ts | 1 - .../sample-component-93.docs.mdx | 10 - .../sample-component-93.spec.ts | 5 - .../sample-component-93.ts | 7 - .../test-scope/sample-component-94/index.ts | 1 - .../sample-component-94.docs.mdx | 10 - .../sample-component-94.spec.ts | 5 - .../sample-component-94.ts | 7 - .../test-scope/sample-component-95/index.ts | 1 - .../sample-component-95.docs.mdx | 10 - .../sample-component-95.spec.ts | 5 - .../sample-component-95.ts | 7 - .../test-scope/sample-component-96/index.ts | 1 - .../sample-component-96.docs.mdx | 10 - .../sample-component-96.spec.ts | 5 - .../sample-component-96.ts | 7 - .../test-scope/sample-component-97/index.ts | 1 - .../sample-component-97.docs.mdx | 10 - .../sample-component-97.spec.ts | 5 - .../sample-component-97.ts | 7 - .../test-scope/sample-component-98/index.ts | 1 - .../sample-component-98.docs.mdx | 10 - .../sample-component-98.spec.ts | 5 - .../sample-component-98.ts | 7 - .../test-scope/sample-component-99/index.ts | 1 - .../sample-component-99.docs.mdx | 10 - .../sample-component-99.spec.ts | 5 - .../sample-component-99.ts | 7 - test-data/test-scope/ui/.eslintrc.json | 6 - .../hello-world/hello-world.composition.tsx | 5 - .../ui/hello-world/hello-world.docs.mdx | 4 - .../ui/hello-world/hello-world.spec.tsx | 8 - .../test-scope/ui/hello-world/hello-world.tsx | 9 - test-data/test-scope/ui/hello-world/index.ts | 1 - test-data/test-scope/ui/tsconfig.json | 5 - test-data/tsconfig.json | 2 +- test-data/workspace.jsonc | 48 +- 458 files changed, 6316 insertions(+), 12812 deletions(-) delete mode 100644 .github/workflows/labels.yml create mode 100644 test-data/scope/get-message/get-message.composition.tsx create mode 100644 test-data/scope/get-message/get-message.docs.mdx create mode 100644 test-data/scope/get-message/get-message.spec.tsx create mode 100644 test-data/scope/get-message/get-message.tsx create mode 100644 test-data/scope/get-message/index.ts rename test-data/{test-scope/apps => scope}/my-app/index.html (100%) rename test-data/{test-scope/apps => scope}/my-app/index.ts (100%) rename test-data/{test-scope/apps => scope}/my-app/my-app.app-root.tsx (100%) rename test-data/{test-scope/apps => scope}/my-app/my-app.bit-app.ts (100%) rename test-data/{test-scope/apps => scope}/my-app/my-app.composition.tsx (100%) rename test-data/{test-scope/apps => scope}/my-app/my-app.docs.mdx (88%) create mode 100644 test-data/scope/my-app/my-app.tsx rename test-data/{test-scope/apps => scope}/my-app/server.app-root.tsx (100%) rename test-data/{test-scope/apps => scope}/my-app/vite.config.js (100%) create mode 100644 test-data/scope/my-env/.eslintrc.json create mode 100644 test-data/scope/my-env/config/eslintrc.cjs create mode 100644 test-data/scope/my-env/config/prettier.config.cjs create mode 100644 test-data/scope/my-env/config/tsconfig.json create mode 100644 test-data/scope/my-env/config/vite.config.mjs create mode 100644 test-data/scope/my-env/config/vitest.config.mjs create mode 100644 test-data/scope/my-env/config/vitest.setup.mjs create mode 100644 test-data/scope/my-env/env.jsonc create mode 100644 test-data/scope/my-env/index.ts create mode 100644 test-data/scope/my-env/my-env.bit-env.ts create mode 100644 test-data/scope/my-env/my-env.docs.mdx create mode 100644 test-data/scope/my-env/preview/docs.tsx create mode 100644 test-data/scope/my-env/preview/mounter.tsx create mode 100644 test-data/scope/my-env/tsconfig.json create mode 100644 test-data/scope/my-env/types/env.d.ts delete mode 100644 test-data/test-scope/apps/.eslintrc.json delete mode 100644 test-data/test-scope/apps/my-app/my-app.tsx delete mode 100644 test-data/test-scope/apps/tsconfig.json delete mode 100644 test-data/test-scope/get-hello-world/.eslintrc.json delete mode 100644 test-data/test-scope/get-hello-world/get-hello-world.composition.tsx delete mode 100644 test-data/test-scope/get-hello-world/get-hello-world.docs.mdx delete mode 100644 test-data/test-scope/get-hello-world/get-hello-world.spec.ts delete mode 100644 test-data/test-scope/get-hello-world/get-hello-world.ts delete mode 100644 test-data/test-scope/get-hello-world/index.ts delete mode 100644 test-data/test-scope/get-hello-world/tsconfig.json delete mode 100644 test-data/test-scope/sample-component-1/index.ts delete mode 100644 test-data/test-scope/sample-component-1/sample-component-1.docs.mdx delete mode 100644 test-data/test-scope/sample-component-1/sample-component-1.spec.ts delete mode 100644 test-data/test-scope/sample-component-1/sample-component-1.ts delete mode 100644 test-data/test-scope/sample-component-10/index.ts delete mode 100644 test-data/test-scope/sample-component-10/sample-component-10.docs.mdx delete mode 100644 test-data/test-scope/sample-component-10/sample-component-10.spec.ts delete mode 100644 test-data/test-scope/sample-component-10/sample-component-10.ts delete mode 100644 test-data/test-scope/sample-component-100/index.ts delete mode 100644 test-data/test-scope/sample-component-100/sample-component-100.docs.mdx delete mode 100644 test-data/test-scope/sample-component-100/sample-component-100.spec.ts delete mode 100644 test-data/test-scope/sample-component-100/sample-component-100.ts delete mode 100644 test-data/test-scope/sample-component-11/index.ts delete mode 100644 test-data/test-scope/sample-component-11/sample-component-11.docs.mdx delete mode 100644 test-data/test-scope/sample-component-11/sample-component-11.spec.ts delete mode 100644 test-data/test-scope/sample-component-11/sample-component-11.ts delete mode 100644 test-data/test-scope/sample-component-12/index.ts delete mode 100644 test-data/test-scope/sample-component-12/sample-component-12.docs.mdx delete mode 100644 test-data/test-scope/sample-component-12/sample-component-12.spec.ts delete mode 100644 test-data/test-scope/sample-component-12/sample-component-12.ts delete mode 100644 test-data/test-scope/sample-component-13/index.ts delete mode 100644 test-data/test-scope/sample-component-13/sample-component-13.docs.mdx delete mode 100644 test-data/test-scope/sample-component-13/sample-component-13.spec.ts delete mode 100644 test-data/test-scope/sample-component-13/sample-component-13.ts delete mode 100644 test-data/test-scope/sample-component-14/index.ts delete mode 100644 test-data/test-scope/sample-component-14/sample-component-14.docs.mdx delete mode 100644 test-data/test-scope/sample-component-14/sample-component-14.spec.ts delete mode 100644 test-data/test-scope/sample-component-14/sample-component-14.ts delete mode 100644 test-data/test-scope/sample-component-15/index.ts delete mode 100644 test-data/test-scope/sample-component-15/sample-component-15.docs.mdx delete mode 100644 test-data/test-scope/sample-component-15/sample-component-15.spec.ts delete mode 100644 test-data/test-scope/sample-component-15/sample-component-15.ts delete mode 100644 test-data/test-scope/sample-component-16/index.ts delete mode 100644 test-data/test-scope/sample-component-16/sample-component-16.docs.mdx delete mode 100644 test-data/test-scope/sample-component-16/sample-component-16.spec.ts delete mode 100644 test-data/test-scope/sample-component-16/sample-component-16.ts delete mode 100644 test-data/test-scope/sample-component-17/index.ts delete mode 100644 test-data/test-scope/sample-component-17/sample-component-17.docs.mdx delete mode 100644 test-data/test-scope/sample-component-17/sample-component-17.spec.ts delete mode 100644 test-data/test-scope/sample-component-17/sample-component-17.ts delete mode 100644 test-data/test-scope/sample-component-18/index.ts delete mode 100644 test-data/test-scope/sample-component-18/sample-component-18.docs.mdx delete mode 100644 test-data/test-scope/sample-component-18/sample-component-18.spec.ts delete mode 100644 test-data/test-scope/sample-component-18/sample-component-18.ts delete mode 100644 test-data/test-scope/sample-component-19/index.ts delete mode 100644 test-data/test-scope/sample-component-19/sample-component-19.docs.mdx delete mode 100644 test-data/test-scope/sample-component-19/sample-component-19.spec.ts delete mode 100644 test-data/test-scope/sample-component-19/sample-component-19.ts delete mode 100644 test-data/test-scope/sample-component-2/index.ts delete mode 100644 test-data/test-scope/sample-component-2/sample-component-2.docs.mdx delete mode 100644 test-data/test-scope/sample-component-2/sample-component-2.spec.ts delete mode 100644 test-data/test-scope/sample-component-2/sample-component-2.ts delete mode 100644 test-data/test-scope/sample-component-20/index.ts delete mode 100644 test-data/test-scope/sample-component-20/sample-component-20.docs.mdx delete mode 100644 test-data/test-scope/sample-component-20/sample-component-20.spec.ts delete mode 100644 test-data/test-scope/sample-component-20/sample-component-20.ts delete mode 100644 test-data/test-scope/sample-component-21/index.ts delete mode 100644 test-data/test-scope/sample-component-21/sample-component-21.docs.mdx delete mode 100644 test-data/test-scope/sample-component-21/sample-component-21.spec.ts delete mode 100644 test-data/test-scope/sample-component-21/sample-component-21.ts delete mode 100644 test-data/test-scope/sample-component-22/index.ts delete mode 100644 test-data/test-scope/sample-component-22/sample-component-22.docs.mdx delete mode 100644 test-data/test-scope/sample-component-22/sample-component-22.spec.ts delete mode 100644 test-data/test-scope/sample-component-22/sample-component-22.ts delete mode 100644 test-data/test-scope/sample-component-23/index.ts delete mode 100644 test-data/test-scope/sample-component-23/sample-component-23.docs.mdx delete mode 100644 test-data/test-scope/sample-component-23/sample-component-23.spec.ts delete mode 100644 test-data/test-scope/sample-component-23/sample-component-23.ts delete mode 100644 test-data/test-scope/sample-component-24/index.ts delete mode 100644 test-data/test-scope/sample-component-24/sample-component-24.docs.mdx delete mode 100644 test-data/test-scope/sample-component-24/sample-component-24.spec.ts delete mode 100644 test-data/test-scope/sample-component-24/sample-component-24.ts delete mode 100644 test-data/test-scope/sample-component-25/index.ts delete mode 100644 test-data/test-scope/sample-component-25/sample-component-25.docs.mdx delete mode 100644 test-data/test-scope/sample-component-25/sample-component-25.spec.ts delete mode 100644 test-data/test-scope/sample-component-25/sample-component-25.ts delete mode 100644 test-data/test-scope/sample-component-26/index.ts delete mode 100644 test-data/test-scope/sample-component-26/sample-component-26.docs.mdx delete mode 100644 test-data/test-scope/sample-component-26/sample-component-26.spec.ts delete mode 100644 test-data/test-scope/sample-component-26/sample-component-26.ts delete mode 100644 test-data/test-scope/sample-component-27/index.ts delete mode 100644 test-data/test-scope/sample-component-27/sample-component-27.docs.mdx delete mode 100644 test-data/test-scope/sample-component-27/sample-component-27.spec.ts delete mode 100644 test-data/test-scope/sample-component-27/sample-component-27.ts delete mode 100644 test-data/test-scope/sample-component-28/index.ts delete mode 100644 test-data/test-scope/sample-component-28/sample-component-28.docs.mdx delete mode 100644 test-data/test-scope/sample-component-28/sample-component-28.spec.ts delete mode 100644 test-data/test-scope/sample-component-28/sample-component-28.ts delete mode 100644 test-data/test-scope/sample-component-29/index.ts delete mode 100644 test-data/test-scope/sample-component-29/sample-component-29.docs.mdx delete mode 100644 test-data/test-scope/sample-component-29/sample-component-29.spec.ts delete mode 100644 test-data/test-scope/sample-component-29/sample-component-29.ts delete mode 100644 test-data/test-scope/sample-component-3/index.ts delete mode 100644 test-data/test-scope/sample-component-3/sample-component-3.docs.mdx delete mode 100644 test-data/test-scope/sample-component-3/sample-component-3.spec.ts delete mode 100644 test-data/test-scope/sample-component-3/sample-component-3.ts delete mode 100644 test-data/test-scope/sample-component-30/index.ts delete mode 100644 test-data/test-scope/sample-component-30/sample-component-30.docs.mdx delete mode 100644 test-data/test-scope/sample-component-30/sample-component-30.spec.ts delete mode 100644 test-data/test-scope/sample-component-30/sample-component-30.ts delete mode 100644 test-data/test-scope/sample-component-31/index.ts delete mode 100644 test-data/test-scope/sample-component-31/sample-component-31.docs.mdx delete mode 100644 test-data/test-scope/sample-component-31/sample-component-31.spec.ts delete mode 100644 test-data/test-scope/sample-component-31/sample-component-31.ts delete mode 100644 test-data/test-scope/sample-component-32/index.ts delete mode 100644 test-data/test-scope/sample-component-32/sample-component-32.docs.mdx delete mode 100644 test-data/test-scope/sample-component-32/sample-component-32.spec.ts delete mode 100644 test-data/test-scope/sample-component-32/sample-component-32.ts delete mode 100644 test-data/test-scope/sample-component-33/index.ts delete mode 100644 test-data/test-scope/sample-component-33/sample-component-33.docs.mdx delete mode 100644 test-data/test-scope/sample-component-33/sample-component-33.spec.ts delete mode 100644 test-data/test-scope/sample-component-33/sample-component-33.ts delete mode 100644 test-data/test-scope/sample-component-34/index.ts delete mode 100644 test-data/test-scope/sample-component-34/sample-component-34.docs.mdx delete mode 100644 test-data/test-scope/sample-component-34/sample-component-34.spec.ts delete mode 100644 test-data/test-scope/sample-component-34/sample-component-34.ts delete mode 100644 test-data/test-scope/sample-component-35/index.ts delete mode 100644 test-data/test-scope/sample-component-35/sample-component-35.docs.mdx delete mode 100644 test-data/test-scope/sample-component-35/sample-component-35.spec.ts delete mode 100644 test-data/test-scope/sample-component-35/sample-component-35.ts delete mode 100644 test-data/test-scope/sample-component-36/index.ts delete mode 100644 test-data/test-scope/sample-component-36/sample-component-36.docs.mdx delete mode 100644 test-data/test-scope/sample-component-36/sample-component-36.spec.ts delete mode 100644 test-data/test-scope/sample-component-36/sample-component-36.ts delete mode 100644 test-data/test-scope/sample-component-37/index.ts delete mode 100644 test-data/test-scope/sample-component-37/sample-component-37.docs.mdx delete mode 100644 test-data/test-scope/sample-component-37/sample-component-37.spec.ts delete mode 100644 test-data/test-scope/sample-component-37/sample-component-37.ts delete mode 100644 test-data/test-scope/sample-component-38/index.ts delete mode 100644 test-data/test-scope/sample-component-38/sample-component-38.docs.mdx delete mode 100644 test-data/test-scope/sample-component-38/sample-component-38.spec.ts delete mode 100644 test-data/test-scope/sample-component-38/sample-component-38.ts delete mode 100644 test-data/test-scope/sample-component-39/index.ts delete mode 100644 test-data/test-scope/sample-component-39/sample-component-39.docs.mdx delete mode 100644 test-data/test-scope/sample-component-39/sample-component-39.spec.ts delete mode 100644 test-data/test-scope/sample-component-39/sample-component-39.ts delete mode 100644 test-data/test-scope/sample-component-4/index.ts delete mode 100644 test-data/test-scope/sample-component-4/sample-component-4.docs.mdx delete mode 100644 test-data/test-scope/sample-component-4/sample-component-4.spec.ts delete mode 100644 test-data/test-scope/sample-component-4/sample-component-4.ts delete mode 100644 test-data/test-scope/sample-component-40/index.ts delete mode 100644 test-data/test-scope/sample-component-40/sample-component-40.docs.mdx delete mode 100644 test-data/test-scope/sample-component-40/sample-component-40.spec.ts delete mode 100644 test-data/test-scope/sample-component-40/sample-component-40.ts delete mode 100644 test-data/test-scope/sample-component-41/index.ts delete mode 100644 test-data/test-scope/sample-component-41/sample-component-41.docs.mdx delete mode 100644 test-data/test-scope/sample-component-41/sample-component-41.spec.ts delete mode 100644 test-data/test-scope/sample-component-41/sample-component-41.ts delete mode 100644 test-data/test-scope/sample-component-42/index.ts delete mode 100644 test-data/test-scope/sample-component-42/sample-component-42.docs.mdx delete mode 100644 test-data/test-scope/sample-component-42/sample-component-42.spec.ts delete mode 100644 test-data/test-scope/sample-component-42/sample-component-42.ts delete mode 100644 test-data/test-scope/sample-component-43/index.ts delete mode 100644 test-data/test-scope/sample-component-43/sample-component-43.docs.mdx delete mode 100644 test-data/test-scope/sample-component-43/sample-component-43.spec.ts delete mode 100644 test-data/test-scope/sample-component-43/sample-component-43.ts delete mode 100644 test-data/test-scope/sample-component-44/index.ts delete mode 100644 test-data/test-scope/sample-component-44/sample-component-44.docs.mdx delete mode 100644 test-data/test-scope/sample-component-44/sample-component-44.spec.ts delete mode 100644 test-data/test-scope/sample-component-44/sample-component-44.ts delete mode 100644 test-data/test-scope/sample-component-45/index.ts delete mode 100644 test-data/test-scope/sample-component-45/sample-component-45.docs.mdx delete mode 100644 test-data/test-scope/sample-component-45/sample-component-45.spec.ts delete mode 100644 test-data/test-scope/sample-component-45/sample-component-45.ts delete mode 100644 test-data/test-scope/sample-component-46/index.ts delete mode 100644 test-data/test-scope/sample-component-46/sample-component-46.docs.mdx delete mode 100644 test-data/test-scope/sample-component-46/sample-component-46.spec.ts delete mode 100644 test-data/test-scope/sample-component-46/sample-component-46.ts delete mode 100644 test-data/test-scope/sample-component-47/index.ts delete mode 100644 test-data/test-scope/sample-component-47/sample-component-47.docs.mdx delete mode 100644 test-data/test-scope/sample-component-47/sample-component-47.spec.ts delete mode 100644 test-data/test-scope/sample-component-47/sample-component-47.ts delete mode 100644 test-data/test-scope/sample-component-48/index.ts delete mode 100644 test-data/test-scope/sample-component-48/sample-component-48.docs.mdx delete mode 100644 test-data/test-scope/sample-component-48/sample-component-48.spec.ts delete mode 100644 test-data/test-scope/sample-component-48/sample-component-48.ts delete mode 100644 test-data/test-scope/sample-component-49/index.ts delete mode 100644 test-data/test-scope/sample-component-49/sample-component-49.docs.mdx delete mode 100644 test-data/test-scope/sample-component-49/sample-component-49.spec.ts delete mode 100644 test-data/test-scope/sample-component-49/sample-component-49.ts delete mode 100644 test-data/test-scope/sample-component-5/index.ts delete mode 100644 test-data/test-scope/sample-component-5/sample-component-5.docs.mdx delete mode 100644 test-data/test-scope/sample-component-5/sample-component-5.spec.ts delete mode 100644 test-data/test-scope/sample-component-5/sample-component-5.ts delete mode 100644 test-data/test-scope/sample-component-50/index.ts delete mode 100644 test-data/test-scope/sample-component-50/sample-component-50.docs.mdx delete mode 100644 test-data/test-scope/sample-component-50/sample-component-50.spec.ts delete mode 100644 test-data/test-scope/sample-component-50/sample-component-50.ts delete mode 100644 test-data/test-scope/sample-component-51/index.ts delete mode 100644 test-data/test-scope/sample-component-51/sample-component-51.docs.mdx delete mode 100644 test-data/test-scope/sample-component-51/sample-component-51.spec.ts delete mode 100644 test-data/test-scope/sample-component-51/sample-component-51.ts delete mode 100644 test-data/test-scope/sample-component-52/index.ts delete mode 100644 test-data/test-scope/sample-component-52/sample-component-52.docs.mdx delete mode 100644 test-data/test-scope/sample-component-52/sample-component-52.spec.ts delete mode 100644 test-data/test-scope/sample-component-52/sample-component-52.ts delete mode 100644 test-data/test-scope/sample-component-53/index.ts delete mode 100644 test-data/test-scope/sample-component-53/sample-component-53.docs.mdx delete mode 100644 test-data/test-scope/sample-component-53/sample-component-53.spec.ts delete mode 100644 test-data/test-scope/sample-component-53/sample-component-53.ts delete mode 100644 test-data/test-scope/sample-component-54/index.ts delete mode 100644 test-data/test-scope/sample-component-54/sample-component-54.docs.mdx delete mode 100644 test-data/test-scope/sample-component-54/sample-component-54.spec.ts delete mode 100644 test-data/test-scope/sample-component-54/sample-component-54.ts delete mode 100644 test-data/test-scope/sample-component-55/index.ts delete mode 100644 test-data/test-scope/sample-component-55/sample-component-55.docs.mdx delete mode 100644 test-data/test-scope/sample-component-55/sample-component-55.spec.ts delete mode 100644 test-data/test-scope/sample-component-55/sample-component-55.ts delete mode 100644 test-data/test-scope/sample-component-56/index.ts delete mode 100644 test-data/test-scope/sample-component-56/sample-component-56.docs.mdx delete mode 100644 test-data/test-scope/sample-component-56/sample-component-56.spec.ts delete mode 100644 test-data/test-scope/sample-component-56/sample-component-56.ts delete mode 100644 test-data/test-scope/sample-component-57/index.ts delete mode 100644 test-data/test-scope/sample-component-57/sample-component-57.docs.mdx delete mode 100644 test-data/test-scope/sample-component-57/sample-component-57.spec.ts delete mode 100644 test-data/test-scope/sample-component-57/sample-component-57.ts delete mode 100644 test-data/test-scope/sample-component-58/index.ts delete mode 100644 test-data/test-scope/sample-component-58/sample-component-58.docs.mdx delete mode 100644 test-data/test-scope/sample-component-58/sample-component-58.spec.ts delete mode 100644 test-data/test-scope/sample-component-58/sample-component-58.ts delete mode 100644 test-data/test-scope/sample-component-59/index.ts delete mode 100644 test-data/test-scope/sample-component-59/sample-component-59.docs.mdx delete mode 100644 test-data/test-scope/sample-component-59/sample-component-59.spec.ts delete mode 100644 test-data/test-scope/sample-component-59/sample-component-59.ts delete mode 100644 test-data/test-scope/sample-component-6/index.ts delete mode 100644 test-data/test-scope/sample-component-6/sample-component-6.docs.mdx delete mode 100644 test-data/test-scope/sample-component-6/sample-component-6.spec.ts delete mode 100644 test-data/test-scope/sample-component-6/sample-component-6.ts delete mode 100644 test-data/test-scope/sample-component-60/index.ts delete mode 100644 test-data/test-scope/sample-component-60/sample-component-60.docs.mdx delete mode 100644 test-data/test-scope/sample-component-60/sample-component-60.spec.ts delete mode 100644 test-data/test-scope/sample-component-60/sample-component-60.ts delete mode 100644 test-data/test-scope/sample-component-61/index.ts delete mode 100644 test-data/test-scope/sample-component-61/sample-component-61.docs.mdx delete mode 100644 test-data/test-scope/sample-component-61/sample-component-61.spec.ts delete mode 100644 test-data/test-scope/sample-component-61/sample-component-61.ts delete mode 100644 test-data/test-scope/sample-component-62/index.ts delete mode 100644 test-data/test-scope/sample-component-62/sample-component-62.docs.mdx delete mode 100644 test-data/test-scope/sample-component-62/sample-component-62.spec.ts delete mode 100644 test-data/test-scope/sample-component-62/sample-component-62.ts delete mode 100644 test-data/test-scope/sample-component-63/index.ts delete mode 100644 test-data/test-scope/sample-component-63/sample-component-63.docs.mdx delete mode 100644 test-data/test-scope/sample-component-63/sample-component-63.spec.ts delete mode 100644 test-data/test-scope/sample-component-63/sample-component-63.ts delete mode 100644 test-data/test-scope/sample-component-64/index.ts delete mode 100644 test-data/test-scope/sample-component-64/sample-component-64.docs.mdx delete mode 100644 test-data/test-scope/sample-component-64/sample-component-64.spec.ts delete mode 100644 test-data/test-scope/sample-component-64/sample-component-64.ts delete mode 100644 test-data/test-scope/sample-component-65/index.ts delete mode 100644 test-data/test-scope/sample-component-65/sample-component-65.docs.mdx delete mode 100644 test-data/test-scope/sample-component-65/sample-component-65.spec.ts delete mode 100644 test-data/test-scope/sample-component-65/sample-component-65.ts delete mode 100644 test-data/test-scope/sample-component-66/index.ts delete mode 100644 test-data/test-scope/sample-component-66/sample-component-66.docs.mdx delete mode 100644 test-data/test-scope/sample-component-66/sample-component-66.spec.ts delete mode 100644 test-data/test-scope/sample-component-66/sample-component-66.ts delete mode 100644 test-data/test-scope/sample-component-67/index.ts delete mode 100644 test-data/test-scope/sample-component-67/sample-component-67.docs.mdx delete mode 100644 test-data/test-scope/sample-component-67/sample-component-67.spec.ts delete mode 100644 test-data/test-scope/sample-component-67/sample-component-67.ts delete mode 100644 test-data/test-scope/sample-component-68/index.ts delete mode 100644 test-data/test-scope/sample-component-68/sample-component-68.docs.mdx delete mode 100644 test-data/test-scope/sample-component-68/sample-component-68.spec.ts delete mode 100644 test-data/test-scope/sample-component-68/sample-component-68.ts delete mode 100644 test-data/test-scope/sample-component-69/index.ts delete mode 100644 test-data/test-scope/sample-component-69/sample-component-69.docs.mdx delete mode 100644 test-data/test-scope/sample-component-69/sample-component-69.spec.ts delete mode 100644 test-data/test-scope/sample-component-69/sample-component-69.ts delete mode 100644 test-data/test-scope/sample-component-7/index.ts delete mode 100644 test-data/test-scope/sample-component-7/sample-component-7.docs.mdx delete mode 100644 test-data/test-scope/sample-component-7/sample-component-7.spec.ts delete mode 100644 test-data/test-scope/sample-component-7/sample-component-7.ts delete mode 100644 test-data/test-scope/sample-component-70/index.ts delete mode 100644 test-data/test-scope/sample-component-70/sample-component-70.docs.mdx delete mode 100644 test-data/test-scope/sample-component-70/sample-component-70.spec.ts delete mode 100644 test-data/test-scope/sample-component-70/sample-component-70.ts delete mode 100644 test-data/test-scope/sample-component-71/index.ts delete mode 100644 test-data/test-scope/sample-component-71/sample-component-71.docs.mdx delete mode 100644 test-data/test-scope/sample-component-71/sample-component-71.spec.ts delete mode 100644 test-data/test-scope/sample-component-71/sample-component-71.ts delete mode 100644 test-data/test-scope/sample-component-72/index.ts delete mode 100644 test-data/test-scope/sample-component-72/sample-component-72.docs.mdx delete mode 100644 test-data/test-scope/sample-component-72/sample-component-72.spec.ts delete mode 100644 test-data/test-scope/sample-component-72/sample-component-72.ts delete mode 100644 test-data/test-scope/sample-component-73/index.ts delete mode 100644 test-data/test-scope/sample-component-73/sample-component-73.docs.mdx delete mode 100644 test-data/test-scope/sample-component-73/sample-component-73.spec.ts delete mode 100644 test-data/test-scope/sample-component-73/sample-component-73.ts delete mode 100644 test-data/test-scope/sample-component-74/index.ts delete mode 100644 test-data/test-scope/sample-component-74/sample-component-74.docs.mdx delete mode 100644 test-data/test-scope/sample-component-74/sample-component-74.spec.ts delete mode 100644 test-data/test-scope/sample-component-74/sample-component-74.ts delete mode 100644 test-data/test-scope/sample-component-75/index.ts delete mode 100644 test-data/test-scope/sample-component-75/sample-component-75.docs.mdx delete mode 100644 test-data/test-scope/sample-component-75/sample-component-75.spec.ts delete mode 100644 test-data/test-scope/sample-component-75/sample-component-75.ts delete mode 100644 test-data/test-scope/sample-component-76/index.ts delete mode 100644 test-data/test-scope/sample-component-76/sample-component-76.docs.mdx delete mode 100644 test-data/test-scope/sample-component-76/sample-component-76.spec.ts delete mode 100644 test-data/test-scope/sample-component-76/sample-component-76.ts delete mode 100644 test-data/test-scope/sample-component-77/index.ts delete mode 100644 test-data/test-scope/sample-component-77/sample-component-77.docs.mdx delete mode 100644 test-data/test-scope/sample-component-77/sample-component-77.spec.ts delete mode 100644 test-data/test-scope/sample-component-77/sample-component-77.ts delete mode 100644 test-data/test-scope/sample-component-78/index.ts delete mode 100644 test-data/test-scope/sample-component-78/sample-component-78.docs.mdx delete mode 100644 test-data/test-scope/sample-component-78/sample-component-78.spec.ts delete mode 100644 test-data/test-scope/sample-component-78/sample-component-78.ts delete mode 100644 test-data/test-scope/sample-component-79/index.ts delete mode 100644 test-data/test-scope/sample-component-79/sample-component-79.docs.mdx delete mode 100644 test-data/test-scope/sample-component-79/sample-component-79.spec.ts delete mode 100644 test-data/test-scope/sample-component-79/sample-component-79.ts delete mode 100644 test-data/test-scope/sample-component-8/index.ts delete mode 100644 test-data/test-scope/sample-component-8/sample-component-8.docs.mdx delete mode 100644 test-data/test-scope/sample-component-8/sample-component-8.spec.ts delete mode 100644 test-data/test-scope/sample-component-8/sample-component-8.ts delete mode 100644 test-data/test-scope/sample-component-80/index.ts delete mode 100644 test-data/test-scope/sample-component-80/sample-component-80.docs.mdx delete mode 100644 test-data/test-scope/sample-component-80/sample-component-80.spec.ts delete mode 100644 test-data/test-scope/sample-component-80/sample-component-80.ts delete mode 100644 test-data/test-scope/sample-component-81/index.ts delete mode 100644 test-data/test-scope/sample-component-81/sample-component-81.docs.mdx delete mode 100644 test-data/test-scope/sample-component-81/sample-component-81.spec.ts delete mode 100644 test-data/test-scope/sample-component-81/sample-component-81.ts delete mode 100644 test-data/test-scope/sample-component-82/index.ts delete mode 100644 test-data/test-scope/sample-component-82/sample-component-82.docs.mdx delete mode 100644 test-data/test-scope/sample-component-82/sample-component-82.spec.ts delete mode 100644 test-data/test-scope/sample-component-82/sample-component-82.ts delete mode 100644 test-data/test-scope/sample-component-83/index.ts delete mode 100644 test-data/test-scope/sample-component-83/sample-component-83.docs.mdx delete mode 100644 test-data/test-scope/sample-component-83/sample-component-83.spec.ts delete mode 100644 test-data/test-scope/sample-component-83/sample-component-83.ts delete mode 100644 test-data/test-scope/sample-component-84/index.ts delete mode 100644 test-data/test-scope/sample-component-84/sample-component-84.docs.mdx delete mode 100644 test-data/test-scope/sample-component-84/sample-component-84.spec.ts delete mode 100644 test-data/test-scope/sample-component-84/sample-component-84.ts delete mode 100644 test-data/test-scope/sample-component-85/index.ts delete mode 100644 test-data/test-scope/sample-component-85/sample-component-85.docs.mdx delete mode 100644 test-data/test-scope/sample-component-85/sample-component-85.spec.ts delete mode 100644 test-data/test-scope/sample-component-85/sample-component-85.ts delete mode 100644 test-data/test-scope/sample-component-86/index.ts delete mode 100644 test-data/test-scope/sample-component-86/sample-component-86.docs.mdx delete mode 100644 test-data/test-scope/sample-component-86/sample-component-86.spec.ts delete mode 100644 test-data/test-scope/sample-component-86/sample-component-86.ts delete mode 100644 test-data/test-scope/sample-component-87/index.ts delete mode 100644 test-data/test-scope/sample-component-87/sample-component-87.docs.mdx delete mode 100644 test-data/test-scope/sample-component-87/sample-component-87.spec.ts delete mode 100644 test-data/test-scope/sample-component-87/sample-component-87.ts delete mode 100644 test-data/test-scope/sample-component-88/index.ts delete mode 100644 test-data/test-scope/sample-component-88/sample-component-88.docs.mdx delete mode 100644 test-data/test-scope/sample-component-88/sample-component-88.spec.ts delete mode 100644 test-data/test-scope/sample-component-88/sample-component-88.ts delete mode 100644 test-data/test-scope/sample-component-89/index.ts delete mode 100644 test-data/test-scope/sample-component-89/sample-component-89.docs.mdx delete mode 100644 test-data/test-scope/sample-component-89/sample-component-89.spec.ts delete mode 100644 test-data/test-scope/sample-component-89/sample-component-89.ts delete mode 100644 test-data/test-scope/sample-component-9/index.ts delete mode 100644 test-data/test-scope/sample-component-9/sample-component-9.docs.mdx delete mode 100644 test-data/test-scope/sample-component-9/sample-component-9.spec.ts delete mode 100644 test-data/test-scope/sample-component-9/sample-component-9.ts delete mode 100644 test-data/test-scope/sample-component-90/index.ts delete mode 100644 test-data/test-scope/sample-component-90/sample-component-90.docs.mdx delete mode 100644 test-data/test-scope/sample-component-90/sample-component-90.spec.ts delete mode 100644 test-data/test-scope/sample-component-90/sample-component-90.ts delete mode 100644 test-data/test-scope/sample-component-91/index.ts delete mode 100644 test-data/test-scope/sample-component-91/sample-component-91.docs.mdx delete mode 100644 test-data/test-scope/sample-component-91/sample-component-91.spec.ts delete mode 100644 test-data/test-scope/sample-component-91/sample-component-91.ts delete mode 100644 test-data/test-scope/sample-component-92/index.ts delete mode 100644 test-data/test-scope/sample-component-92/sample-component-92.docs.mdx delete mode 100644 test-data/test-scope/sample-component-92/sample-component-92.spec.ts delete mode 100644 test-data/test-scope/sample-component-92/sample-component-92.ts delete mode 100644 test-data/test-scope/sample-component-93/index.ts delete mode 100644 test-data/test-scope/sample-component-93/sample-component-93.docs.mdx delete mode 100644 test-data/test-scope/sample-component-93/sample-component-93.spec.ts delete mode 100644 test-data/test-scope/sample-component-93/sample-component-93.ts delete mode 100644 test-data/test-scope/sample-component-94/index.ts delete mode 100644 test-data/test-scope/sample-component-94/sample-component-94.docs.mdx delete mode 100644 test-data/test-scope/sample-component-94/sample-component-94.spec.ts delete mode 100644 test-data/test-scope/sample-component-94/sample-component-94.ts delete mode 100644 test-data/test-scope/sample-component-95/index.ts delete mode 100644 test-data/test-scope/sample-component-95/sample-component-95.docs.mdx delete mode 100644 test-data/test-scope/sample-component-95/sample-component-95.spec.ts delete mode 100644 test-data/test-scope/sample-component-95/sample-component-95.ts delete mode 100644 test-data/test-scope/sample-component-96/index.ts delete mode 100644 test-data/test-scope/sample-component-96/sample-component-96.docs.mdx delete mode 100644 test-data/test-scope/sample-component-96/sample-component-96.spec.ts delete mode 100644 test-data/test-scope/sample-component-96/sample-component-96.ts delete mode 100644 test-data/test-scope/sample-component-97/index.ts delete mode 100644 test-data/test-scope/sample-component-97/sample-component-97.docs.mdx delete mode 100644 test-data/test-scope/sample-component-97/sample-component-97.spec.ts delete mode 100644 test-data/test-scope/sample-component-97/sample-component-97.ts delete mode 100644 test-data/test-scope/sample-component-98/index.ts delete mode 100644 test-data/test-scope/sample-component-98/sample-component-98.docs.mdx delete mode 100644 test-data/test-scope/sample-component-98/sample-component-98.spec.ts delete mode 100644 test-data/test-scope/sample-component-98/sample-component-98.ts delete mode 100644 test-data/test-scope/sample-component-99/index.ts delete mode 100644 test-data/test-scope/sample-component-99/sample-component-99.docs.mdx delete mode 100644 test-data/test-scope/sample-component-99/sample-component-99.spec.ts delete mode 100644 test-data/test-scope/sample-component-99/sample-component-99.ts delete mode 100644 test-data/test-scope/ui/.eslintrc.json delete mode 100644 test-data/test-scope/ui/hello-world/hello-world.composition.tsx delete mode 100644 test-data/test-scope/ui/hello-world/hello-world.docs.mdx delete mode 100644 test-data/test-scope/ui/hello-world/hello-world.spec.tsx delete mode 100644 test-data/test-scope/ui/hello-world/hello-world.tsx delete mode 100644 test-data/test-scope/ui/hello-world/index.ts delete mode 100644 test-data/test-scope/ui/tsconfig.json diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml deleted file mode 100644 index 7abbb19..0000000 --- a/.github/workflows/labels.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Test Bit Pull Request Labels -on: - pull_request: - types: - - opened - - synchronize -permissions: - pull-requests: write -jobs: - build: - runs-on: ubuntu-latest - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BIT_CONFIG_ACCESS_TOKEN: ${{ secrets.BIT_CONFIG_ACCESS_TOKEN }} - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Initialize Bit - uses: bit-tasks/init@v2 - with: - ws-dir: 'test-data' - - name: Bit Pull Request - uses: bit-tasks/pull-request@main - with: - version-labels: true - clear-labels: true diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 37022a2..b4599ae 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,6 +27,6 @@ jobs: - name: Add remote scope run: cd test-data && bit remote add http://localhost:4000 - name: Bit Pull Request - uses: bit-tasks/pull-request@main + uses: bit-tasks/pull-request@use-ci-scripts - name: Bit Lanes run: cd test-data && bit lane list --details diff --git a/.github/workflows/with-docker.yml b/.github/workflows/with-docker.yml index afd79f5..585f161 100644 --- a/.github/workflows/with-docker.yml +++ b/.github/workflows/with-docker.yml @@ -33,6 +33,6 @@ jobs: - name: Add remote scope run: cd test-data && bit remote add http://localhost:4000 - name: Bit Pull Request - uses: bit-tasks/pull-request@main + uses: bit-tasks/pull-request@use-ci-scripts - name: Bit Lanes run: cd test-data && bit lane list --details diff --git a/action.yml b/action.yml index 4fa0785..8e8a889 100644 --- a/action.yml +++ b/action.yml @@ -7,25 +7,14 @@ inputs: ws-dir: description: "Workspace json file directory path" required: false - version-labels: - description: "Include semantic version labels for new/modified components" - required: false - version-labels-color-major: - description: "Specify the hex color code for automatically created major version labels." - required: false - default: "f0a09f" - version-labels-color-minor: - description: "Specify the hex color code for automatically created minor version labels." - required: false - default: "f0e8bd" - version-labels-color-patch: - description: "Specify the hex color code for automatically created patch version labels." - required: false - default: "c2e0c6" - clear-labels: - description: "Remove all Bit labels from the Pull Request" - required: false - default: "false" + build: + description: "Build components in the Action Runner." + required: false + default: "false" + strict: + description: "Fail on warnings as well as errors." + required: false + default: "false" runs: using: 'node20' main: 'dist/index.js' diff --git a/dist/index.js b/dist/index.js index b6e8645..e7e5091 100644 --- a/dist/index.js +++ b/dist/index.js @@ -10850,62 +10850,58 @@ function wrappy (fn, cb) { /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -var _a, _b; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const core = __importStar(__nccwpck_require__(2186)); -const github_1 = __nccwpck_require__(5438); -const pull_request_1 = __importDefault(__nccwpck_require__(595)); -try { - const githubToken = process.env.GITHUB_TOKEN; - const wsDir = core.getInput("ws-dir") || process.env.WSDIR || "./"; - const versionLabels = core.getInput("version-labels") === "true" ? true : false; - const versionLabelsColors = { - major: core.getInput("version-labels-color-major"), - minor: core.getInput("version-labels-color-minor"), - patch: core.getInput("version-labels-color-patch") - }; - const args = process.env.LOG ? [`--log=${process.env.LOG}`] : []; - const prNumber = (_b = (_a = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.payload) === null || _a === void 0 ? void 0 : _a.pull_request) === null || _b === void 0 ? void 0 : _b.number; - const { owner, repo } = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.repo; - if (!githubToken) { - throw new Error("GitHub token not found"); - } - if (!prNumber) { - throw new Error("Pull Request number is not found"); - } - const laneName = `pr-${prNumber === null || prNumber === void 0 ? void 0 : prNumber.toString()}`; - (0, pull_request_1.default)(githubToken, repo, owner, prNumber, laneName, versionLabels, versionLabelsColors, wsDir, args); -} -catch (error) { - core.setFailed(error.message); -} + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const core = __importStar(__nccwpck_require__(2186)); +const github_1 = __nccwpck_require__(5438); +const pull_request_1 = __importDefault(__nccwpck_require__(595)); +try { + const githubToken = process.env.GITHUB_TOKEN; + const wsDir = core.getInput("ws-dir") || process.env.WSDIR || "./"; + const build = core.getInput("build") === "true" ? true : false; + const strict = core.getInput("strict") === "true" ? true : false; + const args = process.env.LOG ? [`--log=${process.env.LOG}`] : []; + const prNumber = (_b = (_a = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.payload) === null || _a === void 0 ? void 0 : _a.pull_request) === null || _b === void 0 ? void 0 : _b.number; + const { owner, repo } = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.repo; + if (!githubToken) { + throw new Error("GitHub token not found"); + } + if (!prNumber) { + throw new Error("Pull Request number is not found"); + } + const laneName = `pr-${prNumber === null || prNumber === void 0 ? void 0 : prNumber.toString()}`; + (0, pull_request_1.default)(githubToken, repo, owner, prNumber, laneName, wsDir, args, build, strict); +} +catch (error) { + core.setFailed(error.message); +} /***/ }), @@ -10914,32 +10910,32 @@ catch (error) { /***/ ((__unused_webpack_module, exports) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.scopeQuery = void 0; -const GRAPHQL_ENDPOINT = 'https://api.v2.bit.cloud/graphql'; -const scopeQuery = (id, token) => { - const query = ` - query GET_SCOPE($scopeId: String!) { - getScope(id: $scopeId) { - id - } - } - `; - const variables = { scopeId: id }; - return fetch(GRAPHQL_ENDPOINT, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${token}`, - }, - body: JSON.stringify({ - query, - variables, - }), - }).then(response => response.json()); -}; -exports.scopeQuery = scopeQuery; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.scopeQuery = void 0; +const GRAPHQL_ENDPOINT = 'https://api.v2.bit.cloud/graphql'; +const scopeQuery = (id, token) => { + const query = ` + query GET_SCOPE($scopeId: String!) { + getScope(id: $scopeId) { + id + } + } + `; + const variables = { scopeId: id }; + return fetch(GRAPHQL_ENDPOINT, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}`, + }, + body: JSON.stringify({ + query, + variables, + }), + }).then(response => response.json()); +}; +exports.scopeQuery = scopeQuery; /***/ }), @@ -10948,327 +10944,155 @@ exports.scopeQuery = scopeQuery; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __asyncValues = (this && this.__asyncValues) || function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const exec_1 = __nccwpck_require__(1514); -const github_1 = __nccwpck_require__(5438); -const core = __importStar(__nccwpck_require__(2186)); -const graphql_1 = __nccwpck_require__(8946); -const createSnapMessageText = (githubToken, repo, owner, prNumber) => __awaiter(void 0, void 0, void 0, function* () { - const octokit = (0, github_1.getOctokit)(githubToken); - let messageText = "CI"; - const { data: pr } = yield octokit.rest.pulls.get({ - owner: owner, - repo: repo, - pull_number: prNumber, - }); - const prTitle = pr.title; - core.info("PR title: " + prTitle); - if (prTitle) { - messageText = prTitle; - } - else { - const { data: commits } = yield octokit.rest.pulls.listCommits({ - owner: owner, - repo: repo, - pull_number: prNumber, - }); - if (commits.length > 0) { - messageText = commits[commits.length - 1].commit.message; - core.info("Last commit message: " + messageText); - } - } - core.info("Snap message Text: " + messageText); - return messageText; -}); -const postOrUpdateComment = (githubToken, repo, owner, prNumber, laneName) => __awaiter(void 0, void 0, void 0, function* () { - const laneLink = `https://bit.cloud/${process.env.ORG}/${process.env.SCOPE}/~lane/${laneName}`; - let commentIntro = `⚠️ Please review the changes in the Bit lane: ${laneLink}`; - const octokit = (0, github_1.getOctokit)(githubToken); - const comments = yield octokit.rest.issues.listComments({ - owner, - repo, - issue_number: prNumber, - }); - const existingComment = comments.data.find((comment) => { - var _a, _b; - return ((_a = comment.body) === null || _a === void 0 ? void 0 : _a.includes("https://bit.cloud")) && - ((_b = comment.user) === null || _b === void 0 ? void 0 : _b.login) === "github-actions[bot]"; - }); - if (existingComment) { - const updatedBody = `${commentIntro}\n\n_Lane updated: ${getHumanReadableTimestamp()}_`; - yield octokit.rest.issues.updateComment({ - owner, - repo, - comment_id: existingComment.id, - body: updatedBody, - }); - } - else { - const newBody = `${commentIntro}\n\n_Lane created: ${getHumanReadableTimestamp()}_`; - yield octokit.rest.issues.createComment({ - owner, - repo, - issue_number: prNumber, - body: newBody, - }); - } -}); -const getHumanReadableTimestamp = () => { - const options = { - year: "numeric", - month: "long", - day: "numeric", - hour: "2-digit", - minute: "2-digit", - second: "2-digit", - timeZone: "UTC", - }; - return new Date().toLocaleString("en-US", options) + " UTC"; -}; -function paginatedRequest(opts) { - return __awaiter(this, void 0, void 0, function* () { - const { octokit, method, owner, repo, params } = opts; - let page = 1; - const perPage = 100; - const results = []; - let moreResultsExist = true; - while (moreResultsExist) { - const response = yield octokit.request(method, Object.assign(Object.assign({ owner, - repo }, params), { page, per_page: perPage })); - const data = response.data; - // Check if more results exist - if (data.length === 0) { - moreResultsExist = false; - } - else { - results.push(...data); - page++; - } - } - return results; - }); -} -const createVersionLabels = (githubToken, repo, owner, prNumber, status, versionLabelsColors, clearLabels) => __awaiter(void 0, void 0, void 0, function* () { - var _a, e_1, _b, _c; - core.info("Creating version labels for new and modified components"); - const versionLabels = [ - ...(status.newComponents || []), - ...(status.modifiedComponents || []), - ].flatMap((componentId) => { - const baseName = componentId.substring(componentId.indexOf("/") + 1); - // Generate labels for @patch, @major, and @minor - return ["patch", "major", "minor"].map((version) => { - const componentName = `${baseName}@${version}`; - const name = componentName.length > 50 ? componentName.slice(-50) : componentName; - const description = componentId; - const color = versionLabelsColors[version]; - core.info(`Processing label: ${name} with description: ${description} and color: #${color}`); - return { name, description, color }; - }); - }); - const octokit = (0, github_1.getOctokit)(githubToken); - // Get existing labels on the PR - const prLabels = yield paginatedRequest({ - octokit, - method: "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", - owner, - repo, - params: { issue_number: prNumber }, - }); - // Get all repository labels with pagination - const repoLabels = yield paginatedRequest({ - octokit, - method: "GET /repos/{owner}/{repo}/labels", - owner, - repo, - params: {}, - }); - if (clearLabels) { - core.info("Clearing all Bit labels from the Pull Request"); - // Remove all Bit labels from the Pull Request - for (const label of repoLabels) { - if (label.name.endsWith("@patch") || - label.name.endsWith("@major") || - label.name.endsWith("@minor")) { - core.info(`Removing Bit label: ${label.name}`); - yield octokit.request("DELETE /repos/{owner}/{repo}/labels/{name}", { - owner, - repo, - name: label.name, - }); - } - } - } - // Define the version pattern - const componentVersionPattern = /@(major|minor|patch)$/; - // Identify labels to remove - const labelsToRemove = prLabels.filter((prLabel) => { - return (componentVersionPattern.test(prLabel.name) && - !versionLabels.some((versionLabel) => versionLabel.name.split("@")[0] === prLabel.name.split("@")[0])); - }); - // Remove labels that match the version pattern and are not in versionLabels from the pull request - if (labelsToRemove.length > 0) { - core.info(`Removing labels from PR #${prNumber}: ${labelsToRemove - .map((prLabel) => prLabel.name) - .join(", ")}`); - for (const label of labelsToRemove) { - yield octokit.rest.issues.removeLabel({ - owner, - repo, - issue_number: prNumber, - name: label.name, - }); - } - } - // Determine which labels need to be created in the repository - const newLabelsToCreate = clearLabels - ? // if clearing labels, create all labels again - versionLabels - : versionLabels.filter(({ name }) => !repoLabels.some((label) => label.name === name) // Labels not in the repository - ); - core.info(`Creating ${newLabelsToCreate.length} new labels in the repository`); - try { - // Create GitHub labels if they do not exist - for (var _d = true, newLabelsToCreate_1 = __asyncValues(newLabelsToCreate), newLabelsToCreate_1_1; newLabelsToCreate_1_1 = yield newLabelsToCreate_1.next(), _a = newLabelsToCreate_1_1.done, !_a;) { - _c = newLabelsToCreate_1_1.value; - _d = false; - try { - const { name, description, color } = _c; - try { - core.info(`Creating GitHub repository label: ${name} with description: ${description} and color: #${color}`); - yield octokit.request("POST /repos/{owner}/{repo}/labels", { - owner, - repo, - name: name, - color: color, - description: description, - headers: { - "X-GitHub-Api-Version": "2022-11-28", - }, - }); - } - catch (error) { - // Handle rate limit errors - if (error.message.includes("rate limit")) { - core.info(`Waiting 30 seconds before retrying to create label ${name}: ${error.message}`); - yield new Promise((resolve) => setTimeout(resolve, 30000)); - yield octokit.request("POST /repos/{owner}/{repo}/labels", { - owner, - repo, - name: name, - color: color, - description: description, - headers: { - "X-GitHub-Api-Version": "2022-11-28", - }, - }); - continue; - } - // Handle unexpected errors - core.info(`Skipped creating label ${name}: ${error.message}`); - } - } - finally { - _d = true; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (!_d && !_a && (_b = newLabelsToCreate_1.return)) yield _b.call(newLabelsToCreate_1); - } - finally { if (e_1) throw e_1.error; } - } -}); -function run(githubToken, repo, owner, prNumber, laneName, versionLabel, versionLabelsColors, wsDir, args) { - var _a, _b; - return __awaiter(this, void 0, void 0, function* () { - const org = process.env.ORG; - const scope = process.env.SCOPE; - const token = process.env.BIT_CONFIG_USER_TOKEN || ""; - let statusRaw = ""; - const scopeErrorMessage = `Scope: ${org}.${scope} does not exist or you don't have access to it`; - try { - const jsonData = yield (0, graphql_1.scopeQuery)(`${org}.${scope}`, token); - if (!((_b = (_a = jsonData === null || jsonData === void 0 ? void 0 : jsonData.data) === null || _a === void 0 ? void 0 : _a.getScope) === null || _b === void 0 ? void 0 : _b.id)) { - throw new Error(scopeErrorMessage); - } - } - catch (error) { - throw new Error(scopeErrorMessage); - } - yield (0, exec_1.exec)("bit", ["status", "--json"], { - cwd: wsDir, - listeners: { - stdout: (data) => { - statusRaw += data.toString(); - }, - }, - }); // Avoid log param, since output is parsed for next steps - const status = JSON.parse(statusRaw.trim()); - if (versionLabel) { - yield createVersionLabels(githubToken, repo, owner, prNumber, status, versionLabelsColors, core.getBooleanInput("clear-labels")); - } - yield (0, exec_1.exec)("bit", ["lane", "create", laneName, ...args], { cwd: wsDir }); - const snapMessageText = yield createSnapMessageText(githubToken, repo, owner, prNumber); - const buildFlag = process.env.RIPPLE === "true" ? [] : ["--build"]; - yield (0, exec_1.exec)("bit", ["snap", "-m", snapMessageText, ...buildFlag, ...args], { - cwd: wsDir, - }); - try { - const lane = `${org}.${scope}/${laneName}`; - core.info(`Attempting to remove Bit lane if it exists: ${lane}`); - yield (0, exec_1.exec)("bit", ["lane", "remove", lane, "--remote", "--silent", "--force", ...args], { cwd: wsDir }); - } - catch (error) { - core.info("Cannot remove Bit lane. The lane may not exist, or the Bit token may not have sufficient permissions to remove it."); - } - yield (0, exec_1.exec)("bit", ["export", ...args], { cwd: wsDir }); - postOrUpdateComment(githubToken, repo, owner, prNumber, laneName); - }); -} -exports["default"] = run; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const exec_1 = __nccwpck_require__(1514); +const github_1 = __nccwpck_require__(5438); +const core = __importStar(__nccwpck_require__(2186)); +const graphql_1 = __nccwpck_require__(8946); +const createSnapMessageText = (githubToken, repo, owner, prNumber) => __awaiter(void 0, void 0, void 0, function* () { + const octokit = (0, github_1.getOctokit)(githubToken); + let messageText = "CI"; + const { data: pr } = yield octokit.rest.pulls.get({ + owner: owner, + repo: repo, + pull_number: prNumber, + }); + const prTitle = pr.title; + core.info("PR title: " + prTitle); + if (prTitle) { + messageText = prTitle; + } + else { + const { data: commits } = yield octokit.rest.pulls.listCommits({ + owner: owner, + repo: repo, + pull_number: prNumber, + }); + if (commits.length > 0) { + messageText = commits[commits.length - 1].commit.message; + core.info("Last commit message: " + messageText); + } + } + core.info("Snap message Text: " + messageText); + return messageText; +}); +const postOrUpdateComment = (githubToken, repo, owner, prNumber, laneName) => __awaiter(void 0, void 0, void 0, function* () { + const laneLink = `https://bit.cloud/${process.env.ORG}/${process.env.SCOPE}/~lane/${laneName}`; + let commentIntro = `⚠️ Please review the changes in the Bit lane: ${laneLink}`; + const octokit = (0, github_1.getOctokit)(githubToken); + const comments = yield octokit.rest.issues.listComments({ + owner, + repo, + issue_number: prNumber, + }); + const existingComment = comments.data.find((comment) => { + var _a, _b; + return ((_a = comment.body) === null || _a === void 0 ? void 0 : _a.includes("https://bit.cloud")) && + ((_b = comment.user) === null || _b === void 0 ? void 0 : _b.login) === "github-actions[bot]"; + }); + if (existingComment) { + const updatedBody = `${commentIntro}\n\n_Lane updated: ${getHumanReadableTimestamp()}_`; + yield octokit.rest.issues.updateComment({ + owner, + repo, + comment_id: existingComment.id, + body: updatedBody, + }); + } + else { + const newBody = `${commentIntro}\n\n_Lane created: ${getHumanReadableTimestamp()}_`; + yield octokit.rest.issues.createComment({ + owner, + repo, + issue_number: prNumber, + body: newBody, + }); + } +}); +const getHumanReadableTimestamp = () => { + const options = { + year: "numeric", + month: "long", + day: "numeric", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + timeZone: "UTC", + }; + return new Date().toLocaleString("en-US", options) + " UTC"; +}; +function run(githubToken, repo, owner, prNumber, laneName, wsDir, args, build, strict) { + var _a, _b; + return __awaiter(this, void 0, void 0, function* () { + const org = process.env.ORG; + const scope = process.env.SCOPE; + const token = process.env.BIT_CONFIG_USER_TOKEN || ""; + const scopeErrorMessage = `Scope: ${org}.${scope} does not exist or you don't have access to it`; + try { + const jsonData = yield (0, graphql_1.scopeQuery)(`${org}.${scope}`, token); + if (!((_b = (_a = jsonData === null || jsonData === void 0 ? void 0 : jsonData.data) === null || _a === void 0 ? void 0 : _a.getScope) === null || _b === void 0 ? void 0 : _b.id)) { + throw new Error(scopeErrorMessage); + } + } + catch (error) { + throw new Error(scopeErrorMessage); + } + const messageText = yield createSnapMessageText(githubToken, repo, owner, prNumber); + const cliArgs = [ + "ci", + "pr", + "--lane", + laneName, + "--message", + messageText, + ]; + if (build) { + cliArgs.push("--build"); + } + if (strict) { + cliArgs.push("--strict"); + } + cliArgs.push(...args); + yield (0, exec_1.exec)("bit", cliArgs, { + cwd: wsDir, + }); + postOrUpdateComment(githubToken, repo, owner, prNumber, laneName); + }); +} +exports["default"] = run; /***/ }), diff --git a/index.ts b/index.ts index f3d1878..2f49b6e 100644 --- a/index.ts +++ b/index.ts @@ -5,12 +5,9 @@ import run from "./scripts/pull-request"; try { const githubToken = process.env.GITHUB_TOKEN; const wsDir: string = core.getInput("ws-dir") || process.env.WSDIR || "./"; - const versionLabels: boolean = core.getInput("version-labels") === "true" ? true : false; - const versionLabelsColors = { - major: core.getInput("version-labels-color-major"), - minor: core.getInput("version-labels-color-minor"), - patch: core.getInput("version-labels-color-patch") - }; + const build: boolean = core.getInput("build") === "true" ? true : false; + const strict: boolean = core.getInput("strict") === "true" ? true : false; + const args = process.env.LOG ? [`--log=${process.env.LOG}`] : []; const prNumber = context?.payload?.pull_request?.number; const { owner, repo } = context?.repo; @@ -24,7 +21,7 @@ try { } const laneName = `pr-${prNumber?.toString()}`; - run(githubToken, repo, owner, prNumber, laneName, versionLabels, versionLabelsColors, wsDir, args); + run(githubToken, repo, owner, prNumber, laneName, wsDir, args, build, strict); } catch (error) { core.setFailed((error as Error).message); } diff --git a/scripts/pull-request.ts b/scripts/pull-request.ts index bd1e80a..99c98f7 100644 --- a/scripts/pull-request.ts +++ b/scripts/pull-request.ts @@ -97,228 +97,21 @@ const getHumanReadableTimestamp = () => { return new Date().toLocaleString("en-US", options as any) + " UTC"; }; -interface PaginatedRequestOptions { - octokit: any; - method: string; - owner: string; - repo: string; - params: { [key: string]: any }; -} - -async function paginatedRequest( - opts: PaginatedRequestOptions -): Promise { - const { octokit, method, owner, repo, params } = opts; - let page = 1; - const perPage = 100; - const results: T[] = []; - let moreResultsExist = true; - - while (moreResultsExist) { - const response = await octokit.request(method, { - owner, - repo, - ...params, - page, - per_page: perPage, - }); - - const data = response.data; - - // Check if more results exist - if (data.length === 0) { - moreResultsExist = false; - } else { - results.push(...data); - page++; - } - } - - return results; -} - -interface Label { - id: number; - node_id: string; - url: string; - name: string; - description: string | null; - color: string; - default: boolean; -} - -const createVersionLabels = async ( - githubToken: string, - repo: string, - owner: string, - prNumber: number, - status: any, - versionLabelsColors: { patch: string; minor: string; major: string }, - clearLabels: boolean -) => { - core.info("Creating version labels for new and modified components"); - - const versionLabels = [ - ...(status.newComponents || []), - ...(status.modifiedComponents || []), - ].flatMap((componentId: string) => { - const baseName = componentId.substring(componentId.indexOf("/") + 1); - - // Generate labels for @patch, @major, and @minor - return (["patch", "major", "minor"] as const).map((version) => { - const componentName = `${baseName}@${version}`; - const name = - componentName.length > 50 ? componentName.slice(-50) : componentName; - const description = componentId; - const color = versionLabelsColors[version]; - - core.info( - `Processing label: ${name} with description: ${description} and color: #${color}` - ); - return { name, description, color }; - }); - }); - - const octokit = getOctokit(githubToken); - - // Get existing labels on the PR - const prLabels = await paginatedRequest