Back to Backstage

Release v1.37.0

docs/releases/v1.37.0-changelog.md

1.51.0-next.293.3 KB
Original Source

Release v1.37.0

Upgrade Helper: https://backstage.github.io/upgrade-helper/?to=1.37.0

@backstage/[email protected]

Major Changes

  • d5c4a9d: BREAKING Removed support for the legacy backend system and references to @backstage/backend-common, please migrate to the new backend system.

Patch Changes

@backstage/[email protected]

Major Changes

  • d5c4a9d: BREAKING Removed support for the legacy backend, please migrate to the new backend system. Also removed deprecated DefaultTechDocsCollatorFactory. Use the @backstage/plugin-search-backend-module-techdocs for this instead. Finally, deprecated DocsBuildStrategy and TechDocsDocument were removed, use the versions in @backstage/plugin-techdocs-node instead.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 12f8e01: BREAKING: The default DiscoveryApi implementation has been switched to use FrontendHostDiscovery, which adds support for the discovery.endpoints configuration.

    This is marked as a breaking change because it will cause any existing discovery.endpoints configuration to be picked up and used, which may break existing setups.

    For example, consider the following configuration:

    yaml
    app:
      baseUrl: https://backstage.acme.org
    
    backend:
      baseUrl: https://backstage.internal.acme.org
    
    discovery:
      endpoints:
        - target: https://catalog.internal.acme.org/api/{{pluginId}}
          plugins: [catalog]
    

    This will now cause requests from the frontend towards the catalog plugin to be routed to https://catalog.internal.acme.org/api/catalog, but this might not be reachable from the frontend. To fix this, you should update the discovery.endpoints configuration to only override the internal URL of the plugin:

    yaml
    discovery:
      endpoints:
        - target:
            internal: https://catalog.internal.acme.org/api/{{pluginId}}
          plugins: [catalog]
    

Patch Changes

@backstage/[email protected]

Minor Changes

  • 5a5db29: Fix CSS imports and move CSS outputs out of the dist folder.
  • 4557beb: Added a new Tooltip component to Canon.
  • 1e4dfdb: We added a new IconButton component with fixed sizes showcasing a single icon.
  • e8d12f9: Added about 40 new icons to Canon.
  • 8689010: We are renaming CanonProvider to IconProvider to improve clarity on how to override icons.
  • bf319b7: Added a new Menu component to Canon.
  • cb7e99d: Updating styles for Text and Link components as well as global surface tokens.
  • bd8520d: Added a new ScrollArea component for Canon.

Patch Changes

  • 56850ca: Fix Button types that was preventing the use of native attributes like onClick.
  • 89e8686: To avoid conflicts with Backstage, we removed global styles and set font-family and font-weight for each components.
  • 05e9d41: Introducing Canon to Backstage. Canon styling system is based on pure CSS. We are adding our styles.css at the top of your Backstage instance.

@backstage/[email protected]

Minor Changes

  • 5b70679: BREAKING: ESLint warnings no longer trigger system exit codes like errors do.

    Set the max number of warnings to -1 during linting to enable the gradual adoption of new ESLint rules. To restore the previous behavior, include the --max-warnings 0 flag in the backstage-cli <repo|package> lint command.

Patch Changes

  • 0586d4c: Internal change to move the migrate and version:* commands into a new migrate module.
  • e0b226b: build(deps): bump esbuild from 0.24.2 to 0.25.0
  • 4d45498: Fixed the package prepack command so that it no longer produces unnecessary index entries in the typesVersions map, which could cause /index to be added when automatically adding imports.
  • 485b3ba: Internal update to move test commands to a separate module.
  • a76c482: Internal change to migrate lint to the new module system.
  • 8df78bf: Internal update to move build commands to a CLI module.
  • d0fc357: Internal update to move info commands to a separate module.
  • f8bd342: Fix a bug in the translation of the deprecated --scope option for the new command that could cause plugins to have backstage-backstage-plugin in their name.
  • Updated dependencies

@backstage/[email protected]

Minor Changes

  • 2fd73aa: The include transforms applied during config loading will now only apply to the known keys $file, $env, and $include. Any other key that begins with a `# @backstage/config-loader will now be passed through as is.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 9262001: The default auth injection middleware for the FetchApi will now also take configuration under discovery.endpoints into consideration when deciding whether to include credentials or not.
  • 12f8e01: The discovery.endpoints configuration no longer requires both internal and external target when using the object form, instead falling back to the default.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 8250ffe: BREAKING: Dropped support for the removed opaque @backstage/ExtensionOverrides and @backstage/BackstagePlugin types.

Patch Changes

  • cbe6177: Improved route path normalization when converting existing route elements in converLegacyApp, for example handling trailing /* in paths.

  • d34e0e5: Added a new convertLegacyAppOptions helper that converts many of the options passed to createApp in the old frontend system to a module with app overrides for the new system. The supported options are apis, icons, plugins, components, and themes.

    For example, given the following options for the old createApp:

    ts
    import { createApp } from '@backstage/app-deafults';
    
    const app = createApp({
      apis,
      plugins,
      icons: {
        custom: MyIcon,
      },
      components: {
        SignInPage: MySignInPage,
      },
      themes: [myTheme],
    });
    

    They can be converted to the new system like this:

    ts
    import { createApp } from '@backstage/frontend-deafults';
    import { convertLegacyAppOptions } from '@backstage/core-compat-api';
    
    const app = createApp({
      features: [
        convertLegacyAppOptions({
          apis,
          plugins,
          icons: {
            custom: MyIcon,
          },
          components: {
            SignInPage: MySignInPage,
          },
          themes: [myTheme],
        }),
      ],
    });
    
  • e7fab55: Added the entityPage option to convertLegacyApp, which you can read more about in the app migration docs.

  • 18faf65: The convertLegacyApp has received the following changes:

    • null routes will now be ignored.
    • Converted routes no longer need to belong to a plugin, falling back to a converted-orphan-routes plugin instead.
    • The generate layout override extension is now properly attached to the app/root extension.
    • Converted root elements are now automatically wrapped with compatWrapper.
  • Updated dependencies

@backstage/[email protected]

Minor Changes

  • 25300cb: SimpleStepper back button now works with activeStep property set higher than 0
  • 9545af2: Declared CancelIcon explicitly on Chip component inside Select.tsx to disable onMouseDown event by default that creates the flaw of re-opening select component when user tries to remove a selected filter.

Patch Changes

  • fffe3c0: Added classNames prop to the Page component

  • df3b9f0: Fixed a bug in the SidebarSubmenuItem within the core-components package that caused the dropdown button to be misaligned in the sidebar and the button text to appear in uppercase due to the default <Button> behavior. Also added an example dropdown menu to the app for reference.

  • 48aab13: Add i18n support for scaffolder-react plugin

  • 0a0ced6: Avoid Layout Shift for DismissableBanner when using a storageApi with latency (e.g. user-settings-backend)

    Properly handle the unknown state of the storageApi. There's a trade-off: this may lead to some Layout Shift if the banner has not been dismissed, but once it has been dismissed, you won't have any.

  • Updated dependencies

@backstage/[email protected]

Minor Changes

  • 31731b0: Upgraded the TypeScript version in the template to 5.8.

Patch Changes

  • 7d083ce: Canon is now ready to be used in Alpha. We are adding a custom CSS file at the root of the app to make all styles available for Canon components.
  • aed536a: Bumped create-app version.
  • f9fb465: Bumped create-app version.
  • 19e5c3f: Added link to multi-stage Dockerfile documentation as alternative option
  • Updated dependencies

@backstage/[email protected]

Minor Changes

  • abcdf44: BREAKING: The returned object from createSpecializedApp no longer contains a createRoot() method, and it instead now contains apis and tree.

    You can replace existing usage of app.createRoot() with the following:

    ts
    const root = tree.root.instance?.getData(coreExtensionData.reactElement);
    
  • 8250ffe: BREAKING: Dropped support for the removed opaque @backstage/ExtensionOverrides and @backstage/BackstagePlugin types.

Patch Changes

  • 4d18b55: It's now possible to provide a middleware that wraps all extension factories by passing an extensionFactoryMiddleware to either createApp() or createSpecializedApp().
  • 4823831: Introduced a createFrontendFeatureLoader() function, as well as a FrontendFeatureLoader interface, to gather several frontend plugins, modules or feature loaders in a single exported entrypoint and load them, possibly asynchronously. This new feature, very similar to the createBackendFeatureLoader() already available on the backend, supersedes the previous CreateAppFeatureLoader type which has been deprecated.
  • Updated dependencies

@backstage/[email protected]

Minor Changes

  • 4823831: Introduced a createFrontendFeatureLoader() function, as well as a FrontendFeatureLoader interface, to gather several frontend plugins, modules or feature loaders in a single exported entrypoint and load them, possibly asynchronously. This new feature, very similar to the createBackendFeatureLoader() already available on the backend, supersedes the previous CreateAppFeatureLoader type which has been deprecated.
  • 8250ffe: BREAKING: Dropped support for the removed opaque @backstage/ExtensionOverrides and @backstage/BackstagePlugin types.

Patch Changes

  • 4d18b55: It's now possible to provide a middleware that wraps all extension factories by passing an extensionFactoryMiddleware to either createApp() or createSpecializedApp().
  • abcdf44: Internal refactor to match updated createSpecializedApp.
  • e3f19db: Feature discovery and resolution logic used in createApp is now exposed via the discoverAvailableFeatures and resolveAsyncFeatures functions respectively.
  • Updated dependencies

@backstage/[email protected]

Minor Changes

  • 4823831: Introduced a createFrontendFeatureLoader() function, as well as a FrontendFeatureLoader interface, to gather several frontend plugins, modules or feature loaders in a single exported entrypoint and load them, possibly asynchronously. This new feature, very similar to the createBackendFeatureLoader() already available on the backend, supersedes the previous CreateAppFeatureLoader type which has been deprecated.
  • 8250ffe: BREAKING: Removed the deprecated ExtensionOverrides and FrontendFeature types.
  • 0d1a397: BREAKING: Removed deprecated variant of createExtensionDataRef where the ID is passed directly.

Patch Changes

  • 5aa7f2c: Added a new Utility API, DialogApi, which can be used to show dialogs in the React tree that can collect input from the user.
  • e23f5e0: Added new ExtensionMiddlewareFactory type.
  • a6cb67d: The extensions map for plugins created with createFrontendPlugin is now sorted alphabetically by ID in the TypeScript type.
  • de72253: Added a new ExtensionBoundary.lazyComponent helper in addition to the existing ExtensionBoundary.lazy helper.
  • Updated dependencies

@backstage/[email protected]

Minor Changes

  • bba525b: BREAKING: Removed deprecated setupRequestMockHandlers which was replaced by registerMswTestHooks.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 32be48c: BREAKING: Removed support for the old backend system.

    As part of this change the plugin export from /alpha as been removed. If you are currently importing @backstage/plugin-app-backend/alpha, please update your import to @backstage/plugin-app-backend.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 247a40b: Now a custom entity page header can be passed as input to the default entity page.

  • a3d93ca: The default layout of the entity page can now optionally be customized with 3 card types: info, peek and full.

    • Cards of type info are rendered in a fixed area on the right;
    • Cards of type peek are rendered on top of the main content area;
    • Cards of type full and cards with undefined type are rendered as they were before, in the main content area, below the peek cards.

    If you want to keep the layout as it was before, you don't need to do anything. But if you want to experiment with the card types and see how they render, here is an example setting the about card to be rendered as an info card:

    diff
    app:
      extensions:
        # Entity page cards
    +   - entity-card:catalog/about:
    +       config:
    +         type: info # or peek or full
    
  • 93533bd: The order in which group tabs appear on the entity page has been changed.

    Before

    Previously, entity contents determined the order in which groups were rendered, so a group was rendered as soon as its first entity content was detected.

    After

    Groups are now rendered first by default based on their order in the app-config.yaml file:

    diff
    app:
      extensions:
        - page:catalog/entity:
    +       config:
    +         groups:
    +           # this will be the first tab of the default entity page
    +           - deployment:
    +               title: Deployment
    +           # this will be the second tab of the default entiy page
    +           - documentation:
    +               title: Documentation
    

    If you wish to place a normal tab before a group, you must add the tab to a group and place the group in the order you wish it to appear on the entity page (groups that contains only one tab are rendered as normal tabs).

    diff
    app:
      extensions:
        - page:catalog/entity:
            config:
              groups:
    +            # Example placing the overview tab first
    +           - overview:
    +               title: Overview
                - deployment:
                    title: Deployment
                # this will be the second tab of the default entiy page
                - documentation:
                    title: Documentation
        - entity-content:catalog/overview:
    +       config:
    +          group: 'overview'
    
  • 06d1226: Allow providing kind parameters to replace the default Component kind for SubComponents card

Patch Changes

@backstage/[email protected]

Minor Changes

Patch Changes

@backstage/[email protected]

Minor Changes

  • 62842ee: feat: Improve JSON format of OpenAPI definition, allow YAML format

Patch Changes

@backstage/[email protected]

Minor Changes

  • 89db8b8: BREAKING The optional branch configuration parameter now defaults to the default branch of the project (where HEAD points to). This parameter was previously using master as the default value. In most cases this change should be transparent as Gerrit defaults to using master.

    This change also allow to specify a custom catalogPath in the catalog.providers.gerrit configuration. If not set, it defaults to catalog-info.yaml files at the root of repositories. This default was the value before this change.

    With the changes made in the GerritUrlReader, catalogPath allows to use minimatch's glob-patterns.

    diff
    catalog:
      providers:
        gerrit:
          all: # identifies your dataset / provider independent of config changes
            host: gerrit.company.com
            query: 'state=ACTIVE&type=CODE'
    +       # This will search for catalog manifests anywhere in the repositories
    +       catalogPath: '**/catalog-info.{yml,yaml}'
    

Patch Changes

@backstage/[email protected]

Minor Changes

  • 7f57365: Add support for a new entity predicate syntax when defining filters related to the blueprints exported via /alpha for the new frontend system. For more information, see the entity filters documentation.

  • ba9649a: Add a new defaultGroup parameter to the EntityContentBlueprint, here are usage examples:

    Set a default group while creating the extension:

    diff
    const entityKubernetesContent = EntityContentBlueprint.make({
      name: 'kubernetes',
      params: {
        defaultPath: '/kubernetes',
        defaultTitle: 'Kubernetes',
    +   defaultGroup: 'deployment',
        filter: 'kind:component,resource',
        loader: () =>
          import('./KubernetesContentPage').then(m =>
            compatWrapper(<m.KubernetesContentPage />),
          ),
      },
    });
    

    Disassociate an entity content from a default group:

    diff
    # app-config.yaml
    app:
      extensions:
        # Entity page content
    -   - entity-content:kubernetes/kubernetes
    +   - entity-content:kubernetes/kubernetes:
    +       config:
    +         group: false
    

    Associate an entity content with a different default or custom group than the one defined in code when the extension was created:

    diff
    # app-config.yaml
    app:
      extensions:
        # Entity page content
    -   - entity-content:kubernetes/kubernetes
    +   - entity-content:kubernetes/kubernetes:
    +       config:
    +         group: custom # associating this extension with a custom group id, the group should have previously been created via entity page configuration
    
    
  • 247a40b: Introduces a new EntityHeaderBlueprint that allows you to override the default entity page header.

    jsx
    import { EntityHeaderBlueprint } from '@backstage/plugin-catalog-react/alpha';
    
    EntityHeaderBlueprint.make({
      name: 'my-default-header',
      params: {
        loader: () =>
          import('./MyDefaultHeader').then(m => <m.MyDefaultHeader />),
      },
    });
    
  • a3d93ca: Introduces a new EntityContentLayoutBlueprint that creates custom entity content layouts.

    The layout components receive card elements and can render them as they see fit. Cards is an array of objects with the following properties:

    • element: JSx.Element;
    • type: "peek" | "info" | "full" | undefined;

    Usage example

    Creating a custom overview tab layout:

    tsx
    import {
      EntityContentLayoutProps,
      EntityContentLayoutBlueprint,
    } from '@backstage/plugin-catalog-react/alpha';
    // ...
    
    function StickyEntityContentOverviewLayout(props: EntityContentLayoutProps) {
      const { cards } = props;
      const classes = useStyles();
      return (
        <Grid container spacing={3}>
          <Grid
            className={classes.infoArea}
            xs={12}
            md={4}
            item
          >
            <Grid container spacing={3}>
              {cards
                .filter(card => card.type === 'info')
                .map((card, index) => (
                  <Grid key={index} xs={12} item>
                    {card.element}
                  </Grid>
                ))}
            </Grid>
          </Grid>
          <Grid xs={12} md={8} item>
            <Grid container spacing={3}>
              {cards
                .filter(card => card.type === 'peek')
                .map((card, index) => (
                  <Grid key={index} className={classes.card} xs={12} md={6} item>
                    {card.element}
                  </Grid>
                ))}
              {cards
                .filter(card => !card.type || card.type === 'full')
                .map((card, index) => (
                  <Grid key={index} className={classes.card} xs={12} md={6} item>
                    {card.element}
                  </Grid>
                ))}
            </Grid>
          </Grid>
        </Grid>
      );
    }
    
    export const customEntityContentOverviewStickyLayoutModule = createFrontendModule({
      pluginId: 'app',
      extensions: [
        EntityContentLayoutBlueprint.make({
          name: 'sticky',
          params: {
            // (optional) defaults the `() => false` filter function
            defaultFilter: 'kind:template'
            loader: async () => StickyEntityContentOverviewLayout,
          },
        }),
      ],
    

    Disabling the custom layout:

    yaml
    # app-config.yaml
    app:
      extensions:
        - entity-content-layout:app/sticky: false
    

    Overriding the custom layout filter:

    yaml
    # app-config.yaml
    app:
      extensions:
        - entity-content-layout:app/sticky:
            config:
              # This layout will be used only with component entities
              filter: 'kind:component'
    
  • d78bb71: Added hidden prop to EntityTagPicker, EntityAutocompletePicker and UserListPicker. Added initialFilter prop to EntityTagPicker to set an initial filter for the picker. Added alwaysKeepFilters prop to UserListPicker to prevent filters from resetting when no entities match the initial filters.

  • a3d93ca: Add an optional type parameter to EntityCard extensions. A card's type determines characteristics such as its expected size and where it will be rendered by the entity content layout.

    Initially the following three types are supported:

    • peek: small vertical cards that provide information at a glance, for example recent builds, deployments, and service health.
    • info: medium size cards with high priority and frequently used information such as common actions, entity metadata, and links.
    • full: Large cards that are more feature rich with more information, typically used by plugins that don't quite need the full content view and want to show a card instead.

    Usage examples

    Defining a default type when creating a card:

    diff
    const myCard = EntityCardBlueprint.make({
      name: 'myCard',
      params: {
    +   type: 'info',
        loader: import('./MyCard).then(m => { default: m.MyCard }),
      },
    });
    

    Changing the card type via app-config.yaml file:

    diff
    app:
      extensions:
    +   - entity-card:myPlugin/myCard:
    +       config:
    +         type: info
    

Patch Changes

@backstage/[email protected]

Minor Changes

  • ee519c5: BREAKING Removed deprecated events related code
  • bda96a7: BREAKING Removed support for the legacy backend, please migrate to the new backend system. Also removed deprecated code.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 22ace13: BREAKING The ServerPermissionClient can no longer be instantiated with a tokenManager and must instead be instantiated with an auth service. If you are still on the legacy backend system, use createLegacyAuthAdapters() from @backstage/backend-common to create a compatible auth service.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 2d8b0e4: BREAKING: Removed support for the old backend system.

    As part of this change the plugin export from /alpha as been removed. If you are currently importing @backstage/plugin-proxy-backend/alpha, please update your import to @backstage/plugin-proxy-backend.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 9d864ff: Allowed passing ui:disabled for disabling the input field of all the pickers.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 36677bb: Support new createTemplateAction type, and convert catalog:fetch action to new way of defining actions.
  • 2b1e50d: use CreatedTemplate[Filter|Global*] as canonical template extensions in scaffolder plugin

Patch Changes

@backstage/[email protected]

Minor Changes

  • 1a58846: DEPRECATION: We've deprecated the old way of defining actions using createTemplateAction with raw JSONSchema and type parameters, as well as using zod through an import. You can now use the new format to define createTemplateActions with zod provided by the framework. This change also removes support for logStream in the context as well as moving the logger to an instance of LoggerService.

    Before:

    ts
    createTemplateAction<{ repoUrl: string }, { test: string }>({
      id: 'test',
      schema: {
        input: {
          type: 'object',
          required: ['repoUrl'],
          properties: {
            repoUrl: { type: 'string' },
          },
        },
        output: {
          type: 'object',
          required: ['test'],
          properties: {
            test: { type: 'string' },
          },
        },
      },
      handler: async ctx => {
        ctx.logStream.write('blob');
      },
    });
    
    // or
    
    createTemplateAction({
      id: 'test',
      schema: {
        input: z.object({
          repoUrl: z.string(),
        }),
        output: z.object({
          test: z.string(),
        }),
      },
      handler: async ctx => {
        ctx.logStream.write('something');
      },
    });
    

    After:

    ts
    createTemplateAction({
      id: 'test',
      schema: {
        input: {
          repoUrl: d => d.string(),
        },
        output: {
          test: d => d.string(),
        },
      },
      handler: async ctx => {
        // you can just use ctx.logger.log('...'), or if you really need a log stream you can do this:
        const logStream = new PassThrough();
        logStream.on('data', chunk => {
          ctx.logger.info(chunk.toString());
        });
      },
    });
    

Patch Changes

@backstage/[email protected]

Minor Changes

  • 36677bb: Use update createTemplateAction kinds

Patch Changes

@backstage/[email protected]

Minor Changes

  • 5f66007: Add the option to configure the fuzziness of the elasticsearch results by defining the fuzziness and prefix_length property.

Patch Changes

@backstage/[email protected]

Minor Changes

  • d5c4a9d: BREAKING Removed support for the legacy backend system and references to @backstage/backend-common, please migrate to the new backend system.

Patch Changes

@backstage/[email protected]

Minor Changes

  • d5c4a9d: BREAKING Removed support for the legacy backend system and references to @backstage/backend-common, please migrate to the new backend system.

Patch Changes

@backstage/[email protected]

Minor Changes

  • e202017: BREAKING: Removed support for the old backend system.

    As part of this change the plugin export from /alpha as been removed. If you are currently importing @backstage/plugin-user-settings-backend/alpha, please update your import to @backstage/plugin-user-settings-backend.

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 89db8b8: Gerrit integration now exports getGitilesAuthenticationUrl. This enables its usage by the GerritUrlReader.
  • 4f8b5b6: Allow signing git commits using configured private PGP key in scaffolder
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@techdocs/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • fa15e80: Update auth.microsoft.signIn.resolvers config def to include the userIdMatchingUserEntityAnnotation resolver.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • b95aa77: add addHttpPostBodyParser to events extension to allow body parse customization. This feature will enhance flexibility in handling HTTP POST requests in event-related operations.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 11bc3e6: Made "github:pages:enable" action idempotent
  • 3f45e0f: Made "github:environment:create" action idempotent
  • 09cf038: Got rid of most @backstage/backend-common usages
  • 8c38687: Made "github:issues:label" action idempotent
  • 89948b2: Made "github:repo:push" action idempotent
  • 9391f58: Pass undefined to some parameters for createOrUpdateEnvironment as these values are not always supported in different plans of GitHub
  • 8182a59: Made "github:webhook" action idempotent
  • 8f9c54c: Made "github:repo:create" action idempotent
  • 0ae0c77: Made "publish:github:pull-request" action idempotent
  • Updated dependencies

@backstage/[email protected]

Patch Changes

  • 0df33ea: fix: Creating a repository in a user namespace would always lead to an error
  • 984b283: Made "gitlab:pipeline:trigger" action idempotent
  • 225c733: Made gitlab:repo:push action idempotent.
  • a08cb20: Remove usages of @backstage/backend-common
  • ac58f84: Made gitlab:issue:edit action idempotent.
  • f6b51a8: Made "gitlab:projectDeployToken:create" action idempotent
  • a75e18f: Change the if statement in the catch block to match what the new version of Gitbeaker will return
  • 36af946: Made "gitlab:projectVariable:create" action idempotent
  • 1cea434: Made "gitlab:projectAccessToken:create" action idempotent
  • 4f8b5b6: Allow signing git commits using configured private PGP key in scaffolder
  • 83ae330: Made "gitlab:group:migrate" action idempotent
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

@internal/[email protected]

Patch Changes

@internal/[email protected]

Patch Changes

[email protected]

Patch Changes

@internal/[email protected]

Patch Changes

@internal/[email protected]

Patch Changes