Provide BEFORE and AFTER download buttons for MR filetypes that cannot be rendered.

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Release notes

The Merge Request Changes tab now provides both Before and After download buttons when a filetype under review cannot be rendered (generally applies to image, document, and other files). Each of these buttons will download the file corresponding with the currently selected start and end comparison versions, respectively.

Problem to solve

As a reviewer of MR content that includes non-rendered file types, I want an easy way to download the before and after of each file, so that I can compare the versions locally with software that can render or interpret the content. Currently, I can download the "after" version easily, but getting the "before" version takes a significant amount of error-prone button clicks.

Intended users

User experience goal

The user should be able to select any 2 versions of the MR changes to compare and be given download buttons for the before and after of all non-rendered filetypes in the review - according to the versions selected for comparison.

Proposal

Add a second "before" download button to these non-rendered filetypes in MRs. I imagine it will look similar to the below screenshots (pulled from bugs #336148 (closed) and #290745 (closed)) - though importantly this would be expected behavior for non-rendered filetypes, when for these cases it appears to show up for filetypes that can render.

https://gitlab.com/-/project/278964/uploads/55d37242ede42a538163f6b96c48b63a/download_instead_of_diff.gif

https://gitlab.com/-/project/278964/uploads/ade9a14d66aa1098319597a5508df808/image.png

Further details

My company is currently transitioning to GitLab and we have some groups that often need to review file types that aren't rendered (often Microsoft Office files). Our current review solution for code and documents has been deprecated, which is part of what drove us to GitLab in addition to CI/CD concerns. The plan is currently to use git-lfs to store these documents and MRs to review them, but downloading the before version is currently a pain that I'd rather avoid training teams on if possible and this seems like a quick win.

Permissions and Security

Should affect anyone who can currently see and download MR content, which I believe is Guest and up.

  • Add expected impact to members with no access (0)
  • Add expected impact to Guest (10) members
  • Add expected impact to Reporter (20) members
  • Add expected impact to Developer (30) members
  • Add expected impact to Maintainer (40) members
  • Add expected impact to Owner (50) members

Documentation

Will likely need a section added to the MR documentation explaining that this option exists for files that don't render.

Availability & Testing

I don't foresee any significant risks to availability.

Unit Tests covering the rendering of the MR changes page may be impacted.

Available Tier

Based on my current mental model for each tier, premium seems like the appropriate level as team members are likely to be the most impacted, rather than individuals or upper management. That being said, there are a good number of MR features that were dropped to free if they seemed basic, which this would be. I believe the current download link functions in the free tier.

Feature Usage Metrics

Could tie this to the download buttons to see how often the before and after buttons are being pressed.

What does success look like, and how can we measure that?

A user can select MR versions for comparison and quickly download both before and after versions for non-rendered content.

What is the type of buyer?

I mainly care about this to support teams/workflows that rely on document reviews. This is mostly a concern within individual teams, as the eventual content will be used more broadly outside of and after the MR.

Is this a cross-stage feature?

I don't believe so - should be very focused on Merge Requests only.

What is the competitive advantage or differentiation for this feature?

With the sunsetting of Atlassian's Fisheye/Crucible product - including this feature would allow for much easier onboarding for these customers, possibly driving sales. I'm sure we are not the only company having to work on a transition plan, and little we found had a great way to do these document reviews. The one that did (SmartBear Collaborator) also had a bad workflow and UI/UX.

Links / references

Flagged by a premium customer with 250 seats. Connected to support request 530910.

Edited by 🤖 GitLab Bot 🤖