This commit is contained in:
km-anthropic
2025-08-07 15:48:07 -07:00
parent a7759cfcd1
commit f2775d66df
4 changed files with 21 additions and 15 deletions

View File

@@ -72,7 +72,7 @@ export function prepareRunConfig(
// Build arguments in correct order:
// 1. -p flag for prompt via pipe
const claudeArgs = ["-p"];
// 2. User's custom arguments (can override defaults)
if (options.claudeArgs && options.claudeArgs.trim() !== "") {
const parsed = parseShellArgs(options.claudeArgs);
@@ -81,7 +81,7 @@ export function prepareRunConfig(
);
claudeArgs.push(...customArgs);
}
// 3. Legacy specific options for backward compatibility
// These will eventually be removed in favor of claudeArgs
if (options.allowedTools) {
@@ -108,7 +108,7 @@ export function prepareRunConfig(
if (options.model) {
claudeArgs.push("--model", options.model);
}
// 4. Base args always at the end
claudeArgs.push(...BASE_ARGS);

View File

@@ -4,7 +4,7 @@ on:
workflow_dispatch:
inputs:
prompt:
description: 'Prompt for Claude'
description: "Prompt for Claude"
required: true
type: string
@@ -13,14 +13,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Claude with custom arguments
uses: anthropics/claude-code-action@v1
with:
mode: agent
prompt: ${{ github.event.inputs.prompt }}
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
# New claudeArgs input allows direct CLI argument control
# Arguments are passed in the order: -p [claudeArgs] [legacy options] [BASE_ARGS]
claude_args: |
@@ -28,4 +28,4 @@ jobs:
--model claude-3-opus-20240229
--allowedTools Edit,Read,Write,Bash
--disallowedTools WebSearch
--system-prompt "You are a senior engineer focused on code quality"
--system-prompt "You are a senior engineer focused on code quality"

View File

@@ -41,10 +41,10 @@ export function buildAllowedToolsString(
): string {
// Tag mode needs these tools to function properly
let baseTools = [...BASE_ALLOWED_TOOLS];
// Always include the comment update tool for tag mode
baseTools.push("mcp__github_comment__update_claude_comment");
// Add commit signing tools if enabled
if (useCommitSigning) {
baseTools.push(
@@ -63,7 +63,7 @@ export function buildAllowedToolsString(
"Bash(git rm:*)",
);
}
// Add GitHub Actions MCP tools if enabled
if (includeActionsTools) {
baseTools.push(
@@ -72,7 +72,7 @@ export function buildAllowedToolsString(
"mcp__github_ci__download_job_log",
);
}
let allAllowedTools = baseTools.join(",");
if (customAllowedTools && customAllowedTools.length > 0) {
allAllowedTools = `${allAllowedTools},${customAllowedTools.join(",")}`;
@@ -86,14 +86,14 @@ export function buildDisallowedToolsString(
): string {
// Tag mode: Disable WebSearch and WebFetch by default for security
let disallowedTools = ["WebSearch", "WebFetch"];
// If user has explicitly allowed some default disallowed tools, remove them
if (allowedTools && allowedTools.length > 0) {
disallowedTools = disallowedTools.filter(
(tool) => !allowedTools.includes(tool),
);
}
let allDisallowedTools = disallowedTools.join(",");
if (customDisallowedTools && customDisallowedTools.length > 0) {
if (allDisallowedTools) {

View File

@@ -62,10 +62,16 @@ export const agentMode: Mode = {
// No default tools are enforced - Claude Code's defaults will apply
// Export user-specified tools only if provided
if (context.inputs.allowedTools.length > 0) {
core.exportVariable("INPUT_ALLOWED_TOOLS", context.inputs.allowedTools.join(","));
core.exportVariable(
"INPUT_ALLOWED_TOOLS",
context.inputs.allowedTools.join(","),
);
}
if (context.inputs.disallowedTools.length > 0) {
core.exportVariable("INPUT_DISALLOWED_TOOLS", context.inputs.disallowedTools.join(","));
core.exportVariable(
"INPUT_DISALLOWED_TOOLS",
context.inputs.disallowedTools.join(","),
);
}
// Agent mode uses a minimal MCP configuration