diff --git a/.changeset/beige-carpets-double.md b/.changeset/beige-carpets-double.md new file mode 100644 index 0000000000..98e0d8d69a --- /dev/null +++ b/.changeset/beige-carpets-double.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-code-coverage': minor +--- + +Cleaned up API exports. + +The `Router` export has been removed; users are expected to use `EntityCodeCoverageContent` instead. + +The `isPluginApplicableToEntity` helper has been deprecated, in favor of the `isCodeCoverageAvailable` helper. diff --git a/.changeset/beige-carpets-triple.md b/.changeset/beige-carpets-triple.md new file mode 100644 index 0000000000..5eda26fb02 --- /dev/null +++ b/.changeset/beige-carpets-triple.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-code-coverage-backend': minor +--- + +Cleaned up API exports. + +The `CodeCoverageApi` and `makeRouter` exports have been removed from the backend, since they were not meant to be exported in the first place. diff --git a/.changeset/cuddly-flowers-provide.md b/.changeset/cuddly-flowers-provide.md new file mode 100644 index 0000000000..729ac96cda --- /dev/null +++ b/.changeset/cuddly-flowers-provide.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-fossa': patch +--- + +Allow configuration of base URL for Fossa links diff --git a/.changeset/fifty-vans-drum.md b/.changeset/fifty-vans-drum.md new file mode 100644 index 0000000000..6b1b920bb9 --- /dev/null +++ b/.changeset/fifty-vans-drum.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-radar': patch +--- + +Update tech-radar documentation on how to use an external json data source with dates. diff --git a/.changeset/little-geckos-end.md b/.changeset/little-geckos-end.md new file mode 100644 index 0000000000..328095aa44 --- /dev/null +++ b/.changeset/little-geckos-end.md @@ -0,0 +1,18 @@ +--- +'@backstage/plugin-kubernetes-backend': minor +--- + +Add new endpoints to Kubernetes backend plugin + +BREAKING: Kubernetes backend plugin now depends on CatalogApi + +```typescript +// Create new CatalogClient +const catalogApi = new CatalogClient({ discoveryApi: env.discovery }); +const { router } = await KubernetesBuilder.createBuilder({ + logger: env.logger, + config: env.config, + // Inject it into createBuilder params + catalogApi, +}).build(); +``` diff --git a/.changeset/ninety-coats-learn.md b/.changeset/ninety-coats-learn.md new file mode 100644 index 0000000000..9d6945e9c0 --- /dev/null +++ b/.changeset/ninety-coats-learn.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Fix relative `sub-paths` by concatenating the app's base path with them. diff --git a/.changeset/pink-cars-pretend.md b/.changeset/pink-cars-pretend.md new file mode 100644 index 0000000000..c46cb99f55 --- /dev/null +++ b/.changeset/pink-cars-pretend.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +new setUserAsOwner flag for publish:gitlab action + +The field default is `false`. When true it will use the token configured in the gitlab integration for the matching host, to try and set the user logged in via `repoUrlPicker` `requestUserCredentials` OAuth flow as owner of the repository created in GitLab. diff --git a/.changeset/pre.json b/.changeset/pre.json index 2bba491efc..7b30cba7ba 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -158,50 +158,76 @@ "@backstage/plugin-vault-backend": "0.1.0", "@backstage/plugin-xcmetrics": "0.2.26", "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.0.0", - "@backstage/plugin-catalog-backend-module-openapi": "0.0.0" + "@backstage/plugin-catalog-backend-module-openapi": "0.0.0", + "@backstage/plugin-cost-insights-common": "0.0.0" }, "changesets": [ + "afraid-flies-try", "beige-horses-scream", + "blue-monkeys-explain", "breezy-poems-grab", "breezy-seas-exist", "bright-balloons-hide", "calm-experts-buy", "chilled-mirrors-grab", + "cool-toys-flow", "create-app-1656408352", "curly-candles-battle", "curvy-weeks-matter", + "eight-suits-fail", + "eighty-windows-brush", "eleven-mice-collect", + "five-fireants-run", "forty-seals-complain", "great-roses-pump", "green-actors-argue", "happy-boxes-melt", + "hot-rice-sin", "large-kangaroos-poke", "lemon-goats-obey", + "light-hornets-eat", + "long-bananas-rescue", + "many-vans-thank", "metal-singers-matter", + "metal-windows-share", "modern-ducks-lay", + "moody-crabs-march", "nasty-zoos-cross", "nervous-humans-sip", + "old-onions-hear", "plenty-clouds-guess", "polite-eagles-invite", + "polite-lions-sell", "popular-pots-yell", "pretty-masks-live", + "proud-toys-return", "purple-beans-march", "quiet-pens-notice", "red-games-decide", + "renovate-149779d", + "renovate-2ae4dda", "renovate-4b5ff24", + "renovate-7438bff", + "renovate-833a91b", "renovate-9454dab", "rude-llamas-lie", + "search-boats-double", "search-lightning-cult", "search-turtles-itch", + "serious-houses-watch", "serious-zebras-joke", "shaggy-melons-drive", "sharp-numbers-taste", "sharp-planes-turn", + "shiny-seahorses-do", "shiny-turkeys-doubt", + "short-deers-remember", "short-olives-train", "shy-cameras-develop", "silent-coats-brake", + "silly-geese-design", "silver-needles-unite", + "smart-elephants-knock", "smooth-sheep-hide", "strange-tables-flash", "strange-trains-collect", @@ -211,14 +237,20 @@ "techdocs-eyes-sit", "techdocs-gorgeous-plants-sniff", "techdocs-sheep-talk", + "techdocs-sixty-mugs-hug", "techdocs-the-whole-pulse", + "thick-cats-kiss", "thick-radios-drive", + "thirty-rivers-watch", + "tricky-ravens-visit", "twelve-candles-jump", "two-crews-accept", "unlucky-stingrays-juggle", "weak-bananas-deliver", + "weak-jeans-cry", "weak-llamas-repeat", "wet-dolphins-act", - "wicked-icons-grin" + "wicked-icons-grin", + "wicked-ladybugs-argue" ] } diff --git a/.changeset/purple-cherries-fix.md b/.changeset/purple-cherries-fix.md new file mode 100644 index 0000000000..d29a107cf3 --- /dev/null +++ b/.changeset/purple-cherries-fix.md @@ -0,0 +1,22 @@ +--- +'@backstage/plugin-sentry': minor +--- + +Added the possibility to specify organization per component, now the annotation `sentry.io/project-slug` can have the format of `[organization]/[project-slug]` or just `[project-slug]`. + +**BREAKING**: The method `fetchIssue` changed the signature: + +```diff +export interface SentryApi { + fetchIssues( +- project: string, +- statsFor: string, +- query?: string, ++ entity: Entity, ++ options: { ++ statsFor: string; ++ query?: string; ++ }, + ): Promise; +} +``` diff --git a/.changeset/renovate-0546761.md b/.changeset/renovate-0546761.md new file mode 100644 index 0000000000..ed7b8b19a3 --- /dev/null +++ b/.changeset/renovate-0546761.md @@ -0,0 +1,103 @@ +--- +'@backstage/backend-common': patch +'@backstage/backend-test-utils': patch +'@backstage/catalog-client': patch +'@backstage/cli': patch +'@backstage/config-loader': patch +'@backstage/core-app-api': patch +'@backstage/core-components': patch +'@backstage/core-plugin-api': patch +'@backstage/integration-react': patch +'@backstage/integration': patch +'@backstage/release-manifests': patch +'@backstage/test-utils': patch +'@backstage/plugin-adr-backend': patch +'@backstage/plugin-adr': patch +'@backstage/plugin-airbrake-backend': patch +'@backstage/plugin-airbrake': patch +'@backstage/plugin-allure': patch +'@backstage/plugin-analytics-module-ga': patch +'@backstage/plugin-apache-airflow': patch +'@backstage/plugin-api-docs': patch +'@backstage/plugin-app-backend': patch +'@backstage/plugin-auth-backend': patch +'@backstage/plugin-auth-node': patch +'@backstage/plugin-azure-devops-backend': patch +'@backstage/plugin-azure-devops': patch +'@backstage/plugin-badges': patch +'@backstage/plugin-bitbucket-cloud-common': patch +'@backstage/plugin-bitrise': patch +'@backstage/plugin-catalog-backend-module-azure': patch +'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch +'@backstage/plugin-catalog-backend-module-bitbucket': patch +'@backstage/plugin-catalog-backend-module-gerrit': patch +'@backstage/plugin-catalog-backend-module-github': patch +'@backstage/plugin-catalog-backend-module-gitlab': patch +'@backstage/plugin-catalog-backend-module-msgraph': patch +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-catalog-graphql': patch +'@backstage/plugin-catalog-import': patch +'@backstage/plugin-circleci': patch +'@backstage/plugin-cloudbuild': patch +'@backstage/plugin-code-climate': patch +'@backstage/plugin-code-coverage-backend': patch +'@backstage/plugin-code-coverage': patch +'@backstage/plugin-codescene': patch +'@backstage/plugin-config-schema': patch +'@backstage/plugin-cost-insights': patch +'@backstage/plugin-dynatrace': patch +'@backstage/plugin-explore-react': patch +'@backstage/plugin-explore': patch +'@backstage/plugin-firehydrant': patch +'@backstage/plugin-fossa': patch +'@backstage/plugin-gcalendar': patch +'@backstage/plugin-gcp-projects': patch +'@backstage/plugin-git-release-manager': patch +'@backstage/plugin-github-actions': patch +'@backstage/plugin-github-deployments': patch +'@backstage/plugin-github-pull-requests-board': patch +'@backstage/plugin-gitops-profiles': patch +'@backstage/plugin-gocd': patch +'@backstage/plugin-graphiql': patch +'@backstage/plugin-graphql-backend': patch +'@backstage/plugin-home': patch +'@backstage/plugin-ilert': patch +'@backstage/plugin-jenkins-backend': patch +'@backstage/plugin-jenkins': patch +'@backstage/plugin-kafka': patch +'@backstage/plugin-kubernetes': patch +'@backstage/plugin-lighthouse': patch +'@backstage/plugin-newrelic': patch +'@backstage/plugin-org': patch +'@backstage/plugin-pagerduty': patch +'@backstage/plugin-periskop-backend': patch +'@backstage/plugin-periskop': patch +'@backstage/plugin-permission-backend': patch +'@backstage/plugin-permission-common': patch +'@backstage/plugin-permission-node': patch +'@backstage/plugin-rollbar-backend': patch +'@backstage/plugin-rollbar': patch +'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch +'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-scaffolder': patch +'@backstage/plugin-search': patch +'@backstage/plugin-sentry': patch +'@backstage/plugin-shortcuts': patch +'@backstage/plugin-sonarqube': patch +'@backstage/plugin-splunk-on-call': patch +'@backstage/plugin-stack-overflow': patch +'@backstage/plugin-tech-insights': patch +'@backstage/plugin-tech-radar': patch +'@backstage/plugin-techdocs-addons-test-utils': patch +'@backstage/plugin-techdocs-backend': patch +'@backstage/plugin-techdocs-module-addons-contrib': patch +'@backstage/plugin-techdocs': patch +'@backstage/plugin-todo-backend': patch +'@backstage/plugin-todo': patch +'@backstage/plugin-user-settings': patch +'@backstage/plugin-vault-backend': patch +'@backstage/plugin-vault': patch +'@backstage/plugin-xcmetrics': patch +--- + +Updated dependency `msw` to `^0.43.0`. diff --git a/.changeset/renovate-4338117.md b/.changeset/renovate-4338117.md new file mode 100644 index 0000000000..199073c599 --- /dev/null +++ b/.changeset/renovate-4338117.md @@ -0,0 +1,8 @@ +--- +'@backstage/core-components': patch +'@backstage/plugin-gcp-projects': patch +'@backstage/plugin-scaffolder': patch +'@backstage/plugin-techdocs-module-addons-contrib': patch +--- + +Updated dependency `@react-hookz/web` to `^15.0.0`. diff --git a/.changeset/renovate-913f3dc.md b/.changeset/renovate-913f3dc.md new file mode 100644 index 0000000000..edb2f95356 --- /dev/null +++ b/.changeset/renovate-913f3dc.md @@ -0,0 +1,5 @@ +--- +'@backstage/config-loader': patch +--- + +Updated dependency `typescript-json-schema` to `^0.54.0`. diff --git a/.changeset/renovate-cbb545a.md b/.changeset/renovate-cbb545a.md new file mode 100644 index 0000000000..be423e8252 --- /dev/null +++ b/.changeset/renovate-cbb545a.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-api-docs': patch +--- + +Updated dependency `@asyncapi/react-component` to `1.0.0-next.39`. diff --git a/.changeset/renovate-dd35ce8.md b/.changeset/renovate-dd35ce8.md new file mode 100644 index 0000000000..9d828bc42d --- /dev/null +++ b/.changeset/renovate-dd35ce8.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +'@backstage/plugin-kubernetes-common': patch +'@backstage/plugin-kubernetes': patch +--- + +Updated dependency `@kubernetes/client-node` to `^0.17.0`. diff --git a/.changeset/rich-goats-breathe.md b/.changeset/rich-goats-breathe.md new file mode 100644 index 0000000000..2888c2f9a7 --- /dev/null +++ b/.changeset/rich-goats-breathe.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-tech-insights-backend': minor +--- + +**BREAKING**: Update FactRetrieverRegistry interface to be async so that db backed implementations can be passed through to the FactRetrieverEngine. + +If you have existing custom `FactRetrieverRegistry` implementations, you'll need to remove the `retrievers` member and make all the methods async. diff --git a/.changeset/small-shoes-hide.md b/.changeset/small-shoes-hide.md new file mode 100644 index 0000000000..b1f95e9f2d --- /dev/null +++ b/.changeset/small-shoes-hide.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-node': patch +--- + +Exports `MissingIndexError` that can be used by the search engines for better error handling when missing index. diff --git a/.changeset/ten-cobras-wash.md b/.changeset/ten-cobras-wash.md new file mode 100644 index 0000000000..81915d958d --- /dev/null +++ b/.changeset/ten-cobras-wash.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend': minor +--- + +Allowed post method on /refresh path diff --git a/.changeset/tender-chicken-learn.md b/.changeset/tender-chicken-learn.md new file mode 100644 index 0000000000..bd95c5545f --- /dev/null +++ b/.changeset/tender-chicken-learn.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend': patch +--- + +If error is `MissingIndexError` we return a 400 response with a more clear error message. diff --git a/.changeset/tender-terms-flash.md b/.changeset/tender-terms-flash.md new file mode 100644 index 0000000000..ca5fdb3799 --- /dev/null +++ b/.changeset/tender-terms-flash.md @@ -0,0 +1,5 @@ +--- +'@backstage/integration': patch +--- + +Avoid double encoding of the file path in `getBitbucketServerDownloadUrl` diff --git a/.changeset/two-owls-cry.md b/.changeset/two-owls-cry.md new file mode 100644 index 0000000000..ca371781a1 --- /dev/null +++ b/.changeset/two-owls-cry.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-elasticsearch': patch +--- + +Throws `MissingIndexError` when no index of type exist. diff --git a/.github/workflows/automate_review-labels-scheduled.yaml b/.github/workflows/automate_review-labels-scheduled.yaml deleted file mode 100644 index 3ba13cfd17..0000000000 --- a/.github/workflows/automate_review-labels-scheduled.yaml +++ /dev/null @@ -1,31 +0,0 @@ -# on a review from someone in the reviewers group, remove the awaiting-review label and add the awaiting-author label -name: Automate review labels - scheduled -on: - schedule: - - cron: '* * * * *' - -jobs: - label: - runs-on: ubuntu-latest - steps: - - name: Get Token - id: get_workflow_token - uses: peter-murray/workflow-application-token-action@v1 - with: - application_id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }} - application_private_key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }} - organization: backstage - - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 14 - - run: npm install codeowners - - - uses: actions/github-script@v6 - id: fix-labels - with: - github-token: ${{ steps.get_workflow_token.outputs.token }} - script: | - const script = require('./scripts/goalie-labels.js') - await script({github, context, core}) diff --git a/.github/workflows/automate_review-labels.yaml b/.github/workflows/automate_review-labels.yaml deleted file mode 100644 index cae71f6aaa..0000000000 --- a/.github/workflows/automate_review-labels.yaml +++ /dev/null @@ -1,84 +0,0 @@ -# When the target of the PR changes, open, re-open or sync, then re-add the label. - -name: Automate review labels -on: - pull_request_target: - types: - - opened - - closed - - synchronize - -permissions: - issues: write - pull-requests: write - -jobs: - label: - runs-on: ubuntu-latest - steps: - # THESE SCRIPTS SHOULD BE INLINED AND NOT IN REPO - # DUE TO THE TOKEN PERMISSIONS THAT ARE GIVEN - # TO THE WORKFLOW. THIS SCRIPT WILL AND SHOULD - # RUN FROM THE BASE REPO ALL TIMES. - - uses: actions/github-script@v6 - id: fix-labels - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - if (['opened', 'synchronize'].includes('${{ github.event.action }}')) { - // if it's the author, always add awaiting-review label - const isAuthor = context.payload.pull_request.user.login === context.actor - if (isAuthor) { - await github.rest.issues.addLabels({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - labels: ['awaiting-review'] - }); - } - } - - if ('${{ github.event.action}}' === 'closed') { - await github.rest.issues.removeLabel({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - labels: 'awaiting-review' - }).catch((e) => { - console.log(e) - }); - } - - - name: Add PRs to review board - uses: actions/github-script@v6 - if: github.event.action == 'opened' || github.event.action == 'reopened' - env: - PROJECT_ID: PN_kwDOBFKqdc02LQ - with: - github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} - script: | - const prLookup = await github.graphql(` - query($owner: String!, $repo: String!, $number: Int!){ - repository(owner: $owner, name: $repo) { - pullRequest(number: $number) { - id - } - } - } - `, context.issue); - - await github.graphql(` - mutation($projectId: ID!, $contentId: ID!) { - addProjectNextItem(input: { - projectId: $projectId, - contentId: $contentId, - }) { - projectNextItem { - id - } - } - } - `, { - projectId: process.env.PROJECT_ID, - contentId: prLookup.repository.pullRequest.id - }) diff --git a/.github/workflows/automate_stale.yml b/.github/workflows/automate_stale.yml index f9c655fc4a..8978048c89 100644 --- a/.github/workflows/automate_stale.yml +++ b/.github/workflows/automate_stale.yml @@ -25,6 +25,6 @@ jobs: If you are the author and the PR has been closed, feel free to re-open the PR and continue the contribution! days-before-pr-stale: 7 days-before-pr-close: 5 - exempt-pr-labels: reviewer-approved,awaiting-review,will-fix + exempt-pr-labels: reviewer-approved,will-fix stale-pr-label: stale operations-per-run: 100 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 14e46ca5ce..2e134eaa71 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@v0.2.2 + uses: backstage/actions/yarn-install@v0.5.3 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} @@ -61,7 +61,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@v0.2.2 + uses: backstage/actions/yarn-install@v0.5.3 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} @@ -178,7 +178,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@v0.4.0 + uses: backstage/actions/yarn-install@v0.5.3 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index 306f91b637..6fd9fe2814 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -8,7 +8,7 @@ jobs: cron: runs-on: ubuntu-latest steps: - - uses: backstage/actions/cron@v0.4.0 + - uses: backstage/actions/cron@v0.5.3 with: app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }} private-key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }} diff --git a/.github/workflows/deploy_docker-image.yml b/.github/workflows/deploy_docker-image.yml index 6cb97d1a9e..93d59b64bd 100644 --- a/.github/workflows/deploy_docker-image.yml +++ b/.github/workflows/deploy_docker-image.yml @@ -69,17 +69,17 @@ jobs: working-directory: ./example-app - name: Login to GitHub Container Registry - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Build and push - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: context: './example-app' file: ./example-app/packages/backend/Dockerfile diff --git a/.github/workflows/deploy_nightly.yml b/.github/workflows/deploy_nightly.yml index 15d1d48816..fe234359dd 100644 --- a/.github/workflows/deploy_nightly.yml +++ b/.github/workflows/deploy_nightly.yml @@ -26,7 +26,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@v0.4.0 + uses: backstage/actions/yarn-install@v0.5.3 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml index 78a6d3bb8a..6b505dfbf5 100644 --- a/.github/workflows/deploy_packages.yml +++ b/.github/workflows/deploy_packages.yml @@ -67,7 +67,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@v0.4.0 + uses: backstage/actions/yarn-install@v0.5.3 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} @@ -145,7 +145,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@v0.4.0 + uses: backstage/actions/yarn-install@v0.5.3 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/issue.yaml b/.github/workflows/issue.yaml index c6f62a059d..58b1f725ad 100644 --- a/.github/workflows/issue.yaml +++ b/.github/workflows/issue.yaml @@ -10,4 +10,4 @@ jobs: if: github.repository == 'backstage/backstage' steps: - name: Issue sync - uses: backstage/actions/issue-sync@v0.4.0 + uses: backstage/actions/issue-sync@v0.5.3 diff --git a/.github/workflows/pr-review-comment-trigger.yaml b/.github/workflows/pr-review-comment-trigger.yaml new file mode 100644 index 0000000000..25475a03dc --- /dev/null +++ b/.github/workflows/pr-review-comment-trigger.yaml @@ -0,0 +1,19 @@ +# This workflow is used to trigger the "PR Review Comment" workflow. This chaining is needed +# because workflows triggered by pull_request_review_comment do not have access to secrets. + +name: PR Review Comment Trigger +on: + pull_request_review_comment: + types: + - created + +jobs: + trigger: + runs-on: ubuntu-latest + + # The "PR Review Comment" workflow will check the success status of this workflow and only mark + # the PR for re-review if this workflow was successful, which is when the author leaves a review comment. + if: github.repository == 'backstage/backstage' && github.event.comment.user.id == github.event.pull_request.user.id + + steps: + - run: echo "This PR needs another review" diff --git a/.github/workflows/pr-review-comment.yaml b/.github/workflows/pr-review-comment.yaml new file mode 100644 index 0000000000..37cdea5aa9 --- /dev/null +++ b/.github/workflows/pr-review-comment.yaml @@ -0,0 +1,24 @@ +# This workflow is triggered by "PR Review Comment Trigger" + +name: PR Review Comment +on: + workflow_run: + workflows: [PR Review Comment Trigger] + types: + - completed + +jobs: + re-review: + runs-on: ubuntu-latest + + # The triggering workflow will report success if the PR needs re-review + if: github.repository == 'backstage/backstage' && github.event.workflow_run.conclusion == 'success' + + steps: + - uses: backstage/actions/re-review@v0.5.3 + with: + app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }} + private-key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }} + installation-id: ${{ secrets.BACKSTAGE_GOALIE_INSTALLATION_ID }} + project-id: PVT_kwDOBFKqdc02LQ + issue-number: ${{ github.event.workflow_run.pull_requests[0].number }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 746b6c80de..1444559a68 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -9,9 +9,6 @@ on: issue_comment: types: - created - pull_request_review_comment: - types: - - created jobs: sync: @@ -21,8 +18,9 @@ jobs: if: github.repository == 'backstage/backstage' && ( github.event.pull_request || github.event.issue.pull_request ) steps: - name: PR sync - uses: backstage/actions/pr-sync@v0.4.0 + uses: backstage/actions/pr-sync@v0.5.3 with: + github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }} private-key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }} installation-id: ${{ secrets.BACKSTAGE_GOALIE_INSTALLATION_ID }} diff --git a/.github/workflows/sync_code-formatting.yml b/.github/workflows/sync_code-formatting.yml index f4dbc122cc..45cf6dca3d 100644 --- a/.github/workflows/sync_code-formatting.yml +++ b/.github/workflows/sync_code-formatting.yml @@ -20,7 +20,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@v0.4.0 + uses: backstage/actions/yarn-install@v0.5.3 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/sync_snyk-github-issues.yml b/.github/workflows/sync_snyk-github-issues.yml index 3d84c18322..1ac1ff3b2c 100644 --- a/.github/workflows/sync_snyk-github-issues.yml +++ b/.github/workflows/sync_snyk-github-issues.yml @@ -22,7 +22,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@v0.4.0 + uses: backstage/actions/yarn-install@v0.5.3 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/verify_e2e-linux.yml b/.github/workflows/verify_e2e-linux.yml index 1f7cbb5339..ec3edb0dbe 100644 --- a/.github/workflows/verify_e2e-linux.yml +++ b/.github/workflows/verify_e2e-linux.yml @@ -46,7 +46,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@v0.4.0 + uses: backstage/actions/yarn-install@v0.5.3 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/verify_storybook.yml b/.github/workflows/verify_storybook.yml index 9468c9bf68..03a1b01c07 100644 --- a/.github/workflows/verify_storybook.yml +++ b/.github/workflows/verify_storybook.yml @@ -35,7 +35,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@v0.4.0 + uses: backstage/actions/yarn-install@v0.5.3 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} - name: storybook yarn install diff --git a/ADOPTERS.md b/ADOPTERS.md index 2275c8da3d..941f9ef969 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -3,190 +3,199 @@ _If you're using Backstage in your organization, please try to add your company name to this list. It really helps the project to gain momentum and credibility. It's a small contribution back to the project with a big impact._ _You can do this by using the [Adopter form](https://form.typeform.com/to/zcOaKikB) or by editing this file after following the [CONTRIBUTING.md](./CONTRIBUTING.md)._ - -| Organization | Contact | Description of Use | -|-----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Spotify](https://www.spotify.com) | [@leemills83](https://github.com/leemills83) | Main interface towards all of Spotify's infrastructure and technical documentation. | -| [bol.com](https://www.bol.com) | [@sagacity](https://github.com/sagacity) | Initial work being done to unify platform tooling. | -| [DFDS](https://www.dfds.com) | [@carlsendk](https://github.com/carlsendk) | V2 self-service platform. | -| [Roadie](https://roadie.io) | [@dtuite](https://github.com/dtuite) | Hosted, managed Backstage with easy set-up | -| [Roku](https://www.roku.com) | [@timurista](https://github.com/timurista) | Initial work on Cloud engineering service platform. | -| [SDA SE](https://sda.se) | [@dschwank](https://github.com/dschwank), [@iammnils](https://github.com/iammnils) | Central place for developing and sharing services in our insurance ecosystem. | -| [H-E-B](https://www.heb.com) | [@german-j-rodriguez](https://github.com/german-j-rodriguez) | Initial work on Engineering Portal service platform. | -| [American Airlines](https://www.aa.com) | [@paulpach](https://github.com/paulpach) | Central place for developers to develop and maintain applications | -| [Kiwi.com](https://kiwi.com) | [@aexvir](https://github.com/aexvir) | Replacing the frontend of [The Zoo](https://github.com/kiwicom/the-zoo), their service registry. | -| [Voi](https://www.voiscooters.com/) | [@K-Phoen](https://github.com/K-Phoen) | Developer portal, main gateway to our infrastructure, documentation and internal tooling. | -| [Talkdesk](https://www.talkdesk.com) | [@jaime-talkdesk](https://github.com/jaime-talkdesk) | Initial work for Engineering Portal and Self Provisioning to R&D | -| [Wealthsimple](https://www.wealthsimple.com) | [@andrewthauer](https://github.com/andrewthauer) | Developer portal, service catalog, documentation and tooling | -| [Grab](https://www.grab.com) | [@althafh](https://github.com/althafh) | Initial work as a unified interface for all of Grab's internal tooling | -| [Telenor Sweden](https://www.telenor.se) | [@O5ten](https://github.com/O5ten) | Building a developer portal for scaffolding projects towards our unified build environment and microservice stacks | -| [Fiverr](https://www.fiverr.com) | [@nirga](https://github.com/nirga) | Unifying separate tools that developers are using today (i.e. monitoring, dead letter queues management, etc.) into a single platform. | -| [Zalando SE](https://www.zalando.de) | [@leviferreira](https://github.com/leviferreira) | Building V2 of the Internal Development Portal. | -| [LegalZoom](https://legalzoom.com) | [@backjo](https://github.com/backjo) | Developer portal - hub for all engineering projects and metadata. | -| [Expedia Group](https://www.expediagroup.com) | [@guillermomanzo](https://github.com/guillermomanzo), [Sheena Sharma](mailto:shesharma@expediagroup.com) | EG Common Developer Toolkit | -| [Paddle.com](https://paddle.com) | [Ioannis Georgoulas](https://github.com/geototti21) | Developer portal (Tech Docs, Service Catalog, Internal Tooling), we use vanilla Backstage FE and custom BE implementation in Go | -| [Acast.com](https://acast.com) | [Olle Lundberg](https://github.com/lndbrg) | Developer portal with tech docs, service catalog and a bunch of other internal tooling | -| [Lunar](https://lunar.app) | [Jacob Valdemar](https://github.com/JacobValdemar) | Internal developer portal for service overview and insights, API documentation, technical guides, onboarding guides and RFC's. | -| [Trendyol](https://trendyol.com) | [Gamze Senturk](https://github.com/gmzsenturk), [Mert Can Bilgic](https://github.com/mertcb) | The Developer Portal has been called `Pandora`. Provides an overview of Trendyol tech ecosystem. TechDocs, Catalog, Custom Plugins and Theme. | -| [Peloton](https://www.onepeloton.com/) | [Matt Waldron](https://github.com/daftgopher) | Creating our first developer portal and tech-docs. Exploring Service Catalog, Tech Insights and Cost Insights as well. | -| [TELUS](https://telus.com) | [Seb Barre](https://github.com/sbarre) | The Go-to place to find answers about development and delivery at TELUS. | -| [Brex](https://www.brex.com/) | [Vamsi Chitters](https://github.com/vamsikc) | A centralized UI to understand how a service fits in the whole Brex architecture and manage a team’s engineering dependencies. | -| [Oriflame](https://www.oriflame.com/) | [Oriflame](https://github.com/oriflame) | Internal developer portal for services, single page apps and packages overview, API documentation, technical guides, tech-radar and more. | -| [Booz Allen Hamilton](https://www.boozallen.com/) | [Jason Miller](https://github.com/JasonMiller-BAH) | Developer portal for a full-stack software development ecosystem that accelerates consistent and repeatable Modern Software Development practices for internal innovation and investments. | -| [Netflix](https://www.netflix.com/) | [bleathem](https://github.com/bleathem) | Our Backstage implementation will be the front door to a unified experience connecting our internal platform products across important workflows with integrated knowledge and support. | -| [b.well](https://www.icanbwell.com/) | [Jacob Rosales](https://github.com/jrosales) | Foundation for our engineering portal and cloud insights. | -| [PagerDuty](https://www.pagerduty.com/) | [Mark Shaw](https://github.com/markshawtoronto) | Developer portal, initially focused on software templates and tech-docs. | -| [MoonShiner](https://moonshiner.at) | [Fabian Hippmann](https://github.com/FabianHippmann) | Developer portal - helps us keep track of our customer projects, onboard new developers & improve our development process πŸŒ•πŸš€πŸ§‘β€πŸš€ | -| [FundApps](https://www.fundapps.co/) | [Elliot Greenwood](https://github.com/egnwd) | Developer Portal - A place for us to keep track of our projects and documentation for all services and processes | -| [DAZN](https://dazn.com/) | [David Rubio Vidal](https://github.com/davidrv87), [Marco Crivellaro](https://github.com/crivetechie), [Alex Hollerith](mailto:alex.hollerith@dazn.com), [Kamil Wolny](https://github.com/mrwolny) | Ingesting all of DAZN's repos for the catalog, migrating our internal platform apps (pull request boards, release information, inner source marketplace etc) to Backstage plugins (where applicable). | -| [HelloFresh](https://www.hellofresh.de/) | [@iammuho](https://github.com/iammuho), [@ElenaForester](https://github.com/ElenaForester), [@diegomarangoni](https://github.com/diegomarangoni) | Our developer portal at HelloFresh - Spread across an organisation of 500+ engineers globally. | -| [FactSet](https://www.factset.com/) | [@kuangp](https://github.com/kuangp) | Developer portal to provide discoverability to all internal components, APIs, documentation, and scaffold templates with integrations to our internal infrastructure tools. | -| [Workrise](https://www.workrise.com/) | [Michael Rode](https://github.com/michaelrode) | Developer portal, main gateway to our infrastructure, documentation and internal tooling. | -| [RedVentures](https://www.redventures.com/) | [Chris Diaz](https://github.com/codingdiaz) | Developer portal that brings everything an engineer needs to provide value into a single pane of glass. | -| [MavTek](https://www.mavtek.com/) | [@fgascon](https://github.com/fgascon) | Developer portal focused on standardizing practices, centralizing documentation and streamlining developer practices. | -| [QuintoAndar](https://www.quintoandar.com.br/) | [@quintoandar](https://github.com/quintoandar) | Developer portal, services catalog and centralization of service metrics. | -| [empathy.co](https://empathy.co/) | [@guillermotti](https://github.com/guillermotti) | Developer portal for tech docs, service catalog, plugin discovery and much more. | -| [creditas.com](https://creditas.com/) | [@aureliosaraiva](https://github.com/aureliosaraiva) [@Creditas](https://github.com/creditas) | Centralization of all services, standards, documentation, etc. We started the deployment process. | -| [Prisjakt](https://www.prisjakt.nu) / [PriceSpy](https://pricespy.co.uk) | [@kennylindahl](https://github.com/kennylindahl) | Internal developer portal - Documentation, scaffolding, software catalog, TechRadar, Gitlab org data integration | -| [Powerspike](https://powerspike.tv/) | [@trelore](https://github.com/trelore) | Developer portal for documentation of core libraries and repositories. | -| [2U](https://2u.com) | [@danielleEriksen](https://github.com/danielleEriksen), [@sbhatia](https://github.com/sbhatia) | Development team home-base, promoting service discoverability, resource dependencies, and tech radar | -| [Taxfix](https://taxfix.de/) | [Sami Ur Rehman](https://github.com/samiurrehman92) | Developer's portal with software catalog at it's core. Hosts API Specs, Tech Docs, Tech Radar and some custom plugins. | -| [Busuu](https://busuu.com/) | [Adam Tester](https://github.com/adamtester) | Developer portal with service catalog, API docs, Event docs, service templating, and cost insights. | -| [Loadsmart](https://loadsmart.com/) | [Loadsmart](https://github.com/loadsmart) | Improve services visibility and operations for service owners and developers. | -| [Monzo](https://monzo.com/) | [@WillSewell](https://github.com/WillSewell), [@joechrisellis](https://github.com/joechrisellis) | Developer portal showing metadata and docs for over 2000 microservices. We have built a number of plugins such as a UI for our system to measure [software excellence](https://monzo.com/blog/2021/09/15/how-we-measure-software-excellence), and a UI to show deployment and config change events. | -| [Vaimo](https://www.vaimo.com) | [@vaimo-magnus](https://github.com/vaimo-magnus) | Developer Portal for our developers at Vaimo, currently docs and self-service towards our internal PaaS based on k8s. Plans to extend the catalog into Projects, Environments etc | -| [Wayfair](https://www.wayfair.com) | [@fransan](https://github.com/fransan), [@errskipower](https://github.com/errskipower), [@hrrs](https://github.com/hrrs) | Developer portal for service catalog, technical documentation, and APIs. | -| [CircleHD](https://www.circlehd.com) | [@circlehddev](https://github.com/circlehddev) | Developer Portal for internal dev team across the globe | -| [CastDesk](https://castdesk.com) | [@circlehddev](https://github.com/circlehddev) | Developer Portal for internal dev team across the globe | -| [Santagostino](https://santagostino.it) | [@santagostino](https://github.com/santagostino) | Developer portal, gateway to our infrastructure, documentation, service catalog and internal tooling. | -| [Peak](https://peak.ai) | [Luke Beamish](https://github.com/lukebeamish-peak) | Developer portal for all internal engineers to access documentation and tooling. | -| [Gelato](https://gelato.com/) | [Dmitry Makarenko](https://github.com/dmitry-makarenko-gelato) | Developer portal: documentation, service templates, org structure, service catalog, plugins for integration with internal and third-party systemsπŸš€. | -| [GoCardless](https://gocardless.com/) | [James Turley](https://github.com/tragiclifestories) | Developer portal: documentation, service templates, org structure, service catalog, plugins for integration with internal systems. | -| [Box](https://www.box.com) | [@kielosz](https://github.com/kielosz), [@jluk-box](https://github.com/jluk-box), [@ptychu](https://github.com/ptychu), [@alexrybch](https://github.com/alexrybch), [@szubster](https://github.com/szubster) | Developer portal for service catalog, integration with internal systems, new service onboarding. | -| [Bazaarvoice](https://www.bazaarvoice.com) | [@niallmccullagh](https://github.com/niallmccullagh) | Developer portal for service catalog and scaffolds, publishing Github docs and API documentation, visualising our internal tech radar and our product engineering org structure. | -| [Krateo PlatformOps](https://www.krateo.io) | [@projectkerberus](https://github.com/projectkerberus) | A multi-cloud control plane to create, manage and deploy any kind of resource easily and centrally via a Developer Portal that centralizes via a self-service catalog the templating and ownership of services, the available documentation, the overview of the components that compose an entire domain and all the data of the service lifecycle. | -| [Adevinta](https://www.adevinta.com) | [Ray Sinnema](https://github.com/RemonSinnema) | Showcase shared services to our internal customers. | -| [Splunk](https://www.splunk.com) | [@tonytamsf](https://github.com/tonytamsf) | Developer portal as a centralized place to find people, services, documentation, escalation policies and give bravos. This portal is also being used as a centralized search engine for engineering specific documentation. | -| [SoundCloud](https://www.soundcloud.com) | [Julio Zynger](https://github.com/julioz) | Developer portal as a [humane registry](https://martinfowler.com/bliki/HumaneRegistry.html) for the organization: catalog of people, services, documentation, feature toggles, escalation policies, etc. | -| [Volvofinans Bank](https://www.volvofinans.se) | [Johan Hammar](https://github.com/johanhammar) | Developer portal enabling engineers to manage and explore software and documentation. | -| [Palo Alto Networks](https://www.paloaltonetworks.com) | [Jeremy Guarini](https://github.com/jeremyguarini), [Brian Lomeland](https://github.com/bbbmmmlll), [Palo Alto Networks](https://github.com/PaloAltoNetworks) | Developer portal, service catalog, documentation and tooling | -| [Signal Iduna Group](https://www.signal-iduna.de/) | [Jonas Thomsen](https://github.com/JoThomsen) | Developer Portal, documentation, monitoring, service catalog for our insurance ecosystem | -| [Tradeshift](https://www.tradeshift.com/) | [Soren Mathiasen](https://github.com/sorenmat) | Developer Portal: documentation, monitoring, service templates, service catalog for our micro services | -| [Unity](https://unity.com) | [Ted Cordery](https://github.com/TeddyBallGame) | A centralized service catalog with documentation for our service engineers. | -| [PicPay](https://www.picpay.com) | [Luis Baroni](https://github.com/lcsbaroni), [Renata Poluceno](https://github.com/renatapoluceno), [PicPay](https://github.com/picpay) | Developer portal for building services through templates, service catalog with ownership of services, documentation and metrics providing autonomy and visibility for all. | -| [Epic Games](https://www.epicgames.com) | [Brian Jung](https://github.com/brian-at-epic), [Jeff Goldian](https://github.com/jeffgoldian-Epic) | Developer Portal: Service Catalog, Documentation, Software Templates and more making our internal teams' lives easier! | -| [Globo](https://globo.com) | [Carlos GusmΓ£o](https://github.com/caeugusmao), [Guilherme Vierno](https://github.com/vierno), [Denis Aoki](https://github.com/dnsaoki2), [Maycon Dionisio](https://github.com/MayconDionisio), | Reduce the friction of accessing the information engineers need about Globo's digital services through a coherent and centralized experience. | -| [QBE](https://www.qbe.com/) | [Daniel Steel](https://github.com/danielsteelqbe), [Pete Jespers](https://github.com/petejespersqbe) | Developer portal allowing our global teams to explore and create applications, documentation and cloud infrastructure easily and quickly πŸš€ | -| [GoTo](https://www.goto.com) | [Lorenzo Orsatti](https://github.com/lorsatti) | Improve onboarding experience of new developers. Discover faster and painlessly developer documentation, API definitions and team information. Provide useful dev metrics in a central place. Provide easy-to-use templates for new services. | -| [Telstra](https://www.telstra.com.au) | [@kiranpatel11](https://github.com/kiranpatel11), [JasonC](https://github.com/JasonC17) | Primary usage: software catalog and templates
Emerging usage : TechDocs, Explore Ecosystem, TechRadar, etc | -| [Mosaico](https://www.mosaico.com.br/) | [WΓ©dney Yuri](https://github.com/wedneyyuri),[@tino.milton](https://github.com/miltonjacomini) | A centralized service catalog of our documentation for our service engineers. | -| [Mox Bank](https://www.mox.com/) | [Nick Laqua](https://github.com/nick-laqua-dragon) | "Single pane of glass" developer portal for providing a best-in-class developer experience to our product teams and making Mox the best tech environment in Hongkong πŸ₯°πŸš€ | -| [Keyloop](https://www.keyloop.com/) | [Andre Wanlin](https://github.com/awanlin) | Future-motive Developer Portal to help our teams create technology to make everything about buying and owning a car better. πŸš— | -| [Simply Business](https://sbtech.simplybusiness.co.uk/) | [@addersuk](https://github.com/addersuk), [@LightningStairs](https://github.com/LightningStairs), [@punitcse](https://github.com/punitcse), [@moltenice](https://github.com/moltenice) | Central developer portal to access everything a developer needs such as docs, internal service catalog, and the ability to quickly create a new service from a template. Internally developed Backstage plugins allow us to customise the experience to how we work. | -| [Overwolf](https://www.overwolf.com) | [@tomwolfgang](https://github.com/tomwolfgang) | Dev portal - software catalog, tech-docs, scaffolding | -| [Hotmart](https://www.hotmart.com) | [@fabioviana-hotmart](https://github.com/fabioviana-hotmart) | The main Developers Portal to centralize docs, applications and technical metrics. | -| [EF Education First](https://www.ef.com) | [Daan Boerlage](https://github.com/runebaas), [RafaΕ‚ Nowosielski](https://github.com/rnowosielski) | Our developer portal - primarily used for cataloging and scaffolding with the ambition to expand with more feature adoptions over time | -| [Power Home Remodeling](https://www.techatpower.com) | [Ben Langfeld](https://github.com/benlangfeld) | Developer portal to our internal services, build on open-source software (including Kubernetes) in our own datacenters. Our Portal allows our team members to navigate inherant complexity and standardise. | -| [Livspace](https://www.livspace.com) | [Praveen Kumar](https://github.com/praveen-livspace) | Developer portal, service catalog, tech docs, API docs and plugins | -| [Just Eat Takeaway](https://www.justeattakeaway.com) | [Kim Wilson](https://github.com/kwilson541) | Our developer portal which centralises applications, reduces cognitive load and provides teams insights. | -| [Hopin](https://hopin.com) | [Vladimir Glafirov](https://github.com/vglafirov), [Chloe Lee](https://github.com/msfuko) | Developer portal to streamline the development practices. Integrated with service catalog, software templates, application monitoring, tech docs and plugins. | -| [HBO Max](https://hbomax.com) | [@mdb](https://github.com/mdb), [@nesta219](https://github.com/nesta219), [@nmische](https://github.com/nmische), [@hbomark](https://github.com/hbomark) | Developer portal hosting service catalog and API documentation, as well as cloud infrastructure details, operational visibility tools, and a custom plugin for browsing notable platform change events, such as deployments and configuration updates. | -| [RCHLO](https://www.riachuelo.com.br) & [MIDWAY](https://www.midway.com.br) | [@marcosborges](https://github.com/marcosborges), [@defaultbr](https://github.com/defaultbr) | Self-Service Platform | -| [HP Inc](https://www.hp.com) | [Damon Kaswell](https://github.com/dekoding) | DevEx engagement hub (dev portal: docs, standards, Q&A) and extensive assets catalog (APIs, services, code, data, etc.) for the pan-HP internal developer community. | -| [VMware](https://www.vmware.com) | [@mpriamo](https://github.com/mpriamo), [@krisapplegate](https://github.com/krisapplegate) | Part of [Tanzu Application Platform](https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/index.html) offering; internal developer portal | -| [UalΓ‘](https://www.uala.com.ar/) | [Santiago Bernal](https://github.com/sabernal) | Initial work being done to centralize documentation for all our microservices and APIs, as well as scaffolding new services and tracking code quality | -| [IKEA IT AB](https://www.ingka.com) | [@bjornramberg](https://github.com/bjornramberg), [@supriyachitale](https://github.com/supriyachitale) | Supporting engineers at scale with self serve access and connecting the dots of our engineering platform and services, enabling product teams to move faster and go further, and unleashing innovation, reuse and co-creation across the organisation. | -| [Invitae](https://www.invitae.com/en) | [@ryan-hanchett](https://github.com/ryan-hanchett), [@gmandler42](https://github.com/gmandler42) | Centralized Developer Experience portal, putting all of our tooling behind a single pane of glass and creating a living service catalog. | -| [Fortum](https://www.fortum.com/) | [@brunoamaroalmeida](https://github.com/brunoamaroalmeida), [@dhaval-vithalani](https://github.com/dhaval-vithalani), [@sunilkumarmohanty](https://github.com/sunilkumarmohanty) | A central portal containing information about our applications, services, processes and other software assets to be used by Fortum software engineering community. | -| [Procore](https://www.procore.com/jobs/engineering) | [@shayon](https://github.com/Shayon), [@jamesdabbs-procore](https://github.com/jamesdabbs-procore) | Developer portal - centralized software catalog and templates to enable self serve and reduce cognitive load. | -| [Bradesco](https://banco.bradesco/html/classic/sobre/index.shtm) | [@danilosoarescardoso](https://github.com/danilosoarescardoso) | Centralized developer portal with software catalog, software templates, techdocs and some plugins from community and by our own. | -| [SeatGeek](https://seatgeek.com) | [@zhammer](https://github.com/zhammer) | Software catalog and documentation platform | -| [Grupo BoticΓ‘rio](https://www.grupoboticario.com.br/) | [@chicoribas](https://github.com/chicoribas), [@fndiaz](https://github.com/fndiaz), [@digogid](https://github.com/digogid), [@manumbs](https://github.com/manumbs), [@haooliveira84](https://github.com/haooliveira84), [@Rhullyam](https://github.com/Rhullyam) | Centralized developer portal with catalog, documentation, and software templates to build a ready to go application, including pipelines (CI/CD) and cloud services provisioning | -| [Snyk](https://snyk.io/) | [@robcresswell](https://github.com/robcresswell) | Developer portal for software discovery, API documentation and templating | -| [Stilingue](https://www.stilingue.com.br/) | [@stilingue-inteligencia-artificial](https://github.com/Stilingue-IA), [@bbviana](https://github.com/bbviana) | Developer portal, services catalog and centralization of metrics from Grafana, Sentry and GCP. Furthermore, centralization of documentation and infra details like DNS, Network services, SSL and so on. | -| [TUI Group](https://www.tuigroup.com/) | [Simon Stamm](https://github.com/simonstamm), [Christian Rudolph](https://github.com/ChrisRu82) | Developer portal for all engineer to provide discoverability to all internal components, APIs, documentation and to scaffold templates with integrations to our internal tools extended by plugins from our community. | -| [Alliander](https://www.alliander.com/) | [@leon-vg](https://github.com/leon-vg), [@gieljl](https://github.com/gieljl), [@niekteg](https://github.com/niekteg) | Developer portal - software catalog, technical documentation, software templates, tech radar and exploration of used tools/services | -| [VIA](https://www.via.com.br) | [@vagnerguedes](https://github.com/vagnerguedes) | Centralized Developer Experience portal - Software catalog and documentation platform, software templates, techdocs, scaffolding, self-service infrastructure | -| [Surevine](https://www.surevine.com/) | [@DJDANNY123](https://github.com/djdanny123) | Developer portal for software catalog, discovery and a view of the technologies we are using across the organisation, we are looking to explore how we can enrich our entities in Backstage by integrating a software bill of materials. | -| [Bonial International GmbH](https://www.bonial.com/) | [@pjungermann](https://github.com/pjungermann) | Centralized developer portal with software catalog, tech docs, templates, and more. | -| [Beez Innovation Labs Pvt. Ltd](https://www.beezlabs.com/) | [Karthikeyan Venkatesan](https://github.com/karthikeyan23) | Developer portal with software catalog, scaffolding, tech docs, templates, and infra. | -| [Agorapulse](https://www.agorapulse.com/) | [@jvdrean](https://github.com/jvdrean) | Developer portal with software catalog, documentation, monitoring, runbooks, tech radar and more. | -| [Wistia](https://wistia.com/) | [@qrush](https://github.com/qrush), [@okize](https://github.com/okize) | Internal Developer Portal, service catalog, tech docs and more | -| [SIX](https://www.six-group.com/) | [@jbadeau](https://github.com/jbadeau), [@tomassatka](https://github.com/tomassatka) | Internal DevOps portal hosting our software and dataset catalog, as well as custom plugins for observability, service virtualization, deployments, incident managment and quality metrics. | -| [Raiffeisen Bank International](https://www.rbinternational.com/) | [Daniel Baumgartner](https://github.com/dabarbi) | From developers for developers: software catalog, techdocs and heavy use of scaffolder to drive reuse on engineering level forward. Part of inner source initiative. Multi national setup coming. | -| [Spread Group](https://www.spreadgroup.com/) | [Luna Stadler](https://github.com/heyLu), [IvΓ‘n GonzΓ‘lez](https://github.com/ivangonzalezacuna) | Internal Developer Portal, an overview of all running software, architecture documentation and more; replacing and unifying a variety of internal tools. | -| [RD Station](https://rdstation.com) | [Rogerio Angeliski](https://github.com/angeliski), [Paula Assis](https://github.com/paulassis), [Guilherme Eric](https://github.com/guilhermeeric), [Daniela Adamatti](https://github.com/daniadamatti), [Luana Negreiros](https://github.com/luananegreiros) | Developer portal, scaffolding, services catalog. We are looking to centralize automations and information for the whole engineering team . | -| [Resuelve Tu Deuda](https://resuelve.mx) | [IvΓ‘n Álvarez](https://github.com/ivanhoe), [Jorge Medina](https://github.com/jorgearma1982) | Internal developer portal, service catalog, tech docs, api doc | -| [Pachama](https://pachama.com/) | [Aron Gates](https://github.com/agates4) | Internal Developer Portal, a catalog of all microservices, architecture documentation, and templates to generate developer resources. | -| [SEEK](https://www.seek.com.au) | [Jahred Hope](https://github.com/jahredhope) | Developer portal for developer tooling and technical documentation. | -| [Marks & Spencer](https://www.marksandspencer.com/) | [Kamal Cheriyath](https://github.com/kcheriyath) | Centralised discovery, adoption and devops automation hub for Engineering & Architecture. | -| [McKesson](https://www.mckesson.com/) | [Agnel Antony](https://github.com/aantony2) | Internal Developer Platform for developer gated CI/CD templates, technical documentation, cloud automation service catalog, etc. | -| [World Fuel Services](https://www.wfscorp.com/) | [Anirudh Kurapathi](https://github.com/anirudhkurapati), [Alex Kwon](https://github.com/alexkwon), [Lester Hernandez](https://github.com/lhernandez-wfscorp), [Avi Boru](https://github.com/aviboru), [Vardhan Annapureddy](https://github.com/harshaaws) | Internal Developer Portal, service catalog product, API's, Software Templates, tech docs and more. | -| [leboncoin](https://www.leboncoin.fr/) | [Andy Ladjadj](https://github.com/aladjadj) | Centralize our multiple UI in a single portal. Simplify onbording, new features and harmonize how people search information. Core features (catalog,api,docs,scafolder) are good to start the adoption. status: internal beta. | -| [Contentful](https://www.contentful.com) | [James Bourne](https://github.com/jamesmbourne) | Centralized documentation of service ownership, APIs, and documentation, and new service creation with a custom scaffolder - [full case study with Roadie](https://roadie.io/case-studies/maintaining-velocity-through-hypergrowth-contentful/). | -| [Back Market](https://www.backmarket.com) | [Sami Farhat](https://github.com/skfarhat) | Internal Developer Portal featuring catalog, tech-radar, ownership management, component creation (scaffolder) and centralized infrastructure management -- probably more to come. | -| [Avalia Systems](https://avalia.io) | [Olivier Liechti](https://github.com/wasadigi), [Fabio Velloso](https://github.com/fabiovelloso) | Innersource, software analytics, knowledge base for 360 software assessments, collaborative applications, hub for tracking and sharing IP assets. | -| [Albert Heijn](https://ah.technology) | [Joost Hofman](https://github.com/joosthofman), [Reindrich Geerman](https://github.com/reinst) | Single point of entry for all our engineers (Developer portal), Tech radar, catalog, templates (paved roads) and tech documentation. | -| [Wise, formerly TransferWise](https://wise.com) | [Andrew Beveridge](https://github.com/beveradb) | It's early days for us, we're trying to start small with catalog, tech docs and unified search. Future ambitious vision includes scaffolder for one-click component addition, building out integrations with CI/CD tooling, kubernetes clusters, monitoring/alerting tooling etc. and aiming for a frictionless "golden path" for engineers! πŸš€ | -| [Happy Money](http://happymoney.com/) | [Akshit Lomash](mailto:alomash@happymoney.com) | We are moving from a monolith to microservices-based architecture. We are developing a developer portal based on Backstage to create a service catalog for our new services. All the services created are onboarded Backstage and engineering teams are using a cookie-cutter-based template from backstage to initiate a new service. | -| [Lightspeed](http://lightspeedhq.com/) | [Marcus Crane](mailto:marcus.crane@lightspeedhq.com) | We use it within our X-Series division (https://vendhq.com) to catalog ~100+ systems and ~350 components! | -| [Siemens](https://www.siemens.com/global/en.html) | [Nizar Chaouch](mailto:nizar.chaouch@siemens.com) | We are using Backstage as our Developer portal | -| [The Warehouse Group](https://www.thewarehouse.co.nz) | [Matt Law](mailto:matt.law@thewarehouse.co.nz) | Backstage enables us to bootstrap our middleware environment of new services for our Dev teams in a matter of seconds. CI, CD, testing, logging, deployments are all taken care of to get them up and running in less than 60 seconds. | -| [Tink](https://tink.com/) | [Sebastian Olsson](https://github.com/Sebelino), [BΕ‚aΕΌej Szum](https://github.com/blazejszumtink), [Anders Eurenius Runvald](https://github.com/anders-er-at-tink) | Internal developer portal which provides templates for creating new Java or Go microservices seamlessly. Also includes a tech radar and a visualization of our CD pipeline. | -| [Brandwatch](https://brandwatch.com) | [Stefan Buck](https://github.com/stefanbuck) | Our primary focus is on the service catalog. Backstage is replacing our homemade service catalog. The switch was quite simple due to the catalog processor API. | -| [Laybuy](https://www.laybuy.com) | [Chris Simmons](https://github.com/contrarianchris) | Backstage is the heart of Laybuy’s new centralised Development Platform, bringing disparate development tools and experiences into a single easy-to-use portal. It simplifies software and API discovery, project scaffolding, and technical documentation, enabling us to embrace golden path development and automate software standards. | -| [Sendinblue](https://engineering.sendinblue.com/) | [Tanguy Antoine](mailto:antoine.tanguy@sendinblue.com) | Helps us drive the change at scale. Puts light on services, resources, and dependencies. One tool that rules them all through plugins we created for that purpose. We are aiming to put Backstage at the center of every developer's work (Actionable items, Debugging, Monitoring, Provisioning, etc...) to improve their happiness | -| [SafetyCulture](https://safetyculture.com/) | [@R-cen](https://github.com/R-cen), [@lachlancooper](https://github.com/lachlancooper), [@hkf57](https://github.com/hkf57) | Internal developer portal to provide a centralized place for engineers to see an overview of their team's services and information related to the service from other systems. Initially focused on the software catalog, techdocs and search. | -| [Sana Life Science](https://sanalifescience.com) | [Joe Hillyard](mailto:joe@sanalifescience.com) | API Catalog, Tools Management & Control Hub | -| [Ndustrial](https://ndustrial.io) | [Jonathan Skubic](mailto:jonathan@ndustrial.io) | Software Project Catalog | -| [TUI Musement](https://www.musement.com/uk/) | [Simone Fumagalli](mailto:simone.fumagalli@musement.com) | We are importing our catalog into it to keep it under control. The next step is start using templates | -| [Kambi AB](https://www.kambi.com) | [Martin Norum](mailto:martin.norum@kambi.com) | We want to kick ass at speed, so we're currently building up a catalog of our existing software, and looking into how Backstage can support us in our journey towards autonomous product teams. Both to improve speed to market and operational awareness. | -| [ANZ](https://www.anz.com.au/personal/) | [Elliot Jackson](mailto:elliot.jackson@anz.com) | Catalog, tech docs and automation | -| [Genie Solutions](https://www.geniesolutionssoftware.com.au) | [Zainab Bagasrawala](mailto:zainabbagasrawala@geniesolutions.com.au) | Developer Portal to track our projects, documentation, observability tools and more | -| [MadeiraMadeira](https://www.madeiramadeira.com.br) | [Paulo Eduardo Peixoto](mailto:paulo.peixoto@madeiramadeira.com.br) | As a support tool for developers, following the principles of "Developer Experience". In order to make the developer's day to day more practical, efficient and, why not, happy. | -| [Sonatype](https://www.sonatype.com) | [Srikar Ananthula](mailto:sananthula@sonatype.com) | Centralize services used internally with many plugins | -| [CVS Health](https://www.cvshealth.com) | [Ari Ben-Elazar](mailto:abenelazar@gmail.com) | Cataloging and documenting our service offerings to offer our internal developers a better operational journey | -| [Yatra.com](https://www.yatra.com) | [Matiur Rahman Maitur](mailto:arifrahman4u@gmail.com) | Easy to find out Project details, ownership, dependent services, Documentation, it is very useful for developer. | -| [Yotpo](https://www.yotpo.com) | [Liran Yogev](mailto:lyogev@yotpo.com) | Services exploration, documentation and project generator | -| [Mainsail Industries](https://www.mainsailindustries.com) | [Brad Sollar](mailto:brad@mainsailindustries.com) | Internal tool management and docs | -| [Prisma](https://prismamp.com) | [Sebastian Gravina](mailto:sgravina@prismamp.com) | Is part of our IDP | -| [Syndetic](https://syndetic.io) | [John Feminella](mailto:robots+swag@syndetic.io) | We're working with multiple F100 clients for digital transformation and Backstage is a key part of our landing and acceleration strategy. | -| [Imagine Learning](https://www.imaginelearning.com/en/us) | [Jared Stehler](mailto:jared.stehler@imaginelearning.com) | Software catalog, product dependency visualization | -| [Alef Education](https://www.alefeducation.com) | [Belal Juma](mailto:belal.juma@alefeducation.com) | We use backstage as a Service Catalog and rely on the TechDocs feature | -| [Zego](https://www.zego.com) | [Sean Kenny](mailto:sean.kenny@zego.com) | Single pane of glass for organisational and operational information for all services across our systems. | -| [Absa Group Limited](https://www.absa.africa/absaafrica/) | [Chris Kieser](mailto:chris.kieser@absa.africa) | Developer portal for all development needs - security, AWS, k8s, build and deployment pipelines and more | -| [Nutrien Ag Solutions](https://www.nutrienagsolutions.com.au) | [Jan Quijano](mailto:jan.quijano@nutrien.com.au) | Software Project Catalog | -| [Lendingkart](https://www.lendingkart.com/) | [Dinesh Rajpoot](mailto:dinesh.rajpoot@lendingkart.com) | Service catalog, Software templates to enforce best practices and tech insights to track mandates & migrations. | -| [Meltwater](https://underthehood.meltwater.com) | [@spier](https://github.com/spier), [@remen](https://github.com/remen) | Improving developer experience by centralizing documentation and internal APIs. Goal: Foster InnerSource collaboration and speed up onboarding time in our 500+ people Product & Engineering org. | -| [Doctolib](https://doctolib.engineering/) | [@djiit](https://github.com/djiit) | Rails modularization effort awareness, tech organization discoverability. Improving the daily workflows and collaboration processes of our engineers. | -| [Twilio](https://www.twilio.com) | [Kyle Smith](https://github.com/knksmith57) | Developer portal, universal software catalog, and centralized taxonomy platform. | -| [OVHcloud](https://www.ovhcloud.com/fr/) | [Jean-Philippe Blary](https://github.com/blaryjp), [Arnaud Bauer](mailto:arnaud.bauer@ovhcloud.com), [Flavien Chantelot](https://github.com/Dorn-) | We're providing Backstage to our collaborators to ease their daily jobs, and let them extends it using plugins. | -| [Procter & Gamble](https://us.pg.com/) | [Binita Nayak](https://github.com/binitan), [Josh Rose](https://github.com/joshuarose), [RJ Winkler](https://github.com/rjwink) | P&G leverages Backstage to build internal developer portal to ensure developers' happiness. This developer portal shall act as single source of information needed by development teams to seamlessly create, find and maintain their software components/resources/documentation. | -| [SANS Institute](https://www.sans.org) | [Christopher Klewin](mailto:cklewin@sans.org) | Developer portal for centralized visibility, reporting, and tooling across multiple organizations. | -| [Okay](https://www.okayhq.com/) | [Tomas Barreto](mailto:tomas@okayhq.com) | Service catalog, developer portal, and technical documentation | -| [Kaluza](https://www.kaluza.com) | [James Condren](mailto:james.condron@kaluza.com) | To provide an automated golden path to developers, with a focus on discovery and documentation | -| [LinkedIn](https://linkedin.com) | [Joshua Lawrence](mailto:jlawrence@linkedin.com) | We are building a platform for internal web tools | -| [Forto](https://forto.com) | [Rodolfo Matos](mailto:rodolfo.matos@forto.com) | Still in a experimental phase/assessing the organisational fit. We will be using it mostly a developer portal -- pretty standard use case. | -| [BetterUp](https://betterup.com) | [Jordan Hochenbaum](mailto:jordan.hochenbaum@betterup.co) | We're starting to use Backstage as the central hub for service discovery, documentation, and develop experience. | -| [warung pintar](https://warungpintar.co.id/) | [Muhammad Rafly Andrianza](mailto:rafly.andrianza@warungpintar.co) | Initial Work Developer Portal with TechRadar, Service Catalogue, TechDocs, anything about platform & infrastructure resources. | -| [RD](https://rd.com.br/) | [Michael Silva](mailto:midsilva@rd.com.br) | We are building our developer portal. Software catalog, Tech Radar and Scaffolding are among the initial features. | -| [AEB](https://www.aeb.com/) | [David FankhΓ€nel](mailto:dfl@aeb.com) | Central developer platform for creating new apps via templates, getting an overview via software catalog, etc | -| [SALTO Systems](https://saltosystems.com) | [Ian Cowley](mailto:i.cowley@saltosystems.com) | Currently using Backstage as an internal documentation portal. | -| [Lummo](https://lummo.com) | [Anjul Sahu](mailto:anjul@lummo.com) | We are building the internal developer portal using Backstage and bringing up all integrations and service information at one place. | -| [Frontside](https://frontside.com) | [Taras Mankovski](mailto:taras@frontside.com) | | -| [Stepstone](https://www.stepstone.com/en/) | [Neil Kennedy](mailto:neil.kennedy@stepstone.com) | StepStone is using Backstage to solve problems around ownership and visibility of our applications. We have thousands of repos, multiple legacy systems and a growing platform that is hard to maintain. Backstage is forming the centre of our push to embrace the chaos. | -| [idwall](https://idwall.co) | [Rodrigo CatΓ£o Araujo](mailto:rodrigo@idwall.co) | Developer Portal for internal engineers to access service catalog, documentation, observability, infrastructure and internal tooling. | -| [Jaguar Land Rover](https://www.jaguarlandrover.com) | [Josh Walker](mailto:jwalke18@jaguarlandrover.com) | Users can request a Gitlab user, which creates a commit with the Terraform code. | -| [Glovo](http://glovoapp.com/) | [Yaser Toutah](mailto:yaser.toutah@glovoapp.com) | Developer Portal to improve our Developer Experience, identify ownership and track metadata for our services and tools. It's our Service Catalog. In addition to that, we use it for Service Creation, and much more. | -| [Dixa](https://dixa.com) | [Jens MΓΈller](https://github.com/jensamoller) | We are in early stages, but using it to get overview of our repositories and ownership of these. We want among many things to use it for compliance and easier access to key metrics for our repos. | -| [Notino](https://notino.com) | [Jan Remunda](mailto:jan.remunda@notino.com) | Backstage is our developer portal. We use it as service catalog and for technical documentation. | -| [Polarpoint](https://polarpoint.io/) | [Surj Bains](https://github.com/polarpoint-io) | We are using Backstage as our Developer portal as well as for hosting our DevOps portal for software catalog. | -| [Niche](https://niche.com) | [Zach Romitz](mailto:zach.romitz@niche.com) | We are using the Software Catalog, Software Templates, API documentation, and Techdocs to try and centralize service information. | -| [Mercedes-Benz.io](https://www.mercedes-benz.io/) | [Manuel Santos](https://github.com/manusant) | At Mercedes-Benz we use it as a developer portal with software catalog, TechDocs, Scaffolding and custom plugins. It provides an overview of our tech ecosystem to our product development teams. The portal also serves as a way to foster collaboration among the numerous companies of the Mercedes-Benz Group. | -| [Funding Circle](https://www.fundingcircle.com/) | [Ariel Pacciaroni](https://github.com/arielpacciaroni) | We are building the internal developer portal using Backstage project and centralizing all services information at one place. The portal helps us track down repositories ownership as well as direct access to key information on every component. | -| [Clarivate](https://www.clarivate.com) | [Gabriele Carteni](mailto:gabriele.carteni@clarivate.com) | We are building our Developer Portal using Backstage to have a better control over our software ecosystem, integrate SDLC tools and promote best practices | -| [Cho Tot](https://www.chotot.com) | [Chotot Team](mailto:sre@chotot.vn) | Internal developer portal, service catalog with CI/CD tools. | -| [William Hill](https://www.williamhillgroup.com/) | [Pat Mills](mailto:pat.mills@williamhill.com), [Nathan Flynn](mailto:nflynn@williamhill.co.uk), and [Nishkarsh Raj](mailto:nishkarsh.raj@williamhill.co.uk) | William Hill are leveraging Backstage to build our Engineering Portal. Our mission is to centralize the software catalog inventory to enable service discoverability, reduce the onboarding time for new Engineers, provide a single pane of glass to accelerate Developer Productivity and Save Engineers time. Our aspiration is to create an InnerSource community focussed on organization-wide patterns that are re-usable and can be self-served with the Scaffolder. | -| [Vodafone NewZealand Limited](https://vodafone.co.nz) | [Ankit Gupta](mailto:ankit.gupta@vodafone.nz), [DevOps COE](mailto:devopstooling@vodafone.nz) | Vodafone NZ are leveraging Backstage to build centralised and self service Engineering Portal. Our mission is to standardised Pipeline templates across the Engineering teams, One shop stop to create the pipelines and repository with a template approach which reduces creation part from days to minutes and no wait time for developers. A unified view for Azure DevOps pipeline, Azure Repo pull requests, Deployment status from Azure RedHat Openshift-ArgoCD and SonarQube Security and code quality scans report on a single pan to provide a streamlined view for all microservices across the app stack. | -| [Coamo](http://www.coamo.com.br) | [@holiiveira](https://github.com/holiiveira), [@gpxlnx](https://github.com/gpxlnx) | We're starting to use it as the main tool of a DevOps platform. Our goal is to provide software templates, centralize our software catalog enabling efficient service discovery, and make it easy to manage the entire software ecosystem in one place. -| [Intility](https://intility.no/en/) | [@daniwk](https://github.com/daniwk) | We are creating a developer portal powered by Backstage, with software catalog, documentation, templates and integrations to our infrastructure and internal tools. | +| Organization | Contact | Description of Use | +| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Spotify](https://www.spotify.com) | [@leemills83](https://github.com/leemills83) | Main interface towards all of Spotify's infrastructure and technical documentation. | +| [bol.com](https://www.bol.com) | [@sagacity](https://github.com/sagacity) | Initial work being done to unify platform tooling. | +| [DFDS](https://www.dfds.com) | [@carlsendk](https://github.com/carlsendk) | V2 self-service platform. | +| [Roadie](https://roadie.io) | [@dtuite](https://github.com/dtuite) | Hosted, managed Backstage with easy set-up | +| [Roku](https://www.roku.com) | [@timurista](https://github.com/timurista) | Initial work on Cloud engineering service platform. | +| [SDA SE](https://sda.se) | [@dschwank](https://github.com/dschwank), [@iammnils](https://github.com/iammnils) | Central place for developing and sharing services in our insurance ecosystem. | +| [H-E-B](https://www.heb.com) | [@german-j-rodriguez](https://github.com/german-j-rodriguez) | Initial work on Engineering Portal service platform. | +| [American Airlines](https://www.aa.com) | [@paulpach](https://github.com/paulpach) | Central place for developers to develop and maintain applications | +| [Kiwi.com](https://kiwi.com) | [@aexvir](https://github.com/aexvir) | Replacing the frontend of [The Zoo](https://github.com/kiwicom/the-zoo), their service registry. | +| [Voi](https://www.voiscooters.com/) | [@K-Phoen](https://github.com/K-Phoen) | Developer portal, main gateway to our infrastructure, documentation and internal tooling. | +| [Talkdesk](https://www.talkdesk.com) | [@jaime-talkdesk](https://github.com/jaime-talkdesk) | Initial work for Engineering Portal and Self Provisioning to R&D | +| [Wealthsimple](https://www.wealthsimple.com) | [@andrewthauer](https://github.com/andrewthauer) | Developer portal, service catalog, documentation and tooling | +| [Grab](https://www.grab.com) | [@althafh](https://github.com/althafh) | Initial work as a unified interface for all of Grab's internal tooling | +| [Telenor Sweden](https://www.telenor.se) | [@O5ten](https://github.com/O5ten) | Building a developer portal for scaffolding projects towards our unified build environment and microservice stacks | +| [Fiverr](https://www.fiverr.com) | [@nirga](https://github.com/nirga) | Unifying separate tools that developers are using today (i.e. monitoring, dead letter queues management, etc.) into a single platform. | +| [Zalando SE](https://www.zalando.de) | [@leviferreira](https://github.com/leviferreira) | Building V2 of the Internal Development Portal. | +| [LegalZoom](https://legalzoom.com) | [@backjo](https://github.com/backjo) | Developer portal - hub for all engineering projects and metadata. | +| [Expedia Group](https://www.expediagroup.com) | [@guillermomanzo](https://github.com/guillermomanzo), [Sheena Sharma](mailto:shesharma@expediagroup.com), [@ajbw](https://github.com/ajbw) | EG Common Developer Toolkit | +| [Paddle.com](https://paddle.com) | [Ioannis Georgoulas](https://github.com/geototti21) | Developer portal (Tech Docs, Service Catalog, Internal Tooling), we use vanilla Backstage FE and custom BE implementation in Go | +| [Acast.com](https://acast.com) | [Olle Lundberg](https://github.com/lndbrg) | Developer portal with tech docs, service catalog and a bunch of other internal tooling | +| [Lunar](https://lunar.app) | [Jacob Valdemar](https://github.com/JacobValdemar) | Internal developer portal for service overview and insights, API documentation, technical guides, onboarding guides and RFC's. | +| [Trendyol](https://trendyol.com) | [Gamze Senturk](https://github.com/gmzsenturk), [Mert Can Bilgic](https://github.com/mertcb) | The Developer Portal has been called `Pandora`. Provides an overview of Trendyol tech ecosystem. TechDocs, Catalog, Custom Plugins and Theme. | +| [Peloton](https://www.onepeloton.com/) | [Matt Waldron](https://github.com/daftgopher) | Creating our first developer portal and tech-docs. Exploring Service Catalog, Tech Insights and Cost Insights as well. | +| [TELUS](https://telus.com) | [Seb Barre](https://github.com/sbarre) | The Go-to place to find answers about development and delivery at TELUS. | +| [Brex](https://www.brex.com/) | [Vamsi Chitters](https://github.com/vamsikc) | A centralized UI to understand how a service fits in the whole Brex architecture and manage a team’s engineering dependencies. | +| [Oriflame](https://www.oriflame.com/) | [Oriflame](https://github.com/oriflame) | Internal developer portal for services, single page apps and packages overview, API documentation, technical guides, tech-radar and more. | +| [Booz Allen Hamilton](https://www.boozallen.com/) | [Jason Miller](https://github.com/JasonMiller-BAH) | Developer portal for a full-stack software development ecosystem that accelerates consistent and repeatable Modern Software Development practices for internal innovation and investments. | +| [Netflix](https://www.netflix.com/) | [bleathem](https://github.com/bleathem) | Our Backstage implementation will be the front door to a unified experience connecting our internal platform products across important workflows with integrated knowledge and support. | +| [b.well](https://www.icanbwell.com/) | [Jacob Rosales](https://github.com/jrosales) | Foundation for our engineering portal and cloud insights. | +| [PagerDuty](https://www.pagerduty.com/) | [Mark Shaw](https://github.com/markshawtoronto) | Developer portal, initially focused on software templates and tech-docs. | +| [MoonShiner](https://moonshiner.at) | [Fabian Hippmann](https://github.com/FabianHippmann) | Developer portal - helps us keep track of our customer projects, onboard new developers & improve our development process πŸŒ•πŸš€πŸ§‘β€πŸš€ | +| [FundApps](https://www.fundapps.co/) | [Elliot Greenwood](https://github.com/egnwd) | Developer Portal - A place for us to keep track of our projects and documentation for all services and processes | +| [DAZN](https://dazn.com/) | [David Rubio Vidal](https://github.com/davidrv87), [Marco Crivellaro](https://github.com/crivetechie), [Alex Hollerith](mailto:alex.hollerith@dazn.com), [Kamil Wolny](https://github.com/mrwolny) | Ingesting all of DAZN's repos for the catalog, migrating our internal platform apps (pull request boards, release information, inner source marketplace etc) to Backstage plugins (where applicable). | +| [HelloFresh](https://www.hellofresh.de/) | [@iammuho](https://github.com/iammuho), [@ElenaForester](https://github.com/ElenaForester), [@diegomarangoni](https://github.com/diegomarangoni) | Our developer portal at HelloFresh - Spread across an organisation of 500+ engineers globally. | +| [FactSet](https://www.factset.com/) | [@kuangp](https://github.com/kuangp) | Developer portal to provide discoverability to all internal components, APIs, documentation, and scaffold templates with integrations to our internal infrastructure tools. | +| [Workrise](https://www.workrise.com/) | [Michael Rode](https://github.com/michaelrode) | Developer portal, main gateway to our infrastructure, documentation and internal tooling. | +| [RedVentures](https://www.redventures.com/) | [Chris Diaz](https://github.com/codingdiaz) | Developer portal that brings everything an engineer needs to provide value into a single pane of glass. | +| [MavTek](https://www.mavtek.com/) | [@fgascon](https://github.com/fgascon) | Developer portal focused on standardizing practices, centralizing documentation and streamlining developer practices. | +| [QuintoAndar](https://www.quintoandar.com.br/) | [@quintoandar](https://github.com/quintoandar) | Developer portal, services catalog and centralization of service metrics. | +| [empathy.co](https://empathy.co/) | [@guillermotti](https://github.com/guillermotti) | Developer portal for tech docs, service catalog, plugin discovery and much more. | +| [creditas.com](https://creditas.com/) | [@aureliosaraiva](https://github.com/aureliosaraiva) [@Creditas](https://github.com/creditas) | Centralization of all services, standards, documentation, etc. We started the deployment process. | +| [Prisjakt](https://www.prisjakt.nu) / [PriceSpy](https://pricespy.co.uk) | [@kennylindahl](https://github.com/kennylindahl) | Internal developer portal - Documentation, scaffolding, software catalog, TechRadar, Gitlab org data integration | +| [Powerspike](https://powerspike.tv/) | [@trelore](https://github.com/trelore) | Developer portal for documentation of core libraries and repositories. | +| [2U](https://2u.com) | [@danielleEriksen](https://github.com/danielleEriksen), [@sbhatia](https://github.com/sbhatia) | Development team home-base, promoting service discoverability, resource dependencies, and tech radar | +| [Taxfix](https://taxfix.de/) | [Sami Ur Rehman](https://github.com/samiurrehman92) | Developer's portal with software catalog at it's core. Hosts API Specs, Tech Docs, Tech Radar and some custom plugins. | +| [Busuu](https://busuu.com/) | [Adam Tester](https://github.com/adamtester) | Developer portal with service catalog, API docs, Event docs, service templating, and cost insights. | +| [Loadsmart](https://loadsmart.com/) | [Loadsmart](https://github.com/loadsmart) | Improve services visibility and operations for service owners and developers. | +| [Monzo](https://monzo.com/) | [@WillSewell](https://github.com/WillSewell), [@joechrisellis](https://github.com/joechrisellis) | Developer portal showing metadata and docs for over 2000 microservices. We have built a number of plugins such as a UI for our system to measure [software excellence](https://monzo.com/blog/2021/09/15/how-we-measure-software-excellence), and a UI to show deployment and config change events. | +| [Vaimo](https://www.vaimo.com) | [@vaimo-magnus](https://github.com/vaimo-magnus) | Developer Portal for our developers at Vaimo, currently docs and self-service towards our internal PaaS based on k8s. Plans to extend the catalog into Projects, Environments etc | +| [Wayfair](https://www.wayfair.com) | [@fransan](https://github.com/fransan), [@errskipower](https://github.com/errskipower), [@hrrs](https://github.com/hrrs) | Developer portal for service catalog, technical documentation, and APIs. | +| [CircleHD](https://www.circlehd.com) | [@circlehddev](https://github.com/circlehddev) | Developer Portal for internal dev team across the globe | +| [CastDesk](https://castdesk.com) | [@circlehddev](https://github.com/circlehddev) | Developer Portal for internal dev team across the globe | +| [Santagostino](https://santagostino.it) | [@santagostino](https://github.com/santagostino) | Developer portal, gateway to our infrastructure, documentation, service catalog and internal tooling. | +| [Peak](https://peak.ai) | [Luke Beamish](https://github.com/lukebeamish-peak) | Developer portal for all internal engineers to access documentation and tooling. | +| [Gelato](https://gelato.com/) | [Dmitry Makarenko](https://github.com/dmitry-makarenko-gelato) | Developer portal: documentation, service templates, org structure, service catalog, plugins for integration with internal and third-party systemsπŸš€. | +| [GoCardless](https://gocardless.com/) | [James Turley](https://github.com/tragiclifestories) | Developer portal: documentation, service templates, org structure, service catalog, plugins for integration with internal systems. | +| [Box](https://www.box.com) | [@kielosz](https://github.com/kielosz), [@jluk-box](https://github.com/jluk-box), [@ptychu](https://github.com/ptychu), [@alexrybch](https://github.com/alexrybch), [@szubster](https://github.com/szubster) | Developer portal for service catalog, integration with internal systems, new service onboarding. | +| [Bazaarvoice](https://www.bazaarvoice.com) | [@niallmccullagh](https://github.com/niallmccullagh) | Developer portal for service catalog and scaffolds, publishing Github docs and API documentation, visualising our internal tech radar and our product engineering org structure. | +| [Krateo PlatformOps](https://www.krateo.io) | [@projectkerberus](https://github.com/projectkerberus) | A multi-cloud control plane to create, manage and deploy any kind of resource easily and centrally via a Developer Portal that centralizes via a self-service catalog the templating and ownership of services, the available documentation, the overview of the components that compose an entire domain and all the data of the service lifecycle. | +| [Adevinta](https://www.adevinta.com) | [Ray Sinnema](https://github.com/RemonSinnema) | Showcase shared services to our internal customers. | +| [Splunk](https://www.splunk.com) | [@tonytamsf](https://github.com/tonytamsf) | Developer portal as a centralized place to find people, services, documentation, escalation policies and give bravos. This portal is also being used as a centralized search engine for engineering specific documentation. | +| [SoundCloud](https://www.soundcloud.com) | [Julio Zynger](https://github.com/julioz) | Developer portal as a [humane registry](https://martinfowler.com/bliki/HumaneRegistry.html) for the organization: catalog of people, services, documentation, feature toggles, escalation policies, etc. | +| [Volvofinans Bank](https://www.volvofinans.se) | [Johan Hammar](https://github.com/johanhammar) | Developer portal enabling engineers to manage and explore software and documentation. | +| [Palo Alto Networks](https://www.paloaltonetworks.com) | [Jeremy Guarini](https://github.com/jeremyguarini), [Brian Lomeland](https://github.com/bbbmmmlll), [Palo Alto Networks](https://github.com/PaloAltoNetworks) | Developer portal, service catalog, documentation and tooling | +| [Signal Iduna Group](https://www.signal-iduna.de/) | [Jonas Thomsen](https://github.com/JoThomsen) | Developer Portal, documentation, monitoring, service catalog for our insurance ecosystem | +| [Tradeshift](https://www.tradeshift.com/) | [Soren Mathiasen](https://github.com/sorenmat) | Developer Portal: documentation, monitoring, service templates, service catalog for our micro services | +| [Unity](https://unity.com) | [Ted Cordery](https://github.com/TeddyBallGame) | A centralized service catalog with documentation for our service engineers. | +| [PicPay](https://www.picpay.com) | [Luis Baroni](https://github.com/lcsbaroni), [Renata Poluceno](https://github.com/renatapoluceno), [PicPay](https://github.com/picpay) | Developer portal for building services through templates, service catalog with ownership of services, documentation and metrics providing autonomy and visibility for all. | +| [Epic Games](https://www.epicgames.com) | [Brian Jung](https://github.com/brian-at-epic), [Jeff Goldian](https://github.com/jeffgoldian-Epic) | Developer Portal: Service Catalog, Documentation, Software Templates and more making our internal teams' lives easier! | +| [Globo](https://globo.com) | [Carlos GusmΓ£o](https://github.com/caeugusmao), [Guilherme Vierno](https://github.com/vierno), [Denis Aoki](https://github.com/dnsaoki2), [Maycon Dionisio](https://github.com/MayconDionisio), | Reduce the friction of accessing the information engineers need about Globo's digital services through a coherent and centralized experience. | +| [QBE](https://www.qbe.com/) | [Daniel Steel](https://github.com/danielsteelqbe), [Pete Jespers](https://github.com/petejespersqbe) | Developer portal allowing our global teams to explore and create applications, documentation and cloud infrastructure easily and quickly πŸš€ | +| [GoTo](https://www.goto.com) | [Lorenzo Orsatti](https://github.com/lorsatti) | Improve onboarding experience of new developers. Discover faster and painlessly developer documentation, API definitions and team information. Provide useful dev metrics in a central place. Provide easy-to-use templates for new services. | +| [Telstra](https://www.telstra.com.au) | [@kiranpatel11](https://github.com/kiranpatel11), [JasonC](https://github.com/JasonC17) | Primary usage: software catalog and templates
Emerging usage : TechDocs, Explore Ecosystem, TechRadar, etc | +| [Mosaico](https://www.mosaico.com.br/) | [WΓ©dney Yuri](https://github.com/wedneyyuri),[@tino.milton](https://github.com/miltonjacomini) | A centralized service catalog of our documentation for our service engineers. | +| [Mox Bank](https://www.mox.com/) | [Nick Laqua](https://github.com/nick-laqua-dragon) | "Single pane of glass" developer portal for providing a best-in-class developer experience to our product teams and making Mox the best tech environment in Hongkong πŸ₯°πŸš€ | +| [Keyloop](https://www.keyloop.com/) | [Andre Wanlin](https://github.com/awanlin) | Future-motive Developer Portal to help our teams create technology to make everything about buying and owning a car better. πŸš— | +| [Simply Business](https://sbtech.simplybusiness.co.uk/) | [@addersuk](https://github.com/addersuk), [@LightningStairs](https://github.com/LightningStairs), [@punitcse](https://github.com/punitcse), [@moltenice](https://github.com/moltenice) | Central developer portal to access everything a developer needs such as docs, internal service catalog, and the ability to quickly create a new service from a template. Internally developed Backstage plugins allow us to customise the experience to how we work. | +| [Overwolf](https://www.overwolf.com) | [@tomwolfgang](https://github.com/tomwolfgang) | Dev portal - software catalog, tech-docs, scaffolding | +| [Hotmart](https://www.hotmart.com) | [@fabioviana-hotmart](https://github.com/fabioviana-hotmart) | The main Developers Portal to centralize docs, applications and technical metrics. | +| [EF Education First](https://www.ef.com) | [Daan Boerlage](https://github.com/runebaas), [RafaΕ‚ Nowosielski](https://github.com/rnowosielski) | Our developer portal - primarily used for cataloging and scaffolding with the ambition to expand with more feature adoptions over time | +| [Power Home Remodeling](https://www.techatpower.com) | [Ben Langfeld](https://github.com/benlangfeld) | Developer portal to our internal services, build on open-source software (including Kubernetes) in our own datacenters. Our Portal allows our team members to navigate inherant complexity and standardise. | +| [Livspace](https://www.livspace.com) | [Praveen Kumar](https://github.com/praveen-livspace) | Developer portal, service catalog, tech docs, API docs and plugins | +| [Just Eat Takeaway](https://www.justeattakeaway.com) | [Kim Wilson](https://github.com/kwilson541) | Our developer portal which centralises applications, reduces cognitive load and provides teams insights. | +| [Hopin](https://hopin.com) | [Vladimir Glafirov](https://github.com/vglafirov), [Chloe Lee](https://github.com/msfuko) | Developer portal to streamline the development practices. Integrated with service catalog, software templates, application monitoring, tech docs and plugins. | +| [HBO Max](https://hbomax.com) | [@mdb](https://github.com/mdb), [@nesta219](https://github.com/nesta219), [@nmische](https://github.com/nmische), [@hbomark](https://github.com/hbomark) | Developer portal hosting service catalog and API documentation, as well as cloud infrastructure details, operational visibility tools, and a custom plugin for browsing notable platform change events, such as deployments and configuration updates. | +| [RCHLO](https://www.riachuelo.com.br) & [MIDWAY](https://www.midway.com.br) | [@marcosborges](https://github.com/marcosborges), [@defaultbr](https://github.com/defaultbr) | Self-Service Platform | +| [HP Inc](https://www.hp.com) | [Damon Kaswell](https://github.com/dekoding) | DevEx engagement hub (dev portal: docs, standards, Q&A) and extensive assets catalog (APIs, services, code, data, etc.) for the pan-HP internal developer community. | +| [VMware](https://www.vmware.com) | [@mpriamo](https://github.com/mpriamo), [@krisapplegate](https://github.com/krisapplegate) | Part of [Tanzu Application Platform](https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/index.html) offering; internal developer portal | +| [UalΓ‘](https://www.uala.com.ar/) | [Santiago Bernal](https://github.com/sabernal) | Initial work being done to centralize documentation for all our microservices and APIs, as well as scaffolding new services and tracking code quality | +| [IKEA IT AB](https://www.ingka.com) | [@bjornramberg](https://github.com/bjornramberg), [@supriyachitale](https://github.com/supriyachitale) | Supporting engineers at scale with self serve access and connecting the dots of our engineering platform and services, enabling product teams to move faster and go further, and unleashing innovation, reuse and co-creation across the organisation. | +| [Invitae](https://www.invitae.com/en) | [@ryan-hanchett](https://github.com/ryan-hanchett), [@gmandler42](https://github.com/gmandler42) | Centralized Developer Experience portal, putting all of our tooling behind a single pane of glass and creating a living service catalog. | +| [Fortum](https://www.fortum.com/) | [@brunoamaroalmeida](https://github.com/brunoamaroalmeida), [@dhaval-vithalani](https://github.com/dhaval-vithalani), [@sunilkumarmohanty](https://github.com/sunilkumarmohanty) | A central portal containing information about our applications, services, processes and other software assets to be used by Fortum software engineering community. | +| [Procore](https://www.procore.com/jobs/engineering) | [@shayon](https://github.com/Shayon), [@jamesdabbs-procore](https://github.com/jamesdabbs-procore) | Developer portal - centralized software catalog and templates to enable self serve and reduce cognitive load. | +| [Bradesco](https://banco.bradesco/html/classic/sobre/index.shtm) | [@danilosoarescardoso](https://github.com/danilosoarescardoso) | Centralized developer portal with software catalog, software templates, techdocs and some plugins from community and by our own. | +| [SeatGeek](https://seatgeek.com) | [@zhammer](https://github.com/zhammer) | Software catalog and documentation platform | +| [Grupo BoticΓ‘rio](https://www.grupoboticario.com.br/) | [@chicoribas](https://github.com/chicoribas), [@fndiaz](https://github.com/fndiaz), [@digogid](https://github.com/digogid), [@manumbs](https://github.com/manumbs), [@haooliveira84](https://github.com/haooliveira84), [@Rhullyam](https://github.com/Rhullyam) | Centralized developer portal with catalog, documentation, and software templates to build a ready to go application, including pipelines (CI/CD) and cloud services provisioning | +| [Snyk](https://snyk.io/) | [@robcresswell](https://github.com/robcresswell) | Developer portal for software discovery, API documentation and templating | +| [Stilingue](https://www.stilingue.com.br/) | [@stilingue-inteligencia-artificial](https://github.com/Stilingue-IA), [@bbviana](https://github.com/bbviana) | Developer portal, services catalog and centralization of metrics from Grafana, Sentry and GCP. Furthermore, centralization of documentation and infra details like DNS, Network services, SSL and so on. | +| [TUI Group](https://www.tuigroup.com/) | [Simon Stamm](https://github.com/simonstamm), [Christian Rudolph](https://github.com/ChrisRu82) | Developer portal for all engineer to provide discoverability to all internal components, APIs, documentation and to scaffold templates with integrations to our internal tools extended by plugins from our community. | +| [Alliander](https://www.alliander.com/) | [@leon-vg](https://github.com/leon-vg), [@gieljl](https://github.com/gieljl), [@niekteg](https://github.com/niekteg) | Developer portal - software catalog, technical documentation, software templates, tech radar and exploration of used tools/services | +| [VIA](https://www.via.com.br) | [@vagnerguedes](https://github.com/vagnerguedes) | Centralized Developer Experience portal - Software catalog and documentation platform, software templates, techdocs, scaffolding, self-service infrastructure | +| [Surevine](https://www.surevine.com/) | [@DJDANNY123](https://github.com/djdanny123) | Developer portal for software catalog, discovery and a view of the technologies we are using across the organisation, we are looking to explore how we can enrich our entities in Backstage by integrating a software bill of materials. | +| [Bonial International GmbH](https://www.bonial.com/) | [@pjungermann](https://github.com/pjungermann) | Centralized developer portal with software catalog, tech docs, templates, and more. | +| [Beez Innovation Labs Pvt. Ltd](https://www.beezlabs.com/) | [Karthikeyan Venkatesan](https://github.com/karthikeyan23) | Developer portal with software catalog, scaffolding, tech docs, templates, and infra. | +| [Agorapulse](https://www.agorapulse.com/) | [@jvdrean](https://github.com/jvdrean) | Developer portal with software catalog, documentation, monitoring, runbooks, tech radar and more. | +| [Wistia](https://wistia.com/) | [@qrush](https://github.com/qrush), [@okize](https://github.com/okize) | Internal Developer Portal, service catalog, tech docs and more | +| [SIX](https://www.six-group.com/) | [@jbadeau](https://github.com/jbadeau), [@tomassatka](https://github.com/tomassatka) | Internal DevOps portal hosting our software and dataset catalog, as well as custom plugins for observability, service virtualization, deployments, incident managment and quality metrics. | +| [Raiffeisen Bank International](https://www.rbinternational.com/) | [Daniel Baumgartner](https://github.com/dabarbi) | From developers for developers: software catalog, techdocs and heavy use of scaffolder to drive reuse on engineering level forward. Part of inner source initiative. Multi national setup coming. | +| [Spread Group](https://www.spreadgroup.com/) | [Luna Stadler](https://github.com/heyLu), [IvΓ‘n GonzΓ‘lez](https://github.com/ivangonzalezacuna) | Internal Developer Portal, an overview of all running software, architecture documentation and more; replacing and unifying a variety of internal tools. | +| [RD Station](https://rdstation.com) | [Rogerio Angeliski](https://github.com/angeliski), [Paula Assis](https://github.com/paulassis), [Guilherme Eric](https://github.com/guilhermeeric), [Daniela Adamatti](https://github.com/daniadamatti), [Luana Negreiros](https://github.com/luananegreiros) | Developer portal, scaffolding, services catalog. We are looking to centralize automations and information for the whole engineering team . | +| [Resuelve Tu Deuda](https://resuelve.mx) | [IvΓ‘n Álvarez](https://github.com/ivanhoe), [Jorge Medina](https://github.com/jorgearma1982) | Internal developer portal, service catalog, tech docs, api doc | +| [Pachama](https://pachama.com/) | [Aron Gates](https://github.com/agates4) | Internal Developer Portal, a catalog of all microservices, architecture documentation, and templates to generate developer resources. | +| [SEEK](https://www.seek.com.au) | [Jahred Hope](https://github.com/jahredhope) | Developer portal for developer tooling and technical documentation. | +| [Marks & Spencer](https://www.marksandspencer.com/) | [Kamal Cheriyath](https://github.com/kcheriyath) | Centralised discovery, adoption and devops automation hub for Engineering & Architecture. | +| [McKesson](https://www.mckesson.com/) | [Agnel Antony](https://github.com/aantony2) | Internal Developer Platform for developer gated CI/CD templates, technical documentation, cloud automation service catalog, etc. | +| [World Fuel Services](https://www.wfscorp.com/) | [Anirudh Kurapathi](https://github.com/anirudhkurapati), [Alex Kwon](https://github.com/alexkwon), [Lester Hernandez](https://github.com/lhernandez-wfscorp), [Avi Boru](https://github.com/aviboru), [Vardhan Annapureddy](https://github.com/harshaaws) | Internal Developer Portal, service catalog product, API's, Software Templates, tech docs and more. | +| [leboncoin](https://www.leboncoin.fr/) | [Andy Ladjadj](https://github.com/aladjadj) | Centralize our multiple UI in a single portal. Simplify onbording, new features and harmonize how people search information. Core features (catalog,api,docs,scafolder) are good to start the adoption. status: internal beta. | +| [Contentful](https://www.contentful.com) | [James Bourne](https://github.com/jamesmbourne) | Centralized documentation of service ownership, APIs, and documentation, and new service creation with a custom scaffolder - [full case study with Roadie](https://roadie.io/case-studies/maintaining-velocity-through-hypergrowth-contentful/). | +| [Back Market](https://www.backmarket.com) | [Sami Farhat](https://github.com/skfarhat) | Internal Developer Portal featuring catalog, tech-radar, ownership management, component creation (scaffolder) and centralized infrastructure management -- probably more to come. | +| [Avalia Systems](https://avalia.io) | [Olivier Liechti](https://github.com/wasadigi), [Fabio Velloso](https://github.com/fabiovelloso) | Innersource, software analytics, knowledge base for 360 software assessments, collaborative applications, hub for tracking and sharing IP assets. | +| [Albert Heijn](https://ah.technology) | [Joost Hofman](https://github.com/joosthofman), [Reindrich Geerman](https://github.com/reinst) | Single point of entry for all our engineers (Developer portal), Tech radar, catalog, templates (paved roads) and tech documentation. | +| [Wise, formerly TransferWise](https://wise.com) | [Andrew Beveridge](https://github.com/beveradb) | It's early days for us, we're trying to start small with catalog, tech docs and unified search. Future ambitious vision includes scaffolder for one-click component addition, building out integrations with CI/CD tooling, kubernetes clusters, monitoring/alerting tooling etc. and aiming for a frictionless "golden path" for engineers! πŸš€ | +| [Happy Money](http://happymoney.com/) | [Akshit Lomash](mailto:alomash@happymoney.com) | We are moving from a monolith to microservices-based architecture. We are developing a developer portal based on Backstage to create a service catalog for our new services. All the services created are onboarded Backstage and engineering teams are using a cookie-cutter-based template from backstage to initiate a new service. | +| [Lightspeed](http://lightspeedhq.com/) | [Marcus Crane](mailto:marcus.crane@lightspeedhq.com) | We use it within our X-Series division (https://vendhq.com) to catalog ~100+ systems and ~350 components! | +| [Siemens](https://www.siemens.com/global/en.html) | [Nizar Chaouch](mailto:nizar.chaouch@siemens.com) | We are using Backstage as our Developer portal | +| [The Warehouse Group](https://www.thewarehouse.co.nz) | [Matt Law](mailto:matt.law@thewarehouse.co.nz) | Backstage enables us to bootstrap our middleware environment of new services for our Dev teams in a matter of seconds. CI, CD, testing, logging, deployments are all taken care of to get them up and running in less than 60 seconds. | +| [Tink](https://tink.com/) | [Sebastian Olsson](https://github.com/Sebelino), [BΕ‚aΕΌej Szum](https://github.com/blazejszumtink), [Anders Eurenius Runvald](https://github.com/anders-er-at-tink) | Internal developer portal which provides templates for creating new Java or Go microservices seamlessly. Also includes a tech radar and a visualization of our CD pipeline. | +| [Brandwatch](https://brandwatch.com) | [Stefan Buck](https://github.com/stefanbuck) | Our primary focus is on the service catalog. Backstage is replacing our homemade service catalog. The switch was quite simple due to the catalog processor API. | +| [Laybuy](https://www.laybuy.com) | [Chris Simmons](https://github.com/contrarianchris) | Backstage is the heart of Laybuy’s new centralised Development Platform, bringing disparate development tools and experiences into a single easy-to-use portal. It simplifies software and API discovery, project scaffolding, and technical documentation, enabling us to embrace golden path development and automate software standards. | +| [Sendinblue](https://engineering.sendinblue.com/) | [Tanguy Antoine](mailto:antoine.tanguy@sendinblue.com) | Helps us drive the change at scale. Puts light on services, resources, and dependencies. One tool that rules them all through plugins we created for that purpose. We are aiming to put Backstage at the center of every developer's work (Actionable items, Debugging, Monitoring, Provisioning, etc...) to improve their happiness | +| [SafetyCulture](https://safetyculture.com/) | [@R-cen](https://github.com/R-cen), [@lachlancooper](https://github.com/lachlancooper), [@hkf57](https://github.com/hkf57) | Internal developer portal to provide a centralized place for engineers to see an overview of their team's services and information related to the service from other systems. Initially focused on the software catalog, techdocs and search. | +| [Sana Life Science](https://sanalifescience.com) | [Joe Hillyard](mailto:joe@sanalifescience.com) | API Catalog, Tools Management & Control Hub | +| [Ndustrial](https://ndustrial.io) | [Jonathan Skubic](mailto:jonathan@ndustrial.io) | Software Project Catalog | +| [TUI Musement](https://www.musement.com/uk/) | [Simone Fumagalli](mailto:simone.fumagalli@musement.com) | We are importing our catalog into it to keep it under control. The next step is start using templates | +| [Kambi AB](https://www.kambi.com) | [Martin Norum](mailto:martin.norum@kambi.com) | We want to kick ass at speed, so we're currently building up a catalog of our existing software, and looking into how Backstage can support us in our journey towards autonomous product teams. Both to improve speed to market and operational awareness. | +| [ANZ](https://www.anz.com.au/personal/) | [Elliot Jackson](mailto:elliot.jackson@anz.com) | Catalog, tech docs and automation | +| [Genie Solutions](https://www.geniesolutionssoftware.com.au) | [Zainab Bagasrawala](mailto:zainabbagasrawala@geniesolutions.com.au) | Developer Portal to track our projects, documentation, observability tools and more | +| [MadeiraMadeira](https://www.madeiramadeira.com.br) | [Paulo Eduardo Peixoto](mailto:paulo.peixoto@madeiramadeira.com.br) | As a support tool for developers, following the principles of "Developer Experience". In order to make the developer's day to day more practical, efficient and, why not, happy. | +| [Sonatype](https://www.sonatype.com) | [Srikar Ananthula](mailto:sananthula@sonatype.com) | Centralize services used internally with many plugins | +| [CVS Health](https://www.cvshealth.com) | [Ari Ben-Elazar](mailto:abenelazar@gmail.com) | Cataloging and documenting our service offerings to offer our internal developers a better operational journey | +| [Yatra.com](https://www.yatra.com) | [Matiur Rahman Maitur](mailto:arifrahman4u@gmail.com) | Easy to find out Project details, ownership, dependent services, Documentation, it is very useful for developer. | +| [Yotpo](https://www.yotpo.com) | [Liran Yogev](mailto:lyogev@yotpo.com) | Services exploration, documentation and project generator | +| [Mainsail Industries](https://www.mainsailindustries.com) | [Brad Sollar](mailto:brad@mainsailindustries.com) | Internal tool management and docs | +| [Prisma](https://prismamp.com) | [Sebastian Gravina](mailto:sgravina@prismamp.com) | Is part of our IDP | +| [Syndetic](https://syndetic.io) | [John Feminella](mailto:robots+swag@syndetic.io) | We're working with multiple F100 clients for digital transformation and Backstage is a key part of our landing and acceleration strategy. | +| [Imagine Learning](https://www.imaginelearning.com/en/us) | [Jared Stehler](mailto:jared.stehler@imaginelearning.com) | Software catalog, product dependency visualization | +| [Alef Education](https://www.alefeducation.com) | [Belal Juma](mailto:belal.juma@alefeducation.com) | We use backstage as a Service Catalog and rely on the TechDocs feature | +| [Zego](https://www.zego.com) | [Sean Kenny](mailto:sean.kenny@zego.com) | Single pane of glass for organisational and operational information for all services across our systems. | +| [Absa Group Limited](https://www.absa.africa/absaafrica/) | [Chris Kieser](mailto:chris.kieser@absa.africa) | Developer portal for all development needs - security, AWS, k8s, build and deployment pipelines and more | +| [Nutrien Ag Solutions](https://www.nutrienagsolutions.com.au) | [Jan Quijano](mailto:jan.quijano@nutrien.com.au) | Software Project Catalog | +| [Lendingkart](https://www.lendingkart.com/) | [Dinesh Rajpoot](mailto:dinesh.rajpoot@lendingkart.com) | Service catalog, Software templates to enforce best practices and tech insights to track mandates & migrations. | +| [Meltwater](https://underthehood.meltwater.com) | [@spier](https://github.com/spier), [@remen](https://github.com/remen) | Improving developer experience by centralizing documentation and internal APIs. Goal: Foster InnerSource collaboration and speed up onboarding time in our 500+ people Product & Engineering org. | +| [Doctolib](https://doctolib.engineering/) | [@djiit](https://github.com/djiit) | Rails modularization effort awareness, tech organization discoverability. Improving the daily workflows and collaboration processes of our engineers. | +| [Twilio](https://www.twilio.com) | [Kyle Smith](https://github.com/knksmith57) | Developer portal, universal software catalog, and centralized taxonomy platform. | +| [OVHcloud](https://www.ovhcloud.com/fr/) | [Jean-Philippe Blary](https://github.com/blaryjp), [Arnaud Bauer](mailto:arnaud.bauer@ovhcloud.com), [Flavien Chantelot](https://github.com/Dorn-) | We're providing Backstage to our collaborators to ease their daily jobs, and let them extends it using plugins. | +| [Procter & Gamble](https://us.pg.com/) | [Binita Nayak](https://github.com/binitan), [Josh Rose](https://github.com/joshuarose), [RJ Winkler](https://github.com/rjwink) | P&G leverages Backstage to build internal developer portal to ensure developers' happiness. This developer portal shall act as single source of information needed by development teams to seamlessly create, find and maintain their software components/resources/documentation. | +| [SANS Institute](https://www.sans.org) | [Christopher Klewin](mailto:cklewin@sans.org) | Developer portal for centralized visibility, reporting, and tooling across multiple organizations. | +| [Okay](https://www.okayhq.com/) | [Tomas Barreto](mailto:tomas@okayhq.com) | Service catalog, developer portal, and technical documentation | +| [Kaluza](https://www.kaluza.com) | [James Condren](mailto:james.condron@kaluza.com) | To provide an automated golden path to developers, with a focus on discovery and documentation | +| [LinkedIn](https://linkedin.com) | [Joshua Lawrence](mailto:jlawrence@linkedin.com) | We are building a platform for internal web tools | +| [Forto](https://forto.com) | [Rodolfo Matos](mailto:rodolfo.matos@forto.com) | Still in a experimental phase/assessing the organisational fit. We will be using it mostly a developer portal -- pretty standard use case. | +| [BetterUp](https://betterup.com) | [Jordan Hochenbaum](mailto:jordan.hochenbaum@betterup.co) | We're starting to use Backstage as the central hub for service discovery, documentation, and develop experience. | +| [warung pintar](https://warungpintar.co.id/) | [Muhammad Rafly Andrianza](mailto:rafly.andrianza@warungpintar.co) | Initial Work Developer Portal with TechRadar, Service Catalogue, TechDocs, anything about platform & infrastructure resources. | +| [RD](https://rd.com.br/) | [Michael Silva](mailto:midsilva@rd.com.br) | We are building our developer portal. Software catalog, Tech Radar and Scaffolding are among the initial features. | +| [AEB](https://www.aeb.com/) | [David FankhΓ€nel](mailto:dfl@aeb.com) | Central developer platform for creating new apps via templates, getting an overview via software catalog, etc | +| [SALTO Systems](https://saltosystems.com) | [Ian Cowley](mailto:i.cowley@saltosystems.com) | Currently using Backstage as an internal documentation portal. | +| [Lummo](https://lummo.com) | [Anjul Sahu](mailto:anjul@lummo.com) | We are building the internal developer portal using Backstage and bringing up all integrations and service information at one place. | +| [Frontside](https://frontside.com) | [Taras Mankovski](mailto:taras@frontside.com) | | +| [Stepstone](https://www.stepstone.com/en/) | [Neil Kennedy](mailto:neil.kennedy@stepstone.com) | StepStone is using Backstage to solve problems around ownership and visibility of our applications. We have thousands of repos, multiple legacy systems and a growing platform that is hard to maintain. Backstage is forming the centre of our push to embrace the chaos. | +| [idwall](https://idwall.co) | [Rodrigo CatΓ£o Araujo](mailto:rodrigo@idwall.co) | Developer Portal for internal engineers to access service catalog, documentation, observability, infrastructure and internal tooling. | +| [Jaguar Land Rover](https://www.jaguarlandrover.com) | [Josh Walker](mailto:jwalke18@jaguarlandrover.com) | Users can request a Gitlab user, which creates a commit with the Terraform code. | +| [Glovo](http://glovoapp.com/) | [Yaser Toutah](mailto:yaser.toutah@glovoapp.com) | Developer Portal to improve our Developer Experience, identify ownership and track metadata for our services and tools. It's our Service Catalog. In addition to that, we use it for Service Creation, and much more. | +| [Dixa](https://dixa.com) | [Jens MΓΈller](https://github.com/jensamoller) | We are in early stages, but using it to get overview of our repositories and ownership of these. We want among many things to use it for compliance and easier access to key metrics for our repos. | +| [Notino](https://notino.com) | [Jan Remunda](mailto:jan.remunda@notino.com) | Backstage is our developer portal. We use it as service catalog and for technical documentation. | +| [Polarpoint](https://polarpoint.io/) | [Surj Bains](https://github.com/polarpoint-io) | We are using Backstage as our Developer portal as well as for hosting our DevOps portal for software catalog. | +| [Niche](https://niche.com) | [Zach Romitz](mailto:zach.romitz@niche.com) | We are using the Software Catalog, Software Templates, API documentation, and Techdocs to try and centralize service information. | +| [Mercedes-Benz.io](https://www.mercedes-benz.io/) | [Manuel Santos](https://github.com/manusant) | At Mercedes-Benz we use it as a developer portal with software catalog, TechDocs, Scaffolding and custom plugins. It provides an overview of our tech ecosystem to our product development teams. The portal also serves as a way to foster collaboration among the numerous companies of the Mercedes-Benz Group. | +| [Funding Circle](https://www.fundingcircle.com/) | [Ariel Pacciaroni](https://github.com/arielpacciaroni) | We are building the internal developer portal using Backstage project and centralizing all services information at one place. The portal helps us track down repositories ownership as well as direct access to key information on every component. | +| [Clarivate](https://www.clarivate.com) | [Gabriele Carteni](mailto:gabriele.carteni@clarivate.com) | We are building our Developer Portal using Backstage to have a better control over our software ecosystem, integrate SDLC tools and promote best practices | +| [Cho Tot](https://www.chotot.com) | [Chotot Team](mailto:sre@chotot.vn) | Internal developer portal, service catalog with CI/CD tools. | +| [William Hill](https://www.williamhillgroup.com/) | [Pat Mills](mailto:pat.mills@williamhill.com), [Nathan Flynn](mailto:nflynn@williamhill.co.uk), and [Nishkarsh Raj](mailto:nishkarsh.raj@williamhill.co.uk) | William Hill are leveraging Backstage to build our Engineering Portal. Our mission is to centralize the software catalog inventory to enable service discoverability, reduce the onboarding time for new Engineers, provide a single pane of glass to accelerate Developer Productivity and Save Engineers time. Our aspiration is to create an InnerSource community focussed on organization-wide patterns that are re-usable and can be self-served with the Scaffolder. | +| [Vodafone NewZealand Limited](https://vodafone.co.nz) | [Ankit Gupta](mailto:ankit.gupta@vodafone.nz), [DevOps COE](mailto:devopstooling@vodafone.nz) | Vodafone NZ are leveraging Backstage to build centralised and self service Engineering Portal. Our mission is to standardised Pipeline templates across the Engineering teams, One shop stop to create the pipelines and repository with a template approach which reduces creation part from days to minutes and no wait time for developers. A unified view for Azure DevOps pipeline, Azure Repo pull requests, Deployment status from Azure RedHat Openshift-ArgoCD and SonarQube Security and code quality scans report on a single pan to provide a streamlined view for all microservices across the app stack. | +| [Coamo](http://www.coamo.com.br) | [@holiiveira](https://github.com/holiiveira), [@gpxlnx](https://github.com/gpxlnx) | We're starting to use it as the main tool of a DevOps platform. Our goal is to provide software templates, centralize our software catalog enabling efficient service discovery, and make it easy to manage the entire software ecosystem in one place. | +| [Exclaimer](https://www.exclaimer.com/) | [Marley Powell](mailto:marley.powell@exclaimer.com) | Developer portal, service catalog and documentation | +| [Edge Consulting](https://egde.no/) | [Øyvind Brekkhus SandΓ₯ker](mailto:oyvindbs@egde.no) | Using it as a Software Catalog to get an overview of our systems, for ourselves and our customers. | +| [CRV](https://crv4all.com) | [Pepijn Schildkamp](mailto:pepijn.schildkamp@crv4all.com) | +| [uisee.com](https://uisee.com) | [Haili Zhang](mailto:haili.zhang@uisee.com) | In PoC stage, planning to land it for cloud platform dev team. | +| [Egencia](https://www.egencia.com) | [Micheal Gibbons](mailto:migibbons@egencia.com) | Developer Portal: Software Catalog, Software Templates and Techdocs. | +| [Adaptavist](https://adaptavist.com) | [Lilly Holden](mailto:lholden@adaptavist.com) | Developer portal, service catalog, documentation and self-service platform | +| [Shipshape](https://shipshape.io) | [Chuck Carpenter](mailto:chuck@shipshape.io) | We are a consultancy helping teams implement and customize Backstage. | +| [Backbase](https://backbase.com) | [Nicolas Torres](mailto:ntorres.dev@gmail.com) | To catalog components and teams | +| [https://www.clear.sale](https://www.clear.sale) | [Paulo Baima](mailto:paulo.filho@clear.sale) | Central Hub for all the company modules, enabling the track of ownership of components and resources and how they relate to each other. | +| [www.leroymerlin.com.br](https://www.leroymerlin.com.br) | [Rodrigo Franzoni](mailto:rfranzoni@leroymerlin.com.br) | Our engineers use the Backstage to solve problems around ownership and visibility of our applications, access service catalog, documentation, observability and infrastructure. | +| [Intility](https://intility.no/en/) | [@daniwk](https://github.com/daniwk) | We are creating a developer portal powered by Backstage, with software catalog, documentation, templates and integrations to our infrastructure and internal tools. | diff --git a/docs/auth/add-auth-provider.md b/docs/auth/add-auth-provider.md index eb8973bec1..01c18f04cd 100644 --- a/docs/auth/add-auth-provider.md +++ b/docs/auth/add-auth-provider.md @@ -350,6 +350,7 @@ router.get('/auth/providerA/handler/frame'); router.post('/auth/providerA/handler/frame'); router.post('/auth/providerA/logout'); router.get('/auth/providerA/refresh'); // if supported +router.post('/auth/providerA/refresh'); // if supported ``` As you can see each endpoint is prefixed with both `/auth` and its provider diff --git a/docs/features/software-catalog/well-known-annotations.md b/docs/features/software-catalog/well-known-annotations.md index 24464dd700..46f28dcb01 100644 --- a/docs/features/software-catalog/well-known-annotations.md +++ b/docs/features/software-catalog/well-known-annotations.md @@ -242,13 +242,14 @@ that entity if the periskop plugin is installed. # Example: metadata: annotations: - sentry.io/project-slug: pump-station + sentry.io/project-slug: backstage/pump-station ``` The value of this annotation is the so-called slug (or alternatively, the ID) of -a [Sentry](https://sentry.io) project within your organization. The organization -slug is currently not configurable on a per-entity basis, but is assumed to be -the same for all entities in the catalog. +a [Sentry](https://sentry.io) project within your organization. The value can +be the format of `[organization]/[project-slug]` or just `[project-slug]`. When +the organization slug is omitted the `app-config.yaml` will be used as a +fallback (`sentry.organization`). Specifying this annotation may enable Sentry related features in Backstage for that entity. diff --git a/docs/integrations/github/github-apps.md b/docs/integrations/github/github-apps.md index 5725e67c7b..4f2c58bbec 100644 --- a/docs/integrations/github/github-apps.md +++ b/docs/integrations/github/github-apps.md @@ -79,7 +79,7 @@ privateKey: | ### Including in Integrations Config Once the credentials are stored in a YAML file generated by `create-github-app`, -or manually by following the [GitHub Enterprise](#gitHub-enterprise) +or manually by following the [GitHub Enterprise](#github-enterprise) instructions, they can be included in the `app-config.yaml` under the `integrations` section. diff --git a/docs/overview/architecture-overview.md b/docs/overview/architecture-overview.md index 382399e603..3c9417268b 100644 --- a/docs/overview/architecture-overview.md +++ b/docs/overview/architecture-overview.md @@ -341,7 +341,8 @@ separate Docker images. The backend container can be built by running the following command: ```bash -yarn run docker-build +yarn run build +yarn run build-image ``` This will create a container called `example-backend`. diff --git a/docs/overview/versioning-policy.md b/docs/overview/versioning-policy.md index 282906c580..885a599ed8 100644 --- a/docs/overview/versioning-policy.md +++ b/docs/overview/versioning-policy.md @@ -49,7 +49,7 @@ functionality, breaking changes, and bug fixes, according the [versioning policy](#release-versioning-policy). Patch versions will only be released to address critical bug fixes. They are not -bound to the regular cadence and are instead releases whenever needed. +bound to the regular cadence and are instead released whenever needed. ## Next Release Line diff --git a/docs/releases/v1.4.0-next.2-changelog.md b/docs/releases/v1.4.0-next.2-changelog.md new file mode 100644 index 0000000000..fe00c648dd --- /dev/null +++ b/docs/releases/v1.4.0-next.2-changelog.md @@ -0,0 +1,1308 @@ +# Release v1.4.0-next.2 + +## @backstage/catalog-model@1.1.0-next.2 + +### Minor Changes + +- 4cc81372f8: Introduced `GroupDefaultParentEntityPolicy` to set a default group entity parent. + +## @backstage/core-components@0.10.0-next.2 + +### Minor Changes + +- 32204fa794: Add `transformLinkUri` and `transformImageUri` to `MarkdownContent` + +### Patch Changes + +- b4b711bcc2: Fix the EntityLayout header style so that EntityContextMenu button can display in correct shape when user hover on it +- 15201b1032: Updated dependency `rc-progress` to `3.4.0`. +- 385389d23c: Updated to remove usage of the `bursts` object in the theme palette +- Updated dependencies + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-catalog@1.4.0-next.2 + +### Minor Changes + +- a274fe38b9: Add hidden title column to catalog and API table to enable filtering by title. + +### Patch Changes + +- 258057a4b9: Adding ability to customize the "unregister entity" menu item in the entity context menu on the entity page with options 'visible','hidden','disabled'.With this three new options, one can hide the "unregister entity" menu item from the list, disable or keep it enabled. + + The boolean input for "unregister entity" will be deprecated later in favour of the above three options. + +- 385389d23c: Updated to remove usage of the `bursts` object in the theme palette + +- be26d95141: Added new `EntityProcessingStatusPicker` that will filter for entities with orphans and/or errors. + + If you are using the default Catalog page this picker will be added automatically. For those who have customized their Catalog page you'll need to add this manually by doing something like this: + + ```diff + ... + import { + CatalogFilterLayout, + EntityTypePicker, + UserListPicker, + EntityTagPicker + + EntityProcessingStatusPicker, + } from '@backstage/plugin-catalog-react'; + ... + export const CustomCatalogPage = ({ + columns, + actions, + initiallySelectedFilter = 'owned', + }: CatalogPageProps) => { + return ( + ... + + + + + + ... + }; + ``` + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + +## @backstage/plugin-catalog-backend-module-msgraph@0.4.0-next.1 + +### Minor Changes + +- a145672f0f: Align `msgraph` plugin's entity provider config with other providers. **Deprecated** entity processor as well as previous config. + + You will see warning at the log output until you migrate to the new setup. + All deprecated parts will be removed eventually after giving some time to migrate. + + Please find information on how to migrate your current setup to the new one below. + + **Migration Guide:** + + There were two different way on how to use the msgraph plugin: processor or provider. + + Previous registration for the processor: + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addProcessor( + MicrosoftGraphOrgReaderProcessor.fromConfig(env.config, { + logger: env.logger, + // [...] + }), + ); + ``` + + Previous registration when using the provider: + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addEntityProvider( + MicrosoftGraphOrgEntityProvider.fromConfig(env.config, { + id: 'https://graph.microsoft.com/v1.0', + target: 'https://graph.microsoft.com/v1.0', + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + // [...] + }), + ); + ``` + + Previous configuration as used for both: + + ```yaml + # app-config.yaml + catalog: + processors: + microsoftGraphOrg: + providers: + - target: https://graph.microsoft.com/v1.0 + # [...] + ``` + + **Replacement:** + + Please check for the complete documentation of all configuration options (config as well as registration of the provider). + + ```yaml + # app-config.yaml + catalog: + providers: + microsoftGraphOrg: + # In case you used the deprecated configuration with the entity provider + # using the value of `target` will keep the same location key for all + providerId: # some stable ID which will be used as part of the location key for all ingested data + target: https://graph.microsoft.com/v1.0 + # [...] + ``` + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addEntityProvider( + MicrosoftGraphOrgEntityProvider.fromConfig(env.config, { + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + // [...] + }), + ); + ``` + + In case you've used multiple entity providers before + **and** you had different transformers for each of them + you can provide these directly at the one `fromConfig` call + by passing a Record with the provider ID as key. + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-tasks@0.3.3-next.2 + - @backstage/plugin-catalog-backend@1.2.1-next.2 + +## @backstage/plugin-cost-insights-common@0.1.0-next.0 + +### Minor Changes + +- 81dd5ea989: Introduces a new isomorphic @backstage/plugin-cost-insight-common package to contain shared types across all other cost insights packages and modules. + +## @backstage/plugin-scaffolder@1.4.0-next.2 + +### Minor Changes + +- d8eb82f447: Add `allowedRepos` `ui:option` to `RepoUrlPicker` component, and move `repoName` field to own component + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- 14146703e5: Add `allowArbitraryValues` to `ui:options` in `OwnedEntityPicker`, similar to `allowArbitraryValues` in `EntityPicker` + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + +## @backstage/plugin-scaffolder-backend@1.4.0-next.2 + +### Minor Changes + +- 4baf8a4ece: Update GitLab Merge Request Action to allow source branch to be deleted +- 2db07887cb: Added two new scaffolder actions: `github:repo:create` and `github:repo:push` + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/plugin-catalog-backend@1.2.1-next.2 + - @backstage/integration@1.2.2-next.2 + +## @backstage/plugin-tech-insights-backend@0.5.0-next.2 + +### Minor Changes + +- 818fa28d71: Allow FactRetrieverRegistry to be injected into buildTechInsightsContext so that we can override default registry implementation. + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/backend-tasks@0.3.3-next.2 + +## @backstage/app-defaults@1.0.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/backend-common@0.14.1-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/integration@1.2.2-next.2 + +## @backstage/backend-tasks@0.3.3-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + +## @backstage/backend-test-utils@0.1.26-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + - @backstage/cli@0.18.0-next.2 + +## @backstage/cli@0.18.0-next.2 + +### Patch Changes + +- f6b6fb7165: The `test` command now ensures that all IO is flushed before exiting when printing `--help`. + +## @backstage/create-app@0.4.29-next.2 + +### Patch Changes + +- f281ad17c0: Adds the ability to define the Backstage app name using a `BACKSTAGE_APP_NAME` + environment variable when running `create-app`. + +## @backstage/dev-utils@1.0.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/app-defaults@1.0.4-next.2 + - @backstage/integration-react@1.1.2-next.2 + +## @backstage/integration@1.2.2-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +## @backstage/integration-react@1.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + +## @backstage/theme@0.2.16-next.1 + +### Patch Changes + +- ff4f56eb49: **DEPRECATED**: The `bursts` object from `BackstagePaletteAdditions` has been depreciated and will be removed in a future release + + The `genPageTheme` function now includes an optional options object with an optional `fontColor` which defaults to white if not provided. + +## @backstage/plugin-adr@0.1.2-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + +## @backstage/plugin-airbrake@0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/dev-utils@1.0.4-next.2 + +## @backstage/plugin-allure@0.1.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-analytics-module-ga@0.1.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-apache-airflow@0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + +## @backstage/plugin-api-docs@0.8.7-next.2 + +### Patch Changes + +- a274fe38b9: Add hidden title column to catalog and API table to enable filtering by title. +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog@1.4.0-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-app-backend@0.3.34-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + +## @backstage/plugin-auth-backend@0.15.0-next.2 + +### Patch Changes + +- 8e03db907a: Auth provider now also export createAuthProviderIntegration +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + +## @backstage/plugin-azure-devops@0.1.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-badges@0.2.31-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-badges-backend@0.1.28-next.2 + +### Patch Changes + +- 58fd5ee9d5: Add missing installation instructions +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + +## @backstage/plugin-bazaar@0.1.22-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-catalog@1.4.0-next.2 + - @backstage/cli@0.18.0-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-bazaar-backend@0.1.18-next.1 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + - @backstage/backend-test-utils@0.1.26-next.2 + +## @backstage/plugin-bitrise@0.1.34-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-catalog-backend@1.2.1-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/integration@1.2.2-next.2 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.0-next.1 + +### Patch Changes + +- 4881dc4c84: Updated dependency `openapi-types` to `^12.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/plugin-catalog-backend@1.2.1-next.2 + - @backstage/integration@1.2.2-next.2 + +## @backstage/plugin-catalog-graph@0.2.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-catalog-import@0.8.10-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + +## @backstage/plugin-catalog-react@1.1.2-next.2 + +### Patch Changes + +- be26d95141: Added new `EntityProcessingStatusPicker` that will filter for entities with orphans and/or errors. + + If you are using the default Catalog page this picker will be added automatically. For those who have customized their Catalog page you'll need to add this manually by doing something like this: + + ```diff + ... + import { + CatalogFilterLayout, + EntityTypePicker, + UserListPicker, + EntityTagPicker + + EntityProcessingStatusPicker, + } from '@backstage/plugin-catalog-react'; + ... + export const CustomCatalogPage = ({ + columns, + actions, + initiallySelectedFilter = 'owned', + }: CatalogPageProps) => { + return ( + ... + + + + + + ... + }; + ``` + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + +## @backstage/plugin-circleci@0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-cloudbuild@0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-code-climate@0.1.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-code-coverage@0.1.34-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-code-coverage-backend@0.1.32-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/integration@1.2.2-next.2 + +## @backstage/plugin-codescene@0.1.2-next.2 + +### Patch Changes + +- 15201b1032: Updated dependency `rc-progress` to `3.4.0`. +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-config-schema@0.1.30-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-cost-insights@0.11.29-next.2 + +### Patch Changes + +- 3e032a5de2: Move cost-insights data specific API types (non react) into an @backstage/plugin-cost-insights-common + isomorphic package. This allows these types to be shared in any backend packages or other cost-insight + modules. +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/plugin-cost-insights-common@0.1.0-next.0 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-dynatrace@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-explore@0.3.38-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-firehydrant@0.1.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-fossa@0.2.39-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-gcalendar@0.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-gcp-projects@0.3.26-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-git-release-manager@0.3.20-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + +## @backstage/plugin-github-actions@0.5.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-github-deployments@0.1.38-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + +## @backstage/plugin-github-pull-requests-board@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-gitops-profiles@0.3.25-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-gocd@0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-graphiql@0.2.39-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-home@0.4.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/plugin-stack-overflow@0.1.3-next.2 + +## @backstage/plugin-ilert@0.1.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-jenkins@0.7.6-next.2 + +### Patch Changes + +- 8747824221: feature: added support for multiple branches to the `JenkinsApi` +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-jenkins-backend@0.1.24-next.2 + +### Patch Changes + +- 8747824221: feature: added support for multiple branches to the `JenkinsApi` +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + +## @backstage/plugin-kafka@0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-kafka-backend@0.2.27-next.2 + +### Patch Changes + +- 8751667541: Updated dependency `kafkajs` to `^2.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + +## @backstage/plugin-kubernetes@0.6.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/plugin-kubernetes-common@0.4.0-next.1 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-kubernetes-backend@0.7.0-next.2 + +### Patch Changes + +- 60e5f9fe68: Fixed the lack of `limitranges` as part of the Default Objects to fetch from the kubernetes api +- Updated dependencies + - @backstage/plugin-kubernetes-common@0.4.0-next.1 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + +## @backstage/plugin-kubernetes-common@0.4.0-next.1 + +### Patch Changes + +- 60e5f9fe68: Fixed the lack of `limitranges` as part of the Default Objects to fetch from the kubernetes api +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + +## @backstage/plugin-lighthouse@0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-newrelic@0.3.25-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-newrelic-dashboard@0.1.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-org@0.5.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-pagerduty@0.5.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-periskop@0.1.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-rollbar@0.4.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-search@0.9.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-search-backend-module-pg@0.3.5-next.2 + +### Patch Changes + +- 423e3d8e95: **DEPRECATED**: `PgSearchEngine` static `from` has been deprecated and will be removed in a future release. Use static `fromConfig` method to instantiate. + + Added support for highlighting matched terms in search result data + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. + +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + +## @backstage/plugin-search-react@0.2.2-next.2 + +### Patch Changes + +- 60408ca9d4: Fix search pagination to reset page cursor also when a term is cleared. +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-sentry@0.3.45-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-shortcuts@0.2.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-sonarqube@0.3.7-next.2 + +### Patch Changes + +- 15201b1032: Updated dependency `rc-progress` to `3.4.0`. +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-splunk-on-call@0.3.31-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-stack-overflow@0.1.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-home@0.4.23-next.2 + +## @backstage/plugin-tech-insights@0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-tech-radar@0.5.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-techdocs@1.2.1-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- 7739141ab2: Fix: When docs are shown in an entity page under the docs tab the sidebars start overlapping with the header and tabs in the page when you scroll the documentation content. + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + - @backstage/plugin-techdocs-react@1.0.2-next.1 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-techdocs@1.2.1-next.2 + - @backstage/plugin-catalog@1.4.0-next.2 + - @backstage/integration-react@1.1.2-next.2 + - @backstage/plugin-techdocs-react@1.0.2-next.1 + +## @backstage/plugin-techdocs-backend@1.2.0-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-techdocs-node@1.2.0-next.2 + +## @backstage/plugin-techdocs-module-addons-contrib@1.0.2-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + - @backstage/plugin-techdocs-react@1.0.2-next.1 + +## @backstage/plugin-techdocs-node@1.2.0-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/integration@1.2.2-next.2 + +## @backstage/plugin-techdocs-react@1.0.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + +## @backstage/plugin-todo@0.2.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-user-settings@0.4.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## @backstage/plugin-vault@0.1.1-next.2 + +### Patch Changes + +- 7ee4abdcc9: Added a path notion in addition to secret name to allow to differentiate secrets in sub-paths +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + +## @backstage/plugin-vault-backend@0.2.0-next.2 + +### Patch Changes + +- 7ee4abdcc9: Added a path notion in addition to secret name to allow to differentiate secrets in sub-paths +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + - @backstage/backend-tasks@0.3.3-next.2 + - @backstage/backend-test-utils@0.1.26-next.2 + +## @backstage/plugin-xcmetrics@0.2.27-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + +## example-app@0.2.73-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-cost-insights@0.11.29-next.2 + - @backstage/core-components@0.10.0-next.2 + - @backstage/plugin-scaffolder@1.4.0-next.2 + - @backstage/plugin-jenkins@0.7.6-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-import@0.8.10-next.2 + - @backstage/plugin-techdocs@1.2.1-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.2-next.2 + - @backstage/plugin-api-docs@0.8.7-next.2 + - @backstage/plugin-catalog@1.4.0-next.2 + - @backstage/cli@0.18.0-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/app-defaults@1.0.4-next.2 + - @backstage/integration-react@1.1.2-next.2 + - @backstage/plugin-airbrake@0.3.7-next.2 + - @backstage/plugin-apache-airflow@0.2.0-next.2 + - @backstage/plugin-azure-devops@0.1.23-next.2 + - @backstage/plugin-badges@0.2.31-next.2 + - @backstage/plugin-catalog-graph@0.2.19-next.2 + - @backstage/plugin-circleci@0.3.7-next.2 + - @backstage/plugin-cloudbuild@0.3.7-next.2 + - @backstage/plugin-code-coverage@0.1.34-next.2 + - @backstage/plugin-dynatrace@0.1.1-next.2 + - @backstage/plugin-explore@0.3.38-next.2 + - @backstage/plugin-gcalendar@0.3.3-next.2 + - @backstage/plugin-gcp-projects@0.3.26-next.2 + - @backstage/plugin-github-actions@0.5.7-next.2 + - @backstage/plugin-gocd@0.1.13-next.2 + - @backstage/plugin-graphiql@0.2.39-next.2 + - @backstage/plugin-home@0.4.23-next.2 + - @backstage/plugin-kafka@0.3.7-next.2 + - @backstage/plugin-kubernetes@0.6.7-next.2 + - @backstage/plugin-lighthouse@0.3.7-next.2 + - @backstage/plugin-newrelic@0.3.25-next.2 + - @backstage/plugin-newrelic-dashboard@0.1.15-next.2 + - @backstage/plugin-org@0.5.7-next.2 + - @backstage/plugin-pagerduty@0.5.0-next.2 + - @backstage/plugin-rollbar@0.4.7-next.2 + - @backstage/plugin-search@0.9.1-next.2 + - @backstage/plugin-sentry@0.3.45-next.2 + - @backstage/plugin-shortcuts@0.2.8-next.2 + - @backstage/plugin-stack-overflow@0.1.3-next.2 + - @backstage/plugin-tech-insights@0.2.3-next.2 + - @backstage/plugin-tech-radar@0.5.14-next.2 + - @backstage/plugin-techdocs-react@1.0.2-next.1 + - @backstage/plugin-todo@0.2.9-next.2 + - @backstage/plugin-user-settings@0.4.6-next.2 + +## example-backend@0.2.73-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes-backend@0.7.0-next.2 + - @backstage/plugin-tech-insights-backend@0.5.0-next.2 + - @backstage/plugin-jenkins-backend@0.1.24-next.2 + - @backstage/plugin-search-backend-module-pg@0.3.5-next.2 + - @backstage/plugin-scaffolder-backend@1.4.0-next.2 + - @backstage/plugin-auth-backend@0.15.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-kafka-backend@0.2.27-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/backend-tasks@0.3.3-next.2 + - @backstage/plugin-app-backend@0.3.34-next.2 + - @backstage/plugin-catalog-backend@1.2.1-next.2 + - @backstage/plugin-code-coverage-backend@0.1.32-next.2 + - @backstage/plugin-techdocs-backend@1.2.0-next.2 + - @backstage/plugin-badges-backend@0.1.28-next.2 + - @backstage/integration@1.2.2-next.2 + - example-app@0.2.73-next.2 + +## techdocs-cli-embedded-app@0.2.72-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-techdocs@1.2.1-next.2 + - @backstage/plugin-catalog@1.4.0-next.2 + - @backstage/cli@0.18.0-next.2 + - @backstage/app-defaults@1.0.4-next.2 + - @backstage/integration-react@1.1.2-next.2 + - @backstage/plugin-techdocs-react@1.0.2-next.1 + +## @internal/plugin-todo-list@1.0.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 diff --git a/microsite/data/on-demand/20211117-01.yaml b/microsite/data/on-demand/20211117-1.yaml similarity index 100% rename from microsite/data/on-demand/20211117-01.yaml rename to microsite/data/on-demand/20211117-1.yaml diff --git a/microsite/data/on-demand/20211118-01.yaml b/microsite/data/on-demand/20211118-1.yaml similarity index 100% rename from microsite/data/on-demand/20211118-01.yaml rename to microsite/data/on-demand/20211118-1.yaml diff --git a/microsite/data/on-demand/20211215-01.yaml b/microsite/data/on-demand/20211215-1.yaml similarity index 100% rename from microsite/data/on-demand/20211215-01.yaml rename to microsite/data/on-demand/20211215-1.yaml diff --git a/microsite/data/on-demand/20211216-01.yaml b/microsite/data/on-demand/20211216-1.yaml similarity index 100% rename from microsite/data/on-demand/20211216-01.yaml rename to microsite/data/on-demand/20211216-1.yaml diff --git a/microsite/data/on-demand/20220216-01.yaml b/microsite/data/on-demand/20220216-1.yaml similarity index 100% rename from microsite/data/on-demand/20220216-01.yaml rename to microsite/data/on-demand/20220216-1.yaml diff --git a/microsite/data/on-demand/20220223-01.yaml b/microsite/data/on-demand/20220223-1.yaml similarity index 100% rename from microsite/data/on-demand/20220223-01.yaml rename to microsite/data/on-demand/20220223-1.yaml diff --git a/microsite/data/on-demand/20220518-01.yaml b/microsite/data/on-demand/20220518-1.yaml similarity index 100% rename from microsite/data/on-demand/20220518-01.yaml rename to microsite/data/on-demand/20220518-1.yaml diff --git a/microsite/data/on-demand/20220525.yaml b/microsite/data/on-demand/20220525-1.yaml similarity index 100% rename from microsite/data/on-demand/20220525.yaml rename to microsite/data/on-demand/20220525-1.yaml diff --git a/microsite/data/on-demand/20220615-01.yaml b/microsite/data/on-demand/20220615-1.yaml similarity index 97% rename from microsite/data/on-demand/20220615-01.yaml rename to microsite/data/on-demand/20220615-1.yaml index 8ac660a71c..fb296dd6ce 100644 --- a/microsite/data/on-demand/20220615-01.yaml +++ b/microsite/data/on-demand/20220615-1.yaml @@ -1,7 +1,7 @@ --- title: Adopters Community Sessions date: June 15, 2022 -category: Upcoming +category: Meetup description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc. youtubeUrl: https://youtu.be/aKZnjnE5Wy8 youtubeImgUrl: https://backstage.io/img/b-sessions.png diff --git a/microsite/data/on-demand/20220622-1.yaml b/microsite/data/on-demand/20220622-1.yaml index 0bbd53525a..27634609cb 100644 --- a/microsite/data/on-demand/20220622-1.yaml +++ b/microsite/data/on-demand/20220622-1.yaml @@ -1,9 +1,9 @@ --- title: Contributor Community Sessions date: June 22, 2022 -category: Upcoming +category: Meetup description: Join the maintainers and contributors for the Contributor Community Sessions -youtubeUrl: https://youtu.be/aKZnjnE5Wy8 +youtubeUrl: https://youtu.be/E-jWqWXBxUY youtubeImgUrl: https://backstage.io/img/b-sessions.png rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com eventUrl: https://github.com/backstage/community/issues/49 diff --git a/microsite/data/on-demand/20220720-1.yaml b/microsite/data/on-demand/20220720-1.yaml new file mode 100644 index 0000000000..a1f51859f4 --- /dev/null +++ b/microsite/data/on-demand/20220720-1.yaml @@ -0,0 +1,9 @@ +--- +title: Adopters Community Sessions +date: July 20, 2022 +category: Upcoming +description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc. +youtubeUrl: https://youtu.be/4VFNlPxWcx8 +youtubeImgUrl: https://backstage.io/img/b-sessions.png +rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com +eventUrl: https://github.com/backstage/community/issues/52 diff --git a/microsite/data/on-demand/20220727-1.yaml b/microsite/data/on-demand/20220727-1.yaml new file mode 100644 index 0000000000..5f7712596f --- /dev/null +++ b/microsite/data/on-demand/20220727-1.yaml @@ -0,0 +1,9 @@ +--- +title: Contributor Community Sessions +date: July 27, 2022 +category: Upcoming +description: Join the maintainers and contributors for the Contributor Community Sessions +youtubeUrl: https://youtu.be/4VFNlPxWcx8 +youtubeImgUrl: https://backstage.io/img/b-sessions.png +rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com +eventUrl: https://github.com/backstage/community/issues/52 diff --git a/microsite/pages/en/live.js b/microsite/pages/en/live.js index 062af419fc..f2ebd4bb1d 100644 --- a/microsite/pages/en/live.js +++ b/microsite/pages/en/live.js @@ -34,7 +34,7 @@ const Background = props => { diff --git a/package.json b/package.json index 89a49c11fd..9f219cfa11 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.4.0-next.1", + "version": "1.4.0-next.2", "dependencies": { "@manypkg/get-packages": "^1.1.3", "@microsoft/api-documenter": "^7.17.11", diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index 3da536ef7f..2786d4a5e4 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/app-defaults +## 1.0.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 1.0.4-next.1 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index 82534354a0..e67af42404 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/app-defaults", "description": "Provides the default wiring of a Backstage App", - "version": "1.0.4-next.1", + "version": "1.0.4-next.2", "private": false, "publishConfig": { "access": "public", @@ -33,11 +33,11 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", "@backstage/core-plugin-api": "^1.0.3", "@backstage/plugin-permission-react": "^0.4.3-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "react-router-dom": "6.0.0-beta.0" @@ -46,7 +46,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index a4cc7735dd..0f28d87448 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,60 @@ # example-app +## 0.2.73-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-cost-insights@0.11.29-next.2 + - @backstage/core-components@0.10.0-next.2 + - @backstage/plugin-scaffolder@1.4.0-next.2 + - @backstage/plugin-jenkins@0.7.6-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-import@0.8.10-next.2 + - @backstage/plugin-techdocs@1.2.1-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.2-next.2 + - @backstage/plugin-api-docs@0.8.7-next.2 + - @backstage/plugin-catalog@1.4.0-next.2 + - @backstage/cli@0.18.0-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/app-defaults@1.0.4-next.2 + - @backstage/integration-react@1.1.2-next.2 + - @backstage/plugin-airbrake@0.3.7-next.2 + - @backstage/plugin-apache-airflow@0.2.0-next.2 + - @backstage/plugin-azure-devops@0.1.23-next.2 + - @backstage/plugin-badges@0.2.31-next.2 + - @backstage/plugin-catalog-graph@0.2.19-next.2 + - @backstage/plugin-circleci@0.3.7-next.2 + - @backstage/plugin-cloudbuild@0.3.7-next.2 + - @backstage/plugin-code-coverage@0.1.34-next.2 + - @backstage/plugin-dynatrace@0.1.1-next.2 + - @backstage/plugin-explore@0.3.38-next.2 + - @backstage/plugin-gcalendar@0.3.3-next.2 + - @backstage/plugin-gcp-projects@0.3.26-next.2 + - @backstage/plugin-github-actions@0.5.7-next.2 + - @backstage/plugin-gocd@0.1.13-next.2 + - @backstage/plugin-graphiql@0.2.39-next.2 + - @backstage/plugin-home@0.4.23-next.2 + - @backstage/plugin-kafka@0.3.7-next.2 + - @backstage/plugin-kubernetes@0.6.7-next.2 + - @backstage/plugin-lighthouse@0.3.7-next.2 + - @backstage/plugin-newrelic@0.3.25-next.2 + - @backstage/plugin-newrelic-dashboard@0.1.15-next.2 + - @backstage/plugin-org@0.5.7-next.2 + - @backstage/plugin-pagerduty@0.5.0-next.2 + - @backstage/plugin-rollbar@0.4.7-next.2 + - @backstage/plugin-search@0.9.1-next.2 + - @backstage/plugin-sentry@0.3.45-next.2 + - @backstage/plugin-shortcuts@0.2.8-next.2 + - @backstage/plugin-stack-overflow@0.1.3-next.2 + - @backstage/plugin-tech-insights@0.2.3-next.2 + - @backstage/plugin-tech-radar@0.5.14-next.2 + - @backstage/plugin-techdocs-react@1.0.2-next.1 + - @backstage/plugin-todo@0.2.9-next.2 + - @backstage/plugin-user-settings@0.4.6-next.2 + ## 0.2.73-next.1 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 4ba50b13c7..c114d79250 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,67 +1,67 @@ { "name": "example-app", - "version": "0.2.73-next.1", + "version": "0.2.73-next.2", "private": true, "backstage": { "role": "frontend" }, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/app-defaults": "^1.0.4-next.2", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/cli": "^0.18.0-next.2", "@backstage/config": "^1.0.1", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/integration-react": "^1.1.2-next.1", - "@backstage/plugin-airbrake": "^0.3.7-next.1", - "@backstage/plugin-api-docs": "^0.8.7-next.1", - "@backstage/plugin-azure-devops": "^0.1.23-next.1", - "@backstage/plugin-apache-airflow": "^0.2.0-next.1", - "@backstage/plugin-badges": "^0.2.31-next.1", - "@backstage/plugin-catalog": "^1.3.1-next.1", + "@backstage/integration-react": "^1.1.2-next.2", + "@backstage/plugin-airbrake": "^0.3.7-next.2", + "@backstage/plugin-api-docs": "^0.8.7-next.2", + "@backstage/plugin-azure-devops": "^0.1.23-next.2", + "@backstage/plugin-apache-airflow": "^0.2.0-next.2", + "@backstage/plugin-badges": "^0.2.31-next.2", + "@backstage/plugin-catalog": "^1.4.0-next.2", "@backstage/plugin-catalog-common": "^1.0.4-next.0", - "@backstage/plugin-catalog-graph": "^0.2.19-next.1", - "@backstage/plugin-catalog-import": "^0.8.10-next.1", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/plugin-circleci": "^0.3.7-next.1", - "@backstage/plugin-cloudbuild": "^0.3.7-next.1", - "@backstage/plugin-code-coverage": "^0.1.34-next.1", - "@backstage/plugin-cost-insights": "^0.11.29-next.1", - "@backstage/plugin-dynatrace": "^0.1.1-next.1", - "@backstage/plugin-explore": "^0.3.38-next.1", - "@backstage/plugin-gcalendar": "^0.3.3-next.1", - "@backstage/plugin-gcp-projects": "^0.3.26-next.1", - "@backstage/plugin-github-actions": "^0.5.7-next.1", - "@backstage/plugin-gocd": "^0.1.13-next.1", - "@backstage/plugin-graphiql": "^0.2.39-next.1", - "@backstage/plugin-home": "^0.4.23-next.1", - "@backstage/plugin-jenkins": "^0.7.6-next.1", - "@backstage/plugin-kafka": "^0.3.7-next.1", - "@backstage/plugin-kubernetes": "^0.6.7-next.1", - "@backstage/plugin-lighthouse": "^0.3.7-next.1", - "@backstage/plugin-newrelic": "^0.3.25-next.1", - "@backstage/plugin-newrelic-dashboard": "^0.1.15-next.1", - "@backstage/plugin-org": "^0.5.7-next.1", - "@backstage/plugin-pagerduty": "0.5.0-next.1", + "@backstage/plugin-catalog-graph": "^0.2.19-next.2", + "@backstage/plugin-catalog-import": "^0.8.10-next.2", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/plugin-circleci": "^0.3.7-next.2", + "@backstage/plugin-cloudbuild": "^0.3.7-next.2", + "@backstage/plugin-code-coverage": "^0.1.34-next.2", + "@backstage/plugin-cost-insights": "^0.11.29-next.2", + "@backstage/plugin-dynatrace": "^0.1.1-next.2", + "@backstage/plugin-explore": "^0.3.38-next.2", + "@backstage/plugin-gcalendar": "^0.3.3-next.2", + "@backstage/plugin-gcp-projects": "^0.3.26-next.2", + "@backstage/plugin-github-actions": "^0.5.7-next.2", + "@backstage/plugin-gocd": "^0.1.13-next.2", + "@backstage/plugin-graphiql": "^0.2.39-next.2", + "@backstage/plugin-home": "^0.4.23-next.2", + "@backstage/plugin-jenkins": "^0.7.6-next.2", + "@backstage/plugin-kafka": "^0.3.7-next.2", + "@backstage/plugin-kubernetes": "^0.6.7-next.2", + "@backstage/plugin-lighthouse": "^0.3.7-next.2", + "@backstage/plugin-newrelic": "^0.3.25-next.2", + "@backstage/plugin-newrelic-dashboard": "^0.1.15-next.2", + "@backstage/plugin-org": "^0.5.7-next.2", + "@backstage/plugin-pagerduty": "0.5.0-next.2", "@backstage/plugin-permission-react": "^0.4.3-next.0", - "@backstage/plugin-rollbar": "^0.4.7-next.1", - "@backstage/plugin-scaffolder": "^1.4.0-next.1", - "@backstage/plugin-search": "^0.9.1-next.1", - "@backstage/plugin-search-react": "^0.2.2-next.1", + "@backstage/plugin-rollbar": "^0.4.7-next.2", + "@backstage/plugin-scaffolder": "^1.4.0-next.2", + "@backstage/plugin-search": "^0.9.1-next.2", + "@backstage/plugin-search-react": "^0.2.2-next.2", "@backstage/plugin-search-common": "^0.3.6-next.0", - "@backstage/plugin-sentry": "^0.3.45-next.1", - "@backstage/plugin-shortcuts": "^0.2.8-next.1", - "@backstage/plugin-stack-overflow": "^0.1.3-next.1", - "@backstage/plugin-tech-radar": "^0.5.14-next.1", - "@backstage/plugin-techdocs": "^1.2.1-next.1", - "@backstage/plugin-techdocs-react": "^1.0.2-next.0", - "@backstage/plugin-techdocs-module-addons-contrib": "^1.0.2-next.1", - "@backstage/plugin-todo": "^0.2.9-next.1", - "@backstage/plugin-user-settings": "^0.4.6-next.1", - "@backstage/plugin-tech-insights": "^0.2.3-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-sentry": "^0.3.45-next.2", + "@backstage/plugin-shortcuts": "^0.2.8-next.2", + "@backstage/plugin-stack-overflow": "^0.1.3-next.2", + "@backstage/plugin-tech-radar": "^0.5.14-next.2", + "@backstage/plugin-techdocs": "^1.2.1-next.2", + "@backstage/plugin-techdocs-react": "^1.0.2-next.1", + "@backstage/plugin-techdocs-module-addons-contrib": "^1.0.2-next.2", + "@backstage/plugin-todo": "^0.2.9-next.2", + "@backstage/plugin-user-settings": "^0.4.6-next.2", + "@backstage/plugin-tech-insights": "^0.2.3-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index 3ba1b38e78..a052e37fe7 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/backend-common +## 0.14.1-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/integration@1.2.2-next.2 + ## 0.14.1-next.1 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index c5b0953864..422465ee6f 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.14.1-next.1", + "version": "0.14.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -38,7 +38,7 @@ "@backstage/config": "^1.0.1", "@backstage/config-loader": "^1.1.3-next.0", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration": "^1.2.2-next.1", + "@backstage/integration": "^1.2.2-next.2", "@backstage/types": "^1.0.0", "@google-cloud/storage": "^6.0.0", "@manypkg/get-packages": "^1.1.3", @@ -91,8 +91,8 @@ } }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.26-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/backend-test-utils": "^0.1.26-next.2", + "@backstage/cli": "^0.18.0-next.2", "@types/archiver": "^5.1.0", "@types/base64-stream": "^1.0.2", "@types/compression": "^1.7.0", @@ -112,7 +112,7 @@ "better-sqlite3": "^7.5.0", "http-errors": "^2.0.0", "mock-fs": "^5.1.0", - "msw": "^0.42.0", + "msw": "^0.43.0", "mysql2": "^2.2.5", "recursive-readdir": "^2.2.2", "supertest": "^6.1.3" diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index 5b5232e1fb..782088ff84 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/backend-tasks +## 0.3.3-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + ## 0.3.3-next.1 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index 80655db491..91b94d4d1c 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-tasks", "description": "Common distributed task management library for Backstage backends", - "version": "0.3.3-next.1", + "version": "0.3.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -33,7 +33,7 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", + "@backstage/backend-common": "^0.14.1-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", "@backstage/types": "^1.0.0", @@ -48,8 +48,8 @@ "zod": "^3.9.5" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.26-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/backend-test-utils": "^0.1.26-next.2", + "@backstage/cli": "^0.18.0-next.2", "@types/cron": "^2.0.0", "wait-for-expect": "^3.0.2" }, diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index 63868083d7..e0bb57a3f0 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-test-utils +## 0.1.26-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + - @backstage/cli@0.18.0-next.2 + ## 0.1.26-next.1 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index ff1275c387..53953ba85e 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-test-utils", "description": "Test helpers library for Backstage backends", - "version": "0.1.26-next.1", + "version": "0.1.26-next.2", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -34,19 +34,19 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/backend-common": "^0.14.1-next.2", + "@backstage/cli": "^0.18.0-next.2", "@backstage/config": "^1.0.1", "better-sqlite3": "^7.5.0", "knex": "^2.0.0", - "msw": "^0.42.0", + "msw": "^0.43.0", "mysql2": "^2.2.5", "pg": "^8.3.0", "testcontainers": "^8.1.2", "uuid": "^8.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1" + "@backstage/cli": "^0.18.0-next.2" }, "files": [ "dist" diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index f692b3b6c3..02eac85805 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,28 @@ # example-backend +## 0.2.73-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes-backend@0.7.0-next.2 + - @backstage/plugin-tech-insights-backend@0.5.0-next.2 + - @backstage/plugin-jenkins-backend@0.1.24-next.2 + - @backstage/plugin-search-backend-module-pg@0.3.5-next.2 + - @backstage/plugin-scaffolder-backend@1.4.0-next.2 + - @backstage/plugin-auth-backend@0.15.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-kafka-backend@0.2.27-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/backend-tasks@0.3.3-next.2 + - @backstage/plugin-app-backend@0.3.34-next.2 + - @backstage/plugin-catalog-backend@1.2.1-next.2 + - @backstage/plugin-code-coverage-backend@0.1.32-next.2 + - @backstage/plugin-techdocs-backend@1.2.0-next.2 + - @backstage/plugin-badges-backend@0.1.28-next.2 + - @backstage/integration@1.2.2-next.2 + - example-app@0.2.73-next.2 + ## 0.2.73-next.1 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 1cb0e1405a..df6fe5ec3b 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.73-next.1", + "version": "0.2.73-next.2", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,36 +26,36 @@ "build-image": "docker build ../.. -f Dockerfile --tag example-backend" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", - "@backstage/backend-tasks": "^0.3.3-next.1", + "@backstage/backend-common": "^0.14.1-next.2", + "@backstage/backend-tasks": "^0.3.3-next.2", "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/plugin-app-backend": "^0.3.34-next.1", - "@backstage/plugin-auth-backend": "^0.15.0-next.1", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/plugin-app-backend": "^0.3.34-next.2", + "@backstage/plugin-auth-backend": "^0.15.0-next.2", "@backstage/plugin-auth-node": "^0.2.3-next.1", "@backstage/plugin-azure-devops-backend": "^0.3.13-next.0", - "@backstage/plugin-badges-backend": "^0.1.28-next.1", - "@backstage/plugin-catalog-backend": "^1.2.1-next.1", - "@backstage/plugin-code-coverage-backend": "^0.1.32-next.1", + "@backstage/plugin-badges-backend": "^0.1.28-next.2", + "@backstage/plugin-catalog-backend": "^1.2.1-next.2", + "@backstage/plugin-code-coverage-backend": "^0.1.32-next.2", "@backstage/plugin-graphql-backend": "^0.1.24-next.0", - "@backstage/plugin-jenkins-backend": "^0.1.24-next.1", - "@backstage/plugin-kubernetes-backend": "^0.7.0-next.1", - "@backstage/plugin-kafka-backend": "^0.2.27-next.1", + "@backstage/plugin-jenkins-backend": "^0.1.24-next.2", + "@backstage/plugin-kubernetes-backend": "^0.7.0-next.2", + "@backstage/plugin-kafka-backend": "^0.2.27-next.2", "@backstage/plugin-permission-backend": "^0.5.9-next.1", "@backstage/plugin-permission-common": "^0.6.3-next.0", "@backstage/plugin-permission-node": "^0.6.3-next.1", "@backstage/plugin-proxy-backend": "^0.2.28-next.0", "@backstage/plugin-rollbar-backend": "^0.1.31-next.0", - "@backstage/plugin-scaffolder-backend": "^1.4.0-next.1", + "@backstage/plugin-scaffolder-backend": "^1.4.0-next.2", "@backstage/plugin-scaffolder-backend-module-rails": "^0.4.2-next.1", "@backstage/plugin-search-backend": "^0.5.4-next.1", "@backstage/plugin-search-backend-node": "^0.6.3-next.1", "@backstage/plugin-search-backend-module-elasticsearch": "^0.2.0-next.1", - "@backstage/plugin-search-backend-module-pg": "^0.3.5-next.1", - "@backstage/plugin-techdocs-backend": "^1.2.0-next.1", - "@backstage/plugin-tech-insights-backend": "^0.4.2-next.1", + "@backstage/plugin-search-backend-module-pg": "^0.3.5-next.2", + "@backstage/plugin-techdocs-backend": "^1.2.0-next.2", + "@backstage/plugin-tech-insights-backend": "^0.5.0-next.2", "@backstage/plugin-tech-insights-node": "^0.3.2-next.0", "@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.18-next.1", "@backstage/plugin-todo-backend": "^0.1.31-next.1", @@ -75,7 +75,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@types/dockerode": "^3.3.0", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", diff --git a/packages/backend/src/plugins/kubernetes.ts b/packages/backend/src/plugins/kubernetes.ts index 8023d549ff..3bc7a5dcbe 100644 --- a/packages/backend/src/plugins/kubernetes.ts +++ b/packages/backend/src/plugins/kubernetes.ts @@ -17,13 +17,16 @@ import { KubernetesBuilder } from '@backstage/plugin-kubernetes-backend'; import { Router } from 'express'; import { PluginEnvironment } from '../types'; +import { CatalogClient } from '@backstage/catalog-client'; export default async function createPlugin( env: PluginEnvironment, ): Promise { + const catalogApi = new CatalogClient({ discoveryApi: env.discovery }); const { router } = await KubernetesBuilder.createBuilder({ logger: env.logger, config: env.config, + catalogApi, }).build(); return router; } diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index 05075d14dc..3fbf662615 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -40,7 +40,7 @@ "devDependencies": { "@backstage/cli": "^0.18.0-next.1", "@types/jest": "^26.0.7", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/packages/catalog-model/CHANGELOG.md b/packages/catalog-model/CHANGELOG.md index 78f7a1207c..910fc92cd2 100644 --- a/packages/catalog-model/CHANGELOG.md +++ b/packages/catalog-model/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/catalog-model +## 1.1.0-next.2 + +### Minor Changes + +- 4cc81372f8: Introduced `GroupDefaultParentEntityPolicy` to set a default group entity parent. + ## 1.1.0-next.1 ### Patch Changes diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 91d3f74a66..a58fdcf4d5 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/catalog-model", "description": "Types and validators that help describe the model of a Backstage Catalog", - "version": "1.1.0-next.1", + "version": "1.1.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -43,7 +43,7 @@ "uuid": "^8.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@types/jest": "^26.0.7", "@types/json-schema": "^7.0.5", "@types/lodash": "^4.14.151", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 227ad4b772..b4dbb1cdc5 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/cli +## 0.18.0-next.2 + +### Patch Changes + +- f6b6fb7165: The `test` command now ensures that all IO is flushed before exiting when printing `--help`. + ## 0.18.0-next.1 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 6653744a33..aead136ec6 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.18.0-next.1", + "version": "0.18.0-next.2", "private": false, "publishConfig": { "access": "public" @@ -126,14 +126,14 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-common": "^0.14.1-next.1", + "@backstage/backend-common": "^0.14.1-next.2", "@backstage/config": "^1.0.1", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@types/diff": "^5.0.0", "@types/express": "^4.17.6", "@types/fs-extra": "^9.0.1", @@ -152,7 +152,7 @@ "@types/yarnpkg__lockfile": "^1.1.4", "del": "^6.0.0", "mock-fs": "^5.1.0", - "msw": "^0.42.0", + "msw": "^0.43.0", "nodemon": "^2.0.2", "ts-node": "^10.0.0" }, diff --git a/packages/cli/templates/default-backend-plugin/package.json.hbs b/packages/cli/templates/default-backend-plugin/package.json.hbs index 2416fd75cb..4e8ee254b9 100644 --- a/packages/cli/templates/default-backend-plugin/package.json.hbs +++ b/packages/cli/templates/default-backend-plugin/package.json.hbs @@ -41,7 +41,7 @@ "@backstage/cli": "{{versionQuery '@backstage/cli'}}", "@types/supertest": "{{versionQuery '@types/supertest' '2.0.8'}}", "supertest": "{{versionQuery 'supertest' '4.0.2'}}", - "msw": "{{versionQuery 'msw' '0.42.0'}}" + "msw": "{{versionQuery 'msw' '0.43.0'}}" }, "files": [ "dist" diff --git a/packages/cli/templates/default-plugin/package.json.hbs b/packages/cli/templates/default-plugin/package.json.hbs index 34a0548b29..490f18d474 100644 --- a/packages/cli/templates/default-plugin/package.json.hbs +++ b/packages/cli/templates/default-plugin/package.json.hbs @@ -49,7 +49,7 @@ "@testing-library/user-event": "{{versionQuery '@testing-library/user-event' '14.0.0'}}", "@types/jest": "{{versionQuery '@types/jest' '26.0.7'}}", "@types/node": "{{versionQuery '@types/node' '16.11.26'}}", - "msw": "{{versionQuery 'msw' '0.42.0'}}", + "msw": "{{versionQuery 'msw' '0.43.0'}}", "cross-fetch": "{{versionQuery 'cross-fetch' '3.1.5'}}" }, "files": [ diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 3a02afde9b..3ca4b1455f 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -46,7 +46,7 @@ "json-schema-merge-allof": "^0.8.1", "json-schema-traverse": "^1.0.0", "node-fetch": "^2.6.7", - "typescript-json-schema": "^0.53.0", + "typescript-json-schema": "^0.54.0", "yaml": "^1.9.2", "yup": "^0.32.9" }, @@ -57,7 +57,7 @@ "@types/node": "^16.11.26", "@types/yup": "^0.29.13", "mock-fs": "^5.1.0", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index 624a9259e9..e7d530417a 100644 --- a/packages/core-app-api/package.json +++ b/packages/core-app-api/package.json @@ -59,7 +59,7 @@ "@types/node": "^16.11.26", "@types/zen-observable": "^0.8.0", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index cf1c6305d4..46a44394b3 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/core-components +## 0.10.0-next.2 + +### Minor Changes + +- 32204fa794: Add `transformLinkUri` and `transformImageUri` to `MarkdownContent` + +### Patch Changes + +- b4b711bcc2: Fix the EntityLayout header style so that EntityContextMenu button can display in correct shape when user hover on it +- 15201b1032: Updated dependency `rc-progress` to `3.4.0`. +- 385389d23c: Updated to remove usage of the `bursts` object in the theme palette +- Updated dependencies + - @backstage/theme@0.2.16-next.1 + ## 0.9.6-next.1 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 51cbc37a1b..a6dff88333 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-components", "description": "Core components used by Backstage plugins and apps", - "version": "0.9.6-next.1", + "version": "0.10.0-next.2", "private": false, "publishConfig": { "access": "public", @@ -36,7 +36,7 @@ "@backstage/config": "^1.0.1", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@backstage/version-bridge": "^1.0.1", "@material-table/core": "^3.1.0", "@material-ui/core": "^4.12.2", @@ -66,7 +66,7 @@ "react-syntax-highlighter": "^15.4.5", "react-text-truncate": "^0.19.0", "react-use": "^17.3.2", - "@react-hookz/web": "^14.0.0", + "@react-hookz/web": "^15.0.0", "react-virtualized-auto-sizer": "^1.0.6", "react-window": "^1.8.6", "remark-gfm": "^3.0.1", @@ -80,7 +80,7 @@ }, "devDependencies": { "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -101,7 +101,7 @@ "@types/react-window": "^1.8.5", "@types/zen-observable": "^0.8.0", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/packages/core-components/src/components/Link/Link.test.tsx b/packages/core-components/src/components/Link/Link.test.tsx index 8c6ed54d76..5cfeaa4869 100644 --- a/packages/core-components/src/components/Link/Link.test.tsx +++ b/packages/core-components/src/components/Link/Link.test.tsx @@ -21,9 +21,11 @@ import { TestApiProvider, wrapInTestApp, } from '@backstage/test-utils'; -import { analyticsApiRef } from '@backstage/core-plugin-api'; -import { isExternalUri, Link } from './Link'; +import { analyticsApiRef, configApiRef } from '@backstage/core-plugin-api'; +import { isExternalUri, Link, useResolvedPath } from './Link'; import { Route, Routes } from 'react-router'; +import { renderHook, WrapperComponent } from '@testing-library/react-hooks'; +import { ConfigReader } from '@backstage/config'; describe('', () => { it('navigates using react-router', async () => { @@ -103,6 +105,58 @@ describe('', () => { }); }); + describe('resolves a sub-path correctly', () => { + it('when it starts with base path', async () => { + const testString = 'This is test string'; + const linkText = 'Navigate!'; + const configApi = new ConfigReader({ + app: { baseUrl: 'http://localhost:3000/example' }, + }); + + const { getByText } = render( + wrapInTestApp( + + + {linkText} + {testString}

} /> +
+
, + ), + ); + + expect(() => getByText(testString)).toThrow(); + fireEvent.click(getByText(linkText)); + await waitFor(() => { + expect(getByText(testString)).toBeInTheDocument(); + }); + }); + + it('when it does not start with base path', async () => { + const testString = 'This is test string'; + const linkText = 'Navigate!'; + const configApi = new ConfigReader({ + app: { baseUrl: 'http://localhost:3000/example' }, + }); + + const { getByText } = render( + wrapInTestApp( + + + {linkText} + {testString}

} /> +
+
, + ), + ); + + expect(() => getByText(testString)).toThrow(); + fireEvent.click(getByText(linkText)); + await waitFor(() => { + expect(getByText(testString)).toBeInTheDocument(); + }); + }); + }); + describe('isExternalUri', () => { it.each([ [true, 'http://'], @@ -128,4 +182,45 @@ describe('', () => { expect(isExternalUri(uri)).toBe(expected); }); }); + + describe('useResolvedPath', () => { + const wrapper: WrapperComponent<{}> = ({ children }) => { + const configApi = new ConfigReader({ + app: { baseUrl: 'http://localhost:3000/example' }, + }); + return ( + + {children} + + ); + }; + + describe('concatenate base path', () => { + it('when uri is internal and does not start with base path', () => { + const path = '/catalog/default/component/artist-lookup'; + const { result } = renderHook(() => useResolvedPath(path), { + wrapper, + }); + expect(result.current).toBe('/example'.concat(path)); + }); + }); + + describe('does not concatenate base path', () => { + it('when uri is external', () => { + const path = 'https://stackoverflow.com/questions/1/example'; + const { result } = renderHook(() => useResolvedPath(path), { + wrapper, + }); + expect(result.current).toBe(path); + }); + + it('when uri already starts with base path', () => { + const path = '/example/catalog/default/component/artist-lookup'; + const { result } = renderHook(() => useResolvedPath(path), { + wrapper, + }); + expect(result.current).toBe(path); + }); + }); + }); }); diff --git a/packages/core-components/src/components/Link/Link.tsx b/packages/core-components/src/components/Link/Link.tsx index 5809990b92..22b203d157 100644 --- a/packages/core-components/src/components/Link/Link.tsx +++ b/packages/core-components/src/components/Link/Link.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { useAnalytics } from '@backstage/core-plugin-api'; +import { configApiRef, useAnalytics, useApi } from '@backstage/core-plugin-api'; import classnames from 'classnames'; import MaterialLink, { LinkProps as MaterialLinkProps, @@ -25,6 +25,7 @@ import { Link as RouterLink, LinkProps as RouterLinkProps, } from 'react-router-dom'; +import { trimEnd } from 'lodash'; const useStyles = makeStyles( { @@ -52,6 +53,45 @@ export type LinkProps = MaterialLinkProps & noTrack?: boolean; }; +/** + * Returns the app base url that could be empty if the Config API is not properly implemented. + * The only cases there would be no Config API are in tests and in storybook stories, and in those cases, it's unlikely that callers would rely on this subpath behavior. + */ +const useBaseUrl = () => { + try { + const config = useApi(configApiRef); + return config.getOptionalString('app.baseUrl'); + } catch { + return undefined; + } +}; + +/** + * Get the app base path from the configured app baseUrl. + * The returned path does not have a trailing slash. + */ +const useBasePath = () => { + // baseUrl can be specified as just a path + const base = 'http://dummy.dev'; + const url = useBaseUrl() ?? '/'; + const { pathname } = new URL(url, base); + return trimEnd(pathname, '/'); +}; + +export const useResolvedPath = (uri: LinkProps['to']) => { + let resolvedPath = String(uri); + + const basePath = useBasePath(); + const external = isExternalUri(resolvedPath); + const startsWithBasePath = resolvedPath.startsWith(basePath); + + if (!external && !startsWithBasePath) { + resolvedPath = basePath.concat(resolvedPath); + } + + return resolvedPath; +}; + /** * Given a react node, try to retrieve its text content. */ @@ -84,7 +124,7 @@ export const Link = React.forwardRef( ({ onClick, noTrack, ...props }, ref) => { const classes = useStyles(); const analytics = useAnalytics(); - const to = String(props.to); + const to = useResolvedPath(props.to); const linkText = getNodeText(props.children) || to; const external = isExternalUri(to); const newWindow = external && !!/^https?:/.exec(to); @@ -99,11 +139,11 @@ export const Link = React.forwardRef( return external ? ( // External links {props.children} @@ -112,10 +152,11 @@ export const Link = React.forwardRef( ) : ( // Interact with React Router for internal links ); }, diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index eb17f75285..37b69d74f7 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -58,7 +58,7 @@ "@types/prop-types": "^15.7.3", "@types/zen-observable": "^0.8.0", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index 9ec1859289..7f2fa483f0 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/create-app +## 0.4.29-next.2 + +### Patch Changes + +- f281ad17c0: Adds the ability to define the Backstage app name using a `BACKSTAGE_APP_NAME` + environment variable when running `create-app`. + ## 0.4.29-next.1 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 381e975729..1fc0d17285 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "A CLI that helps you create your own Backstage app", - "version": "0.4.29-next.1", + "version": "0.4.29-next.2", "private": false, "publishConfig": { "access": "public" diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index 907c9f757d..b748970b06 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/dev-utils +## 1.0.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/app-defaults@1.0.4-next.2 + - @backstage/integration-react@1.1.2-next.2 + ## 1.0.4-next.1 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index c15e60d423..8d19bf9cb3 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "1.0.4-next.1", + "version": "1.0.4-next.2", "private": false, "publishConfig": { "access": "public", @@ -33,15 +33,15 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/app-defaults": "^1.0.4-next.1", + "@backstage/app-defaults": "^1.0.4-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/integration-react": "^1.1.2-next.1", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/integration-react": "^1.1.2-next.2", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@backstage/test-utils": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", @@ -59,7 +59,7 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@types/jest": "^26.0.7", "@types/node": "^16.0.0" }, diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index 102fc3ea75..644d6f7cc4 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/integration-react +## 1.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + ## 1.1.2-next.1 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 6a0cfe3041..bf0a3e471c 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration-react", "description": "Frontend package for managing integrations towards external systems", - "version": "1.1.2-next.1", + "version": "1.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,10 +25,10 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -38,15 +38,15 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/cli": "^0.18.0-next.2", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/jest": "^26.0.7", "@types/node": "^16.11.26", - "msw": "^0.42.0", + "msw": "^0.43.0", "cross-fetch": "^3.1.5" }, "files": [ diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index 3db1b7c7b9..bf352f168f 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/integration +## 1.2.2-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + ## 1.2.2-next.1 ### Patch Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index 3f0c5e604c..532797aee8 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration", "description": "Helpers for managing integrations towards external systems", - "version": "1.2.2-next.1", + "version": "1.2.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -43,12 +43,12 @@ "lodash": "^4.17.21" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/config-loader": "^1.1.3-next.0", "@backstage/test-utils": "^1.1.2-next.1", "@types/jest": "^26.0.7", "@types/luxon": "^2.0.4", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/packages/integration/src/bitbucketServer/core.test.ts b/packages/integration/src/bitbucketServer/core.test.ts index 1c8f5d259c..076a2c7a4f 100644 --- a/packages/integration/src/bitbucketServer/core.test.ts +++ b/packages/integration/src/bitbucketServer/core.test.ts @@ -108,6 +108,20 @@ describe('bitbucketServer core', () => { ); }); + it('does not double encode the filepath', async () => { + const config: BitbucketServerIntegrationConfig = { + host: 'bitbucket.mycompany.net', + apiBaseUrl: 'https://api.bitbucket.mycompany.net/rest/api/1.0', + }; + const result = await getBitbucketServerDownloadUrl( + 'https://bitbucket.mycompany.net/projects/backstage/repos/mock/browse/%2Fdocs?at=some-branch', + config, + ); + expect(result).toEqual( + 'https://api.bitbucket.mycompany.net/rest/api/1.0/projects/backstage/repos/mock/archive?format=tgz&at=some-branch&prefix=backstage-mock&path=%2Fdocs', + ); + }); + it('do not add path param if no path is specified for Bitbucket Server', async () => { const defaultBranchResponse = { displayId: 'main', diff --git a/packages/integration/src/bitbucketServer/core.ts b/packages/integration/src/bitbucketServer/core.ts index 80dbc0443f..0c57b0d3ed 100644 --- a/packages/integration/src/bitbucketServer/core.ts +++ b/packages/integration/src/bitbucketServer/core.ts @@ -83,7 +83,9 @@ export async function getBitbucketServerDownloadUrl( // path will limit the downloaded content // /docs will only download the docs folder and everything below it // /docs/index.md will download the docs folder and everything below it - const path = filepath ? `&path=${encodeURIComponent(filepath)}` : ''; + const path = filepath + ? `&path=${encodeURIComponent(decodeURIComponent(filepath))}` + : ''; return `${config.apiBaseUrl}/projects/${project}/repos/${repoName}/archive?format=tgz&at=${branch}&prefix=${project}-${repoName}${path}`; } diff --git a/packages/release-manifests/package.json b/packages/release-manifests/package.json index 822c3c1a52..3309b1b9f1 100644 --- a/packages/release-manifests/package.json +++ b/packages/release-manifests/package.json @@ -37,7 +37,7 @@ }, "devDependencies": { "@backstage/test-utils": "^1.1.2-next.0", - "msw": "^0.42.0", + "msw": "^0.43.0", "@types/jest": "^26.0.7", "@types/node": "^16.0.0" }, diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index 29a53625fc..af9f0ad09c 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,20 @@ # techdocs-cli-embedded-app +## 0.2.72-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-techdocs@1.2.1-next.2 + - @backstage/plugin-catalog@1.4.0-next.2 + - @backstage/cli@0.18.0-next.2 + - @backstage/app-defaults@1.0.4-next.2 + - @backstage/integration-react@1.1.2-next.2 + - @backstage/plugin-techdocs-react@1.0.2-next.1 + ## 0.2.72-next.1 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index fa4ec8a38c..60389b6596 100644 --- a/packages/techdocs-cli-embedded-app/package.json +++ b/packages/techdocs-cli-embedded-app/package.json @@ -1,25 +1,25 @@ { "name": "techdocs-cli-embedded-app", - "version": "0.2.72-next.1", + "version": "0.2.72-next.2", "private": true, "backstage": { "role": "frontend" }, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/app-defaults": "^1.0.4-next.2", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/cli": "^0.18.0-next.2", "@backstage/config": "^1.0.1", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/integration-react": "^1.1.2-next.1", - "@backstage/plugin-catalog": "^1.3.1-next.1", - "@backstage/plugin-techdocs": "^1.2.1-next.1", - "@backstage/plugin-techdocs-react": "^1.0.2-next.0", + "@backstage/integration-react": "^1.1.2-next.2", + "@backstage/plugin-catalog": "^1.4.0-next.2", + "@backstage/plugin-techdocs": "^1.2.1-next.2", + "@backstage/plugin-techdocs-react": "^1.0.2-next.1", "@backstage/test-utils": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "history": "^5.0.0", @@ -30,7 +30,7 @@ "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 1dfa7faf43..0918dcaaac 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -58,7 +58,7 @@ "@backstage/cli": "^0.18.0-next.1", "@types/jest": "^26.0.7", "@types/node": "^16.11.26", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/packages/theme/CHANGELOG.md b/packages/theme/CHANGELOG.md index 15e9eb68cd..93b79b0721 100644 --- a/packages/theme/CHANGELOG.md +++ b/packages/theme/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/theme +## 0.2.16-next.1 + +### Patch Changes + +- ff4f56eb49: **DEPRECATED**: The `bursts` object from `BackstagePaletteAdditions` has been depreciated and will be removed in a future release + + The `genPageTheme` function now includes an optional options object with an optional `fontColor` which defaults to white if not provided. + ## 0.2.16-next.0 ### Patch Changes diff --git a/packages/theme/package.json b/packages/theme/package.json index a3ff37538c..4cbd4d2205 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/theme", "description": "material-ui theme for use with Backstage.", - "version": "0.2.16-next.0", + "version": "0.2.16-next.1", "private": false, "publishConfig": { "access": "public", @@ -36,7 +36,7 @@ "@material-ui/core": "^4.12.2" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1" + "@backstage/cli": "^0.18.0-next.2" }, "files": [ "dist" diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index 1a42f7ff03..be04a712cc 100644 --- a/plugins/adr-backend/package.json +++ b/plugins/adr-backend/package.json @@ -48,7 +48,7 @@ "@types/marked": "^4.0.0", "@types/supertest": "^2.0.8", "supertest": "^6.1.3", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/adr/CHANGELOG.md b/plugins/adr/CHANGELOG.md index fc8b859ec5..efad1034a8 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-adr +## 0.1.2-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index 10132932f8..80d24e7223 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.1.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,14 +22,14 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/integration-react": "^1.1.2-next.1", + "@backstage/integration-react": "^1.1.2-next.2", "@backstage/plugin-adr-common": "^0.1.2-next.1", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@backstage/plugin-search-common": "^0.3.6-next.0", - "@backstage/plugin-search-react": "^0.2.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-search-react": "^0.2.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -44,9 +44,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -55,7 +55,7 @@ "@types/jest": "*", "@types/node": "*", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index da6cdcbfef..900161364c 100644 --- a/plugins/airbrake-backend/package.json +++ b/plugins/airbrake-backend/package.json @@ -37,7 +37,7 @@ "@types/http-proxy-middleware": "^0.19.3", "@types/supertest": "^2.0.8", "supertest": "^6.1.6", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md index f8b683bf5a..0be1badd9e 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-airbrake +## 0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/dev-utils@1.0.4-next.2 + ## 0.3.7-next.1 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index 00554efeee..2f93d533cc 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.7-next.1", + "version": "0.3.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,13 +23,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/dev-utils": "^1.0.4-next.1", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@backstage/test-utils": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/app-defaults": "^1.0.4-next.1", - "@backstage/cli": "^0.18.0-next.1", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/app-defaults": "^1.0.4-next.2", + "@backstage/cli": "^0.18.0-next.2", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -51,7 +51,7 @@ "@types/node": "^16.11.26", "@types/object-hash": "^2.2.1", "cross-fetch": "^3.1.5", - "msw": "^0.42.0", + "msw": "^0.43.0", "react-router": "6.0.0-beta.0" }, "files": [ diff --git a/plugins/allure/CHANGELOG.md b/plugins/allure/CHANGELOG.md index d1cce9b7ef..8f09da737c 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-allure +## 0.1.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.23-next.1 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index a576aa8f9b..c98b8b7d63 100644 --- a/plugins/allure/package.json +++ b/plugins/allure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-allure", "description": "A Backstage plugin that integrates with Allure", - "version": "0.1.23-next.1", + "version": "0.1.23-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,11 +25,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -50,7 +50,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/analytics-module-ga/CHANGELOG.md b/plugins/analytics-module-ga/CHANGELOG.md index 23f583473d..edbc67981a 100644 --- a/plugins/analytics-module-ga/CHANGELOG.md +++ b/plugins/analytics-module-ga/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-analytics-module-ga +## 0.1.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.1.18-next.1 ### Patch Changes diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index e7bae29f51..23532af5fa 100644 --- a/plugins/analytics-module-ga/package.json +++ b/plugins/analytics-module-ga/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-analytics-module-ga", - "version": "0.1.18-next.1", + "version": "0.1.18-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,9 +25,9 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -38,9 +38,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -48,7 +48,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/apache-airflow/CHANGELOG.md b/plugins/apache-airflow/CHANGELOG.md index a27c58192e..920dcf5686 100644 --- a/plugins/apache-airflow/CHANGELOG.md +++ b/plugins/apache-airflow/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-apache-airflow +## 0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + ## 0.2.0-next.1 ### Minor Changes diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index a880942750..657ecc7ad6 100644 --- a/plugins/apache-airflow/package.json +++ b/plugins/apache-airflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-apache-airflow", - "version": "0.2.0-next.1", + "version": "0.2.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,7 +23,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -36,16 +36,16 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/jest": "^26.0.7", "@types/node": "^16.11.26", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index b4ebf48607..6b2e54f018 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-api-docs +## 0.8.7-next.2 + +### Patch Changes + +- a274fe38b9: Add hidden title column to catalog and API table to enable filtering by title. +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog@1.4.0-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.8.7-next.1 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 8b4f80fa3f..b6d54ab952 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-api-docs", "description": "A Backstage plugin that helps represent API entities in the frontend", - "version": "0.8.7-next.1", + "version": "0.8.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,13 +33,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@asyncapi/react-component": "1.0.0-next.38", - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@asyncapi/react-component": "1.0.0-next.39", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog": "^1.3.1-next.1", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog": "^1.4.0-next.2", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -57,9 +57,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -68,7 +68,7 @@ "@types/node": "^16.11.26", "@types/swagger-ui-react": "^4.1.1", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md index cf84f54fb0..0282527437 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-app-backend +## 0.3.34-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + ## 0.3.34-next.1 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index b76c4c00dd..b25a162f4a 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-app-backend", "description": "A Backstage backend plugin that serves the Backstage frontend app", - "version": "0.3.34-next.1", + "version": "0.3.34-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,7 +33,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", + "@backstage/backend-common": "^0.14.1-next.2", "@backstage/config-loader": "^1.1.3-next.0", "@backstage/config": "^1.0.1", "@backstage/types": "^1.0.0", @@ -50,12 +50,12 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.26-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/backend-test-utils": "^0.1.26-next.2", + "@backstage/cli": "^0.18.0-next.2", "@backstage/types": "^1.0.0", "@types/supertest": "^2.0.8", "mock-fs": "^5.1.0", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.3" }, "files": [ diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index 4b0da94dad..8e6e79d97e 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-backend +## 0.15.0-next.2 + +### Patch Changes + +- 8e03db907a: Auth provider now also export createAuthProviderIntegration +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + ## 0.15.0-next.1 ### Minor Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 624899c38f..d6b027e6ea 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend", "description": "A Backstage backend plugin that handles authentication", - "version": "0.15.0-next.1", + "version": "0.15.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,9 +34,9 @@ }, "dependencies": { "@backstage/plugin-auth-node": "^0.2.3-next.1", - "@backstage/backend-common": "^0.14.1-next.1", + "@backstage/backend-common": "^0.14.1-next.2", "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", "@backstage/types": "^1.0.0", @@ -76,8 +76,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.26-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/backend-test-utils": "^0.1.26-next.2", + "@backstage/cli": "^0.18.0-next.2", "@types/body-parser": "^1.19.0", "@types/cookie-parser": "^1.4.2", "@types/express-session": "^1.17.2", @@ -88,7 +88,7 @@ "@types/passport-saml": "^1.1.3", "@types/passport-strategy": "^0.2.35", "@types/xml2js": "^0.4.7", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.3" }, "files": [ diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index 2232eeaa81..e4fa5eeea4 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -140,6 +140,7 @@ export async function createRouter( } if (provider.refresh) { r.get('/refresh', provider.refresh.bind(provider)); + r.post('/refresh', provider.refresh.bind(provider)); } router.use(`/${providerId}`, r); diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index ad67eefefc..011aade178 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@backstage/cli": "^0.18.0-next.1", "lodash": "^4.17.21", - "msw": "^0.42.0", + "msw": "^0.43.0", "uuid": "^8.0.0" }, "files": [ diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 2126bfced7..cff9eaf07e 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -38,7 +38,7 @@ "@backstage/cli": "^0.18.0-next.1", "@types/supertest": "^2.0.8", "supertest": "^6.1.6", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/azure-devops/CHANGELOG.md b/plugins/azure-devops/CHANGELOG.md index 32b7ee5a25..79a58574f3 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-azure-devops +## 0.1.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.23-next.1 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index d96ccbea29..6ab9760f66 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops", - "version": "0.1.23-next.1", + "version": "0.1.23-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -30,13 +30,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", "@backstage/plugin-azure-devops-common": "^0.2.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -59,7 +59,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md index 02729eb7c8..779625184e 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-badges-backend +## 0.1.28-next.2 + +### Patch Changes + +- 58fd5ee9d5: Add missing installation instructions +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + ## 0.1.28-next.1 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index 26a11c98b1..1e0bc62b15 100644 --- a/plugins/badges-backend/package.json +++ b/plugins/badges-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges-backend", "description": "A Backstage backend plugin that generates README badges for your entities", - "version": "0.1.28-next.1", + "version": "0.1.28-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,9 +34,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", + "@backstage/backend-common": "^0.14.1-next.2", "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", "@types/express": "^4.17.6", @@ -48,7 +48,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@types/supertest": "^2.0.8", "supertest": "^6.1.3" }, diff --git a/plugins/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md index 41d41c9855..b6fc662c3a 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-badges +## 0.2.31-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.2.31-next.1 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index 2b58487932..6972ba80ae 100644 --- a/plugins/badges/package.json +++ b/plugins/badges/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges", "description": "A Backstage plugin that generates README badges for your entities", - "version": "0.2.31-next.1", + "version": "0.2.31-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -30,12 +30,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -46,9 +46,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -56,7 +56,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/bazaar-backend/CHANGELOG.md b/plugins/bazaar-backend/CHANGELOG.md index cfc222eb55..81358cfc7f 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-bazaar-backend +## 0.1.18-next.1 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + - @backstage/backend-test-utils@0.1.26-next.2 + ## 0.1.18-next.0 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index 08e39852f5..351535e544 100644 --- a/plugins/bazaar-backend/package.json +++ b/plugins/bazaar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar-backend", - "version": "0.1.18-next.0", + "version": "0.1.18-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,8 +23,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", - "@backstage/backend-test-utils": "^0.1.26-next.1", + "@backstage/backend-common": "^0.14.1-next.2", + "@backstage/backend-test-utils": "^0.1.26-next.2", "@backstage/config": "^1.0.1", "@types/express": "^4.17.6", "express": "^4.17.1", @@ -34,7 +34,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1" + "@backstage/cli": "^0.18.0-next.2" }, "files": [ "dist", diff --git a/plugins/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md index 864a5eb017..e70e0db58b 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-bazaar +## 0.1.22-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-catalog@1.4.0-next.2 + - @backstage/cli@0.18.0-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.22-next.1 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index bbc5919e12..aa44986a79 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.1.22-next.1", + "version": "0.1.22-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,12 +25,12 @@ }, "dependencies": { "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/cli": "^0.18.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/cli": "^0.18.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog": "^1.3.1-next.1", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/plugin-catalog": "^1.4.0-next.2", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@date-io/luxon": "1.x", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -47,8 +47,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/cli": "^0.18.0-next.2", + "@backstage/dev-utils": "^1.0.4-next.2", "@testing-library/jest-dom": "^5.10.1", "cross-fetch": "^3.1.5" }, diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index c84303fece..d5a686a1cd 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -34,7 +34,7 @@ "devDependencies": { "@backstage/cli": "^0.18.0-next.1", "@openapitools/openapi-generator-cli": "^2.4.26", - "msw": "^0.42.0", + "msw": "^0.43.0", "ts-morph": "^15.0.0" }, "files": [ diff --git a/plugins/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md index 0ef9d10bea..9058f5c15a 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-bitrise +## 0.1.34-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.34-next.1 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index f8f96be603..07ac2ca46e 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitrise", "description": "A Backstage plugin that integrates towards Bitrise", - "version": "0.1.34-next.1", + "version": "0.1.34-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,11 +24,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -53,7 +53,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "@types/recharts": "^1.8.15", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 4cb1639a36..6256a01a72 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -42,7 +42,7 @@ "@backstage/plugin-catalog-backend": "^1.2.1-next.1", "@backstage/types": "^1.0.0", "lodash": "^4.17.21", - "msw": "^0.42.0", + "msw": "^0.43.0", "uuid": "^8.0.0", "node-fetch": "^2.6.7", "winston": "^3.2.1" diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index 663c0b37fe..b272cb8c29 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/package.json +++ b/plugins/catalog-backend-module-bitbucket-cloud/package.json @@ -45,7 +45,7 @@ "@backstage/backend-common": "^0.14.1-next.1", "@backstage/backend-test-utils": "^0.1.26-next.1", "@backstage/cli": "^0.18.0-next.1", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index 56b0c16eec..4eb2a85e0e 100644 --- a/plugins/catalog-backend-module-bitbucket/package.json +++ b/plugins/catalog-backend-module-bitbucket/package.json @@ -42,7 +42,7 @@ "@backstage/plugin-catalog-backend": "^1.2.1-next.1", "@backstage/types": "^1.0.0", "lodash": "^4.17.21", - "msw": "^0.42.0", + "msw": "^0.43.0", "node-fetch": "^2.6.7", "winston": "^3.2.1" }, diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index dd4c07c044..6c4bd63659 100644 --- a/plugins/catalog-backend-module-gerrit/package.json +++ b/plugins/catalog-backend-module-gerrit/package.json @@ -36,7 +36,7 @@ "@backstage/integration": "^1.2.2-next.1", "@backstage/plugin-catalog-backend": "^1.2.1-next.1", "fs-extra": "10.1.0", - "msw": "^0.42.0", + "msw": "^0.43.0", "node-fetch": "^2.6.7", "uuid": "^8.0.0", "winston": "^3.2.1" diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index ffe8e38e32..eae503c507 100644 --- a/plugins/catalog-backend-module-github/package.json +++ b/plugins/catalog-backend-module-github/package.json @@ -43,7 +43,7 @@ "@backstage/types": "^1.0.0", "@octokit/graphql": "^4.5.8", "lodash": "^4.17.21", - "msw": "^0.42.0", + "msw": "^0.43.0", "node-fetch": "^2.6.7", "uuid": "^8.0.0", "winston": "^3.2.1" diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index a4240119e3..47f48af481 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -42,7 +42,7 @@ "@backstage/plugin-catalog-backend": "^1.2.1-next.1", "@backstage/types": "^1.0.0", "lodash": "^4.17.21", - "msw": "^0.42.0", + "msw": "^0.43.0", "node-fetch": "^2.6.7", "winston": "^3.2.1", "uuid": "^8.0.0" diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index d50e93edcc..a86663d6d1 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,104 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.4.0-next.1 + +### Minor Changes + +- a145672f0f: Align `msgraph` plugin's entity provider config with other providers. **Deprecated** entity processor as well as previous config. + + You will see warning at the log output until you migrate to the new setup. + All deprecated parts will be removed eventually after giving some time to migrate. + + Please find information on how to migrate your current setup to the new one below. + + **Migration Guide:** + + There were two different way on how to use the msgraph plugin: processor or provider. + + Previous registration for the processor: + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addProcessor( + MicrosoftGraphOrgReaderProcessor.fromConfig(env.config, { + logger: env.logger, + // [...] + }), + ); + ``` + + Previous registration when using the provider: + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addEntityProvider( + MicrosoftGraphOrgEntityProvider.fromConfig(env.config, { + id: 'https://graph.microsoft.com/v1.0', + target: 'https://graph.microsoft.com/v1.0', + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + // [...] + }), + ); + ``` + + Previous configuration as used for both: + + ```yaml + # app-config.yaml + catalog: + processors: + microsoftGraphOrg: + providers: + - target: https://graph.microsoft.com/v1.0 + # [...] + ``` + + **Replacement:** + + Please check https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-msgraph/README.md for the complete documentation of all configuration options (config as well as registration of the provider). + + ```yaml + # app-config.yaml + catalog: + providers: + microsoftGraphOrg: + # In case you used the deprecated configuration with the entity provider + # using the value of `target` will keep the same location key for all + providerId: # some stable ID which will be used as part of the location key for all ingested data + target: https://graph.microsoft.com/v1.0 + # [...] + ``` + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addEntityProvider( + MicrosoftGraphOrgEntityProvider.fromConfig(env.config, { + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + // [...] + }), + ); + ``` + + In case you've used multiple entity providers before + **and** you had different transformers for each of them + you can provide these directly at the one `fromConfig` call + by passing a Record with the provider ID as key. + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-tasks@0.3.3-next.2 + - @backstage/plugin-catalog-backend@1.2.1-next.2 + ## 0.3.4-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index cf777d982c..921d198b8b 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", "description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph", - "version": "0.3.4-next.0", + "version": "0.4.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,10 +34,10 @@ }, "dependencies": { "@azure/msal-node": "^1.1.0", - "@backstage/backend-tasks": "^0.3.3-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/backend-tasks": "^0.3.3-next.2", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/plugin-catalog-backend": "^1.2.1-next.1", + "@backstage/plugin-catalog-backend": "^1.2.1-next.2", "@microsoft/microsoft-graph-types": "^2.6.0", "@types/node-fetch": "^2.5.12", "lodash": "^4.17.21", @@ -48,11 +48,11 @@ "qs": "^6.9.4" }, "devDependencies": { - "@backstage/backend-common": "^0.14.1-next.1", - "@backstage/backend-test-utils": "^0.1.26-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/backend-common": "^0.14.1-next.2", + "@backstage/backend-test-utils": "^0.1.26-next.2", + "@backstage/cli": "^0.18.0-next.2", "@types/lodash": "^4.14.151", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md index d98f5a95d0..657238efda 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.1.0-next.1 + +### Patch Changes + +- 4881dc4c84: Updated dependency `openapi-types` to `^12.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/plugin-catalog-backend@1.2.1-next.2 + - @backstage/integration@1.2.2-next.2 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 306117075c..0b9c24369c 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-openapi", "description": "A Backstage catalog backend module that helps with OpenAPI specifications", - "version": "0.1.0-next.0", + "version": "0.1.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,17 +34,17 @@ }, "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@backstage/backend-common": "^0.14.1-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/backend-common": "^0.14.1-next.2", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/plugin-catalog-backend": "^1.2.1-next.1", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/plugin-catalog-backend": "^1.2.1-next.2", "winston": "^3.2.1", "yaml": "^2.1.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.26-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/backend-test-utils": "^0.1.26-next.2", + "@backstage/cli": "^0.18.0-next.2", "openapi-types": "^12.0.0" }, "files": [ diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index 7d58cfda6e..a228308681 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-catalog-backend +## 1.2.1-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/integration@1.2.2-next.2 + ## 1.2.1-next.1 ### Patch Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 71608c4eb3..ebed76ca90 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend", "description": "The Backstage backend plugin that provides the Backstage catalog", - "version": "1.2.1-next.1", + "version": "1.2.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,12 +34,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", + "@backstage/backend-common": "^0.14.1-next.2", "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration": "^1.2.2-next.1", + "@backstage/integration": "^1.2.2-next.2", "@backstage/plugin-catalog-common": "^1.0.4-next.0", "@backstage/plugin-permission-common": "^0.6.3-next.0", "@backstage/plugin-permission-node": "^0.6.3-next.1", @@ -68,8 +68,8 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.26-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/backend-test-utils": "^0.1.26-next.2", + "@backstage/cli": "^0.18.0-next.2", "@backstage/plugin-permission-common": "^0.6.3-next.0", "@backstage/plugin-search-backend-node": "0.6.3-next.1", "@types/core-js": "^2.5.4", @@ -78,7 +78,7 @@ "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", "better-sqlite3": "^7.5.0", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.3", "wait-for-expect": "^3.0.2", "luxon": "^2.0.2" diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index 235434ff66..f497b35628 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-graph +## 0.2.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.2.19-next.1 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index e2d8af6f46..c61d388f0b 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-graph", - "version": "0.2.19-next.1", + "version": "0.2.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,11 +25,11 @@ }, "dependencies": { "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -45,10 +45,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", - "@backstage/plugin-catalog": "^1.3.1-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", + "@backstage/plugin-catalog": "^1.4.0-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@backstage/types": "^1.0.0", "@testing-library/jest-dom": "^5.10.1", diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index c1ca2f9fa6..81b31ffe51 100644 --- a/plugins/catalog-graphql/package.json +++ b/plugins/catalog-graphql/package.json @@ -53,7 +53,7 @@ "@graphql-codegen/typescript": "^2.4.2", "@graphql-codegen/typescript-resolvers": "^2.4.3", "@graphql-tools/schema": "^8.3.1", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index 6c306635e1..7de1bd72d0 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-catalog-import +## 0.8.10-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + ## 0.8.10-next.1 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index 0f804cddd4..042e85f792 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-import", "description": "A Backstage plugin the helps you import entities into your catalog", - "version": "0.8.10-next.1", + "version": "0.8.10-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,14 +35,14 @@ }, "dependencies": { "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/integration-react": "^1.1.2-next.1", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/integration-react": "^1.1.2-next.2", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -60,9 +60,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -70,7 +70,7 @@ "@testing-library/user-event": "^14.0.0", "@types/jest": "^26.0.7", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index fb5bcc81c3..0df99a1bb9 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,54 @@ # @backstage/plugin-catalog-react +## 1.1.2-next.2 + +### Patch Changes + +- be26d95141: Added new `EntityProcessingStatusPicker` that will filter for entities with orphans and/or errors. + + If you are using the default Catalog page this picker will be added automatically. For those who have customized their Catalog page you'll need to add this manually by doing something like this: + + ```diff + ... + import { + CatalogFilterLayout, + EntityTypePicker, + UserListPicker, + EntityTagPicker + + EntityProcessingStatusPicker, + } from '@backstage/plugin-catalog-react'; + ... + export const CustomCatalogPage = ({ + columns, + actions, + initiallySelectedFilter = 'owned', + }: CatalogPageProps) => { + return ( + ... + + + + + + ... + }; + ``` + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + ## 1.1.2-next.1 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index a28b8219be..3f3ee5f402 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-react", "description": "A frontend library that helps other Backstage plugins interact with the catalog", - "version": "1.1.2-next.1", + "version": "1.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,15 +35,15 @@ }, "dependencies": { "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration": "^1.2.2-next.1", + "@backstage/integration": "^1.2.2-next.2", "@backstage/plugin-catalog-common": "^1.0.4-next.0", "@backstage/plugin-permission-common": "^0.6.3-next.0", "@backstage/plugin-permission-react": "^0.4.3-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@backstage/types": "^1.0.0", "@backstage/version-bridge": "^1.0.1", "@material-ui/core": "^4.12.2", @@ -63,7 +63,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", "@backstage/plugin-catalog-common": "^1.0.4-next.0", "@backstage/plugin-scaffolder-common": "^1.1.2-next.0", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index 21e30517e2..5e00cd2661 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,65 @@ # @backstage/plugin-catalog +## 1.4.0-next.2 + +### Minor Changes + +- a274fe38b9: Add hidden title column to catalog and API table to enable filtering by title. + +### Patch Changes + +- 258057a4b9: Adding ability to customize the "unregister entity" menu item in the entity context menu on the entity page with options 'visible','hidden','disabled'.With this three new options, one can hide the "unregister entity" menu item from the list, disable or keep it enabled. + + The boolean input for "unregister entity" will be deprecated later in favour of the above three options. + +- 385389d23c: Updated to remove usage of the `bursts` object in the theme palette +- be26d95141: Added new `EntityProcessingStatusPicker` that will filter for entities with orphans and/or errors. + + If you are using the default Catalog page this picker will be added automatically. For those who have customized their Catalog page you'll need to add this manually by doing something like this: + + ```diff + ... + import { + CatalogFilterLayout, + EntityTypePicker, + UserListPicker, + EntityTagPicker + + EntityProcessingStatusPicker, + } from '@backstage/plugin-catalog-react'; + ... + export const CustomCatalogPage = ({ + columns, + actions, + initiallySelectedFilter = 'owned', + }: CatalogPageProps) => { + return ( + ... + + + + + + ... + }; + ``` + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + ## 1.3.1-next.1 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 0dd7836c02..a294e64d29 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog", "description": "The Backstage plugin for browsing the Backstage catalog", - "version": "1.3.1-next.1", + "version": "1.4.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,16 +35,16 @@ }, "dependencies": { "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration-react": "^1.1.2-next.1", + "@backstage/integration-react": "^1.1.2-next.2", "@backstage/plugin-catalog-common": "^1.0.4-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@backstage/plugin-search-common": "^0.3.6-next.0", - "@backstage/plugin-search-react": "^0.2.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-search-react": "^0.2.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -61,9 +61,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/plugin-permission-react": "^0.4.3-next.0", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md index 2d5bee3a89..4df5655c52 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-circleci +## 0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.3.7-next.1 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 3873b6fd03..c17569db13 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-circleci", "description": "A Backstage plugin that integrates towards Circle CI", - "version": "0.3.7-next.1", + "version": "0.3.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,11 +35,11 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -55,9 +55,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -66,7 +66,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/cloudbuild/CHANGELOG.md b/plugins/cloudbuild/CHANGELOG.md index 6c0f361fdc..94b16aafdd 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-cloudbuild +## 0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.3.7-next.1 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index 874fb69017..2348693d58 100644 --- a/plugins/cloudbuild/package.json +++ b/plugins/cloudbuild/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cloudbuild", "description": "A Backstage plugin that integrates towards Google Cloud Build", - "version": "0.3.7-next.1", + "version": "0.3.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,11 +34,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -52,9 +52,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -62,7 +62,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/code-climate/CHANGELOG.md b/plugins/code-climate/CHANGELOG.md index c882f5a2c0..cd2e824758 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-code-climate +## 0.1.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.7-next.1 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index a9542e0f72..40c0861f17 100644 --- a/plugins/code-climate/package.json +++ b/plugins/code-climate/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-code-climate", - "version": "0.1.7-next.1", + "version": "0.1.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,11 +23,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -40,8 +40,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/cli": "^0.18.0-next.2", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -51,7 +51,7 @@ "@types/luxon": "^2.0.9", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md index b813d32776..6fccd225cb 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-code-coverage-backend +## 0.1.32-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/integration@1.2.2-next.2 + ## 0.1.32-next.1 ### Patch Changes diff --git a/plugins/code-coverage-backend/api-report.md b/plugins/code-coverage-backend/api-report.md index 437c48227f..c33874064b 100644 --- a/plugins/code-coverage-backend/api-report.md +++ b/plugins/code-coverage-backend/api-report.md @@ -10,27 +10,10 @@ import { PluginDatabaseManager } from '@backstage/backend-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { UrlReader } from '@backstage/backend-common'; -// Warning: (ae-missing-release-tag) "CodeCoverageApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) -export interface CodeCoverageApi { - // (undocumented) - name: string; -} - -// Warning: (ae-missing-release-tag) "createRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public export function createRouter(options: RouterOptions): Promise; -// Warning: (ae-missing-release-tag) "makeRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) -export const makeRouter: (options: RouterOptions) => Promise; - -// Warning: (ae-missing-release-tag) "RouterOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public export interface RouterOptions { // (undocumented) config: Config; diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index f27090d8ef..017b96122e 100644 --- a/plugins/code-coverage-backend/package.json +++ b/plugins/code-coverage-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage-backend", "description": "A Backstage backend plugin that helps you keep track of your code coverage", - "version": "0.1.32-next.1", + "version": "0.1.32-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,12 +23,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", + "@backstage/backend-common": "^0.14.1-next.2", "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration": "^1.2.2-next.1", + "@backstage/integration": "^1.2.2-next.2", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -39,10 +39,10 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@types/express-xml-bodyparser": "^0.3.2", "@types/supertest": "^2.0.8", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.6", "xml2js": "^0.4.23" }, diff --git a/plugins/code-coverage-backend/src/index.ts b/plugins/code-coverage-backend/src/index.ts index 3b1b536ac7..8511c9b71e 100644 --- a/plugins/code-coverage-backend/src/index.ts +++ b/plugins/code-coverage-backend/src/index.ts @@ -20,4 +20,5 @@ * @packageDocumentation */ -export * from './service/router'; +export { createRouter } from './service/router'; +export type { RouterOptions } from './service/router'; diff --git a/plugins/code-coverage-backend/src/service/router.ts b/plugins/code-coverage-backend/src/service/router.ts index 488103c835..37279b549f 100644 --- a/plugins/code-coverage-backend/src/service/router.ts +++ b/plugins/code-coverage-backend/src/service/router.ts @@ -35,6 +35,11 @@ import { Jacoco } from './converter/jacoco'; import { Converter } from './converter'; import { getEntitySourceLocation } from '@backstage/catalog-model'; +/** + * Options for {@link createRouter}. + * + * @public + */ export interface RouterOptions { config: Config; discovery: PluginEndpointDiscovery; @@ -211,6 +216,11 @@ export const makeRouter = async ( return router; }; +/** + * Creates a code-coverage plugin backend router. + * + * @public + */ export async function createRouter( options: RouterOptions, ): Promise { diff --git a/plugins/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md index b3199f207b..b2b64aa993 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-code-coverage +## 0.1.34-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.34-next.1 ### Patch Changes diff --git a/plugins/code-coverage/api-report.md b/plugins/code-coverage/api-report.md index 0e675dec04..152cc93103 100644 --- a/plugins/code-coverage/api-report.md +++ b/plugins/code-coverage/api-report.md @@ -9,8 +9,6 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { RouteRef } from '@backstage/core-plugin-api'; -// Warning: (ae-missing-release-tag) "codeCoveragePlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const codeCoveragePlugin: BackstagePlugin< { @@ -19,20 +17,12 @@ export const codeCoveragePlugin: BackstagePlugin< {} >; -// Warning: (ae-missing-release-tag) "EntityCodeCoverageContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public export const EntityCodeCoverageContent: () => JSX.Element; -// Warning: (ae-missing-release-tag) "isCodeCoverageAvailable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) -const isCodeCoverageAvailable: (entity: Entity) => boolean; -export { isCodeCoverageAvailable }; -export { isCodeCoverageAvailable as isPluginApplicableToEntity }; +// @public +export function isCodeCoverageAvailable(entity: Entity): boolean; -// Warning: (ae-missing-release-tag) "Router" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) -export const Router: () => JSX.Element; +// @public @deprecated (undocumented) +export const isPluginApplicableToEntity: typeof isCodeCoverageAvailable; ``` diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index b7d7723277..68cd7d7990 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage", "description": "A Backstage plugin that helps you keep track of your code coverage", - "version": "0.1.34-next.1", + "version": "0.1.34-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,13 +24,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -46,9 +46,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -58,7 +58,7 @@ "@types/node": "^16.11.26", "@types/recharts": "^1.8.15", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/code-coverage/src/components/FileExplorer/Highlighter.ts b/plugins/code-coverage/src/components/FileExplorer/Highlighter.ts index 225ca96175..d97d147da3 100644 --- a/plugins/code-coverage/src/components/FileExplorer/Highlighter.ts +++ b/plugins/code-coverage/src/components/FileExplorer/Highlighter.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import 'highlight.js/styles/atom-one-dark.css'; import highlight from 'highlight.js'; diff --git a/plugins/code-coverage/src/components/Router.tsx b/plugins/code-coverage/src/components/Router.tsx index d3342b86eb..190b441c7a 100644 --- a/plugins/code-coverage/src/components/Router.tsx +++ b/plugins/code-coverage/src/components/Router.tsx @@ -13,16 +13,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import React from 'react'; import { Entity } from '@backstage/catalog-model'; import { useEntity } from '@backstage/plugin-catalog-react'; import { CodeCoveragePage } from './CodeCoveragePage'; import { MissingAnnotationEmptyState } from '@backstage/core-components'; -export const isCodeCoverageAvailable = (entity: Entity) => - Boolean(entity.metadata.annotations?.['backstage.io/code-coverage']); +/** + * Returns true if the given entity has code coverage enabled. + * + * @public + */ +export function isCodeCoverageAvailable(entity: Entity) { + return Boolean(entity.metadata.annotations?.['backstage.io/code-coverage']); +} -export const Router = () => { +/** + * @public + */ +export const Router = (): JSX.Element => { const { entity } = useEntity(); if (!isCodeCoverageAvailable(entity)) { @@ -30,5 +40,6 @@ export const Router = () => { ); } + return ; }; diff --git a/plugins/code-coverage/src/index.ts b/plugins/code-coverage/src/index.ts index 2ece7ed1e8..06c10026ff 100644 --- a/plugins/code-coverage/src/index.ts +++ b/plugins/code-coverage/src/index.ts @@ -20,9 +20,13 @@ * @packageDocumentation */ +import { isCodeCoverageAvailable } from './components/Router'; + export { codeCoveragePlugin, EntityCodeCoverageContent } from './plugin'; -export { - Router, - isCodeCoverageAvailable, - isCodeCoverageAvailable as isPluginApplicableToEntity, -} from './components/Router'; +export { isCodeCoverageAvailable }; + +/** + * @public + * @deprecated Use `isPluginApplicableToEntity` instead. + */ +export const isPluginApplicableToEntity = isCodeCoverageAvailable; diff --git a/plugins/code-coverage/src/plugin.ts b/plugins/code-coverage/src/plugin.ts index 1202c4e4b3..f137e9d488 100644 --- a/plugins/code-coverage/src/plugin.ts +++ b/plugins/code-coverage/src/plugin.ts @@ -23,6 +23,9 @@ import { discoveryApiRef, } from '@backstage/core-plugin-api'; +/** + * @public + */ export const codeCoveragePlugin = createPlugin({ id: 'code-coverage', routes: { @@ -37,6 +40,11 @@ export const codeCoveragePlugin = createPlugin({ ], }); +/** + * An entity code coverage page. + * + * @public + */ export const EntityCodeCoverageContent = codeCoveragePlugin.provide( createRoutableExtension({ name: 'EntityCodeCoverageContent', diff --git a/plugins/codescene/CHANGELOG.md b/plugins/codescene/CHANGELOG.md index 4f0944ff34..e3f98725c3 100644 --- a/plugins/codescene/CHANGELOG.md +++ b/plugins/codescene/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-codescene +## 0.1.2-next.2 + +### Patch Changes + +- 15201b1032: Updated dependency `rc-progress` to `3.4.0`. +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index c21c1e24be..85f7096f69 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-codescene", - "version": "0.1.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,10 +23,10 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.9.10", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.57", @@ -38,16 +38,16 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/jest": "*", "@types/node": "*", - "msw": "^0.42.0", + "msw": "^0.43.0", "cross-fetch": "^3.1.5" }, "files": [ diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md index 99a23391d6..b6a43ed858 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-config-schema +## 0.1.30-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.1.30-next.1 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 59b8780987..c33e7adac3 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-config-schema", "description": "A Backstage plugin that lets you browse the configuration schema of your app", - "version": "0.1.30-next.1", + "version": "0.1.30-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,10 +25,10 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -41,9 +41,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -51,7 +51,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/cost-insights-common/CHANGELOG.md b/plugins/cost-insights-common/CHANGELOG.md index d958aaa41b..0a55b342fc 100644 --- a/plugins/cost-insights-common/CHANGELOG.md +++ b/plugins/cost-insights-common/CHANGELOG.md @@ -1 +1,7 @@ # @backstage/plugin-cost-insights-common + +## 0.1.0-next.0 + +### Minor Changes + +- 81dd5ea989: Introduces a new isomorphic @backstage/plugin-cost-insight-common package to contain shared types across all other cost insights packages and modules. diff --git a/plugins/cost-insights-common/package.json b/plugins/cost-insights-common/package.json index c15f063fd2..2918462e09 100644 --- a/plugins/cost-insights-common/package.json +++ b/plugins/cost-insights-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cost-insights-common", "description": "Common functionalities for the cost-insights plugin", - "version": "0.0.0", + "version": "0.1.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,7 +34,7 @@ }, "dependencies": {}, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1" + "@backstage/cli": "^0.18.0-next.2" }, "files": [ "dist" diff --git a/plugins/cost-insights/CHANGELOG.md b/plugins/cost-insights/CHANGELOG.md index 734cf0cfa0..a5824d1cc9 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-cost-insights +## 0.11.29-next.2 + +### Patch Changes + +- 3e032a5de2: Move cost-insights data specific API types (non react) into an @backstage/plugin-cost-insights-common + isomorphic package. This allows these types to be shared in any backend packages or other cost-insight + modules. +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/plugin-cost-insights-common@0.1.0-next.0 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.11.29-next.1 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index d7a04eddbc..beb28546b6 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cost-insights", "description": "A Backstage plugin that helps you keep track of your cloud spend", - "version": "0.11.29-next.1", + "version": "0.11.29-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,12 +34,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-cost-insights-common": "^0.0.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-cost-insights-common": "^0.1.0-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -61,9 +61,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -76,7 +76,7 @@ "@types/yup": "^0.29.13", "canvas": "^2.6.1", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/dynatrace/CHANGELOG.md b/plugins/dynatrace/CHANGELOG.md index d6cb7f6f56..ffe12d4991 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-dynatrace +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index 4983e7bf83..0bf3c2f26c 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,10 +22,10 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -37,9 +37,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -48,7 +48,7 @@ "@types/node": "*", "cross-fetch": "^3.1.5", "express": "^4.18.1", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index e91cbf3bf3..67fc049267 100644 --- a/plugins/example-todo-list-backend/package.json +++ b/plugins/example-todo-list-backend/package.json @@ -39,7 +39,7 @@ "@backstage/cli": "^0.18.0-next.1", "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.6" }, "files": [ diff --git a/plugins/example-todo-list-common/package.json b/plugins/example-todo-list-common/package.json index c19c0d0485..b06328608a 100644 --- a/plugins/example-todo-list-common/package.json +++ b/plugins/example-todo-list-common/package.json @@ -31,7 +31,7 @@ "@backstage/dev-utils": "^1.0.4-next.1", "@backstage/test-utils": "^1.1.2-next.1", "@types/node": "^16.11.26", - "msw": "^0.42.0", + "msw": "^0.43.0", "cross-fetch": "^3.1.5" }, "files": [ diff --git a/plugins/example-todo-list/CHANGELOG.md b/plugins/example-todo-list/CHANGELOG.md index 64c2ec4995..e73d0d6474 100644 --- a/plugins/example-todo-list/CHANGELOG.md +++ b/plugins/example-todo-list/CHANGELOG.md @@ -1,5 +1,13 @@ # @internal/plugin-todo-list +## 1.0.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 1.0.3-next.1 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index 68d6e89d56..3531995880 100644 --- a/plugins/example-todo-list/package.json +++ b/plugins/example-todo-list/package.json @@ -1,6 +1,6 @@ { "name": "@internal/plugin-todo-list", - "version": "1.0.3-next.1", + "version": "1.0.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,9 +24,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -36,16 +36,16 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/jest": "^26.0.7", "@types/node": "^16.11.26", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/explore-react/package.json b/plugins/explore-react/package.json index 164f449da7..b23867d8a7 100644 --- a/plugins/explore-react/package.json +++ b/plugins/explore-react/package.json @@ -45,7 +45,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/explore/CHANGELOG.md b/plugins/explore/CHANGELOG.md index 70ae5ba3a4..ecb1209c85 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-explore +## 0.3.38-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.3.38-next.1 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index c8f8be82f0..729aee7322 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-explore", "description": "A Backstage plugin for building an exploration page of your software ecosystem", - "version": "0.3.38-next.1", + "version": "0.3.38-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,12 +34,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@backstage/plugin-explore-react": "^0.0.18", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -63,7 +63,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md index 09b9373dbe..c03b08e828 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-firehydrant +## 0.1.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.24-next.1 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 2ad2366295..2690fbcb1d 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-firehydrant", "description": "A Backstage plugin that integrates towards FireHydrant", - "version": "0.1.24-next.1", + "version": "0.1.24-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,10 +25,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -39,9 +39,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -49,7 +49,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/fossa/CHANGELOG.md b/plugins/fossa/CHANGELOG.md index 8c361a38f3..99d6445627 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-fossa +## 0.2.39-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.2.39-next.1 ### Patch Changes diff --git a/plugins/fossa/README.md b/plugins/fossa/README.md index 898c9d0475..10ccba5ba7 100644 --- a/plugins/fossa/README.md +++ b/plugins/fossa/README.md @@ -43,9 +43,12 @@ proxy: headers: Authorization: token ${FOSSA_API_TOKEN} -# if you have a fossa organization, configure your id here fossa: + # if you have a fossa organization, configure your id here organizationId: + # if you have a self-managed fossa instance, + # configure the baseUrl to use for links to the fossa page here + externalLinkBaseUrl: ``` 4. Get an api-token and provide `FOSSA_AUTH_HEADER` as env variable (https://app.fossa.com/account/settings/integrations/api_tokens) diff --git a/plugins/fossa/config.d.ts b/plugins/fossa/config.d.ts index 72d844c4e9..26a2823097 100644 --- a/plugins/fossa/config.d.ts +++ b/plugins/fossa/config.d.ts @@ -20,6 +20,12 @@ export interface Config { * The organization id in fossa. * @visibility frontend */ - organizationId: string; + organizationId?: string; + + /** + * The base url to use for external links (from Backstage to Fossa). + * @visibility frontend + */ + externalLinkBaseUrl?: string; }; } diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index 876de5965c..223a246151 100644 --- a/plugins/fossa/package.json +++ b/plugins/fossa/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-fossa", "description": "A Backstage plugin that integrates towards FOSSA", - "version": "0.2.39-next.1", + "version": "0.2.39-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,12 +35,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -53,16 +53,16 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/jest": "^26.0.7", "@types/node": "^16.11.26", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/fossa/src/api/FossaClient.test.ts b/plugins/fossa/src/api/FossaClient.test.ts index 65b0fc1d53..0e2dc81e1f 100644 --- a/plugins/fossa/src/api/FossaClient.test.ts +++ b/plugins/fossa/src/api/FossaClient.test.ts @@ -175,6 +175,58 @@ describe('FossaClient', () => { expect(summary).toBeUndefined(); }); + it('should allow custom external link base url', async () => { + client = new FossaClient({ + discoveryApi, + identityApi, + organizationId: '8736', + externalLinkBaseUrl: 'https://custom.fossa.com', // overrides the default app.fossa.com + }); + server.use( + rest.get(`${mockBaseUrl}/fossa/projects`, (req, res, ctx) => { + const expectedQuery = + 'count=1000&page=0&sort=title%2B&organizationId=8736&title=our-service'; + if (req.url.searchParams.toString() !== expectedQuery) { + return res( + ctx.status(500), + ctx.body( + `${req.url.searchParams.toString()} !== ${expectedQuery}`, + ), + ); + } + + return res( + ctx.json([ + { + locator: 'custom+8736/our-service', + title: 'our-service', + default_branch: 'develop', + revisions: [ + { + updatedAt: '2020-01-01T00:00:00Z', + dependency_count: 160, + unresolved_licensing_issue_count: 5, + unresolved_issue_count: 100, + }, + ], + }, + ]), + ); + }), + ); + + const summary = await client.getFindingSummary('our-service'); + + expect(summary).toEqual({ + timestamp: '2020-01-01T00:00:00Z', + issueCount: 5, + dependencyCount: 160, + projectDefaultBranch: 'develop', + projectUrl: + 'https://custom.fossa.com/projects/custom%2B8736%2Four-service', + } as FindingSummary); + }); + it('should handle 404 status', async () => { server.use( rest.get(`${mockBaseUrl}/fossa/projects`, (_req, res, ctx) => { diff --git a/plugins/fossa/src/api/FossaClient.ts b/plugins/fossa/src/api/FossaClient.ts index 66b44de21e..8b4b4b02e5 100644 --- a/plugins/fossa/src/api/FossaClient.ts +++ b/plugins/fossa/src/api/FossaClient.ts @@ -36,20 +36,24 @@ export class FossaClient implements FossaApi { discoveryApi: DiscoveryApi; identityApi: IdentityApi; organizationId?: string; + externalLinkBaseUrl: string; private readonly limit = pLimit(5); constructor({ discoveryApi, identityApi, organizationId, + externalLinkBaseUrl = 'https://app.fossa.com', }: { discoveryApi: DiscoveryApi; identityApi: IdentityApi; organizationId?: string; + externalLinkBaseUrl?: string; }) { this.discoveryApi = discoveryApi; this.identityApi = identityApi; this.organizationId = organizationId; + this.externalLinkBaseUrl = externalLinkBaseUrl; } private async callApi( @@ -104,9 +108,9 @@ export class FossaClient implements FossaApi { revision.unresolved_issue_count, dependencyCount: revision.dependency_count, projectDefaultBranch: project.default_branch, - projectUrl: `https://app.fossa.com/projects/${encodeURIComponent( - project.locator, - )}`, + projectUrl: `${ + this.externalLinkBaseUrl + }/projects/${encodeURIComponent(project.locator)}`, }, }; } diff --git a/plugins/fossa/src/plugin.ts b/plugins/fossa/src/plugin.ts index a586d6d8a6..954ecedc81 100644 --- a/plugins/fossa/src/plugin.ts +++ b/plugins/fossa/src/plugin.ts @@ -39,6 +39,9 @@ export const fossaPlugin = createPlugin({ discoveryApi, identityApi, organizationId: configApi.getOptionalString('fossa.organizationId'), + externalLinkBaseUrl: configApi.getOptionalString( + 'fossa.externalLinkBaseUrl', + ), }), }), ], diff --git a/plugins/gcalendar/CHANGELOG.md b/plugins/gcalendar/CHANGELOG.md index bb548b86cb..12e37176a7 100644 --- a/plugins/gcalendar/CHANGELOG.md +++ b/plugins/gcalendar/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-gcalendar +## 0.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.3.3-next.1 ### Patch Changes diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index 9acc0cb3f5..3024c80e26 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcalendar", - "version": "0.3.3-next.1", + "version": "0.3.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,10 +22,10 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -55,7 +55,7 @@ "@types/node": "^16.11.26", "@types/sanitize-html": "^2.6.2", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/gcp-projects/CHANGELOG.md b/plugins/gcp-projects/CHANGELOG.md index 24a8fbe415..f2bedb646f 100644 --- a/plugins/gcp-projects/CHANGELOG.md +++ b/plugins/gcp-projects/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-gcp-projects +## 0.3.26-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.3.26-next.1 ### Patch Changes diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 3e3a9067aa..85cda09e86 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gcp-projects", "description": "A Backstage plugin that helps you manage projects in GCP", - "version": "0.3.26-next.1", + "version": "0.3.26-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,22 +34,22 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", - "@react-hookz/web": "^14.0.0", + "@react-hookz/web": "^15.0.0", "react-router-dom": "6.0.0-beta.0" }, "peerDependencies": { "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -57,7 +57,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/git-release-manager/CHANGELOG.md b/plugins/git-release-manager/CHANGELOG.md index 13e16cd353..e617ca7342 100644 --- a/plugins/git-release-manager/CHANGELOG.md +++ b/plugins/git-release-manager/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-git-release-manager +## 0.3.20-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + ## 0.3.20-next.1 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index b25a95a156..28bfa001a0 100644 --- a/plugins/git-release-manager/package.json +++ b/plugins/git-release-manager/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-git-release-manager", "description": "A Backstage plugin that helps you manage releases in git", - "version": "0.3.20-next.1", + "version": "0.3.20-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,10 +24,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -55,7 +55,7 @@ "@types/node": "^16.11.26", "@types/recharts": "^1.8.15", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md index ab347c1b77..de2a693116 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-github-actions +## 0.5.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.5.7-next.1 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 989847df6e..eefc7c1f4c 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-actions", "description": "A Backstage plugin that integrates towards GitHub Actions", - "version": "0.5.7-next.1", + "version": "0.5.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,12 +36,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -55,9 +55,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -65,7 +65,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md index 3dc6a89f93..cd0542d5cf 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-github-deployments +## 0.1.38-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + ## 0.1.38-next.1 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 5fc366522e..cbfc076a9b 100644 --- a/plugins/github-deployments/package.json +++ b/plugins/github-deployments/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-deployments", "description": "A Backstage plugin that integrates towards GitHub Deployments", - "version": "0.1.38-next.1", + "version": "0.1.38-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,14 +24,14 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/integration-react": "^1.1.2-next.1", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/integration-react": "^1.1.2-next.2", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -53,7 +53,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/github-pull-requests-board/CHANGELOG.md b/plugins/github-pull-requests-board/CHANGELOG.md index 4e8ba70b9a..91faf82d07 100644 --- a/plugins/github-pull-requests-board/CHANGELOG.md +++ b/plugins/github-pull-requests-board/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-github-pull-requests-board +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index 77caa4129f..c167cc8d88 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-pull-requests-board", "description": "A Backstage plugin that allows you to see all open Pull Requests for all the repositories owned by your team", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,12 +35,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -49,8 +49,8 @@ "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/cli": "^0.18.0-next.2", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -58,7 +58,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "peerDependencies": { "@types/react": "^16.13.1 || ^17.0.0", diff --git a/plugins/gitops-profiles/CHANGELOG.md b/plugins/gitops-profiles/CHANGELOG.md index 7ad6421f53..0c47ffc99f 100644 --- a/plugins/gitops-profiles/CHANGELOG.md +++ b/plugins/gitops-profiles/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-gitops-profiles +## 0.3.25-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.3.25-next.1 ### Patch Changes diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index 5a60b9c68e..3b48f5a6a1 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gitops-profiles", "description": "A Backstage plugin that helps you manage GitOps profiles", - "version": "0.3.25-next.1", + "version": "0.3.25-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,9 +35,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -48,9 +48,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -58,7 +58,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md index 9a1f0c40c7..692a789447 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-gocd +## 0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index a2a8f99983..a7d968d3c7 100644 --- a/plugins/gocd/package.json +++ b/plugins/gocd/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gocd", "description": "A Backstage plugin that integrates towards GoCD", - "version": "0.1.13-next.1", + "version": "0.1.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,12 +31,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -61,7 +61,7 @@ "@types/luxon": "^2.0.4", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/graphiql/CHANGELOG.md b/plugins/graphiql/CHANGELOG.md index ca98c30b8c..c034cef2b5 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-graphiql +## 0.2.39-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.2.39-next.1 ### Patch Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 7049ca1317..0b124ecbc9 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.2.39-next.1", + "version": "0.2.39-next.2", "private": false, "publishConfig": { "access": "public", @@ -34,9 +34,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -60,7 +60,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0", + "msw": "^0.43.0", "react-router-dom": "6.0.0-beta.0" }, "files": [ diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index 887718d415..0664f5a44d 100644 --- a/plugins/graphql-backend/package.json +++ b/plugins/graphql-backend/package.json @@ -53,7 +53,7 @@ "devDependencies": { "@backstage/cli": "^0.18.0-next.1", "@types/supertest": "^2.0.8", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.3" }, "files": [ diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index f185b92193..bb2e5d7405 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-home +## 0.4.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/plugin-stack-overflow@0.1.3-next.2 + ## 0.4.23-next.1 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index 57fe69590a..4800ba1842 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-home", "description": "A Backstage plugin that helps you build a home page", - "version": "0.4.23-next.1", + "version": "0.4.23-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,13 +34,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/plugin-stack-overflow": "^0.1.3-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/plugin-stack-overflow": "^0.1.3-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -63,7 +63,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md index bc5bd32d10..f24f1ede11 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-ilert +## 0.1.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.33-next.1 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index 8a14e8f3de..c844d5bd7e 100644 --- a/plugins/ilert/package.json +++ b/plugins/ilert/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-ilert", "description": "A Backstage plugin that integrates towards iLert", - "version": "0.1.33-next.1", + "version": "0.1.33-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,12 +24,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@date-io/luxon": "1.x", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -43,9 +43,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -53,7 +53,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md index 6a326c10cc..c96b147b18 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-jenkins-backend +## 0.1.24-next.2 + +### Patch Changes + +- 8747824221: feature: added support for multiple branches to the `JenkinsApi` +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + ## 0.1.24-next.1 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index 948907a1e2..bc24160dcf 100644 --- a/plugins/jenkins-backend/package.json +++ b/plugins/jenkins-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins-backend", "description": "A Backstage backend plugin that integrates towards Jenkins", - "version": "0.1.24-next.1", + "version": "0.1.24-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,9 +25,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", + "@backstage/backend-common": "^0.14.1-next.2", "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", "@backstage/plugin-auth-node": "^0.2.3-next.1", @@ -42,10 +42,10 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@types/jenkins": "^0.23.1", "@types/supertest": "^2.0.8", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.6" }, "files": [ diff --git a/plugins/jenkins/CHANGELOG.md b/plugins/jenkins/CHANGELOG.md index 65680ea7c4..a55f8a3d4b 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-jenkins +## 0.7.6-next.2 + +### Patch Changes + +- 8747824221: feature: added support for multiple branches to the `JenkinsApi` +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.7.6-next.1 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index e7a20b9046..e70aea32f4 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins", "description": "A Backstage plugin that integrates towards Jenkins", - "version": "0.7.6-next.1", + "version": "0.7.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,13 +35,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@backstage/plugin-jenkins-common": "^0.1.6-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -54,9 +54,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -65,7 +65,7 @@ "@types/node": "^16.11.26", "@types/testing-library__jest-dom": "^5.9.1", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/kafka-backend/CHANGELOG.md b/plugins/kafka-backend/CHANGELOG.md index ef7514bdee..5a35d5a504 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-kafka-backend +## 0.2.27-next.2 + +### Patch Changes + +- 8751667541: Updated dependency `kafkajs` to `^2.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + ## 0.2.27-next.1 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index 4315e45853..5a666ee6df 100644 --- a/plugins/kafka-backend/package.json +++ b/plugins/kafka-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka-backend", "description": "A Backstage backend plugin that integrates towards Kafka", - "version": "0.2.27-next.1", + "version": "0.2.27-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,8 +35,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/backend-common": "^0.14.1-next.2", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", "@types/express": "^4.17.6", @@ -47,7 +47,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@types/jest-when": "^3.5.0", "@types/lodash": "^4.14.151", "jest-when": "^3.1.0", diff --git a/plugins/kafka/CHANGELOG.md b/plugins/kafka/CHANGELOG.md index b7139b7e8c..7f5db4402c 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-kafka +## 0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.3.7-next.1 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 3da853574f..522cefb94f 100644 --- a/plugins/kafka/package.json +++ b/plugins/kafka/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka", "description": "A Backstage plugin that integrates towards Kafka", - "version": "0.3.7-next.1", + "version": "0.3.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,11 +24,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -39,9 +39,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -51,7 +51,7 @@ "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", "jest-when": "^3.1.0", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md index e20634eb16..b11a5b045f 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-kubernetes-backend +## 0.7.0-next.2 + +### Patch Changes + +- 60e5f9fe68: Fixed the lack of `limitranges` as part of the Default Objects to fetch from the kubernetes api +- Updated dependencies + - @backstage/plugin-kubernetes-common@0.4.0-next.1 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + ## 0.7.0-next.1 ### Patch Changes diff --git a/plugins/kubernetes-backend/api-report.md b/plugins/kubernetes-backend/api-report.md index adc8fb503f..363af1b02f 100644 --- a/plugins/kubernetes-backend/api-report.md +++ b/plugins/kubernetes-backend/api-report.md @@ -3,6 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import { Duration } from 'luxon'; import { Entity } from '@backstage/catalog-model'; @@ -108,6 +109,7 @@ export class KubernetesBuilder { protected buildRouter( objectsProvider: KubernetesObjectsProvider, clusterSupplier: KubernetesClustersSupplier, + catalogApi: CatalogApi, ): express.Router; // (undocumented) protected buildServiceLocator( @@ -155,6 +157,8 @@ export interface KubernetesClustersSupplier { // @alpha (undocumented) export interface KubernetesEnvironment { + // (undocumented) + catalogApi: CatalogApi; // (undocumented) config: Config; // (undocumented) @@ -268,6 +272,8 @@ export interface ObjectToFetch { // @alpha (undocumented) export interface RouterOptions { + // (undocumented) + catalogApi: CatalogApi; // (undocumented) clusterSupplier?: KubernetesClustersSupplier; // (undocumented) diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 048d025bff..337181bfae 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-backend", "description": "A Backstage backend plugin that integrates towards Kubernetes", - "version": "0.7.0-next.1", + "version": "0.7.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,13 +36,15 @@ }, "dependencies": { "@azure/identity": "^2.0.4", - "@backstage/backend-common": "^0.14.1-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/backend-common": "^0.14.1-next.2", + "@backstage/catalog-client": "^1.0.4-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", + "@backstage/plugin-auth-node": "^0.2.3-next.1", "@backstage/plugin-kubernetes-common": "^0.4.0-next.0", "@google-cloud/container": "^4.0.0", - "@kubernetes/client-node": "^0.16.0", + "@kubernetes/client-node": "^0.17.0", "@types/express": "^4.17.6", "@types/luxon": "^2.0.4", "aws-sdk": "^2.840.0", @@ -61,7 +63,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@types/aws4": "^1.5.1", "aws-sdk-mock": "^5.2.1", "supertest": "^6.1.3" diff --git a/plugins/kubernetes-backend/src/routes/resourceRoutes.test.ts b/plugins/kubernetes-backend/src/routes/resourceRoutes.test.ts new file mode 100644 index 0000000000..57e6514a96 --- /dev/null +++ b/plugins/kubernetes-backend/src/routes/resourceRoutes.test.ts @@ -0,0 +1,545 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { errorHandler } from '@backstage/backend-common'; +import express from 'express'; +import request from 'supertest'; +import Router from 'express-promise-router'; +import { addResourceRoutesToRouter } from './resourcesRoutes'; +import { Entity } from '@backstage/catalog-model'; + +describe('resourcesRoutes', () => { + let app: express.Express; + + beforeAll(() => { + app = express(); + app.use(express.json()); + const router = Router(); + addResourceRoutesToRouter( + router, + { + getEntityByRef: jest.fn().mockImplementation(entityRef => { + if (entityRef.name === 'noentity') { + return Promise.resolve(undefined); + } + return Promise.resolve({ + kind: entityRef.kind, + metadata: { + name: entityRef.name, + namespace: entityRef.namespace, + }, + } as Entity); + }), + } as any, + { + getKubernetesObjectsByEntity: jest.fn().mockImplementation(args => { + if (args.entity.metadata.name === 'inject500') { + return Promise.reject(new Error('some internal error')); + } + + return Promise.resolve({ + items: [ + { + clusterOne: { + pods: [ + { + metadata: { + name: 'pod1', + }, + }, + ], + }, + }, + ], + }); + }), + getCustomResourcesByEntity: jest.fn().mockImplementation(args => { + if (args.entity.metadata.name === 'inject500') { + return Promise.reject(new Error('some internal error')); + } + + return Promise.resolve({ + items: [ + { + clusterOne: { + pods: [ + { + metadata: { + name: 'pod1', + }, + }, + ], + }, + }, + ], + }); + }), + } as any, + ); + app.use('/', router); + app.use(errorHandler()); + }); + + describe('POST /resources/workloads/query', () => { + // eslint-disable-next-line jest/expect-expect + it('200 happy path', async () => { + await request(app) + .post('/resources/workloads/query') + .send({ + entityRef: 'kind:namespacec/someComponent', + auth: { + google: 'something', + }, + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(200, { + items: [ + { + clusterOne: { + pods: [ + { + metadata: { + name: 'pod1', + }, + }, + ], + }, + }, + ], + }); + }); + // eslint-disable-next-line jest/expect-expect + it('400 when missing entity ref', async () => { + await request(app) + .post('/resources/workloads/query') + .send({ + auth: { + google: 'something', + }, + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(400, { + error: { name: 'InputError', message: 'entity is a required field' }, + request: { + method: 'POST', + url: '/resources/workloads/query', + }, + response: { statusCode: 400 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('400 when bad entity ref', async () => { + await request(app) + .post('/resources/workloads/query') + .send({ + entityRef: 'ffff', + auth: { + google: 'something', + }, + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(400, { + error: { + name: 'InputError', + message: + 'Invalid entity ref, Error: Entity reference "ffff" had missing or empty kind (e.g. did not start with "component:" or similar)', + }, + request: { + method: 'POST', + url: '/resources/workloads/query', + }, + response: { statusCode: 400 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('400 when no entity in catalog', async () => { + await request(app) + .post('/resources/workloads/query') + .send({ + entityRef: 'noentity:noentity', + auth: { + google: 'something', + }, + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(400, { + error: { + name: 'InputError', + message: 'Entity ref missing, noentity:default/noentity', + }, + request: { + method: 'POST', + url: '/resources/workloads/query', + }, + response: { statusCode: 400 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('401 when no Auth header', async () => { + await request(app) + .post('/resources/workloads/query') + .send({ + entityRef: 'component:someComponent', + auth: { + google: 'something', + }, + }) + .set('Content-Type', 'application/json') + .expect(401, { + error: { name: 'AuthenticationError', message: 'No Backstage token' }, + request: { + method: 'POST', + url: '/resources/workloads/query', + }, + response: { statusCode: 401 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('401 when invalid Auth header', async () => { + await request(app) + .post('/resources/workloads/query') + .send({ + entityRef: 'component:someComponent', + auth: { + google: 'something', + }, + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'ffffff') + .expect(401, { + error: { name: 'AuthenticationError', message: 'No Backstage token' }, + request: { + method: 'POST', + url: '/resources/workloads/query', + }, + response: { statusCode: 401 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('500 handle gracefully', async () => { + await request(app) + .post('/resources/workloads/query') + .send({ + entityRef: 'inject500:inject500/inject500', + auth: { + google: 'something', + }, + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(500, { + error: { + name: 'Error', + message: 'some internal error', + level: 'error', + service: 'backstage', + }, + request: { method: 'POST', url: '/resources/workloads/query' }, + response: { statusCode: 500 }, + }); + }); + }); + describe('POST /resources/custom/query', () => { + // eslint-disable-next-line jest/expect-expect + it('200 happy path', async () => { + await request(app) + .post('/resources/custom/query') + .send({ + entityRef: 'component:someComponent', + auth: { + google: 'something', + }, + customResources: [ + { + group: 'someGroup', + apiVersion: 'someApiVersion', + plural: 'somePlural', + }, + ], + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(200, { + items: [ + { + clusterOne: { + pods: [ + { + metadata: { + name: 'pod1', + }, + }, + ], + }, + }, + ], + }); + }); + // eslint-disable-next-line jest/expect-expect + it('400 when missing custom resources', async () => { + await request(app) + .post('/resources/custom/query') + .send({ + entityRef: 'component:someComponent', + auth: { + google: 'something', + }, + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(400, { + error: { + name: 'InputError', + message: 'customResources is a required field', + }, + request: { + method: 'POST', + url: '/resources/custom/query', + }, + response: { statusCode: 400 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('400 when custom resources not array', async () => { + await request(app) + .post('/resources/custom/query') + .send({ + entityRef: 'component:someComponent', + auth: { + google: 'something', + }, + customResources: 'somestring', + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(400, { + error: { + name: 'InputError', + message: 'customResources must be an array', + }, + request: { + method: 'POST', + url: '/resources/custom/query', + }, + response: { statusCode: 400 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('400 when custom resources empty', async () => { + await request(app) + .post('/resources/custom/query') + .send({ + entityRef: 'component:someComponent', + auth: { + google: 'something', + }, + customResources: [], + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(400, { + error: { + name: 'InputError', + message: 'at least 1 customResource is required', + }, + request: { + method: 'POST', + url: '/resources/custom/query', + }, + response: { statusCode: 400 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('400 when missing entity ref', async () => { + await request(app) + .post('/resources/custom/query') + .send({ + auth: { + google: 'something', + }, + customResources: [ + { + group: 'someGroup', + apiVersion: 'someApiVersion', + plural: 'somePlural', + }, + ], + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(400, { + error: { name: 'InputError', message: 'entity is a required field' }, + request: { + method: 'POST', + url: '/resources/custom/query', + }, + response: { statusCode: 400 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('400 when bad entity ref', async () => { + await request(app) + .post('/resources/custom/query') + .send({ + entityRef: 'ffff', + auth: { + google: 'something', + }, + customResources: [ + { + group: 'someGroup', + apiVersion: 'someApiVersion', + plural: 'somePlural', + }, + ], + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(400, { + error: { + name: 'InputError', + message: + 'Invalid entity ref, Error: Entity reference "ffff" had missing or empty kind (e.g. did not start with "component:" or similar)', + }, + request: { + method: 'POST', + url: '/resources/custom/query', + }, + response: { statusCode: 400 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('400 when no entity in catalog', async () => { + await request(app) + .post('/resources/custom/query') + .send({ + entityRef: 'noentity:noentity', + auth: { + google: 'something', + }, + customResources: [ + { + group: 'someGroup', + apiVersion: 'someApiVersion', + plural: 'somePlural', + }, + ], + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(400, { + error: { + name: 'InputError', + message: 'Entity ref missing, noentity:default/noentity', + }, + request: { + method: 'POST', + url: '/resources/custom/query', + }, + response: { statusCode: 400 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('401 when no Auth header', async () => { + await request(app) + .post('/resources/custom/query') + .send({ + entityRef: 'component:someComponent', + auth: { + google: 'something', + }, + customResources: [ + { + group: 'someGroup', + apiVersion: 'someApiVersion', + plural: 'somePlural', + }, + ], + }) + .set('Content-Type', 'application/json') + .expect(401, { + error: { name: 'AuthenticationError', message: 'No Backstage token' }, + request: { + method: 'POST', + url: '/resources/custom/query', + }, + response: { statusCode: 401 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('401 when invalid Auth header', async () => { + await request(app) + .post('/resources/custom/query') + .send({ + entityRef: 'component:someComponent', + auth: { + google: 'something', + }, + customResources: [ + { + group: 'someGroup', + apiVersion: 'someApiVersion', + plural: 'somePlural', + }, + ], + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'ffffff') + .expect(401, { + error: { name: 'AuthenticationError', message: 'No Backstage token' }, + request: { + method: 'POST', + url: '/resources/custom/query', + }, + response: { statusCode: 401 }, + }); + }); + // eslint-disable-next-line jest/expect-expect + it('500 handle gracefully', async () => { + await request(app) + .post('/resources/custom/query') + .send({ + entityRef: 'inject500:inject500/inject500', + auth: { + google: 'something', + }, + customResources: [ + { + group: 'someGroup', + apiVersion: 'someApiVersion', + plural: 'somePlural', + }, + ], + }) + .set('Content-Type', 'application/json') + .set('Authorization', 'Bearer Zm9vYmFy') + .expect(500, { + error: { + name: 'Error', + message: 'some internal error', + level: 'error', + service: 'backstage', + }, + request: { method: 'POST', url: '/resources/custom/query' }, + response: { statusCode: 500 }, + }); + }); + }); +}); diff --git a/plugins/kubernetes-backend/src/routes/resourcesRoutes.ts b/plugins/kubernetes-backend/src/routes/resourcesRoutes.ts new file mode 100644 index 0000000000..2b2a48f707 --- /dev/null +++ b/plugins/kubernetes-backend/src/routes/resourcesRoutes.ts @@ -0,0 +1,94 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + CompoundEntityRef, + parseEntityRef, + stringifyEntityRef, +} from '@backstage/catalog-model'; +import { CatalogApi } from '@backstage/catalog-client'; +import { InputError, AuthenticationError } from '@backstage/errors'; +import express, { Request } from 'express'; +import { KubernetesObjectsProvider } from '../types/types'; +import { getBearerTokenFromAuthorizationHeader } from '@backstage/plugin-auth-node'; + +export const addResourceRoutesToRouter = ( + router: express.Router, + catalogApi: CatalogApi, + objectsProvider: KubernetesObjectsProvider, +) => { + const getEntityByReq = async (req: Request) => { + const rawEntityRef = req.body.entityRef; + if (rawEntityRef && typeof rawEntityRef !== 'string') { + throw new InputError(`entity query must be a string`); + } else if (!rawEntityRef) { + throw new InputError('entity is a required field'); + } + let entityRef: CompoundEntityRef | undefined = undefined; + + try { + entityRef = parseEntityRef(rawEntityRef); + } catch (error) { + throw new InputError(`Invalid entity ref, ${error}`); + } + + const token = getBearerTokenFromAuthorizationHeader( + req.headers.authorization, + ); + + if (!token) { + throw new AuthenticationError('No Backstage token'); + } + + const entity = await catalogApi.getEntityByRef(entityRef, { + token: token, + }); + + if (!entity) { + throw new InputError( + `Entity ref missing, ${stringifyEntityRef(entityRef)}`, + ); + } + return entity; + }; + + router.post('/resources/workloads/query', async (req, res) => { + const entity = await getEntityByReq(req); + const response = await objectsProvider.getKubernetesObjectsByEntity({ + entity, + auth: req.body.auth, + }); + res.json(response); + }); + + router.post('/resources/custom/query', async (req, res) => { + const entity = await getEntityByReq(req); + + if (!req.body.customResources) { + throw new InputError('customResources is a required field'); + } else if (!Array.isArray(req.body.customResources)) { + throw new InputError('customResources must be an array'); + } else if (req.body.customResources.length === 0) { + throw new InputError('at least 1 customResource is required'); + } + + const response = await objectsProvider.getCustomResourcesByEntity({ + entity, + customResources: req.body.customResources, + auth: req.body.auth, + }); + res.json(response); + }); +}; diff --git a/plugins/kubernetes-backend/src/service/KubernetesBuilder.test.ts b/plugins/kubernetes-backend/src/service/KubernetesBuilder.test.ts index ecaf9f3095..309141ec0e 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesBuilder.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesBuilder.test.ts @@ -31,11 +31,13 @@ import { import { KubernetesBuilder } from './KubernetesBuilder'; import { KubernetesFanOutHandler } from './KubernetesFanOutHandler'; import { PodStatus } from '@kubernetes/client-node'; +import { CatalogApi } from '@backstage/catalog-client'; describe('KubernetesBuilder', () => { let app: express.Express; let kubernetesFanOutHandler: jest.Mocked; let config: Config; + let catalogApi: CatalogApi; beforeAll(async () => { const logger = getVoidLogger(); @@ -69,7 +71,13 @@ describe('KubernetesBuilder', () => { getKubernetesObjectsByEntity: jest.fn(), } as any; - const { router } = await KubernetesBuilder.createBuilder({ config, logger }) + catalogApi = {} as CatalogApi; + + const { router } = await KubernetesBuilder.createBuilder({ + config, + logger, + catalogApi, + }) .setObjectsProvider(kubernetesFanOutHandler) .setClusterSupplier(clusterSupplier) .build(); @@ -240,6 +248,7 @@ describe('KubernetesBuilder', () => { const { router } = await KubernetesBuilder.createBuilder({ logger, config, + catalogApi, }) .setClusterSupplier(clusterSupplier) .setServiceLocator(serviceLocator) diff --git a/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts b/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts index 1b058752c9..59bac4f30a 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesBuilder.ts @@ -37,6 +37,8 @@ import { KubernetesFanOutHandler, } from './KubernetesFanOutHandler'; import { KubernetesClientBasedFetcher } from './KubernetesFetcher'; +import { addResourceRoutesToRouter } from '../routes/resourcesRoutes'; +import { CatalogApi } from '@backstage/catalog-client'; /** * @@ -45,6 +47,7 @@ import { KubernetesClientBasedFetcher } from './KubernetesFetcher'; export interface KubernetesEnvironment { logger: Logger; config: Config; + catalogApi: CatalogApi; } /** @@ -119,7 +122,11 @@ export class KubernetesBuilder { objectTypesToFetch: this.getObjectTypesToFetch(), }); - const router = this.buildRouter(objectsProvider, clusterSupplier); + const router = this.buildRouter( + objectsProvider, + clusterSupplier, + this.env.catalogApi, + ); return { clusterSupplier, @@ -226,11 +233,13 @@ export class KubernetesBuilder { protected buildRouter( objectsProvider: KubernetesObjectsProvider, clusterSupplier: KubernetesClustersSupplier, + catalogApi: CatalogApi, ): express.Router { const logger = this.env.logger; const router = Router(); router.use(express.json()); + // @deprecated router.post('/services/:serviceId', async (req, res) => { const serviceId = req.params.serviceId; const requestBody: ObjectsByEntityRequest = req.body; @@ -259,6 +268,9 @@ export class KubernetesBuilder { })), }); }); + + addResourceRoutesToRouter(router, catalogApi, objectsProvider); + return router; } diff --git a/plugins/kubernetes-backend/src/service/router.ts b/plugins/kubernetes-backend/src/service/router.ts index 7bd7cca8a9..6c26175058 100644 --- a/plugins/kubernetes-backend/src/service/router.ts +++ b/plugins/kubernetes-backend/src/service/router.ts @@ -19,6 +19,7 @@ import { Logger } from 'winston'; import { KubernetesClustersSupplier } from '../types/types'; import express from 'express'; import { KubernetesBuilder } from './KubernetesBuilder'; +import { CatalogApi } from '@backstage/catalog-client'; /** * @@ -27,6 +28,7 @@ import { KubernetesBuilder } from './KubernetesBuilder'; export interface RouterOptions { logger: Logger; config: Config; + catalogApi: CatalogApi; clusterSupplier?: KubernetesClustersSupplier; } diff --git a/plugins/kubernetes-backend/src/service/standaloneApplication.ts b/plugins/kubernetes-backend/src/service/standaloneApplication.ts index 29262744e5..c12d7be2bb 100644 --- a/plugins/kubernetes-backend/src/service/standaloneApplication.ts +++ b/plugins/kubernetes-backend/src/service/standaloneApplication.ts @@ -18,6 +18,7 @@ import { errorHandler, notFoundHandler, requestLoggingHandler, + SingleHostDiscovery, } from '@backstage/backend-common'; import compression from 'compression'; import cors from 'cors'; @@ -26,6 +27,7 @@ import helmet from 'helmet'; import { Logger } from 'winston'; import { createRouter } from './router'; import { ConfigReader } from '@backstage/config'; +import { CatalogClient } from '@backstage/catalog-client'; export interface ApplicationOptions { enableCors: boolean; @@ -39,6 +41,10 @@ export async function createStandaloneApplication( const config = new ConfigReader({}); const app = express(); + const catalogApi = new CatalogClient({ + discoveryApi: SingleHostDiscovery.fromConfig(config), + }); + app.use(helmet()); if (enableCors) { app.use(cors()); @@ -46,7 +52,7 @@ export async function createStandaloneApplication( app.use(compression()); app.use(express.json()); app.use(requestLoggingHandler()); - app.use('/', await createRouter({ logger, config })); + app.use('/', await createRouter({ logger, config, catalogApi })); app.use(notFoundHandler()); app.use(errorHandler()); diff --git a/plugins/kubernetes-common/CHANGELOG.md b/plugins/kubernetes-common/CHANGELOG.md index 560f700be0..dd1feff82e 100644 --- a/plugins/kubernetes-common/CHANGELOG.md +++ b/plugins/kubernetes-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-kubernetes-common +## 0.4.0-next.1 + +### Patch Changes + +- 60e5f9fe68: Fixed the lack of `limitranges` as part of the Default Objects to fetch from the kubernetes api +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + ## 0.4.0-next.0 ### Minor Changes diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index e109139f74..09a6d7a32e 100644 --- a/plugins/kubernetes-common/package.json +++ b/plugins/kubernetes-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-common", "description": "Common functionalities for kubernetes, to be shared between kubernetes and kubernetes-backend plugin", - "version": "0.4.0-next.0", + "version": "0.4.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -39,10 +39,11 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0-next.1", - "@kubernetes/client-node": "^0.16.0" + "@backstage/catalog-model": "^1.1.0-next.2", + "@kubernetes/client-node": "^0.17.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1" + "@backstage/cli": "^0.18.0-next.2" }, "jest": { "roots": [ diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index 4312cf5776..dc44dffad4 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-kubernetes +## 0.6.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/plugin-kubernetes-common@0.4.0-next.1 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.6.7-next.1 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index 35e685382d..f2437dec45 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes", "description": "A Backstage plugin that integrates towards Kubernetes", - "version": "0.6.7-next.1", + "version": "0.6.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,14 +34,14 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/plugin-kubernetes-common": "^0.4.0-next.0", - "@backstage/theme": "^0.2.16-next.0", - "@kubernetes/client-node": "^0.16.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/plugin-kubernetes-common": "^0.4.0-next.1", + "@backstage/theme": "^0.2.16-next.1", + "@kubernetes/client-node": "^0.17.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -57,9 +57,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -68,7 +68,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/kubernetes/src/setupTests.ts b/plugins/kubernetes/src/setupTests.ts index 28a35d2b06..a373310a1a 100644 --- a/plugins/kubernetes/src/setupTests.ts +++ b/plugins/kubernetes/src/setupTests.ts @@ -14,3 +14,14 @@ * limitations under the License. */ import '@testing-library/jest-dom'; +// eslint-disable-next-line no-restricted-imports +import { TextDecoder, TextEncoder } from 'util'; + +// These are missing from jest-node, so not available on global. +Object.defineProperty(global, 'TextEncoder', { + value: TextEncoder, +}); + +Object.defineProperty(global, 'TextDecoder', { + value: TextDecoder, +}); diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md index 837bf0c598..ded56ce2da 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-lighthouse +## 0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.3.7-next.1 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 8a1f484a35..ea95636060 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-lighthouse", "description": "A Backstage plugin that integrates towards Lighthouse", - "version": "0.3.7-next.1", + "version": "0.3.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,12 +35,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -51,9 +51,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -63,7 +63,7 @@ "@types/node": "^16.11.26", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md index ea33fd1444..ce7fb18e5c 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-newrelic-dashboard +## 0.1.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.15-next.1 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index b488db090c..a0a21fcf9c 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-newrelic-dashboard", - "version": "0.1.15-next.1", + "version": "0.1.15-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,19 +23,19 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/cli": "^0.18.0-next.2", + "@backstage/dev-utils": "^1.0.4-next.2", "@testing-library/jest-dom": "^5.10.1", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5" diff --git a/plugins/newrelic/CHANGELOG.md b/plugins/newrelic/CHANGELOG.md index 6134eee42e..f3ff482fd8 100644 --- a/plugins/newrelic/CHANGELOG.md +++ b/plugins/newrelic/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-newrelic +## 0.3.25-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.3.25-next.1 ### Patch Changes diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index bb5a4d14ef..61b49060a4 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-newrelic", "description": "A Backstage plugin that integrates towards New Relic", - "version": "0.3.25-next.1", + "version": "0.3.25-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,9 +35,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -47,9 +47,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -57,7 +57,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index 5cbc78f41c..f21231dc81 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-org +## 0.5.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.5.7-next.1 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index f6927f7a28..9bc58b26bf 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-org", "description": "A Backstage plugin that helps you create entity pages for your organization", - "version": "0.5.7-next.1", + "version": "0.5.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,11 +29,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -49,9 +49,9 @@ }, "devDependencies": { "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -59,7 +59,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/pagerduty/CHANGELOG.md b/plugins/pagerduty/CHANGELOG.md index 43254df1ad..929a4a3ed8 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-pagerduty +## 0.5.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.5.0-next.1 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 63e6d0b951..b638bbd573 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-pagerduty", "description": "A Backstage plugin that integrates towards PagerDuty", - "version": "0.5.0-next.1", + "version": "0.5.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,12 +34,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -63,7 +63,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index cb08e57f4d..03be1e44ec 100644 --- a/plugins/periskop-backend/package.json +++ b/plugins/periskop-backend/package.json @@ -37,7 +37,7 @@ "devDependencies": { "@backstage/cli": "^0.18.0-next.1", "@types/supertest": "^2.0.8", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.6" }, "files": [ diff --git a/plugins/periskop/CHANGELOG.md b/plugins/periskop/CHANGELOG.md index 0a167ae1be..db6854741f 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-periskop +## 0.1.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.5-next.1 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 5918b0c45b..a9c538d957 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.5-next.1", + "version": "0.1.5-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,12 +25,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -42,9 +42,9 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -53,7 +53,7 @@ "@types/luxon": "^2.0.4", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index cfc0ff899a..4df852d255 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -43,7 +43,7 @@ "@types/lodash": "^4.14.151", "@types/supertest": "^2.0.8", "supertest": "^6.1.6", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/permission-common/package.json b/plugins/permission-common/package.json index 4cf00f71bf..b811b63438 100644 --- a/plugins/permission-common/package.json +++ b/plugins/permission-common/package.json @@ -50,6 +50,6 @@ "devDependencies": { "@backstage/cli": "^0.18.0-next.1", "@types/jest": "^26.0.7", - "msw": "^0.42.0" + "msw": "^0.43.0" } } diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index f8f077cdc0..a0bc4585b0 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/package.json @@ -46,7 +46,7 @@ "devDependencies": { "@backstage/cli": "^0.18.0-next.1", "@types/supertest": "^2.0.8", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.3" }, "files": [ diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 718e0ccff5..8f8be07621 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -53,7 +53,7 @@ "@backstage/backend-test-utils": "^0.1.26-next.1", "@backstage/cli": "^0.18.0-next.1", "@types/supertest": "^2.0.8", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.3" }, "files": [ diff --git a/plugins/rollbar/CHANGELOG.md b/plugins/rollbar/CHANGELOG.md index 44baedce85..367b7a07f3 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-rollbar +## 0.4.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.4.7-next.1 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 9e6079c548..1ba43e05bc 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar", "description": "A Backstage plugin that integrates towards Rollbar", - "version": "0.4.7-next.1", + "version": "0.4.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,11 +35,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -65,7 +65,7 @@ "@types/node": "^16.11.26", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index 0420599cec..f953bac5cd 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -41,7 +41,7 @@ "@types/jest": "^26.0.7", "@types/command-exists": "^1.2.0", "mock-fs": "^5.1.0", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index b2ac690d5c..ed97db5617 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-scaffolder-backend +## 1.4.0-next.2 + +### Minor Changes + +- 4baf8a4ece: Update GitLab Merge Request Action to allow source branch to be deleted +- 2db07887cb: Added two new scaffolder actions: `github:repo:create` and `github:repo:push` + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/plugin-catalog-backend@1.2.1-next.2 + - @backstage/integration@1.2.2-next.2 + ## 1.4.0-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 8d302e69f6..2053f01e39 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -388,6 +388,7 @@ export function createPublishGitlabAction(options: { gitCommitMessage?: string | undefined; gitAuthorName?: string | undefined; gitAuthorEmail?: string | undefined; + setUserAsOwner?: boolean | undefined; }>; // @public diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 92adda6d37..a70e60f714 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend", "description": "The Backstage backend plugin that helps you create new things", - "version": "1.4.0-next.1", + "version": "1.4.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,13 +34,13 @@ "build:assets": "node scripts/build-nunjucks.js" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", + "@backstage/backend-common": "^0.14.1-next.2", "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/plugin-catalog-backend": "^1.2.1-next.1", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/plugin-catalog-backend": "^1.2.1-next.2", "@backstage/plugin-scaffolder-common": "^1.1.2-next.0", "@backstage/types": "^1.0.0", "@gitbeaker/core": "^35.6.0", @@ -76,8 +76,8 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.26-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/backend-test-utils": "^0.1.26-next.2", + "@backstage/cli": "^0.18.0-next.2", "@types/command-exists": "^1.2.0", "@types/fs-extra": "^9.0.1", "@types/git-url-parse": "^9.0.0", @@ -88,7 +88,7 @@ "esbuild": "^0.14.1", "jest-when": "^3.1.0", "mock-fs": "^5.1.0", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.3", "yaml": "^1.10.0" }, diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts index f427023c69..27261ecd49 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts @@ -32,6 +32,9 @@ const mockGitlabClient = { Users: { current: jest.fn(), }, + ProjectMembers: { + add: jest.fn(), + }, }; jest.mock('@gitbeaker/node', () => ({ Gitlab: class { @@ -113,6 +116,7 @@ describe('publish:gitlab', () => { }); it('should work when there is a token provided through ctx.input', async () => { + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); mockGitlabClient.Projects.create.mockResolvedValue({ http_url_to_repo: 'http://mockurl.git', @@ -135,6 +139,7 @@ describe('publish:gitlab', () => { }); it('should call the correct Gitlab APIs when the owner is an organization', async () => { + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); mockGitlabClient.Projects.create.mockResolvedValue({ http_url_to_repo: 'http://mockurl.git', @@ -168,6 +173,7 @@ describe('publish:gitlab', () => { }); it('should call initRepoAndPush with the correct values', async () => { + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); mockGitlabClient.Projects.create.mockResolvedValue({ http_url_to_repo: 'http://mockurl.git', @@ -187,6 +193,7 @@ describe('publish:gitlab', () => { }); it('should call initRepoAndPush with the correct default branch', async () => { + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); mockGitlabClient.Projects.create.mockResolvedValue({ http_url_to_repo: 'http://mockurl.git', @@ -241,6 +248,7 @@ describe('publish:gitlab', () => { config: customAuthorConfig, }); + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); mockGitlabClient.Projects.create.mockResolvedValue({ http_url_to_repo: 'http://mockurl.git', @@ -286,6 +294,7 @@ describe('publish:gitlab', () => { config: customAuthorConfig, }); + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); mockGitlabClient.Projects.create.mockResolvedValue({ http_url_to_repo: 'http://mockurl.git', @@ -305,6 +314,7 @@ describe('publish:gitlab', () => { }); it('should call output with the remoteUrl and repoContentsUrl', async () => { + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); mockGitlabClient.Projects.create.mockResolvedValue({ http_url_to_repo: 'http://mockurl.git', @@ -321,4 +331,54 @@ describe('publish:gitlab', () => { 'http://mockurl/-/blob/master', ); }); + + it('should call the correct Gitlab APIs when setUserAsOwner option is true and integration config has a token', async () => { + const customAuthorConfig = new ConfigReader({ + integrations: { + gitlab: [ + { + host: 'gitlab.com', + token: 'tokenlols', + apiBaseUrl: 'https://api.gitlab.com', + }, + ], + }, + }); + + const customAuthorIntegrations = + ScmIntegrations.fromConfig(customAuthorConfig); + const customAuthorAction = createPublishGitlabAction({ + integrations: customAuthorIntegrations, + config: customAuthorConfig, + }); + + mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); + mockGitlabClient.Projects.create.mockResolvedValue({ + id: 123456, + http_url_to_repo: 'http://mockurl.git', + }); + + await customAuthorAction.handler({ + ...mockContext, + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + token: 'token', + setUserAsOwner: true, + }, + }); + + expect(mockGitlabClient.Namespaces.show).toHaveBeenCalledWith('owner'); + expect(mockGitlabClient.Users.current).toHaveBeenCalled(); + expect(mockGitlabClient.ProjectMembers.add).toHaveBeenCalledWith( + 123456, + 12345, + 50, + ); + expect(mockGitlabClient.Projects.create).toHaveBeenCalledWith({ + namespace_id: 1234, + name: 'repo', + visibility: 'private', + }); + }); }); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts index a7c247f4d9..4fe55b77a2 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts @@ -43,6 +43,7 @@ export function createPublishGitlabAction(options: { gitCommitMessage?: string; gitAuthorName?: string; gitAuthorEmail?: string; + setUserAsOwner?: boolean; }>({ id: 'publish:gitlab', description: @@ -92,6 +93,12 @@ export function createPublishGitlabAction(options: { type: 'string', description: 'The token to use for authorization to GitLab', }, + setUserAsOwner: { + title: 'Set User As Owner', + type: 'boolean', + description: + 'Set the token user as owner of the newly created repository. Requires a token authorized to do the edit in the integration configuration for the matching host', + }, }, }, output: { @@ -116,6 +123,7 @@ export function createPublishGitlabAction(options: { gitCommitMessage = 'initial commit', gitAuthorName, gitAuthorEmail, + setUserAsOwner = false, } = ctx.input; const { owner, repo, host } = parseRepoUrl(repoUrl, integrations); @@ -149,19 +157,35 @@ export function createPublishGitlabAction(options: { id: number; }; + const { id: userId } = (await client.Users.current()) as { + id: number; + }; + if (!targetNamespace) { - const { id } = (await client.Users.current()) as { - id: number; - }; - targetNamespace = id; + targetNamespace = userId; } - const { http_url_to_repo } = await client.Projects.create({ + const { id: projectId, http_url_to_repo } = await client.Projects.create({ namespace_id: targetNamespace, name: repo, visibility: repoVisibility, }); + // When setUserAsOwner is true the input token is expected to come from an unprivileged user GitLab + // OAuth flow. In this case GitLab works in a way that allows the unprivileged user to + // create the repository, but not to push the default protected branch (e.g. master). + // In order to set the user as owner of the newly created repository we need to check that the + // GitLab integration configuration for the matching host contains a token and use + // such token to bootstrap a new privileged client. + if (setUserAsOwner && integrationConfig.config.token) { + const adminClient = new Gitlab({ + host: integrationConfig.config.baseUrl, + token: integrationConfig.config.token, + }); + + await adminClient.ProjectMembers.add(projectId, userId, 50); + } + const remoteUrl = (http_url_to_repo as string).replace(/\.git$/, ''); const repoContentsUrl = `${remoteUrl}/-/blob/${defaultBranch}`; diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index 7492ceb582..a8a606c73d 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-scaffolder +## 1.4.0-next.2 + +### Minor Changes + +- d8eb82f447: Add `allowedRepos` `ui:option` to `RepoUrlPicker` component, and move `repoName` field to own component + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- 14146703e5: Add `allowArbitraryValues` to `ui:options` in `OwnedEntityPicker`, similar to `allowArbitraryValues` in `EntityPicker` +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + ## 1.4.0-next.1 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 6087a730f4..e6223d1952 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder", "description": "The Backstage plugin that helps you create new things", - "version": "1.4.0-next.1", + "version": "1.4.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,18 +36,18 @@ }, "dependencies": { "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/integration-react": "^1.1.2-next.1", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/integration-react": "^1.1.2-next.2", "@backstage/plugin-catalog-common": "^1.0.4-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@backstage/plugin-permission-react": "^0.4.3-next.0", "@backstage/plugin-scaffolder-common": "^1.1.2-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@backstage/types": "^1.0.0", "@codemirror/language": "^6.0.0", "@codemirror/legacy-modes": "^6.1.0", @@ -55,7 +55,7 @@ "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", - "@react-hookz/web": "^13.0.0", + "@react-hookz/web": "^15.0.0", "@rjsf/core": "^3.2.1", "@rjsf/material-ui": "^3.2.1", "@types/json-schema": "^7.0.9", @@ -80,10 +80,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", - "@backstage/plugin-catalog": "^1.3.1-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", + "@backstage/plugin-catalog": "^1.4.0-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -94,7 +94,7 @@ "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", "event-source-polyfill": "1.0.25", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.test.ts b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.test.ts index cc88f456b6..b59c67c69c 100644 --- a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.test.ts +++ b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.test.ts @@ -793,6 +793,29 @@ describe('ElasticSearchSearchEngine', () => { elasticSearchQuerySpy.mockClear(); }); + + it('should throws missing index error', async () => { + jest.spyOn(clientWrapper, 'search').mockRejectedValue({ + meta: { + body: { + error: { + type: 'index_not_found_exception', + }, + }, + }, + }); + + await expect( + async () => + await testSearchEngine.query({ + term: 'testTerm', + types: ['unknown'], + filters: {}, + }), + ).rejects.toThrow( + 'Missing index for unknown__search. This means there are no documents to search through.', + ); + }); }); describe('indexer', () => { diff --git a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts index 4fa0d4e110..42c99dfe61 100644 --- a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts +++ b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts @@ -23,6 +23,7 @@ import { SearchEngine, SearchQuery, } from '@backstage/plugin-search-common'; +import { MissingIndexError } from '@backstage/plugin-search-backend-node'; import esb from 'elastic-builder'; import { isEmpty, isNaN as nan, isNumber } from 'lodash'; import { v4 as uuid } from 'uuid'; @@ -329,10 +330,16 @@ export class ElasticSearchSearchEngine implements SearchEngine { nextPageCursor, previousPageCursor, }; - } catch (e) { + } catch (error) { + if (error.meta?.body?.error?.type === 'index_not_found_exception') { + throw new MissingIndexError( + `Missing index for ${queryIndices}. This means there are no documents to search through.`, + error, + ); + } this.logger.error( `Failed to query documents for indices ${queryIndices}`, - e, + error, ); return Promise.reject({ results: [] }); } diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md index 370339d9af..fdbf4d01e4 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-backend-module-pg +## 0.3.5-next.2 + +### Patch Changes + +- 423e3d8e95: **DEPRECATED**: `PgSearchEngine` static `from` has been deprecated and will be removed in a future release. Use static `fromConfig` method to instantiate. + + Added support for highlighting matched terms in search result data + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + ## 0.3.5-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index 16367b9ef1..9e58859449 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-pg", "description": "A module for the search backend that implements search using PostgreSQL", - "version": "0.3.5-next.1", + "version": "0.3.5-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,7 +23,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", + "@backstage/backend-common": "^0.14.1-next.2", "@backstage/config": "^1.0.1", "@backstage/plugin-search-backend-node": "^0.6.3-next.1", "@backstage/plugin-search-common": "^0.3.6-next.0", @@ -32,8 +32,8 @@ "uuid": "^8.3.2" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.26-next.1", - "@backstage/cli": "^0.18.0-next.1" + "@backstage/backend-test-utils": "^0.1.26-next.2", + "@backstage/cli": "^0.18.0-next.2" }, "files": [ "dist", diff --git a/plugins/search-backend-node/api-report.md b/plugins/search-backend-node/api-report.md index 7649bc5d0f..ff9480c19d 100644 --- a/plugins/search-backend-node/api-report.md +++ b/plugins/search-backend-node/api-report.md @@ -113,6 +113,12 @@ export class LunrSearchEngineIndexer extends BatchSearchEngineIndexer { initialize(): Promise; } +// @public +export class MissingIndexError extends Error { + constructor(message?: string, cause?: Error | unknown); + readonly cause?: Error | undefined; +} + // @public export class NewlineDelimitedJsonCollatorFactory implements DocumentCollatorFactory diff --git a/plugins/search-backend-node/src/engines/LunrSearchEngine.test.ts b/plugins/search-backend-node/src/engines/LunrSearchEngine.test.ts index 098d1e8b16..1f69460448 100644 --- a/plugins/search-backend-node/src/engines/LunrSearchEngine.test.ts +++ b/plugins/search-backend-node/src/engines/LunrSearchEngine.test.ts @@ -949,6 +949,19 @@ describe('LunrSearchEngine', () => { previousPageCursor: undefined, }); }); + + it('should throws missing index error', async () => { + await expect( + async () => + await testLunrSearchEngine.query({ + term: 'testTerm', + types: ['unknown'], + filters: {}, + }), + ).rejects.toThrow( + "Missing index for unknown. This could be because the index hasn't been created yet or there was a problem during index creation.", + ); + }); }); it('should return previous page cursor if on another page', async () => { diff --git a/plugins/search-backend-node/src/engines/LunrSearchEngine.ts b/plugins/search-backend-node/src/engines/LunrSearchEngine.ts index 03cb421653..ec8550d721 100644 --- a/plugins/search-backend-node/src/engines/LunrSearchEngine.ts +++ b/plugins/search-backend-node/src/engines/LunrSearchEngine.ts @@ -21,6 +21,7 @@ import { QueryTranslator, SearchEngine, } from '@backstage/plugin-search-common'; +import { MissingIndexError } from '../errors'; import lunr from 'lunr'; import { v4 as uuid } from 'uuid'; import { Logger } from 'winston'; @@ -163,30 +164,38 @@ export class LunrSearchEngine implements SearchEngine { const results: LunrResultEnvelope[] = []; + const indexKeys = Object.keys(this.lunrIndices).filter( + type => !documentTypes || documentTypes.includes(type), + ); + + if (documentTypes?.length && !indexKeys.length) { + throw new MissingIndexError( + `Missing index for ${documentTypes?.toString()}. This could be because the index hasn't been created yet or there was a problem during index creation.`, + ); + } + // Iterate over the filtered list of this.lunrIndex keys. - Object.keys(this.lunrIndices) - .filter(type => !documentTypes || documentTypes.includes(type)) - .forEach(type => { - try { - results.push( - ...this.lunrIndices[type].query(lunrQueryBuilder).map(result => { - return { - result: result, - type: type, - }; - }), - ); - } catch (err) { - // if a field does not exist on a index, we can see that as a no-match - if ( - err instanceof Error && - err.message.startsWith('unrecognised field') - ) { - return; - } - throw err; + indexKeys.forEach(type => { + try { + results.push( + ...this.lunrIndices[type].query(lunrQueryBuilder).map(result => { + return { + result: result, + type: type, + }; + }), + ); + } catch (err) { + // if a field does not exist on a index, we can see that as a no-match + if ( + err instanceof Error && + err.message.startsWith('unrecognised field') + ) { + return; } - }); + throw err; + } + }); // Sort results. results.sort((doc1, doc2) => { diff --git a/plugins/search-backend-node/src/errors.ts b/plugins/search-backend-node/src/errors.ts new file mode 100644 index 0000000000..00b168d460 --- /dev/null +++ b/plugins/search-backend-node/src/errors.ts @@ -0,0 +1,37 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { isError } from '@backstage/errors'; + +/** + * Failed to query documents for index that does not exist. + * @public + */ +export class MissingIndexError extends Error { + /** + * An inner error that caused this error to be thrown, if any. + */ + readonly cause?: Error | undefined; + + constructor(message?: string, cause?: Error | unknown) { + super(message); + + Error.captureStackTrace?.(this, this.constructor); + + this.name = this.constructor.name; + this.cause = isError(cause) ? cause : undefined; + } +} diff --git a/plugins/search-backend-node/src/index.ts b/plugins/search-backend-node/src/index.ts index d342bb9259..854881829c 100644 --- a/plugins/search-backend-node/src/index.ts +++ b/plugins/search-backend-node/src/index.ts @@ -34,6 +34,7 @@ export type { RegisterCollatorParameters, RegisterDecoratorParameters, } from './types'; +export * from './errors'; export * from './indexing'; export * from './test-utils'; diff --git a/plugins/search-backend/src/service/router.ts b/plugins/search-backend/src/service/router.ts index f54c2d388f..e4ac233406 100644 --- a/plugins/search-backend/src/service/router.ts +++ b/plugins/search-backend/src/service/router.ts @@ -19,7 +19,7 @@ import Router from 'express-promise-router'; import { Logger } from 'winston'; import { z } from 'zod'; import { errorHandler } from '@backstage/backend-common'; -import { InputError } from '@backstage/errors'; +import { ErrorResponseBody, InputError } from '@backstage/errors'; import { Config } from '@backstage/config'; import { JsonObject, JsonValue } from '@backstage/types'; import { getBearerTokenFromAuthorizationHeader } from '@backstage/plugin-auth-node'; @@ -129,7 +129,10 @@ export async function createRouter( const router = Router(); router.get( '/query', - async (req: express.Request, res: express.Response) => { + async ( + req: express.Request, + res: express.Response, + ) => { const parseResult = requestSchema.safeParse(req.query); if (!parseResult.success) { @@ -154,9 +157,14 @@ export async function createRouter( const resultSet = await engine?.query(query, { token }); res.send(filterResultSet(toSearchResults(resultSet))); - } catch (err) { + } catch (error) { + if (error.name === 'MissingIndexError') { + // re-throw and let the default error handler middleware captures it and serializes it with the right response code on the standard form + throw error; + } + throw new Error( - `There was a problem performing the search query. ${err}`, + `There was a problem performing the search query. ${error}`, ); } }, diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md index 6ae54e736a..685aa56a86 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search-react +## 0.2.2-next.2 + +### Patch Changes + +- 60408ca9d4: Fix search pagination to reset page cursor also when a term is cleared. +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.2.2-next.1 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index 2cc8782758..3e3b362919 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-react", - "version": "0.2.2-next.1", + "version": "0.2.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,10 +32,10 @@ }, "dependencies": { "@backstage/plugin-search-common": "^0.3.6-next.0", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/version-bridge": "^1.0.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md index 0c7f749f82..707ba1cab7 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-search +## 0.9.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.9.1-next.1 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index e0fb5447f7..ed700e643f 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search", "description": "The Backstage plugin that provides your backstage app with search", - "version": "0.9.1-next.1", + "version": "0.9.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,15 +33,15 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@backstage/plugin-search-common": "^0.3.6-next.0", - "@backstage/plugin-search-react": "^0.2.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-search-react": "^0.2.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@backstage/types": "^1.0.0", "@backstage/version-bridge": "^1.0.1", "@material-ui/core": "^4.12.2", @@ -57,9 +57,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -68,7 +68,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/sentry/CHANGELOG.md b/plugins/sentry/CHANGELOG.md index eed3d21aa7..28903311c5 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-sentry +## 0.3.45-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.3.45-next.1 ### Patch Changes diff --git a/plugins/sentry/api-report.md b/plugins/sentry/api-report.md index 043fa7a1fd..625db39959 100644 --- a/plugins/sentry/api-report.md +++ b/plugins/sentry/api-report.md @@ -53,9 +53,11 @@ export class ProductionSentryApi implements SentryApi { ); // (undocumented) fetchIssues( - project: string, - statsFor: string, - query?: string, + entity: Entity, + options: { + statsFor: string; + query?: string; + }, ): Promise; } @@ -70,9 +72,11 @@ export const Router: ({ entity }: { entity: Entity }) => JSX.Element; export interface SentryApi { // (undocumented) fetchIssues( - project: string, - statsFor: string, - query?: string, + entity: Entity, + options: { + statsFor: string; + query?: string; + }, ): Promise; } diff --git a/plugins/sentry/dev/index.tsx b/plugins/sentry/dev/index.tsx index 346cb7563a..667f965354 100644 --- a/plugins/sentry/dev/index.tsx +++ b/plugins/sentry/dev/index.tsx @@ -26,7 +26,10 @@ import { SentryApi, sentryApiRef, } from '../src'; -import { SENTRY_PROJECT_SLUG_ANNOTATION } from '../src/components/useProjectSlug'; +import { + SENTRY_PROJECT_SLUG_ANNOTATION, + getProjectSlug, +} from '../src/api/annotations'; import { Content, Header, Page } from '@backstage/core-components'; const entity = (name?: string) => @@ -47,8 +50,8 @@ createDevApp() deps: {}, factory: () => ({ - fetchIssues: async (project: string) => { - switch (project) { + fetchIssues: async (e: Entity) => { + switch (getProjectSlug(e)) { case 'error': throw new Error('Error!'); diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index f40a8d8178..7b913fcefe 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sentry", "description": "A Backstage plugin that integrates towards Sentry", - "version": "0.3.45-next.1", + "version": "0.3.45-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,11 +35,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-table/core": "^3.1.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,9 +53,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -65,7 +65,7 @@ "@types/node": "^16.11.26", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/sentry/src/api/annotations.test.ts b/plugins/sentry/src/api/annotations.test.ts new file mode 100644 index 0000000000..633966dc10 --- /dev/null +++ b/plugins/sentry/src/api/annotations.test.ts @@ -0,0 +1,59 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Entity } from '@backstage/catalog-model'; +import { + getOrganization, + getProjectSlug, + SENTRY_PROJECT_SLUG_ANNOTATION, +} from './annotations'; + +const entity = (name?: string) => + ({ + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + annotations: { + [SENTRY_PROJECT_SLUG_ANNOTATION]: name, + }, + name: 'something', + }, + } as Entity); + +describe('sentry annotations', () => { + it('getOrganization should works', () => { + const data = [ + [entity('orgs/some'), 'orgs'], + [entity('spotify/some'), 'spotify'], + [entity('slug'), ''], + ]; + + data.map(([input, expected]) => + expect(getOrganization(input as Entity)).toBe(expected), + ); + }); + it('getProjectSlug should works', () => { + const data = [ + [entity('orgs/some'), 'some'], + [entity('spotify/some'), 'some'], + [entity('slug'), 'slug'], + [entity(''), ''], + ]; + + data.map(([input, expected]) => + expect(getProjectSlug(input as Entity)).toBe(expected), + ); + }); +}); diff --git a/plugins/sentry/src/api/annotations.ts b/plugins/sentry/src/api/annotations.ts new file mode 100644 index 0000000000..169dc59ca0 --- /dev/null +++ b/plugins/sentry/src/api/annotations.ts @@ -0,0 +1,36 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Entity } from '@backstage/catalog-model'; + +export const SENTRY_PROJECT_SLUG_ANNOTATION = 'sentry.io/project-slug'; + +// The value can be the format of `[organization]/[project-slug]` or just `[project-slug] +const parseAnnotation = (entity: Entity) => { + return (entity?.metadata.annotations?.[SENTRY_PROJECT_SLUG_ANNOTATION] ?? '') + .split('/') + .reverse(); +}; + +export const getProjectSlug = (entity: Entity) => { + const [projectSlug, _] = parseAnnotation(entity); + return projectSlug ?? ''; +}; + +export const getOrganization = (entity: Entity) => { + const [_, organization] = parseAnnotation(entity); + return organization ?? ''; +}; diff --git a/plugins/sentry/src/api/production-api.ts b/plugins/sentry/src/api/production-api.ts index 5062f67380..da77f8a47d 100644 --- a/plugins/sentry/src/api/production-api.ts +++ b/plugins/sentry/src/api/production-api.ts @@ -17,6 +17,8 @@ import { SentryIssue } from './sentry-issue'; import { SentryApi } from './sentry-api'; import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; +import { Entity } from '@backstage/catalog-model'; +import { getProjectSlug, getOrganization } from './annotations'; export class ProductionSentryApi implements SentryApi { constructor( @@ -26,22 +28,29 @@ export class ProductionSentryApi implements SentryApi { ) {} async fetchIssues( - project: string, - statsFor: string, - query?: string, + entity: Entity, + options: { + statsFor: string; + query?: string; + }, ): Promise { + const { query, statsFor } = options; + + const project = getProjectSlug(entity); + const organization = getOrganization(entity) || this.organization; + if (!project) { return []; } const apiUrl = `${await this.discoveryApi.getBaseUrl('proxy')}/sentry/api`; - const options = await this.authOptions(); + const authOpts = await this.authOptions(); const queryPart = query ? `&query=${query}` : ''; const response = await fetch( - `${apiUrl}/0/projects/${this.organization}/${project}/issues/?statsPeriod=${statsFor}${queryPart}`, - options, + `${apiUrl}/0/projects/${organization}/${project}/issues/?statsPeriod=${statsFor}${queryPart}`, + authOpts, ); if (response.status >= 400 && response.status < 600) { diff --git a/plugins/sentry/src/api/sentry-api.ts b/plugins/sentry/src/api/sentry-api.ts index 0c5b709508..507803804d 100644 --- a/plugins/sentry/src/api/sentry-api.ts +++ b/plugins/sentry/src/api/sentry-api.ts @@ -16,6 +16,7 @@ import { SentryIssue } from './sentry-issue'; import { createApiRef } from '@backstage/core-plugin-api'; +import { Entity } from '@backstage/catalog-model'; export const sentryApiRef = createApiRef({ id: 'plugin.sentry.service', @@ -23,8 +24,10 @@ export const sentryApiRef = createApiRef({ export interface SentryApi { fetchIssues( - project: string, - statsFor: string, - query?: string, + entity: Entity, + options: { + statsFor: string; + query?: string; + }, ): Promise; } diff --git a/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx b/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx index d9e481b067..089ba0f1d6 100644 --- a/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx +++ b/plugins/sentry/src/components/SentryIssuesWidget/SentryIssuesWidget.tsx @@ -19,10 +19,7 @@ import React, { useEffect } from 'react'; import useAsync from 'react-use/lib/useAsync'; import { sentryApiRef } from '../../api'; import SentryIssuesTable from '../SentryIssuesTable/SentryIssuesTable'; -import { - SENTRY_PROJECT_SLUG_ANNOTATION, - useProjectSlug, -} from '../useProjectSlug'; +import { SENTRY_PROJECT_SLUG_ANNOTATION, useProjectSlug } from '../hooks'; import { EmptyState, @@ -54,7 +51,7 @@ export const SentryIssuesWidget = ({ const projectId = useProjectSlug(entity); const { loading, value, error } = useAsync( - () => sentryApi.fetchIssues(projectId, statsFor, query), + () => sentryApi.fetchIssues(entity, { statsFor, query }), [sentryApi, statsFor, projectId, query], ); diff --git a/plugins/sentry/src/components/useProjectSlug.ts b/plugins/sentry/src/components/hooks.ts similarity index 70% rename from plugins/sentry/src/components/useProjectSlug.ts rename to plugins/sentry/src/components/hooks.ts index 0796e9e8df..0f1cb08526 100644 --- a/plugins/sentry/src/components/useProjectSlug.ts +++ b/plugins/sentry/src/components/hooks.ts @@ -14,10 +14,12 @@ * limitations under the License. */ -import { Entity } from '@backstage/catalog-model'; +import { + getProjectSlug, + getOrganization, + SENTRY_PROJECT_SLUG_ANNOTATION, +} from '../api/annotations'; -export const SENTRY_PROJECT_SLUG_ANNOTATION = 'sentry.io/project-slug'; - -export const useProjectSlug = (entity: Entity) => { - return entity?.metadata.annotations?.[SENTRY_PROJECT_SLUG_ANNOTATION] ?? ''; -}; +export const useProjectSlug = getProjectSlug; +export const useOrganization = getOrganization; +export { SENTRY_PROJECT_SLUG_ANNOTATION }; diff --git a/plugins/sentry/src/components/isSentryAvailable.ts b/plugins/sentry/src/components/isSentryAvailable.ts index 1a7d26f97c..a0803f6b45 100644 --- a/plugins/sentry/src/components/isSentryAvailable.ts +++ b/plugins/sentry/src/components/isSentryAvailable.ts @@ -15,7 +15,7 @@ */ import { Entity } from '@backstage/catalog-model'; -import { SENTRY_PROJECT_SLUG_ANNOTATION } from './useProjectSlug'; +import { SENTRY_PROJECT_SLUG_ANNOTATION } from './hooks'; /** * @public diff --git a/plugins/shortcuts/CHANGELOG.md b/plugins/shortcuts/CHANGELOG.md index d65296efd7..c32e53638c 100644 --- a/plugins/shortcuts/CHANGELOG.md +++ b/plugins/shortcuts/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-shortcuts +## 0.2.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.2.8-next.1 ### Patch Changes diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index 54b3867df7..2acbd5db5d 100644 --- a/plugins/shortcuts/package.json +++ b/plugins/shortcuts/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-shortcuts", "description": "A Backstage plugin that provides a shortcuts feature to the sidebar", - "version": "0.2.8-next.1", + "version": "0.2.8-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,9 +24,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -42,9 +42,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -52,7 +52,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md index 9a4f9aa752..072979d537 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-sonarqube +## 0.3.7-next.2 + +### Patch Changes + +- 15201b1032: Updated dependency `rc-progress` to `3.4.0`. +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.3.7-next.1 ### Patch Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 4aabc80bab..beca17ae35 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.3.7-next.1", + "version": "0.3.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,11 +36,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -53,16 +53,16 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/jest": "^26.0.7", "@types/node": "^16.11.26", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/splunk-on-call/CHANGELOG.md b/plugins/splunk-on-call/CHANGELOG.md index 87a26d4d58..c48e6acab2 100644 --- a/plugins/splunk-on-call/CHANGELOG.md +++ b/plugins/splunk-on-call/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-splunk-on-call +## 0.3.31-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.3.31-next.1 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 46443585cc..6d0b2ac632 100644 --- a/plugins/splunk-on-call/package.json +++ b/plugins/splunk-on-call/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-splunk-on-call", "description": "A Backstage plugin that integrates towards Splunk On-Call", - "version": "0.3.31-next.1", + "version": "0.3.31-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,11 +34,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -51,9 +51,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -62,7 +62,7 @@ "@types/luxon": "^2.0.4", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "configSchema": "config.d.ts", "files": [ diff --git a/plugins/stack-overflow/CHANGELOG.md b/plugins/stack-overflow/CHANGELOG.md index 097d8507a2..bbba0a273d 100644 --- a/plugins/stack-overflow/CHANGELOG.md +++ b/plugins/stack-overflow/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-stack-overflow +## 0.1.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-home@0.4.23-next.2 + ## 0.1.3-next.1 ### Patch Changes diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index f08db4618c..e1245b743a 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow", - "version": "0.1.3-next.1", + "version": "0.1.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,11 +24,11 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/plugin-home": "^0.4.23-next.1", + "@backstage/plugin-home": "^0.4.23-next.2", "@backstage/plugin-search-common": "^0.3.6-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", @@ -42,15 +42,15 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/jest": "^26.0.7", "@types/node": "^16.11.26", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/tech-insights-backend/CHANGELOG.md b/plugins/tech-insights-backend/CHANGELOG.md index ff5a703be2..9a08f51d33 100644 --- a/plugins/tech-insights-backend/CHANGELOG.md +++ b/plugins/tech-insights-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-tech-insights-backend +## 0.5.0-next.2 + +### Minor Changes + +- 818fa28d71: Allow FactRetrieverRegistry to be injected into buildTechInsightsContext so that we can override default registry implementation. + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/backend-tasks@0.3.3-next.2 + ## 0.4.2-next.1 ### Patch Changes diff --git a/plugins/tech-insights-backend/api-report.md b/plugins/tech-insights-backend/api-report.md index 32d45f8afd..dc90d76107 100644 --- a/plugins/tech-insights-backend/api-report.md +++ b/plugins/tech-insights-backend/api-report.md @@ -55,17 +55,15 @@ export type FactRetrieverRegistrationOptions = { // @public (undocumented) export interface FactRetrieverRegistry { // (undocumented) - get(retrieverReference: string): FactRetrieverRegistration; + get(retrieverReference: string): Promise; // (undocumented) - getSchemas(): FactSchema[]; + getSchemas(): Promise; // (undocumented) - listRegistrations(): FactRetrieverRegistration[]; + listRegistrations(): Promise; // (undocumented) - listRetrievers(): FactRetriever[]; + listRetrievers(): Promise; // (undocumented) - register(registration: FactRetrieverRegistration): void; - // (undocumented) - readonly retrievers: Map; + register(registration: FactRetrieverRegistration): Promise; } // @public diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index 6ac9054a99..0ecdb6b6e8 100644 --- a/plugins/tech-insights-backend/package.json +++ b/plugins/tech-insights-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend", - "version": "0.4.2-next.1", + "version": "0.5.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,10 +34,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", - "@backstage/backend-tasks": "^0.3.3-next.1", + "@backstage/backend-common": "^0.14.1-next.2", + "@backstage/backend-tasks": "^0.3.3-next.2", "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", "@backstage/plugin-tech-insights-common": "^0.2.4", @@ -54,8 +54,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.26-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/backend-test-utils": "^0.1.26-next.2", + "@backstage/cli": "^0.18.0-next.2", "@types/supertest": "^2.0.8", "@types/semver": "^7.3.8", "supertest": "^6.1.3", diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts index 454711171f..44ffa6587f 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.test.ts @@ -206,9 +206,7 @@ describe('FactRetrieverEngine', () => { { ...testFactRetriever, handler }, ); await engine.schedule(); - const job: FactRetrieverRegistration = engine.getJobRegistration( - testFactRetriever.id, - ); + const job = await engine.getJobRegistration(testFactRetriever.id); expect(job.cadence!!).toEqual(defaultCadence); await engine.triggerJob(job.factRetriever.id); diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts index 25e7610809..f8ff3762dd 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts @@ -66,11 +66,8 @@ export class FactRetrieverEngine { defaultTimeout, } = options; - await Promise.all( - factRetrieverRegistry - .listRetrievers() - .map(it => repository.insertFactSchema(it)), - ); + const retrievers = await factRetrieverRegistry.listRetrievers(); + await Promise.all(retrievers.map(it => repository.insertFactSchema(it))); return new FactRetrieverEngine( repository, @@ -84,7 +81,7 @@ export class FactRetrieverEngine { } async schedule() { - const registrations = this.factRetrieverRegistry.listRegistrations(); + const registrations = await this.factRetrieverRegistry.listRegistrations(); const newRegs: string[] = []; await Promise.all( @@ -115,7 +112,7 @@ export class FactRetrieverEngine { ); } - getJobRegistration(ref: string): FactRetrieverRegistration { + getJobRegistration(ref: string): Promise { return this.factRetrieverRegistry.get(ref); } diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts index 504d561f17..9f4be11bec 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts @@ -26,24 +26,29 @@ import { ConflictError, NotFoundError } from '@backstage/errors'; * */ export interface FactRetrieverRegistry { - readonly retrievers: Map; - register(registration: FactRetrieverRegistration): void; - get(retrieverReference: string): FactRetrieverRegistration; - listRetrievers(): FactRetriever[]; - listRegistrations(): FactRetrieverRegistration[]; - getSchemas(): FactSchema[]; + register(registration: FactRetrieverRegistration): Promise; + get(retrieverReference: string): Promise; + listRetrievers(): Promise; + listRegistrations(): Promise; + getSchemas(): Promise; } +/** + * A basic in memory fact retriever registry. + * + * You can replace this with a persistance based version using the FactRetrieverRegistry interface. + * + */ export class DefaultFactRetrieverRegistry implements FactRetrieverRegistry { - readonly retrievers = new Map(); + private readonly retrievers = new Map(); constructor(retrievers: FactRetrieverRegistration[]) { - retrievers.forEach(it => { - this.register(it); + retrievers.forEach(r => { + this.registerSync(r); }); } - register(registration: FactRetrieverRegistration) { + registerSync(registration: FactRetrieverRegistration) { if (this.retrievers.has(registration.factRetriever.id)) { throw new ConflictError( `Tech insight fact retriever with identifier '${registration.factRetriever.id}' has already been registered`, @@ -52,7 +57,11 @@ export class DefaultFactRetrieverRegistry implements FactRetrieverRegistry { this.retrievers.set(registration.factRetriever.id, registration); } - get(retrieverReference: string): FactRetrieverRegistration { + async register(registration: FactRetrieverRegistration) { + this.registerSync(registration); + } + + async get(retrieverReference: string): Promise { const registration = this.retrievers.get(retrieverReference); if (!registration) { throw new NotFoundError( @@ -62,15 +71,16 @@ export class DefaultFactRetrieverRegistry implements FactRetrieverRegistry { return registration; } - listRetrievers(): FactRetriever[] { + async listRetrievers(): Promise { return [...this.retrievers.values()].map(it => it.factRetriever); } - listRegistrations(): FactRetrieverRegistration[] { + async listRegistrations(): Promise { return [...this.retrievers.values()]; } - getSchemas(): FactSchema[] { - return this.listRetrievers().map(it => it.schema); + async getSchemas(): Promise { + const retrievers = await this.listRetrievers(); + return retrievers.map(it => it.schema); } } diff --git a/plugins/tech-insights/CHANGELOG.md b/plugins/tech-insights/CHANGELOG.md index 1948f639fe..68e60fd0d1 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-tech-insights +## 0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.2.3-next.1 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index 6b628b04d7..75308d67bc 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights", - "version": "0.2.3-next.1", + "version": "0.2.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -28,13 +28,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@backstage/plugin-tech-insights-common": "^0.2.4", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -47,9 +47,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -57,7 +57,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/tech-radar/CHANGELOG.md b/plugins/tech-radar/CHANGELOG.md index 464c51f5b5..99d537779f 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-tech-radar +## 0.5.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.5.14-next.1 ### Patch Changes diff --git a/plugins/tech-radar/README.md b/plugins/tech-radar/README.md index 10c7a104c1..5c99541c2a 100644 --- a/plugins/tech-radar/README.md +++ b/plugins/tech-radar/README.md @@ -90,9 +90,17 @@ export class MyOwnClient implements TechRadarApi { const data = await fetch('https://mydata.json').then(res => res.json()); - // maybe you'll need to do some data transformation here to make it look like TechRadarLoaderResponse - - return data; + // For example, this converts the timeline dates into date objects + return { + ...data, + entries: data.entries.map(entry => ({ + ...entry, + timeline: entry.timeline.map(timeline => ({ + ...timeline, + date: new Date(timeline.date), + })), + })), + }; } } diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 87efc6ed36..421297fcca 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-tech-radar", "description": "A Backstage plugin that lets you display a Tech Radar for your organization", - "version": "0.5.14-next.1", + "version": "0.5.14-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,9 +34,9 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -62,7 +62,7 @@ "@types/node": "^16.11.26", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md index 43bb307fe2..667c189a99 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-techdocs@1.2.1-next.2 + - @backstage/plugin-catalog@1.4.0-next.2 + - @backstage/integration-react@1.1.2-next.2 + - @backstage/plugin-techdocs-react@1.0.2-next.1 + ## 1.0.2-next.1 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index 58e4ec8657..34580c7475 100644 --- a/plugins/techdocs-addons-test-utils/package.json +++ b/plugins/techdocs-addons-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-addons-test-utils", - "version": "1.0.2-next.1", + "version": "1.0.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,16 +32,16 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/integration-react": "^1.1.2-next.1", - "@backstage/plugin-catalog": "^1.3.1-next.1", - "@backstage/plugin-search-react": "^0.2.2-next.1", - "@backstage/plugin-techdocs": "^1.2.1-next.1", - "@backstage/plugin-techdocs-react": "^1.0.2-next.0", + "@backstage/integration-react": "^1.1.2-next.2", + "@backstage/plugin-catalog": "^1.4.0-next.2", + "@backstage/plugin-search-react": "^0.2.2-next.2", + "@backstage/plugin-techdocs": "^1.2.1-next.2", + "@backstage/plugin-techdocs-react": "^1.0.2-next.1", "@backstage/test-utils": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -56,14 +56,14 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/cli": "^0.18.0-next.2", + "@backstage/dev-utils": "^1.0.4-next.2", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/jest": "^26.0.7", "@types/node": "^16.11.26", - "msw": "^0.42.0", + "msw": "^0.43.0", "cross-fetch": "^3.1.5" }, "files": [ diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index 3222ee1c2a..3039a7c50c 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-techdocs-backend +## 1.2.0-next.2 + +### Patch Changes + +- 679b32172e: Updated dependency `knex` to `^2.0.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-techdocs-node@1.2.0-next.2 + ## 1.2.0-next.1 ### Minor Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index c316a93f76..deabdea689 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-backend", "description": "The Backstage backend plugin that renders technical documentation for your components", - "version": "1.2.0-next.1", + "version": "1.2.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,16 +34,16 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", + "@backstage/backend-common": "^0.14.1-next.2", "@backstage/catalog-client": "^1.0.4-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration": "^1.2.2-next.1", + "@backstage/integration": "^1.2.2-next.2", "@backstage/plugin-catalog-common": "^1.0.4-next.0", "@backstage/plugin-permission-common": "^0.6.3-next.0", "@backstage/plugin-search-common": "^0.3.6-next.0", - "@backstage/plugin-techdocs-node": "^1.2.0-next.1", + "@backstage/plugin-techdocs-node": "^1.2.0-next.2", "@types/express": "^4.17.6", "dockerode": "^3.3.1", "express": "^4.17.1", @@ -56,11 +56,11 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.26-next.1", - "@backstage/cli": "^0.18.0-next.1", + "@backstage/backend-test-utils": "^0.1.26-next.2", + "@backstage/cli": "^0.18.0-next.2", "@backstage/plugin-search-backend-node": "0.6.3-next.1", "@types/dockerode": "^3.3.0", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.3" }, "files": [ diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md index 2f2626f925..049cf72493 100644 --- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md +++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-techdocs-module-addons-contrib +## 1.0.2-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + - @backstage/plugin-techdocs-react@1.0.2-next.1 + ## 1.0.2-next.1 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index a18e3e4c31..7668143599 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-module-addons-contrib", "description": "Plugin module for contributed TechDocs Addons", - "version": "1.0.2-next.1", + "version": "1.0.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,16 +34,16 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/integration-react": "^1.1.2-next.1", - "@backstage/plugin-techdocs-react": "^1.0.2-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/integration-react": "^1.1.2-next.2", + "@backstage/plugin-techdocs-react": "^1.0.2-next.1", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", - "@react-hookz/web": "^14.0.0", + "@react-hookz/web": "^15.0.0", "git-url-parse": "^12.0.0", "react-use": "^17.2.4" }, @@ -51,10 +51,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", - "@backstage/plugin-techdocs-addons-test-utils": "^1.0.2-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", + "@backstage/plugin-techdocs-addons-test-utils": "^1.0.2-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -62,7 +62,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "@types/react": "^16.13.1 || ^17.0.0", - "msw": "^0.42.0", + "msw": "^0.43.0", "cross-fetch": "^3.1.5" }, "files": [ diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md index be88fd74b1..159966eaae 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-techdocs-node +## 1.2.0-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- Updated dependencies + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/backend-common@0.14.1-next.2 + - @backstage/integration@1.2.2-next.2 + ## 1.2.0-next.1 ### Minor Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index bcce7ce449..24ca02de8a 100644 --- a/plugins/techdocs-node/package.json +++ b/plugins/techdocs-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-node", "description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli", - "version": "1.2.0-next.1", + "version": "1.2.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -42,11 +42,11 @@ "dependencies": { "@azure/identity": "^2.0.1", "@azure/storage-blob": "^12.5.0", - "@backstage/backend-common": "^0.14.1-next.1", - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/backend-common": "^0.14.1-next.2", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration": "^1.2.2-next.1", + "@backstage/integration": "^1.2.2-next.2", "@backstage/plugin-search-common": "^0.3.6-next.0", "@google-cloud/storage": "^6.0.0", "@trendyol-js/openstack-swift-sdk": "^0.0.5", @@ -64,7 +64,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@types/fs-extra": "^9.0.5", "@types/js-yaml": "^4.0.0", "@types/mime-types": "^2.1.0", diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index 6feb9062d3..aa839600c3 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-techdocs-react +## 1.0.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + ## 1.0.2-next.0 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index 7209bab004..042dd4c81b 100644 --- a/plugins/techdocs-react/package.json +++ b/plugins/techdocs-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-react", "description": "Shared frontend utilities for TechDocs and Addons", - "version": "1.0.2-next.0", + "version": "1.0.2-next.1", "private": false, "publishConfig": { "access": "public", @@ -35,8 +35,8 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/version-bridge": "^1.0.1", "@material-ui/core": "^4.12.2", @@ -57,7 +57,7 @@ "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", "@backstage/test-utils": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0" + "@backstage/theme": "^0.2.16-next.1" }, "files": [ "alpha", diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index 7d8fb30bbb..aad89b46cf 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-techdocs +## 1.2.1-next.2 + +### Patch Changes + +- e2d7b76f43: Upgrade git-url-parse to 12.0.0. + + Motivation for upgrade is transitively upgrading parse-url which is vulnerable + to several CVEs detected by Snyk. + + - SNYK-JS-PARSEURL-2935944 + - SNYK-JS-PARSEURL-2935947 + - SNYK-JS-PARSEURL-2936249 + +- 7739141ab2: Fix: When docs are shown in an entity page under the docs tab the sidebars start overlapping with the header and tabs in the page when you scroll the documentation content. +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/plugin-search-react@0.2.2-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/integration@1.2.2-next.2 + - @backstage/plugin-catalog-react@1.1.2-next.2 + - @backstage/integration-react@1.1.2-next.2 + - @backstage/plugin-techdocs-react@1.0.2-next.1 + ## 1.2.1-next.1 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 880d29bac3..55b4a7c707 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs", "description": "The Backstage plugin that renders technical documentation for your components", - "version": "1.2.1-next.1", + "version": "1.2.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,18 +35,18 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/integration": "^1.2.2-next.1", - "@backstage/integration-react": "^1.1.2-next.1", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", + "@backstage/integration": "^1.2.2-next.2", + "@backstage/integration-react": "^1.1.2-next.2", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", "@backstage/plugin-search-common": "^0.3.6-next.0", - "@backstage/plugin-search-react": "^0.2.2-next.1", - "@backstage/plugin-techdocs-react": "^1.0.2-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-search-react": "^0.2.2-next.2", + "@backstage/plugin-techdocs-react": "^1.0.2-next.1", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -67,9 +67,9 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -81,7 +81,7 @@ "@types/node": "^16.11.26", "canvas": "^2.6.1", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist", diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index e1214f8dc1..a49bd6fae5 100644 --- a/plugins/todo-backend/package.json +++ b/plugins/todo-backend/package.json @@ -45,7 +45,7 @@ "devDependencies": { "@backstage/cli": "^0.18.0-next.1", "@types/supertest": "^2.0.8", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.3" }, "files": [ diff --git a/plugins/todo/CHANGELOG.md b/plugins/todo/CHANGELOG.md index 5f0d94f1d1..a2892e3036 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-todo +## 0.2.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.2.9-next.1 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index e5e4dcd103..255a58a0d5 100644 --- a/plugins/todo/package.json +++ b/plugins/todo/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo", "description": "A Backstage plugin that lets you browse TODO comments in your source code", - "version": "0.2.9-next.1", + "version": "0.2.9-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -30,12 +30,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -45,9 +45,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -55,7 +55,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0", + "msw": "^0.43.0", "react-router": "6.0.0-beta.0" }, "files": [ diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index 783871bef8..a515a7572a 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-user-settings +## 0.4.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.4.6-next.1 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index ba2b02d067..e2527933ee 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-user-settings", "description": "A Backstage plugin that provides a settings page", - "version": "0.4.6-next.1", + "version": "0.4.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,9 +34,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -48,9 +48,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -58,7 +58,7 @@ "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/vault-backend/CHANGELOG.md b/plugins/vault-backend/CHANGELOG.md index d47d46870d..6b1dba1bfa 100644 --- a/plugins/vault-backend/CHANGELOG.md +++ b/plugins/vault-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-vault-backend +## 0.2.0-next.2 + +### Patch Changes + +- 7ee4abdcc9: Added a path notion in addition to secret name to allow to differentiate secrets in sub-paths +- Updated dependencies + - @backstage/backend-common@0.14.1-next.2 + - @backstage/backend-tasks@0.3.3-next.2 + - @backstage/backend-test-utils@0.1.26-next.2 + ## 0.2.0-next.1 ### Patch Changes diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index 9996c521f7..df5d0f5fa6 100644 --- a/plugins/vault-backend/package.json +++ b/plugins/vault-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault-backend", "description": "A Backstage backend plugin that integrates towards Vault", - "version": "0.2.0-next.1", + "version": "0.2.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,9 +34,9 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.14.1-next.1", - "@backstage/backend-tasks": "^0.3.3-next.1", - "@backstage/backend-test-utils": "^0.1.26-next.1", + "@backstage/backend-common": "^0.14.1-next.2", + "@backstage/backend-tasks": "^0.3.3-next.2", + "@backstage/backend-test-utils": "^0.1.26-next.2", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0-next.0", "@types/express": "*", @@ -51,10 +51,10 @@ "yn": "^5.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@types/compression": "^1.7.2", "@types/supertest": "^2.0.8", - "msw": "^0.42.0", + "msw": "^0.43.0", "supertest": "^6.1.6" }, "files": [ diff --git a/plugins/vault/CHANGELOG.md b/plugins/vault/CHANGELOG.md index af82aedff4..317d6ae7d6 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-vault +## 0.1.1-next.2 + +### Patch Changes + +- 7ee4abdcc9: Added a path notion in addition to secret name to allow to differentiate secrets in sub-paths +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/catalog-model@1.1.0-next.2 + - @backstage/theme@0.2.16-next.1 + - @backstage/plugin-catalog-react@1.1.2-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index 8c0fd85fdd..43ac2fdb26 100644 --- a/plugins/vault/package.json +++ b/plugins/vault/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault", "description": "A Backstage plugin that integrates towards Vault", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,12 +34,12 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/catalog-model": "^1.1.0-next.1", - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/catalog-model": "^1.1.0-next.2", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.2-next.1", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/plugin-catalog-react": "^1.1.2-next.2", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.57", @@ -49,9 +49,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -59,7 +59,7 @@ "@types/jest": "*", "@types/node": "*", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/plugins/xcmetrics/CHANGELOG.md b/plugins/xcmetrics/CHANGELOG.md index 94179d1e6b..a8ac7904a0 100644 --- a/plugins/xcmetrics/CHANGELOG.md +++ b/plugins/xcmetrics/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-xcmetrics +## 0.2.27-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.10.0-next.2 + - @backstage/theme@0.2.16-next.1 + ## 0.2.27-next.1 ### Patch Changes diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index 572502f68b..67a63f0342 100644 --- a/plugins/xcmetrics/package.json +++ b/plugins/xcmetrics/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-xcmetrics", "description": "A Backstage plugin that shows XCode build metrics for your components", - "version": "0.2.27-next.1", + "version": "0.2.27-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,10 +24,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.9.6-next.1", + "@backstage/core-components": "^0.10.0-next.2", "@backstage/core-plugin-api": "^1.0.3", "@backstage/errors": "^1.1.0-next.0", - "@backstage/theme": "^0.2.16-next.0", + "@backstage/theme": "^0.2.16-next.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.0-next.1", + "@backstage/cli": "^0.18.0-next.2", "@backstage/core-app-api": "^1.0.4-next.0", - "@backstage/dev-utils": "^1.0.4-next.1", + "@backstage/dev-utils": "^1.0.4-next.2", "@backstage/test-utils": "^1.1.2-next.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", @@ -51,7 +51,7 @@ "@types/luxon": "^2.0.4", "@types/node": "^16.11.26", "cross-fetch": "^3.1.5", - "msw": "^0.42.0" + "msw": "^0.43.0" }, "files": [ "dist" diff --git a/scripts/api-extractor.ts b/scripts/api-extractor.ts index 0d40ebb60a..21a307b65a 100644 --- a/scripts/api-extractor.ts +++ b/scripts/api-extractor.ts @@ -219,8 +219,6 @@ const ALLOW_WARNINGS = [ 'plugins/circleci', 'plugins/cloudbuild', 'plugins/code-climate', - 'plugins/code-coverage', - 'plugins/code-coverage-backend', 'plugins/config-schema', 'plugins/cost-insights', 'plugins/dynatrace', diff --git a/scripts/goalie-labels.js b/scripts/goalie-labels.js deleted file mode 100644 index e0a5b966d0..0000000000 --- a/scripts/goalie-labels.js +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const Codeowners = require('codeowners'); - -const getRepoEvents = async ({ github, context, pull_number }) => { - const commits = await github.paginate(github.rest.pulls.listCommits, { - owner: context.repo.owner, - repo: context.repo.repo, - pull_number, - }); - - const reviews = await github.paginate(github.rest.pulls.listReviews, { - owner: context.repo.owner, - repo: context.repo.repo, - pull_number, - }); - - const pullComments = await github.paginate( - 'GET /repos/{owner}/{repo}/pulls/{pull_number}/comments', - { - owner: context.repo.owner, - repo: context.repo.repo, - pull_number, - }, - ); - - const comments = await github.paginate(github.rest.issues.listComments, { - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: pull_number, - }); - - const events = [ - ...reviews.map(({ user, submitted_at }) => ({ - user, - updated_at: submitted_at, - type: 'review', - })), - ...commits.map(({ commit, author, committer }) => ({ - user: author || committer, - updated_at: commit.author.date || commit.committer.date, - type: 'commit', - })), - ...pullComments.map(({ user, updated_at }) => ({ - user, - updated_at, - type: 'pr_comment', - })), - ...comments.map(({ user, updated_at }) => ({ - user, - updated_at, - type: 'pr_comment', - })), - ]; - - return events - .sort((a, b) => new Date(a.updated_at) - new Date(b.updated_at)) - .filter(({ user }) => (user ? !user.login.includes('[bot]') : false)); -}; - -module.exports = async ({ github, context, core }) => { - // first get all open pull requests - const allPullRequests = await github.paginate(github.rest.pulls.list, { - owner: context.repo.owner, - repo: context.repo.repo, - state: 'open', - }); - - const { data: teams } = await github.request('GET /orgs/{org}/teams', { - org: context.repo.owner, - }); - - const groupMembers = await Promise.all( - teams.map(async team => { - const { data } = await github.rest.teams.listMembersInOrg({ - org: context.repo.owner, - team_slug: team.slug, - }); - - return { team: `@backstage/${team.slug}`, data }; - }), - ); - - const codeowners = new Codeowners(); - - for (const pullRequest of allPullRequests) { - // Go through each file changed and get the codeowners for that file. - // Find the group in the group list that matches the codeowner. - // If it does match push the owner to a list of reviewers - // check to see the reviews and if there is at least one matching reviewer from those group - - const changedFiles = await github.paginate(github.rest.pulls.listFiles, { - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: pullRequest.number, - }); - - const allReviews = await github.paginate(github.rest.pulls.listReviews, { - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: pullRequest.number, - }); - - const expectedReviewers = new Set(); - - for (const file of changedFiles) { - expectedReviewers.add(...codeowners.getOwner(file.filename)); - } - - const hasReviewed = new Set(); - - // For each reviewer in the group, check to see if they have a review set - for (const reviewer of expectedReviewers) { - const members = groupMembers.find(member => member.team === reviewer); - if (members) { - // then we are dealing with a group - const hasMemberReview = allReviews.some(review => - members.data.some(member => member.login === review.user.login), - ); - if (hasMemberReview) { - hasReviewed.add(reviewer); - } - } else { - // reviewer is a person - const hasReview = allReviews.some( - review => reviewer === `@${review.user.login}`, - ); - if (hasReview) { - hasReviewed.add(reviewer); - } - } - } - - // if all required reviewers have reviewed - if (hasReviewed.size === expectedReviewers.size) { - const repoEvents = await getRepoEvents({ - github, - context, - pull_number: pullRequest.number, - }); - // if the last event for the issue is not by the author, remove the label - if ( - repoEvents[repoEvents.length - 1].user.login !== pullRequest.user.login - ) { - await github.rest.issues - .removeLabel({ - issue_number: pullRequest.number, - owner: context.repo.owner, - repo: context.repo.repo, - name: 'awaiting-review', - }) - .catch(e => { - console.error(e); - }); - } - // add the awaiting-review label to tell us that the PR is waiting on reviews - } else { - await github.rest.issues - .addLabels({ - issue_number: pullRequest.number, - owner: context.repo.owner, - repo: context.repo.repo, - labels: ['awaiting-review'], - }) - .catch(e => { - console.error(e); - }); - } - } -}; diff --git a/yarn.lock b/yarn.lock index 3b1cc42bef..f06a187ebf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -174,10 +174,10 @@ node-fetch "^2.6.0" tiny-merge-patch "^0.1.2" -"@asyncapi/react-component@1.0.0-next.38": - version "1.0.0-next.38" - resolved "https://registry.npmjs.org/@asyncapi/react-component/-/react-component-1.0.0-next.38.tgz#33909f556f18870faca8d8a9e9827a7e341a90ea" - integrity sha512-Uq0wcVHqmKXfvYCa74OiCEgNz3CbpVodeeIjrIsKWqyb9H6QjEA0pIJSLbvEwA+YKVGDXb48R3zsMSmRaqnmnA== +"@asyncapi/react-component@1.0.0-next.39": + version "1.0.0-next.39" + resolved "https://registry.npmjs.org/@asyncapi/react-component/-/react-component-1.0.0-next.39.tgz#2aa236b1783f36249752b3c30e0c7e0125af8c1f" + integrity sha512-UQYmzbvKwDm3HVGjLL1znK35bOKlWNiTUw29oSe6Xdil/Y7RODLctGQrbwKSCeP0VwtsokhwivQ3QHuL3byjVw== dependencies: "@asyncapi/avro-schema-parser" "^0.3.0" "@asyncapi/openapi-schema-parser" "^2.0.0" @@ -344,17 +344,17 @@ dependencies: debug "^4.1.1" -"@azure/msal-common@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@azure/msal-common/-/msal-common-7.0.0.tgz#f4b52c6d9591cf8720dcb24c1d21fce2d186f871" - integrity sha512-EkaHGjv0kw1RljhboeffM91b+v9d5VtmyG+0a/gvdqjbLu3kDzEfoaS5BNM9QqMzbxgZylsjAjQDtxdHLX/ziA== +"@azure/msal-common@^7.1.0": + version "7.1.0" + resolved "https://registry.npmjs.org/@azure/msal-common/-/msal-common-7.1.0.tgz#b77dbf9ae581f1ed254f81d56422e3cdd6664b32" + integrity sha512-WyfqE5mY/rggjqvq0Q5DxLnA33KSb0vfsUjxa95rycFknI03L5GPYI4HTU9D+g0PL5TtsQGnV3xzAGq9BFCVJQ== "@azure/msal-node@^1.1.0", "@azure/msal-node@^1.3.0": - version "1.10.0" - resolved "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.10.0.tgz#ee3a26201c4899cc6928cc331c31d3568d3cb728" - integrity sha512-oSv9mg199FpRTe+fZ3o9NDYpKShOHqeceaNcCHJcKUaAaCojAbfbxD1Cvsti8BEsLKE6x0HcnjilnM1MKmZekA== + version "1.11.0" + resolved "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.11.0.tgz#d8bd3f15c1f05bf806ba6f9479c48c2eddd6a98d" + integrity sha512-KW/XEexfCrPzdYbjY7NVmhq9okZT3Jvck55CGXpz9W5asxeq3EtrP45p+ZXtQVEfko0YJdolpCNqWUyXvanWZg== dependencies: - "@azure/msal-common" "^7.0.0" + "@azure/msal-common" "^7.1.0" jsonwebtoken "^8.5.1" uuid "^8.3.0" @@ -2288,9 +2288,9 @@ xcase "^2.0.1" "@google-cloud/container@^4.0.0": - version "4.0.1" - resolved "https://registry.npmjs.org/@google-cloud/container/-/container-4.0.1.tgz#a3206d3030539e09b7beee8f351fad86c77af79d" - integrity sha512-JpsOsdKnCQm1b5aVNnO/2Urdg+qbCLi/srEnTupRj73Pu5wXLHXOCe3vy8Z2GvyCqu7qr89fMREQ4kO4QijnHA== + version "4.1.0" + resolved "https://registry.npmjs.org/@google-cloud/container/-/container-4.1.0.tgz#cf929184f668fc40ca8b864b7f638228ae67fc98" + integrity sha512-LpVT3wxG73iX/5deF4a2KIEZ7sULF2mksrzyA25OVGtyxFclSZT2Gs5uho5USSLkoKg/Ou+l+ekGMrgBQbLDag== dependencies: google-gax "^3.0.1" @@ -2371,21 +2371,21 @@ meros "^1.1.4" "@graphql-codegen/cli@^2.3.1": - version "2.6.4" - resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.6.4.tgz#2fbcd3917cb96ae08c54a865fbcc0393e66abc17" - integrity sha512-VNK5l4lRXOs3uueKkN4YKhO7ZldXaPw/6dZo4BnAzH2ip9XDroNJ0n+ESkbhSBd1bH6wVk3iCIzBfJOnfcsAcg== + version "2.7.0" + resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.7.0.tgz#610f3cb2798d581fff3af8d8ba522113a1811fc5" + integrity sha512-qlBcS6jGfZ/xWXwqiyRLHGRuLC9gUdF8AwGHN7LdAYEP5MjL7pIXb02W5JuvMn47rrvr2Q22H9ECppZX65oSAg== dependencies: "@graphql-codegen/core" "2.5.1" "@graphql-codegen/plugin-helpers" "^2.4.1" - "@graphql-tools/apollo-engine-loader" "^7.0.5" + "@graphql-tools/apollo-engine-loader" "^7.3.1" "@graphql-tools/code-file-loader" "^7.0.6" "@graphql-tools/git-loader" "^7.0.5" "@graphql-tools/github-loader" "^7.0.5" "@graphql-tools/graphql-file-loader" "^7.0.5" "@graphql-tools/json-file-loader" "^7.1.2" "@graphql-tools/load" "^7.3.0" - "@graphql-tools/prisma-loader" "^7.0.6" - "@graphql-tools/url-loader" "^7.0.11" + "@graphql-tools/prisma-loader" "^7.2.2" + "@graphql-tools/url-loader" "^7.12.1" "@graphql-tools/utils" "^8.1.1" ansi-escapes "^4.3.1" chalk "^4.1.0" @@ -2421,13 +2421,13 @@ tslib "~2.3.0" "@graphql-codegen/graphql-modules-preset@^2.3.2": - version "2.3.13" - resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.3.13.tgz#181ab8acacf376c38d572d6d50aad609aba3cd3d" - integrity sha512-hi/vKUrVa62d5W2euSapUqTNf2ysfq4RjRc0Pcren7zPqMzD3QgbYRLjDtPsXXQntZDmDxoJVd1BEzjpPGD2/g== + version "2.3.14" + resolved "https://registry.npmjs.org/@graphql-codegen/graphql-modules-preset/-/graphql-modules-preset-2.3.14.tgz#78afc5193707cba8a9ef6e2053e90eb9a9a3499c" + integrity sha512-6i2n3pGqvSniA8Qued0KUxMdAEWPREzD9nSMa+hC+r6u0k6V8nW+jWWeLNEi65Ctmt527KSYmGj8PH1RFRqhiw== dependencies: "@graphql-codegen/plugin-helpers" "^2.4.0" - "@graphql-codegen/visitor-plugin-common" "2.9.1" - "@graphql-tools/utils" "8.6.13" + "@graphql-codegen/visitor-plugin-common" "2.10.0" + "@graphql-tools/utils" "8.8.0" change-case-all "1.0.14" parse-filepath "^1.0.2" tslib "~2.4.0" @@ -2454,32 +2454,32 @@ tslib "~2.3.0" "@graphql-codegen/typescript-resolvers@^2.4.3": - version "2.6.6" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.6.6.tgz#c42cabbc05103b44a29df5ac4a015f2a8e8ab4aa" - integrity sha512-6yVU0rojI64qZbAtGy4+5kA1xJbolcWbefd4y/nwLOn2g99QBHt9nQRCVl96rppfBNinLPkiJCtQ0thOHu9glg== + version "2.6.7" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.6.7.tgz#a6cadbd6822680678675fffbb826c7163ac60ca0" + integrity sha512-zdB4VuXzBRl2EbxQ/SZ9DRiRMcvCY3eZ2FPM2MnEidR7ggh3GdSg3Ewo6HgwRIHBxI0+DeoK0IM/Po0Rs3q0DA== dependencies: "@graphql-codegen/plugin-helpers" "^2.4.0" - "@graphql-codegen/typescript" "^2.5.1" - "@graphql-codegen/visitor-plugin-common" "2.9.1" + "@graphql-codegen/typescript" "^2.6.0" + "@graphql-codegen/visitor-plugin-common" "2.10.0" "@graphql-tools/utils" "^8.1.1" auto-bind "~4.0.0" tslib "~2.4.0" -"@graphql-codegen/typescript@^2.4.2", "@graphql-codegen/typescript@^2.5.1": - version "2.5.1" - resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.5.1.tgz#5131485ff3ac83d5bc0aae11a2af0c9bdc08854c" - integrity sha512-D/9V2VfVIE4Mu5UiMGQtxyFU5xe1ZkAZi8g/IsqymW8rqlhTwsGhtk4JR55qPfOYxR8G94RJSJpzgNakRneytw== +"@graphql-codegen/typescript@^2.4.2", "@graphql-codegen/typescript@^2.6.0": + version "2.6.0" + resolved "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.6.0.tgz#75e7a54a25b29906ca4e462d1be6bf830f21b328" + integrity sha512-f36ilg8J+wui0OhmQglIZ+2z4Ybc08Y7r7BlBDqfJ1F5X0zau0SlC7Hp2iCoCA0ucqZYtiUU/0n+/R8m1cTrQQ== dependencies: "@graphql-codegen/plugin-helpers" "^2.4.0" "@graphql-codegen/schema-ast" "^2.4.1" - "@graphql-codegen/visitor-plugin-common" "2.9.1" + "@graphql-codegen/visitor-plugin-common" "2.10.0" auto-bind "~4.0.0" tslib "~2.4.0" -"@graphql-codegen/visitor-plugin-common@2.9.1": - version "2.9.1" - resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.9.1.tgz#17dfe33e19e846e7475ab9d4ff43de5130e18397" - integrity sha512-j9eGOSGt+sJcwv0ijhZiQ2cF/0ponscekNVoF+vHdOT4RB0qgOQxykPBk6EbKxIHECnkdV8ARdPVTA21A93/QQ== +"@graphql-codegen/visitor-plugin-common@2.10.0": + version "2.10.0" + resolved "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.10.0.tgz#d886d8281dfc6e4b9729a5468ffe18ebaefc883f" + integrity sha512-nWoxHKUdwOJCWV96Ks1x4EwYCWsZDJXB+2j6EQz5j27DzdxmQInZ86degaDCd3EgbwhMQEMtiZiPGFFDrgBkHA== dependencies: "@graphql-codegen/plugin-helpers" "^2.4.0" "@graphql-tools/optimize" "^1.0.1" @@ -2492,15 +2492,15 @@ parse-filepath "^1.0.2" tslib "~2.4.0" -"@graphql-tools/apollo-engine-loader@^7.0.5": - version "7.2.11" - resolved "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.2.11.tgz#c247eef8986ce259de6dd2da39daeaba7960ac33" - integrity sha512-0NmAlTd/lQl35OaP18dhxlcdu4w4K+auPfbkiaDfArzdhn6Duhq+ATqMvj6Fx5C23zlcvQ0AJnT5a5Yb55K/5w== +"@graphql-tools/apollo-engine-loader@^7.3.1": + version "7.3.1" + resolved "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.1.tgz#535cb259fa6e0dbf1cf960e7212d58b8294bb370" + integrity sha512-PJhX4gQeoPtR2BJFYHYVLdLYkqQHB94r9IC64GamFV+kxR+jzQYZJdDTgnFZxvpvGJ7rEgYKNjcfWS+r+CQisQ== dependencies: - "@graphql-tools/utils" "8.6.9" - cross-undici-fetch "^0.3.0" - sync-fetch "0.3.1" - tslib "~2.3.0" + "@graphql-tools/utils" "8.8.0" + cross-undici-fetch "^0.4.11" + sync-fetch "0.4.1" + tslib "^2.4.0" "@graphql-tools/batch-execute@8.4.6": version "8.4.6" @@ -2512,6 +2512,16 @@ tslib "~2.3.0" value-or-promise "1.0.11" +"@graphql-tools/batch-execute@8.5.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.0.tgz#2767a9abf4e2712871a69360a27ef13ada1c019e" + integrity sha512-S9/76X4uYIbVlJyRzXhCBbTJvVD0VvaWNqGiKgkITxlq4aBsTOHVuE84OSi3E1QKP3PTiJYrgMIn220iFOkyQw== + dependencies: + "@graphql-tools/utils" "8.8.0" + dataloader "2.1.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + "@graphql-tools/code-file-loader@^7.0.6": version "7.2.14" resolved "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.2.14.tgz#b43ce0c682040b3969f1f785b18fc33c79341084" @@ -2536,6 +2546,18 @@ tslib "~2.3.0" value-or-promise "1.0.11" +"@graphql-tools/delegate@8.8.0": + version "8.8.0" + resolved "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.8.0.tgz#acd3e48e4ca82aace92cc3d920b5c727c35eaf7b" + integrity sha512-dbhfOI8rQXPcowXrbwHLOBY9oGi7qxtlrXF4RuRXmjqGTs2AgogdOE3Ep1+6wFD7qYTuFmHXZ8Cl0PmhoZUgrg== + dependencies: + "@graphql-tools/batch-execute" "8.5.0" + "@graphql-tools/schema" "8.5.0" + "@graphql-tools/utils" "8.8.0" + dataloader "2.1.0" + tslib "~2.4.0" + value-or-promise "1.0.11" + "@graphql-tools/git-loader@^7.0.5": version "7.1.13" resolved "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-7.1.13.tgz#95f4715f4caf290dde975813bc87e0a96a81095d" @@ -2618,6 +2640,14 @@ "@graphql-tools/utils" "8.6.9" tslib "~2.3.0" +"@graphql-tools/merge@8.3.0": + version "8.3.0" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.0.tgz#d3a8ba10942f8598788c3e03f97cc1d0c0b055f8" + integrity sha512-xRa7RAQok/0DD2YnjuqikMrr7dUAxTpdGtZ7BkvUUGhYs3B3p7reCAfvOVr1DJAqVToP7hdlMk+S5+Ylk+AaqA== + dependencies: + "@graphql-tools/utils" "8.8.0" + tslib "^2.4.0" + "@graphql-tools/mock@^8.1.2": version "8.6.8" resolved "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.6.8.tgz#232a23c0c14dcfca88012886230b93e6fc2303e2" @@ -2635,13 +2665,13 @@ dependencies: tslib "~2.3.0" -"@graphql-tools/prisma-loader@^7.0.6": - version "7.1.13" - resolved "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-7.1.13.tgz#3b46e9d9414e71cfeb1a8284c945329eca77a190" - integrity sha512-rctgCI11ZjPJd4ncNTV7mmjV2WN2LRL3aTuTJWHjudO+iJPgoWyor0idl+aP0fOX2GnDK7zASmWwVShuGBJb9g== +"@graphql-tools/prisma-loader@^7.2.2": + version "7.2.2" + resolved "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-7.2.2.tgz#ee56371f75a4e82330b0e4915f57976bf0f4a16a" + integrity sha512-f5txUBRwwZmPQYL5g5CNdOjOglFE/abtnEVOvUCq+nET0BRuxcuxUD5vykfZnkql9sNvnCFAfrZuBVe5S2n3bA== dependencies: - "@graphql-tools/url-loader" "7.9.14" - "@graphql-tools/utils" "8.6.9" + "@graphql-tools/url-loader" "7.12.1" + "@graphql-tools/utils" "8.8.0" "@types/js-yaml" "^4.0.0" "@types/json-stable-stringify" "^1.0.32" "@types/jsonwebtoken" "^8.5.0" @@ -2658,7 +2688,7 @@ lodash "^4.17.20" replaceall "^0.1.6" scuid "^1.1.0" - tslib "~2.3.0" + tslib "^2.4.0" yaml-ast-parser "^0.0.43" "@graphql-tools/relay-operation-optimizer@^6.4.14": @@ -2680,7 +2710,38 @@ tslib "~2.3.0" value-or-promise "1.0.11" -"@graphql-tools/url-loader@7.9.14", "@graphql-tools/url-loader@^7.0.11", "@graphql-tools/url-loader@^7.4.2": +"@graphql-tools/schema@8.5.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.0.tgz#0332b3a2e674d16e9bf8a58dfd47432449ce2368" + integrity sha512-VeFtKjM3SA9/hCJJfr95aEdC3G0xIKM9z0Qdz4i+eC1g2fdZYnfWFt2ucW4IME+2TDd0enHlKzaV0qk2SLVUww== + dependencies: + "@graphql-tools/merge" "8.3.0" + "@graphql-tools/utils" "8.8.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/url-loader@7.12.1", "@graphql-tools/url-loader@^7.12.1": + version "7.12.1" + resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.12.1.tgz#931a65da4faced1a71ddc5af638b87140ff3dfb6" + integrity sha512-Fd3ZZLEEr9GGFHEbdrcaMHFQu01BLpFnNDBkISupvjokd497O5Uh0xZvsZGC6mxVt0WWQWpgaK2ef+oLuOdLqQ== + dependencies: + "@graphql-tools/delegate" "8.8.0" + "@graphql-tools/utils" "8.8.0" + "@graphql-tools/wrap" "8.5.0" + "@n1ru4l/graphql-live-query" "^0.9.0" + "@types/ws" "^8.0.0" + cross-undici-fetch "^0.4.11" + dset "^3.1.2" + extract-files "^11.0.0" + graphql-ws "^5.4.1" + isomorphic-ws "^5.0.0" + meros "^1.1.4" + sync-fetch "^0.4.0" + tslib "^2.4.0" + value-or-promise "^1.0.11" + ws "^8.3.0" + +"@graphql-tools/url-loader@^7.4.2": version "7.9.14" resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.9.14.tgz#9f76af9a6c55a0cf2e87ccf9b3be15eeb6af188c" integrity sha512-7IXiqUYp0cHeM+qvgjM4jAq8uJhl3PDdQYkyIj5wzZ7XjrkdV3JjPt0cHj2IBIeEwQJOjEKNeFYXjOlg73guCQ== @@ -2716,6 +2777,13 @@ dependencies: tslib "~2.3.0" +"@graphql-tools/utils@8.8.0": + version "8.8.0" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.8.0.tgz#8332ff80a1da9204ccf514750dd6f5c5cccf17dc" + integrity sha512-KJrtx05uSM/cPYFdTnGAS1doL5bftJLAiFCDMZ8Vkifztz3BFn3gpFiy/o4wDtM8s39G46mxmt2Km/RmeltfGw== + dependencies: + tslib "^2.4.0" + "@graphql-tools/wrap@8.4.16", "@graphql-tools/wrap@^8.3.1": version "8.4.16" resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.4.16.tgz#87dce9ec623a921e5a62f44e75abc9655892724b" @@ -2727,6 +2795,17 @@ tslib "~2.3.0" value-or-promise "1.0.11" +"@graphql-tools/wrap@8.5.0": + version "8.5.0" + resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.5.0.tgz#ce1b0d775e1fc3a17404df566f4d2196d31c6e20" + integrity sha512-I+x9dBNzC135WWPi04ejqurR/zDmhfeGbCftCaYKF4CvgWd+ZaJx4Uc74n1SBegQtrj+KDrOS4HgKwf9vAVR7A== + dependencies: + "@graphql-tools/delegate" "8.8.0" + "@graphql-tools/schema" "8.5.0" + "@graphql-tools/utils" "8.8.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + "@graphql-typed-document-node/core@^3.1.0", "@graphql-typed-document-node/core@^3.1.1": version "3.1.1" resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" @@ -3449,10 +3528,10 @@ dependencies: ioredis "^5.1.0" -"@kubernetes/client-node@^0.16.0": - version "0.16.3" - resolved "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.16.3.tgz#a26a5abbd6e45603b4f75f0baff00e19853e5be7" - integrity sha512-L7IckuyuPfhd+/Urib8MRas9D6sfKEq8IaITYcaE6LlU+Y8MeD7MTbuW6Yb2WdeRuFN8HPSS47mxPnOUNYBXEg== +"@kubernetes/client-node@^0.17.0": + version "0.17.0" + resolved "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.17.0.tgz#cbf69ff6c8a311c1461275169612ac46db00fe3f" + integrity sha512-oKQfRf7RPpJIF2Ft92g6jefbW3Mddf6IzcfpBNDWrAy66LmyAWds6fQTMsdutGPuXV6KD29u6RfM3rdzddGMIA== dependencies: "@types/js-yaml" "^4.0.1" "@types/node" "^10.12.0" @@ -3466,7 +3545,7 @@ isomorphic-ws "^4.0.1" js-yaml "^4.1.0" jsonpath-plus "^0.19.0" - openid-client "^4.1.1" + openid-client "^5.1.6" request "^2.88.0" rfc4648 "^1.3.0" shelljs "^0.8.5" @@ -4359,9 +4438,9 @@ react-is "^16.8.0 || ^17.0.0" "@maxim_mazurok/gapi.client.calendar@^3.0.20220408": - version "3.0.20220624" - resolved "https://registry.npmjs.org/@maxim_mazurok/gapi.client.calendar/-/gapi.client.calendar-3.0.20220624.tgz#17817142e348ce811415dfb111299fbdac2450a0" - integrity sha512-5+x4A6l8GY+dojvXUBQGc0Y4JOm9lBY1YZfCAEEZPjBcXkx0vs/CenPnmAu/fwQgGSrQLipxFV+pS6RL3L28mg== + version "3.0.20220701" + resolved "https://registry.npmjs.org/@maxim_mazurok/gapi.client.calendar/-/gapi.client.calendar-3.0.20220701.tgz#4ee9089e8164269743e61ec36e79e095aa0926b6" + integrity sha512-3CjbVZysFdUmGWZwjYGsV3z+kViaVpiWvgR7/DX5nUtb1YWIaS0jNUCch1YVN9aDFaCWuI3UV/STveSPvUspgw== dependencies: "@types/gapi.client" "*" @@ -5192,11 +5271,6 @@ resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz#a167e46c10d05a07ab299fc518793b0cff8f6924" integrity sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog== -"@panva/asn1.js@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" - integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw== - "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -5250,18 +5324,11 @@ resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@react-hookz/deep-equal@^1.0.1", "@react-hookz/deep-equal@^1.0.2": +"@react-hookz/deep-equal@^1.0.2": version "1.0.2" resolved "https://registry.npmjs.org/@react-hookz/deep-equal/-/deep-equal-1.0.2.tgz#4e8bdeda027379dcf8b62a42e5f75f0351b11b35" integrity sha512-cM5kPFb6EFH5q52WzRxfRX9+8g5kq78McWOYs6e1seo+nK6NpfLupT5uOCIJp37jU8ayd4Su8ni3HRFTN2C2kg== -"@react-hookz/web@^13.0.0": - version "13.3.0" - resolved "https://registry.npmjs.org/@react-hookz/web/-/web-13.3.0.tgz#257e31049e92a121912fe1e67bdd01dbec5a203b" - integrity sha512-KswgkmqBVVDo6UnBFfssrojmDisogxC4jGZmd976R8YHoS3zdQJxjqICpOBSRohbRyYhYS9Cprw7BuV/CZcMaw== - dependencies: - "@react-hookz/deep-equal" "^1.0.1" - "@react-hookz/web@^14.0.0": version "14.7.1" resolved "https://registry.npmjs.org/@react-hookz/web/-/web-14.7.1.tgz#5e39e6fc21331cc4ae95f36e8135ad763e6c29fb" @@ -5269,6 +5336,13 @@ dependencies: "@react-hookz/deep-equal" "^1.0.2" +"@react-hookz/web@^15.0.0": + version "15.0.1" + resolved "https://registry.npmjs.org/@react-hookz/web/-/web-15.0.1.tgz#a6e5460dd16e54ccc0b899e1eed4ae29e871060f" + integrity sha512-nvVLUsDFv3fpZcINoy3I4MeaX8+yoKU21m2Ey2g0VAVqOMp+0GBBC6OHkzT2lRa2fiPIVuJwlmboSKQt7segfQ== + dependencies: + "@react-hookz/deep-equal" "^1.0.2" + "@repeaterjs/repeater@^3.0.4": version "3.0.4" resolved "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca" @@ -7417,9 +7491,9 @@ eslint-visitor-keys "^3.0.0" "@uiw/react-codemirror@^4.9.3": - version "4.9.5" - resolved "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.9.5.tgz#0f66c09dfc355baef5a7020f206da8db90bae223" - integrity sha512-KHgP/PII9Gv4iEUzbdO95qpSSPy27iSHzxQ01mBPWC4UvzuA0eQY2h64gzi/ld68esbKMGYoevgOBPCRJwNN1A== + version "4.10.4" + resolved "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.10.4.tgz#f26833d5cfc4c63de1858c587218efd9f85f18e2" + integrity sha512-eMl/Xtmhhjo1Hmx0P1NgwVlviOUCdjSYPKHn0bgUG6aLgZjCo1l0MJDDuLikGp8YlDrXcDKgiuXPt4GykBaUmg== dependencies: "@babel/runtime" ">=7.11.0" "@codemirror/theme-one-dark" "^6.0.0" @@ -7774,13 +7848,6 @@ anafanafo@2.0.0: dependencies: char-width-table-consumer "^1.0.0" -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - ansi-colors@^4.1.1, ansi-colors@^4.1.3: version "4.1.3" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" @@ -8344,9 +8411,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1167.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1167.0.tgz#e8614bce1a7355782734b6928792f14d11b39231" - integrity sha512-hUJzAqWVfNYpct1S+GjyPIc2s+GZcAhbWVqIG4qbLYZ3+sBTcjv3lLH5zx7K+qcTGINDU0g4EsMi6hIrAU+blg== + version "2.1168.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1168.0.tgz#7936459edee0c999065f1ecf2ef0bea89ea056c1" + integrity sha512-9+WYoYTHHjLqeWdSSLbNpmc/NgnZpX4LGiyYjXenh4WNRBXshXI0XioTK8BQgDscVzB978EJV8kG1nZGE3USzw== dependencies: buffer "4.9.2" events "1.1.1" @@ -8867,20 +8934,6 @@ bottleneck@^2.15.3: resolved "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== -boxen@^5.0.0: - version "5.1.2" - resolved "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" - integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^6.2.0" - chalk "^4.1.0" - cli-boxes "^2.2.1" - string-width "^4.2.2" - type-fest "^0.20.2" - widest-line "^3.1.0" - wrap-ansi "^7.0.0" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -9081,7 +9134,7 @@ buffer@4.9.2, buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.2.0, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0, buffer@^5.7.0: +buffer@^5.2.0, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0, buffer@^5.7.0, buffer@^5.7.1: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -9124,6 +9177,13 @@ builtins@^5.0.0: dependencies: semver "^7.0.0" +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + byline@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" @@ -9592,11 +9652,6 @@ clean-stack@^2.0.0: resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-boxes@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - cli-cursor@^2.0.0, cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -10145,18 +10200,6 @@ config-chain@^1.1.12: ini "^1.3.4" proto-list "~1.2.1" -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - connect-history-api-fallback@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" @@ -10558,6 +10601,19 @@ cross-undici-fetch@^0.3.0: undici "^5.0.0" web-streams-polyfill "^3.2.0" +cross-undici-fetch@^0.4.11: + version "0.4.11" + resolved "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.4.11.tgz#bef38dc729a01db6e07c84fee6de1089b5d3d0a4" + integrity sha512-pRp+EWewyOPYIeUvwOqCIqylCFWqlBwwr6nlZB38v3PhWxS1RYfSgHUJApYTT8jm71SbL5p4qg5kUQv6ZyS24A== + dependencies: + abort-controller "^3.0.0" + busboy "^1.6.0" + form-data-encoder "^1.7.1" + formdata-node "^4.3.1" + node-fetch "^2.6.7" + undici "5.5.1" + web-streams-polyfill "^3.2.0" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -10575,11 +10631,6 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - css-box-model@^1.2.0: version "1.2.1" resolved "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1" @@ -11680,7 +11731,7 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dot-prop@^5.1.0, dot-prop@^5.2.0: +dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== @@ -11704,7 +11755,7 @@ drange@^1.0.2: resolved "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz#b2aecec2aab82fcef11dbbd7b9e32b83f8f6c0b8" integrity sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA== -dset@^3.1.0, dset@^3.1.1: +dset@^3.1.0, dset@^3.1.1, dset@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== @@ -11823,11 +11874,6 @@ emittery@^0.8.1: resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -12200,11 +12246,6 @@ escalade@^3.1.1: resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -12427,9 +12468,9 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.6.0: - version "8.18.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz#78d565d16c993d0b73968c523c0446b13da784fd" - integrity sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA== + version "8.19.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz#7342a3cbc4fbc5c106a1eefe0fd0b50b6b1a7d28" + integrity sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw== dependencies: "@eslint/eslintrc" "^1.3.0" "@humanwhocodes/config-array" "^0.9.2" @@ -12587,63 +12628,63 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: safe-buffer "^5.1.1" "example-app@link:packages/app": - version "0.2.73-next.1" + version "0.2.73-next.2" dependencies: - "@backstage/app-defaults" "^1.0.4-next.1" - "@backstage/catalog-model" "^1.1.0-next.1" - "@backstage/cli" "^0.18.0-next.1" + "@backstage/app-defaults" "^1.0.4-next.2" + "@backstage/catalog-model" "^1.1.0-next.2" + "@backstage/cli" "^0.18.0-next.2" "@backstage/config" "^1.0.1" "@backstage/core-app-api" "^1.0.4-next.0" - "@backstage/core-components" "^0.9.6-next.1" + "@backstage/core-components" "^0.10.0-next.2" "@backstage/core-plugin-api" "^1.0.3" - "@backstage/integration-react" "^1.1.2-next.1" - "@backstage/plugin-airbrake" "^0.3.7-next.1" - "@backstage/plugin-apache-airflow" "^0.2.0-next.1" - "@backstage/plugin-api-docs" "^0.8.7-next.1" - "@backstage/plugin-azure-devops" "^0.1.23-next.1" - "@backstage/plugin-badges" "^0.2.31-next.1" - "@backstage/plugin-catalog" "^1.3.1-next.1" + "@backstage/integration-react" "^1.1.2-next.2" + "@backstage/plugin-airbrake" "^0.3.7-next.2" + "@backstage/plugin-apache-airflow" "^0.2.0-next.2" + "@backstage/plugin-api-docs" "^0.8.7-next.2" + "@backstage/plugin-azure-devops" "^0.1.23-next.2" + "@backstage/plugin-badges" "^0.2.31-next.2" + "@backstage/plugin-catalog" "^1.4.0-next.2" "@backstage/plugin-catalog-common" "^1.0.4-next.0" - "@backstage/plugin-catalog-graph" "^0.2.19-next.1" - "@backstage/plugin-catalog-import" "^0.8.10-next.1" - "@backstage/plugin-catalog-react" "^1.1.2-next.1" - "@backstage/plugin-circleci" "^0.3.7-next.1" - "@backstage/plugin-cloudbuild" "^0.3.7-next.1" - "@backstage/plugin-code-coverage" "^0.1.34-next.1" - "@backstage/plugin-cost-insights" "^0.11.29-next.1" - "@backstage/plugin-dynatrace" "^0.1.1-next.1" - "@backstage/plugin-explore" "^0.3.38-next.1" - "@backstage/plugin-gcalendar" "^0.3.3-next.1" - "@backstage/plugin-gcp-projects" "^0.3.26-next.1" - "@backstage/plugin-github-actions" "^0.5.7-next.1" - "@backstage/plugin-gocd" "^0.1.13-next.1" - "@backstage/plugin-graphiql" "^0.2.39-next.1" - "@backstage/plugin-home" "^0.4.23-next.1" - "@backstage/plugin-jenkins" "^0.7.6-next.1" - "@backstage/plugin-kafka" "^0.3.7-next.1" - "@backstage/plugin-kubernetes" "^0.6.7-next.1" - "@backstage/plugin-lighthouse" "^0.3.7-next.1" - "@backstage/plugin-newrelic" "^0.3.25-next.1" - "@backstage/plugin-newrelic-dashboard" "^0.1.15-next.1" - "@backstage/plugin-org" "^0.5.7-next.1" - "@backstage/plugin-pagerduty" "0.5.0-next.1" + "@backstage/plugin-catalog-graph" "^0.2.19-next.2" + "@backstage/plugin-catalog-import" "^0.8.10-next.2" + "@backstage/plugin-catalog-react" "^1.1.2-next.2" + "@backstage/plugin-circleci" "^0.3.7-next.2" + "@backstage/plugin-cloudbuild" "^0.3.7-next.2" + "@backstage/plugin-code-coverage" "^0.1.34-next.2" + "@backstage/plugin-cost-insights" "^0.11.29-next.2" + "@backstage/plugin-dynatrace" "^0.1.1-next.2" + "@backstage/plugin-explore" "^0.3.38-next.2" + "@backstage/plugin-gcalendar" "^0.3.3-next.2" + "@backstage/plugin-gcp-projects" "^0.3.26-next.2" + "@backstage/plugin-github-actions" "^0.5.7-next.2" + "@backstage/plugin-gocd" "^0.1.13-next.2" + "@backstage/plugin-graphiql" "^0.2.39-next.2" + "@backstage/plugin-home" "^0.4.23-next.2" + "@backstage/plugin-jenkins" "^0.7.6-next.2" + "@backstage/plugin-kafka" "^0.3.7-next.2" + "@backstage/plugin-kubernetes" "^0.6.7-next.2" + "@backstage/plugin-lighthouse" "^0.3.7-next.2" + "@backstage/plugin-newrelic" "^0.3.25-next.2" + "@backstage/plugin-newrelic-dashboard" "^0.1.15-next.2" + "@backstage/plugin-org" "^0.5.7-next.2" + "@backstage/plugin-pagerduty" "0.5.0-next.2" "@backstage/plugin-permission-react" "^0.4.3-next.0" - "@backstage/plugin-rollbar" "^0.4.7-next.1" - "@backstage/plugin-scaffolder" "^1.4.0-next.1" - "@backstage/plugin-search" "^0.9.1-next.1" + "@backstage/plugin-rollbar" "^0.4.7-next.2" + "@backstage/plugin-scaffolder" "^1.4.0-next.2" + "@backstage/plugin-search" "^0.9.1-next.2" "@backstage/plugin-search-common" "^0.3.6-next.0" - "@backstage/plugin-search-react" "^0.2.2-next.1" - "@backstage/plugin-sentry" "^0.3.45-next.1" - "@backstage/plugin-shortcuts" "^0.2.8-next.1" - "@backstage/plugin-stack-overflow" "^0.1.3-next.1" - "@backstage/plugin-tech-insights" "^0.2.3-next.1" - "@backstage/plugin-tech-radar" "^0.5.14-next.1" - "@backstage/plugin-techdocs" "^1.2.1-next.1" - "@backstage/plugin-techdocs-module-addons-contrib" "^1.0.2-next.1" - "@backstage/plugin-techdocs-react" "^1.0.2-next.0" - "@backstage/plugin-todo" "^0.2.9-next.1" - "@backstage/plugin-user-settings" "^0.4.6-next.1" - "@backstage/theme" "^0.2.16-next.0" + "@backstage/plugin-search-react" "^0.2.2-next.2" + "@backstage/plugin-sentry" "^0.3.45-next.2" + "@backstage/plugin-shortcuts" "^0.2.8-next.2" + "@backstage/plugin-stack-overflow" "^0.1.3-next.2" + "@backstage/plugin-tech-insights" "^0.2.3-next.2" + "@backstage/plugin-tech-radar" "^0.5.14-next.2" + "@backstage/plugin-techdocs" "^1.2.1-next.2" + "@backstage/plugin-techdocs-module-addons-contrib" "^1.0.2-next.2" + "@backstage/plugin-techdocs-react" "^1.0.2-next.1" + "@backstage/plugin-todo" "^0.2.9-next.2" + "@backstage/plugin-user-settings" "^0.4.6-next.2" + "@backstage/theme" "^0.2.16-next.1" "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" "@material-ui/lab" "4.0.0-alpha.57" @@ -14100,23 +14141,6 @@ got@11.8.3: p-cancelable "^2.0.0" responselike "^2.0.0" -got@^11.8.0: - version "11.8.5" - resolved "https://registry.npmjs.org/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" - integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - got@^9.6.0: version "9.6.0" resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -14418,11 +14442,6 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - has@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -14928,11 +14947,6 @@ import-from@^3.0.0: dependencies: resolve-from "^5.0.0" -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - import-lazy@~4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" @@ -15454,7 +15468,7 @@ is-in-browser@^1.0.2, is-in-browser@^1.1.3: resolved "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= -is-installed-globally@^0.4.0, is-installed-globally@~0.4.0: +is-installed-globally@~0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== @@ -15494,11 +15508,6 @@ is-node-process@^1.0.1: resolved "https://registry.npmjs.org/is-node-process/-/is-node-process-1.0.1.tgz#4fc7ac3a91e8aac58175fe0578abbc56f2831b23" integrity sha512-5IcdXuf++TTNt3oGl9EBdkvndXA8gmc4bz/Y+mdEpWh3Mcn/+kOw6hI7LD5CocqJWMzeb0I0ClndRVNdEPuJXQ== -is-npm@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" - integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== - is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -15781,11 +15790,6 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - isarray@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -15879,6 +15883,11 @@ isomorphic-ws@^4.0.1: resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + isstream@~0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -16439,13 +16448,6 @@ joi@^17.4.0: "@sideway/formula" "^3.0.0" "@sideway/pinpoint" "^2.0.0" -jose@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/jose/-/jose-2.0.5.tgz#29746a18d9fff7dcf9d5d2a6f62cb0c7cd27abd3" - integrity sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA== - dependencies: - "@panva/asn1.js" "^1.0.0" - jose@^4.1.4: version "4.5.0" resolved "https://registry.npmjs.org/jose/-/jose-4.5.0.tgz#92829d8cf846351eb55aaaf94f252fb1d191f2d5" @@ -17092,7 +17094,7 @@ language-tags@^1.0.5: dependencies: language-subtag-registry "~0.3.2" -latest-version@5.1.0, latest-version@^5.1.0: +latest-version@5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== @@ -17698,9 +17700,9 @@ log-update@^4.0.0: wrap-ansi "^6.2.0" logform@^2.3.2, logform@^2.4.0: - version "2.4.1" - resolved "https://registry.npmjs.org/logform/-/logform-2.4.1.tgz#512c9eaef738044d1c619790ba0f806c80d9d3a9" - integrity sha512-7XB/tqc3VRbri9pRjU6E97mQ8vC27ivJ3lct4jhyT+n0JNDd4YKldFl0D75NqDp46hk8RC7Ma1Vjv/UPf67S+A== + version "2.4.2" + resolved "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz#a617983ac0334d0c3b942c34945380062795b47c" + integrity sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw== dependencies: "@colors/colors" "1.5.0" fecha "^4.2.0" @@ -17848,7 +17850,7 @@ make-dir@^3.0.0, make-dir@^3.1.0: dependencies: semver "^6.0.0" -make-error@^1, make-error@^1.1.1, make-error@^1.3.6: +make-error@^1, make-error@^1.1.1: version "1.3.6" resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== @@ -18941,10 +18943,10 @@ msw@^0.39.2: type-fest "^1.2.2" yargs "^17.3.1" -msw@^0.42.0: - version "0.42.3" - resolved "https://registry.npmjs.org/msw/-/msw-0.42.3.tgz#150c475e2cb6d53c67503bd0e3f6251bfd075328" - integrity sha512-zrKBIGCDsNUCZLd3DLSeUtRruZ0riwJgORg9/bSDw3D0PTI8XUGAK3nC0LJA9g0rChGuKaWK/SwObA8wpFrz4g== +msw@^0.43.0: + version "0.43.0" + resolved "https://registry.npmjs.org/msw/-/msw-0.43.0.tgz#10c6fc3fb1752c0a144179e5ab04c6a512cc9959" + integrity sha512-XJylZP0qW3D5WUGWh9FFefJEl3MGG4y1I+/8a833d0eedm6B+GaPm6wPVZNcnlS2YVTagvEgShVJ7ZtY66tTRQ== dependencies: "@mswjs/cookies" "^0.2.0" "@mswjs/interceptors" "^0.16.3" @@ -19238,9 +19240,9 @@ node-releases@^2.0.1: integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== nodemon@^2.0.2: - version "2.0.18" - resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.18.tgz#0f5a3aa7b4587f2626e6f01369deba89cb0462a2" - integrity sha512-uAvrKipi2zAz8E7nkSz4qW4F4zd5fs2wNGsTx+xXlP8KXqd9ucE0vY9wankOsPboeDyuUGN9vsXGV1pLn80l/A== + version "2.0.19" + resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz#cac175f74b9cb8b57e770d47841995eebe4488bd" + integrity sha512-4pv1f2bMDj0Eeg/MhGqxrtveeQ5/G/UVe9iO6uTZzjnRluSA4PVWf8CW99LUPwGB3eNIA7zUFoP77YuI7hOc0A== dependencies: chokidar "^3.5.2" debug "^3.2.7" @@ -19248,10 +19250,10 @@ nodemon@^2.0.2: minimatch "^3.0.4" pstree.remy "^1.1.8" semver "^5.7.1" + simple-update-notifier "^1.0.7" supports-color "^5.5.0" touch "^3.1.0" undefsafe "^2.0.5" - update-notifier "^5.1.0" nopt@1.0.10, nopt@~1.0.10: version "1.0.10" @@ -19769,20 +19771,7 @@ openapi-types@^12.0.0: resolved "https://registry.npmjs.org/openapi-types/-/openapi-types-12.0.0.tgz#458a99d048f9eae1c067e15d56a8bfb3726041f1" integrity sha512-6Wd9k8nmGQHgCbehZCP6wwWcfXcvinhybUTBatuhjRsCxUIujuYFZc9QnGeae75CyHASewBtxs0HX/qwREReUw== -openid-client@^4.1.1: - version "4.9.0" - resolved "https://registry.npmjs.org/openid-client/-/openid-client-4.9.0.tgz#bdfc9194435316df419f759ce177635146b43074" - integrity sha512-ThBbvRUUZwxUKBVK2UpDNIZ3eJkvtqWI8s5Dm+naV+gJdL+yRhT+8ywqct1gy5uL+xVS5+A/nhFcpJIisH2x6Q== - dependencies: - aggregate-error "^3.1.0" - got "^11.8.0" - jose "^2.0.5" - lru-cache "^6.0.0" - make-error "^1.3.6" - object-hash "^2.0.1" - oidc-token-hash "^5.0.1" - -openid-client@^5.1.3: +openid-client@^5.1.3, openid-client@^5.1.6: version "5.1.8" resolved "https://registry.npmjs.org/openid-client/-/openid-client-5.1.8.tgz#3a24910288b32c32f548fb6e391f44178ce6370f" integrity sha512-EPxJY6bT7YIYQEXSGxRC5flQ3GUhLy98ufdto6+BVBrFGPmwjUpy4xBcYuU/Wt9nPkO/3EgljBrr6Ezx4lp1RQ== @@ -20431,10 +20420,10 @@ path-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" -path-equal@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/path-equal/-/path-equal-1.1.2.tgz#260e7c449c4c2022f68cc5fa6e617e892858250d" - integrity sha512-p5kxPPwCdbf5AdXzT1bUBJomhgBlEjRBavYNr1XUpMFIE4Hnf2roueCMXudZK5tnaAu1tTmp3GPzqwJK45IHEA== +path-equal@^1.1.2: + version "1.2.2" + resolved "https://registry.npmjs.org/path-equal/-/path-equal-1.2.2.tgz#fa2997f0a829de22ec8f5f86461ca5590d49b832" + integrity sha512-AUJvbcle1Zgb1TgtftHYknlrgrSYyI1ytrYgSbKUHSybwqUDnbD2cw9PIWivuMvsN+GTXmr/DRN4VBXpHG6aGg== path-exists@^2.0.0: version "2.1.0" @@ -21477,17 +21466,10 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -pupa@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== - dependencies: - escape-goat "^2.0.0" - puppeteer@^15.0.0: - version "15.2.0" - resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-15.2.0.tgz#9cd81334f9c6a2e1c972b5a7ecf3f18ab3bfb978" - integrity sha512-6Mzj5pbq4J4DxJE5o6V+arrOB9Gma0CxOLP1zKYMrMR7AYuNaPzsK7pBrpDwI64W6Mxk5G7NqiLSFTrgSzR1zg== + version "15.3.1" + resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-15.3.1.tgz#0ff9b433a8fc3798f5ec82ea4b31ec47857219cf" + integrity sha512-Z+SpYBiS1zUzMXV7Wnhe2pyuVCFAFRTq1UrUWHB2CkLos5v7bXvXYuZ3Fn5pSN5IObxijyx4opNYKTCRnGni6Q== dependencies: cross-fetch "3.1.5" debug "4.3.4" @@ -23123,13 +23105,6 @@ semver-compare@^1.0.0: resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - semver-store@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz#ce602ff07df37080ec9f4fb40b29576547befbe9" @@ -23140,7 +23115,7 @@ semver-store@^0.3.0: resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.0.0: +semver@7.0.0, semver@~7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== @@ -23411,6 +23386,13 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +simple-update-notifier@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz#7edf75c5bdd04f88828d632f762b2bc32996a9cc" + integrity sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew== + dependencies: + semver "~7.0.0" + sinon@^13.0.2: version "13.0.2" resolved "https://registry.npmjs.org/sinon/-/sinon-13.0.2.tgz#c6a8ddd655dc1415bbdc5ebf0e5b287806850c3a" @@ -24026,6 +24008,11 @@ stream-transform@^2.1.3: dependencies: mixme "^0.5.1" +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + strict-event-emitter@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.0.tgz#78e2f75dc6ea502e5d8a877661065a1e2deedecd" @@ -24077,7 +24064,7 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -24094,15 +24081,6 @@ string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - string-width@^5.0.0: version "5.1.2" resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -24158,7 +24136,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@5.2.0, strip-ansi@^5.1.0: +strip-ansi@5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -24512,6 +24490,14 @@ sync-fetch@0.3.1, sync-fetch@^0.3.1: buffer "^5.7.0" node-fetch "^2.6.1" +sync-fetch@0.4.1, sync-fetch@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.4.1.tgz#87b8684eef2fa25c96c4683ae308473a4e5c571f" + integrity sha512-JDtyFEvnKUzt1CxRtzzsGgkBanEv8XRmLyJo0F0nGkpCR8EjYmpOJJXz8GA/SWtlPU0nAYh0+CNMNnFworGyOA== + dependencies: + buffer "^5.7.1" + node-fetch "^2.6.1" + tapable@^1.0.0: version "1.1.3" resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" @@ -24578,21 +24564,21 @@ tdigest@^0.1.1: bintrees "1.0.1" "techdocs-cli-embedded-app@link:packages/techdocs-cli-embedded-app": - version "0.2.72-next.1" + version "0.2.72-next.2" dependencies: - "@backstage/app-defaults" "^1.0.4-next.1" - "@backstage/catalog-model" "^1.1.0-next.1" - "@backstage/cli" "^0.18.0-next.1" + "@backstage/app-defaults" "^1.0.4-next.2" + "@backstage/catalog-model" "^1.1.0-next.2" + "@backstage/cli" "^0.18.0-next.2" "@backstage/config" "^1.0.1" "@backstage/core-app-api" "^1.0.4-next.0" - "@backstage/core-components" "^0.9.6-next.1" + "@backstage/core-components" "^0.10.0-next.2" "@backstage/core-plugin-api" "^1.0.3" - "@backstage/integration-react" "^1.1.2-next.1" - "@backstage/plugin-catalog" "^1.3.1-next.1" - "@backstage/plugin-techdocs" "^1.2.1-next.1" - "@backstage/plugin-techdocs-react" "^1.0.2-next.0" + "@backstage/integration-react" "^1.1.2-next.2" + "@backstage/plugin-catalog" "^1.4.0-next.2" + "@backstage/plugin-techdocs" "^1.2.1-next.2" + "@backstage/plugin-techdocs-react" "^1.0.2-next.1" "@backstage/test-utils" "^1.1.2-next.1" - "@backstage/theme" "^0.2.16-next.0" + "@backstage/theme" "^0.2.16-next.1" "@material-ui/core" "^4.11.0" "@material-ui/icons" "^4.9.1" history "^5.0.0" @@ -25232,15 +25218,15 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript-json-schema@^0.53.0: - version "0.53.1" - resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.53.1.tgz#9204547f3e145169b40928998366ff6d28b81d32" - integrity sha512-Hg+RnOKUd38MOzC0rDft03a8xvwO+gCcj1F77smw2tCoZYQpFoLtrXWBGdvCX+REliko5WYel2kux17HPFqjLQ== +typescript-json-schema@^0.54.0: + version "0.54.0" + resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.54.0.tgz#b3fc42ad90df6a0f6ab57571ebc8b4d41125df4f" + integrity sha512-/MNhm1pjdxXiVspjjyRCrQAA1B768cRzHU83aIqN5vQqQEW2NgyyKOfcguiRIMM64lseIZIelegnHOHEu7YDCg== dependencies: "@types/json-schema" "^7.0.9" "@types/node" "^16.9.2" glob "^7.1.7" - path-equal "1.1.2" + path-equal "^1.1.2" safe-stable-stringify "^2.2.0" ts-node "^10.2.1" typescript "~4.6.0" @@ -25316,7 +25302,7 @@ underscore@^1.12.1, underscore@^1.9.1: resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== -undici@^5.0.0: +undici@5.5.1, undici@^5.0.0: version "5.5.1" resolved "https://registry.npmjs.org/undici/-/undici-5.5.1.tgz#baaf25844a99eaa0b22e1ef8d205bffe587c8f43" integrity sha512-MEvryPLf18HvlCbLSzCW0U00IMftKGI5udnjrQbC5D4P0Hodwffhv+iGfWuJwg16Y/TK11ZFK8i+BPVW2z/eAw== @@ -25393,13 +25379,6 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - unist-builder@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.0.tgz#728baca4767c0e784e1e64bb44b5a5a753021a04" @@ -25547,26 +25526,6 @@ upath@^2.0.1: resolved "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== -update-notifier@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" - integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== - dependencies: - boxen "^5.0.0" - chalk "^4.1.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.4.0" - is-npm "^5.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.1.0" - pupa "^2.1.1" - semver "^7.3.4" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - upper-case-first@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" @@ -25878,9 +25837,9 @@ vm-browserify@^1.0.1: integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== vm2@^3.9.6: - version "3.9.9" - resolved "https://registry.npmjs.org/vm2/-/vm2-3.9.9.tgz#c0507bc5fbb99388fad837d228badaaeb499ddc5" - integrity sha512-xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw== + version "3.9.10" + resolved "https://registry.npmjs.org/vm2/-/vm2-3.9.10.tgz#c66543096b5c44c8861a6465805c23c7cc996a44" + integrity sha512-AuECTSvwu2OHLAZYhG716YzwodKCIJxB6u1zG7PgSQwIgAlEaoXH52bxdcvT8GkGjnYK7r7yWDW0m0sOsPuBjQ== dependencies: acorn "^8.7.0" acorn-walk "^8.2.0" @@ -26194,13 +26153,6 @@ wide-align@^1.1.0, wide-align@^1.1.2, wide-align@^1.1.5: dependencies: string-width "^1.0.2 || 2 || 3 || 4" -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - window-size@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" @@ -26372,11 +26324,6 @@ xcase@^2.0.1: resolved "https://registry.npmjs.org/xcase/-/xcase-2.0.1.tgz#c7fa72caa0f440db78fd5673432038ac984450b9" integrity sha1-x/pyyqD0QNt4/VZzQyA4rJhEULk= -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - xhr@^2.0.1: version "2.6.0" resolved "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d"