Skip to content

Phase 4: Add AuthDefinition and RequestShape for provider-owned auth and request shaping#20473

Merged
pelikhan merged 4 commits intomainfrom
copilot/add-authdefinition-requestshape
Mar 11, 2026
Merged

Phase 4: Add AuthDefinition and RequestShape for provider-owned auth and request shaping#20473
pelikhan merged 4 commits intomainfrom
copilot/add-authdefinition-requestshape

Conversation

Copy link
Contributor

Copilot AI commented Mar 11, 2026

Non-standard backends (OAuth client-credentials, custom header injection, URL path templates, body injection) currently require bespoke Go engine implementations. This PR introduces declarative AuthDefinition and RequestShape types so these can be expressed in workflow frontmatter data.

New types

AuthDefinition — three strategies with required-field validation:

  • api-key: requires header-name
  • oauth-client-credentials: requires token-url, client-id, client-secret, header-name
  • bearer: no extra fields required

RequestShapepath-template, query (static params), body-inject (JSON key injection)

ProviderSelection extended with Auth *AuthDefinition and Request *RequestShape.

Example frontmatter

engine:
  runtime:
    id: codex
  provider:
    id: azure-openai
    model: gpt-4o
    auth:
      strategy: oauth-client-credentials
      token-url: https://auth.example.com/oauth/token
      client-id: AZURE_CLIENT_ID
      client-secret: AZURE_CLIENT_SECRET
      header-name: api-key
    request:
      path-template: /openai/deployments/{model}/chat/completions
      query:
        api-version: "2024-10-01-preview"
      body-inject:
        appKey: "{APP_KEY_SECRET}"

Changes

  • engine_definition.goAuthStrategy constants, AuthDefinition, RequestShape, ProviderSelection extension, RequiredSecretNames() method
  • engine.goInlineProviderAuth/InlineProviderRequest fields on EngineConfig; parseAuthDefinition() / parseRequestShape() helpers; ExtractEngineConfig updated; InlineProviderSecret marked deprecated (backwards-compat preserved)
  • engine_validation.govalidateEngineAuthDefinition() with per-strategy field checks; registerInlineEngineDefinition populates Provider.Auth/Provider.Request
  • compiler_orchestrator_engine.go — wires validateEngineAuthDefinition into the compilation pipeline
  • main_workflow_schema.jsonauth.strategy enum, OAuth fields, request object with path/query/body-inject
  • strict_mode_validation.gogetEngineBaseEnvVarKeys now includes AuthDefinition.RequiredSecretNames() so auth secrets are allowed in engine.env
  • engine_secrets.gosecretRequirementsFromAuthDefinition() converts an AuthDefinition to SecretRequirement entries
  • workflow_secrets.gogetSecretRequirementsForWorkflow includes auth-binding secrets for inline engine definitions
  • engine_auth_test.go (new) — 30 tests: per-strategy validation, missing-field errors, unknown strategy, strict-mode secret inclusion, backwards-compat, built-in engine regression

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://api.github.com/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 GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/infocmp -json GO111MODULE 86_64/node infocmp (http block)
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login + "/" + .name /usr/bin/git -json GO111MODULE es/.bin/node git rev-�� --show-toplevel go /usr/bin/gh ithub/workflows GO111MODULE ache/go/1.25.0/x--show-toplevel gh (http block)
    • Triggering command: /usr/bin/gh gh repo view owner/repo patc�� --show-toplevel go /usr/bin/git -json GO111MODULE h git rev-�� --show-toplevel go /usr/bin/git ck '**/*.cjs' '*git GO111MODULE ache/go/1.25.0/x--show-toplevel git (http block)
  • https://api.github.com/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 test/concurrent-image:v1.0.0 go /usr/bin/git h ../../../.pretgit GO111MODULE 64/bin/go git rev-�� --git-dir go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha ithub-script/git/ref/tags/v8 GOPROXY /home/REDACTED/.npm/_npx/b388654678d519d9/node_modules/.bin/prettier GOSUMDB GOWORK 64/bin/go prettier --ch�� scripts/**/*.js l /usr/bin/git tierignore npm 64/bin/go git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go 0/x6�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha user.name Test User /usr/bin/git -json GO111MODULE _modules/.bin/sh--show-toplevel git rev-�� --show-toplevel X6mK9KE/Es5JHOhsremote.origin.url /usr/bin/git on' --ignore-patgit GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel go /usr/bin/gh .js' --ignore-pagit GO111MODULE util.test gh api /repos/actions/upload-artifact/git/ref/tags/v7 --jq /usr/bin/gh -json GO111MODULE ache/node/24.14.--show-toplevel gh (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --show-toplevel -dwarf=false ache/node/24.14.0/x64/bin/node go1.25.0 -c=4 -nolocalimports git t-11�� k/gh-aw/gh-aw/.github/workflows/archie.md test@example.com /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha 64/bin/go sh /usr/bin/git npx prettier --wgit go 64/bin/go git conf�� --get remote.origin.url /usr/bin/git h ../../../.pretgit GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --show-toplevel go /usr/bin/git '**/*.ts' '**/*.git GO111MODULE ode git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE ache/go/1.25.0/x--show-toplevel git (http block)
  • https://api.github.com/repos/actions/download-artifact/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v8 --jq .object.sha -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD af47297c go env -json GO111MODULE k/gh-aw/gh-aw/actions/setup/js/node_modules/.bin/sh GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v8 --jq .object.sha st-1169195833/.github/workflows GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile k/gh�� g_.a GO111MODULE 0/x64/bin/node GOINSECURE GOMOD erignore ache/go/1.25.0/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v8 --jq .object.sha -json GO111MODULE Name,path,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle GOINSECURE GOMOD GOMODCACHE ache/go/1.25.0/x--jq env 4640-38454/test-2969700969 GO111MODULE 7720636/b413=> GOINSECURE GOMOD GOMODCACHE node (http block)
  • https://api.github.com/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 "prettier" --wriGOINSECURE node 64/bin/go prettier --check 64/bin/go sh -c npx prettier --wGOSUMDB go modules/@npmcli/run-script/lib/node-gyp-bin/sh -json GO111MODULE 64/bin/go go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -c=4 -nolocalimports -importcfg /tmp/go-build1867720636/b374/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/cli/access_log.go /home/REDACTED/work/gh-aw/gh-aw/pkg/cli/actionlint.go /hom�� ath ../../../.pr**/*.json ../../../**/*.js--ignore-path 64/bin/go --ignore-path ../../../.pretti-atomic 64/bin/go go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha --write scripts/**/*.js 64/bin/go .prettierignore --log-level=erro/home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/.bin/pre�� 460e3d6785efcd1c--check node /hom�� ath ../../../.pr**/*.json ../../../**/*.js--ignore-path 64/bin/go --ignore-path ../../../.pretti-o x_amd64/vet go (http block)
  • https://api.github.com/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 /tmp/gh-aw-test-runs/20260311-054640-38454/test-748860494/.github/workflows (http block)
  • https://api.github.com/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 --show-toplevel node /usr/bin/git run format:pkg-json /sh git rev-�� --show-toplevel go /usr/bin/git h ../../../.pretgit GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/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 -json GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 7720636/b375/vet.cfg GOINSECURE GOMOD GOMODCACHE node (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v7
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v7 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v7 --jq .object.sha */*.ts' '**/*.json' --ignore-path ../../../.prettierignore GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v7 --jq .object.sha */*.ts' '**/*.json' --ignore-path ../../../.prettierignore GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE l6/IGdKXXwcPBp3tfjGI4Fl/NJWfngN-2Zmz4c1IjGwO (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE a7/uvoaxXZ6SdsIYvttU1Rk/W9HY2-8hHZU_--iy4qps (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env ty-test.md GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env ty-test.md GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path "prettier" --wriGOINSECURE sh 64/bin/go "prettier" --chesh bash 64/bin/go sh -c npx prettier --wGOSUMDB go 64/bin/go -json GO111MODULE x_amd64/cgo go (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github%2Fworkflows%2Faudit-workflows.md
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node --conditions node --conditions development --experimental-import-meta-resolve --require /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/dist/workers/forks.js --stdout in/feature-branc--verify git conf�� --local --get k/gh-aw/node_modules/.bin/git k/gh-aw/gh-aw/nonode git ules/.bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build1867720636/b383/cli.test /tmp/go-build1867720636/b383/cli.test -test.testlogfile=/tmp/go-build1867720636/b383/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true **/*.ts **/*.json --ignore-path node /hom�� --write scripts/**/*.js 64/bin/go .prettierignore --log-level=erro/opt/hostedtoolcache/node/24.14.0/x64/bin/npx 64/bin/go /bin/sh (http block)
  • https://api.github.com/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 -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/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 "prettier" --wriGOSUMDB go 64/bin/go rror GO111MODULE 64/bin/go go /pre�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/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 "prettier" --wriGOSUMDB go 64/bin/go rror GO111MODULE 64/bin/go go /pre�� -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 "prettier" --wriGOSUMDB go 64/bin/go ow.json --ignoregit GO111MODULE 64/bin/go go /pre�� -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 "prettier" --wriGOSUMDB go 64/bin/go ow.json --ignoregit GO111MODULE 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/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 "prettier" --wriGOSUMDB go 64/bin/go ow.json --ignoregit GO111MODULE run-script/lib/nlog.showsignature=false go /pre�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/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 cp .github/aw/actions-lock.json pkg/workflow/data/action_pins.json; \ echo "��� Action pins syngit GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 1569528037/.github/workflows GO111MODULE tions/setup/node_modules/.bin/sh GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/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 hub/workflows GO111MODULE n-dir/sh GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go "prettier" --chenode bash 64/bin/go node /opt�� prettier --write 64/bin/go !../../../pkg/wogo --ignore-path ../../../.pretti-json go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go --check scripts/**/*.js 64/bin/go node /opt�� prettier --write /node !../../../pkg/wogit --ignore-path ../../../.prettilog.showsignature=false go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state 86_64/node -json GO111MODULE ceutil.test git 0/x6�� --show-toplevel ceutil.test /usr/bin/git ck '**/*.cjs' '*git GO111MODULE /opt/hostedtoolc--show-toplevel git (http block)
  • https://api.github.com/repos/owner/repo/contents/file.md
    • Triggering command: /tmp/go-build1867720636/b383/cli.test /tmp/go-build1867720636/b383/cli.test -test.testlogfile=/tmp/go-build1867720636/b383/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true **/*.ts **/*.json --ignore-path node /hom�� --write scripts/**/*.js 64/bin/go .prettierignore --log-level=erro/opt/hostedtoolcache/node/24.14.0/x64/bin/npx 64/bin/go /bin/sh (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name "prettier" --wriGOINSECURE sh 64/bin/go "prettier" --chesh bash 64/bin/go sh -c npx prettier --wGOSUMDB go modules/@npmcli/run-script/lib/node-gyp-bin/sh -json GO111MODULE 64/bin/go go (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch --show-toplevel go /usr/bin/git uTQsPOmzn GO111MODULE ache/node/24.14.--show-toplevel git rev-�� --show-toplevel ortcfg /usr/bin/git g/envutil/envutigit g/envutil/envutirev-parse ache/go/1.25.0/x--show-toplevel git (http block)

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


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

… request shaping (Phase 4)

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Add AuthDefinition and RequestShape for provider-owned auth Phase 4: Add AuthDefinition and RequestShape for provider-owned auth and request shaping Mar 11, 2026
@pelikhan pelikhan marked this pull request as ready for review March 11, 2026 06:01
Copilot AI review requested due to automatic review settings March 11, 2026 06:01
@pelikhan
Copy link
Contributor

@copilot lint go

Copy link
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

This PR adds support for richer inline engine provider configuration (auth strategies + request shaping) and threads those new settings through validation, strict-mode secret allowlisting, CLI secret discovery, and the workflow JSON schema.

Changes:

  • Extend inline engine config parsing to capture engine.provider.auth.* (as AuthDefinition) and engine.provider.request.* (as RequestShape).
  • Validate inline auth definitions and include their declared secret names in strict-mode engine.env allowlists and CLI “required secrets” output.
  • Update the main workflow schema and add unit tests covering parsing/validation/allowlisting regressions.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
pkg/workflow/strict_mode_validation.go Adds inline AuthDefinition secrets to the engine.env secret-override allowlist.
pkg/workflow/engine.go Parses extended inline provider auth/request blocks into structured types.
pkg/workflow/engine_validation.go Registers inline auth/request into the catalog and introduces auth validation.
pkg/workflow/engine_definition.go Introduces AuthStrategy, AuthDefinition, RequestShape, and required-secret extraction.
pkg/workflow/engine_auth_test.go Adds unit tests for parsing/validation and strict-mode allowlisting behavior.
pkg/workflow/compiler_orchestrator_engine.go Wires auth-definition validation into the compilation pipeline.
pkg/parser/schemas/main_workflow_schema.json Expands schema for inline provider auth and request configuration.
pkg/cli/workflow_secrets.go Extracts inline auth secrets from workflow frontmatter for CLI secret reporting.
pkg/cli/engine_secrets.go Converts AuthDefinition into CLI SecretRequirement entries.
Comments suppressed due to low confidence (1)

pkg/workflow/engine_validation.go:170

  • case AuthStrategyBearer, "" treats bearer and unset strategy as requiring no fields. Per AuthDefinition docs, bearer should require auth.secret, and empty strategy should only be accepted for the legacy "secret-only" case. Consider splitting these cases and (a) requiring Secret for bearer, and (b) erroring when strategy is empty but OAuth-specific fields (token-url/client-id/client-secret/header-name) are set.
	case AuthStrategyBearer, "":
		// bearer strategy and unset strategy (simple backwards-compat secret) need no extra fields.

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

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +165 to +170
// api-key requires a header-name so the caller knows where to inject the key.
if auth.HeaderName == "" {
return fmt.Errorf("engine auth: strategy 'api-key' requires 'auth.header-name' to be set (e.g. 'api-key' or 'x-api-key').\n\nSee: %s", constants.DocsEnginesURL)
}
case AuthStrategyBearer, "":
// bearer strategy and unset strategy (simple backwards-compat secret) need no extra fields.
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

validateEngineAuthDefinition enforces header-name for the api-key strategy, but it does not require auth.secret to be set. This allows configs that pass validation but cannot authenticate at runtime. Add a check that auth.Secret is non-empty for api-key (and return a clear error).

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

Suggested change
// api-key requires a header-name so the caller knows where to inject the key.
if auth.HeaderName == "" {
return fmt.Errorf("engine auth: strategy 'api-key' requires 'auth.header-name' to be set (e.g. 'api-key' or 'x-api-key').\n\nSee: %s", constants.DocsEnginesURL)
}
case AuthStrategyBearer, "":
// bearer strategy and unset strategy (simple backwards-compat secret) need no extra fields.
// api-key requires a secret value and a header-name so the caller knows where to inject the key.
if auth.Secret == "" {
return fmt.Errorf("engine auth: strategy 'api-key' requires 'auth.secret' to be set.\n\nSee: %s", constants.DocsEnginesURL)
}
if auth.HeaderName == "" {
return fmt.Errorf("engine auth: strategy 'api-key' requires 'auth.header-name' to be set (e.g. 'api-key' or 'x-api-key').\n\nSee: %s", constants.DocsEnginesURL)
}
case AuthStrategyBearer, "":
// bearer strategy and unset strategy (simple backwards-compat secret) require a secret value.
if auth.Secret == "" {
return fmt.Errorf("engine auth: strategy 'bearer' (or unset) requires 'auth.secret' to be set.\n\nSee: %s", constants.DocsEnginesURL)
}

Copilot uses AI. Check for mistakes.
Comment on lines 127 to +133
if auth, hasAuth := providerObj["auth"]; hasAuth {
if authObj, ok := auth.(map[string]any); ok {
if secret, ok := authObj["secret"].(string); ok {
config.InlineProviderSecret = secret
}
authDef := parseAuthDefinition(authObj)
config.InlineProviderAuth = authDef
// Backwards compat: expose the simple secret field directly.
config.InlineProviderSecret = authDef.Secret
}
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

When engine.provider.auth is present, ExtractEngineConfig always sets InlineProviderAuth to a non-nil (possibly empty) AuthDefinition. That makes downstream code treat auth as “explicitly configured” even when the user provided {} or only unknown keys. To avoid surprising overrides, consider only setting InlineProviderAuth when at least one recognized field is non-empty, or have registration/validation treat an all-zero AuthDefinition as nil.

Copilot uses AI. Check for mistakes.
auth.Strategy = AuthStrategyAPIKey
}
def.Provider.Auth = auth
// Keep legacy AuthBinding in sync for callers that still read def.Auth.
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

registerInlineEngineDefinition sets def.Provider.Auth whenever InlineProviderAuth is non-nil, but only updates the legacy def.Auth bindings when auth.Secret != "". For OAuth client-credentials this leaves the previous/built-in def.Auth in place, which contradicts the “keep legacy AuthBinding in sync” comment and can cause legacy callers to read the wrong secret. Consider clearing def.Auth when an AuthDefinition is provided (even if Secret is empty), or mapping OAuth refs into def.Auth with appropriate roles.

Suggested change
// Keep legacy AuthBinding in sync for callers that still read def.Auth.
// Keep legacy AuthBinding in sync for callers that still read def.Auth.
// When an AuthDefinition is provided, always reset legacy bindings to avoid
// leaking stale secrets from existing engine definitions.
def.Auth = nil

Copilot uses AI. Check for mistakes.
// Get engine-specific secrets only (no system secrets, no optional)
// System secrets will be added separately to avoid duplication
return getSecretRequirementsForEngine(engine, true, true)
reqs := getSecretRequirementsForEngine(engine, true, true)
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

The comment says this call returns “engine-specific secrets only (no system secrets, no optional)” and that system secrets are added separately, but getSecretRequirementsForEngine(engine, true, true) includes system and optional secrets. Either update the comment to match behavior or change the arguments (and rely on getSecretsRequirementsForWorkflows for system secrets).

Suggested change
reqs := getSecretRequirementsForEngine(engine, true, true)
reqs := getSecretRequirementsForEngine(engine, false, false)

Copilot uses AI. Check for mistakes.
Comment on lines +359 to +366
require.NotNil(t, def, "built-in engine %s should be in catalog", tt.engineID)

// Provider.Auth should be nil for built-in engines (they use AuthBinding only).
assert.Nil(t, def.Provider.Auth,
"built-in engine %s should have no Provider.Auth (uses legacy AuthBinding)", tt.engineID)

if tt.wantAuthSecret != "" {
require.Len(t, def.Auth, 1, "engine %s should have exactly one AuthBinding", tt.engineID)
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

require.NotNil doesn’t interpret format strings; passing "built-in engine %s..." will not substitute tt.engineID. Use require.NotNilf (or build the message with fmt.Sprintf) to keep failure output clear.

Suggested change
require.NotNil(t, def, "built-in engine %s should be in catalog", tt.engineID)
// Provider.Auth should be nil for built-in engines (they use AuthBinding only).
assert.Nil(t, def.Provider.Auth,
"built-in engine %s should have no Provider.Auth (uses legacy AuthBinding)", tt.engineID)
if tt.wantAuthSecret != "" {
require.Len(t, def.Auth, 1, "engine %s should have exactly one AuthBinding", tt.engineID)
require.NotNilf(t, def, "built-in engine %s should be in catalog", tt.engineID)
// Provider.Auth should be nil for built-in engines (they use AuthBinding only).
assert.Nil(t, def.Provider.Auth,
"built-in engine %s should have no Provider.Auth (uses legacy AuthBinding)", tt.engineID)
if tt.wantAuthSecret != "" {
require.Lenf(t, def.Auth, 1, "engine %s should have exactly one AuthBinding", tt.engineID)

Copilot uses AI. Check for mistakes.
// this AuthDefinition. Returns an empty slice when Auth is nil.
func (a *AuthDefinition) RequiredSecretNames() []string {
if a == nil {
return nil
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

Docstring says RequiredSecretNames returns an “empty slice” when the receiver is nil, but the implementation returns nil. Either adjust the comment or return []string{} to match expectations and avoid ambiguity for callers/tests.

Suggested change
return nil
return []string{}

Copilot uses AI. Check for mistakes.
@pelikhan
Copy link
Contributor

@copilot apply comments

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

Copilot AI commented Mar 11, 2026

@copilot lint go

Fixed in f624878engine.go had a formatting issue that gofmt corrected. make lint now passes with 0 issues.

…on/RequestShape PR

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

Copilot AI commented Mar 11, 2026

@copilot apply comments

All 6 reviewer comments applied in 70de7ef:

  • RequiredSecretNames returns []string{} (not nil) on nil receiver
  • api-key strategy now validates both auth.secret and auth.header-name; bearer/unset strategy validates auth.secret
  • def.Auth is always reset to nil before being (conditionally) repopulated when an AuthDefinition is provided
  • InlineProviderAuth is only set when at least one recognised field is non-empty
  • getSecretRequirementsForEngine args corrected to (false, false) to match the "no system, no optional" comment
  • require.NotNilf/require.Lenf used for format-string messages; nil-slice expectation updated; new APIKeyRequiresSecret, BearerRequiresSecret, and APIKeyValid tests added

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://api.github.com/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 GO111MODULE x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/infocmp -json GO111MODULE 64/bin/go infocmp (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 GO111MODULE /opt/hostedtoolcstatus /opt/hostedtoolcache/node/24.14.0/x64/bin/node /tmp�� erignore go /usr/bin/infocmp hub/workflows GO111MODULE /opt/hostedtoolc--show-toplevel infocmp (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 bash (http block)
  • https://api.github.com/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 GOMODCACHE go /usr/bin/git -json GO111MODULE 64/bin/go git conf�� user.email test@example.com /usr/bin/git npx prettier --cgit GOPROXY 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --show-toplevel go /usr/bin/git -json t ache/go/1.25.0/x--show-toplevel git conf�� user.name Test User /usr/bin/git -json GO111MODULE ache/go/1.25.0/x--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha user.email test@example.com /usr/bin/git --show-toplevel git /usr/bin/git git init�� ache/go/1.25.0/x--show-toplevel git /usr/bin/git --show-toplevel ache/go/1.25.0/xrev-parse /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE /usr/bin/git GOINSECURE GOMOD GOMODCACHE git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha ry=1 go che/go-build/fc/fca8e4295374edb7e2d6927949120fdbdf41e49cf7554b09cf4dfb36f0eb5f1f-d -json GO111MODULE 64/bin/go git rev-�� TOKEN&#34;; }; f get TOKEN&#34;; }; f get ache/node/24.14.0/x64/bin/node -json GO111MODULE 64/bin/go /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha --show-toplevel infocmp (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha user.email test@example.com /usr/bin/git &#34;prettier&#34; --chegit GOPROXY 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel go /usr/bin/gh 0/001/test-frontgit GO111MODULE 64/pkg/tool/linu--show-toplevel gh api /repos/actions/upload-artifact/git/ref/tags/v7 --jq /usr/bin/gh g_.a GO111MODULE ache/go/1.25.0/x--show-toplevel gh (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --get remote.origin.url /usr/bin/git ck &#39;scripts/**/*git GO111MODULE 64/bin/go git conf�� --get remote.origin.url /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha GOMODCACHE go /usr/bin/git ck &#39;scripts/**/*git GO111MODULE 64/bin/go git conf�� user.email test@example.com /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/pkg/tool/linu--show-toplevel git (http block)
  • https://api.github.com/repos/actions/download-artifact/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v8 --jq .object.sha -json GO111MODULE dAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v8 --jq .object.sha st-1572065010/.github/workflows GO111MODULE 0/x64/bin/node GOINSECURE GOMOD GOMODCACHE go t-ha�� vaScript307879620/001/test-compltest-logs/run-5 GO111MODULE 2248857/b001/gh-aw.test GOINSECURE GOMOD GOMODCACHE 2248857/b001/gh-aw.test (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v8 --jq .object.sha vaScript307879620/001/test-frontmatter-with-arrays.md GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env 2150-29766/test-530761253 resolved$ /opt/hostedtoolcache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/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 GOSUMDB GOWORK 64/bin/go GOINSECURE GOMOD GOMODCACHE go env ck &#39;scripts/**/*GOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha go1.25.0 -c=4 -nolocalimports -importcfg /tmp/go-build2642248857/b389/importcfg -pack /tmp/go-build2642248857/b389/_testmain.go env 3167231/b403/_pkGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha bb9cae41d6ab9ecbGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD erignore go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/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 /repos/actions/github-script/git/ref/tags/v8 --jq /usr/bin/git ck &#39;scripts/**/*git GO111MODULE 64/bin/go git conf�� --get remote.origin.url /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha -test.paniconexit0 -test.timeout=10m0s /usr/bin/gh -test.run=^Test -test.short=truerev-parse 64/bin/go gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq /opt/hostedtoolcache/node/24.14.0/x64/bin/node -json GO111MODULE tions/node_modul--show-toplevel node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha --show-toplevel git /usr/bin/infocmp --show-toplevel git /usr/bin/git infocmp -1 xterm-color git /usr/bin/git nPathSetup_Goroogit git /usr/bin/git git (http block)
  • https://api.github.com/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 /tmp/gh-aw-test-runs/20260311-062150-29766/test-1703565919/.github/workflows rev-parse /usr/bin/git ck &#39;scripts/**/*git GO111MODULE 64/bin/go git conf�� user.name Test User /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha runs/20260311-062439-43885/test-3386499988 go /usr/bin/gh ub/workflows GO111MODULE 64/bin/go gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq /usr/bin/infocmp 3614079962/.githgit GO111MODULE tions/setup/js/n--show-toplevel infocmp (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha /tmp/gh-aw-test-runs/20260311-062722-48543/test-1974567467/.github/workflows rev-parse /usr/bin/infocmp --show-toplevel git /usr/bin/git infocmp -1 xterm-color git /usr/bin/git --show-toplevel ache/node/24.14.rev-parse /usr/bin/git git (http block)
  • https://api.github.com/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 ository }} .cfg /opt/hostedtoolcache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 2248857/b363/vet.cfg GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha ithub/workflows/artifacts-summary.md config ache/node/24.14.0/x64/bin/node remote.origin.urgit GO111MODULE 64/bin/go git t-42�� sistency_GoAndJavaScript3894812978/001/test-empty-frontmatter.md test@example.com /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha 445122427/001 git ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet --show-toplevel go /usr/bin/git ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet rev-�� --show-toplevel git /usr/bin/git --show-toplevel ache/go/1.25.0/xrev-parse /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v7
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v7 --jq .object.sha -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env .version=f624878-dirty&#34; -o gh-aw ./cmd/gh-aw GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v7 --jq .object.sha -json GO111MODULE 64/pkg/tool/linux_amd64/cgo GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/cgo env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v7 --jq .object.sha -json GO111MODULE 64/pkg/tool/linux_amd64/cgo GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/cgo estl�� -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE XW/JOvA1Ca3IycfK/tmp/go-build2642248857/b436/_testmain.go (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go ules�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE ache/node/24.14.0/x64/bin/node GOINSECURE GOMOD GOMODCACHE sh t-17�� k/gh-aw/gh-aw/.github/workflows/agent-performance-analyzer.md GOPROXY ndor/bin/bash GOSUMDB GOWORK 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env y-test.md GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go ules�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 GO111MODULE /home/REDACTED/work/gh-aw/gh-aw/actions/setup/node_modules/.bin/node GOINSECURE GOMOD GOMODCACHE node /opt�� prettier --check ache/node/24.14.0/x64/bin/node **/*.ts **/*.json --ignore-path node (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE a7/uvoaxXZ6SdsIYremote.origin.url (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go ules�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE 0/x64/bin/node GOINSECURE GOMOD GOMODCACHE 0/x64/bin/node /opt�� prettier --check Name,path,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle **/*.ts **/*.json --ignore-path node (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go ules�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 GO111MODULE /home/REDACTED/work/gh-aw/gh-aw/actions/setup/node_modules/.bin/sh GOINSECURE GOMOD GOMODCACHE sh -c &#34;prettier&#34; --check &#39;**/*.cjs&#39; &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-path ../../../.prettierignore GOPROXY /usr/bin/git GOSUMDB GOWORK 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go ules�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 GO111MODULE /home/REDACTED/work/gh-aw/node_modules/.bin/sh l GOMOD GOMODCACHE sh -c &#34;prettier&#34; --check &#39;**/*.cjs&#39; &#39;*-errorsas GOPROXY e/git GOSUMDB GOWORK -d e/git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go ules�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 l /home/REDACTED/work/gh-aw/gh-aw/actions/node_modules/.bin/sh GOINSECURE GOMOD GOMODCACHE sh -c &#34;prettier&#34; --check &#39;**/*.cjs&#39; &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-path ../../../.prettierignore GOPROXY /usr/bin/git GOSUMDB GOWORK 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go estl�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 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 run download 5 --dir test-logs/run-5 GO111MODULE /home/REDACTED/work/node_modules/.bin/sh GOINSECURE GOMOD GOMODCACHE sh -c &#34;prettier&#34; --check &#39;**/*.cjs&#39; &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-path ../../../.prettierignore GOPROXY /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/cgo GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.0/xtest@example.com (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path GOSUMDB GOWORK 64/bin/go GOINSECURE GOMOD GOMODCACHE go m/_n�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --show-toplevel git 64/bin/go --show-toplevel go /usr/bin/git git rev-�� --show-toplevel git 64/bin/go --show-toplevel 64/pkg/tool/linu/home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/.bin/prettier /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 110507208/.github/workflows GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build3164208416/b001/cli.test /tmp/go-build3164208416/b001/cli.test -test.testlogfile=/tmp/go-build3164208416/b001/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.run=^Test -test.short=true git /usr/bin/infocmp --show-toplevel git /usr/bin/git infocmp -1 xterm-color git /usr/bin/git 2722-48543/test-git git /usr/bin/git git (http block)
  • https://api.github.com/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 -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 3977002934/.github/workflows GO111MODULE 64/bin/go 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 -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env 1179485029 GO111MODULE 0/x64/bin/node GOINSECURE GOMOD GOMODCACHE zAo1mM_/ucRcfTiI-tests (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel go (http block)
  • https://api.github.com/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 3167231/b368/_pkGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env yxVh/1JUSHYzUlTzGOSUMDB GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE 3167231/b368/imprev-parse (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq .object.sha --show-toplevel git 64/bin/go --show-toplevel 64/pkg/tool/linu-c /usr/bin/git go env h ../../../.prettierignore GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq .object.sha 3614079962/.github/workflows GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go tion�� -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/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 3167231/b338/_pkGOINSECURE GO111MODULE 64/bin/go GOINSECURE b/gh-aw/pkg/work-unsafeptr=false GOMODCACHE go env wVEi/0FWJ7dCmm-yGOSUMDB GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE 3167231/b338/impconfig (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha 3167231/b393/_pkGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env VVnE/6R06lvMfDd7-errorsas GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE 3167231/b393/imp-tests (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha 3167231/b401/_pkGOINSECURE GO111MODULE 64/bin/go GOINSECURE b/gh-aw/pkg/pars-atomic GOMODCACHE go env BSyF/Mz-EkXSYObj-errorsas GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE 3167231/b401/impconfig (http block)
  • https://api.github.com/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 3167231/b392/_pkGOINSECURE GO111MODULE 64/bin/go GOINSECURE b/gh-aw/pkg/envu-atomic GOMODCACHE go env dTEj/_5zZ7ABo6YP-errorsas GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE 3167231/b392/imp-tests (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq .object.sha --show-toplevel git 64/bin/go --show-toplevel 64/pkg/tool/linuenv /usr/bin/git go env h ../../../.prettierignore GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq .object.sha -json GO111MODULE tions/node_modules/.bin/node GOINSECURE GOMOD GOMODCACHE go tion�� -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/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 -json GO111MODULE x_amd64/vet GOINSECURE 0k/CTQ9ImCrxnVIcrev-parse GOMODCACHE x_amd64/vet env -json GO111MODULE 64/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 -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 0/x64/bin/node 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 --show-toplevel /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/asm /usr/bin/gh nt/action/git/regit go /usr/bin/git gh api /repos/actions/github-script/gitremote.origin.url --jq /usr/bin/git s/test.md go /opt/hostedtoolcache/node/24.14./repos/github/gh-aw/git/ref/tags/v2.0.0 git (http block)
  • https://api.github.com/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 -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE node /hom�� --check l clusion,workflowName,path,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle **/*.json --ignore-path ../../../.pretti--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion download (http block)
  • https://api.github.com/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 go env GOPATH); \ if coGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go GOINSECURE GOMOD GOMODCACHE erignore env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go /repos/actions/ugo --jq /usr/bin/gh git rev-�� --show-toplevel gh 64/bin/go /repos/actions/unode --jq /usr/bin/git /opt/hostedtoolc--check (http block)
  • https://api.github.com/repos/owner/repo/contents/file.md
    • Triggering command: /tmp/go-build2642248857/b383/cli.test /tmp/go-build2642248857/b383/cli.test -test.testlogfile=/tmp/go-build2642248857/b383/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)
    • Triggering command: /tmp/go-build2759270836/b383/cli.test /tmp/go-build2759270836/b383/cli.test -test.testlogfile=/tmp/go-build2759270836/b383/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true ngci-lint&#34; ]; thgo go /usr/bin/git git rev-�� --show-toplevel git 64/bin/go ; \ else \ echo &#34;golangci-lint is not installed. Run &#39;make deps-dev&#39; to install dependencies.&#34; go /usr/bin/git bash (http block)
    • Triggering command: /tmp/go-build2432763177/b001/cli.test /tmp/go-build2432763177/b001/cli.test -test.testlogfile=/tmp/go-build2432763177/b001/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true -test.run=^Test -test.short=true 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name GOSUMDB GOWORK 64/bin/go GOINSECURE GOMOD GOMODCACHE go env ck &#39;scripts/**/*GOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name --show-toplevel infocmp 64/bin/go xterm-color go /usr/bin/git git rev-�� --show-toplevel git 64/bin/go --show-toplevel go /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name es.md GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch --show-toplevel e/git x_amd64/cgo APT_SOURCESDIR Dir::Etc::sourceinit /usr/bin/git x_amd64/cgo api /repos/actions/setup-node/git/ref/tags/v4 --jq /usr/bin/git /tmp/gh-aw-test-/usr/bin/git rev-parse /usr/bin/infocmp-v git (http block)

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

@pelikhan pelikhan merged commit 9f0be69 into main Mar 11, 2026
51 checks passed
@pelikhan pelikhan deleted the copilot/add-authdefinition-requestshape branch March 11, 2026 06:57
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.

[plan] Phase 4: Add AuthDefinition and RequestShape for provider-owned auth and request shaping

3 participants