RFR: 1092: /backport commit command does not validate non existing repos

Erik Joelsson erikj at openjdk.java.net
Wed Jun 23 21:15:07 UTC 2021

This patch fixes inconsistencies with how Forge.repository(String) behaves for GitHub and GitLab. 

>From what I can tell, this method is expected to return an Optional.empty() if the repository does not exist, and in the Gitlab case, this is what it does. For Github there is no actual check. In both cases, they call the hosted repository constructor (GitlabRepository and GithubRepository respectively) and expect an exception if it doesn't exist. In the case of Gitlab, the constructor will make a rest call to get information about the repository, while the Github variant does not. It seems this was changed for GitHub a long while back as an optimization, using lazy initialization: https://github.com/openjdk/skara/pull/296

I have rewritten this logic and aligned the behavior of Forge.repository(String) between GitHub and GitLab. Now they both will only return Optional.empty() if the rest call to get repository info returns 404. Any other RuntimeException or Error is just let through, as it should be. There are other ways a hosted repository can be created, where Optional is not used in the return value. In these cases we now have consistent throwing of a RuntimeException with the message "Project/Repository not found" (in the GitLab case directly as it's needed for constructing the object, and in the GitHub case when a method is called that triggers the lazy initialization). The assumption is that in these other code paths, the repository name does not originate from human input, but rather other query results, so a 404 is truly unexpected and should result in an exception.


Commit messages:
 - Changed exception text
 - SKARA-1092

Changes: https://git.openjdk.java.net/skara/pull/1192/files
 Webrev: https://webrevs.openjdk.java.net/?repo=skara&pr=1192&range=00
  Issue: https://bugs.openjdk.java.net/browse/SKARA-1092
  Stats: 34 lines in 4 files changed: 18 ins; 8 del; 8 mod
  Patch: https://git.openjdk.java.net/skara/pull/1192.diff
  Fetch: git fetch https://git.openjdk.java.net/skara pull/1192/head:pull/1192

PR: https://git.openjdk.java.net/skara/pull/1192

More information about the skara-dev mailing list