Merge remote-tracking branch 'backstage/master' into erikengervall/plugin-release-manager-as-a-service

Signed-off-by: Erik Engervall <erik.engervall@gmail.com>
This commit is contained in:
Erik Engervall
2021-04-29 15:44:33 +02:00
109 changed files with 913 additions and 389 deletions
@@ -1,5 +0,0 @@
---
'@backstage/plugin-cost-insights': patch
---
Support a `name` prop for Projects for display purposes
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-github-actions': patch
---
Wrap EmptyState in Card
-21
View File
@@ -1,21 +0,0 @@
---
'@backstage/plugin-api-docs': patch
'@backstage/plugin-bitrise': patch
'@backstage/plugin-catalog-import': patch
'@backstage/plugin-circleci': patch
'@backstage/plugin-cost-insights': patch
'@backstage/plugin-explore': patch
'@backstage/plugin-fossa': patch
'@backstage/plugin-github-actions': patch
'@backstage/plugin-github-deployments': patch
'@backstage/plugin-graphiql': patch
'@backstage/plugin-jenkins': patch
'@backstage/plugin-lighthouse': patch
'@backstage/plugin-pagerduty': patch
'@backstage/plugin-register-component': patch
'@backstage/plugin-rollbar': patch
'@backstage/plugin-sentry': patch
'@backstage/plugin-sonarqube': patch
---
Updated README to have up-to-date install instructions.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core': patch
---
Allow passing NavLinkProps to SidebarItem component to use in NavLink
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-api-docs': patch
---
Added fields filtering in get API entities to avoid the requesting of unused data
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': patch
---
Updates the end to end test in the app to match the new catalog index page title. To apply this change to an existing app, update `packages/app/cypress/integration/app.js` to search for `"My Company Catalog"` instead of `"My Company Service Catalog"`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder': patch
---
Enable starred templates on Scaffolder frontend
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-code-coverage-backend': patch
---
Include migrations
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-catalog': patch
'@backstage/plugin-scaffolder': patch
---
Removed unused `swr` dependency.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend': patch
---
Entity lifecycle and owner are now indexed by the `DefaultCatalogCollator`. A `locationTemplate` may now optionally be provided to its constructor to reflect a custom catalog entity path in the Backstage frontend.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-search-backend-node': patch
---
Introduced Scheduler which is responsible for adding new tasks to a schedule together with it's interval timer as well as starting and stopping the scheduler processes.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/techdocs-common': patch
---
Gracefully handle HTTP request failures in download method of AzureBlobStorage publisher.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-search': patch
---
Use `RouteRef` to generate path to search page.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog': patch
---
Support `gridItem` variant for `EntityLinksCard`.
@@ -1,6 +0,0 @@
---
'@backstage/plugin-techdocs': patch
---
Use `EntityRefLink` in header and use relations to reference the owner of the
document.
@@ -1,5 +0,0 @@
---
'@backstage/plugin-techdocs': patch
---
Fix TechDocs landing page table wrong copied link
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-techdocs': patch
---
Add customization and exportable components for TechDocs landing page
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-techdocs': patch
---
Disable color transitions on links to avoid issues in dark mode.
-12
View File
@@ -1,12 +0,0 @@
---
'@backstage/plugin-techdocs': minor
---
Make `techdocsStorageApiRef` and `techdocsApiRef` use interfaces instead of the
actual implementation classes.
This renames the classes `TechDocsApi` to `TechDocsClient` and `TechDocsStorageApi`
to `TechDocsStorageClient` and renames the interfaces `TechDocs` to `TechDocsApi`
and `TechDocsStorage` to `TechDocsStorageApi` to comply the pattern elsewhere in
the project. This also fixes the types returned by some methods on those
interfaces.
@@ -1,5 +0,0 @@
---
'@backstage/plugin-techdocs': patch
---
Rework state management to avoid rendering multiple while navigating between pages.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Added the `nebula-preview` preview to `Octokit` for repository visibility.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core': patch
---
Improve owner example value in `MissingAnnotationEmptyState`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog': patch
---
Switch out the time-based personal greeting for a plain title on the catalog index page, and remove the clocks for different timezones.
@@ -2,15 +2,15 @@
# Variables
#==========================
variable "backstage-bucket" {
variable "backstage_bucket" {
default = "backstage_bucket_for_my_corp"
}
variable "backstage-iam" {
variable "backstage_iam" {
default = "backstage"
}
variable "shared-managed-tag-value" {
variable "shared_managed_tag" {
default = "terraform_for_my_corp"
}
@@ -19,7 +19,7 @@ variable "shared-managed-tag-value" {
#==========================
resource "aws_s3_bucket" "backstage" {
bucket = var.backstage-bucket
bucket = var.backstage_bucket
acl = "private"
provider = aws
@@ -36,8 +36,8 @@ resource "aws_s3_bucket" "backstage" {
}
tags = {
Name = var.backstage-bucket
"Managed By Terraform" = var.shared-managed-tag-value
Name = var.backstage_bucket
"Managed By Terraform" = var.shared_managed_tag
}
}
@@ -56,16 +56,16 @@ resource "aws_s3_bucket_public_access_block" "backstage" {
#==========================
resource "aws_iam_user" "backstage" {
name = var.backstage-iam
name = var.backstage_iam
}
resource "aws_iam_user_policy" "backstage" {
name = var.backstage-iam
name = var.backstage_iam
user = aws_iam_user.backstage.name
policy = data.aws_iam_policy_document.backstage-policy.json
policy = data.aws_iam_policy_document.backstage_policy.json
}
data "aws_iam_policy_document" "backstage-policy" {
data "aws_iam_policy_document" "backstage_policy" {
statement {
actions = [
"s3:PutObject",
+42
View File
@@ -1,5 +1,47 @@
# example-app
## 0.2.26
### Patch Changes
- Updated dependencies [1ce80ff02]
- Updated dependencies [b98de52ae]
- Updated dependencies [4c42ecca2]
- Updated dependencies [c614ede9a]
- Updated dependencies [9afcac5af]
- Updated dependencies [07a7806c3]
- Updated dependencies [f6efa71ee]
- Updated dependencies [19a4dd710]
- Updated dependencies [dcd54c7cd]
- Updated dependencies [da546ce00]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6fbd7beca]
- Updated dependencies [15cbe6815]
- Updated dependencies [39bdaa004]
- Updated dependencies [cb8c848a3]
- Updated dependencies [21fddf452]
- Updated dependencies [17915e29b]
- Updated dependencies [6eaecbd81]
- Updated dependencies [23769512a]
- Updated dependencies [1a142ae8a]
- @backstage/plugin-api-docs@0.4.12
- @backstage/plugin-cost-insights@0.8.5
- @backstage/plugin-github-actions@0.4.4
- @backstage/plugin-catalog-import@0.5.4
- @backstage/plugin-circleci@0.2.13
- @backstage/plugin-explore@0.3.4
- @backstage/plugin-graphiql@0.2.10
- @backstage/plugin-jenkins@0.4.2
- @backstage/plugin-lighthouse@0.2.15
- @backstage/plugin-pagerduty@0.3.3
- @backstage/plugin-rollbar@0.3.4
- @backstage/plugin-sentry@0.3.9
- @backstage/core@0.7.7
- @backstage/plugin-scaffolder@0.9.2
- @backstage/plugin-catalog@0.5.6
- @backstage/plugin-search@0.3.5
- @backstage/plugin-techdocs@0.9.0
## 0.2.25
### Patch Changes
+18 -19
View File
@@ -1,40 +1,39 @@
{
"name": "example-app",
"version": "0.2.25",
"version": "0.2.26",
"private": true,
"bundled": true,
"dependencies": {
"@backstage/catalog-model": "^0.7.7",
"@backstage/cli": "^0.6.9",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/integration-react": "^0.1.1",
"@backstage/plugin-api-docs": "^0.4.11",
"@backstage/plugin-api-docs": "^0.4.12",
"@backstage/plugin-badges": "^0.2.0",
"@backstage/plugin-catalog": "^0.5.5",
"@backstage/plugin-catalog-import": "^0.5.3",
"@backstage/plugin-catalog": "^0.5.6",
"@backstage/plugin-catalog-import": "^0.5.4",
"@backstage/plugin-catalog-react": "^0.1.3",
"@backstage/plugin-circleci": "^0.2.12",
"@backstage/plugin-circleci": "^0.2.13",
"@backstage/plugin-cloudbuild": "^0.2.13",
"@backstage/plugin-code-coverage": "^0.1.2",
"@backstage/plugin-cost-insights": "^0.8.4",
"@backstage/plugin-explore": "^0.3.2",
"@backstage/plugin-cost-insights": "^0.8.5",
"@backstage/plugin-explore": "^0.3.4",
"@backstage/plugin-gcp-projects": "^0.2.5",
"@backstage/plugin-github-actions": "^0.4.2",
"@backstage/plugin-graphiql": "^0.2.9",
"@backstage/plugin-jenkins": "^0.4.1",
"@backstage/plugin-github-actions": "^0.4.4",
"@backstage/plugin-graphiql": "^0.2.10",
"@backstage/plugin-jenkins": "^0.4.2",
"@backstage/plugin-kafka": "^0.2.6",
"@backstage/plugin-kubernetes": "^0.4.2",
"@backstage/plugin-lighthouse": "^0.2.14",
"@backstage/plugin-lighthouse": "^0.2.15",
"@backstage/plugin-newrelic": "^0.2.6",
"@backstage/plugin-org": "^0.3.12",
"@backstage/plugin-pagerduty": "0.3.2",
"@backstage/plugin-git-release-manager": "^0.1.1",
"@backstage/plugin-rollbar": "^0.3.3",
"@backstage/plugin-scaffolder": "^0.9.1",
"@backstage/plugin-search": "^0.3.4",
"@backstage/plugin-sentry": "^0.3.8",
"@backstage/plugin-pagerduty": "0.3.3",
"@backstage/plugin-rollbar": "^0.3.4",
"@backstage/plugin-scaffolder": "^0.9.2",
"@backstage/plugin-search": "^0.3.5",
"@backstage/plugin-sentry": "^0.3.9",
"@backstage/plugin-tech-radar": "^0.3.9",
"@backstage/plugin-techdocs": "^0.8.0",
"@backstage/plugin-techdocs": "^0.9.0",
"@backstage/plugin-todo": "^0.1.0",
"@backstage/plugin-user-settings": "^0.2.8",
"@backstage/theme": "^0.2.6",
+8
View File
@@ -1,5 +1,13 @@
# @backstage/core
## 0.7.7
### Patch Changes
- 9afcac5af: Allow passing NavLinkProps to SidebarItem component to use in NavLink
- e0c9ed759: Add `if` prop to `EntityLayout.Route` to conditionally render tabs
- 6eaecbd81: Improve owner example value in `MissingAnnotationEmptyState`.
## 0.7.6
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/core",
"description": "Core API used by Backstage plugins and apps",
"version": "0.7.6",
"version": "0.7.7",
"private": false,
"publishConfig": {
"access": "public",
@@ -14,3 +14,4 @@
* limitations under the License.
*/
export { TabbedLayout } from './TabbedLayout';
export { RoutedTabs } from './RoutedTabs';
+39
View File
@@ -1,5 +1,44 @@
# @backstage/create-app
## 0.3.20
### Patch Changes
- 73f3f5d78: Updates the end to end test in the app to match the new catalog index page title. To apply this change to an existing app, update `packages/app/cypress/integration/app.js` to search for `"My Company Catalog"` instead of `"My Company Service Catalog"`.
- Updated dependencies [1ce80ff02]
- Updated dependencies [4c42ecca2]
- Updated dependencies [c614ede9a]
- Updated dependencies [9afcac5af]
- Updated dependencies [07a7806c3]
- Updated dependencies [f6efa71ee]
- Updated dependencies [19a4dd710]
- Updated dependencies [a99e0bc42]
- Updated dependencies [dcd54c7cd]
- Updated dependencies [da546ce00]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6fbd7beca]
- Updated dependencies [15cbe6815]
- Updated dependencies [39bdaa004]
- Updated dependencies [cb8c848a3]
- Updated dependencies [21fddf452]
- Updated dependencies [17915e29b]
- Updated dependencies [a1783f306]
- Updated dependencies [6eaecbd81]
- Updated dependencies [23769512a]
- Updated dependencies [1a142ae8a]
- @backstage/plugin-api-docs@0.4.12
- @backstage/plugin-github-actions@0.4.4
- @backstage/plugin-catalog-import@0.5.4
- @backstage/plugin-explore@0.3.4
- @backstage/plugin-lighthouse@0.2.15
- @backstage/core@0.7.7
- @backstage/plugin-scaffolder@0.9.2
- @backstage/plugin-catalog@0.5.6
- @backstage/plugin-catalog-backend@0.8.1
- @backstage/plugin-search@0.3.5
- @backstage/plugin-techdocs@0.9.0
- @backstage/plugin-scaffolder-backend@0.10.1
## 0.3.19
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/create-app",
"description": "Create app package for Backstage",
"version": "0.3.19",
"version": "0.3.20",
"private": false,
"publishConfig": {
"access": "public"
+6
View File
@@ -1,5 +1,11 @@
# @backstage/techdocs-common
## 0.5.1
### Patch Changes
- f4af06ebe: Gracefully handle HTTP request failures in download method of AzureBlobStorage publisher.
## 0.5.0
### Minor Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/techdocs-common",
"description": "Common functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli",
"version": "0.5.0",
"version": "0.5.1",
"main": "src/index.ts",
"types": "src/index.ts",
"private": false,
@@ -13,11 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { getVoidLogger } from '@backstage/backend-common';
import {
Entity,
ENTITY_DEFAULT_NAMESPACE,
EntityName,
ENTITY_DEFAULT_NAMESPACE,
} from '@backstage/catalog-model';
import { ConfigReader } from '@backstage/config';
import mockFs from 'mock-fs';
@@ -154,7 +155,6 @@ describe('AwsS3Publish', () => {
});
it('should fail to publish a directory', async () => {
expect.assertions(3);
const wrongPathToGeneratedDirectory = path.join(
rootDir,
'wrong',
@@ -171,23 +171,22 @@ describe('AwsS3Publish', () => {
}),
).rejects.toThrowError();
await publisher
.publish({
entity,
directory: wrongPathToGeneratedDirectory,
})
.catch(error => {
expect(error.message).toEqual(
// Can not do exact error message match due to mockFs adding unexpected characters in the path when throwing the error
// Issue reported https://github.com/tschaub/mock-fs/issues/118
expect.stringContaining(
`Unable to upload file(s) to AWS S3. Error: Failed to read template directory: ENOENT, no such file or directory`,
),
);
expect(error.message).toEqual(
expect.stringContaining(wrongPathToGeneratedDirectory),
);
});
const fails = publisher.publish({
entity,
directory: wrongPathToGeneratedDirectory,
});
// Can not do exact error message match due to mockFs adding unexpected characters in the path when throwing the error
// Issue reported https://github.com/tschaub/mock-fs/issues/118
await expect(fails).rejects.toMatchObject({
message: expect.stringContaining(
'Unable to upload file(s) to AWS S3. Error: Failed to read template directory: ENOENT, no such file or directory',
),
});
await expect(fails).rejects.toMatchObject({
message: expect.stringContaining(wrongPathToGeneratedDirectory),
});
mockFs.restore();
});
});
@@ -265,18 +264,12 @@ describe('AwsS3Publish', () => {
const entity = createMockEntity();
const entityRootDir = getEntityRootDir(entity);
await publisher
.fetchTechDocsMetadata(entityNameMock)
.catch(error =>
expect(error).toEqual(
new Error(
`TechDocs metadata fetch failed, The file ${path.join(
entityRootDir,
'techdocs_metadata.json',
)} does not exist !`,
),
),
);
const fails = publisher.fetchTechDocsMetadata(entityNameMock);
const errorPath = path.join(entityRootDir, 'techdocs_metadata.json');
await expect(fails).rejects.toMatchObject({
message: `TechDocs metadata fetch failed, The file ${errorPath} does not exist !`,
});
});
});
});
@@ -13,11 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { getVoidLogger } from '@backstage/backend-common';
import {
Entity,
ENTITY_DEFAULT_NAMESPACE,
EntityName,
ENTITY_DEFAULT_NAMESPACE,
} from '@backstage/catalog-model';
import { ConfigReader } from '@backstage/config';
import mockFs from 'mock-fs';
@@ -157,7 +158,6 @@ describe('publishing with valid credentials', () => {
});
it('should fail to publish a directory', async () => {
expect.assertions(1);
const wrongPathToGeneratedDirectory = path.join(
rootDir,
'wrong',
@@ -168,22 +168,20 @@ describe('publishing with valid credentials', () => {
const entity = createMockEntity();
await publisher
.publish({
entity,
directory: wrongPathToGeneratedDirectory,
})
.catch(error => {
// Can not do exact error message match due to mockFs adding unexpected characters in the path when throwing the error
// Issue reported https://github.com/tschaub/mock-fs/issues/118
expect.stringContaining(
`Unable to upload file(s) to Azure Blob Storage. Error: Failed to read template directory: ENOENT, no such file or directory`,
);
const fails = publisher.publish({
entity,
directory: wrongPathToGeneratedDirectory,
});
await expect(fails).rejects.toMatchObject({
message: expect.stringContaining(
`Unable to upload file(s) to Azure Blob Storage. Error: Failed to read template directory: ENOENT, no such file or directory`,
),
});
await expect(fails).rejects.toMatchObject({
message: expect.stringContaining(wrongPathToGeneratedDirectory),
});
expect(error.message).toEqual(
expect.stringContaining(wrongPathToGeneratedDirectory),
);
});
mockFs.restore();
});
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { getVoidLogger } from '@backstage/backend-common';
import {
Entity,
@@ -146,8 +147,6 @@ describe('GoogleGCSPublish', () => {
});
it('should fail to publish a directory', async () => {
expect.assertions(3);
const wrongPathToGeneratedDirectory = path.join(
rootDir,
'wrong',
@@ -165,23 +164,21 @@ describe('GoogleGCSPublish', () => {
}),
).rejects.toThrowError();
await publisher
.publish({
entity,
directory: wrongPathToGeneratedDirectory,
})
.catch(error => {
expect(error.message).toEqual(
// Can not do exact error message match due to mockFs adding unexpected characters in the path when throwing the error
// Issue reported https://github.com/tschaub/mock-fs/issues/118
expect.stringContaining(
`Unable to upload file(s) to Google Cloud Storage. Error: Failed to read template directory: ENOENT, no such file or directory`,
),
);
expect(error.message).toEqual(
expect.stringContaining(wrongPathToGeneratedDirectory),
);
});
const fails = publisher.publish({
entity,
directory: wrongPathToGeneratedDirectory,
});
// Can not do exact error message match due to mockFs adding unexpected characters in the path when throwing the error
// Issue reported https://github.com/tschaub/mock-fs/issues/118
await expect(fails).rejects.toMatchObject({
message: expect.stringContaining(
`Unable to upload file(s) to Google Cloud Storage. Error: Failed to read template directory: ENOENT, no such file or directory`,
),
});
await expect(fails).rejects.toMatchObject({
message: expect.stringContaining(wrongPathToGeneratedDirectory),
});
mockFs.restore();
});
@@ -264,16 +261,14 @@ describe('GoogleGCSPublish', () => {
const entity = createMockEntity();
const entityRootDir = getEntityRootDir(entity);
await publisher
.fetchTechDocsMetadata(entityNameMock)
.catch(errorMessage =>
expect(errorMessage).toEqual(
`The file ${path.join(
entityRootDir,
'techdocs_metadata.json',
)} does not exist !`,
),
);
const fails = publisher.fetchTechDocsMetadata(entityNameMock);
await expect(fails).rejects.toMatchObject({
message: `The file ${path.join(
entityRootDir,
'techdocs_metadata.json',
)} does not exist !`,
});
});
});
});
@@ -168,7 +168,7 @@ export class GoogleGCSPublish implements PublisherBase {
.createReadStream()
.on('error', err => {
this.logger.error(err.message);
reject(err.message);
reject(err);
})
.on('data', chunk => {
fileStreamChunks.push(chunk);
@@ -13,11 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { getVoidLogger } from '@backstage/backend-common';
import {
Entity,
ENTITY_DEFAULT_NAMESPACE,
EntityName,
ENTITY_DEFAULT_NAMESPACE,
} from '@backstage/catalog-model';
import { ConfigReader } from '@backstage/config';
import mockFs from 'mock-fs';
@@ -157,7 +158,6 @@ describe('OpenStackSwiftPublish', () => {
});
it('should fail to publish a directory', async () => {
expect.assertions(3);
const wrongPathToGeneratedDirectory = path.join(
rootDir,
'wrong',
@@ -174,23 +174,22 @@ describe('OpenStackSwiftPublish', () => {
}),
).rejects.toThrowError();
await publisher
.publish({
entity,
directory: wrongPathToGeneratedDirectory,
})
.catch(error => {
expect(error.message).toEqual(
// Can not do exact error message match due to mockFs adding unexpected characters in the path when throwing the error
// Issue reported https://github.com/tschaub/mock-fs/issues/118
expect.stringContaining(
`Unable to upload file(s) to OpenStack Swift. Error: Failed to read template directory: ENOENT, no such file or directory`,
),
);
expect(error.message).toEqual(
expect.stringContaining(wrongPathToGeneratedDirectory),
);
});
const fails = publisher.publish({
entity,
directory: wrongPathToGeneratedDirectory,
});
// Can not do exact error message match due to mockFs adding unexpected characters in the path when throwing the error
// Issue reported https://github.com/tschaub/mock-fs/issues/118
await expect(fails).rejects.toMatchObject({
message: expect.stringContaining(
`Unable to upload file(s) to OpenStack Swift. Error: Failed to read template directory: ENOENT, no such file or directory`,
),
});
await expect(fails).rejects.toMatchObject({
message: expect.stringContaining(wrongPathToGeneratedDirectory),
});
mockFs.restore();
});
});
@@ -268,18 +267,14 @@ describe('OpenStackSwiftPublish', () => {
const entity = createMockEntity();
const entityRootDir = getEntityRootDir(entity);
await publisher
.fetchTechDocsMetadata(entityNameMock)
.catch(error =>
expect(error).toEqual(
new Error(
`TechDocs metadata fetch failed, The file ${path.join(
entityRootDir,
'techdocs_metadata.json',
)} does not exist !`,
),
),
);
const fails = publisher.fetchTechDocsMetadata(entityNameMock);
await expect(fails).rejects.toMatchObject({
message: `TechDocs metadata fetch failed, The file ${path.join(
entityRootDir,
'techdocs_metadata.json',
)} does not exist !`,
});
});
});
});
+14
View File
@@ -1,5 +1,19 @@
# @backstage/plugin-api-docs
## 0.4.12
### Patch Changes
- 1ce80ff02: Resolve issues with AsyncAPI rendering by updating `@asyncapi/react-component`
to `0.23.0`. The theming of the component is adjusted to the latest styling
changes.
- c614ede9a: Updated README to have up-to-date install instructions.
- 07a7806c3: Added fields filtering in get API entities to avoid the requesting of unused data
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.4.11
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-api-docs",
"version": "0.4.11",
"version": "0.4.12",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -29,9 +29,9 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@asyncapi/react-component": "^0.22.3",
"@asyncapi/react-component": "^0.23.0",
"@backstage/catalog-model": "^0.7.7",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.4",
"@backstage/theme": "^0.2.6",
"@material-icons/font": "^1.0.2",
@@ -88,18 +88,10 @@ const useStyles = makeStyles(theme => ({
'& .asyncapi__enum': {
color: theme.palette.secondary.main,
},
'& .asyncapi__toggle-arrow:before': {
content: '">"',
'font-family': 'inherit',
},
'& .asyncapi__anchor-icon:before': {
content: '"🔗"',
'font-family': 'inherit',
},
'& .asyncapi__info, .asyncapi__channel, .asyncapi__channels > div, .asyncapi__schema, .asyncapi__channel-operations-list .asyncapi__messages-list-item .asyncapi__message, .asyncapi__message, .asyncapi__server, .asyncapi__servers > div, .asyncapi__messages > div, .asyncapi__schemas > div': {
'background-color': 'inherit',
},
'& .asyncapi__channel-parameters-header, .asyncapi__channel-operations-header, .asyncapi__channel-operation-oneOf-subscribe-header, .asyncapi__channel-operation-oneOf-publish-header': {
'& .asyncapi__channel-parameters-header, .asyncapi__channel-operations-header, .asyncapi__channel-operation-oneOf-subscribe-header, .asyncapi__channel-operation-oneOf-publish-header, .asyncapi__channel-operation-message-header, .asyncapi__message-header, .asyncapi__message-header-title, .asyncapi__message-header-title > h3, .asyncapi__bindings, .asyncapi__bindings-header, .asyncapi__bindings-header > h4': {
'background-color': 'inherit',
color: theme.palette.text.primary,
},
+1 -1
View File
@@ -21,7 +21,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.6",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/errors": "^0.1.1",
"@backstage/plugin-catalog-react": "^0.1.3",
"@backstage/theme": "^0.2.6",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-bitrise
## 0.1.2
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.1.1
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-bitrise",
"version": "0.1.1",
"version": "0.1.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -21,7 +21,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.2",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.2",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+8
View File
@@ -1,5 +1,13 @@
# @backstage/plugin-catalog-backend
## 0.8.1
### Patch Changes
- a99e0bc42: Entity lifecycle and owner are now indexed by the `DefaultCatalogCollator`. A `locationTemplate` may now optionally be provided to its constructor to reflect a custom catalog entity path in the Backstage frontend.
- Updated dependencies [e1e757569]
- @backstage/plugin-search-backend-node@0.1.4
## 0.8.0
### Minor Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-backend",
"version": "0.8.0",
"version": "0.8.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -35,7 +35,7 @@
"@backstage/config": "^0.1.4",
"@backstage/errors": "^0.1.1",
"@backstage/integration": "^0.5.1",
"@backstage/plugin-search-backend-node": "^0.1.3",
"@backstage/plugin-search-backend-node": "^0.1.4",
"@backstage/search-common": "^0.1.1",
"@octokit/graphql": "^4.5.8",
"@types/express": "^4.17.6",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-catalog-import
## 0.5.4
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.5.3
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-import",
"version": "0.5.3",
"version": "0.5.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,7 +32,7 @@
"dependencies": {
"@backstage/catalog-model": "^0.7.6",
"@backstage/catalog-client": "^0.3.9",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/integration": "^0.5.0",
"@backstage/integration-react": "^0.1.1",
"@backstage/plugin-catalog-react": "^0.1.4",
+13
View File
@@ -1,5 +1,18 @@
# @backstage/plugin-catalog
## 0.5.6
### Patch Changes
- 19a4dd710: Removed unused `swr` dependency.
- da546ce00: Support `gridItem` variant for `EntityLinksCard`.
- e0c9ed759: Add `if` prop to `EntityLayout.Route` to conditionally render tabs
- 1a142ae8a: Switch out the time-based personal greeting for a plain title on the catalog index page, and remove the clocks for different timezones.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.5.5
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog",
"version": "0.5.5",
"version": "0.5.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,7 +32,7 @@
"dependencies": {
"@backstage/catalog-client": "^0.3.10",
"@backstage/catalog-model": "^0.7.7",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/errors": "^0.1.1",
"@backstage/integration": "^0.5.1",
"@backstage/integration-react": "^0.1.1",
@@ -101,4 +101,39 @@ describe('EntityLayout', () => {
expect(rendered.getByText('tabbed-test-title-2')).toBeInTheDocument();
expect(rendered.queryByText('tabbed-test-content-2')).toBeInTheDocument();
});
it('should conditionally render tabs', async () => {
const shouldRenderTab = (e: Entity) => e.metadata.name === 'my-entity';
const shouldNotRenderTab = (e: Entity) => e.metadata.name === 'some-entity';
const rendered = await renderInTestApp(
<ApiProvider apis={mockApis}>
<EntityContext.Provider value={mockEntityData}>
<EntityLayout>
<EntityLayout.Route path="/" title="tabbed-test-title">
<div>tabbed-test-content</div>
</EntityLayout.Route>
<EntityLayout.Route
path="/some-other-path"
title="tabbed-test-title-2"
if={shouldNotRenderTab}
>
<div>tabbed-test-content-2</div>
</EntityLayout.Route>
<EntityLayout.Route
path="/some-other-other-path"
title="tabbed-test-title-3"
if={shouldRenderTab}
>
<div>tabbed-test-content-3</div>
</EntityLayout.Route>
</EntityLayout>
</EntityContext.Provider>
</ApiProvider>,
);
expect(rendered.queryByText('tabbed-test-title')).toBeInTheDocument();
expect(rendered.queryByText('tabbed-test-title-2')).not.toBeInTheDocument();
expect(rendered.queryByText('tabbed-test-title-3')).toBeInTheDocument();
});
});
@@ -20,13 +20,14 @@ import {
RELATION_OWNED_BY,
} from '@backstage/catalog-model';
import {
attachComponentData,
Content,
Header,
HeaderLabel,
IconComponent,
Page,
Progress,
TabbedLayout,
RoutedTabs,
} from '@backstage/core';
import {
EntityContext,
@@ -34,14 +35,69 @@ import {
getEntityRelations,
useEntityCompoundName,
} from '@backstage/plugin-catalog-react';
import { Box } from '@material-ui/core';
import { Box, TabProps } from '@material-ui/core';
import { Alert } from '@material-ui/lab';
import { default as React, useContext, useState } from 'react';
import {
Children,
default as React,
Fragment,
isValidElement,
useContext,
useState,
} from 'react';
import { useNavigate } from 'react-router';
import { EntityContextMenu } from '../EntityContextMenu/EntityContextMenu';
import { FavouriteEntity } from '../FavouriteEntity/FavouriteEntity';
import { UnregisterEntityDialog } from '../UnregisterEntityDialog/UnregisterEntityDialog';
type SubRoute = {
path: string;
title: string;
children: JSX.Element;
if?: (entity: Entity) => boolean;
tabProps?: TabProps<React.ElementType, { component?: React.ElementType }>;
};
const Route: (props: SubRoute) => null = () => null;
// This causes all mount points that are discovered within this route to use the path of the route itself
attachComponentData(Route, 'core.gatherMountPoints', true);
function createSubRoutesFromChildren(
childrenProps: React.ReactNode,
entity: Entity | undefined,
): SubRoute[] {
// Directly comparing child.type with Route will not work with in
// combination with react-hot-loader in storybook
// https://github.com/gaearon/react-hot-loader/issues/304
const routeType = (
<Route path="" title="">
<div />
</Route>
).type;
return Children.toArray(childrenProps).flatMap(child => {
if (!isValidElement(child)) {
return [];
}
if (child.type === Fragment) {
return createSubRoutesFromChildren(child.props.children, entity);
}
if (child.type !== routeType) {
throw new Error('Child of EntityLayout must be an EntityLayout.Route');
}
const { path, title, children, if: condition, tabProps } = child.props;
if (condition && entity && !condition(entity)) {
return [];
}
return [{ path, title, children, tabProps }];
});
}
const EntityLayoutTitle = ({
entity,
title,
@@ -139,6 +195,7 @@ export const EntityLayout = ({
const { kind, namespace, name } = useEntityCompoundName();
const { entity, loading, error } = useContext(EntityContext);
const routes = createSubRoutesFromChildren(children, entity);
const { headerTitle, headerType } = headerProps(
kind,
namespace,
@@ -175,7 +232,7 @@ export const EntityLayout = ({
{loading && <Progress />}
{entity && <TabbedLayout>{children}</TabbedLayout>}
{entity && <RoutedTabs routes={routes} />}
{error && (
<Content>
@@ -192,4 +249,4 @@ export const EntityLayout = ({
);
};
EntityLayout.Route = TabbedLayout.Route;
EntityLayout.Route = Route;
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-circleci
## 0.2.13
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.2.12
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-circleci",
"version": "0.2.12",
"version": "0.2.13",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,7 +32,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.3",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.2",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+1 -1
View File
@@ -32,7 +32,7 @@
"dependencies": {
"@backstage/catalog-model": "^0.7.3",
"@backstage/plugin-catalog-react": "^0.1.2",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
@@ -1,5 +1,11 @@
# @backstage/plugin-code-coverage-backend
## 0.1.3
### Patch Changes
- d47c2628b: Include migrations
## 0.1.2
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-code-coverage-backend",
"version": "0.1.2",
"version": "0.1.3",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
+1 -1
View File
@@ -22,7 +22,7 @@
"dependencies": {
"@backstage/catalog-model": "^0.7.7",
"@backstage/config": "^0.1.4",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/errors": "^0.1.1",
"@backstage/plugin-catalog-react": "^0.1.4",
"@backstage/theme": "^0.2.6",
+1 -1
View File
@@ -21,7 +21,7 @@
},
"dependencies": {
"@backstage/config": "^0.1.4",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/errors": "^0.1.1",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/plugin-cost-insights
## 0.8.5
### Patch Changes
- b98de52ae: Support a `name` prop for Projects for display purposes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.8.4
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-cost-insights",
"version": "0.8.4",
"version": "0.8.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -31,7 +31,7 @@
},
"dependencies": {
"@backstage/config": "^0.1.3",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-explore
## 0.3.4
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.3.3
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-explore",
"version": "0.3.3",
"version": "0.3.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -31,7 +31,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.5",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.4",
"@backstage/plugin-explore-react": "^0.0.4",
"@backstage/theme": "^0.2.6",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-fossa
## 0.2.6
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.2.5
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-fossa",
"version": "0.2.5",
"version": "0.2.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,7 +32,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.3",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/errors": "^0.1.1",
"@backstage/plugin-catalog-react": "^0.1.1",
"@backstage/theme": "^0.2.6",
+1 -1
View File
@@ -30,7 +30,7 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
+11
View File
@@ -1,5 +1,16 @@
# @backstage/plugin-github-actions
## 0.4.4
### Patch Changes
- 4c42ecca2: Wrap EmptyState in Card
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.4.3
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-github-actions",
"version": "0.4.3",
"version": "0.4.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -34,7 +34,7 @@
"dependencies": {
"@backstage/catalog-model": "^0.7.5",
"@backstage/plugin-catalog-react": "^0.1.4",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/integration": "^0.5.1",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-github-deployments
## 0.1.4
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.1.3
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-github-deployments",
"version": "0.1.3",
"version": "0.1.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -21,7 +21,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.6",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.3",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+1 -1
View File
@@ -31,7 +31,7 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-graphiql
## 0.2.10
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.2.9
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-graphiql",
"description": "Backstage plugin for browsing GraphQL APIs",
"version": "0.2.9",
"version": "0.2.10",
"private": false,
"publishConfig": {
"access": "public",
@@ -31,7 +31,7 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-jenkins
## 0.4.2
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.4.1
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-jenkins",
"version": "0.4.1",
"version": "0.4.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,7 +32,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.3",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.3",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+1 -1
View File
@@ -21,7 +21,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.4",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.1",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+1 -1
View File
@@ -33,7 +33,7 @@
"dependencies": {
"@backstage/catalog-model": "^0.7.4",
"@backstage/config": "^0.1.4",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.3",
"@backstage/plugin-kubernetes-backend": "^0.3.2",
"@backstage/theme": "^0.2.6",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-lighthouse
## 0.2.15
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.2.14
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-lighthouse",
"version": "0.2.14",
"version": "0.2.15",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,7 +33,7 @@
"dependencies": {
"@backstage/catalog-model": "^0.7.3",
"@backstage/config": "^0.1.4",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.2",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+1 -1
View File
@@ -31,7 +31,7 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
+1 -1
View File
@@ -21,7 +21,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.6",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/core-api": "^0.2.16",
"@backstage/plugin-catalog-react": "^0.1.4",
"@backstage/theme": "^0.2.6",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-pagerduty
## 0.3.3
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.3.2
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-pagerduty",
"version": "0.3.2",
"version": "0.3.3",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -31,7 +31,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.3",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.1",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-register-component
## 0.2.14
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.2.13
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-register-component",
"version": "0.2.13",
"version": "0.2.14",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -31,7 +31,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.5",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.4",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-rollbar
## 0.3.4
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.3.3
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-rollbar",
"version": "0.3.3",
"version": "0.3.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,7 +32,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.3",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.1",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+6
View File
@@ -1,5 +1,11 @@
# @backstage/plugin-scaffolder-backend
## 0.10.1
### Patch Changes
- a1783f306: Added the `nebula-preview` preview to `Octokit` for repository visibility.
## 0.10.0
### Minor Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-scaffolder-backend",
"version": "0.10.0",
"version": "0.10.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
+12
View File
@@ -1,5 +1,17 @@
# @backstage/plugin-scaffolder
## 0.9.2
### Patch Changes
- f6efa71ee: Enable starred templates on Scaffolder frontend
- 19a4dd710: Removed unused `swr` dependency.
- 23769512a: Support `anyOf`, `oneOf` and `allOf` schemas in the scaffolder template.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.9.1
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-scaffolder",
"version": "0.9.1",
"version": "0.9.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,7 +33,7 @@
"@backstage/catalog-client": "^0.3.10",
"@backstage/catalog-model": "^0.7.7",
"@backstage/config": "^0.1.4",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/integration": "^0.5.1",
"@backstage/integration-react": "^0.1.1",
"@backstage/plugin-catalog-react": "^0.1.4",
@@ -70,4 +70,220 @@ describe('transformSchemaToProps', () => {
uiSchema: expectedUiSchema,
});
});
it('transforms schema with anyOf fields', () => {
const inputSchema = {
type: 'object',
anyOf: [
{
properties: {
field3: {
type: 'string',
default: 'Value 1',
'ui:readonly': true,
},
},
},
{
properties: {
field3: {
type: 'string',
default: 'Value 2',
'ui:readonly': true,
},
},
},
],
oneOf: [
{
properties: {
field4: {
type: 'string',
default: 'Value 1',
'ui:readonly': true,
},
},
},
],
allOf: [
{
properties: {
field5: {
type: 'string',
default: 'Value 1',
'ui:readonly': true,
},
},
},
],
properties: {
field1: {
type: 'object',
anyOf: [
{
properties: {
field3: {
type: 'string',
default: 'Value 1',
'ui:readonly': true,
},
},
},
{
properties: {
field3: {
type: 'string',
default: 'Value 2',
'ui:readonly': true,
},
},
},
],
oneOf: [
{
properties: {
field4: {
type: 'string',
default: 'Value 1',
'ui:readonly': true,
},
},
},
],
allOf: [
{
properties: {
field5: {
type: 'string',
default: 'Value 1',
'ui:readonly': true,
},
},
},
],
},
field2: {
type: 'string',
'ui:derp': 'xerp',
},
},
};
const expectedSchema = {
type: 'object',
anyOf: [
{
properties: {
field3: {
type: 'string',
default: 'Value 1',
},
},
},
{
properties: {
field3: {
type: 'string',
default: 'Value 2',
},
},
},
],
oneOf: [
{
properties: {
field4: {
type: 'string',
default: 'Value 1',
},
},
},
],
allOf: [
{
properties: {
field5: {
type: 'string',
default: 'Value 1',
},
},
},
],
properties: {
field1: {
type: 'object',
anyOf: [
{
properties: {
field3: {
type: 'string',
default: 'Value 1',
},
},
},
{
properties: {
field3: {
type: 'string',
default: 'Value 2',
},
},
},
],
oneOf: [
{
properties: {
field4: {
type: 'string',
default: 'Value 1',
},
},
},
],
allOf: [
{
properties: {
field5: {
type: 'string',
default: 'Value 1',
},
},
},
],
},
field2: {
type: 'string',
},
},
};
const expectedUiSchema = {
field3: {
'ui:readonly': true,
},
field4: {
'ui:readonly': true,
},
field5: {
'ui:readonly': true,
},
field1: {
field3: {
'ui:readonly': true,
},
field4: {
'ui:readonly': true,
},
field5: {
'ui:readonly': true,
},
},
field2: {
'ui:derp': 'xerp',
},
};
expect(transformSchemaToProps(inputSchema)).toEqual({
schema: expectedSchema,
uiSchema: expectedUiSchema,
});
});
});
@@ -26,7 +26,7 @@ function extractUiSchema(schema: JsonObject, uiSchema: JsonObject) {
return;
}
const { properties } = schema;
const { properties, anyOf, oneOf, allOf } = schema;
for (const propName in schema) {
if (!schema.hasOwnProperty(propName)) {
@@ -39,22 +39,47 @@ function extractUiSchema(schema: JsonObject, uiSchema: JsonObject) {
}
}
if (!isObject(properties)) {
return;
if (isObject(properties)) {
for (const propName in properties) {
if (!properties.hasOwnProperty(propName)) {
continue;
}
const schemaNode = properties[propName];
if (!isObject(schemaNode)) {
continue;
}
const innerUiSchema = {};
uiSchema[propName] = innerUiSchema;
extractUiSchema(schemaNode, innerUiSchema);
}
}
for (const propName in properties) {
if (!properties.hasOwnProperty(propName)) {
continue;
if (Array.isArray(anyOf)) {
for (const schemaNode of anyOf) {
if (!isObject(schemaNode)) {
continue;
}
extractUiSchema(schemaNode, uiSchema);
}
}
const schemaNode = properties[propName];
if (!isObject(schemaNode)) {
continue;
if (Array.isArray(oneOf)) {
for (const schemaNode of oneOf) {
if (!isObject(schemaNode)) {
continue;
}
extractUiSchema(schemaNode, uiSchema);
}
}
if (Array.isArray(allOf)) {
for (const schemaNode of allOf) {
if (!isObject(schemaNode)) {
continue;
}
extractUiSchema(schemaNode, uiSchema);
}
const innerUiSchema = {};
uiSchema[propName] = innerUiSchema;
extractUiSchema(schemaNode, innerUiSchema);
}
}
+6
View File
@@ -1,5 +1,11 @@
# @backstage/plugin-search-backend-node
## 0.1.4
### Patch Changes
- e1e757569: Introduced Scheduler which is responsible for adding new tasks to a schedule together with it's interval timer as well as starting and stopping the scheduler processes.
## 0.1.3
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-backend-node",
"version": "0.1.3",
"version": "0.1.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-search
## 0.3.5
### Patch Changes
- dcd54c7cd: Use `RouteRef` to generate path to search page.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.3.4
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search",
"version": "0.3.4",
"version": "0.3.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -29,7 +29,7 @@
"clean": "backstage-cli clean"
},
"dependencies": {
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/catalog-model": "^0.7.3",
"@backstage/plugin-catalog-react": "^0.1.2",
"@backstage/search-common": "^0.1.1",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-sentry
## 0.3.9
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.3.8
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-sentry",
"version": "0.3.8",
"version": "0.3.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,7 +32,7 @@
},
"dependencies": {
"@backstage/catalog-model": "^0.7.3",
"@backstage/core": "^0.7.6",
"@backstage/core": "^0.7.7",
"@backstage/plugin-catalog-react": "^0.1.1",
"@backstage/theme": "^0.2.6",
"@material-ui/core": "^4.11.0",
+10
View File
@@ -1,5 +1,15 @@
# @backstage/plugin-sonarqube
## 0.1.17
### Patch Changes
- c614ede9a: Updated README to have up-to-date install instructions.
- Updated dependencies [9afcac5af]
- Updated dependencies [e0c9ed759]
- Updated dependencies [6eaecbd81]
- @backstage/core@0.7.7
## 0.1.16
### Patch Changes

Some files were not shown because too many files have changed in this diff Show More