Limit length of wiki file/directory names

Merged Markus Koller requested to merge 24415-restrict-wiki-page-titles into master

What does this MR do?

Many common file systems have a limit of 255 bytes for file and directory names, and while Git and GitLab both support paths exceeding those limits, the presence of them makes it impossible for users on those file systems to checkout a wiki repository locally.

To avoid this situation, we enforce these limits when editing pages through the GitLab web interface and API:

  • 245 bytes for page titles (reserving 10 bytes for the file extension)
  • 255 bytes for directory names

Screenshots

The validation errors look as follows, for a title of aaa.../aaa.... Only one of them might be shown, depending on which part of the title is too long. There's also a new "Learn more" link below the title field which points to the "Creating a new wiki page" section which now mentions these limits:

image

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

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

Ref: #24415 (closed)

Edited by 🤖 GitLab Bot 🤖