Skip to content

Update Fleet-maintained apps - #49935

Closed
fleet-release wants to merge 1 commit into
mainfrom
fma-2607250500
Closed

Update Fleet-maintained apps#49935
fleet-release wants to merge 1 commit into
mainfrom
fma-2607250500

Conversation

@fleet-release

@fleet-release fleet-release commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Automated ingestion of latest Fleet-maintained app data.

Summary by CodeRabbit

  • Updates
    • Updated macOS releases for Antigravity, Arc, CapCut, Dot, Granola, Kiro CLI, Miro, OBS Studio, ocenaudio, and Yaak.
    • Updated Windows releases for ClickUp, Microsoft Edge, and ocenaudio.
    • Refreshed installer links, checksums, and version detection for the updated releases.
    • Updated CapCut’s uninstall configuration to support the latest release.

Generated automatically with cmd/maintained-apps.
@github-actions

Copy link
Copy Markdown
Contributor

Script Diff Results

ee/maintained-apps/outputs/antigravity/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/arc/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/capcut/darwin.json

=== Install Script (no changes) ===
=== Uninstall // a9b4c8a1 -> 30a898df ===

--- /tmp/old.ddnxHo	2026-07-25 05:08:07.760276955 +0000
+++ /tmp/new.0N2kBS	2026-07-25 05:08:07.760276955 +0000
@@ -56,4 +56,3 @@
 trash $LOGGED_IN_USER '~/Library/Application Scripts/com.lemon.lvoverseas'
 trash $LOGGED_IN_USER '~/Library/Containers/com.lemon.lvoverseas'
 trash $LOGGED_IN_USER '~/Library/Group Containers/22MMUN2RN5.lv'
-trash $LOGGED_IN_USER '~/Library/Group Containers/22MMUN2RN5.ve'

ee/maintained-apps/outputs/clickup/windows.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/dot/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/granola/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/kiro-cli/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/microsoft-edge/windows.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/miro/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/obs/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/ocenaudio/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/ocenaudio/windows.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/yaak/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Updated 13 maintained-app definitions across macOS and Windows to newer versions, synchronized version-detection queries, refreshed installer URLs and SHA-256 checksums, and preserved existing script references where applicable. CapCut additionally switches to a new uninstall script reference and changes one cleanup target.

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description omits the required template sections, including related issue, checklist items, and testing details. Add the template sections and fill in the related issue, applicable checklist items, testing, and any deployment notes.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately reflects the main change: updating Fleet-maintained app data.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fma-2607250500

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ee/maintained-apps/outputs/capcut/darwin.json`:
- Line 19: Update the CapCut uninstall commands in the script to trash both
group-container paths, preserving the existing 22MMUN2RN5.lv cleanup and adding
the corresponding 22MMUN2RN5.ve path through trash.

In `@ee/maintained-apps/outputs/miro/darwin.json`:
- Around line 4-7: Keep the Miro manifest’s installer artifact pinned to version
0.11.164 by using an immutable, versioned installer URL and recording its
SHA-256 checksum; if Install-Miro.dmg is guaranteed immutable for this release,
retain it and replace no_check with a comment documenting that guarantee.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: acca718e-c684-4fd6-b410-86df3f605cf1

📥 Commits

Reviewing files that changed from the base of the PR and between 5b36fb5 and 779b9e0.

📒 Files selected for processing (13)
  • ee/maintained-apps/outputs/antigravity/darwin.json
  • ee/maintained-apps/outputs/arc/darwin.json
  • ee/maintained-apps/outputs/capcut/darwin.json
  • ee/maintained-apps/outputs/clickup/windows.json
  • ee/maintained-apps/outputs/dot/darwin.json
  • ee/maintained-apps/outputs/granola/darwin.json
  • ee/maintained-apps/outputs/kiro-cli/darwin.json
  • ee/maintained-apps/outputs/microsoft-edge/windows.json
  • ee/maintained-apps/outputs/miro/darwin.json
  • ee/maintained-apps/outputs/obs/darwin.json
  • ee/maintained-apps/outputs/ocenaudio/darwin.json
  • ee/maintained-apps/outputs/ocenaudio/windows.json
  • ee/maintained-apps/outputs/yaak/darwin.json

],
"refs": {
"a9b4c8a1": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/CapCut.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.lemon.lvoverseas'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.lemon.lvoverseas'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/22MMUN2RN5.lv'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/22MMUN2RN5.ve'\n",
"30a898df": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/CapCut.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.lemon.lvoverseas'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.lemon.lvoverseas'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/22MMUN2RN5.lv'\n",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Preserve both CapCut group-container suffixes during uninstall.

The script now removes only 22MMUN2RN5.lv; the Fleet CapCut uninstall command lists both .lv and .ve, so removing the .ve cleanup leaves data from older installations behind. (fleetdm.com)

Proposed fix
  trash $LOGGED_IN_USER '~/Library/Group Containers/22MMUN2RN5.lv'
+ trash $LOGGED_IN_USER '~/Library/Group Containers/22MMUN2RN5.ve'
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"30a898df": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/CapCut.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.lemon.lvoverseas'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.lemon.lvoverseas'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/22MMUN2RN5.lv'\n",
"30a898df": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/CapCut.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.lemon.lvoverseas'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.lemon.lvoverseas'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/22MMUN2RN5.lv'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/22MMUN2RN5.ve'\n",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ee/maintained-apps/outputs/capcut/darwin.json` at line 19, Update the CapCut
uninstall commands in the script to trash both group-container paths, preserving
the existing 22MMUN2RN5.lv cleanup and adding the corresponding 22MMUN2RN5.ve
path through trash.

Comment on lines +4 to +7
"version": "0.11.164",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.realtimeboard';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.realtimeboard' AND version_compare(bundle_short_version, '0.11.162') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.realtimeboard' AND version_compare(bundle_short_version, '0.11.164') < 0);"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== repo files around miro maint apps =="
fd -a 'darwin\.json|maintained-apps' . | sed 's#^\./##' | head -100

echo "== target manifest =="
if [ -f ee/maintained-apps/outputs/miro/darwin.json ]; then
  cat -n ee/maintained-apps/outputs/miro/darwin.json
fi

echo "== miro source/manifest files =="
fd -i 'miro|mir(.?o)?' . || true

echo "== text search for Install-Miro and checksum behavior =="
rg -n "Install-Miro|Miro|maintained-apps|checksum|sha256|no_check|validate" ee .github src 2>/dev/null | head -200

Repository: fleetdm/fleet

Length of output: 7168


🏁 Script executed:

#!/bin/bash
set -u

echo "== target manifest =="
cat -n ee/maintained-apps/outputs/miro/darwin.json

echo "== miro source or related files =="
fd -i 'miro' ee/maintained-apps cmd/maintained-apps .github . 2>/dev/null | sed 's#^\./##' | head -100 || true

echo "== focused text search for miro/install/sum/registry =="
rg -n --glob '!ee/maintained-apps/outputs/**' 'miro|Miro|Install-Miro|maintained-apps|no_check|sha256|versions|manifest' ee/maintained-apps cmd/maintained-apps .github articles 2>/dev/null | head -300

echo "== compare Miro manifest style to nearby apps with checksum =="
python3 - <<'PY'
from pathlib import Path
import json
for p in sorted(Path('ee/maintained-apps/outputs').glob('*darwin.json')):
    if 'miro' in str(p).lower() or p.name == '1password/darwin.json' or 'adobe-creative-cloud/darwin.json' in str(p):
        try:
            data=json.loads(p.read_text())
        except Exception as e:
            print(p, e)
            continue
        print('\n---', p)
        print({k: data.get(k) for k in ['version','installer_url','sha256','queries'] if k in data})
PY

Repository: fleetdm/fleet

Length of output: 50371


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== target manifest =="
cat -n ee/maintained-apps/outputs/miro/darwin.json

echo "== miro source or related files =="
fd -i 'miro' ee/maintained-apps cmd/maintained-apps .github . 2>/dev/null | sed 's#^\./##' | head -100 || true

echo "== focused text search for miro/install/sum/registry =="
rg -n --glob '!ee/maintained-apps/outputs/**' 'miro|Miro|Install-Miro|maintained-apps|no_check|sha256|versions|manifest' ee/maintained-apps cmd/maintained-apps .github articles 2>/dev/null | head -300

echo "== compare Miro manifest style to nearby apps with checksum =="
python3 - <<'PY'
from pathlib import Path
import json
files = [Path('ee/maintained-apps/outputs/miro/darwin.json'), Path('ee/maintained-apps/outputs/1password/darwin.json'), Path('ee/maintained-apps/outputs/adobe-creative-cloud/darwin.json')]
for p in files:
    if p.exists():
        data=json.loads(p.read_text())
        print('\n---', p)
        for k in ['version','installer_url','sha256','queries']:
            if k in data:
                print(f"{k}: {data[k]!r}")
PY

Repository: fleetdm/fleet

Length of output: 50369


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== miros homebrew/winget input manifests =="
cat -n ee/maintained-apps/inputs/homebrew/miro.json
printf '\n--- winget input ---\n'
cat -n ee/maintained-apps/inputs/winget/miro.json

echo "== maintained apps manifest structs/types =="
ast-grep outline ee/maintained-apps/maintained_apps.go --view expanded || true
sed -n '1,140p' ee/maintained-apps/maintained_apps.go

echo "== validation code references =="
fd -i 'validat.*\.go|maintained.*\.go' ee/maintained-apps cmd/maintained-apps .github/scripts 2>/dev/null | sed 's#^\./##' | sed -n '1,120p'
rg -n 'SHA256|no_check|hash|installer_url|pkg/hash|download' ee/maintained-apps cmd/maintained-apps -g '*.go' -g '*.sh' -g '!outputs/**' | sed -n '1,220p'

echo "== behavioral probe from manifest source files =="
python3 - <<'PY'
from pathlib import Path
import json, re
m=json.loads(Path('ee/maintained-apps/outputs/miro/darwin.json').read_text())
v=m['versions'][0]
print('version:', v.get('version'))
print('installer_url:', v.get('installer_url'))
print('sha256:', v.get('sha256'))
print('url_is_versioned_in_path:', any(seg.strip('/') in str(v.get('installer_url', '')) for seg in re.split(r'[,/?.]', v.get('installer_url','')) if seg))
print('input_homebrew_has_sha256:', 'sha256' in json.loads(Path('ee/maintained-apps/inputs/homebrew/miro.json').read_text()))
PY

Repository: fleetdm/fleet

Length of output: 11697


Keep Miro’s installer artifact pinned to 0.11.164.

This manifest advertises 0.11.164, but downloads from Install-Miro.dmg — not a versioned Miro release URL — and sha256 is no_check. If that URL is not immutable for this release, add/keep a versioned installer artifact with its SHA-256; otherwise add a comment documenting that this path is guaranteed immutable.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ee/maintained-apps/outputs/miro/darwin.json` around lines 4 - 7, Keep the
Miro manifest’s installer artifact pinned to version 0.11.164 by using an
immutable, versioned installer URL and recording its SHA-256 checksum; if
Install-Miro.dmg is guaranteed immutable for this release, retain it and replace
no_check with a comment documenting that guarantee.

@github-actions

Copy link
Copy Markdown
Contributor

Closing in favor of #49936.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants