Connect lifecycle revisions to protected human review
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a10780-6d41-7952-9718-dfbc1f41236f
This commit is contained in:
parent
0e79d69e27
commit
f3b71b1521
16 changed files with 649 additions and 23 deletions
|
|
@ -90,6 +90,7 @@ class LifecycleService:
|
|||
"memo_version": payload.get("memo").version if payload.get("memo") is not None else payload.get("version"),
|
||||
"record": state,
|
||||
**({"publication_audience": payload["audience"]} if operation == "publish" else {}),
|
||||
**({"review_routing": payload["options"]} if operation == "request_review" else {}),
|
||||
"command_digest": "sha256:" + hashlib.sha256(command).hexdigest()},
|
||||
"policy_version": self.policy.version}
|
||||
observation = self.policy.check(request)
|
||||
|
|
@ -167,6 +168,20 @@ class LifecycleService:
|
|||
current()
|
||||
return result
|
||||
|
||||
def request_review(self, caller, memo_id, version, *, options, key):
|
||||
from .lifecycle_review import prepare
|
||||
options = json.loads(dumps(options))
|
||||
_, guard = self._authorize(caller, memo_id, "request_review",
|
||||
{"version": version, "options": options, "key": key})
|
||||
return prepare(self.repository, caller.attribution, memo_id, version, options, key=key, guard=guard)
|
||||
|
||||
def outcomes(self, caller, memo_id, version):
|
||||
from .lifecycle_review import outcomes
|
||||
current, _ = self._authorize(caller, memo_id, "outcomes", {"version": version})
|
||||
result = outcomes(self.repository, caller.attribution.tenant, memo_id, version)
|
||||
current()
|
||||
return result
|
||||
|
||||
def search(self, caller, *, query="", cursor=None):
|
||||
self._caller(caller)
|
||||
if not isinstance(query, str) or len(query) > 200:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue