From 35eb5f02fe01d06aeee9f1f2bc4a9e8dadba45fb Mon Sep 17 00:00:00 2001 From: Deepam Mhatre Date: Sat, 11 Jul 2026 19:20:30 +0530 Subject: [PATCH] fix: handle trailing slash in UrlRepoLoader.get_repo_name --- repo2readme/loaders/loader.py | 4 ++-- tests/test_loader.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 tests/test_loader.py diff --git a/repo2readme/loaders/loader.py b/repo2readme/loaders/loader.py index 0ed8f41..db03178 100644 --- a/repo2readme/loaders/loader.py +++ b/repo2readme/loaders/loader.py @@ -89,8 +89,8 @@ def __init__( self.temp_dir = None def get_repo_name(self): - name = self.clone_url.split("/")[-1] - return name.replace(".git", "") + name = self.clone_url.rstrip("/").split("/")[-1] + return name.removesuffix(".git") def _should_include(self, path: str) -> bool: if self.temp_dir: diff --git a/tests/test_loader.py b/tests/test_loader.py new file mode 100644 index 0000000..8002242 --- /dev/null +++ b/tests/test_loader.py @@ -0,0 +1,31 @@ +from repo2readme.loaders import UrlRepoLoader + + +def test_repo_name_plain(): + assert UrlRepoLoader( + "https://github.com/user/repo" + ).get_repo_name() == "repo" + + +def test_repo_name_with_git_extension(): + assert UrlRepoLoader( + "https://github.com/user/repo.git" + ).get_repo_name() == "repo" + + +def test_repo_name_with_trailing_slash(): + assert UrlRepoLoader( + "https://github.com/user/repo/" + ).get_repo_name() == "repo" + + +def test_repo_name_with_git_and_trailing_slash(): + assert UrlRepoLoader( + "https://github.com/user/repo.git/" + ).get_repo_name() == "repo" + + +def test_repo_name_multiple_trailing_slashes(): + assert UrlRepoLoader( + "https://github.com/user/repo///" + ).get_repo_name() == "repo" \ No newline at end of file