             return organisation.hashValue
         case .publicRepositories:
             return "PublicRepositories".hashValue
-        }
-    }
-}
+        case .file(let owner, let repository, let path):
+            return "File".hashValue ^ owner.hashValue ^ repository.hashValue ^ path.hashValue
+        }
+    }
+}

                return "/orgs/\(organisation)/repos"
            case .publicRepositories:
                return "/repositories"
            }
        }
        


        // https://developer.github.com/v3/repos/#list-all-public-repositories
        case publicRepositories

        // https://developer.github.com/v3/repos/contents/#get-contents
        case file(owner: String, repository: String, path: String)

        internal var path: String {
            switch self {
