Skip to content

feat: surface missing_tool and missing_data as agent failures in failure issue comments#29804

Merged
pelikhan merged 8 commits intomainfrom
copilot/update-policy-for-missing-data-tools
May 2, 2026
Merged

feat: surface missing_tool and missing_data as agent failures in failure issue comments#29804
pelikhan merged 8 commits intomainfrom
copilot/update-policy-for-missing-data-tools

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 2, 2026

Summary

Updates the policy so that missing_tool and missing_data safe output signals are treated as agent failures and included in the agent failure issue comment, rather than being grouped into separate issues. A report-as-failure feature flag is provided to opt out of this behavior per signal type.

Changes

JavaScript (actions/setup/js/handle_agent_failure.cjs)

  • Added loadMissingToolMessages() to read missing_tool items from agent output (parallel to the existing loadMissingDataMessages())
  • Added buildMissingToolContext() to format missing tool messages for inclusion in failure reports (parallel to buildMissingDataContext())
  • Added hasMissingTool detection: when the agent emits missing_tool messages, failure handling is activated (same as report_incomplete)
  • Added hasMissingData detection: when the agent emits missing_data messages, failure handling is activated (previously only cache_memory_miss triggered this)
  • Both flags are included in the failure trigger condition check
  • Both template context objects (update-existing-issue path and create-new-issue path) now include missing_tool_context
  • Exported buildMissingToolContext for testability
  • Added missingToolReportAsFailure / missingDataReportAsFailure flags (read from GH_AW_MISSING_TOOL_REPORT_AS_FAILURE / GH_AW_MISSING_DATA_REPORT_AS_FAILURE env vars) to conditionally activate failure handling per signal type
  • buildMissingDataContext and buildMissingToolContext are only called (and injected into templates) when the respective report-as-failure flag is true — when disabled, the context is empty and the signals do not appear in failure reports at all
  • Refactored loadMissingDataMessages, loadMissingToolMessages, loadReportIncompleteMessages and their build*Context wrappers to accept an optional items parameter; main() passes agentOutputResult.items directly to eliminate redundant loadAgentOutput() re-reads

Templates

  • agent_failure_comment.md: Added {missing_tool_context} placeholder after {missing_data_context}
  • agent_failure_issue.md: Added {missing_tool_context} placeholder after {missing_data_context}

Go compiler (pkg/workflow/missing_issue_reporting.go)

  • Changed default create-issue from true to false for missing_tool and missing_data — these signals now flow to the agent failure issue comment by default, not separate issues
  • report_incomplete retains its true default (unchanged behavior)
  • Added strconv import, added defaultCreateIssue bool parameter to parseIssueReportingConfig
  • Added ReportAsFailure *string field to IssueReportingConfig — parsed for missing-tool and missing-data (default "true"), not for report-incomplete
  • Added parseReportAsFailure bool parameter to parseIssueReportingConfig to control which types support the field

Go compiler (pkg/workflow/notify_comment.go)

  • Always passes GH_AW_MISSING_TOOL_REPORT_AS_FAILURE and GH_AW_MISSING_DATA_REPORT_AS_FAILURE env vars to the conclusion job (default "true" when not configured), enabling the feature flag even for workflows that don't explicitly configure missing-tool: or missing-data:

Feature flag

The report-as-failure field on missing-tool and missing-data config sections controls whether those signals activate failure handling and appear in failure reports:

safe-outputs:
  missing-tool:
    report-as-failure: false  # restore pre-2026 behavior: signals shown in footers/issues only
  missing-data:
    report-as-failure: false
  • Default: true (new behavior)
  • Supports literal booleans and GitHub Actions expressions
  • Does not apply to report-incomplete (which always triggers failure handling)
  • When false, the signal neither triggers failure handling nor appears in the failure issue/comment context

Tests

  • Updated missing_tool_test.go: expectations for default create-issue updated from "true" to "false" in 7 test cases; added TestMissingToolReportAsFailureConfig and TestReportIncompleteDoesNotHaveReportAsFailure
  • Updated missing_data_test.go: expectations for default create-issue updated from "true" to "false" in 2 test cases
  • Added tests for buildMissingToolContext, feature flag behavior, and optional items parameter in handle_agent_failure.test.cjs

Copilot AI and others added 3 commits May 2, 2026 18:29
…ure issue comments

- Add buildMissingToolContext() and loadMissingToolMessages() to handle_agent_failure.cjs
- Add hasMissingTool and hasMissingData detection to trigger failure handling
- Include missing_tool_context in both agent failure template paths
- Update agent_failure_comment.md and agent_failure_issue.md with {missing_tool_context}
- Change default create-issue to false for missing_tool and missing_data in Go compiler
- Update tests to reflect new defaults
- Add buildMissingToolContext tests to handle_agent_failure.test.cjs

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/3512a4ca-5de8-40fe-bb70-406542dbf684

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

pelikhan commented May 2, 2026

@copilot Ensure there is a feature flag configuration that allows changing this behavior back to include comments or disabling the feature entirely.

Adds a `report-as-failure` boolean field to the `missing-tool` and `missing-data`
safe-output configuration. When set to false, these signals no longer activate
the agent failure code path (restoring pre-2026 behavior). Defaults to true.

- Add ReportAsFailure field to IssueReportingConfig
- Parse report-as-failure for missing-tool/missing-data, not report-incomplete
- Pass GH_AW_MISSING_TOOL_REPORT_AS_FAILURE and GH_AW_MISSING_DATA_REPORT_AS_FAILURE
  env vars in notify_comment.go (default: true)
- Read env vars in handle_agent_failure.cjs to conditionally activate hasMissingTool/hasMissingData
- Add Go tests: TestMissingToolReportAsFailureConfig, TestReportIncompleteDoesNotHaveReportAsFailure
- Add JS tests for feature flag behavior

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/56d2eb12-fcab-4482-a602-13b9a87c59a8

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

Copilot AI commented May 2, 2026

@copilot Ensure there is a feature flag configuration that allows changing this behavior back to include comments or disabling the feature entirely.

Added a report-as-failure field to both missing-tool and missing-data config sections (commit ff4941d).

Usage:

safe-outputs:
  missing-tool:
    report-as-failure: false  # restore old behavior: signals are shown in footers/issues but don't trigger failure handling
  missing-data:
    report-as-failure: false  # same for missing_data signals
  • Default is true (new behavior — activates the agent failure code path)
  • Set to false to revert to pre-existing behavior
  • Supports literal booleans and GitHub Actions expressions (e.g. ${{ inputs.report-as-failure }})
  • Does not apply to report-incomplete (which always triggers failure handling)

The env vars GH_AW_MISSING_TOOL_REPORT_AS_FAILURE and GH_AW_MISSING_DATA_REPORT_AS_FAILURE are always passed to the conclusion job (defaulting to "true" when the config section is absent), so the flag works even for workflows that don't explicitly configure missing-tool: or missing-data:.

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/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 (http block)

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

@pelikhan pelikhan marked this pull request as ready for review May 2, 2026 19:43
Copilot AI review requested due to automatic review settings May 2, 2026 19:43
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

Updates safe-output handling so missing_tool and missing_data signals are treated as agent failures and included in the agent-failure issue/comment flow by default, with per-signal opt-out via report-as-failure.

Changes:

  • Added missing_tool parsing/formatting to the agent failure handler and surfaced it in failure issue/comment templates.
  • Extended workflow compiler config parsing to support report-as-failure and changed default create-issue behavior for missing-tool / missing-data.
  • Passed new GH_AW_MISSING_{TOOL,DATA}_REPORT_AS_FAILURE env vars into the conclusion job and updated/added tests.
Show a summary per file
File Description
pkg/workflow/notify_comment.go Propagates missing-tool/missing-data report-as-failure flags to the conclusion job env.
pkg/workflow/missing_issue_reporting.go Adds ReportAsFailure parsing and changes default create-issue behavior for missing-tool/data.
pkg/workflow/missing_tool_test.go Updates defaults and adds coverage for report-as-failure parsing behavior.
pkg/workflow/missing_data_test.go Updates expectations for the new default create-issue behavior.
actions/setup/js/handle_agent_failure.cjs Loads/prints missing-tool info and treats missing-tool/data signals as failure triggers (gated by env flags).
actions/setup/js/handle_agent_failure.test.cjs Adds unit tests for missing-tool context generation and the new flags.
actions/setup/md/agent_failure_issue.md Adds {missing_tool_context} placeholder to failure issue template.
actions/setup/md/agent_failure_comment.md Adds {missing_tool_context} placeholder to failure comment template.
.github/workflows/tidy.lock.yml Updates locked env defaults for missing-tool issue creation.
.github/workflows/poem-bot.lock.yml Updates locked env defaults for missing-tool issue creation.
.github/workflows/hourly-ci-cleaner.lock.yml Updates locked env defaults for missing-tool issue creation.
.github/workflows/daily-subagent-optimizer.lock.yml Updates sparse-checkout / base-restore lists (includes .pi/PI.md).

Copilot's findings

Tip

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

Comments suppressed due to low confidence (1)

pkg/workflow/missing_issue_reporting.go:86

  • parseIssueReportingConfig doesn’t correctly handle the documented missing-tool: true / missing-data: true form: when configData is boolean true (or any non-nil, non-map value), the function falls through and returns an empty IssueReportingConfig with CreateIssue/TitlePrefix/Labels unset. This can lead to missing env vars and incorrect defaults. Treat true the same as the nil/defaults case, and return nil (or log+nil) for unsupported types instead of returning a partially populated config.
	// Explicitly disabled: missing-data: false
	if configBool, ok := configData.(bool); ok && !configBool {
		log.Printf("%s configuration explicitly disabled", yamlKey)
		return nil
	}

	cfg := &IssueReportingConfig{}

	// Enabled with no value: missing-data: (nil)
	if configData == nil {
		log.Printf("%s configuration enabled with defaults", yamlKey)
		createIssueStr := strconv.FormatBool(defaultCreateIssue)
		cfg.CreateIssue = &createIssueStr
		if parseReportAsFailure {
			trueVal := "true"
			cfg.ReportAsFailure = &trueVal
		}
		cfg.TitlePrefix = defaultTitle
		cfg.Labels = []string{}
		return cfg
	}

	if configMap, ok := configData.(map[string]any); ok {
		log.Printf("Parsing %s configuration from map", yamlKey)
  • Files reviewed: 12/12 changed files
  • Comments generated: 3

Comment on lines 139 to 158
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: |
.github
.agents
actions/setup
.claude
.codex
.crush
.gemini
.opencode
.pi
sparse-checkout-cone-mode: true
fetch-depth: 1
- name: Save agent config folders for base branch restoration
env:
GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github .opencode"
GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md opencode.jsonc"
GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github .opencode .pi"
GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md PI.md opencode.jsonc"
# poutine:ignore untrusted_checkout_exec
Comment on lines +1652 to +1657
// Build missing_data context
const missingDataContext = buildMissingDataContext(cacheMemoryEnabled);

// Build missing_tool context
const missingToolContext = buildMissingToolContext();

Comment on lines +633 to +676
function loadMissingToolMessages() {
try {
const { loadAgentOutput } = require("./load_agent_output.cjs");
const agentOutputResult = loadAgentOutput();

if (!agentOutputResult.success || !agentOutputResult.items) {
return [];
}

const missingToolMessages = [];
for (const item of agentOutputResult.items) {
if (item.type === "missing_tool") {
if (item.reason) {
missingToolMessages.push({
tool: item.tool || null,
reason: item.reason,
alternatives: item.alternatives || null,
});
}
}
}

return missingToolMessages;
} catch (error) {
core.warning(`Failed to load missing_tool messages: ${getErrorMessage(error)}`);
return [];
}
}

/**
* Build missing_tool context string for display in failure issues/comments.
* @returns {string} Formatted missing tool context
*/
function buildMissingToolContext() {
const missingToolMessages = loadMissingToolMessages();

if (missingToolMessages.length === 0) {
return "";
}

core.info(`Found ${missingToolMessages.length} missing_tool message(s)`);

const formattedList = formatMissingTools(missingToolMessages);

…agent failures

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 2, 2026

Commit pushed: ce315ed

🏗️ ADR gate enforced by Design Decision Gate 🏗️

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 2, 2026

🧪 Test Quality Sentinel Report

Test Quality Score: 97/100

Excellent test quality

Metric Value
New/modified tests analyzed 18
✅ Design tests (behavioral contracts) 18 (100%)
⚠️ Implementation tests (low value) 0 (0%)
Tests with error/edge cases 16 (89%)
Duplicate test clusters 0
Test inflation detected No
🚨 Coding-guideline violations 0

Test Classification Details

View all 18 test classifications
Test File Classification Issues Detected
TestMissingToolSafeOutput pkg/workflow/missing_tool_test.go ✅ Design Table-driven, 6 rows incl. disabled cases
TestGeneratePromptIncludesGitHubAWPrompt pkg/workflow/missing_tool_test.go ✅ Design Happy-path only; no error branch tested
TestMissingToolPromptGeneration pkg/workflow/missing_tool_test.go ✅ Design Happy-path only; no error branch tested
TestMissingToolNotEnabledByDefault pkg/workflow/missing_tool_test.go ✅ Design Explicitly tests "off-by-default" invariant
TestMissingToolConfigParsing pkg/workflow/missing_tool_test.go ✅ Design Table-driven, 12 rows incl. disabled/nil cases
TestMissingToolReportAsFailureConfig pkg/workflow/missing_tool_test.go ✅ Design Table-driven, 5 rows incl. expression form
TestReportIncompleteDoesNotHaveReportAsFailure pkg/workflow/missing_tool_test.go ✅ Design Verifies negative contract (field not parsed)
TestMissingDataSafeOutput pkg/workflow/missing_data_test.go ✅ Design Table-driven, 6 rows incl. disabled cases
TestMissingDataConfigParsing pkg/workflow/missing_data_test.go ✅ Design Table-driven, 5 rows incl. disabled case
buildMissingToolContext – file does not exist actions/setup/js/handle_agent_failure.test.cjs ✅ Design Edge case: missing file → empty string
buildMissingToolContext – no missing_tool items actions/setup/js/handle_agent_failure.test.cjs ✅ Design Edge case: noop items filtered out
buildMissingToolContext – tool name and reason actions/setup/js/handle_agent_failure.test.cjs ✅ Design Happy-path content assertion
buildMissingToolContext – with alternatives actions/setup/js/handle_agent_failure.test.cjs ✅ Design Variation: alternatives field included
buildMissingToolContext – skips items without reason actions/setup/js/handle_agent_failure.test.cjs ✅ Design Edge case: incomplete item filtered out
buildMissingToolContext – multiple items actions/setup/js/handle_agent_failure.test.cjs ✅ Design Multiple items all appear in output
report-as-failure – flag not set (default true) actions/setup/js/handle_agent_failure.test.cjs ✅ Design Default env behavior
report-as-failure – flag explicitly true actions/setup/js/handle_agent_failure.test.cjs ✅ Design Explicit enable path
report-as-failure – flag explicitly false (context still built) actions/setup/js/handle_agent_failure.test.cjs ✅ Design Documents that context-building is flag-independent

Minor Observations (Not Blocking)

i️ TestGeneratePromptIncludesGitHubAWPrompt and TestMissingToolPromptGeneration

Classification: Design test (behavioral contract)
Observation: These tests cover only the happy path — they assert that certain env var keys appear in the generated YAML, but do not test what happens when SafeOutputs is nil or when MarkdownContent is empty. The missing-path scenarios are implicitly covered by other tests, but a single negative assertion (e.g., confirming GH_AW_SAFE_OUTPUTS is absent when SafeOutputs == nil) would strengthen the contract.
Suggested improvement: Add a second sub-case that calls generatePrompt with data.SafeOutputs = nil and asserts the key is absent. This is a low-effort improvement, not a blocker.


Inflation Analysis

Test File Lines Added Production File Lines Added Ratio
handle_agent_failure.test.cjs 165 handle_agent_failure.cjs 107 1.54:1 ✅
missing_tool_test.go 88 missing_issue_reporting.go + notify_comment.go 51 1.72:1 ✅
missing_data_test.go 2 (minor modifications only) N/A ✅

No test inflation detected (threshold: 2:1).


Language Support

Tests analyzed:

  • 🐹 Go (*_test.go): 9 test functions — unit (//go:build !integration)
  • 🟨 JavaScript (*.test.cjs): 9 test cases (vitest)

Verdict

Check passed. 0% of new tests are implementation tests (threshold: 30%). All 18 tests enforce observable behavioral contracts. Build tags are correct on all Go test files. No mock libraries used in Go. No assertion message violations detected.


📖 Understanding Test Classifications

Design Tests (High Value) verify what the system does:

  • Assert on observable outputs, return values, or state changes
  • Cover error paths and boundary conditions
  • Would catch a behavioral regression if deleted
  • Remain valid even after internal refactoring

Implementation Tests (Low Value) verify how the system does it:

  • Assert on internal function calls (mocking internals)
  • Only test the happy path with typical inputs
  • Break during legitimate refactoring even when behavior is correct
  • Give false assurance: they pass even when the system is wrong

Goal: Shift toward tests that describe the system's behavioral contract — the promises it makes to its users and collaborators.

References: §25260257802

🧪 Test quality analysis by Test Quality Sentinel · ● 689.4K ·

@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented May 2, 2026

@copilot review all comments

…redundant IO

- Gate buildMissingDataContext / buildMissingToolContext on report-as-failure flags
  so missing signals don't appear in failure reports when the feature is disabled
- Pass agentOutputResult.items to context builders to avoid re-reading agent output
  from disk (eliminates redundant loadAgentOutput() calls in main())
- Refactor loadMissingDataMessages, loadMissingToolMessages, loadReportIncompleteMessages,
  buildMissingDataContext, buildMissingToolContext, buildReportIncompleteContext to
  accept optional items parameter with file-load fallback (preserves test compatibility)

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/2f1c08be-d547-4d90-8849-aab42b018cc5

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

Copilot AI commented May 2, 2026

@copilot review all comments

Addressed all three review comments in commit 3b22083:

  1. Lockfile change — the diff vs main only adds the two expected new env vars (GH_AW_MISSING_TOOL_REPORT_AS_FAILURE, GH_AW_MISSING_DATA_REPORT_AS_FAILURE). This is correct — make recompile picks them up from our compiler changes. No unrelated .pi/PI.md changes are in this PR's diff.

  2. Context conditional on flagbuildMissingDataContext and buildMissingToolContext are now only called (and injected into the template) when the respective report-as-failure flag is true. When report-as-failure: false, the context is an empty string, so missing signals won't appear in failure reports at all.

  3. Redundant IOloadMissingDataMessages, loadMissingToolMessages, loadReportIncompleteMessages (and their build*Context wrappers) now accept an optional items array. In main() both call sites pass agentOutputResult.items directly, eliminating the redundant loadAgentOutput() re-reads. Tests continue to work without arguments (falling back to file loading).

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/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 (http block)

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

@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented May 2, 2026

@copilot merge main and recompile

Copilot AI and others added 2 commits May 2, 2026 20:51
…-for-missing-data-tools

# Conflicts:
#	.github/workflows/daily-cache-strategy-analyzer.lock.yml
#	.github/workflows/daily-fact.lock.yml
#	.github/workflows/daily-observability-report.lock.yml
#	.github/workflows/duplicate-code-detector.lock.yml
#	.github/workflows/grumpy-reviewer.lock.yml
#	.github/workflows/issue-arborist.lock.yml
#	.github/workflows/schema-feature-coverage.lock.yml
#	.github/workflows/smoke-call-workflow.lock.yml
#	.github/workflows/smoke-codex.lock.yml

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/55156640-c0dc-49bb-ba19-981d471d3dde

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

Copilot AI commented May 2, 2026

@copilot merge main and recompile

Done. Merged origin/main (resolved 9 lock file conflicts by taking main's version), rebuilt the binary, and ran make recompile to regenerate the affected lock files. Committed as 4bea643.

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 (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, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv get --local repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } user.name (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv /ref/tags/v9 --local sv user.name (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, .object.type] | @tsv (http block)
  • https://api.github.com/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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv ns.json and pkg/workflow/data/action_pins.json...&#34; (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv tions-lock.json pkg/actionpins/data/action_pins.json; \ cp .github/aw/actions-lock.json pkg/worgit (http block)
  • https://api.github.com/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 ns.json and pkg/workflow/data/action_pins.json...&#34; (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv ithub/workflows --local p/bin/bash user.name (http block)
  • https://api.github.com/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://api.github.com/repos/docker/metadata-action/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv (http block)
  • https://api.github.com/repos/docker/setup-buildx-action/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch ithub/workflows --local /opt/hostedtoolc-f committer.email (http block)

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

@pelikhan pelikhan merged commit 9fc6415 into main May 2, 2026
@pelikhan pelikhan deleted the copilot/update-policy-for-missing-data-tools branch May 2, 2026 21: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.

3 participants