Skip to content

Bootstrap button migration

Sam Beckham requested to merge bootstrap-button-migration into master

What does this MR do?

This MR does two great big regex replaces to get all the remaining HAML buttons migrated to GitLab UI.

find replace
(^(?!.*gl-button).*class:.*)btn (.*$) $1gl-button btn $2
(^(?!.*gl-button).*)(\.btn[\.{]) $1.gl-button$2

Once the above migrations were made, I ran the following migrations on the diffed files ONLY. This was done by changing all the files, then only adding the relevant ones to the commit with the following command:

git add --all $(git diff [commit-sha] master --name-only)

find replace
(^(?!.*btn-default)(?!.*btn-confirm)(?!.*btn-danger)(?!.*btn-dashed)(?!.*btn-link).*class:.*btn)([\s"].*$) $1 btn-default$2
(^(?!.*btn-default)(?!.*btn-confirm)(?!.*btn-danger)(?!.*btn-dashed)(?!.*btn-link).*\.btn)([\.{]) $1.btn-default$2
btn-info btn-confirm
btn-success btn-confirm (Note: This is only being updated for HAML buttons that this MR was already migrating. HAML/Vue buttons that were already utilizing gitlab-ui prior to this MR will not be updated to use btn-confirm in this MR.)
btn-warning (We just removed this one)
btn-transparent btn-default-tertiary
btn-inverted btn-secondary (this is a little more manual than this suggests)

There were a couple of files that escaped the gaze of our regex queries, so I've manually updated those too. Because of that, I'm only 99% sure we've caught everything, but I'll take those odds.

Screenshots (strongly suggested)

There's roughly 180 buttons we need to check here. Probably more since a couple of the changes were to helper files. We'll want to go through these as a team in #322510 (closed)

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

This is a mass migration of 180+ haml buttons. We're coordinating the effort of checking these buttons in #322510 (closed). I've ran some spot-checks and everything seems fine, but there's a good chance there'll be some issues.

Note for reviewers

This MR only affects HAML buttons that previously had no GitLab ui classes. There's still around 200 buttons in the HAML files that are using deprecated variants (success, warning, info). These are out of scope for this MR.

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Sam Beckham

Merge request reports