Joseph Fletcher activity https://gitlab.com/JoFletcher 2026-03-10T07:14:09Z tag:gitlab.com,2026-03-10:5185898363 Joseph Fletcher commented on merge request !224998 at GitLab.org / GitLab 2026-03-10T07:14:09Z JoFletcher Joseph Fletcher

Unfortunately I do not have capacity to review this - passing to next reviewer on roulette @allison_villa

tag:gitlab.com,2026-03-10:5185890813 Joseph Fletcher commented on merge request !226402 at GitLab.org / GitLab 2026-03-10T07:11:53Z JoFletcher Joseph Fletcher

Please flush out the MR description there was no context on why this change was necessary

tag:gitlab.com,2026-03-10:5185879140 Joseph Fletcher commented on merge request !226402 at GitLab.org / GitLab 2026-03-10T07:08:43Z JoFletcher Joseph Fletcher

A good aria-label would be:

aria-label="Purchase credits (opens in new window)"

tag:gitlab.com,2026-03-10:5185869117 Joseph Fletcher commented on merge request !226402 at GitLab.org / GitLab 2026-03-10T07:05:47Z JoFletcher Joseph Fletcher

There should be an aria-label for accessibility. Since the button opens in a new window (target="_blank"), it's especially important to indicate that to screen reader users.

tag:gitlab.com,2026-03-10:5185832639 Joseph Fletcher commented on merge request !226463 at GitLab.org / GitLab 2026-03-10T06:54:37Z JoFletcher Joseph Fletcher

Since it looks like more work needs to be done on this I will unassign myself as a reviewer since I am going on extended PTO

tag:gitlab.com,2026-03-10:5185825673 Joseph Fletcher approved merge request !223475: Deployment start toasts for manual actions and rollback at GitLab.org / GitLab 2026-03-10T06:52:12Z JoFletcher Joseph Fletcher

What does this MR do and why?

Problem: When users trigger a manual deploy action or rollback/re-deploy an environment, there is no success feedback — the button click happens silently with no indication of what happened.

Solution: Show a "Deployment started" toast notification with a "View job" link after a successful manual deploy or rollback action. The job URL is captured from the REST API redirect response (response.request.responseURL).

References

#388950

Screenshots or screen recordings

Before After
image.png

How to set up and validate locally

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

tag:gitlab.com,2026-03-10:5185787005 Joseph Fletcher commented on merge request !223475 at GitLab.org / GitLab 2026-03-10T06:38:43Z JoFletcher Joseph Fletcher

Sorry for the delay. I am going on PTO but based on the code this looks good and since we are using GlToast in the background all accessibility requirements are dealt with as well so great job @k0ndratov. I am passing to @shampton for maintainer review. I will admit that I was hesitant to actually test this code in the gdk because I am not too familiar with how environments operate there so I will ask that is verified before we merge.

I would also recommend adding the below to the MR description so reviewers can more easily know how to test your code

How to set up and validate locally

1. Manual Action Toast

  1. Navigate to a project's Operate > Environments page
  2. Find an environment with available manual actions (e.g., a scheduled job action)
  3. Click on the manual action button
  4. Expected: A toast notification appears with the message "Deployment started" and a "View job" link
  5. Click the "View job" link
  6. Expected: You are redirected to the job details page

2. Rollback Toast

  1. Navigate to a project's Operate > Environments page
  2. Find an environment with a deployment history
  3. Click the rollback button on a previous deployment
  4. Confirm the rollback action in the modal
  5. Expected: A toast notification appears with the message "Deployment started" and a "View job" link
  6. Click the "View job" link
  7. Expected: You are redirected to the re-deployment job details page
tag:gitlab.com,2026-03-09:5184677079 Joseph Fletcher commented on merge request !226578 at GitLab.org / GitLab 2026-03-09T21:52:51Z JoFletcher Joseph Fletcher

Can you please review this when you get a chance @jerasmus

tag:gitlab.com,2026-03-09:5184676292 Joseph Fletcher opened merge request !226578: Fix FTB scroll stickiness in chromium browsers at GitLab.org / GitLab 2026-03-09T21:52:28Z JoFletcher Joseph Fletcher

What does this MR do and why?

Fixes #586191 - File tree browser preserves scroll position when switching between files in Chrome and Arc browsers.

When navigating between files using the repository file tree browser in Chromium-based browsers (Chrome, Arc), the scroll position from the previous file was incorrectly preserved. This caused the viewer to jump to an arbitrary position in the newly selected file rather than starting at the top.

The fix calls scrollUp() in the onFileClick() method to reset scroll position at the moment of user interaction, preventing Chromium's scroll restoration logic from interfering.

References

Closes #586191

Related to !220743

Screenshots or screen recordings

How to set up and validate locally

  1. Navigate to a repository with the file tree browser enabled
  2. Open a file and scroll down to a position partway through the file
  3. Click on a different file in the file tree browser
  4. Verify that the new file opens scrolled to the top (not at the previous scroll position)
  5. Test in Chrome, Arc, Firefox, and Safari to ensure cross-browser compatibility

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

tag:gitlab.com,2026-03-09:5184659990 Joseph Fletcher pushed new project branch 586191-Fix-ftb-scroll-bug at GitLab.org / GitLab 2026-03-09T21:45:29Z JoFletcher Joseph Fletcher

Joseph Fletcher (3beaf052) at 09 Mar 21:45

Fix FTB scroll stickiness in chromium browsers

tag:gitlab.com,2026-03-05:5172733651 Joseph Fletcher pushed to project branch 518886-refactor-html-gitlab at GitLab.org / GitLab 2026-03-05T21:17:57Z JoFletcher Joseph Fletcher

Joseph Fletcher (c4322a1d) at 05 Mar 21:17

Refactor Rouge HTML formatter

tag:gitlab.com,2026-03-05:5172589691 Joseph Fletcher pushed to project branch 518886-switch-to-data-lang at GitLab.org / GitLab 2026-03-05T20:28:47Z JoFletcher Joseph Fletcher

Joseph Fletcher (7716e76e) at 05 Mar 20:28

Replace lang with data-lang in Rouge and AsciiDoc

... and 895 more commits

tag:gitlab.com,2026-03-05:5172417796 Joseph Fletcher pushed to project branch 518886-switch-commonmarker-output at GitLab.org / GitLab 2026-03-05T19:27:17Z JoFletcher Joseph Fletcher

Joseph Fletcher (13437d06) at 05 Mar 19:27

Switch Commonmarker output

... and 894 more commits

tag:gitlab.com,2026-03-05:5172413315 Joseph Fletcher pushed to project branch 518886-refactor-html-gitlab at GitLab.org / GitLab 2026-03-05T19:25:46Z JoFletcher Joseph Fletcher

Joseph Fletcher (23e21fdf) at 05 Mar 19:25

Refactor Rouge HTML formatter

... and 893 more commits

tag:gitlab.com,2026-03-05:5172403149 Joseph Fletcher commented on merge request !226071 at GitLab.org / GitLab 2026-03-05T19:22:18Z JoFletcher Joseph Fletcher

LGTM @psjakubowska can you please do maintainer review

tag:gitlab.com,2026-03-05:5172399865 Joseph Fletcher approved merge request !226071: Use v-safe-html for commit.titleHtml in collapsible commit info at GitLab.org / GitLab 2026-03-05T19:21:16Z JoFletcher Joseph Fletcher

What does this MR do and why?

Fixes the collapsible commit info component improperly rendering commit.titleHtml by using text interpolation ({{ }}) instead of the v-safe-html directive. This caused HTML entities (e.g., &, <, >) and rendered references (e.g., #1) to display as raw escaped text instead of properly formatted HTML.

  • Replaced {{ commit.titleHtml }} with v-safe-html:[$options.safeHtmlConfig]="commit.titleHtml" in collapsible_commit_info.vue
  • This is consistent with how commit_info.vue and table/row.vue already render titleHtml
  • The existing safeHtmlConfig ({ ADD_TAGS: ['gl-emoji'] }) is sufficient since the backend's SingleLinePipeline only produces <a> (already in DOMPurify defaults) and <gl-emoji> tags

References

Closes #592157

Screenshots or screen recordings

Before After
CleanShot 2026-03-05 at 10.37.00.png

How to set up and validate locally

  1. Resize the browser to a small viewport width (e.g., < 576px) to trigger the mobile layout
  2. Navigate to a repository's file tree and a commit whose title contains HTML entities (e.g., &) or issue/MR references (e.g., #1)
  3. Click into a file to navigate via the repository app
  4. Expand the collapsible commit info and verify the commit title renders as formatted HTML (links are clickable, entities are decoded) rather than raw escaped text
  5. Navigate directly to a file URL (e.g., http://localhost:3000/<project>/-/blob/main/README.md) or refresh the page while viewing a file
  6. Expand the collapsible commit info and verify the commit title renders correctly as formatted HTML

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

tag:gitlab.com,2026-03-04:5167719847 Joseph Fletcher commented on merge request !223446 at GitLab.org / GitLab 2026-03-04T18:55:50Z JoFletcher Joseph Fletcher

Hi @vyaklushin can you please restart the MWPS. I haveaddress all the issues block it previously

tag:gitlab.com,2026-03-04:5167364101 Joseph Fletcher pushed to project branch 518886-refactor-codelanguagefilter at GitLab.org / GitLab 2026-03-04T17:08:54Z JoFletcher Joseph Fletcher

Joseph Fletcher (5ffedf5d) at 04 Mar 17:08

Address review feedback on CodeLanguageFilter refactoring

... and 347 more commits

tag:gitlab.com,2026-03-03:5163735904 Joseph Fletcher commented on merge request !224238 at GitLab.org / GitLab 2026-03-03T21:53:31Z JoFletcher Joseph Fletcher

@ahuss7 There should not be because the language classes shoudld be standardized by this point. Here is a breakdown of the flow for easy visualization

1. Markdown Source (Input)

```ruby
def hello
end

Language state: ruby (string identifier)

2. Markdown Parser (CommonMark/Kramdown)

<pre><code class="language-ruby">def hello
end</code></pre>

Language state: class="language-ruby" (CSS class format)

3. Rouge Syntax Highlighter

Before Step 4:

<span id="LC1" class="line" lang="ruby">
  <span class="k">def</span> <span class="nf">hello</span>
</span>

Language state: lang="ruby" (invalid HTML)

After Step 4:

<span id="LC1" class="line" data-lang="ruby">
  <span class="k">def</span> <span class="nf">hello</span>
</span>

Language state: data-lang="ruby" (valid HTML)

4. CodeLanguageFilter Processing

Input (from various sources):

<pre><code class="language-ruby">...</code></pre>
<!-- OR -->
<pre lang="ruby"><code>...</code></pre>
<!-- OR -->
<pre data-lang="ruby"><code>...</code></pre>

Output (standardized):

<pre data-canonical-lang="ruby" data-lang="ruby">
  <code>...</code>
</pre>

Language state:

  • data-canonical-lang="ruby" (programmatic use)
  • data-lang="ruby" (display use)

5. AsciiDoc Pipeline (Parallel)

Before Step 4:

<pre lang="ruby"><code>puts "hello"</code></pre>

Language state: lang="ruby" (invalid)

After Step 4:

<pre data-lang="ruby"><code>puts "hello"</code></pre>

Language state: data-lang="ruby" (valid)

6. Final Rendered HTML

<pre data-canonical-lang="ruby" data-lang="ruby">
  <span id="LC1" class="line" data-lang="ruby">
    <span class="k">def</span> <span class="nf">hello</span>
  </span>
</pre>

Language state: Consistent data-lang="ruby" throughout

tag:gitlab.com,2026-03-03:5163702665 Joseph Fletcher commented on merge request !224238 at GitLab.org / GitLab 2026-03-03T21:40:11Z JoFletcher Joseph Fletcher

The pre checks did not like it see below:

danger ❯

Results:

Errors:
- [ ] Adding calls to `html_escape_once` or `escape_once` to the codebase is forbidden!
We are in the process of removing all calls to these methods --- they mix unescaped
and escaped content in a way which cannot be unmixed, and often leads to XSS.

We should always know whether any string content is considered text (and _must_ be escaped
when included in HTML) or HTML (and can be included safely) --- any in-between means we have
lost track of what can be trusted, and need to revisit the data flow.

Please remove the added calls to `html_escape_once` or `escape_once`.
Use `html_escape` if the input is text, and ask for help if you need it!