mirror of
https://github.com/arcan1s/ahriman.git
synced 2026-04-01 06:03:39 +00:00
feat: add ability to run build process to remote instances (#118)
This commit is contained in:
@@ -222,6 +222,13 @@ class BaseView(View, CorsViewMixin):
|
||||
Returns:
|
||||
str | None: authorized username if any and None otherwise (e.g. if authorization is disabled)
|
||||
"""
|
||||
try: # try to read from payload
|
||||
data: dict[str, str] = await self.request.json() # technically it is not, but we only need str here
|
||||
if (packager := data.get("packager")) is not None:
|
||||
return packager
|
||||
except Exception:
|
||||
self.request.app.logger.exception("could not extract json data for packager")
|
||||
|
||||
policy = self.request.app.get("identity")
|
||||
if policy is not None:
|
||||
identity: str = await policy.identify(self.request)
|
||||
|
||||
@@ -74,6 +74,14 @@ class AddView(BaseView):
|
||||
|
||||
repository_id = self.repository_id()
|
||||
username = await self.username()
|
||||
process_id = self.spawner.packages_add(repository_id, packages, username, patches=patches, now=True)
|
||||
process_id = self.spawner.packages_add(
|
||||
repository_id,
|
||||
packages,
|
||||
username,
|
||||
patches=patches,
|
||||
now=True,
|
||||
increment=data.get("increment", True),
|
||||
refresh=data.get("refresh", False),
|
||||
)
|
||||
|
||||
return json_response({"process_id": process_id})
|
||||
|
||||
@@ -73,6 +73,11 @@ class RebuildView(BaseView):
|
||||
|
||||
repository_id = self.repository_id()
|
||||
username = await self.username()
|
||||
process_id = self.spawner.packages_rebuild(repository_id, depends_on, username)
|
||||
process_id = self.spawner.packages_rebuild(
|
||||
repository_id,
|
||||
depends_on,
|
||||
username,
|
||||
increment=data.get("increment", True),
|
||||
)
|
||||
|
||||
return json_response({"process_id": process_id})
|
||||
|
||||
@@ -74,6 +74,14 @@ class RequestView(BaseView):
|
||||
|
||||
username = await self.username()
|
||||
repository_id = self.repository_id()
|
||||
process_id = self.spawner.packages_add(repository_id, packages, username, patches=patches, now=False)
|
||||
process_id = self.spawner.packages_add(
|
||||
repository_id,
|
||||
packages,
|
||||
username,
|
||||
patches=patches,
|
||||
now=False,
|
||||
increment=False, # no-increment doesn't work here
|
||||
refresh=False, # refresh doesn't work here
|
||||
)
|
||||
|
||||
return json_response({"process_id": process_id})
|
||||
|
||||
@@ -77,6 +77,8 @@ class UpdateView(BaseView):
|
||||
aur=data.get("aur", True),
|
||||
local=data.get("local", True),
|
||||
manual=data.get("manual", True),
|
||||
increment=data.get("increment", True),
|
||||
refresh=data.get("refresh", False),
|
||||
)
|
||||
|
||||
return json_response({"process_id": process_id})
|
||||
|
||||
Reference in New Issue
Block a user