Commit Graph

71575 Commits

Author SHA1 Message Date
Johan Persson 2aaacb5095 refactor(catalog): remove obsolete gridSizes prop from AboutField
Remove the unused `gridSizes` prop from AboutField. Grid layout is
now owned by the parent Grid.Root in AboutContent, making this prop
unnecessary.

Update changeset with breaking change and migration guide.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:34 +01:00
Johan Persson 7388c6516d refactor(catalog): use Grid.Item colSpan for full-width AboutFields
Replace inline `style={{ gridColumn: '1 / -1' }}` with BUI-native
`Grid.Item colSpan` for full-width fields in AboutContent. Extract
grid columns into a shared variable used by both Grid.Root and
Grid.Item to keep them in sync.

Remove the `style` prop from AboutField that was only added to
support the inline gridColumn approach.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:34 +01:00
Johan Persson c6080eb0b0 chore: update changeset.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:34 +01:00
Johan Persson c4832a18d1 refactor: Remove obsolete variant prop from Entity card components.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:34 +01:00
Johan Persson be4810234c chore: polish comments.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:34 +01:00
Johan Persson 99ef00b4e4 chore: update changeset and API reports
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:34 +01:00
Johan Persson 71efa9bde5 test(org): update UserProfileCard test for BUI Avatar
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:34 +01:00
Johan Persson 951997f7f0 refactor(org): use BUI Avatar in GroupProfileCard and UserProfileCard titles
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:33 +01:00
Johan Persson 809eefb91c refactor(catalog): migrate EntityLabelsCard table to BUI Table
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:33 +01:00
Johan Persson 35ce598bc0 fix(catalog-react): group header actions in EntityInfoCard
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:33 +01:00
Johan Persson e2e5a14980 fix(catalog): use Grid.Root instead of Grid for BUI Grid component
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:33 +01:00
Johan Persson 6d82107beb refactor(catalog): replace MUI Grid with BUI Grid in AboutContent
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:33 +01:00
Johan Persson 06e4cdae07 refactor(catalog): replace MUI ImageList with BUI Grid in LinksGridList
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:32 +01:00
Johan Persson 5fc35bbe9b chore: add changeset and update API reports for BUI card migration
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:32 +01:00
Johan Persson aea7bd9f0e feat(org): migrate GroupProfileCard to BUI EntityInfoCard
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:32 +01:00
Johan Persson bcb0b24cfa feat(org): migrate UserProfileCard to BUI EntityInfoCard
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:32 +01:00
Johan Persson 195481a2f8 feat(catalog): migrate EntityLabelsCard to BUI EntityInfoCard
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:32 +01:00
Johan Persson 8dfd13a067 feat(catalog): migrate EntityLinksCard to BUI EntityInfoCard
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:31 +01:00
Johan Persson a9bfcbe6fd feat(catalog-react): add EntityInfoCard BUI wrapper component
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:31 +01:00
Ben Lambert 6c6a41c4d1 fix(scaffolder-backend-module-gitlab): update GroupMembers.add for gitbeaker v43 (#33091)
@gitbeaker/core v43 changed ResourceMembers.add signature to
accept accessLevel as the second arg and userId in an options object.

Signed-off-by: benjdlambert <ben@blam.sh>
2026-03-03 10:48:40 +00:00
Patrik Oldsberg 629e9f5558 Add deprecation warnings for old camelCase flag names
Instead of a hard breaking change, the old camelCase flag names
(--baseVersion, --successCache, --successCacheDir, --alwaysPack) still
work via type-flag's built-in camelCase/kebab-case mapping, but now
print a deprecation warning pointing to the new kebab-case spelling.

Downgrades the changeset from minor (breaking) to patch.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-03 11:11:26 +01:00
Patrik Oldsberg b45ee80104 Keep boolean | string for inspect types, map in command handlers
Move the empty-string-to-boolean conversion from cleye's String type
into the command handlers so that startPackage/runBackend keep their
existing boolean | string interface.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-03 11:11:26 +01:00
Patrik Oldsberg 2946e8e4c6 Remove custom inspect flag handling, switch repo test to cleye
- Use cleye's `type: String` for --inspect/--inspect-brk instead of
  custom extractInspectFlags pre-processing in both package start and
  repo start commands.
- Switch repo test from node:util parseArgs to cleye so that --help
  shows Backstage-specific flags rather than dumping Jest's full help.
- Fix create-github-app help output to include <github-org> positional.
- Update downstream inspect types from `boolean | string` to `string`.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-03 11:11:26 +01:00
Patrik Oldsberg 3fc996fd27 Mark cleye migration as a breaking change (minor bump)
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-03-03 11:11:26 +01:00
Patrik Oldsberg 18d09fe581 Address Copilot review feedback
- Handle --inspect/--inspect-brk optional host value by extracting
  them from raw args before passing to cleye (supports both bare
  --inspect and --inspect=host:port forms)
- Change require flag from [String] to String in package start since
  downstream only accepts a single value
- Preserve legacy --alwaysYarnPack alias in build-workspace command
- Update changeset to mention camelCase → kebab-case flag changes

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-03-03 11:11:26 +01:00
Patrik Oldsberg f01dbf301e Use shell-quote for script argument parsing
Replace custom splitShellArgs with shell-quote's parse() for proper
shell argument tokenization in createScriptOptionsParser.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-03-03 11:11:26 +01:00
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
Charles de Dreuille 8ab2d7c3a2 Update spotify.css
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-03 08:41:06 +00: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
James Brooks d73ac23f1e Merge branch 'master' into visibility 2026-03-02 19:08:00 +00:00
Charles de Dreuille 4105a78f98 Style improvements on PluginHeader
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-02 19:07:03 +00:00
Charles de Dreuille 077674b93b Update report.api.md
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-02 17:44:25 +00:00
Charles de Dreuille eee3c14329 Fix SearchField styles
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-02 17:31:53 +00: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
James Brooks 993a59840b Update Azure integration config visibility
Signed-off-by: James Brooks <jamesbrooks@spotify.com>
2026-03-02 15:02:39 +00: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 5476d22724 Update ui-searchfield-textfield-bg-focus.md
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-02 13:51:29 +00:00
Charles de Dreuille de701ee95f Update accept.txt
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-02 13:49:34 +00: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 934ac03ce6 Improve SearchField + TextField look
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-02 13:44:35 +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