jcloude/press/api/app.py
2025-12-23 20:48:07 +08:00

42 lines
977 B
Python

# -*- coding: utf-8 -*-
# Copyright (c) 2019, JINGROW
# For license information, please see license.txt
import json
from typing import TYPE_CHECKING
import jingrow
from jcloude.jcloude.doctype.app.app import new_app
from jcloude.utils import get_current_team
if TYPE_CHECKING:
from jcloude.jcloude.doctype.app.app import App
from jcloude.jcloude.doctype.release_group.release_group import ReleaseGroup
@jingrow.whitelist()
def new(app):
if isinstance(app, str):
app = json.loads(app)
name = app["name"]
team = get_current_team()
if jingrow.db.exists("App", name):
app_pg: "App" = jingrow.get_pg("App", name)
else:
app_pg: "App" = new_app(name, app["title"])
group: "ReleaseGroup" = jingrow.get_pg("Release Group", app["group"])
source = app_pg.add_source(
group.version,
app["repository_url"],
app["branch"],
team,
app["github_installation_id"] if "github_installation_id" in app else None,
)
group.update_source(source)
return group.name