Commit Graph

71321 Commits

Author SHA1 Message Date
Patrik Oldsberg eb73feac15 Address review feedback and regenerate API reports
- Handle quoted arguments in createScriptOptionsParser using a proper
  shell-like splitter instead of naive whitespace splitting
- Pass CommandContext directly in bump tests instead of using a helper
- Regenerate cli-report.md

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-03-03 11:11:26 +01:00
Patrik Oldsberg ff4a45ac01 Migrate remaining CLI commands from commander to cleye
All command handlers in the CLI now use cleye or node:util.parseArgs
for argument parsing instead of commander. The top-level command
registration in CliInitializer still uses commander, but all individual
command implementations are now independent of it.

Modules migrated: build, lint, test, maintenance, migrate, new, and
create-github-app. Also replaced createScriptOptionsParser in both
build and lint modules to use node:util.parseArgs instead of commander.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-03-03 11:11:26 +01:00
Patrik Oldsberg 9562f04d7f Merge pull request #33084 from backstage/rugvip/fix-prepack-postpack-cjs-compat
cli: fix prepack and postpack commands CJS compat
2026-03-03 10:29:07 +01:00
Jellyfrog 0c1726a5d1 feat(scaffolder-backend-module-gitlab): add gitlab:group:access action (#32528)
* feat(scaffolder-backend-module-gitlab): add gitlab:group:access action

Add a new scaffolder action to add or remove users and groups as members
of GitLab groups. The action supports specifying access levels (Guest,
Reporter, Developer, Maintainer, Owner) when adding members and includes
dry-run support.

Signed-off-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

* Update plugins/scaffolder-backend-module-gitlab/src/actions/gitlabGroupAccessAction.ts

Signed-off-by: Fredrik Adelöw <freben@gmail.com>

* Update plugins/scaffolder-backend-module-gitlab/src/actions/gitlabGroupAccessAction.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

* Update plugins/scaffolder-backend-module-gitlab/src/actions/gitlabGroupAccessAction.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

* Update gitlabGroupAccessAction to use parseRepoHost and conditionally resolve access level

Use parseRepoHost instead of parseRepoUrl since only the host is needed,
and skip resolveAccessLevel for remove actions where access level is unused.

Signed-off-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

---------

Signed-off-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
Co-authored-by: Fredrik Adelöw <freben@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-03 10:25:04 +01:00
John Collier c9b11eb0cf feat(scaffolder): Create basic scaffolder task query action (#32989)
* feat(scaffolder): Create basic scaffolder task query action

Signed-off-by: John Collier <jcollier@redhat.com>

* Add changeset

Signed-off-by: John Collier <jcollier@redhat.com>

* Fix test

Signed-off-by: John Collier <jcollier@redhat.com>

* Address review feedback

Signed-off-by: John Collier <jcollier@redhat.com>

* Update plugins/scaffolder-backend/src/actions/listScaffolderTasksAction.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: John Collier <jcollier@redhat.com>

* Update plugins/scaffolder-backend/src/actions/listScaffolderTaskAction.test.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: John Collier <jcollier@redhat.com>

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: John Collier <jcollier@redhat.com>

* lint

Signed-off-by: John Collier <jcollier@redhat.com>

* fix conflict markers, remove unused discovery dep, add input validation bounds

Signed-off-by: benjdlambert <ben@blam.sh>

* address PR feedback: fix status enum, add int validation, improve changeset

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: John Collier <jcollier@redhat.com>
Signed-off-by: benjdlambert <ben@blam.sh>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: benjdlambert <ben@blam.sh>
2026-03-03 08:38:09 +00:00
Stephanie Cao 7695dd23d0 feat(scaffolder): Create scaffolder mcp action to list all installed template actions (#32765)
* add scaffolder mcp action to list all installed template actions

Signed-off-by: Stephanie <yangcao@redhat.com>

* add changeset

Signed-off-by: Stephanie <yangcao@redhat.com>

* resolve review comments

Signed-off-by: Stephanie <yangcao@redhat.com>

* cleanup code

Signed-off-by: Stephanie <yangcao@redhat.com>

* resolve pr review comments

Signed-off-by: Stephanie <yangcao@redhat.com>

* remove actionService param in options, as templateActionsRegistry has already been passed in

Signed-off-by: Stephanie <yangcao@redhat.com>

* remove unnecessary required param check

Signed-off-by: Stephanie <yangcao@redhat.com>

* type the mcp action output better

Signed-off-by: Stephanie <yangcao@redhat.com>

* use scaffolderService instead

Signed-off-by: Stephanie <yangcao@redhat.com>

* revert templateActionRegistry rename, keep actionRegistry as-is

Signed-off-by: benjdlambert <ben@blam.sh>

* clean up list-scaffolder-actions: fix tests, changeset, and description

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: Stephanie <yangcao@redhat.com>
Signed-off-by: benjdlambert <ben@blam.sh>
Co-authored-by: benjdlambert <ben@blam.sh>
2026-03-03 07:30:06 +00:00
Patrik Oldsberg 732f3eb50f cli: remove changeset
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-02 20:51:46 +01:00
Patrik Oldsberg 11764eff33 cli: remove stale lib/lazy.ts from previous stash
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-02 20:50:26 +01:00
Patrik Oldsberg e8a5a20f7d cli: split pack.ts into prepack.ts and postpack.ts
Each file now has a default export matching the CommandExecuteFn
pattern, removing the need for import wrapping in the loader.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-02 20:49:56 +01:00
Patrik Oldsberg f867152e8b cli: fix prepack and postpack commands CJS compat
Switch the prepack and postpack commands from using a direct
dynamic import() to the execute.loader pattern, which properly
handles CJS double-wrapping of module exports.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-02 17:33:35 +01:00
Johan Persson a0e4d38f4b fix(ui): use Text as="p" in Tabs stories for proper line breaks
Story description text was rendering inline without line breaks
between elements. Add as="p" to Text components so each renders
as a block-level paragraph.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-02 15:51:07 +01:00
Johan Persson d4fa5b4ee0 fix(ui): strip query params from tab href before active-state matching
Tab matchStrategy ('exact' and 'prefix') compared the raw tab href
against location.pathname, which never includes query params. This
meant tabs with query params in their href could never be matched
as active.

Extract an hrefPathname helper that strips query params and hash
fragments, and use it in both isTabActive and the segment count
computation.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-02 15:51:07 +01:00
Charles de Dreuille f2588154a2 Merge pull request #33078 from backstage/cdedreuille/ui-neutral-bg-simplification
Fix neutral hover state token
2026-03-02 13:49:01 +00:00
Charles de Dreuille 58224d3476 Create bumpy-colts-teach.md
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-02 12:52:54 +00:00
Charles de Dreuille da54fd24ef Update tokens.css
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-02 12:43:44 +00:00
Fredrik Adelöw 3438d4f800 Merge pull request #33075 from backstage/fix/generate-catalog-info-allow-excess-args
fix(repo-tools): re-add allowExcessArguments for generate-catalog-info
2026-03-02 11:50:51 +01:00
Johan Persson 426edbef9c fix(repo-tools): allow excess arguments for generate-catalog-info command
Re-add `.allowExcessArguments(true)` which was dropped during
conflict resolution in the Commander v14 upgrade (PR #32583).

lint-staged passes staged file paths as extra arguments when
invoking `generate-catalog-info` via the pre-commit hook, causing
Commander v14 to reject them with "too many arguments".

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-02 11:36:02 +01:00
Stephanie Cao ccc20cf1bc feat(scaffolder): Create scaffolder mcp action to dry run scaffolder template (#32914)
* dry run action

Signed-off-by: Stephanie <yangcao@redhat.com>

* add tests

Signed-off-by: Stephanie <yangcao@redhat.com>

* add changeset

Signed-off-by: Stephanie <yangcao@redhat.com>

* adjust review comments

Signed-off-by: Stephanie <yangcao@redhat.com>

* update error handling

Signed-off-by: Stephanie <yangcao@redhat.com>

* remove unnecessary import

Signed-off-by: Stephanie <yangcao@redhat.com>

* replace ScaffolderClient with scaffolderServiceRef

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: Stephanie <yangcao@redhat.com>
Signed-off-by: benjdlambert <ben@blam.sh>
Co-authored-by: benjdlambert <ben@blam.sh>
2026-03-02 10:41:42 +01:00
Fredrik Adelöw 889aee97a6 Merge pull request #33066 from backstage/freben/fix-owner-relation-docs 2026-03-01 18:04:57 +01:00
Patrik Oldsberg 1f7786e629 Merge pull request #33067 from backstage/rugvip/add-elaine-mattos-org-member
Added elaine-mattos to the Org Member list
2026-03-01 14:16:32 +01:00
Patrik Oldsberg 507c26855a Added elaine-mattos to the Org Member list
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-01 14:01:40 +01:00
Fredrik Adelöw cd0c36ffde docs: Fix inverted owner relation type in descriptor format docs
The `spec.owner` relation tables for all entity kinds incorrectly listed
`ownerOf` as the generated relation with `ownedBy` as the reverse. The
entity emitting the relation is owned by the target, so the outgoing
relation is `ownedBy` and the reverse is `ownerOf`.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-03-01 11:17:56 +01:00
Andre Wanlin 4f001bf553 Merge pull request #32947 from awanlin/topic/deprecate-processors-use-community-versions
Catalog - Deprecated two moved processors
2026-02-28 13:01:15 -06:00
Patrik Oldsberg 5879bd8760 Merge pull request #33063 from backstage/rugvip/fix-entity-page-default-content-order
plugin-catalog: fix entity page default content order config name
2026-02-28 15:37:38 +01:00
Kurt King 0e7d8f9091 Refactor scheduler to use metrics service (#32992)
* Migrate scheduler metrics to MetricsService

Signed-off-by: Kurt King <kurtaking@gmail.com>

* Add missing changeset

Signed-off-by: Kurt King <kurtaking@gmail.com>

* Update API report

Signed-off-by: Kurt King <kurtaking@gmail.com>

* Release as minor with breaking change verbiage

Signed-off-by: Kurt King <kurtaking@gmail.com>

* Apply suggestion from @aramissennyeydd

Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>

* fix prettier

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

---------

Signed-off-by: Kurt King <kurtaking@gmail.com>
Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
Co-authored-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Co-authored-by: aramissennyeydd <aramis.sennyey@doordash.com>
2026-02-28 14:14:47 +00:00
Aramis Sennyey 0fbcf23714 feat: add support for OpenAPI 3.1 (#32300)
* breaking: add support for OpenAPI 3.1

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* add changeset

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* update nullable prop

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* remove more allowReserved usages

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* make changes less breaking

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* Apply suggestion from @aramissennyeydd

Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>

---------

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
2026-02-28 09:04:02 -05:00
Patrik Oldsberg 233c33f2de Rename top-level contentOrder to defaultContentOrder in entity page config
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-28 15:03:25 +01:00
Patrik Oldsberg fbcfb392a2 Merge pull request #33057 from backstage/rugvip/fix-test-api-provider-const
frontend-test-utils: fix `TestApiPair` type inference for tuple syntax
2026-02-28 10:45:26 +01:00
Ben Lambert 1ccad86e35 feat(auth-backend): add who-am-i action to actions registry (#33046)
Signed-off-by: benjdlambert <ben@blam.sh>
2026-02-28 10:08:46 +01:00
Andre Wanlin 7349cd5cac Merge pull request #32728 from awanlin/topic/remove-deprecated-config
Integration - Removed long deprecated code
2026-02-27 20:07:52 -06:00
Patrik Oldsberg fba2809b20 frontend-test-utils: add type tests for TestApiProvider
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-27 23:45:54 +01:00
Patrik Oldsberg 479282f38e frontend-test-utils: fix TestApiPair type inference for tuple syntax
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-27 21:23:18 +01:00
Patrik Oldsberg a39b080302 patches: remove pr-33057 from patch release
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-27 21:03:05 +01:00
bond yan 790de54a85 Merge pull request #33043 from backstage/optionally-allow-mkdocs-keys
Add `dangerouslyAllowAdditionalKeys` option for TechDocs MkDocs configuration
2026-02-27 14:58:09 -05:00
Patrik Oldsberg ce7894007f patches: add pr-33057 to patch release
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-27 20:24:25 +01:00
Patrik Oldsberg 56d01c7a7d test-utils: add const type parameter modifier to TestApiProvider and TestApiRegistry.from
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-27 20:22:28 +01:00
Andre Wanlin 120d425326 Fixed failing tests
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-27 12:50:03 -06:00
Andre Wanlin d8116c463d Latest feedback
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-27 12:50:03 -06:00
Andre Wanlin c6e0bc40bd Changeset feedback
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-27 12:50:03 -06:00
Andre Wanlin 5da7c6c5c2 Add check for removed config
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-27 12:50:02 -06:00
Andre Wanlin e27bd4e40f Added more changesets
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-27 12:50:02 -06:00
Andre Wanlin 527cf88a90 Integration - Removed long deprecated code
Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Fixed lock file

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Improve changesets

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Removed link

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Update .changeset/sharp-ravens-shop.md

Co-authored-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>

Update .changeset/six-trees-carry.md

Co-authored-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>

Update .changeset/tiny-zoos-smash.md

Co-authored-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>

Corrected gerrit changes based on feedback

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Updated API report

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Fixed some tests

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Fixed test

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Fixed another test

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Removed parseGerritGitilesUrl

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Table clean up

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Remove from changeset

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Changes based on feedback

Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-27 12:50:00 -06:00
Andre Wanlin 32cb991728 Merge pull request #31842 from milliehartnt123/milliehartnt123-create-ui-doc
Updated Using Backstage documentation for Feature Issue 21943 Write a UI Guide
2026-02-27 11:15:35 -06:00
Ben Lambert f598909f0f feat(scaffolder): implement scaffolderServiceRef for credentials aware communication (#33044)
* add scaffolderServiceRef to scaffolder-node

Signed-off-by: benjdlambert <ben@blam.sh>

* make ScaffolderApi methods required, add tests

Signed-off-by: benjdlambert <ben@blam.sh>

* use request objects for single-string params in ScaffolderService

Signed-off-by: benjdlambert <ben@blam.sh>

* add scaffolderServiceMock test utility

Signed-off-by: benjdlambert <ben@blam.sh>

* adjust review comments

Signed-off-by: benjdlambert <ben@blam.sh>

* add scaffolderApiMock test utility to scaffolder-react

Signed-off-by: benjdlambert <ben@blam.sh>

* use items/totalItems response shape for listTasks

Signed-off-by: benjdlambert <ben@blam.sh>

* pass credentials through for autocomplete

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: benjdlambert <ben@blam.sh>
2026-02-27 16:24:49 +00:00
Johan Persson 1b3dea2092 Fix ToggleButtonGroup orientation prop not reaching React Aria
orientation was listed in propDefs with dataAttribute: true, which
caused useDefinition to extract it from restProps. React Aria's
ToggleButtonGroup never received it and defaulted to horizontal.

Remove orientation from propDefs and OwnProps so it flows through
restProps to React Aria, which handles data-orientation itself.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 75d2b527fa Remove implementation plan
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 95702abc2b Add changesets for useDefinition migration and cleanup
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson fb5400e39b Update packages/ui api report.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson d8dbab6d17 Delete useStyles hook and legacy type definitions
All components have been migrated to useDefinition. Remove the now-unused
useStyles hook and its associated types (ComponentDefinition, ClassNamesMap,
DataAttributeValues, DataAttributesMap) from the public API.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 3f2c27a1e4 Remove children from Skeleton and Avatar propDefs
Children was incorrectly added to OwnProps/propDefs during migration,
causing useDefinition to extract it from restProps. Since neither
component consumes children directly, children should flow through
restProps to the underlying div element.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00