diff --git a/pkg/host/github.go b/pkg/host/github.go
index 29a7a851a59fd616ff8cfb58eb6eeef52f77cf81..bc3197180f40d587006ddaad481db0ebe30afbc7 100644
--- a/pkg/host/github.go
+++ b/pkg/host/github.go
@@ -1,33 +1,36 @@
 package host
 
 import (
-	"path/filepath"
 	"regexp"
 	"strings"
 )
 
+const githubStorageURL = "https://codeload.github.com"
+
 // ZipURL returns the URL of the zip archive given a github repository URL.
-func ZipURL(url string) string {
+func ZipURL(repo string) string {
 	var version = "master"
 
-	url = strings.TrimSuffix(strings.TrimPrefix(url, "/"), "/")
+	repo = strings.TrimSuffix(strings.TrimPrefix(repo, "/"), "/")
 
 	zipRegex, _ := regexp.Compile(`zip/(\S+)$`)
-	if zipRegex.MatchString(url) {
-		return url
+	if zipRegex.MatchString(repo) {
+		return repo
 	}
 
 	// So this could identify a port number, but since we only support github
 	// I don't believe using it as a version modifier is a problem. Though
 	// perhaps we should use something else instead?
-	if strings.Contains(url, ":") {
-		parts := strings.SplitAfter(url, ":")
+	if strings.Contains(repo, ":") {
+		parts := strings.SplitAfter(repo, ":")
 
-		url = parts[0]
+		repo = parts[0]
 		version = parts[1]
 
-		url = strings.TrimSuffix(url, ":")
+		repo = strings.TrimSuffix(repo, ":")
 	}
 
-	return "https://codeload.github.com/" + filepath.Join(url, "/zip/"+version)
+	urlTokens := []string{githubStorageURL, repo, "zip", version}
+
+	return strings.Join(urlTokens, "/")
 }