mirror of
https://github.com/revanced/revanced-api.git
synced 2025-04-30 14:44:28 +02:00

* feat: sanic framework settings * feat: initial implementation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * refactor: backend changes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix: docstrings out of place * feat: more gh endpoints * ci: fix pre-commit issues * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * feat: app info * ci: merge CI and fix triggers * chore: bump deps * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix: typing issues * chore: deps * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * refactor: clean up returns * ci: spread jobs correctly * ci: move to quodana * ci: fix issues with python modules * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * chore: pycharm config * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * refactor: improve code quality * feat: better README * ci: add quodana baseline config * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * ci: fix quodana config * ci: more qodana stuff * ci: revert qodana changes * ci: python interpreter detection is broken * feat: tests * ci: testing * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * ci: fix workflow names * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * chore: add deps * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * test: more tests * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * feat: /tools compat * feat: donations endpoint * feat: teams endpoint * fix: lock pydantic version * chore: deps * ci: docker builds * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * ci: remove coverage action and others * ci: pre-commit fixes --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
"""
|
|
This module provides endpoints for compatibility with the old API.
|
|
|
|
Routes:
|
|
- GET /<repo:str>/releases: Retrieve a list of releases for a Github repository.
|
|
- GET /<repo:str>/releases/latest: Retrieve the latest release for a Github repository.
|
|
- GET /<repo:str>/releases/tag/<tag:str>: Retrieve a specific release for a Github repository by its tag name.
|
|
- GET /<repo:str>/contributors: Retrieve a list of contributors for a Github repository.
|
|
- GET /patches/<tag:str>: Retrieve a list of patches for a given release tag.
|
|
|
|
"""
|
|
|
|
|
|
from sanic import Blueprint, Request
|
|
from sanic.response import JSONResponse, json
|
|
from sanic_ext import openapi
|
|
|
|
from api.backends.github import Github, GithubRepository
|
|
from api.models.github import *
|
|
from api.models.compat import ToolsResponseModel
|
|
from config import compat_repositories, owner
|
|
|
|
github: Blueprint = Blueprint("old")
|
|
|
|
github_backend: Github = Github()
|
|
|
|
|
|
@github.get("/tools")
|
|
@openapi.definition(
|
|
summary="Get patching tools' latest version.", response=[ToolsResponseModel]
|
|
)
|
|
async def tools(request: Request) -> JSONResponse:
|
|
"""
|
|
Retrieve a list of releases for a Github repository.
|
|
|
|
**Args:**
|
|
- repo (str): The name of the Github repository to retrieve releases for.
|
|
|
|
**Query Parameters:**
|
|
- per_page (int): The number of releases to retrieve per page.
|
|
- page (int): The page number of the releases to retrieve.
|
|
|
|
**Returns:**
|
|
- JSONResponse: A Sanic JSONResponse object containing the list of releases.
|
|
|
|
**Raises:**
|
|
- HTTPException: If there is an error retrieving the releases.
|
|
"""
|
|
|
|
data: dict[str, list] = {
|
|
"tools": await github_backend.compat_get_tools(
|
|
repositories=[
|
|
GithubRepository(owner=owner, name=repo)
|
|
for repo in compat_repositories
|
|
if repo not in ["revanced-releases-api", "revanced-website"]
|
|
],
|
|
dev=True if request.args.get("dev") else False,
|
|
)
|
|
}
|
|
|
|
return json(data, status=200)
|