diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 18a5d196ac8..0e6f795d99c 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -27,7 +27,7 @@ # - shared/docs-server-lifecycle.md # - shared/reporting.md # -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f5a4802459021b8361db58fb67d33ae472aaffe53fceda01e56ad10d735f2c27","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6747fad76bb2d4f0fe944fc4d92885fc495ec8c1ce60b1e268fd169ac9268de7","strict":true,"agent_id":"claude"} name: "Multi-Device Docs Tester" "on": @@ -143,15 +143,15 @@ jobs: run: | bash ${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh { - cat << 'GH_AW_PROMPT_55a476ca092f3fd9_EOF' + cat << 'GH_AW_PROMPT_c81a109c621158fb_EOF' - GH_AW_PROMPT_55a476ca092f3fd9_EOF + GH_AW_PROMPT_c81a109c621158fb_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/playwright_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_55a476ca092f3fd9_EOF' + cat << 'GH_AW_PROMPT_c81a109c621158fb_EOF' Tools: create_issue, upload_asset, missing_tool, missing_data, noop @@ -185,20 +185,20 @@ jobs: {{/if}} - GH_AW_PROMPT_55a476ca092f3fd9_EOF + GH_AW_PROMPT_c81a109c621158fb_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_55a476ca092f3fd9_EOF' + cat << 'GH_AW_PROMPT_c81a109c621158fb_EOF' - GH_AW_PROMPT_55a476ca092f3fd9_EOF - cat << 'GH_AW_PROMPT_55a476ca092f3fd9_EOF' + GH_AW_PROMPT_c81a109c621158fb_EOF + cat << 'GH_AW_PROMPT_c81a109c621158fb_EOF' {{#runtime-import .github/workflows/shared/docs-server-lifecycle.md}} - GH_AW_PROMPT_55a476ca092f3fd9_EOF - cat << 'GH_AW_PROMPT_55a476ca092f3fd9_EOF' + GH_AW_PROMPT_c81a109c621158fb_EOF + cat << 'GH_AW_PROMPT_c81a109c621158fb_EOF' {{#runtime-import .github/workflows/shared/reporting.md}} - GH_AW_PROMPT_55a476ca092f3fd9_EOF - cat << 'GH_AW_PROMPT_55a476ca092f3fd9_EOF' + GH_AW_PROMPT_c81a109c621158fb_EOF + cat << 'GH_AW_PROMPT_c81a109c621158fb_EOF' {{#runtime-import .github/workflows/daily-multi-device-docs-tester.md}} - GH_AW_PROMPT_55a476ca092f3fd9_EOF + GH_AW_PROMPT_c81a109c621158fb_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 @@ -372,12 +372,12 @@ jobs: mkdir -p ${RUNNER_TEMP}/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/config.json << 'GH_AW_SAFE_OUTPUTS_CONFIG_8a777334cac793e2_EOF' + cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/config.json << 'GH_AW_SAFE_OUTPUTS_CONFIG_c93bece35bcc7ae1_EOF' {"create_issue":{"expires":48,"labels":["cookie"],"max":1},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg"],"branch":"assets/${{ github.workflow }}","max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_8a777334cac793e2_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_c93bece35bcc7ae1_EOF - name: Write Safe Outputs Tools run: | - cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/tools_meta.json << 'GH_AW_SAFE_OUTPUTS_TOOLS_META_a4806cbf9d506369_EOF' + cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/tools_meta.json << 'GH_AW_SAFE_OUTPUTS_TOOLS_META_d2eba1dc753a725e_EOF' { "description_suffixes": { "create_issue": " CONSTRAINTS: Maximum 1 issue(s) can be created. Labels [\"cookie\"] will be automatically added.", @@ -386,8 +386,8 @@ jobs: "repo_params": {}, "dynamic_tools": [] } - GH_AW_SAFE_OUTPUTS_TOOLS_META_a4806cbf9d506369_EOF - cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/validation.json << 'GH_AW_SAFE_OUTPUTS_VALIDATION_310b49412733c666_EOF' + GH_AW_SAFE_OUTPUTS_TOOLS_META_d2eba1dc753a725e_EOF + cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/validation.json << 'GH_AW_SAFE_OUTPUTS_VALIDATION_03255beea463aa05_EOF' { "create_issue": { "defaultMax": 1, @@ -489,7 +489,7 @@ jobs: } } } - GH_AW_SAFE_OUTPUTS_VALIDATION_310b49412733c666_EOF + GH_AW_SAFE_OUTPUTS_VALIDATION_03255beea463aa05_EOF node ${RUNNER_TEMP}/gh-aw/actions/generate_safe_outputs_tools.cjs - name: Generate Safe Outputs MCP Server Config id: safe-outputs-config @@ -560,7 +560,7 @@ jobs: export GH_AW_ENGINE="claude" export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.2.6' - cat << GH_AW_MCP_CONFIG_47aa03a5c9473b5a_EOF | bash ${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.sh + cat << GH_AW_MCP_CONFIG_6f62c6e537c76192_EOF | bash ${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.sh { "mcpServers": { "github": { @@ -624,7 +624,7 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_47aa03a5c9473b5a_EOF + GH_AW_MCP_CONFIG_6f62c6e537c76192_EOF - name: Download activation artifact uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 39009e85ae9..4a01f4fa7be 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -28,7 +28,7 @@ # - shared/mcp/qmd-docs.md # - shared/reporting.md # -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"618b829bbc7f47e9574ed3e1557438fae0bfc6ca453edab14981b726236131ba","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1d5cfd4f91bd8fcf04b0386757779cc674a35eb53bac2a45273366b85d389beb","strict":true,"agent_id":"claude"} name: "Documentation Unbloat" "on": @@ -187,9 +187,9 @@ jobs: run: | bash ${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh { - cat << 'GH_AW_PROMPT_3d06355205885e9a_EOF' + cat << 'GH_AW_PROMPT_2d537e0f4ae05d79_EOF' - GH_AW_PROMPT_3d06355205885e9a_EOF + GH_AW_PROMPT_2d537e0f4ae05d79_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" @@ -197,12 +197,12 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/prompts/qmd_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_3d06355205885e9a_EOF' + cat << 'GH_AW_PROMPT_2d537e0f4ae05d79_EOF' Tools: add_comment, create_pull_request, upload_asset, missing_tool, missing_data, noop - GH_AW_PROMPT_3d06355205885e9a_EOF + GH_AW_PROMPT_2d537e0f4ae05d79_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_3d06355205885e9a_EOF' + cat << 'GH_AW_PROMPT_2d537e0f4ae05d79_EOF' upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). @@ -234,23 +234,23 @@ jobs: {{/if}} - GH_AW_PROMPT_3d06355205885e9a_EOF + GH_AW_PROMPT_2d537e0f4ae05d79_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_3d06355205885e9a_EOF' + cat << 'GH_AW_PROMPT_2d537e0f4ae05d79_EOF' - GH_AW_PROMPT_3d06355205885e9a_EOF - cat << 'GH_AW_PROMPT_3d06355205885e9a_EOF' + GH_AW_PROMPT_2d537e0f4ae05d79_EOF + cat << 'GH_AW_PROMPT_2d537e0f4ae05d79_EOF' {{#runtime-import .github/workflows/shared/reporting.md}} - GH_AW_PROMPT_3d06355205885e9a_EOF - cat << 'GH_AW_PROMPT_3d06355205885e9a_EOF' + GH_AW_PROMPT_2d537e0f4ae05d79_EOF + cat << 'GH_AW_PROMPT_2d537e0f4ae05d79_EOF' {{#runtime-import .github/workflows/shared/docs-server-lifecycle.md}} - GH_AW_PROMPT_3d06355205885e9a_EOF - cat << 'GH_AW_PROMPT_3d06355205885e9a_EOF' + GH_AW_PROMPT_2d537e0f4ae05d79_EOF + cat << 'GH_AW_PROMPT_2d537e0f4ae05d79_EOF' {{#runtime-import .github/workflows/shared/mcp/qmd-docs.md}} - GH_AW_PROMPT_3d06355205885e9a_EOF - cat << 'GH_AW_PROMPT_3d06355205885e9a_EOF' + GH_AW_PROMPT_2d537e0f4ae05d79_EOF + cat << 'GH_AW_PROMPT_2d537e0f4ae05d79_EOF' {{#runtime-import .github/workflows/unbloat-docs.md}} - GH_AW_PROMPT_3d06355205885e9a_EOF + GH_AW_PROMPT_2d537e0f4ae05d79_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 @@ -466,12 +466,12 @@ jobs: mkdir -p ${RUNNER_TEMP}/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/config.json << 'GH_AW_SAFE_OUTPUTS_CONFIG_8c6de75ca9d63c58_EOF' + cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/config.json << 'GH_AW_SAFE_OUTPUTS_CONFIG_815bd590907de7b8_EOF' {"add_comment":{"max":1},"create_pull_request":{"auto_merge":true,"draft":true,"expires":48,"fallback_as_issue":false,"labels":["documentation","automation"],"max":1,"max_patch_size":1024,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS"],"protected_path_prefixes":[".github/",".agents/"],"reviewers":["copilot"],"title_prefix":"[docs] "},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg"],"branch":"assets/${{ github.workflow }}","max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_8c6de75ca9d63c58_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_815bd590907de7b8_EOF - name: Write Safe Outputs Tools run: | - cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/tools_meta.json << 'GH_AW_SAFE_OUTPUTS_TOOLS_META_2bd18671c86f4c47_EOF' + cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/tools_meta.json << 'GH_AW_SAFE_OUTPUTS_TOOLS_META_6882e4174d89c62c_EOF' { "description_suffixes": { "add_comment": " CONSTRAINTS: Maximum 1 comment(s) can be added.", @@ -481,8 +481,8 @@ jobs: "repo_params": {}, "dynamic_tools": [] } - GH_AW_SAFE_OUTPUTS_TOOLS_META_2bd18671c86f4c47_EOF - cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/validation.json << 'GH_AW_SAFE_OUTPUTS_VALIDATION_b9c0a140e277dd38_EOF' + GH_AW_SAFE_OUTPUTS_TOOLS_META_6882e4174d89c62c_EOF + cat > ${RUNNER_TEMP}/gh-aw/safeoutputs/validation.json << 'GH_AW_SAFE_OUTPUTS_VALIDATION_7e6df8d287392c6f_EOF' { "add_comment": { "defaultMax": 1, @@ -605,7 +605,7 @@ jobs: } } } - GH_AW_SAFE_OUTPUTS_VALIDATION_b9c0a140e277dd38_EOF + GH_AW_SAFE_OUTPUTS_VALIDATION_7e6df8d287392c6f_EOF node ${RUNNER_TEMP}/gh-aw/actions/generate_safe_outputs_tools.cjs - name: Generate Safe Outputs MCP Server Config id: safe-outputs-config @@ -710,7 +710,7 @@ jobs: export GH_AW_ENGINE="claude" export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.2.6' - cat << GH_AW_MCP_CONFIG_c8fb4c5e383447e3_EOF | bash ${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.sh + cat << GH_AW_MCP_CONFIG_249bb59b60f3bd35_EOF | bash ${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.sh { "mcpServers": { "github": { @@ -787,7 +787,7 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_c8fb4c5e383447e3_EOF + GH_AW_MCP_CONFIG_249bb59b60f3bd35_EOF - name: Download activation artifact uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: diff --git a/docs/src/content/docs/reference/gh-aw-as-mcp-server.md b/docs/src/content/docs/reference/gh-aw-as-mcp-server.md index f51b5b06ca3..5699746d041 100644 --- a/docs/src/content/docs/reference/gh-aw-as-mcp-server.md +++ b/docs/src/content/docs/reference/gh-aw-as-mcp-server.md @@ -75,8 +75,7 @@ Alternatively, create `.vscode/mcp.json` manually: "servers": { "github-agentic-workflows": { "command": "gh", - "args": ["aw", "mcp-server"], - "cwd": "${workspaceFolder}" + "args": ["aw", "mcp-server"] } } } diff --git a/pkg/cli/mcp_config_file.go b/pkg/cli/mcp_config_file.go index 5d652fbef85..c38484be5e9 100644 --- a/pkg/cli/mcp_config_file.go +++ b/pkg/cli/mcp_config_file.go @@ -42,7 +42,6 @@ func ensureMCPConfig(verbose bool) error { ghAwConfig := VSCodeMCPServer{ Command: "gh", Args: []string{"aw", "mcp-server"}, - CWD: "${workspaceFolder}", } // Check if file already exists diff --git a/pkg/cli/mcp_config_file_test.go b/pkg/cli/mcp_config_file_test.go index 220f11a4c59..f81a11a1a5d 100644 --- a/pkg/cli/mcp_config_file_test.go +++ b/pkg/cli/mcp_config_file_test.go @@ -37,9 +37,6 @@ func TestEnsureMCPConfig(t *testing.T) { if len(server.Args) != 2 || server.Args[0] != "aw" || server.Args[1] != "mcp-server" { t.Errorf("Expected args ['aw', 'mcp-server'], got %v", server.Args) } - if server.CWD != "${workspaceFolder}" { - t.Errorf("Expected CWD '${workspaceFolder}', got %q", server.CWD) - } }, }, { @@ -75,7 +72,6 @@ func TestEnsureMCPConfig(t *testing.T) { "github-agentic-workflows": { Command: "gh", Args: []string{"aw", "mcp-server"}, - CWD: "${workspaceFolder}", }, }, }, @@ -268,7 +264,6 @@ func TestMCPConfigJSONMarshaling(t *testing.T) { "github-agentic-workflows": { Command: "gh", Args: []string{"aw", "mcp-server"}, - CWD: "${workspaceFolder}", }, }, } @@ -302,10 +297,6 @@ func TestMCPConfigJSONMarshaling(t *testing.T) { if len(server.Args) != 2 { t.Errorf("Expected 2 args, got %d", len(server.Args)) } - - if server.CWD != "${workspaceFolder}" { - t.Errorf("Expected CWD '${workspaceFolder}', got %q", server.CWD) - } } func TestEnsureMCPConfigDirectoryCreation(t *testing.T) {