Commit 2371348
src/database/github.py
@@ -41,10 +41,10 @@ async def list_assets(
release_id = await get_release_id(tag_name, release_name, gh_user, gh_repo, gh_token)
if not all([release_id, gh_user, gh_repo, gh_token]):
return {}
- headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2022-11-28"}
+ headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2026-03-10"}
resp = await hx_req(f"https://api.github.com/repos/{gh_user}/{gh_repo}/releases/{release_id}/assets", headers=headers, proxy=PROXY.GITHUB, check_keys=["0.browser_download_url"])
if isinstance(resp, list):
- return {x["name"]: {"url": x["browser_download_url"], "id": x["id"], "updated_at": x["updated_at"], "name": x["name"]} for x in resp} # type: ignore
+ return {x["name"]: {"url": x["browser_download_url"], "id": x["id"], "updated_at": x["updated_at"], "name": x["name"]} for x in resp}
if resp.get("hx_error"):
logger.error(resp["hx_error"])
return {}
@@ -61,7 +61,7 @@ async def list_releases(
gh_user = await get_username(gh_token)
if not all([gh_user, gh_repo, gh_token]):
return {}
- headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2022-11-28"}
+ headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2026-03-10"}
releases = []
per_page = 100 # maximum is 100
page = 1
@@ -187,7 +187,7 @@ async def gh_upload_asset(
headers = {
"Accept": "application/vnd.github+json",
"Authorization": f"Bearer {gh_token}",
- "X-GitHub-Api-Version": "2022-11-28",
+ "X-GitHub-Api-Version": "2026-03-10",
"Content-Type": "application/octet-stream",
"Content-Length": str(file_size),
}
@@ -225,7 +225,7 @@ async def gh_del_asset(
return False
if not all([asset_name, gh_user, gh_repo, gh_token]):
return False
- headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2022-11-28"}
+ headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2026-03-10"}
await hx_req(f"https://api.github.com/repos/{gh_user}/{gh_repo}/releases/assets/{asset_id}", "DELETE", headers=headers, proxy=PROXY.GITHUB, rformat="content")
logger.success(f"Deleted asset {asset_name} from GitHub Release: {release_name}, Tag: {tag_name}")
return True
@@ -236,7 +236,7 @@ async def get_username(gh_token: str):
"""Get github username from API token."""
if not gh_token:
return ""
- headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2022-11-28"}
+ headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2026-03-10"}
resp = await hx_req("https://api.github.com/user", headers=headers, proxy=PROXY.GITHUB, check_keys=["login"], check_kv={"type": "User"})
token_user = resp.get("login", "")
if DB.GH_USER and token_user != DB.GH_USER:
@@ -265,7 +265,7 @@ async def gh_create_release(
release_id = await get_release_id(tag_name, release_name, gh_user, gh_repo, gh_token)
if release_id:
return release_id
- headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2022-11-28"}
+ headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2026-03-10"}
payload = {"tag_name": tag_name, "name": release_name or tag_name, "body": body, "draft": draft, "prerelease": prerelease, "make_latest": make_latest}
resp = await hx_req(f"https://api.github.com/repos/{gh_user}/{gh_repo}/releases", "POST", headers=headers, proxy=PROXY.GITHUB, json_data=payload, check_kv={"tag_name": tag_name})
if resp.get("hx_error"):
@@ -293,7 +293,7 @@ async def gh_del_release(
if release_id == 0:
logger.warning(f"ReleaseID not found on {gh_user}/{gh_repo}. Release: {release_name}, Tag: {tag_name}")
return False
- headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2022-11-28"}
+ headers = {"Accept": "application/vnd.github+json", "Authorization": f"Bearer {gh_token}", "X-GitHub-Api-Version": "2026-03-10"}
releases = await list_releases(gh_user, gh_repo, gh_token)
release = next((x for x in releases.values() if x["id"] == release_id), {})
src/preview/github.py
@@ -14,7 +14,7 @@ from messages.utils import remove_img_tag
from networking import download_file, download_media, hx_req
from utils import nowdt
-HEADERS = {"Accept": "application/vnd.github+json", "X-GitHub-Api-Version": "2022-11-28"}
+HEADERS = {"Accept": "application/vnd.github+json", "X-GitHub-Api-Version": "2026-03-10"}
if TOKEN.GITHUB:
HEADERS["Authorization"] = f"Bearer {TOKEN.GITHUB}"
@@ -41,7 +41,7 @@ async def preview_github(client: Client, message: Message, url: str, gh_user: st
async def preview_readme(gh_user: str, gh_repo: str) -> dict:
"""Preview github readme.
- https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#get-a-repository
+ https://docs.github.com/en/rest/repos/repos?apiVersion=2026-03-10#get-a-repository
Returns:
{"texts": str, "media": list[dict]}
@@ -82,7 +82,7 @@ async def preview_readme(gh_user: str, gh_repo: str) -> dict:
async def preview_issue(gh_user: str, gh_repo: str, query: str) -> dict:
"""Preview github issue.
- https://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#get-an-issue
+ https://docs.github.com/en/rest/issues/issues?apiVersion=2026-03-10#get-an-issue
Args:
query:
@@ -94,16 +94,16 @@ async def preview_issue(gh_user: str, gh_repo: str, query: str) -> dict:
Returns:
{"texts": str, "media": list[dict]}
"""
- issue_number = query.split("#")[0].split("/")[1]
+ issue_number = query.split("#", maxsplit=1)[0].split("/")[1]
api = f"https://api.github.com/repos/{gh_user}/{gh_repo}/issues/{issue_number}"
resp = await hx_req(api, headers=HEADERS, proxy=PROXY.GITHUB, check_kv={"number": issue_number})
if error := resp.get("hx_error"):
return {"error": error}
- msg = f"๐ฆ[{gh_user}/{gh_repo}/{query.split('#')[0]}](https://github.com/{gh_user}/{gh_repo}/{query})\n"
+ msg = f"๐ฆ[{gh_user}/{gh_repo}/{query.split('#', maxsplit=1)[0]}](https://github.com/{gh_user}/{gh_repo}/{query})\n"
emoji = "๐ข" if resp["state"] == "open" else "๐ฃ"
msg += f"{emoji}**{resp['title']}**\n"
if "issuecomment" in query:
- comment_id = query.split("#issuecomment-")[-1]
+ comment_id = query.rsplit("#issuecomment-", maxsplit=1)[-1]
api = f"https://api.github.com/repos/{gh_user}/{gh_repo}/issues/comments/{comment_id}"
resp = await hx_req(api, headers=HEADERS, proxy=PROXY.GITHUB, check_kv={"id": comment_id})
issue_user = glom(resp, "user.login", default="user")