FieldLabel renders a div and spreads restProps onto it, but
FieldLabelProps didn't extend native div props. This meant
attributes like aria-*, data-*, role, etc. couldn't be
passed with type safety.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Container renders a div and spreads restProps onto it, but
ContainerProps didn't extend native div props. This meant
attributes like aria-*, data-*, role, etc. couldn't be
passed with type safety.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Alert renders a div and spreads restProps onto it, but
AlertProps didn't extend native div props. This meant
attributes like aria-*, data-*, role, etc. couldn't be
passed with type safety.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
The style prop was defined in ButtonLinkOwnProps but never
destructured or applied in the component, causing it to be
silently dropped. Removing it lets style flow through to the
underlying RAC Link via restProps instead.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
The style prop was defined in ButtonOwnProps but never
destructured or applied in the component, causing it to be
silently dropped. Removing it lets style flow through to the
underlying RAC Button via restProps instead.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
The style prop was defined in ButtonIconOwnProps but never
destructured or applied in the component, causing it to be
silently dropped. Removing it lets style flow through to the
underlying RAC Button via restProps instead.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
DialogBodyProps previously only extended DialogBodyOwnProps,
meaning native HTML attributes like aria-*, data-*, etc.
could not be passed to the underlying div element.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
These directories were previously only covered by the catch-all
rule, requiring review from @backstage/maintainers. Since they
fall under the Design System project area scope, assign them to
@backstage/design-system-maintainers.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Add horizontal borders and bottom margin to the icon links container
in the AboutCard to visually separate it from the card content.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Set `height: 100%` on EntityInfoCard so cards fill their grid cell,
matching the row height of sibling cards. This replaces the behavior
previously provided by `variant="gridItem"` on the old InfoCard.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
The E2E tests scaffold a new app from the create-app template,
which still passed variant="gridItem" to EntityAboutCard,
EntityUserProfileCard, and EntityGroupProfileCard after the prop
was removed.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
- Replace `as any` cast with type-safe `as Columns` in LinksGridList,
clamping column count to the valid 1–12 range
- Restore pagination (pageSize: 5) in EntityLabelsCard using the
BUI `useTable` hook
- Use translation ref for EntityLabelsCard column headers instead
of hard-coded English strings
Signed-off-by: Johan Persson <johanopersson@gmail.com>
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>
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>
@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>
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
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
- 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
- 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>
- 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>
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>
* 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>