diff --git a/.changeset/angry-trees-relax.md b/.changeset/angry-trees-relax.md
new file mode 100644
index 0000000000..64dd50366c
--- /dev/null
+++ b/.changeset/angry-trees-relax.md
@@ -0,0 +1,11 @@
+---
+'@backstage/plugin-scaffolder': patch
+---
+
+Enabling the customization of the last step in the scaffolder template.
+
+To override the content you have to do the next:
+
+```typescript jsx
+
+```
diff --git a/.changeset/clean-paws-fry.md b/.changeset/clean-paws-fry.md
new file mode 100644
index 0000000000..5e66a686c0
--- /dev/null
+++ b/.changeset/clean-paws-fry.md
@@ -0,0 +1,5 @@
+---
+'@backstage/repo-tools': minor
+---
+
+Introducing repo-tools package
diff --git a/.changeset/clever-rivers-obey.md b/.changeset/clever-rivers-obey.md
new file mode 100644
index 0000000000..0fac8711e9
--- /dev/null
+++ b/.changeset/clever-rivers-obey.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-github': patch
+---
+
+Fixes the assignment of group member references in `GithubMultiOrgProcessor` so membership relations are resolved correctly.
diff --git a/.changeset/early-parrots-guess.md b/.changeset/early-parrots-guess.md
new file mode 100644
index 0000000000..4df8dcea95
--- /dev/null
+++ b/.changeset/early-parrots-guess.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder': patch
+---
+
+Initialize all `formData` in the `Stepper` in `/next`
diff --git a/.changeset/fair-walls-talk.md b/.changeset/fair-walls-talk.md
new file mode 100644
index 0000000000..3e3ee26160
--- /dev/null
+++ b/.changeset/fair-walls-talk.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-org-react': patch
+---
+
+Bug fixes and adding the possibility to add a default value for the `GroupListPicker`. Fixes: Vertical size jump on text entry, left align for text, selecting a value closes the popup, auto focus on the popup when opening
diff --git a/.changeset/four-adults-provide.md b/.changeset/four-adults-provide.md
new file mode 100644
index 0000000000..0edb4807d9
--- /dev/null
+++ b/.changeset/four-adults-provide.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-cost-insights': patch
+---
+
+Provide the ability to change the base currency from USD to any other currency in cost insights plugin
diff --git a/.changeset/gold-icons-cheat.md b/.changeset/gold-icons-cheat.md
new file mode 100644
index 0000000000..3c5e796c05
--- /dev/null
+++ b/.changeset/gold-icons-cheat.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Bump `msw` version in default plugin/app templates
diff --git a/.changeset/modern-mugs-shout.md b/.changeset/modern-mugs-shout.md
new file mode 100644
index 0000000000..cb845b1fff
--- /dev/null
+++ b/.changeset/modern-mugs-shout.md
@@ -0,0 +1,5 @@
+---
+'@backstage/core-components': patch
+---
+
+Add items prop to SupportButton. This prop can be used to override the items that would otherwise be grabbed from the config.
diff --git a/.changeset/pre.json b/.changeset/pre.json
new file mode 100644
index 0000000000..75ac96bbd7
--- /dev/null
+++ b/.changeset/pre.json
@@ -0,0 +1,193 @@
+{
+ "mode": "pre",
+ "tag": "next",
+ "initialVersions": {
+ "example-app": "0.2.77",
+ "@backstage/app-defaults": "1.0.8",
+ "example-backend": "0.2.77",
+ "@backstage/backend-app-api": "0.2.3",
+ "@backstage/backend-common": "0.16.0",
+ "@backstage/backend-defaults": "0.1.3",
+ "example-backend-next": "0.0.5",
+ "@backstage/backend-plugin-api": "0.1.4",
+ "@backstage/backend-tasks": "0.3.7",
+ "@backstage/backend-test-utils": "0.1.30",
+ "@backstage/catalog-client": "1.1.2",
+ "@backstage/catalog-model": "1.1.3",
+ "@backstage/cli": "0.21.0",
+ "@backstage/cli-common": "0.1.10",
+ "@backstage/codemods": "0.1.41",
+ "@backstage/config": "1.0.4",
+ "@backstage/config-loader": "1.1.6",
+ "@backstage/core-app-api": "1.2.0",
+ "@backstage/core-components": "0.12.0",
+ "@backstage/core-plugin-api": "1.1.0",
+ "@backstage/create-app": "0.4.34",
+ "@backstage/dev-utils": "1.0.8",
+ "e2e-test": "0.2.0",
+ "@backstage/errors": "1.1.3",
+ "@backstage/integration": "1.4.0",
+ "@backstage/integration-react": "1.1.6",
+ "@backstage/release-manifests": "0.0.7",
+ "@backstage/repo-tools": "0.0.0",
+ "@techdocs/cli": "1.2.3",
+ "techdocs-cli-embedded-app": "0.2.76",
+ "@backstage/test-utils": "1.2.2",
+ "@backstage/theme": "0.2.16",
+ "@backstage/types": "1.0.1",
+ "@backstage/version-bridge": "1.0.2",
+ "@backstage/plugin-adr": "0.2.3",
+ "@backstage/plugin-adr-backend": "0.2.3",
+ "@backstage/plugin-adr-common": "0.2.3",
+ "@backstage/plugin-airbrake": "0.3.11",
+ "@backstage/plugin-airbrake-backend": "0.2.11",
+ "@backstage/plugin-allure": "0.1.27",
+ "@backstage/plugin-analytics-module-ga": "0.1.22",
+ "@backstage/plugin-apache-airflow": "0.2.4",
+ "@backstage/plugin-api-docs": "0.8.11",
+ "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.0",
+ "@backstage/plugin-apollo-explorer": "0.1.4",
+ "@backstage/plugin-app-backend": "0.3.38",
+ "@backstage/plugin-auth-backend": "0.17.1",
+ "@backstage/plugin-auth-node": "0.2.7",
+ "@backstage/plugin-azure-devops": "0.2.2",
+ "@backstage/plugin-azure-devops-backend": "0.3.17",
+ "@backstage/plugin-azure-devops-common": "0.3.0",
+ "@backstage/plugin-azure-sites": "0.1.0",
+ "@backstage/plugin-azure-sites-backend": "0.1.0",
+ "@backstage/plugin-azure-sites-common": "0.1.0",
+ "@backstage/plugin-badges": "0.2.35",
+ "@backstage/plugin-badges-backend": "0.1.32",
+ "@backstage/plugin-bazaar": "0.2.0",
+ "@backstage/plugin-bazaar-backend": "0.2.1",
+ "@backstage/plugin-bitbucket-cloud-common": "0.2.1",
+ "@backstage/plugin-bitrise": "0.1.38",
+ "@backstage/plugin-catalog": "1.6.1",
+ "@backstage/plugin-catalog-backend": "1.5.1",
+ "@backstage/plugin-catalog-backend-module-aws": "0.1.11",
+ "@backstage/plugin-catalog-backend-module-azure": "0.1.9",
+ "@backstage/plugin-catalog-backend-module-bitbucket": "0.2.5",
+ "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.5",
+ "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.3",
+ "@backstage/plugin-catalog-backend-module-gerrit": "0.1.6",
+ "@backstage/plugin-catalog-backend-module-github": "0.2.0",
+ "@backstage/plugin-catalog-backend-module-gitlab": "0.1.9",
+ "@backstage/plugin-catalog-backend-module-ldap": "0.5.5",
+ "@backstage/plugin-catalog-backend-module-msgraph": "0.4.4",
+ "@backstage/plugin-catalog-backend-module-openapi": "0.1.4",
+ "@backstage/plugin-catalog-common": "1.0.8",
+ "@internal/plugin-catalog-customized": "0.0.4",
+ "@backstage/plugin-catalog-graph": "0.2.23",
+ "@backstage/plugin-catalog-graphql": "0.3.15",
+ "@backstage/plugin-catalog-import": "0.9.1",
+ "@backstage/plugin-catalog-node": "1.2.1",
+ "@backstage/plugin-catalog-react": "1.2.1",
+ "@backstage/plugin-cicd-statistics": "0.1.13",
+ "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.7",
+ "@backstage/plugin-circleci": "0.3.11",
+ "@backstage/plugin-cloudbuild": "0.3.11",
+ "@backstage/plugin-code-climate": "0.1.11",
+ "@backstage/plugin-code-coverage": "0.2.4",
+ "@backstage/plugin-code-coverage-backend": "0.2.4",
+ "@backstage/plugin-codescene": "0.1.6",
+ "@backstage/plugin-config-schema": "0.1.34",
+ "@backstage/plugin-cost-insights": "0.12.0",
+ "@backstage/plugin-cost-insights-common": "0.1.1",
+ "@backstage/plugin-dynatrace": "1.0.1",
+ "@backstage/plugin-events-backend": "0.1.0",
+ "@backstage/plugin-events-backend-module-aws-sqs": "0.1.0",
+ "@backstage/plugin-events-backend-module-azure": "0.1.0",
+ "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.1.0",
+ "@backstage/plugin-events-backend-module-gerrit": "0.1.0",
+ "@backstage/plugin-events-backend-module-github": "0.1.0",
+ "@backstage/plugin-events-backend-module-gitlab": "0.1.0",
+ "@backstage/plugin-events-backend-test-utils": "0.1.0",
+ "@backstage/plugin-events-node": "0.1.0",
+ "@internal/plugin-todo-list": "1.0.7",
+ "@internal/plugin-todo-list-backend": "1.0.7",
+ "@internal/plugin-todo-list-common": "1.0.6",
+ "@backstage/plugin-explore": "0.3.42",
+ "@backstage/plugin-explore-react": "0.0.23",
+ "@backstage/plugin-firehydrant": "0.1.28",
+ "@backstage/plugin-fossa": "0.2.43",
+ "@backstage/plugin-gcalendar": "0.3.7",
+ "@backstage/plugin-gcp-projects": "0.3.30",
+ "@backstage/plugin-git-release-manager": "0.3.24",
+ "@backstage/plugin-github-actions": "0.5.11",
+ "@backstage/plugin-github-deployments": "0.1.42",
+ "@backstage/plugin-github-issues": "0.2.0",
+ "@backstage/plugin-github-pull-requests-board": "0.1.5",
+ "@backstage/plugin-gitops-profiles": "0.3.29",
+ "@backstage/plugin-gocd": "0.1.17",
+ "@backstage/plugin-graphiql": "0.2.43",
+ "@backstage/plugin-graphql-backend": "0.1.28",
+ "@backstage/plugin-home": "0.4.27",
+ "@backstage/plugin-ilert": "0.2.0",
+ "@backstage/plugin-jenkins": "0.7.10",
+ "@backstage/plugin-jenkins-backend": "0.1.28",
+ "@backstage/plugin-jenkins-common": "0.1.10",
+ "@backstage/plugin-kafka": "0.3.11",
+ "@backstage/plugin-kafka-backend": "0.2.31",
+ "@backstage/plugin-kubernetes": "0.7.4",
+ "@backstage/plugin-kubernetes-backend": "0.8.0",
+ "@backstage/plugin-kubernetes-common": "0.4.4",
+ "@backstage/plugin-lighthouse": "0.3.11",
+ "@backstage/plugin-newrelic": "0.3.29",
+ "@backstage/plugin-newrelic-dashboard": "0.2.4",
+ "@backstage/plugin-org": "0.6.0",
+ "@backstage/plugin-org-react": "0.1.0",
+ "@backstage/plugin-pagerduty": "0.5.4",
+ "@backstage/plugin-periskop": "0.1.9",
+ "@backstage/plugin-periskop-backend": "0.1.9",
+ "@backstage/plugin-permission-backend": "0.5.13",
+ "@backstage/plugin-permission-common": "0.7.1",
+ "@backstage/plugin-permission-node": "0.7.1",
+ "@backstage/plugin-permission-react": "0.4.7",
+ "@backstage/plugin-playlist": "0.1.2",
+ "@backstage/plugin-playlist-backend": "0.2.1",
+ "@backstage/plugin-playlist-common": "0.1.2",
+ "@backstage/plugin-proxy-backend": "0.2.32",
+ "@backstage/plugin-rollbar": "0.4.11",
+ "@backstage/plugin-rollbar-backend": "0.1.35",
+ "@backstage/plugin-scaffolder": "1.8.0",
+ "@backstage/plugin-scaffolder-backend": "1.8.0",
+ "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.13",
+ "@backstage/plugin-scaffolder-backend-module-rails": "0.4.6",
+ "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.11",
+ "@backstage/plugin-scaffolder-common": "1.2.2",
+ "@backstage/plugin-search": "1.0.4",
+ "@backstage/plugin-search-backend": "1.1.1",
+ "@backstage/plugin-search-backend-module-elasticsearch": "1.0.4",
+ "@backstage/plugin-search-backend-module-pg": "0.4.2",
+ "@backstage/plugin-search-backend-node": "1.0.4",
+ "@backstage/plugin-search-common": "1.1.1",
+ "@backstage/plugin-search-react": "1.2.1",
+ "@backstage/plugin-sentry": "0.4.4",
+ "@backstage/plugin-shortcuts": "0.3.3",
+ "@backstage/plugin-sonarqube": "0.5.0",
+ "@backstage/plugin-sonarqube-backend": "0.1.3",
+ "@backstage/plugin-splunk-on-call": "0.4.0",
+ "@backstage/plugin-stack-overflow": "0.1.7",
+ "@backstage/plugin-stack-overflow-backend": "0.1.7",
+ "@backstage/plugin-tech-insights": "0.3.3",
+ "@backstage/plugin-tech-insights-backend": "0.5.4",
+ "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.22",
+ "@backstage/plugin-tech-insights-common": "0.2.8",
+ "@backstage/plugin-tech-insights-node": "0.3.6",
+ "@backstage/plugin-tech-radar": "0.5.18",
+ "@backstage/plugin-techdocs": "1.4.0",
+ "@backstage/plugin-techdocs-addons-test-utils": "1.0.6",
+ "@backstage/plugin-techdocs-backend": "1.4.1",
+ "@backstage/plugin-techdocs-module-addons-contrib": "1.0.6",
+ "@backstage/plugin-techdocs-node": "1.4.2",
+ "@backstage/plugin-techdocs-react": "1.0.6",
+ "@backstage/plugin-todo": "0.2.13",
+ "@backstage/plugin-todo-backend": "0.1.35",
+ "@backstage/plugin-user-settings": "0.5.1",
+ "@backstage/plugin-user-settings-backend": "0.1.2",
+ "@backstage/plugin-vault": "0.1.5",
+ "@backstage/plugin-vault-backend": "0.2.4",
+ "@backstage/plugin-xcmetrics": "0.2.31"
+ },
+ "changesets": []
+}
diff --git a/.changeset/renovate-3fe8460.md b/.changeset/renovate-3fe8460.md
new file mode 100644
index 0000000000..17dc8b8b97
--- /dev/null
+++ b/.changeset/renovate-3fe8460.md
@@ -0,0 +1,113 @@
+---
+'@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-apollo-explorer': 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-azure-sites-backend': patch
+'@backstage/plugin-azure-sites': 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-server': 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-issues': 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-react': 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-playlist-backend': patch
+'@backstage/plugin-playlist': patch
+'@backstage/plugin-proxy-backend': 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-backend': 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.49.0`.
diff --git a/.changeset/rich-garlics-play.md b/.changeset/rich-garlics-play.md
new file mode 100644
index 0000000000..5589a70e35
--- /dev/null
+++ b/.changeset/rich-garlics-play.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-kubernetes-backend': patch
+'@backstage/plugin-kubernetes-common': patch
+---
+
+Added Kubernetes proxy API route to backend Kubernetes plugin, allowing Backstage plugin developers to read/write new information from Kubernetes (if proper credentials are provided).
diff --git a/.changeset/search-heavy-frogs-confess.md b/.changeset/search-heavy-frogs-confess.md
new file mode 100644
index 0000000000..a37c28c60c
--- /dev/null
+++ b/.changeset/search-heavy-frogs-confess.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-search-backend-node': patch
+---
+
+Fixed a bug that could cause a `max listeners exceeded warning` to be logged when more than 10 collators were running simultaneously.
diff --git a/.github/workflows/automate_merge_message.yml b/.github/workflows/automate_merge_message.yml
index 9d8deffd8a..7ad4aa8fdd 100644
--- a/.github/workflows/automate_merge_message.yml
+++ b/.github/workflows/automate_merge_message.yml
@@ -1,6 +1,6 @@
name: Automate merge message
on:
- pull_request:
+ pull_request_target:
branches: ['master']
types: ['closed']
@@ -25,7 +25,7 @@ jobs:
steps:
- uses: actions/checkout@v3
with:
- ref: '${{ github.event.pull_request.merge_commit_sha }}'
+ ref: '${{ github.event.pull_request.head.sha }}'
- name: fetch base
run: git fetch --depth 1 origin ${{ github.event.pull_request.base.sha }}
diff --git a/.github/workflows/deploy_docker-image.yml b/.github/workflows/deploy_docker-image.yml
index 90ea8e13f1..e5564f141f 100644
--- a/.github/workflows/deploy_docker-image.yml
+++ b/.github/workflows/deploy_docker-image.yml
@@ -9,13 +9,13 @@ jobs:
steps:
- name: checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
with:
path: backstage
ref: v${{ github.event.client_payload.version }}
- name: setup-node
- uses: actions/setup-node@v1
+ uses: actions/setup-node@v3
with:
node-version: 16.x
registry-url: https://registry.npmjs.org/
@@ -23,7 +23,7 @@ jobs:
# Beginning of yarn setup, keep in sync between all workflows.
# TODO(Rugvip): move this to composite action once all features we use are supported
- name: use node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v1
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
@@ -31,7 +31,7 @@ jobs:
# Cache every node_modules folder inside the monorepo
- name: cache all node_modules
id: cache-modules
- uses: actions/cache@v2
+ uses: actions/cache@v3
with:
path: '**/node_modules'
# We use both yarn.lock and package.json as cache keys to ensure that
@@ -47,7 +47,7 @@ jobs:
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: cache global yarn cache
- uses: actions/cache@v2
+ uses: actions/cache@v3
if: steps.cache-modules.outputs.cache-hit != 'true'
with:
path: ${{ steps.yarn-cache.outputs.dir }}
diff --git a/cypress/yarn.lock b/cypress/yarn.lock
index 07249a29fc..49c85adb2b 100644
--- a/cypress/yarn.lock
+++ b/cypress/yarn.lock
@@ -1415,22 +1415,22 @@ __metadata:
linkType: hard
"typescript@npm:^4.1.3":
- version: 4.8.4
- resolution: "typescript@npm:4.8.4"
+ version: 4.9.3
+ resolution: "typescript@npm:4.9.3"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: 3e4f061658e0c8f36c820802fa809e0fd812b85687a9a2f5430bc3d0368e37d1c9605c3ce9b39df9a05af2ece67b1d844f9f6ea8ff42819f13bcb80f85629af0
+ checksum: 17b8f816050b412403e38d48eef0e893deb6be522d6dc7caf105e54a72e34daf6835c447735fd2b28b66784e72bfbf87f627abb4818a8e43d1fa8106396128dc
languageName: node
linkType: hard
"typescript@patch:typescript@^4.1.3#~builtin":
- version: 4.8.4
- resolution: "typescript@patch:typescript@npm%3A4.8.4#~builtin::version=4.8.4&hash=a1c5e5"
+ version: 4.9.3
+ resolution: "typescript@patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a1c5e5"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: 563a0ef47abae6df27a9a3ab38f75fc681f633ccf1a3502b1108e252e187787893de689220f4544aaf95a371a4eb3141e4a337deb9895de5ac3c1ca76430e5f0
+ checksum: ef65c22622d864497d0a0c5db693523329b3284c15fe632e93ad9aa059e8dc38ef3bd767d6f26b1e5ecf9446f49bd0f6c4e5714a2eeaf352805dc002479843d1
languageName: node
linkType: hard
diff --git a/docs/features/techdocs/configuring-ci-cd.md b/docs/features/techdocs/configuring-ci-cd.md
index 0f8044e9c9..642fd4ab77 100644
--- a/docs/features/techdocs/configuring-ci-cd.md
+++ b/docs/features/techdocs/configuring-ci-cd.md
@@ -141,14 +141,14 @@ jobs:
steps:
- name: Checkout code
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- - uses: actions/setup-node@v2
- - uses: actions/setup-python@v2
+ - uses: actions/setup-node@v3
+ - uses: actions/setup-python@v4
# the 2 steps below can be removed if you aren't using plantuml in your documentation
- name: setup java
- uses: actions/setup-java@v2
+ uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '11'
diff --git a/package.json b/package.json
index 2f20eeeee3..d40e7dfbc0 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
"build:backend": "yarn workspace backend build",
"build:all": "backstage-cli repo build --all",
"build:api-reports": "yarn build:api-reports:only --tsc",
- "build:api-reports:only": "ts-node -T -P scripts/tsconfig.json scripts/api-extractor.ts",
+ "build:api-reports:only": "backstage-repo-tools api-reports",
"build:api-docs": "LANG=en_EN yarn build:api-reports --docs",
"tsc": "tsc",
"tsc:full": "backstage-cli repo clean && tsc --skipLibCheck false --incremental false",
@@ -49,16 +49,13 @@
"version": "1.8.0",
"dependencies": {
"@backstage/errors": "workspace:^",
- "@manypkg/get-packages": "^1.1.3",
- "@microsoft/api-documenter": "^7.17.11",
- "@microsoft/api-extractor": "^7.23.0",
- "@microsoft/api-extractor-model": "^7.17.2",
- "@microsoft/tsdoc": "^0.14.1"
+ "@manypkg/get-packages": "^1.1.3"
},
"devDependencies": {
"@backstage/cli": "workspace:*",
"@backstage/codemods": "workspace:*",
"@backstage/create-app": "workspace:*",
+ "@backstage/repo-tools": "workspace:*",
"@changesets/cli": "^2.14.0",
"@octokit/rest": "^19.0.3",
"@spotify/prettier-config": "^14.0.0",
diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
index d324b683d8..e9c5f09f3d 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -19,7 +19,6 @@ import {
Content,
DocsIcon,
Header,
- Lifecycle,
Page,
useSidebarPinState,
} from '@backstage/core-components';
@@ -66,7 +65,7 @@ const SearchPage = () => {
return (
- {!isMobile && } />}
+ {!isMobile && }
diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json
index c703405719..07694f3ea6 100644
--- a/packages/backend-common/package.json
+++ b/packages/backend-common/package.json
@@ -117,7 +117,7 @@
"better-sqlite3": "^7.5.0",
"http-errors": "^2.0.0",
"mock-fs": "^5.1.0",
- "msw": "^0.48.0",
+ "msw": "^0.49.0",
"mysql2": "^2.2.5",
"recursive-readdir": "^2.2.2",
"supertest": "^6.1.3"
diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json
index 87da7162d8..b5f2113196 100644
--- a/packages/backend-test-utils/package.json
+++ b/packages/backend-test-utils/package.json
@@ -41,7 +41,7 @@
"@backstage/config": "workspace:^",
"better-sqlite3": "^7.5.0",
"knex": "^2.0.0",
- "msw": "^0.48.0",
+ "msw": "^0.49.0",
"mysql2": "^2.2.5",
"pg": "^8.3.0",
"testcontainers": "^8.1.2",
diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json
index 04e35ca670..3506fddf9a 100644
--- a/packages/catalog-client/package.json
+++ b/packages/catalog-client/package.json
@@ -38,7 +38,7 @@
},
"devDependencies": {
"@backstage/cli": "workspace:^",
- "msw": "^0.48.0"
+ "msw": "^0.49.0"
},
"files": [
"dist"
diff --git a/packages/cli/package.json b/packages/cli/package.json
index e7a113fb7f..bc40051f52 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -155,7 +155,7 @@
"@types/yarnpkg__lockfile": "^1.1.4",
"del": "^6.0.0",
"mock-fs": "^5.1.0",
- "msw": "^0.48.0",
+ "msw": "^0.49.0",
"nodemon": "^2.0.2",
"ts-node": "^10.0.0",
"type-fest": "^2.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 df381159f0..3a9091e87f 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.12'}}",
"supertest": "{{versionQuery 'supertest' '6.2.4'}}",
- "msw": "{{versionQuery 'msw' '0.47.0'}}"
+ "msw": "{{versionQuery 'msw' '0.49.0'}}"
},
"files": [
"dist"
diff --git a/packages/cli/templates/default-plugin/package.json.hbs b/packages/cli/templates/default-plugin/package.json.hbs
index c60ba63f2b..d319b16449 100644
--- a/packages/cli/templates/default-plugin/package.json.hbs
+++ b/packages/cli/templates/default-plugin/package.json.hbs
@@ -48,7 +48,7 @@
"@testing-library/react": "{{versionQuery '@testing-library/react' '12.1.3'}}",
"@testing-library/user-event": "{{versionQuery '@testing-library/user-event' '14.0.0'}}",
"@types/node": "{{versionQuery '@types/node' '16.11.26'}}",
- "msw": "{{versionQuery 'msw' '0.47.0'}}",
+ "msw": "{{versionQuery 'msw' '0.49.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 7c9306cb64..fce901f47d 100644
--- a/packages/config-loader/package.json
+++ b/packages/config-loader/package.json
@@ -56,7 +56,7 @@
"@types/node": "^16.11.26",
"@types/yup": "^0.29.13",
"mock-fs": "^5.1.0",
- "msw": "^0.48.0"
+ "msw": "^0.49.0"
},
"files": [
"dist"
diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json
index b5972bf308..c7a0329a9f 100644
--- a/packages/core-app-api/package.json
+++ b/packages/core-app-api/package.json
@@ -57,7 +57,7 @@
"@types/node": "^16.11.26",
"@types/zen-observable": "^0.8.0",
"cross-fetch": "^3.1.5",
- "msw": "^0.48.0",
+ "msw": "^0.49.0",
"react-router-beta": "npm:react-router@6.0.0-beta.0",
"react-router-dom-beta": "npm:react-router-dom@6.0.0-beta.0",
"react-router-dom-stable": "npm:react-router-dom@^6.3.0",
diff --git a/packages/core-components/package.json b/packages/core-components/package.json
index 93ccbfb98a..af46c2b859 100644
--- a/packages/core-components/package.json
+++ b/packages/core-components/package.json
@@ -99,7 +99,7 @@
"@types/react-window": "^1.8.5",
"@types/zen-observable": "^0.8.0",
"cross-fetch": "^3.1.5",
- "msw": "^0.48.0"
+ "msw": "^0.49.0"
},
"files": [
"dist"
diff --git a/packages/core-components/src/components/SupportButton/SupportButton.test.tsx b/packages/core-components/src/components/SupportButton/SupportButton.test.tsx
index 341ed145a6..2907b24702 100644
--- a/packages/core-components/src/components/SupportButton/SupportButton.test.tsx
+++ b/packages/core-components/src/components/SupportButton/SupportButton.test.tsx
@@ -15,31 +15,38 @@
*/
import React from 'react';
+import { fireEvent, screen } from '@testing-library/react';
import {
- render,
- act,
- RenderResult,
- waitFor,
- fireEvent,
- screen,
-} from '@testing-library/react';
-import { wrapInTestApp, renderInTestApp } from '@backstage/test-utils';
+ MockConfigApi,
+ renderInTestApp,
+ TestApiProvider,
+} from '@backstage/test-utils';
import { SupportButton } from './SupportButton';
+import { configApiRef } from '@backstage/core-plugin-api';
+
+const configApi = new MockConfigApi({
+ app: {
+ support: {
+ url: 'https://github.com',
+ items: [
+ {
+ title: 'Github',
+ icon: 'github',
+ links: [{ title: 'Github Issues', url: '/issues' }],
+ },
+ ],
+ },
+ },
+});
const SUPPORT_BUTTON_ID = 'support-button';
const POPOVER_ID = 'support-button-popover';
describe('', () => {
it('renders without exploding', async () => {
- let renderResult: RenderResult;
+ await renderInTestApp();
- await act(async () => {
- renderResult = render(wrapInTestApp());
- });
-
- await waitFor(() =>
- expect(renderResult.getByTestId(SUPPORT_BUTTON_ID)).toBeInTheDocument(),
- );
+ expect(screen.getByTestId(SUPPORT_BUTTON_ID)).toBeInTheDocument();
});
it('supports passing a title', async () => {
@@ -48,26 +55,52 @@ describe('', () => {
expect(screen.getByText('Custom title')).toBeInTheDocument();
});
+ it('supports passing link items through props', async () => {
+ await renderInTestApp(
+ ,
+ );
+
+ const supportButton = screen.getByTestId(SUPPORT_BUTTON_ID);
+ expect(supportButton).toBeInTheDocument();
+
+ fireEvent.click(supportButton);
+
+ const documentationItem = screen.getByText('Documentation');
+ expect(documentationItem).toBeInTheDocument();
+ });
+
+ it('shows items from support config', async () => {
+ await renderInTestApp(
+
+
+ ,
+ );
+
+ const supportButton = screen.getByTestId(SUPPORT_BUTTON_ID);
+ expect(supportButton).toBeInTheDocument();
+
+ fireEvent.click(supportButton);
+
+ const defaultGithubSupportConfig = screen.getByText('Github Issues');
+ expect(defaultGithubSupportConfig).toBeInTheDocument();
+ });
+
it('shows popover on click', async () => {
- let renderResult: RenderResult;
+ await renderInTestApp();
- await act(async () => {
- renderResult = render(wrapInTestApp());
- });
+ const supportButton = screen.getByTestId(SUPPORT_BUTTON_ID);
+ expect(supportButton).toBeInTheDocument();
- let button: HTMLElement;
+ fireEvent.click(supportButton);
- await waitFor(() => {
- expect(renderResult.getByTestId(SUPPORT_BUTTON_ID)).toBeInTheDocument();
- button = renderResult.getByTestId(SUPPORT_BUTTON_ID);
- });
-
- await act(async () => {
- fireEvent.click(button);
- });
-
- await waitFor(() => {
- expect(renderResult.getByTestId(POPOVER_ID)).toBeInTheDocument();
- });
+ expect(screen.getByTestId(POPOVER_ID)).toBeInTheDocument();
});
});
diff --git a/packages/core-components/src/components/SupportButton/SupportButton.tsx b/packages/core-components/src/components/SupportButton/SupportButton.tsx
index 4e0bb866f5..7bb9aab9b5 100644
--- a/packages/core-components/src/components/SupportButton/SupportButton.tsx
+++ b/packages/core-components/src/components/SupportButton/SupportButton.tsx
@@ -35,6 +35,7 @@ import { Link } from '../Link';
type SupportButtonProps = {
title?: string;
+ items?: SupportItem[];
children?: React.ReactNode;
};
@@ -82,8 +83,8 @@ const SupportListItem = ({ item }: { item: SupportItem }) => {
};
export function SupportButton(props: SupportButtonProps) {
- const { title, children } = props;
- const { items } = useSupportConfig();
+ const { title, items, children } = props;
+ const { items: configItems } = useSupportConfig();
const [popoverOpen, setPopoverOpen] = useState(false);
const [anchorEl, setAnchorEl] = useState(null);
@@ -150,10 +151,9 @@ export function SupportButton(props: SupportButtonProps) {
{child}
))}
- {items &&
- items.map((item, i) => (
-
- ))}
+ {(items ?? configItems).map((item, i) => (
+
+ ))}