Unfortunately I do not have capacity to review this - passing to next reviewer on roulette @allison_villa
Please flush out the MR description there was no context on why this change was necessary
A good aria-label would be:
aria-label="Purchase credits (opens in new window)"
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.
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
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).
| Before | After |
|---|---|
![]() |
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
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
Can you please review this when you get a chance @jerasmus
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.
Closes #586191
Related to !220743
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Joseph Fletcher (3beaf052) at 09 Mar 21:45
Fix FTB scroll stickiness in chromium browsers
Joseph Fletcher (c4322a1d) at 05 Mar 21:17
Refactor Rouge HTML formatter
Joseph Fletcher (7716e76e) at 05 Mar 20:28
Replace lang with data-lang in Rouge and AsciiDoc
... and 895 more commits
LGTM @psjakubowska can you please do maintainer review
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.
{{ commit.titleHtml }} with v-safe-html:[$options.safeHtmlConfig]="commit.titleHtml" in collapsible_commit_info.vue
commit_info.vue and table/row.vue already render titleHtml
safeHtmlConfig ({ ADD_TAGS: ['gl-emoji'] }) is sufficient since the backend's SingleLinePipeline only produces <a> (already in DOMPurify defaults) and <gl-emoji> tagsCloses #592157
| Before | After |
|---|---|
![]() |
&) or issue/MR references (e.g., #1)http://localhost:3000/<project>/-/blob/main/README.md) or refresh the page while viewing a fileEvaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Hi @vyaklushin can you please restart the MWPS. I haveaddress all the issues block it previously
Joseph Fletcher (5ffedf5d) at 04 Mar 17:08
Address review feedback on CodeLanguageFilter refactoring
... and 347 more commits
@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"
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"
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"
After Step 4:
<pre data-lang="ruby"><code>puts "hello"</code></pre>
Language state: data-lang="ruby"
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
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!