Refactor parameters to replace RepoURL and ScriptName with ScriptURL in Copilot Action (#506)
taylor_socfortress committed
Sep 10, 2025 at 15:37 UTC
dbabbebddc25138b640fdbe3388b7a6c82f703f7
2 files changed
+19
-30
backend/app/integrations/copilot_action/routes/copilot_action.py
+10
-20
@@ -91,11 +91,9 @@ def build_velociraptor_parameters(copilot_params: dict, script_params: list) ->
91
92
env_array = []
93
94
- # Always add RepoURL and ScriptName first
95
- if "RepoURL" in copilot_params:
96
- env_array.append({"key": "RepoURL", "value": str(copilot_params["RepoURL"])})
97
- if "ScriptName" in copilot_params:
98
- env_array.append({"key": "ScriptName", "value": str(copilot_params["ScriptName"])})
94
+ # Always add ScriptURL first
95
+ if "ScriptURL" in copilot_params:
96
+ env_array.append({"key": "ScriptURL", "value": str(copilot_params["ScriptURL"])})
97
98
# Create a mapping of parameter names to their arg_position
99
param_position_map = {}
@@ -109,9 +107,9 @@ def build_velociraptor_parameters(copilot_params: dict, script_params: list) ->
107
arg_key = f"Arg{param_position_map[param_name]}"
108
env_array.append({"key": arg_key, "value": str(param_value)})
109
112
- # Add other parameters (those without arg_position and not RepoURL/ScriptName)
110
+ # Add other parameters (those without arg_position and not ScriptURL)
111
for param_name, param_value in copilot_params.items():
114
- if param_name not in param_position_map and param_name not in ["RepoURL", "ScriptName"]:
112
+ if param_name not in param_position_map and param_name not in ["ScriptURL"]:
113
env_array.append({"key": param_name, "value": str(param_value)})
114
115
return {"env": env_array}
@@ -138,15 +136,9 @@ async def validate_parameters(provided_params: dict, script_params: list) -> Non
136
required_params = {param.name for param in script_params if param.required}
137
provided_param_keys = set(provided_params.keys())
138
141
- # Add RepoURL and ScriptName as required parameters for Copilot Actions
142
- required_params.add("RepoURL")
143
- required_params.add("ScriptName")
144
- valid_param_names.add("RepoURL")
145
- valid_param_names.add("ScriptName")
146
-
147
- logger.info(f"Valid parameters: {valid_param_names}")
148
- logger.info(f"Required parameters: {required_params}")
149
- logger.info(f"Provided parameters: {provided_param_keys}")
139
+ # Add ScriptURL as required parameters for Copilot Actions
140
+ required_params.add("ScriptURL")
141
+ valid_param_names.add("ScriptURL")
142
143
# Validate: no invalid parameters
144
invalid_params = provided_param_keys - valid_param_names
@@ -371,11 +363,9 @@ async def invoke_action(body: InvokeCopilotActionBody, session: AsyncSession = D
363
# Step 3: Prepare parameters (do this once for all agents)
364
final_parameters = body.parameters or {}
365
374
- # Add the `repo_url` and the `script_name` to the parameters
366
+ # Add the `repo_url` and the to the parameters
367
if copilot_action_details.copilot_action.repo_url:
376
- final_parameters["RepoURL"] = copilot_action_details.copilot_action.repo_url
377
- if copilot_action_details.copilot_action.script_name:
378
- final_parameters["ScriptName"] = copilot_action_details.copilot_action.script_name
368
+ final_parameters["ScriptURL"] = copilot_action_details.copilot_action.repo_url
369
370
logger.info(f"Parameters after adding repo and script: {final_parameters}")
371
frontend/src/components/copilotAction/InvokeActionForm.vue
+9
-10
@@ -250,16 +250,15 @@ async function handleSubmit() {
250
251
loading.value = true
252
try {
253
- // Prepare the payload
254
- const payload: InvokeCopilotActionRequest = {
255
- copilot_action_name: action.copilot_action_name,
256
- agent_names: form.value.agent_names,
257
- parameters: {
258
- RepoURL: action.repo_url,
259
- ScriptName: action.script_name || action.copilot_action_name,
260
- ...form.value.parameters
261
- }
262
- }
253
+ // Prepare the payload
254
+ const payload: InvokeCopilotActionRequest = {
255
+ copilot_action_name: action.copilot_action_name,
256
+ agent_names: form.value.agent_names,
257
+ parameters: {
258
+ ScriptURL: action.repo_url,
259
+ ...form.value.parameters
260
+ }
261
+ }
262
263
const response = await Api.copilotAction.invokeAction(payload)
264