mirror of https://git.sr.ht/~sircmpwn/hub.sr.ht
hubsrht: Remove usage of repository(id) GraphQL query
The repository(id) query will be removed from git.sr.ht, so use the User.repository(name) query instead.
This commit is contained in:
parent
34c5650cd8
commit
a77998c012
|
@ -63,7 +63,7 @@ def summary_GET(owner, project_name):
|
||||||
repo = project.summary_repo
|
repo = project.summary_repo
|
||||||
try:
|
try:
|
||||||
if repo.repo_type == RepoType.git:
|
if repo.repo_type == RepoType.git:
|
||||||
summary = git.get_readme(owner, repo.remote_id, repo.url())
|
summary = git.get_readme(owner, repo.name, repo.url())
|
||||||
elif repo.repo_type == RepoType.hg:
|
elif repo.repo_type == RepoType.hg:
|
||||||
summary = hg.get_readme(owner, repo.name, repo.url())
|
summary = hg.get_readme(owner, repo.name, repo.url())
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -35,7 +35,7 @@ def submit_patchset(ml, payload):
|
||||||
if repo.repo_type != RepoType.git:
|
if repo.repo_type != RepoType.git:
|
||||||
# TODO: support for hg.sr.ht
|
# TODO: support for hg.sr.ht
|
||||||
return None
|
return None
|
||||||
manifests = git.get_manifests(repo.owner, repo.remote_id)
|
manifests = git.get_manifests(repo.owner, repo.name)
|
||||||
if not manifests:
|
if not manifests:
|
||||||
return None
|
return None
|
||||||
if len(manifests) > 4:
|
if len(manifests) > 4:
|
||||||
|
|
|
@ -84,14 +84,16 @@ class GitService(SrhtService):
|
||||||
raise Exception(r.text)
|
raise Exception(r.text)
|
||||||
return r.json()
|
return r.json()
|
||||||
|
|
||||||
def get_readme(self, user, repo_id, repo_url):
|
def get_readme(self, user, repo_name, repo_url):
|
||||||
readme_query = """
|
readme_query = """
|
||||||
query Readme($repoId: Int!) {
|
query Readme($username: String!, $repoName: String!) {
|
||||||
repository(id: $repoId) {
|
user(username: $username) {
|
||||||
html: readme
|
repository(name: $repoName) {
|
||||||
md: path(path: "README.md") { ...textData }
|
html: readme
|
||||||
markdown: path(path: "README.markdown") { ...textData }
|
md: path(path: "README.md") { ...textData }
|
||||||
plaintext: path(path: "README") { ...textData }
|
markdown: path(path: "README.markdown") { ...textData }
|
||||||
|
plaintext: path(path: "README") { ...textData }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,13 +108,14 @@ class GitService(SrhtService):
|
||||||
r = self.post(user, None, f"{_gitsrht}/query", {
|
r = self.post(user, None, f"{_gitsrht}/query", {
|
||||||
"query": readme_query,
|
"query": readme_query,
|
||||||
"variables": {
|
"variables": {
|
||||||
"repoId": repo_id,
|
"username": user.username,
|
||||||
|
"repoName": repo_name,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
if not r["data"]["repository"]:
|
if not r["data"]["user"]["repository"]:
|
||||||
raise Exception(f"git.sr.ht returned no repository for ID {repo_id}: " +
|
raise Exception("git.sr.ht returned no repository: " +
|
||||||
json.dumps(r, indent=1))
|
json.dumps(r, indent=1))
|
||||||
repo = r["data"]["repository"]
|
repo = r["data"]["user"]["repository"]
|
||||||
|
|
||||||
content = repo["html"]
|
content = repo["html"]
|
||||||
if content:
|
if content:
|
||||||
|
@ -132,25 +135,27 @@ class GitService(SrhtService):
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def get_manifests(self, user, repo_id):
|
def get_manifests(self, user, repo_name):
|
||||||
manifests_query = """
|
manifests_query = """
|
||||||
query Manifests($repoId: Int!) {
|
query Manifests($username: String!, $repoName: String!) {
|
||||||
repository(id: $repoId) {
|
user(username: $username) {
|
||||||
multiple: path(path:".builds") {
|
repository(name: $repoName) {
|
||||||
object {
|
multiple: path(path:".builds") {
|
||||||
... on Tree {
|
object {
|
||||||
entries {
|
... on Tree {
|
||||||
results {
|
entries {
|
||||||
name
|
results {
|
||||||
object { ... on TextBlob { text } }
|
name
|
||||||
|
object { ... on TextBlob { text } }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
},
|
single: path(path:".build.yml") {
|
||||||
single: path(path:".build.yml") {
|
object {
|
||||||
object {
|
... on TextBlob { text }
|
||||||
... on TextBlob { text }
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -159,21 +164,22 @@ class GitService(SrhtService):
|
||||||
r = self.post(user, None, f"{_gitsrht}/query", {
|
r = self.post(user, None, f"{_gitsrht}/query", {
|
||||||
"query": manifests_query,
|
"query": manifests_query,
|
||||||
"variables": {
|
"variables": {
|
||||||
"repoId": repo_id,
|
"username": user.username,
|
||||||
|
"repoName": repo_name,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
if not r["data"]["repository"]:
|
if not r["data"]["user"]["repository"]:
|
||||||
raise Exception(f"git.sr.ht did not find repo ID {repo_id} (requesting on behalf of {user.username})\n" +
|
raise Exception(f"git.sr.ht did not find repo {repo_name} (requesting on behalf of {user.username})\n" +
|
||||||
json.dumps(r, indent=1))
|
json.dumps(r, indent=1))
|
||||||
manifests = dict()
|
manifests = dict()
|
||||||
if r["data"]["repository"]["multiple"]:
|
if r["data"]["user"]["repository"]["multiple"]:
|
||||||
for ent in r["data"]["repository"]["multiple"]["object"]\
|
for ent in r["data"]["user"]["repository"]["multiple"]["object"]\
|
||||||
["entries"]["results"]:
|
["entries"]["results"]:
|
||||||
if not ent["object"]:
|
if not ent["object"]:
|
||||||
continue
|
continue
|
||||||
manifests[ent["name"]] = ent["object"]["text"]
|
manifests[ent["name"]] = ent["object"]["text"]
|
||||||
elif r["data"]["repository"]["single"]:
|
elif r["data"]["user"]["repository"]["single"]:
|
||||||
manifests[".build.yml"] = r["data"]["repository"]["single"]\
|
manifests[".build.yml"] = r["data"]["user"]["repository"]["single"]\
|
||||||
["object"]["text"]
|
["object"]["text"]
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
Loading…
Reference in New Issue