Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Sawicki2011-10-30 15:58:51 +0000
committerKevin Sawicki2011-10-30 15:58:51 +0000
commit15ad8dbca08fb81417a253d7feb9d67b1759d83f (patch)
tree3efcd43beb5284846083f4917eba3fd50ea92b1d
parent8ea2329a7543a601c58dedbd4ddc62b291a71579 (diff)
downloadegit-github-15ad8dbca08fb81417a253d7feb9d67b1759d83f.tar.gz
egit-github-15ad8dbca08fb81417a253d7feb9d67b1759d83f.tar.xz
egit-github-15ad8dbca08fb81417a253d7feb9d67b1759d83f.zip
Escape '.' characters in search query to '%2E'
Change-Id: I2fc31f370a2c87fbadbc5523473b855e29d53ad5 Signed-off-by: Kevin Sawicki <kevin@github.com>
-rw-r--r--org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/RepositoryServiceTest.java13
-rw-r--r--org.eclipse.egit.github.core/src/org/eclipse/egit/github/core/service/RepositoryService.java3
2 files changed, 15 insertions, 1 deletions
diff --git a/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/RepositoryServiceTest.java b/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/RepositoryServiceTest.java
index 405424cf..46cab454 100644
--- a/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/RepositoryServiceTest.java
+++ b/org.eclipse.egit.github.core.tests/src/org/eclipse/egit/github/core/tests/RepositoryServiceTest.java
@@ -363,6 +363,19 @@ public class RepositoryServiceTest {
}
/**
+ * Search repositories with query that needs escaping
+ *
+ * @throws IOException
+ */
+ @Test
+ public void searchEscaped() throws IOException {
+ service.searchRepositories("a and a.");
+ GitHubRequest request = new GitHubRequest();
+ request.setUri(Utils.page("/api/v2/json/repos/search/a%20and%20a%2E"));
+ verify(client).get(request);
+ }
+
+ /**
* Get languages in repository
*
* @throws IOException
diff --git a/org.eclipse.egit.github.core/src/org/eclipse/egit/github/core/service/RepositoryService.java b/org.eclipse.egit.github.core/src/org/eclipse/egit/github/core/service/RepositoryService.java
index 8c7d64bc..e35cf5f2 100644
--- a/org.eclipse.egit.github.core/src/org/eclipse/egit/github/core/service/RepositoryService.java
+++ b/org.eclipse.egit.github.core/src/org/eclipse/egit/github/core/service/RepositoryService.java
@@ -484,7 +484,8 @@ public class RepositoryService extends GitHubService {
uri.append(SEGMENT_REPOS);
uri.append(SEGMENT_SEARCH);
final String encodedQuery = URLEncoder.encode(query, CHARSET_UTF8)
- .replace("+", "%20");
+ .replace("+", "%20") //$NON-NLS-1$ //$NON-NLS-2$
+ .replace(".", "%2E"); //$NON-NLS-1$ //$NON-NLS-2$
uri.append('/').append(encodedQuery);
PagedRequest<SearchRepository> request = createPagedRequest();

Back to the top