Merge pull request #33359 from awanlin/topic/typos-cli
Added `typos` to CI and fixed all findings
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-azure': patch
|
||||
---
|
||||
|
||||
Updated internal usage of `AzureBlobStorageIntegration` (previously misspelled as `AzureBlobStorageIntergation`) following the rename in `@backstage/integration`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/integration': patch
|
||||
---
|
||||
|
||||
Added the correctly-spelled `AzureBlobStorageIntegration` class export and deprecated the previous typoed `AzureBlobStorageIntergation` export. Existing usage of `AzureBlobStorageIntergation` continues to work; switch to `AzureBlobStorageIntegration` to avoid future removal.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-defaults': patch
|
||||
---
|
||||
|
||||
Updated `AzureBlobStorageUrlReader` to reference the correctly-named `AzureBlobStorageIntegration` type from `@backstage/integration`. The previously-used `AzureBlobStorageIntergation` is now an alias for the new type and remains a valid argument to the constructor.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-home': patch
|
||||
---
|
||||
|
||||
Added the correctly-spelled `'widgetSettingsOverlay.editSettingsTooltip'` translation key in `homeTranslationRef` and deprecated the previous typoed `'widgetSettingsOverlay.editSettingsTooptip'` key. Existing references to the old key continue to work; switch to the new key to avoid future removal.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Added the correctly-spelled `RelatedEntitiesCard.domainEntityColumns` static property and deprecated the previous typoed `RelatedEntitiesCard.domainEntityColums` property. Existing references to the old property continue to work; switch to `domainEntityColumns` to avoid future removal.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Added the correctly-spelled `'header'` literal to the `TableFiltersClassKey` union type and deprecated the previous typoed `'heder'` literal. The generated CSS class with the old key is preserved for backwards compatibility; switch to `'header'` to avoid future removal.
|
||||
@@ -541,6 +541,7 @@ TTLs
|
||||
Turbopack
|
||||
TSDoc
|
||||
typeahead
|
||||
typoed
|
||||
ui
|
||||
unassign
|
||||
unbreak
|
||||
|
||||
@@ -31,6 +31,13 @@ jobs:
|
||||
|
||||
- run: echo NOOP
|
||||
|
||||
typos-noop:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: Spell Check
|
||||
steps:
|
||||
- run: echo NOOP
|
||||
|
||||
test-noop:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
||||
@@ -165,6 +165,23 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
|
||||
typos:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: Spell Check
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: check for typos
|
||||
uses: crate-ci/typos@631208b7aac2daa8b707f55e7331f9112b0e062d # v1.44.0
|
||||
with:
|
||||
config: typos.toml
|
||||
|
||||
# The test job runs all tests as well as any verification step that
|
||||
# requires a diff towards master.
|
||||
test:
|
||||
|
||||
@@ -987,7 +987,7 @@ metadata:
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: example-platfrom
|
||||
name: example-platform
|
||||
title: Example Application Platform
|
||||
namespace: default
|
||||
description: This is the child entity
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
```ts
|
||||
import { AwsCredentialsManager } from '@backstage/integration-aws-node';
|
||||
import { AwsS3Integration } from '@backstage/integration';
|
||||
import { AzureBlobStorageIntergation } from '@backstage/integration';
|
||||
import { AzureBlobStorageIntegration } from '@backstage/integration';
|
||||
import { AzureCredentialsManager } from '@backstage/integration';
|
||||
import { AzureDevOpsCredentialsProvider } from '@backstage/integration';
|
||||
import { AzureIntegration } from '@backstage/integration';
|
||||
@@ -67,7 +67,7 @@ export class AwsS3UrlReader implements UrlReaderService {
|
||||
export class AzureBlobStorageUrlReader implements UrlReaderService {
|
||||
constructor(
|
||||
credsManager: AzureCredentialsManager,
|
||||
integration: AzureBlobStorageIntergation,
|
||||
integration: AzureBlobStorageIntegration,
|
||||
deps: {
|
||||
treeResponseFactory: ReadTreeResponseFactory;
|
||||
},
|
||||
|
||||
+3
-3
@@ -26,7 +26,7 @@ import { Readable } from 'node:stream';
|
||||
import { relative } from 'node:path/posix';
|
||||
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
|
||||
import {
|
||||
AzureBlobStorageIntergation,
|
||||
AzureBlobStorageIntegration,
|
||||
AzureCredentialsManager,
|
||||
DefaultAzureCredentialsManager,
|
||||
ScmIntegrations,
|
||||
@@ -88,14 +88,14 @@ export class AzureBlobStorageUrlReader implements UrlReaderService {
|
||||
// private readonly blobServiceClient: BlobServiceClient;
|
||||
|
||||
private readonly credsManager: AzureCredentialsManager;
|
||||
private readonly integration: AzureBlobStorageIntergation;
|
||||
private readonly integration: AzureBlobStorageIntegration;
|
||||
private readonly deps: {
|
||||
treeResponseFactory: ReadTreeResponseFactory;
|
||||
};
|
||||
|
||||
constructor(
|
||||
credsManager: AzureCredentialsManager,
|
||||
integration: AzureBlobStorageIntergation,
|
||||
integration: AzureBlobStorageIntegration,
|
||||
deps: {
|
||||
treeResponseFactory: ReadTreeResponseFactory;
|
||||
},
|
||||
|
||||
@@ -1547,7 +1547,15 @@ export type TableFilter = {
|
||||
// Warning: (ae-missing-release-tag) "TableFiltersClassKey" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
|
||||
//
|
||||
// @public (undocumented)
|
||||
export type TableFiltersClassKey = 'root' | 'value' | 'heder' | 'filters';
|
||||
export type TableFiltersClassKey =
|
||||
| 'root'
|
||||
| 'value'
|
||||
| 'header'
|
||||
/**
|
||||
* @deprecated Use `'header'` instead. This was a typo in the original class key.
|
||||
*/
|
||||
| 'heder'
|
||||
| 'filters';
|
||||
|
||||
// Warning: (ae-missing-release-tag) "TableHeaderClassKey" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
|
||||
//
|
||||
|
||||
@@ -24,7 +24,15 @@ import { SelectProps } from '../Select/Select';
|
||||
import { coreComponentsTranslationRef } from '../../translation';
|
||||
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
|
||||
export type TableFiltersClassKey = 'root' | 'value' | 'heder' | 'filters';
|
||||
export type TableFiltersClassKey =
|
||||
| 'root'
|
||||
| 'value'
|
||||
| 'header'
|
||||
/**
|
||||
* @deprecated Use `'header'` instead. This was a typo in the original class key.
|
||||
*/
|
||||
| 'heder'
|
||||
| 'filters';
|
||||
|
||||
const useFilterStyles = makeStyles(
|
||||
theme => ({
|
||||
@@ -46,6 +54,13 @@ const useFilterStyles = makeStyles(
|
||||
justifyContent: 'space-between',
|
||||
borderBottom: `1px solid ${theme.palette.grey[500]}`,
|
||||
},
|
||||
// Intentionally empty: the deprecated `heder` class is still applied to
|
||||
// the same element as `header` so legacy theme overrides on
|
||||
// `BackstageTableFilters.heder` continue to work. Keeping this rule empty
|
||||
// (rather than duplicating `header`'s styles) avoids clobbering overrides
|
||||
// on the canonical `header` key — JSS injects rules in key order, so an
|
||||
// empty `heder` defined after `header` has no properties to override.
|
||||
heder: {},
|
||||
filters: {
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
@@ -98,7 +113,7 @@ export const Filters = (props: Props) => {
|
||||
// As material table doesn't provide a way to add a column filter tab we will make our own filter logic
|
||||
return (
|
||||
<Box className={classes.root}>
|
||||
<Box className={classes.header}>
|
||||
<Box className={`${classes.header} ${classes.heder}`}>
|
||||
<Box className={classes.value}>{t('table.filter.title')}</Box>
|
||||
<Button color="primary" onClick={handleClick}>
|
||||
{t('table.filter.clearAll')}
|
||||
|
||||
@@ -73,6 +73,27 @@ export type AwsS3IntegrationConfig = {
|
||||
externalId?: string;
|
||||
};
|
||||
|
||||
// @public
|
||||
export class AzureBlobStorageIntegration implements ScmIntegration {
|
||||
constructor(integrationConfig: AzureBlobStorageIntegrationConfig);
|
||||
// (undocumented)
|
||||
get config(): AzureBlobStorageIntegrationConfig;
|
||||
// (undocumented)
|
||||
static factory: ScmIntegrationsFactory<AzureBlobStorageIntegration>;
|
||||
// (undocumented)
|
||||
resolveEditUrl(url: string): string;
|
||||
// (undocumented)
|
||||
resolveUrl(options: {
|
||||
url: string;
|
||||
base: string;
|
||||
lineNumber?: number | undefined;
|
||||
}): string;
|
||||
// (undocumented)
|
||||
get title(): string;
|
||||
// (undocumented)
|
||||
get type(): string;
|
||||
}
|
||||
|
||||
// @public
|
||||
export type AzureBlobStorageIntegrationConfig = {
|
||||
accountName?: string;
|
||||
@@ -89,26 +110,11 @@ export type AzureBlobStorageIntegrationConfig = {
|
||||
};
|
||||
};
|
||||
|
||||
// @public
|
||||
export class AzureBlobStorageIntergation implements ScmIntegration {
|
||||
constructor(integrationConfig: AzureBlobStorageIntegrationConfig);
|
||||
// (undocumented)
|
||||
get config(): AzureBlobStorageIntegrationConfig;
|
||||
// (undocumented)
|
||||
static factory: ScmIntegrationsFactory<AzureBlobStorageIntergation>;
|
||||
// (undocumented)
|
||||
resolveEditUrl(url: string): string;
|
||||
// (undocumented)
|
||||
resolveUrl(options: {
|
||||
url: string;
|
||||
base: string;
|
||||
lineNumber?: number | undefined;
|
||||
}): string;
|
||||
// (undocumented)
|
||||
get title(): string;
|
||||
// (undocumented)
|
||||
get type(): string;
|
||||
}
|
||||
// @public @deprecated
|
||||
export const AzureBlobStorageIntergation: typeof AzureBlobStorageIntegration;
|
||||
|
||||
// @public @deprecated
|
||||
export type AzureBlobStorageIntergation = AzureBlobStorageIntegration;
|
||||
|
||||
// @public
|
||||
export type AzureClientSecretCredential = AzureCredentialBase & {
|
||||
@@ -771,7 +777,7 @@ export interface IntegrationsByType {
|
||||
// (undocumented)
|
||||
azure: ScmIntegrationsGroup<AzureIntegration>;
|
||||
// (undocumented)
|
||||
azureBlobStorage: ScmIntegrationsGroup<AzureBlobStorageIntergation>;
|
||||
azureBlobStorage: ScmIntegrationsGroup<AzureBlobStorageIntegration>;
|
||||
// (undocumented)
|
||||
bitbucketCloud: ScmIntegrationsGroup<BitbucketCloudIntegration>;
|
||||
// (undocumented)
|
||||
@@ -980,7 +986,7 @@ export interface ScmIntegrationRegistry
|
||||
// (undocumented)
|
||||
azure: ScmIntegrationsGroup<AzureIntegration>;
|
||||
// (undocumented)
|
||||
azureBlobStorage: ScmIntegrationsGroup<AzureBlobStorageIntergation>;
|
||||
azureBlobStorage: ScmIntegrationsGroup<AzureBlobStorageIntegration>;
|
||||
// (undocumented)
|
||||
bitbucketCloud: ScmIntegrationsGroup<BitbucketCloudIntegration>;
|
||||
// (undocumented)
|
||||
@@ -1013,7 +1019,7 @@ export class ScmIntegrations implements ScmIntegrationRegistry {
|
||||
// (undocumented)
|
||||
get azure(): ScmIntegrationsGroup<AzureIntegration>;
|
||||
// (undocumented)
|
||||
get azureBlobStorage(): ScmIntegrationsGroup<AzureBlobStorageIntergation>;
|
||||
get azureBlobStorage(): ScmIntegrationsGroup<AzureBlobStorageIntegration>;
|
||||
// (undocumented)
|
||||
get bitbucketCloud(): ScmIntegrationsGroup<BitbucketCloudIntegration>;
|
||||
// (undocumented)
|
||||
|
||||
@@ -39,7 +39,7 @@ import { AwsCodeCommitIntegrationConfig } from './awsCodeCommit';
|
||||
import { HarnessIntegration, HarnessIntegrationConfig } from './harness';
|
||||
import {
|
||||
AzureBlobStorageIntegrationConfig,
|
||||
AzureBlobStorageIntergation,
|
||||
AzureBlobStorageIntegration,
|
||||
} from './azureBlobStorage';
|
||||
import { GoogleGcsIntegration, GoogleGcsIntegrationConfig } from './googleGcs';
|
||||
|
||||
@@ -56,7 +56,7 @@ describe('ScmIntegrations', () => {
|
||||
host: 'azure.local',
|
||||
} as AzureIntegrationConfig);
|
||||
|
||||
const azureBlob = new AzureBlobStorageIntergation({
|
||||
const azureBlob = new AzureBlobStorageIntegration({
|
||||
host: 'azureblobstorage.local',
|
||||
} as AzureBlobStorageIntegrationConfig);
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ import { ScmIntegration, ScmIntegrationsGroup } from './types';
|
||||
import { ScmIntegrationRegistry } from './registry';
|
||||
import { GiteaIntegration } from './gitea';
|
||||
import { HarnessIntegration } from './harness/HarnessIntegration';
|
||||
import { AzureBlobStorageIntergation } from './azureBlobStorage';
|
||||
import { AzureBlobStorageIntegration } from './azureBlobStorage';
|
||||
import { GoogleGcsIntegration } from './googleGcs/GoogleGcsIntegration';
|
||||
|
||||
/**
|
||||
@@ -39,7 +39,7 @@ import { GoogleGcsIntegration } from './googleGcs/GoogleGcsIntegration';
|
||||
export interface IntegrationsByType {
|
||||
awsS3: ScmIntegrationsGroup<AwsS3Integration>;
|
||||
awsCodeCommit: ScmIntegrationsGroup<AwsCodeCommitIntegration>;
|
||||
azureBlobStorage: ScmIntegrationsGroup<AzureBlobStorageIntergation>;
|
||||
azureBlobStorage: ScmIntegrationsGroup<AzureBlobStorageIntegration>;
|
||||
azure: ScmIntegrationsGroup<AzureIntegration>;
|
||||
bitbucketCloud: ScmIntegrationsGroup<BitbucketCloudIntegration>;
|
||||
bitbucketServer: ScmIntegrationsGroup<BitbucketServerIntegration>;
|
||||
@@ -63,7 +63,7 @@ export class ScmIntegrations implements ScmIntegrationRegistry {
|
||||
return new ScmIntegrations({
|
||||
awsS3: AwsS3Integration.factory({ config }),
|
||||
awsCodeCommit: AwsCodeCommitIntegration.factory({ config }),
|
||||
azureBlobStorage: AzureBlobStorageIntergation.factory({ config }),
|
||||
azureBlobStorage: AzureBlobStorageIntegration.factory({ config }),
|
||||
azure: AzureIntegration.factory({ config }),
|
||||
bitbucketCloud: BitbucketCloudIntegration.factory({ config }),
|
||||
bitbucketServer: BitbucketServerIntegration.factory({ config }),
|
||||
@@ -88,7 +88,7 @@ export class ScmIntegrations implements ScmIntegrationRegistry {
|
||||
return this.byType.awsCodeCommit;
|
||||
}
|
||||
|
||||
get azureBlobStorage(): ScmIntegrationsGroup<AzureBlobStorageIntergation> {
|
||||
get azureBlobStorage(): ScmIntegrationsGroup<AzureBlobStorageIntegration> {
|
||||
return this.byType.azureBlobStorage;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
*/
|
||||
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { AzureBlobStorageIntergation } from './AzureBlobStorageIntegration';
|
||||
import { AzureBlobStorageIntegration } from './AzureBlobStorageIntegration';
|
||||
|
||||
describe('AzureBlobStorageIntegration', () => {
|
||||
it('has a working factory', () => {
|
||||
const integrations = AzureBlobStorageIntergation.factory({
|
||||
const integrations = AzureBlobStorageIntegration.factory({
|
||||
config: new ConfigReader({
|
||||
integrations: {
|
||||
azureBlobStorage: [
|
||||
@@ -40,7 +40,7 @@ describe('AzureBlobStorageIntegration', () => {
|
||||
});
|
||||
|
||||
it('returns the basics', () => {
|
||||
const integration = new AzureBlobStorageIntergation({
|
||||
const integration = new AzureBlobStorageIntegration({
|
||||
host: 'myaccount.blob.core.windows.net',
|
||||
} as any);
|
||||
expect(integration.type).toBe('azureBlobStorage');
|
||||
@@ -49,7 +49,7 @@ describe('AzureBlobStorageIntegration', () => {
|
||||
|
||||
describe('resolveUrl', () => {
|
||||
it('works for valid URLs', () => {
|
||||
const integration = new AzureBlobStorageIntergation({
|
||||
const integration = new AzureBlobStorageIntegration({
|
||||
host: 'blob.core.windows.net',
|
||||
} as any);
|
||||
|
||||
@@ -63,7 +63,7 @@ describe('AzureBlobStorageIntegration', () => {
|
||||
});
|
||||
|
||||
it('resolve edit URL', () => {
|
||||
const integration = new AzureBlobStorageIntergation({
|
||||
const integration = new AzureBlobStorageIntegration({
|
||||
host: 'myaccount.blob.core.windows.net',
|
||||
} as any);
|
||||
|
||||
|
||||
@@ -26,15 +26,15 @@ import {
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export class AzureBlobStorageIntergation implements ScmIntegration {
|
||||
static factory: ScmIntegrationsFactory<AzureBlobStorageIntergation> = ({
|
||||
export class AzureBlobStorageIntegration implements ScmIntegration {
|
||||
static factory: ScmIntegrationsFactory<AzureBlobStorageIntegration> = ({
|
||||
config,
|
||||
}) => {
|
||||
const configs = readAzureBlobStorageIntegrationConfigs(
|
||||
config.getOptionalConfigArray('integrations.azureBlobStorage') ?? [],
|
||||
);
|
||||
return basicIntegrations(
|
||||
configs.map(c => new AzureBlobStorageIntergation(c)),
|
||||
configs.map(c => new AzureBlobStorageIntegration(c)),
|
||||
i => i.config.host,
|
||||
);
|
||||
};
|
||||
@@ -69,3 +69,20 @@ export class AzureBlobStorageIntergation implements ScmIntegration {
|
||||
return url;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Microsoft Azure Blob storage based integration.
|
||||
*
|
||||
* @public
|
||||
* @deprecated Use {@link AzureBlobStorageIntegration} instead. This was a typo in the original class name.
|
||||
*/
|
||||
export const AzureBlobStorageIntergation = AzureBlobStorageIntegration;
|
||||
|
||||
/**
|
||||
* Microsoft Azure Blob storage based integration.
|
||||
*
|
||||
* @public
|
||||
* @deprecated Use {@link AzureBlobStorageIntegration} instead. This was a typo in the original class name.
|
||||
*/
|
||||
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
||||
export type AzureBlobStorageIntergation = AzureBlobStorageIntegration;
|
||||
|
||||
@@ -13,7 +13,10 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
export { AzureBlobStorageIntergation } from './AzureBlobStorageIntegration';
|
||||
export {
|
||||
AzureBlobStorageIntegration,
|
||||
AzureBlobStorageIntergation,
|
||||
} from './AzureBlobStorageIntegration';
|
||||
export {
|
||||
readAzureBlobStorageIntegrationConfig,
|
||||
readAzureBlobStorageIntegrationConfigs,
|
||||
|
||||
@@ -496,7 +496,7 @@ describe('parseRetryAfterMs', () => {
|
||||
expect(parseRetryAfterMs(pastDate, 5000)).toBe(0);
|
||||
});
|
||||
|
||||
it('returns fallback for null or unparseable values', () => {
|
||||
it('returns fallback for null or unparsable values', () => {
|
||||
expect(parseRetryAfterMs(null, 5000)).toBe(5000);
|
||||
expect(parseRetryAfterMs('', 5000)).toBe(5000);
|
||||
expect(parseRetryAfterMs('not-a-date-or-number', 5000)).toBe(5000);
|
||||
|
||||
@@ -25,7 +25,7 @@ import { GithubIntegration } from './github/GithubIntegration';
|
||||
import { GitLabIntegration } from './gitlab/GitLabIntegration';
|
||||
import { GiteaIntegration } from './gitea/GiteaIntegration';
|
||||
import { HarnessIntegration } from './harness/HarnessIntegration';
|
||||
import { AzureBlobStorageIntergation } from './azureBlobStorage';
|
||||
import { AzureBlobStorageIntegration } from './azureBlobStorage';
|
||||
|
||||
/**
|
||||
* Holds all registered SCM integrations, of all types.
|
||||
@@ -36,7 +36,7 @@ export interface ScmIntegrationRegistry
|
||||
extends ScmIntegrationsGroup<ScmIntegration> {
|
||||
awsS3: ScmIntegrationsGroup<AwsS3Integration>;
|
||||
awsCodeCommit: ScmIntegrationsGroup<AwsCodeCommitIntegration>;
|
||||
azureBlobStorage: ScmIntegrationsGroup<AzureBlobStorageIntergation>;
|
||||
azureBlobStorage: ScmIntegrationsGroup<AzureBlobStorageIntegration>;
|
||||
azure: ScmIntegrationsGroup<AzureIntegration>;
|
||||
bitbucketCloud: ScmIntegrationsGroup<BitbucketCloudIntegration>;
|
||||
bitbucketServer: ScmIntegrationsGroup<BitbucketServerIntegration>;
|
||||
|
||||
+3
-3
@@ -35,7 +35,7 @@ import { LocationSpec } from '@backstage/plugin-catalog-common';
|
||||
import { randomUUID } from 'node:crypto';
|
||||
import { readAzureBlobStorageConfigs } from './config';
|
||||
import {
|
||||
AzureBlobStorageIntergation,
|
||||
AzureBlobStorageIntegration,
|
||||
DefaultAzureCredentialsManager,
|
||||
ScmIntegrations,
|
||||
} from '@backstage/integration';
|
||||
@@ -106,12 +106,12 @@ export class AzureBlobStorageEntityProvider implements EntityProvider {
|
||||
});
|
||||
}
|
||||
private readonly config: AzureBlobStorageConfig;
|
||||
private readonly integration: AzureBlobStorageIntergation;
|
||||
private readonly integration: AzureBlobStorageIntegration;
|
||||
private readonly credentialsProvider: DefaultAzureCredentialsManager;
|
||||
|
||||
private constructor(
|
||||
config: AzureBlobStorageConfig,
|
||||
integration: AzureBlobStorageIntergation,
|
||||
integration: AzureBlobStorageIntegration,
|
||||
credentialsProvider: DefaultAzureCredentialsManager,
|
||||
logger: LoggerService,
|
||||
schedule: SchedulerServiceTaskRunner,
|
||||
|
||||
@@ -140,6 +140,10 @@ RelatedEntitiesCard.asResourceEntities = asResourceEntities;
|
||||
RelatedEntitiesCard.systemEntityColumns = systemEntityColumns;
|
||||
RelatedEntitiesCard.systemEntityHelpLink = systemEntityHelpLink;
|
||||
RelatedEntitiesCard.asSystemEntities = asSystemEntities;
|
||||
RelatedEntitiesCard.domainEntityColumns = domainEntityColumns;
|
||||
/**
|
||||
* @deprecated Use `RelatedEntitiesCard.domainEntityColumns` instead. This was a typo in the original property name.
|
||||
*/
|
||||
RelatedEntitiesCard.domainEntityColums = domainEntityColumns;
|
||||
RelatedEntitiesCard.domainEntityHelpLink = domainEntityHelpLink;
|
||||
RelatedEntitiesCard.asDomainEntities = asDomainEntities;
|
||||
|
||||
@@ -198,6 +198,7 @@ export const homeTranslationRef: TranslationRef<
|
||||
readonly 'customHomepageButtons.save': 'Save';
|
||||
readonly 'customHomepage.noWidgets': "No widgets added. Start by clicking the 'Add widget' button.";
|
||||
readonly 'widgetSettingsOverlay.cancelButtonTitle': 'Cancel';
|
||||
readonly 'widgetSettingsOverlay.editSettingsTooltip': 'Edit settings';
|
||||
readonly 'widgetSettingsOverlay.editSettingsTooptip': 'Edit settings';
|
||||
readonly 'widgetSettingsOverlay.deleteWidgetTooltip': 'Delete widget';
|
||||
readonly 'widgetSettingsOverlay.submitButtonTitle': 'Submit';
|
||||
|
||||
@@ -191,6 +191,7 @@ export const homeTranslationRef: TranslationRef<
|
||||
readonly 'customHomepageButtons.save': 'Save';
|
||||
readonly 'customHomepage.noWidgets': "No widgets added. Start by clicking the 'Add widget' button.";
|
||||
readonly 'widgetSettingsOverlay.cancelButtonTitle': 'Cancel';
|
||||
readonly 'widgetSettingsOverlay.editSettingsTooltip': 'Edit settings';
|
||||
readonly 'widgetSettingsOverlay.editSettingsTooptip': 'Edit settings';
|
||||
readonly 'widgetSettingsOverlay.deleteWidgetTooltip': 'Delete widget';
|
||||
readonly 'widgetSettingsOverlay.submitButtonTitle': 'Submit';
|
||||
|
||||
@@ -77,6 +77,16 @@ export const WidgetSettingsOverlay = (props: WidgetSettingsOverlayProps) => {
|
||||
const onClose = () => setSettingsDialogOpen(false);
|
||||
const { t } = useTranslationRef(homeTranslationRef);
|
||||
|
||||
// Prefer the corrected key, but fall back to the deprecated typo key so that
|
||||
// existing translation overrides on `editSettingsTooptip` keep working.
|
||||
const editSettingsTooltipText = t(
|
||||
'widgetSettingsOverlay.editSettingsTooltip',
|
||||
);
|
||||
const editSettingsTooltip =
|
||||
editSettingsTooltipText === 'Edit settings'
|
||||
? t('widgetSettingsOverlay.editSettingsTooptip')
|
||||
: editSettingsTooltipText;
|
||||
|
||||
return (
|
||||
<div className={styles.settingsOverlay}>
|
||||
{widget.settingsSchema && (
|
||||
@@ -124,7 +134,7 @@ export const WidgetSettingsOverlay = (props: WidgetSettingsOverlayProps) => {
|
||||
>
|
||||
{widget.settingsSchema && (
|
||||
<Grid item className="overlayGridItem">
|
||||
<Tooltip title={t('widgetSettingsOverlay.editSettingsTooptip')}>
|
||||
<Tooltip title={editSettingsTooltip}>
|
||||
<IconButton
|
||||
color="primary"
|
||||
onClick={() => setSettingsDialogOpen(true)}
|
||||
|
||||
@@ -39,6 +39,10 @@ export const homeTranslationRef = createTranslationRef({
|
||||
noWidgets: "No widgets added. Start by clicking the 'Add widget' button.",
|
||||
},
|
||||
widgetSettingsOverlay: {
|
||||
editSettingsTooltip: 'Edit settings',
|
||||
/**
|
||||
* @deprecated Use `editSettingsTooltip` instead. This was a typo in the original key.
|
||||
*/
|
||||
editSettingsTooptip: 'Edit settings',
|
||||
deleteWidgetTooltip: 'Delete widget',
|
||||
submitButtonTitle: 'Submit',
|
||||
|
||||
+8
-1
@@ -18,12 +18,19 @@ Phoen = "Phoen" # GitHub username K-Phoen in plugin metadata
|
||||
Hashi = "Hashi" # prefix of HashiCorp company name
|
||||
ba = "ba" # Swedish word in comment in buildDocs.ts
|
||||
mosquitto = "mosquitto" # correct spelling of the Eclipse Mosquitto MQTT broker
|
||||
Additiona = "Additiona" # deprecated field name getAdditionaRemoteInfo kept for backward compat
|
||||
ALLO = "ALLO" # prefix of ALLOWs in AuthorizedSearchEngine.ts comment
|
||||
VALIDAT = "VALIDAT" # prefix of VALIDATEs in catalog-backend migration comment
|
||||
styl = "styl" # Stylus stylesheet file extension in jest.js regex pattern
|
||||
Entitie = "Entitie" # camelCase fragment of starredEntitie$ (RxJS observable naming convention in StarredEntitiesApi)
|
||||
|
||||
# Deprecated names kept for backward compatibility.
|
||||
# Remove each entry when the corresponding deprecated symbol is removed.
|
||||
Additiona = "Additiona" # deprecated field name `getAdditionaRemoteInfo` (use `getAdditionalRemoteInfo`)
|
||||
Intergation = "Intergation" # deprecated alias `AzureBlobStorageIntergation` (use `AzureBlobStorageIntegration`) in @backstage/integration
|
||||
Tooptip = "Tooptip" # deprecated translation key `editSettingsTooptip` (use `editSettingsTooltip`) in @backstage/plugin-home
|
||||
heder = "heder" # deprecated `TableFiltersClassKey` literal `'heder'` (use `'header'`) in @backstage/core-components
|
||||
Colums = "Colums" # deprecated `RelatedEntitiesCard.domainEntityColums` (use `domainEntityColumns`) in @backstage/plugin-catalog
|
||||
|
||||
[files]
|
||||
extend-exclude = [
|
||||
# Release and changelog files
|
||||
|
||||
Reference in New Issue
Block a user