Skip to content

fix(extensions): strip only a trailing .git suffix when parsing GitHub repo names - #29097

Open
Eswar809 wants to merge 1 commit into
google-gemini:mainfrom
Eswar809:fix/github-repo-parsing-git-suffix
Open

fix(extensions): strip only a trailing .git suffix when parsing GitHub repo names#29097
Eswar809 wants to merge 1 commit into
google-gemini:mainfrom
Eswar809:fix/github-repo-parsing-git-suffix

Conversation

@Eswar809

@Eswar809 Eswar809 commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

TLDR

tryParseGithubUrl used String.prototype.replace('.git', ''), which strips the first occurrence of .git anywhere in the repo name — not just a trailing suffix. Repos like blog.github.io were parsed as hub.io, producing wrong API URLs (/repos/owner/hub.io/releases/latest → 404) and corrupting the extension id used for dedup in settings/state.

This anchors the strip to the end of the name: .replace(/\.git$/i, '').

Testing

  • Added unit tests covering:
    • https://github.com/owner/blog.github.ioblog.github.io (previously mangled to hub.io)
    • https://github.com/owner/my.git.repo.gitmy.git.repo
    • https://github.com/owner/repo.GITrepo (case-insensitive suffix)
    • bare owner/repo forms of the above
  • All existing tests pass: 39/39 in github.test.ts

Checklist

  • Verified the fix locally — lint, prettier, typecheck and unit tests all pass.

…b repo names (google-gemini#29037)

String.prototype.replace('.git', '') removed the first occurrence of
'.git' anywhere in the repo name, mangling repos like blog.github.io
into hub.io and breaking release-based install/update. Anchor the
strip to the end of the name instead.
@Eswar809
Eswar809 requested a review from a team as a code owner August 26, 2026 09:14
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a bug in the GitHub URL parsing logic where the code incorrectly stripped the first occurrence of '.git' from repository names, regardless of its position. By anchoring the replacement to the end of the string, the fix ensures that valid repository names containing '.git' (such as those for GitHub Pages sites) are parsed correctly, preventing API errors and state corruption.

Highlights

  • Regex-based suffix stripping: Updated the repository name parsing logic to use a case-insensitive regex anchor (.git$/i) instead of a simple string replacement, ensuring only trailing .git suffixes are removed.
  • Expanded test coverage: Added new unit test cases to verify correct handling of repository names containing .git segments in the middle of the string and case-sensitive variations.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions github-actions Bot added the size/s A small PR label Aug 26, 2026
@github-actions

Copy link
Copy Markdown

📊 PR Size: size/S

  • Lines changed: 15
  • Additions: +14
  • Deletions: -1
  • Files changed: 2

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request fixes an issue in the GitHub URL parser where any occurrence of ".git" in the repository name was incorrectly stripped. The code has been updated to only strip a trailing ".git" suffix case-insensitively using a regular expression. Corresponding unit tests have been added to verify this behavior. There are no review comments, and I have no feedback to provide.

@gemini-cli gemini-cli Bot added the status/need-issue Pull requests that need to have an associated issue. label Aug 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/s A small PR status/need-issue Pull requests that need to have an associated issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant