diff options
author | Drew DeVault <sir@cmpwn.com> | 2019-04-11 17:16:37 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-04-11 17:16:37 -0400 |
commit | df2abd8df825ff490590c0fa8c658934f43f3648 (patch) | |
tree | f1f919f1f17e1e041a7f17acd1b84bbb09b98401 | |
parent | a24377e3d5f4e08a1350ba7d3995c222c27f4698 (diff) |
Updates for scm.sr.ht private repo submission
-rw-r--r-- | gitsrht/submit.py | 23 | ||||
-rw-r--r-- | gitsrht/urls.py | 5 |
2 files changed, 20 insertions, 8 deletions
diff --git a/gitsrht/submit.py b/gitsrht/submit.py index 49a1fbf..c5b49e1 100644 --- a/gitsrht/submit.py +++ b/gitsrht/submit.py @@ -6,8 +6,10 @@ import requests import yaml from buildsrht.manifest import Manifest from pygit2 import Repository as GitRepository, Commit, Tag +from scmsrht.repos import RepoVisibility from scmsrht.submit import BuildSubmitterBase -from srht.config import cfg +from scmsrht.urls import get_clone_urls +from srht.config import cfg, get_origin from srht.database import db from srht.oauth import OAuthScope from urllib.parse import urlparse @@ -18,9 +20,9 @@ if not hasattr(db, "session"): db = DbSession(cfg("git.sr.ht", "connection-string")) db.init() -builds_sr_ht = cfg("builds.sr.ht", "origin") +builds_sr_ht = get_origin("builds.sr.ht") builds_client_id = cfg("builds.sr.ht", "oauth-client-id") -git_sr_ht = cfg("git.sr.ht", "origin") +git_sr_ht = get_origin("git.sr.ht", external=True) def first_line(text): try: @@ -66,8 +68,7 @@ class GitBuildSubmitter(BuildSubmitterBase): def get_commit_note(self, commit): return "{}\n\n[{}]({}) — [{}](mailto:{})".format( - # TODO: cgit replacement - html.escape(first_line(commit.message)), + "<pre>" + html.escape(first_line(commit.message)) + "</pre>", str(commit.id)[:7], "{}/{}/{}/commit/{}".format( git_sr_ht, @@ -78,6 +79,18 @@ class GitBuildSubmitter(BuildSubmitterBase): commit.author.email, ) + def get_clone_url(self): + origin = get_origin("git.sr.ht", external=True) + owner_name = self.repo.owner.canonical_name + repo_name = self.repo.name + if self.repo.visibility == RepoVisibility.private: + # Use SSH URL + origin = origin.replace("http://", "").replace("https://", "") + return f"git+ssh://git@{origin}/{owner_name}/{repo_name}" + else: + # Use http(s) URL + return f"{origin}/{owner_name}/{repo_name}" + def do_post_update(repo, refs): if not builds_sr_ht: return False diff --git a/gitsrht/urls.py b/gitsrht/urls.py index d6ba6bd..2eca81f 100644 --- a/gitsrht/urls.py +++ b/gitsrht/urls.py @@ -1,12 +1,11 @@ from flask import url_for -from srht.config import cfg +from srht.config import get_origin def clone_urls(repo): """Returns the readonly and read/write URL for a given repo.""" - base = (cfg("git.sr.ht", "origin") + base = (get_origin("git.sr.ht", external=True) .replace("http://", "") .replace("https://", "")) - return [ url.format(base, repo.owner.canonical_name, repo.name) for url in ["https://{}/{}/{}", "git@{}:{}/{}"] |