From 2c48c04325a9d5305b1ebab7860eab34d159565c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 12:22:51 +0000 Subject: [PATCH 1/3] Initial plan From b25744ac92ffd8e6f30175fe144145a7437e7a10 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 12:32:52 +0000 Subject: [PATCH 2/3] feat: expand RuntimeConfig and RuntimesConfig to cover all supported runtimes and fields Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- pkg/parser/schemas/main_workflow_schema.json | 4 +- pkg/workflow/frontmatter_types.go | 45 +++++++++++++++----- pkg/workflow/runtime_detection.go | 2 +- 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/pkg/parser/schemas/main_workflow_schema.json b/pkg/parser/schemas/main_workflow_schema.json index 84792f8bef..21e9f53eaf 100644 --- a/pkg/parser/schemas/main_workflow_schema.json +++ b/pkg/parser/schemas/main_workflow_schema.json @@ -3312,7 +3312,7 @@ }, { "type": "array", - "description": "Short syntax: array of language identifiers to enable (e.g., [\"go\", \"typescript\"])", + "description": "Short syntax: array of language identifiers to enable (e.g., [\"go\", \"typescript\"]). Note: rust does not generate a runtime setup step.", "items": { "type": "string", "enum": ["go", "typescript", "python", "java", "rust", "csharp"] @@ -3445,7 +3445,7 @@ "additionalProperties": false } ], - "description": "Configuration for Rust language support in Serena code analysis. Enables Rust-specific parsing, linting, and security checks." + "description": "Configuration for Rust language support in Serena code analysis. Enables Rust-specific parsing, linting, and security checks. Note: rust does not generate a runtime setup step in GitHub Actions." }, "csharp": { "oneOf": [ diff --git a/pkg/workflow/frontmatter_types.go b/pkg/workflow/frontmatter_types.go index f95ca746f3..a9ec3ae510 100644 --- a/pkg/workflow/frontmatter_types.go +++ b/pkg/workflow/frontmatter_types.go @@ -13,19 +13,26 @@ var frontmatterTypesLog = logger.New("workflow:frontmatter_types") // RuntimeConfig represents the configuration for a single runtime type RuntimeConfig struct { - Version string `json:"version,omitempty"` // Version of the runtime (e.g., "20" for Node, "3.11" for Python) - If string `json:"if,omitempty"` // Optional GitHub Actions if condition (e.g., "hashFiles('go.mod') != ''") + Version string `json:"version,omitempty"` // Version of the runtime (e.g., "20" for Node, "3.11" for Python) + If string `json:"if,omitempty"` // Optional GitHub Actions if condition (e.g., "hashFiles('go.mod') != ''") + ActionRepo string `json:"action-repo,omitempty"` // Override the GitHub Actions repository (e.g., "actions/setup-node") + ActionVersion string `json:"action-version,omitempty"` // Override the action version (e.g., "v4") } // RuntimesConfig represents the configuration for all runtime environments // This provides type-safe access to runtime version overrides type RuntimesConfig struct { - Node *RuntimeConfig `json:"node,omitempty"` // Node.js runtime - Python *RuntimeConfig `json:"python,omitempty"` // Python runtime - Go *RuntimeConfig `json:"go,omitempty"` // Go runtime - UV *RuntimeConfig `json:"uv,omitempty"` // uv package installer - Bun *RuntimeConfig `json:"bun,omitempty"` // Bun runtime - Deno *RuntimeConfig `json:"deno,omitempty"` // Deno runtime + Node *RuntimeConfig `json:"node,omitempty"` // Node.js runtime + Python *RuntimeConfig `json:"python,omitempty"` // Python runtime + Go *RuntimeConfig `json:"go,omitempty"` // Go runtime + UV *RuntimeConfig `json:"uv,omitempty"` // uv package installer + Bun *RuntimeConfig `json:"bun,omitempty"` // Bun runtime + Deno *RuntimeConfig `json:"deno,omitempty"` // Deno runtime + Dotnet *RuntimeConfig `json:"dotnet,omitempty"` // .NET runtime + Elixir *RuntimeConfig `json:"elixir,omitempty"` // Elixir runtime + Haskell *RuntimeConfig `json:"haskell,omitempty"` // Haskell runtime + Java *RuntimeConfig `json:"java,omitempty"` // Java runtime + Ruby *RuntimeConfig `json:"ruby,omitempty"` // Ruby runtime } // PermissionsConfig represents GitHub Actions permissions configuration @@ -292,10 +299,16 @@ func parseRuntimesConfig(runtimes map[string]any) (*RuntimesConfig, error) { } } - // Create runtime config with both version and if condition + // Extract action-repo and action-version overrides (optional) + actionRepo, _ := configMap["action-repo"].(string) + actionVersion, _ := configMap["action-version"].(string) + + // Create runtime config with all fields runtimeConfig := &RuntimeConfig{ - Version: version, - If: ifCondition, + Version: version, + If: ifCondition, + ActionRepo: actionRepo, + ActionVersion: actionVersion, } // Map to specific runtime field @@ -312,6 +325,16 @@ func parseRuntimesConfig(runtimes map[string]any) (*RuntimesConfig, error) { config.Bun = runtimeConfig case "deno": config.Deno = runtimeConfig + case "dotnet": + config.Dotnet = runtimeConfig + case "elixir": + config.Elixir = runtimeConfig + case "haskell": + config.Haskell = runtimeConfig + case "java": + config.Java = runtimeConfig + case "ruby": + config.Ruby = runtimeConfig } } diff --git a/pkg/workflow/runtime_detection.go b/pkg/workflow/runtime_detection.go index d67d94c2bc..9facc53dab 100644 --- a/pkg/workflow/runtime_detection.go +++ b/pkg/workflow/runtime_detection.go @@ -202,7 +202,7 @@ func detectSerenaLanguageRuntimes(serenaConfig *SerenaToolConfig, requirements m "javascript": "node", "python": "python", "java": "java", - "rust": "rust", // rust is not in knownRuntimes yet, but including for completeness + "rust": "rust", // rust is listed as a valid Serena language but has no knownRuntime entry, so no setup step is generated "csharp": "dotnet", } From da44b6a0fa97fb83a94ce1fee4c518ee0014a143 Mon Sep 17 00:00:00 2001 From: Smoke Test Agent Date: Mon, 23 Feb 2026 12:50:30 +0000 Subject: [PATCH 3/3] test: Add smoke test file for run 22306576814 --- smoke-test-pr-push-22306576814.sh | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 smoke-test-pr-push-22306576814.sh diff --git a/smoke-test-pr-push-22306576814.sh b/smoke-test-pr-push-22306576814.sh new file mode 100644 index 0000000000..3abc73bcab --- /dev/null +++ b/smoke-test-pr-push-22306576814.sh @@ -0,0 +1,3 @@ +#!/bin/sh +# Smoke test file for PR push - run 22306576814 +echo "Smoke test push verified"