summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2019-04-11 17:16:37 -0400
committerDrew DeVault <sir@cmpwn.com>2019-04-11 17:16:37 -0400
commitdf2abd8df825ff490590c0fa8c658934f43f3648 (patch)
treef1f919f1f17e1e041a7f17acd1b84bbb09b98401
parenta24377e3d5f4e08a1350ba7d3995c222c27f4698 (diff)
Updates for scm.sr.ht private repo submission
-rw-r--r--gitsrht/submit.py23
-rw-r--r--gitsrht/urls.py5
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[{}]({}) &mdash; [{}](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@{}:{}/{}"]