Drop permissions from webhook payload, fix potential vuln, simplify dispatch options
This commit is contained in:
committed by
pullfrog[bot]
parent
93d74a9bea
commit
b64721edcf
@@ -138179,12 +138179,13 @@ var JsonPayload = type({
|
||||
"agent?": AgentName.or("null"),
|
||||
"prompt?": "string",
|
||||
"event?": "object",
|
||||
"effort?": Effort,
|
||||
"web?": ToolPermissionInput,
|
||||
"search?": ToolPermissionInput,
|
||||
"write?": ToolPermissionInput,
|
||||
"bash?": BashPermissionInput
|
||||
"effort?": Effort
|
||||
});
|
||||
var COLLABORATOR_PERMISSIONS = ["admin", "maintain", "write"];
|
||||
function isCollaborator(event) {
|
||||
const perm = event.authorPermission;
|
||||
return perm !== void 0 && COLLABORATOR_PERMISSIONS.includes(perm);
|
||||
}
|
||||
var Inputs = type({
|
||||
prompt: "string",
|
||||
"effort?": Effort,
|
||||
@@ -138234,6 +138235,7 @@ function resolvePayload(repoSettings) {
|
||||
const event = isPayloadEvent(rawEvent) ? rawEvent : { trigger: "unknown" };
|
||||
const jsonAgent = jsonPayload?.agent;
|
||||
const resolvedAgent = agent2 ?? (jsonAgent !== void 0 && jsonAgent !== "null" && isAgentName(jsonAgent) ? jsonAgent : null);
|
||||
const shouldRestrict = !isCollaborator(event);
|
||||
return {
|
||||
"~pullfrog": true,
|
||||
agent: resolvedAgent,
|
||||
@@ -138243,11 +138245,12 @@ function resolvePayload(repoSettings) {
|
||||
event,
|
||||
effort: inputs.effort ?? jsonPayload?.effort ?? "auto",
|
||||
cwd: resolveCwd(inputs.cwd),
|
||||
// permissions: inputs > jsonPayload > repoSettings > fallbacks
|
||||
web: inputs.web ?? jsonPayload?.web ?? repoSettings.web ?? "enabled",
|
||||
search: inputs.search ?? jsonPayload?.search ?? repoSettings.search ?? "enabled",
|
||||
write: inputs.write ?? jsonPayload?.write ?? repoSettings.write ?? "enabled",
|
||||
bash: inputs.bash ?? jsonPayload?.bash ?? repoSettings.bash ?? "restricted"
|
||||
// permissions: inputs > repoSettings > fallbacks
|
||||
// bash is restricted for non-collaborators regardless of repoSettings
|
||||
web: inputs.web ?? repoSettings.web ?? "enabled",
|
||||
search: inputs.search ?? repoSettings.search ?? "enabled",
|
||||
write: inputs.write ?? repoSettings.write ?? "enabled",
|
||||
bash: inputs.bash ?? (shouldRestrict ? "restricted" : repoSettings.bash) ?? "restricted"
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user