Skip to content

Add Azure DevOps work-item safe outputs - #57796

Merged
pelikhan merged 18 commits into
mainfrom
copilot/add-safe-outputs-support
Sep 2, 2026
Merged

Add Azure DevOps work-item safe outputs#57796
pelikhan merged 18 commits into
mainfrom
copilot/add-safe-outputs-support

Conversation

Copilot AI commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Adds Azure DevOps work-item operations to the safe-output pipeline using the tool names defined by ado-aw.

Changes

  • Safe-output tools

    • Adds create-work-item, update-work-item, comment-on-work-item, assign-work-item, link-work-items, and upload-workitem-attachment.
    • Extends frontmatter parsing, schemas, validation, limits, and handler registration.
  • Azure DevOps integration

    • Executes trusted REST operations through actions/github-script.
    • Authenticates with SYSTEM_ACCESSTOKEN or AZURE_DEVOPS_EXT_PAT.
    • Supports temporary IDs for same-run work-item references.
  • Policy enforcement

    • Restricts mutations by work-item ID or area path.
    • Enforces configurable fields, tags, assignees, link types, and attachment constraints.
    • Rejects untrusted organization URLs, reserved identities, unsafe paths, symlinks, and pipeline command sequences.
  • Artifact handling

    • Stages attachments through the existing safe-output artifact channel.
    • Records Azure DevOps work items and metadata in the safe-output manifest.
safe-outputs:
  create-work-item:
    work-item-type: Task
    area-path: MyProject\Platform
  update-work-item:
    target: MyProject\Platform
    title: true
    status: true

Run: https://github.com/github/gh-aw/actions/runs/33581675739

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 14.5 AIC · ⌖ 8.74 AIC · ⊞ 8.9K ·
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 26.8 AIC · ⌖ 8.7 AIC · ⊞ 9.2K ·
Comment /souschef to run again


pr-sous-chef run: https://github.com/github/gh-aw/actions/runs/33588850668

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 20.2 AIC · ⌖ 8.61 AIC · ⊞ 9K ·
Comment /souschef to run again


Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 47.2 AIC · ⌖ 8.73 AIC · ⊞ 9.2K ·
Comment /souschef to run again

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

pelikhan commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

@copilot review the plan and continue implementation where it was not finished.

@pelikhan

pelikhan commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

@copilot mark all these safe outputs as experimental

Copilot AI and others added 3 commits September 2, 2026 00:09
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
@pelikhan

pelikhan commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

@copilot ensure appropriate level of logging. Run custom linters for extra code quality.

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

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@copilot mark all these safe outputs as experimental

Marked all six Azure DevOps safe outputs experimental in compiler warnings, schemas, tool descriptions, documentation, and the changeset, with focused warning tests in commit 3ebdd17.

@pelikhan

pelikhan commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

@copilot Mark, update all safe-outputs names and prepend ado_ as a prefix so that they read ADO, create-issue, ADO, update-issue, and so forth.

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

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@copilot ensure appropriate level of logging. Run custom linters for extra code quality.

Added debug-level Azure API lifecycle logs, standardized staged preview logging, and removed work-item titles and attachment paths from logs in c15fc12. Custom Go linters, custom ESLint, impacted tests, review, CodeQL applicability check, and secret scanning completed.

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

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Mark, update all safe-outputs names and prepend ado_ as a prefix so that they read ADO, create-issue, ADO, update-issue, and so forth.

Prefixed all Azure DevOps safe-output names in 59f0c00: frontmatter keys now use ado- and public/persisted tool names use ado_. Runtime routing, schemas, docs, errors, and tests were updated consistently.

@pelikhan
pelikhan marked this pull request as ready for review September 2, 2026 01:18
Copilot AI balanced review requested due to automatic review settings September 2, 2026 01:18

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@copilot fix https://github.com/github/gh-aw/actions/runs/33584033261/job/100105345440#step:4:1

The failure was caused by upstream commit e8150b9 (merged via main), which switched daily-caveman-optimizer.md and semantic-function-refactor.md from claude-sonnet-4.6 to claude-sonnet-5 without updating the two dependent tests. Fixed both test expectations in cdca3b0; make test-impacted-go now passes.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

⚠️ This is an automated status report. Do not assign this issue to a Copilot agent.

Counter Value
processed 10
skipped_checks_running 3
skipped_last_comment_from_sous_chef 6
skipped_cooldown 0
zero_diff_stalled 0
nudged 1
branch_update_attempts 1
formatter_pushes 0
approved_workflow_runs 0
merge_main_scheduled 0
resolved_review_threads 0
dismissed_reviews 0
Nudged PRs
Skipped details

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 26.8 AIC · ⌖ 8.7 AIC · ⊞ 9.2K ·
Comment /souschef to run again

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot
Please review the current PR state, address the outstanding review feedback and CI follow-up, refresh the branch if needed, and run the pr-finisher skill before handing back to maintainers.

  • Outstanding requested changes remain on the PR review from PR Code Quality Reviewer and a Copilot review with recommended fixes.
  • Recent current-head workflow runs were created for the latest SHA; please verify their results and fix any remaining blockers.
  • Branch refresh was requested from this run: https://github.com/github/gh-aw/actions/runs/33588850668

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 20.2 AIC · ⌖ 8.61 AIC · ⊞ 9K ·
Comment /souschef to run again

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@copilot
Please review the current PR state, address the outstanding review feedback and CI follow-up, refresh the branch if needed, and run the pr-finisher skill before handing back to maintainers....

Ran the pr-finisher pass: branch is already even with main (merge-base matches origin/main HEAD), make fmt/make lint/make test-unit/make recompile all pass locally with no diffs. All 9 review threads already have substantive replies with fixes from earlier commits (59f0c00, f1cfcdc); no new unaddressed feedback exists. I don't have thread-resolution access in this session, so the threads remain open pending a maintainer resolving them. mergeable_state: blocked appears to be due to pending review approval rather than a code issue — no CI checks have posted status yet for this HEAD (5fd6a1e). Ready for human review/approval and CI re-trigger.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot
Please review the current PR state, resolve the remaining requested review feedback, confirm CI on the latest head, and run the pr-finisher skill before handing back to maintainers.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 47.2 AIC · ⌖ 8.73 AIC · ⊞ 9.2K ·
Comment /souschef to run again

@pelikhan

pelikhan commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@copilot
Please review the current PR state, resolve the remaining requested review feedback, confirm CI on the latest head, and run the pr-finisher skill before handing back to maintainers.

  • Outst...

Investigated CI on the current head and found a real regression: registerTool in mcp_server_core.cjs was storing the raw, un-normalized tool name in .name, breaking dash/case normalization (failing JS Tests shard 3/4). Fixed in 48a8c45 by keeping the normalized name in .name and tracking the original name separately for collision detection. Also corrected a stale test using id instead of work_item_id for ado_comment_on_work_item/ado_assign_work_item to match the real tool contract. Re-verified the target schema concern from PR Code Quality Reviewer — all six Azure DevOps outputs already reference the shared azure_devops_work_item_target def (integer, "*", ID list, or area-path string), so that item is already resolved. Full make test-js (13799 tests), make lint, make fmt, make recompile, and go build ./... all pass on the pushed head.

@pelikhan

pelikhan commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

@copilot resolve the merge conflicts on this branch.

Copilot AI commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@copilot fix https://github.com/github/gh-aw/actions/runs/33588629193/job/100130840776

That run (5fd6a1e) predates the fix — already resolved in 48a8c45, which corrected the registerTool regression in mcp_server_core.cjs causing the JS Tests (shard 3/4) failure. Verified the fix is present on the current head and make test-js passes locally.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot please take another pass on this PR, refresh the branch if needed, and run the pr-finisher skill.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 7.99 AIC · ⌖ 8.68 AIC · ⊞ 9.2K ·
Comment /souschef to run again

…uts-support

# Conflicts:
#	pkg/workflow/compiler_safe_outputs_job.go
#	pkg/workflow/compiler_validators.go
#	pkg/workflow/safe_output_handlers.go
#	pkg/workflow/safe_outputs_config_extraction.go
#	pkg/workflow/safe_outputs_config_types.go
#	pkg/workflow/safe_outputs_handler_registry_test.go
#	pkg/workflow/safe_outputs_max_validation.go
#	pkg/workflow/safe_outputs_tools_computation.go
#	pkg/workflow/safe_outputs_validation_config.go

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…uts-support

# Conflicts:
#	actions/setup/js/safe_outputs_handlers.cjs
#	pkg/workflow/safe_output_validation_config_test.go
#	pkg/workflow/safe_outputs_state.go

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
@pelikhan
pelikhan merged commit 14f3297 into main Sep 2, 2026
44 checks passed
@pelikhan
pelikhan deleted the copilot/add-safe-outputs-support branch September 2, 2026 06:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants