From b8003833cd9b9e80c5979fc36bb2aa431ad974a7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 11 Nov 2025 18:47:35 +0000 Subject: [PATCH 1/4] Initial plan From 851dd74b5d2dcaba4ea7bc50f8a83a053197d67d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 11 Nov 2025 19:08:17 +0000 Subject: [PATCH 2/4] Add workflow file links to step summary - Add MarkdownPath and LockFilePath fields to WorkflowData struct - Update CompileWorkflowData to populate these fields - Modify generateLogParsing to pass paths as environment variables (with proper YAML quoting) - Update log_parser_bootstrap.cjs to add workflow file links to step summary - Update compute_text_lazy_test.go to be more specific about what it checks for Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- .github/workflows/brave.lock.yml | 29 +++++++++++++++++- pkg/workflow/compiler.go | 6 ++++ pkg/workflow/compiler_yaml.go | 13 ++++++-- pkg/workflow/compute_text_lazy_test.go | 6 +++- pkg/workflow/js/log_parser_bootstrap.cjs | 39 +++++++++++++++++++++++- 5 files changed, 88 insertions(+), 5 deletions(-) diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml index 35d83030ac9..9670a0b7359 100644 --- a/.github/workflows/brave.lock.yml +++ b/.github/workflows/brave.lock.yml @@ -3519,6 +3519,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/brave.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/brave.lock.yml" with: script: | function runLogParser(options) { @@ -3573,7 +3575,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/pkg/workflow/compiler.go b/pkg/workflow/compiler.go index d43e10644e2..cde8383869a 100644 --- a/pkg/workflow/compiler.go +++ b/pkg/workflow/compiler.go @@ -192,6 +192,8 @@ type WorkflowData struct { ActionResolver *ActionResolver // resolver for action pins StrictMode bool // strict mode for action pinning SecretMasking *SecretMaskingConfig // secret masking configuration + MarkdownPath string // path to the source markdown workflow file + LockFilePath string // path to the compiled lock file } // BaseSafeOutputConfig holds common configuration fields for all safe output types @@ -265,6 +267,10 @@ func (c *Compiler) CompileWorkflowData(workflowData *WorkflowData, markdownPath // replace the .md extension by .lock.yml lockFile := strings.TrimSuffix(markdownPath, ".md") + ".lock.yml" + // Store the markdown and lock file paths in WorkflowData for use in step summary + workflowData.MarkdownPath = markdownPath + workflowData.LockFilePath = lockFile + log.Printf("Starting compilation: %s -> %s", markdownPath, lockFile) // Validate expression safety - check that all GitHub Actions expressions are in the allowed list diff --git a/pkg/workflow/compiler_yaml.go b/pkg/workflow/compiler_yaml.go index 57e766ee41a..4e6bf7f9334 100644 --- a/pkg/workflow/compiler_yaml.go +++ b/pkg/workflow/compiler_yaml.go @@ -302,7 +302,7 @@ func (c *Compiler) generateMainJobSteps(yaml *strings.Builder, data *WorkflowDat c.generateUploadMCPLogs(yaml) // parse agent logs for GITHUB_STEP_SUMMARY - c.generateLogParsing(yaml, engine) + c.generateLogParsing(yaml, engine, data) // Add Squid logs collection and upload steps for Copilot engine if copilotEngine, ok := engine.(*CopilotEngine); ok { @@ -375,7 +375,7 @@ func (c *Compiler) generateUploadAssets(yaml *strings.Builder) { yaml.WriteString(" if-no-files-found: ignore\n") } -func (c *Compiler) generateLogParsing(yaml *strings.Builder, engine CodingAgentEngine) { +func (c *Compiler) generateLogParsing(yaml *strings.Builder, engine CodingAgentEngine, data *WorkflowData) { parserScriptName := engine.GetLogParserScriptId() if parserScriptName == "" { // Skip log parsing if engine doesn't provide a parser @@ -396,6 +396,15 @@ func (c *Compiler) generateLogParsing(yaml *strings.Builder, engine CodingAgentE yaml.WriteString(fmt.Sprintf(" uses: %s\n", GetActionPin("actions/github-script"))) yaml.WriteString(" env:\n") fmt.Fprintf(yaml, " GH_AW_AGENT_OUTPUT: %s\n", logFileForParsing) + + // Add workflow file paths for step summary links + if data.MarkdownPath != "" { + fmt.Fprintf(yaml, " GH_AW_WORKFLOW_SOURCE: \"%s\"\n", data.MarkdownPath) + } + if data.LockFilePath != "" { + fmt.Fprintf(yaml, " GH_AW_WORKFLOW_COMPILED: \"%s\"\n", data.LockFilePath) + } + yaml.WriteString(" with:\n") yaml.WriteString(" script: |\n") diff --git a/pkg/workflow/compute_text_lazy_test.go b/pkg/workflow/compute_text_lazy_test.go index 5a4061e9229..984e5186dc0 100644 --- a/pkg/workflow/compute_text_lazy_test.go +++ b/pkg/workflow/compute_text_lazy_test.go @@ -129,7 +129,11 @@ Create a report based on repository analysis.` } lockStr := string(lockContent) - if strings.Contains(lockStr, "compute-text") { + // Check for specific indicators that compute-text step is present + // (not just the string "compute-text" which might appear in file paths) + hasComputeTextStep := strings.Contains(lockStr, "id: compute-text") || + strings.Contains(lockStr, "steps.compute-text.outputs") + if hasComputeTextStep { t.Error("Expected compiled workflow NOT to contain compute-text step") } if strings.Contains(lockStr, "text: ${{ steps.compute-text.outputs.text }}") { diff --git a/pkg/workflow/js/log_parser_bootstrap.cjs b/pkg/workflow/js/log_parser_bootstrap.cjs index a4d3dafa79a..42511aeda77 100644 --- a/pkg/workflow/js/log_parser_bootstrap.cjs +++ b/pkg/workflow/js/log_parser_bootstrap.cjs @@ -85,7 +85,44 @@ function runLogParser(options) { if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + + // Add workflow file links if available + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + + // Check if we have the necessary context for building URLs + const repository = context.payload && context.payload.repository; + const sha = context.sha; + + if (workflowSource) { + // Extract relative path from workflow source (remove leading .github/workflows/ if present) + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + + if (workflowCompiled) { + // Extract relative path from compiled workflow + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); From cf6f9970c7aa128824295bc5f5a43bef397e8e80 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 11 Nov 2025 19:42:16 +0000 Subject: [PATCH 3/4] Changes before error encountered Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- .github/workflows/archie.lock.yml | 29 ++++++++++++++++++- .github/workflows/artifacts-summary.lock.yml | 29 ++++++++++++++++++- .github/workflows/audit-workflows.lock.yml | 29 ++++++++++++++++++- .github/workflows/blog-auditor.lock.yml | 29 ++++++++++++++++++- .github/workflows/changeset.lock.yml | 29 ++++++++++++++++++- .github/workflows/ci-doctor.lock.yml | 29 ++++++++++++++++++- .../workflows/cli-version-checker.lock.yml | 29 ++++++++++++++++++- .../commit-changes-analyzer.lock.yml | 29 ++++++++++++++++++- .../workflows/copilot-agent-analysis.lock.yml | 29 ++++++++++++++++++- .../copilot-pr-nlp-analysis.lock.yml | 29 ++++++++++++++++++- .../copilot-pr-prompt-analysis.lock.yml | 29 ++++++++++++++++++- .../copilot-session-insights.lock.yml | 29 ++++++++++++++++++- .github/workflows/craft.lock.yml | 29 ++++++++++++++++++- .github/workflows/daily-code-metrics.lock.yml | 29 ++++++++++++++++++- .github/workflows/daily-doc-updater.lock.yml | 29 ++++++++++++++++++- .../workflows/daily-firewall-report.lock.yml | 29 ++++++++++++++++++- .github/workflows/daily-news.lock.yml | 29 ++++++++++++++++++- .../workflows/daily-perf-improver.lock.yml | 29 ++++++++++++++++++- .../workflows/daily-repo-chronicle.lock.yml | 29 ++++++++++++++++++- .../workflows/daily-test-improver.lock.yml | 29 ++++++++++++++++++- .../workflows/dependabot-go-checker.lock.yml | 29 ++++++++++++++++++- .github/workflows/dev-hawk.lock.yml | 29 ++++++++++++++++++- .github/workflows/dev.firewall.lock.yml | 29 ++++++++++++++++++- .github/workflows/dev.lock.yml | 29 ++++++++++++++++++- .../developer-docs-consolidator.lock.yml | 29 ++++++++++++++++++- .github/workflows/dictation-prompt.lock.yml | 29 ++++++++++++++++++- .../duplicate-code-detector.lock.yml | 29 ++++++++++++++++++- .../example-permissions-warning.lock.yml | 29 ++++++++++++++++++- .../example-workflow-analyzer.lock.yml | 29 ++++++++++++++++++- .github/workflows/firewall.lock.yml | 29 ++++++++++++++++++- .../github-mcp-tools-report.lock.yml | 29 ++++++++++++++++++- .github/workflows/go-logger.lock.yml | 29 ++++++++++++++++++- .../workflows/go-pattern-detector.lock.yml | 29 ++++++++++++++++++- .github/workflows/grumpy-reviewer.lock.yml | 29 ++++++++++++++++++- .../workflows/instructions-janitor.lock.yml | 29 ++++++++++++++++++- .github/workflows/lockfile-stats.lock.yml | 29 ++++++++++++++++++- .github/workflows/mcp-inspector.lock.yml | 29 ++++++++++++++++++- .github/workflows/mergefest.lock.yml | 29 ++++++++++++++++++- .../workflows/notion-issue-summary.lock.yml | 29 ++++++++++++++++++- .github/workflows/pdf-summary.lock.yml | 29 ++++++++++++++++++- .github/workflows/plan.lock.yml | 29 ++++++++++++++++++- .github/workflows/poem-bot.lock.yml | 29 ++++++++++++++++++- .../workflows/pr-nitpick-reviewer.lock.yml | 29 ++++++++++++++++++- .../prompt-clustering-analysis.lock.yml | 29 ++++++++++++++++++- .github/workflows/python-data-charts.lock.yml | 29 ++++++++++++++++++- .github/workflows/q.lock.yml | 29 ++++++++++++++++++- .github/workflows/repo-tree-map.lock.yml | 29 ++++++++++++++++++- .github/workflows/research.lock.yml | 29 ++++++++++++++++++- .github/workflows/safe-output-health.lock.yml | 29 ++++++++++++++++++- .../schema-consistency-checker.lock.yml | 29 ++++++++++++++++++- .github/workflows/scout.lock.yml | 29 ++++++++++++++++++- .github/workflows/security-fix-pr.lock.yml | 29 ++++++++++++++++++- .../semantic-function-refactor.lock.yml | 29 ++++++++++++++++++- .github/workflows/smoke-claude.lock.yml | 29 ++++++++++++++++++- .github/workflows/smoke-codex.lock.yml | 29 ++++++++++++++++++- .github/workflows/smoke-copilot.lock.yml | 29 ++++++++++++++++++- .github/workflows/smoke-detector.lock.yml | 29 ++++++++++++++++++- .../workflows/static-analysis-report.lock.yml | 29 ++++++++++++++++++- .github/workflows/super-linter.lock.yml | 29 ++++++++++++++++++- .../workflows/technical-doc-writer.lock.yml | 29 ++++++++++++++++++- .../test-claude-oauth-workflow.lock.yml | 29 ++++++++++++++++++- .github/workflows/test-jqschema.lock.yml | 29 ++++++++++++++++++- .../workflows/test-manual-approval.lock.yml | 29 ++++++++++++++++++- .../test-ollama-threat-detection.lock.yml | 29 ++++++++++++++++++- .github/workflows/test-post-steps.lock.yml | 29 ++++++++++++++++++- .../workflows/test-secret-masking.lock.yml | 29 ++++++++++++++++++- .github/workflows/test-svelte.lock.yml | 29 ++++++++++++++++++- .github/workflows/tidy.lock.yml | 29 ++++++++++++++++++- .github/workflows/typist.lock.yml | 29 ++++++++++++++++++- .github/workflows/unbloat-docs.lock.yml | 29 ++++++++++++++++++- .github/workflows/video-analyzer.lock.yml | 29 ++++++++++++++++++- .../workflows/weekly-issue-summary.lock.yml | 29 ++++++++++++++++++- 72 files changed, 2016 insertions(+), 72 deletions(-) diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml index 2cf99aa7745..d7b9a7031ad 100644 --- a/.github/workflows/archie.lock.yml +++ b/.github/workflows/archie.lock.yml @@ -3672,6 +3672,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/archie.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/archie.lock.yml" with: script: | function runLogParser(options) { @@ -3726,7 +3728,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index b79b494faf5..a1584b151e6 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -2540,6 +2540,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/artifacts-summary.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/artifacts-summary.lock.yml" with: script: | function runLogParser(options) { @@ -2594,7 +2596,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index 0df8f295aae..a865a208fcf 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -3572,6 +3572,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/audit-workflows.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/audit-workflows.lock.yml" with: script: | function runLogParser(options) { @@ -3626,7 +3628,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index df97453601d..c2b180adea5 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -2921,6 +2921,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/blog-auditor.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/blog-auditor.lock.yml" with: script: | function runLogParser(options) { @@ -2975,7 +2977,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index bb517f431a7..f69ae71b430 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -3211,6 +3211,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/changeset.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/changeset.lock.yml" with: script: | function runLogParser(options) { @@ -3265,7 +3267,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index caf8de533e2..03c2351c7db 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -3019,6 +3019,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/ci-doctor.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/ci-doctor.lock.yml" with: script: | function runLogParser(options) { @@ -3073,7 +3075,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index ad1cf81d2d8..0ebbe496888 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -2758,6 +2758,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/cli-version-checker.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/cli-version-checker.lock.yml" with: script: | function runLogParser(options) { @@ -2812,7 +2814,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index c8e83cb55f5..9c4de63b228 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -2852,6 +2852,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/commit-changes-analyzer.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/commit-changes-analyzer.lock.yml" with: script: | function runLogParser(options) { @@ -2906,7 +2908,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index bbcd7fe5846..aadc371792c 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -3205,6 +3205,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/copilot-agent-analysis.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/copilot-agent-analysis.lock.yml" with: script: | function runLogParser(options) { @@ -3259,7 +3261,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index caaa2c7dfdd..6d124670b89 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -3297,6 +3297,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/copilot-pr-nlp-analysis.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/copilot-pr-nlp-analysis.lock.yml" with: script: | function runLogParser(options) { @@ -3351,7 +3353,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index 93b3601d018..b7f26b67d30 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -2880,6 +2880,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/copilot-pr-prompt-analysis.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/copilot-pr-prompt-analysis.lock.yml" with: script: | function runLogParser(options) { @@ -2934,7 +2936,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index 11077985cbb..70411c47cd8 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -4120,6 +4120,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/copilot-session-insights.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/copilot-session-insights.lock.yml" with: script: | function runLogParser(options) { @@ -4174,7 +4176,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml index 4ce2148b8fc..fca6e5fab70 100644 --- a/.github/workflows/craft.lock.yml +++ b/.github/workflows/craft.lock.yml @@ -3672,6 +3672,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/craft.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/craft.lock.yml" with: script: | function runLogParser(options) { @@ -3726,7 +3728,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 750515fdae9..7a1a2bca22c 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -3181,6 +3181,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-code-metrics.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-code-metrics.lock.yml" with: script: | function runLogParser(options) { @@ -3235,7 +3237,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index c6a8268e575..1f5ef5a7b8f 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -2784,6 +2784,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-doc-updater.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-doc-updater.lock.yml" with: script: | function runLogParser(options) { @@ -2838,7 +2840,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index 824883cf471..c32452a164f 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -3295,6 +3295,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-firewall-report.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-firewall-report.lock.yml" with: script: | function runLogParser(options) { @@ -3349,7 +3351,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index b9f96c05910..1c712632406 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -3304,6 +3304,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-news.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-news.lock.yml" with: script: | function runLogParser(options) { @@ -3358,7 +3360,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/daily-perf-improver.lock.yml b/.github/workflows/daily-perf-improver.lock.yml index 23919dc38b0..97cc1060d77 100644 --- a/.github/workflows/daily-perf-improver.lock.yml +++ b/.github/workflows/daily-perf-improver.lock.yml @@ -3070,6 +3070,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-perf-improver.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-perf-improver.lock.yml" with: script: | function runLogParser(options) { @@ -3124,7 +3126,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index 794ba3b08bc..75771e50658 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -3148,6 +3148,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-repo-chronicle.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-repo-chronicle.lock.yml" with: script: | function runLogParser(options) { @@ -3202,7 +3204,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/daily-test-improver.lock.yml b/.github/workflows/daily-test-improver.lock.yml index 5cfa765d74b..939c769b405 100644 --- a/.github/workflows/daily-test-improver.lock.yml +++ b/.github/workflows/daily-test-improver.lock.yml @@ -3044,6 +3044,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-test-improver.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/daily-test-improver.lock.yml" with: script: | function runLogParser(options) { @@ -3098,7 +3100,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index a0d881bde31..b5a8272dbb6 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -2555,6 +2555,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/dependabot-go-checker.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/dependabot-go-checker.lock.yml" with: script: | function runLogParser(options) { @@ -2609,7 +2611,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml index 728ab8236df..28d97c8dedc 100644 --- a/.github/workflows/dev-hawk.lock.yml +++ b/.github/workflows/dev-hawk.lock.yml @@ -2911,6 +2911,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/dev-hawk.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/dev-hawk.lock.yml" with: script: | function runLogParser(options) { @@ -2965,7 +2967,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/dev.firewall.lock.yml b/.github/workflows/dev.firewall.lock.yml index 678a292776e..3f619ac7f20 100644 --- a/.github/workflows/dev.firewall.lock.yml +++ b/.github/workflows/dev.firewall.lock.yml @@ -687,6 +687,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/dev.firewall.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/dev.firewall.lock.yml" with: script: | function runLogParser(options) { @@ -741,7 +743,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index 3c799d4c590..f437e0f6ebb 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -2440,6 +2440,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/dev.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/dev.lock.yml" with: script: | function runLogParser(options) { @@ -2494,7 +2496,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index b5ee5c9840e..923b5f24446 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -3331,6 +3331,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/developer-docs-consolidator.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/developer-docs-consolidator.lock.yml" with: script: | function runLogParser(options) { @@ -3385,7 +3387,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index 5cbb6d6efa3..9c21e4a3f17 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -2534,6 +2534,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/dictation-prompt.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/dictation-prompt.lock.yml" with: script: | function runLogParser(options) { @@ -2588,7 +2590,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 2e27d3e83a0..7f1891e4a13 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -2613,6 +2613,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/duplicate-code-detector.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/duplicate-code-detector.lock.yml" with: script: | function runLogParser(options) { @@ -2667,7 +2669,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml index 5ae1f1ea52a..6a304eee486 100644 --- a/.github/workflows/example-permissions-warning.lock.yml +++ b/.github/workflows/example-permissions-warning.lock.yml @@ -642,6 +642,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/example-permissions-warning.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/example-permissions-warning.lock.yml" with: script: | function runLogParser(options) { @@ -696,7 +698,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index 102398bb6d3..1264cbcc837 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -2634,6 +2634,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/example-workflow-analyzer.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/example-workflow-analyzer.lock.yml" with: script: | function runLogParser(options) { @@ -2688,7 +2690,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml index dd27f21aee5..833e4a6a4ac 100644 --- a/.github/workflows/firewall.lock.yml +++ b/.github/workflows/firewall.lock.yml @@ -682,6 +682,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/firewall.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/firewall.lock.yml" with: script: | function runLogParser(options) { @@ -736,7 +738,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index ed16242d6ac..f80aaf5dd4f 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -3153,6 +3153,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/github-mcp-tools-report.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/github-mcp-tools-report.lock.yml" with: script: | function runLogParser(options) { @@ -3207,7 +3209,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index a3b1d1ff0b4..8061abfe91f 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -2903,6 +2903,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/go-logger.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/go-logger.lock.yml" with: script: | function runLogParser(options) { @@ -2957,7 +2959,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index c583c4e5004..b8068e49e0b 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -2678,6 +2678,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/go-pattern-detector.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/go-pattern-detector.lock.yml" with: script: | function runLogParser(options) { @@ -2732,7 +2734,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml index 70900af57d2..ee7b8e0de14 100644 --- a/.github/workflows/grumpy-reviewer.lock.yml +++ b/.github/workflows/grumpy-reviewer.lock.yml @@ -3574,6 +3574,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/grumpy-reviewer.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/grumpy-reviewer.lock.yml" with: script: | function runLogParser(options) { @@ -3628,7 +3630,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index 87a64df2198..93a1ff1e29a 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -2782,6 +2782,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/instructions-janitor.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/instructions-janitor.lock.yml" with: script: | function runLogParser(options) { @@ -2836,7 +2838,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 95394609742..1f450cfcd44 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -2989,6 +2989,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/lockfile-stats.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/lockfile-stats.lock.yml" with: script: | function runLogParser(options) { @@ -3043,7 +3045,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index 029c985e36d..49d902bd2d3 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -3113,6 +3113,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/mcp-inspector.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/mcp-inspector.lock.yml" with: script: | function runLogParser(options) { @@ -3167,7 +3169,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml index 97693967584..e9f6e202dc2 100644 --- a/.github/workflows/mergefest.lock.yml +++ b/.github/workflows/mergefest.lock.yml @@ -3097,6 +3097,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/mergefest.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/mergefest.lock.yml" with: script: | function runLogParser(options) { @@ -3151,7 +3153,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml index 327698e1f25..6efd29827ba 100644 --- a/.github/workflows/notion-issue-summary.lock.yml +++ b/.github/workflows/notion-issue-summary.lock.yml @@ -2398,6 +2398,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/notion-issue-summary.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/notion-issue-summary.lock.yml" with: script: | function runLogParser(options) { @@ -2452,7 +2454,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index d72a8bf49d9..92952f98659 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -3625,6 +3625,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/pdf-summary.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/pdf-summary.lock.yml" with: script: | function runLogParser(options) { @@ -3679,7 +3681,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml index 13f87fb9c55..045b1780ed6 100644 --- a/.github/workflows/plan.lock.yml +++ b/.github/workflows/plan.lock.yml @@ -3101,6 +3101,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/plan.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/plan.lock.yml" with: script: | function runLogParser(options) { @@ -3155,7 +3157,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index d9d4123db29..8bba8776005 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -3889,6 +3889,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/poem-bot.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/poem-bot.lock.yml" with: script: | function runLogParser(options) { @@ -3943,7 +3945,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml index ba22e6838f5..d6ce2905db8 100644 --- a/.github/workflows/pr-nitpick-reviewer.lock.yml +++ b/.github/workflows/pr-nitpick-reviewer.lock.yml @@ -3673,6 +3673,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/pr-nitpick-reviewer.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/pr-nitpick-reviewer.lock.yml" with: script: | function runLogParser(options) { @@ -3727,7 +3729,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index 0e137c280c3..9dd88d73acc 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -3325,6 +3325,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/prompt-clustering-analysis.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/prompt-clustering-analysis.lock.yml" with: script: | function runLogParser(options) { @@ -3379,7 +3381,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index 27da35c477b..0b02eeda4e9 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -2874,6 +2874,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/python-data-charts.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/python-data-charts.lock.yml" with: script: | function runLogParser(options) { @@ -2928,7 +2930,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml index b5e82c037f9..080c3849bfa 100644 --- a/.github/workflows/q.lock.yml +++ b/.github/workflows/q.lock.yml @@ -3957,6 +3957,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/q.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/q.lock.yml" with: script: | function runLogParser(options) { @@ -4011,7 +4013,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index 1924f64810c..f11f6deafaa 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -2570,6 +2570,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/repo-tree-map.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/repo-tree-map.lock.yml" with: script: | function runLogParser(options) { @@ -2624,7 +2626,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index 4e4d7ad2259..6c13cfb89ec 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -2504,6 +2504,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/research.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/research.lock.yml" with: script: | function runLogParser(options) { @@ -2558,7 +2560,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index 83ff4b84355..a3169c80024 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -3122,6 +3122,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/safe-output-health.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/safe-output-health.lock.yml" with: script: | function runLogParser(options) { @@ -3176,7 +3178,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index eac2d6aaf2a..dcb167bbdbb 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -2995,6 +2995,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/schema-consistency-checker.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/schema-consistency-checker.lock.yml" with: script: | function runLogParser(options) { @@ -3049,7 +3051,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index 880eba58f6d..3da7addb298 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -4069,6 +4069,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/scout.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/scout.lock.yml" with: script: | function runLogParser(options) { @@ -4123,7 +4125,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/security-fix-pr.lock.yml b/.github/workflows/security-fix-pr.lock.yml index 03abf220eb3..325c36e56f7 100644 --- a/.github/workflows/security-fix-pr.lock.yml +++ b/.github/workflows/security-fix-pr.lock.yml @@ -2730,6 +2730,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/security-fix-pr.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/security-fix-pr.lock.yml" with: script: | function runLogParser(options) { @@ -2784,7 +2786,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index 350be1248fb..6ee74e144b8 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -3083,6 +3083,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/semantic-function-refactor.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/semantic-function-refactor.lock.yml" with: script: | function runLogParser(options) { @@ -3137,7 +3139,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index 83b70861032..c803f87bcb0 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -2645,6 +2645,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/smoke-claude.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/smoke-claude.lock.yml" with: script: | function runLogParser(options) { @@ -2699,7 +2701,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 0ee56676ba3..478cdafe455 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -2354,6 +2354,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/smoke-codex.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/smoke-codex.lock.yml" with: script: | function runLogParser(options) { @@ -2408,7 +2410,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index c032701b869..7c6f2bbbf8b 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -2424,6 +2424,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/smoke-copilot.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/smoke-copilot.lock.yml" with: script: | function runLogParser(options) { @@ -2478,7 +2480,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/smoke-detector.lock.yml b/.github/workflows/smoke-detector.lock.yml index 567ff272b67..3a632f028e1 100644 --- a/.github/workflows/smoke-detector.lock.yml +++ b/.github/workflows/smoke-detector.lock.yml @@ -3711,6 +3711,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/smoke-detector.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/smoke-detector.lock.yml" with: script: | function runLogParser(options) { @@ -3765,7 +3767,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index 9048409cfaa..eac284127c4 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -3010,6 +3010,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/static-analysis-report.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/static-analysis-report.lock.yml" with: script: | function runLogParser(options) { @@ -3064,7 +3066,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 616e0f71d36..64deb73b629 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -2641,6 +2641,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/super-linter.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/super-linter.lock.yml" with: script: | function runLogParser(options) { @@ -2695,7 +2697,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index c01c324d5fd..176f550b445 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -3313,6 +3313,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/technical-doc-writer.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/technical-doc-writer.lock.yml" with: script: | function runLogParser(options) { @@ -3367,7 +3369,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/test-claude-oauth-workflow.lock.yml b/.github/workflows/test-claude-oauth-workflow.lock.yml index 0d5cbcea24c..65e62719462 100644 --- a/.github/workflows/test-claude-oauth-workflow.lock.yml +++ b/.github/workflows/test-claude-oauth-workflow.lock.yml @@ -793,6 +793,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-claude-oauth-workflow.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-claude-oauth-workflow.lock.yml" with: script: | function runLogParser(options) { @@ -847,7 +849,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/test-jqschema.lock.yml b/.github/workflows/test-jqschema.lock.yml index 7bbfe9254a3..40a38f8cc96 100644 --- a/.github/workflows/test-jqschema.lock.yml +++ b/.github/workflows/test-jqschema.lock.yml @@ -743,6 +743,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-jqschema.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-jqschema.lock.yml" with: script: | function runLogParser(options) { @@ -797,7 +799,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/test-manual-approval.lock.yml b/.github/workflows/test-manual-approval.lock.yml index 3ee3be57f70..a009abfeeb0 100644 --- a/.github/workflows/test-manual-approval.lock.yml +++ b/.github/workflows/test-manual-approval.lock.yml @@ -643,6 +643,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-manual-approval.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-manual-approval.lock.yml" with: script: | function runLogParser(options) { @@ -697,7 +699,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/test-ollama-threat-detection.lock.yml b/.github/workflows/test-ollama-threat-detection.lock.yml index 296afa2e1cb..1920b584efb 100644 --- a/.github/workflows/test-ollama-threat-detection.lock.yml +++ b/.github/workflows/test-ollama-threat-detection.lock.yml @@ -2370,6 +2370,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-ollama-threat-detection.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-ollama-threat-detection.lock.yml" with: script: | function runLogParser(options) { @@ -2424,7 +2426,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/test-post-steps.lock.yml b/.github/workflows/test-post-steps.lock.yml index e6b9bb5a1e1..af3ea1a1541 100644 --- a/.github/workflows/test-post-steps.lock.yml +++ b/.github/workflows/test-post-steps.lock.yml @@ -640,6 +640,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-post-steps.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-post-steps.lock.yml" with: script: | function runLogParser(options) { @@ -694,7 +696,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/test-secret-masking.lock.yml b/.github/workflows/test-secret-masking.lock.yml index fbd6ed096a3..d36bffad59a 100644 --- a/.github/workflows/test-secret-masking.lock.yml +++ b/.github/workflows/test-secret-masking.lock.yml @@ -652,6 +652,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-secret-masking.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-secret-masking.lock.yml" with: script: | function runLogParser(options) { @@ -706,7 +708,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/test-svelte.lock.yml b/.github/workflows/test-svelte.lock.yml index a43b5c0d682..7a9f2b0e966 100644 --- a/.github/workflows/test-svelte.lock.yml +++ b/.github/workflows/test-svelte.lock.yml @@ -682,6 +682,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-svelte.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/test-svelte.lock.yml" with: script: | function runLogParser(options) { @@ -736,7 +738,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index 6a1c641466a..57b8aa0ad97 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -2899,6 +2899,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/tidy.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/tidy.lock.yml" with: script: | function runLogParser(options) { @@ -2953,7 +2955,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index 49b11f6e71a..3f0b5d89652 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -3153,6 +3153,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/typist.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/typist.lock.yml" with: script: | function runLogParser(options) { @@ -3207,7 +3209,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index afef4dfd13a..cbe312f596a 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -3804,6 +3804,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/agent-stdio.log + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/unbloat-docs.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/unbloat-docs.lock.yml" with: script: | function runLogParser(options) { @@ -3858,7 +3860,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index 4df65499bbb..102e169d06f 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -2661,6 +2661,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/video-analyzer.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/video-analyzer.lock.yml" with: script: | function runLogParser(options) { @@ -2715,7 +2717,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index 2b16f78f268..4c76de307ab 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -3056,6 +3056,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ + GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/weekly-issue-summary.md" + GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/weekly-issue-summary.lock.yml" with: script: | function runLogParser(options) { @@ -3110,7 +3112,32 @@ jobs: } if (markdown) { core.info(markdown); - core.summary.addRaw(markdown).write(); + core.summary.addRaw(markdown); + const workflowSource = process.env.GH_AW_WORKFLOW_SOURCE; + const workflowCompiled = process.env.GH_AW_WORKFLOW_COMPILED; + if (workflowSource || workflowCompiled) { + core.summary.addRaw("\n\n---\n\n"); + core.summary.addRaw("## 📄 Workflow Files\n\n"); + const repository = context.payload && context.payload.repository; + const sha = context.sha; + if (workflowSource) { + const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + } else { + core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + } + } + if (workflowCompiled) { + const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); + if (repository && repository.html_url && sha) { + core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + } else { + core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + } + } + } + core.summary.write(); core.info(`${parserName} log parsed successfully`); } else { core.error(`Failed to parse ${parserName} log`); From bf313f298ba431f3a6cca96f34c22c0de5b5c3e1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 11 Nov 2025 21:23:34 +0000 Subject: [PATCH 4/4] Generate workflow URLs from filename and repository context instead of local file paths - Modified compiler_yaml.go to extract just the filename using filepath.Base() instead of passing full paths - Updated log_parser_bootstrap.cjs to construct URLs from repository.html_url, sha, and workflow filename - URLs now follow pattern: {repo_url}/blob/{sha}/.github/workflows/{filename} Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- .github/workflows/brave.lock.yml | 16 ++++++++-------- pkg/workflow/compiler_yaml.go | 9 ++++++--- pkg/workflow/js/log_parser_bootstrap.cjs | 18 ++++++++---------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml index 9670a0b7359..244d2d04c15 100644 --- a/.github/workflows/brave.lock.yml +++ b/.github/workflows/brave.lock.yml @@ -3519,8 +3519,8 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd env: GH_AW_AGENT_OUTPUT: /tmp/gh-aw/.copilot/logs/ - GH_AW_WORKFLOW_SOURCE: "/home/runner/work/gh-aw/gh-aw/.github/workflows/brave.md" - GH_AW_WORKFLOW_COMPILED: "/home/runner/work/gh-aw/gh-aw/.github/workflows/brave.lock.yml" + GH_AW_WORKFLOW_SOURCE: "brave.md" + GH_AW_WORKFLOW_COMPILED: "brave.lock.yml" with: script: | function runLogParser(options) { @@ -3584,19 +3584,19 @@ jobs: const repository = context.payload && context.payload.repository; const sha = context.sha; if (workflowSource) { - const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); if (repository && repository.html_url && sha) { - core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + const sourceUrl = `${repository.html_url}/blob/${sha}/.github/workflows/${workflowSource}`; + core.summary.addRaw(`- **Source**: [\`${workflowSource}\`](${sourceUrl})\n`); } else { - core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + core.summary.addRaw(`- **Source**: \`${workflowSource}\`\n`); } } if (workflowCompiled) { - const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); if (repository && repository.html_url && sha) { - core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + const compiledUrl = `${repository.html_url}/blob/${sha}/.github/workflows/${workflowCompiled}`; + core.summary.addRaw(`- **Compiled**: [\`${workflowCompiled}\`](${compiledUrl})\n`); } else { - core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + core.summary.addRaw(`- **Compiled**: \`${workflowCompiled}\`\n`); } } } diff --git a/pkg/workflow/compiler_yaml.go b/pkg/workflow/compiler_yaml.go index 4e6bf7f9334..b483df9e323 100644 --- a/pkg/workflow/compiler_yaml.go +++ b/pkg/workflow/compiler_yaml.go @@ -3,6 +3,7 @@ package workflow import ( "encoding/json" "fmt" + "path/filepath" "strings" "github.com/githubnext/gh-aw/pkg/constants" @@ -397,12 +398,14 @@ func (c *Compiler) generateLogParsing(yaml *strings.Builder, engine CodingAgentE yaml.WriteString(" env:\n") fmt.Fprintf(yaml, " GH_AW_AGENT_OUTPUT: %s\n", logFileForParsing) - // Add workflow file paths for step summary links + // Add workflow filenames for step summary links (just the filename, not full path) if data.MarkdownPath != "" { - fmt.Fprintf(yaml, " GH_AW_WORKFLOW_SOURCE: \"%s\"\n", data.MarkdownPath) + markdownFilename := filepath.Base(data.MarkdownPath) + fmt.Fprintf(yaml, " GH_AW_WORKFLOW_SOURCE: \"%s\"\n", markdownFilename) } if data.LockFilePath != "" { - fmt.Fprintf(yaml, " GH_AW_WORKFLOW_COMPILED: \"%s\"\n", data.LockFilePath) + lockFilename := filepath.Base(data.LockFilePath) + fmt.Fprintf(yaml, " GH_AW_WORKFLOW_COMPILED: \"%s\"\n", lockFilename) } yaml.WriteString(" with:\n") diff --git a/pkg/workflow/js/log_parser_bootstrap.cjs b/pkg/workflow/js/log_parser_bootstrap.cjs index 42511aeda77..e4b2f9c6f67 100644 --- a/pkg/workflow/js/log_parser_bootstrap.cjs +++ b/pkg/workflow/js/log_parser_bootstrap.cjs @@ -100,24 +100,22 @@ function runLogParser(options) { const sha = context.sha; if (workflowSource) { - // Extract relative path from workflow source (remove leading .github/workflows/ if present) - const sourcePath = workflowSource.replace(/^\.github\/workflows\//, ""); - if (repository && repository.html_url && sha) { - core.summary.addRaw(`- **Source**: [\`${sourcePath}\`](${repository.html_url}/blob/${sha}/${workflowSource})\n`); + // Construct URL: repo/blob/sha/.github/workflows/filename + const sourceUrl = `${repository.html_url}/blob/${sha}/.github/workflows/${workflowSource}`; + core.summary.addRaw(`- **Source**: [\`${workflowSource}\`](${sourceUrl})\n`); } else { - core.summary.addRaw(`- **Source**: \`${sourcePath}\`\n`); + core.summary.addRaw(`- **Source**: \`${workflowSource}\`\n`); } } if (workflowCompiled) { - // Extract relative path from compiled workflow - const compiledPath = workflowCompiled.replace(/^\.github\/workflows\//, ""); - if (repository && repository.html_url && sha) { - core.summary.addRaw(`- **Compiled**: [\`${compiledPath}\`](${repository.html_url}/blob/${sha}/${workflowCompiled})\n`); + // Construct URL: repo/blob/sha/.github/workflows/filename + const compiledUrl = `${repository.html_url}/blob/${sha}/.github/workflows/${workflowCompiled}`; + core.summary.addRaw(`- **Compiled**: [\`${workflowCompiled}\`](${compiledUrl})\n`); } else { - core.summary.addRaw(`- **Compiled**: \`${compiledPath}\`\n`); + core.summary.addRaw(`- **Compiled**: \`${workflowCompiled}\`\n`); } } }