aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vcsbrowsers.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/vcsbrowsers.py b/vcsbrowsers.py
new file mode 100644
index 0000000..fd29005
--- /dev/null
+++ b/vcsbrowsers.py
@@ -0,0 +1,36 @@
+# convenience wrappers to construct links
+# into the webinterfaces of different VCSs
+
+class VCSBrowser:
+ def __init__(self, url):
+ self.url = url.rstrip('/')
+
+ def commit(self, commtid):
+ raise NotImplemented
+
+ def branch(self, branch):
+ raise NotImplemented
+
+
+class GitWebBrowser(VCSBrowser):
+ """
+ URLs for gitweb:
+ e.g. http://git.debian.org/?p=pkg-libvirt/gtk-vnc.git
+ """
+ def commit(self, commitid):
+ return "%s;a=commit;h=%s" % (self.url, commitid)
+
+ def branch(self, branch):
+ return "%s;a=shortlog;h=refs/heads/%s" % (self.url, branch)
+
+
+class HgBrowser(VCSBrowser):
+ """
+ URLs for Mercurial:
+ e.g. http://hg.et.redhat.com/virt/applications/virtinst--devel
+ """
+
+ def commit(self, commitid):
+ return "%s?cs=%s" % (self.url, commitid)
+
+