From 1f0dda2996941c37e2dee6bb3e4db937eb7a2b6d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 09:08:13 +0000 Subject: [PATCH 1/7] Initial plan From 8afb3cdf9f4d0fd08775f5b87d654610e12e1da0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 09:13:01 +0000 Subject: [PATCH 2/7] Plan: Add assignees field to create_issue validation schema Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com> --- .github/workflows/security-alert-burndown.lock.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.github/workflows/security-alert-burndown.lock.yml b/.github/workflows/security-alert-burndown.lock.yml index d5d1e81676..de75327f7b 100644 --- a/.github/workflows/security-alert-burndown.lock.yml +++ b/.github/workflows/security-alert-burndown.lock.yml @@ -2211,17 +2211,4 @@ jobs: setupGlobals(core, github, context, exec, io); const { main } = require('/opt/gh-aw/actions/safe_output_handler_manager.cjs'); await main(); - - name: Assign copilot to created issues - if: steps.process_safe_outputs.outputs.issues_to_assign_copilot != '' - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 - env: - GH_TOKEN: ${{ secrets.GH_AW_AGENT_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} - ISSUES_TO_ASSIGN_COPILOT: ${{ steps.process_safe_outputs.outputs.issues_to_assign_copilot }} - with: - github-token: ${{ secrets.GH_AW_AGENT_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} - script: | - const { setupGlobals } = require('/opt/gh-aw/actions/setup_globals.cjs'); - setupGlobals(core, github, context, exec, io); - const { main } = require('/opt/gh-aw/actions/assign_copilot_to_created_issues.cjs'); - await main(); From 0ef255487e73f2a2d437dd9174cd84d5a35c65ed Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 09:16:57 +0000 Subject: [PATCH 3/7] Add assignees field to create_issue validation schema - Add missing 'assignees' field validation for create_issue type - Field accepts array of strings with max length 39 (GitHub username limit) - Enables workflows like security-alert-burndown to use assignees: copilot - All 142 workflows recompile successfully - Tests pass for handler config including assignees Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com> --- .github/workflows/agent-performance-analyzer.lock.yml | 6 ++++++ .github/workflows/breaking-change-checker.lock.yml | 6 ++++++ .github/workflows/ci-doctor.lock.yml | 6 ++++++ .github/workflows/cli-consistency-checker.lock.yml | 6 ++++++ .github/workflows/cli-version-checker.lock.yml | 6 ++++++ .github/workflows/daily-cli-performance.lock.yml | 6 ++++++ .github/workflows/daily-file-diet.lock.yml | 6 ++++++ .github/workflows/daily-multi-device-docs-tester.lock.yml | 6 ++++++ .github/workflows/daily-safe-output-optimizer.lock.yml | 6 ++++++ .github/workflows/daily-team-status.lock.yml | 6 ++++++ .github/workflows/daily-testify-uber-super-expert.lock.yml | 6 ++++++ .github/workflows/deep-report.lock.yml | 6 ++++++ .github/workflows/delight.lock.yml | 6 ++++++ .github/workflows/dependabot-go-checker.lock.yml | 6 ++++++ .github/workflows/discussion-task-miner.lock.yml | 6 ++++++ .github/workflows/duplicate-code-detector.lock.yml | 6 ++++++ .github/workflows/go-pattern-detector.lock.yml | 6 ++++++ .github/workflows/issue-arborist.lock.yml | 6 ++++++ .github/workflows/plan.lock.yml | 6 ++++++ .github/workflows/poem-bot.lock.yml | 6 ++++++ .github/workflows/secret-scanning-triage.lock.yml | 6 ++++++ .github/workflows/security-alert-burndown.lock.yml | 6 ++++++ .github/workflows/security-compliance.lock.yml | 6 ++++++ .github/workflows/semantic-function-refactor.lock.yml | 6 ++++++ .github/workflows/smoke-claude.lock.yml | 6 ++++++ .github/workflows/smoke-codex.lock.yml | 6 ++++++ .github/workflows/smoke-copilot.lock.yml | 6 ++++++ .github/workflows/smoke-opencode.lock.yml | 6 ++++++ .github/workflows/stale-repo-identifier.lock.yml | 6 ++++++ .github/workflows/step-name-alignment.lock.yml | 6 ++++++ .github/workflows/super-linter.lock.yml | 6 ++++++ .github/workflows/video-analyzer.lock.yml | 6 ++++++ .github/workflows/workflow-health-manager.lock.yml | 6 ++++++ .github/workflows/workflow-normalizer.lock.yml | 6 ++++++ .github/workflows/workflow-skill-extractor.lock.yml | 6 ++++++ pkg/workflow/safe_output_validation_config.go | 1 + 36 files changed, 211 insertions(+) diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index 89e1cb4f66..66d6a0e0e2 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -405,6 +405,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index 878ec718c8..67de0255e4 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -278,6 +278,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index a1cb717b16..c7a031a405 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -338,6 +338,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index 086c96e32e..72d2929218 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -277,6 +277,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 64961cf07a..192c301639 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -302,6 +302,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml index d47be00d10..707c8cc223 100644 --- a/.github/workflows/daily-cli-performance.lock.yml +++ b/.github/workflows/daily-cli-performance.lock.yml @@ -326,6 +326,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index 323569e360..fc0ed2b2a7 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -284,6 +284,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 334aef34eb..9eca19576f 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -310,6 +310,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml index ad13bc7994..b02e19fa9f 100644 --- a/.github/workflows/daily-safe-output-optimizer.lock.yml +++ b/.github/workflows/daily-safe-output-optimizer.lock.yml @@ -326,6 +326,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index d3a47ae38c..585593dd91 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -290,6 +290,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml index 7bc8d5981e..d7a038208f 100644 --- a/.github/workflows/daily-testify-uber-super-expert.lock.yml +++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml @@ -294,6 +294,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 59fce9a00d..4b7545be5e 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -405,6 +405,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml index 81501b47eb..276b45279c 100644 --- a/.github/workflows/delight.lock.yml +++ b/.github/workflows/delight.lock.yml @@ -347,6 +347,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index 1165d71478..ef81c23fe3 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -316,6 +316,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/discussion-task-miner.lock.yml b/.github/workflows/discussion-task-miner.lock.yml index db1497d52b..ad86964232 100644 --- a/.github/workflows/discussion-task-miner.lock.yml +++ b/.github/workflows/discussion-task-miner.lock.yml @@ -330,6 +330,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index a656a98d55..80498e9960 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -283,6 +283,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index be381d60f5..4dee2cb545 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -289,6 +289,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 8fd52ebd79..0ebaae4107 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -374,6 +374,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml index 4a50a0167b..2f06843b79 100644 --- a/.github/workflows/plan.lock.yml +++ b/.github/workflows/plan.lock.yml @@ -368,6 +368,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index cb9a7ac4fc..1f57b7f083 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -720,6 +720,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/secret-scanning-triage.lock.yml b/.github/workflows/secret-scanning-triage.lock.yml index 501f380034..45d317163b 100644 --- a/.github/workflows/secret-scanning-triage.lock.yml +++ b/.github/workflows/secret-scanning-triage.lock.yml @@ -368,6 +368,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/security-alert-burndown.lock.yml b/.github/workflows/security-alert-burndown.lock.yml index de75327f7b..02e0c94217 100644 --- a/.github/workflows/security-alert-burndown.lock.yml +++ b/.github/workflows/security-alert-burndown.lock.yml @@ -446,6 +446,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index 1b9134d356..779c22849c 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -292,6 +292,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index 5e1acd2372..14d5c73522 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -325,6 +325,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index ef8bc5535f..cb8e638913 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -417,6 +417,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 8efe5ca81c..abaa1c5e95 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -453,6 +453,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index 850399447f..a9092ee775 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -443,6 +443,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/smoke-opencode.lock.yml b/.github/workflows/smoke-opencode.lock.yml index 17eeacb81a..aed751207c 100644 --- a/.github/workflows/smoke-opencode.lock.yml +++ b/.github/workflows/smoke-opencode.lock.yml @@ -379,6 +379,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index b8869eed1e..3eb3aac99d 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -370,6 +370,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml index dd0e010fed..1cf5490036 100644 --- a/.github/workflows/step-name-alignment.lock.yml +++ b/.github/workflows/step-name-alignment.lock.yml @@ -294,6 +294,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index d8e140e33b..8413c69196 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -300,6 +300,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index ff93f8d05d..36beb39a2e 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -291,6 +291,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml index ac7eac1c0c..8123c1a347 100644 --- a/.github/workflows/workflow-health-manager.lock.yml +++ b/.github/workflows/workflow-health-manager.lock.yml @@ -392,6 +392,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/workflow-normalizer.lock.yml b/.github/workflows/workflow-normalizer.lock.yml index dbd383cd37..ebadb887dd 100644 --- a/.github/workflows/workflow-normalizer.lock.yml +++ b/.github/workflows/workflow-normalizer.lock.yml @@ -299,6 +299,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/workflow-skill-extractor.lock.yml b/.github/workflows/workflow-skill-extractor.lock.yml index afb56bb0ee..14253214c0 100644 --- a/.github/workflows/workflow-skill-extractor.lock.yml +++ b/.github/workflows/workflow-skill-extractor.lock.yml @@ -334,6 +334,12 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { + "assignees": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 39 + }, "body": { "required": true, "type": "string", diff --git a/pkg/workflow/safe_output_validation_config.go b/pkg/workflow/safe_output_validation_config.go index 5ab3dfbbff..65990b1d4e 100644 --- a/pkg/workflow/safe_output_validation_config.go +++ b/pkg/workflow/safe_output_validation_config.go @@ -49,6 +49,7 @@ var ValidationConfig = map[string]TypeValidationConfig{ "title": {Required: true, Type: "string", Sanitize: true, MaxLength: 128}, "body": {Required: true, Type: "string", Sanitize: true, MaxLength: MaxBodyLength}, "labels": {Type: "array", ItemType: "string", ItemSanitize: true, ItemMaxLength: 128}, + "assignees": {Type: "array", ItemType: "string", ItemSanitize: true, ItemMaxLength: MaxGitHubUsernameLength}, "parent": {IssueOrPRNumber: true}, "temporary_id": {Type: "string"}, "repo": {Type: "string", MaxLength: 256}, // Optional: target repository in format "owner/repo" From 41c135abb9d7c9b8cd65b8321ab841129dccf243 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 10:45:54 +0000 Subject: [PATCH 4/7] Fix copilot assignment by adding GH_AW_ASSIGN_COPILOT env var - Add GH_AW_ASSIGN_COPILOT environment variable in addAllSafeOutputConfigEnvVars - Variable is set to "true" when copilot is in create-issue assignees - Enables copilot assignment to work in unified safe outputs handler - Fixes issue where assignment step was skipped despite assignees: copilot config - Recompiled workflows: security-alert-burndown, duplicate-code-detector, breaking-change-checker Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com> --- .github/workflows/breaking-change-checker.lock.yml | 1 + .github/workflows/duplicate-code-detector.lock.yml | 1 + .github/workflows/security-alert-burndown.lock.yml | 2 ++ pkg/workflow/compiler_safe_outputs_env.go | 5 +++++ 4 files changed, 9 insertions(+) diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index 67de0255e4..6b77b1a111 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -1293,6 +1293,7 @@ jobs: env: GH_AW_AGENT_OUTPUT: ${{ env.GH_AW_AGENT_OUTPUT }} GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"create_issue\":{\"assignees\":[\"copilot\"],\"max\":1},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1}}" + GH_AW_ASSIGN_COPILOT: "true" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 80498e9960..86bc008250 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -1314,6 +1314,7 @@ jobs: env: GH_AW_AGENT_OUTPUT: ${{ env.GH_AW_AGENT_OUTPUT }} GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"create_issue\":{\"assignees\":[\"copilot\"],\"max\":1},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1}}" + GH_AW_ASSIGN_COPILOT: "true" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/security-alert-burndown.lock.yml b/.github/workflows/security-alert-burndown.lock.yml index 02e0c94217..2e16114431 100644 --- a/.github/workflows/security-alert-burndown.lock.yml +++ b/.github/workflows/security-alert-burndown.lock.yml @@ -2195,6 +2195,7 @@ jobs: env: GH_AW_AGENT_OUTPUT: ${{ env.GH_AW_AGENT_OUTPUT }} GH_AW_SAFE_OUTPUTS_PROJECT_HANDLER_CONFIG: "{\"create_project_status_update\":{\"max\":1},\"update_project\":{\"max\":100}}" + GH_AW_ASSIGN_COPILOT: "true" GH_AW_PROJECT_GITHUB_TOKEN: ${{ secrets.GH_AW_PROJECT_GITHUB_TOKEN }} with: github-token: ${{ secrets.GH_AW_PROJECT_GITHUB_TOKEN }} @@ -2210,6 +2211,7 @@ jobs: GH_AW_AGENT_OUTPUT: ${{ env.GH_AW_AGENT_OUTPUT }} GH_AW_TEMPORARY_PROJECT_MAP: ${{ steps.process_project_safe_outputs.outputs.temporary_project_map }} GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"create_issue\":{\"assignees\":[\"copilot\"],\"max\":1},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1}}" + GH_AW_ASSIGN_COPILOT: "true" with: github-token: ${{ secrets.GH_AW_AGENT_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/pkg/workflow/compiler_safe_outputs_env.go b/pkg/workflow/compiler_safe_outputs_env.go index 343dcb9e15..d44607f8b8 100644 --- a/pkg/workflow/compiler_safe_outputs_env.go +++ b/pkg/workflow/compiler_safe_outputs_env.go @@ -26,6 +26,11 @@ func (c *Compiler) addAllSafeOutputConfigEnvVars(steps *[]string, data *Workflow stagedFlagAdded = true compilerSafeOutputsEnvLog.Print("Added staged flag for create-issue") } + // Check if copilot is in assignees - if so, we'll output issues for assign_to_agent job + if hasCopilotAssignee(cfg.Assignees) { + *steps = append(*steps, " GH_AW_ASSIGN_COPILOT: \"true\"\n") + compilerSafeOutputsEnvLog.Print("Copilot assignment requested - will output issues_to_assign_copilot") + } } // Add Comment - all config now in handler config JSON From 95804da0d478e01b40002157132bb1cff234aa64 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 10:47:40 +0000 Subject: [PATCH 5/7] Add test for GH_AW_ASSIGN_COPILOT environment variable - Add comprehensive tests for copilot assignment env var - Verify env var is set when copilot is in assignees - Verify env var is not set when copilot is absent - Test mixed assignees scenario (copilot + other users) Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com> --- .../compiler_safe_outputs_env_copilot_test.go | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 pkg/workflow/compiler_safe_outputs_env_copilot_test.go diff --git a/pkg/workflow/compiler_safe_outputs_env_copilot_test.go b/pkg/workflow/compiler_safe_outputs_env_copilot_test.go new file mode 100644 index 0000000000..1a72620597 --- /dev/null +++ b/pkg/workflow/compiler_safe_outputs_env_copilot_test.go @@ -0,0 +1,84 @@ +//go:build !integration + +package workflow + +import ( + "strings" + "testing" + + "github.com/stretchr/testify/assert" +) + +// TestCopilotAssignmentEnvVarIsSet verifies that GH_AW_ASSIGN_COPILOT is set +// when copilot is in the assignees list +func TestCopilotAssignmentEnvVarIsSet(t *testing.T) { + compiler := NewCompiler() + + data := &WorkflowData{ + Name: "Test", + SafeOutputs: &SafeOutputsConfig{ + CreateIssues: &CreateIssuesConfig{ + BaseSafeOutputConfig: BaseSafeOutputConfig{Max: 1}, + Assignees: []string{"copilot"}, + }, + }, + } + + var steps []string + compiler.addAllSafeOutputConfigEnvVars(&steps, data) + + // Join steps to search for the env var + stepsStr := strings.Join(steps, "") + + assert.Contains(t, stepsStr, "GH_AW_ASSIGN_COPILOT", "Expected GH_AW_ASSIGN_COPILOT to be set when copilot is in assignees") + assert.Contains(t, stepsStr, `GH_AW_ASSIGN_COPILOT: "true"`, "Expected GH_AW_ASSIGN_COPILOT to be set to 'true'") +} + +// TestCopilotAssignmentEnvVarNotSetWithoutCopilot verifies that GH_AW_ASSIGN_COPILOT +// is not set when copilot is not in the assignees list +func TestCopilotAssignmentEnvVarNotSetWithoutCopilot(t *testing.T) { + compiler := NewCompiler() + + data := &WorkflowData{ + Name: "Test", + SafeOutputs: &SafeOutputsConfig{ + CreateIssues: &CreateIssuesConfig{ + BaseSafeOutputConfig: BaseSafeOutputConfig{Max: 1}, + Assignees: []string{"user1"}, + }, + }, + } + + var steps []string + compiler.addAllSafeOutputConfigEnvVars(&steps, data) + + // Join steps to search for the env var + stepsStr := strings.Join(steps, "") + + assert.NotContains(t, stepsStr, "GH_AW_ASSIGN_COPILOT", "Expected GH_AW_ASSIGN_COPILOT not to be set when copilot is not in assignees") +} + +// TestCopilotAssignmentEnvVarWithMixedAssignees verifies that GH_AW_ASSIGN_COPILOT is set +// when copilot is in the assignees list along with other users +func TestCopilotAssignmentEnvVarWithMixedAssignees(t *testing.T) { + compiler := NewCompiler() + + data := &WorkflowData{ + Name: "Test", + SafeOutputs: &SafeOutputsConfig{ + CreateIssues: &CreateIssuesConfig{ + BaseSafeOutputConfig: BaseSafeOutputConfig{Max: 1}, + Assignees: []string{"user1", "copilot", "user2"}, + }, + }, + } + + var steps []string + compiler.addAllSafeOutputConfigEnvVars(&steps, data) + + // Join steps to search for the env var + stepsStr := strings.Join(steps, "") + + assert.Contains(t, stepsStr, "GH_AW_ASSIGN_COPILOT", "Expected GH_AW_ASSIGN_COPILOT to be set when copilot is among multiple assignees") + assert.Contains(t, stepsStr, `GH_AW_ASSIGN_COPILOT: "true"`, "Expected GH_AW_ASSIGN_COPILOT to be set to 'true'") +} From b8c73d0b51e44ac1d03f2bd50c26a4cb73919002 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 10:51:32 +0000 Subject: [PATCH 6/7] Add edge case tests for copilot assignment env var - Test nil assignees (env var not set) - Test empty assignees array (env var not set) - Ensures hasCopilotAssignee handles edge cases correctly - Addresses code review feedback Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com> --- .../compiler_safe_outputs_env_copilot_test.go | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/pkg/workflow/compiler_safe_outputs_env_copilot_test.go b/pkg/workflow/compiler_safe_outputs_env_copilot_test.go index 1a72620597..fb64d8a644 100644 --- a/pkg/workflow/compiler_safe_outputs_env_copilot_test.go +++ b/pkg/workflow/compiler_safe_outputs_env_copilot_test.go @@ -82,3 +82,51 @@ func TestCopilotAssignmentEnvVarWithMixedAssignees(t *testing.T) { assert.Contains(t, stepsStr, "GH_AW_ASSIGN_COPILOT", "Expected GH_AW_ASSIGN_COPILOT to be set when copilot is among multiple assignees") assert.Contains(t, stepsStr, `GH_AW_ASSIGN_COPILOT: "true"`, "Expected GH_AW_ASSIGN_COPILOT to be set to 'true'") } + +// TestCopilotAssignmentEnvVarWithNilAssignees verifies that GH_AW_ASSIGN_COPILOT +// is not set when assignees field is nil +func TestCopilotAssignmentEnvVarWithNilAssignees(t *testing.T) { + compiler := NewCompiler() + + data := &WorkflowData{ + Name: "Test", + SafeOutputs: &SafeOutputsConfig{ + CreateIssues: &CreateIssuesConfig{ + BaseSafeOutputConfig: BaseSafeOutputConfig{Max: 1}, + Assignees: nil, + }, + }, + } + + var steps []string + compiler.addAllSafeOutputConfigEnvVars(&steps, data) + + // Join steps to search for the env var + stepsStr := strings.Join(steps, "") + + assert.NotContains(t, stepsStr, "GH_AW_ASSIGN_COPILOT", "Expected GH_AW_ASSIGN_COPILOT not to be set when assignees is nil") +} + +// TestCopilotAssignmentEnvVarWithEmptyAssignees verifies that GH_AW_ASSIGN_COPILOT +// is not set when assignees array is empty +func TestCopilotAssignmentEnvVarWithEmptyAssignees(t *testing.T) { + compiler := NewCompiler() + + data := &WorkflowData{ + Name: "Test", + SafeOutputs: &SafeOutputsConfig{ + CreateIssues: &CreateIssuesConfig{ + BaseSafeOutputConfig: BaseSafeOutputConfig{Max: 1}, + Assignees: []string{}, + }, + }, + } + + var steps []string + compiler.addAllSafeOutputConfigEnvVars(&steps, data) + + // Join steps to search for the env var + stepsStr := strings.Join(steps, "") + + assert.NotContains(t, stepsStr, "GH_AW_ASSIGN_COPILOT", "Expected GH_AW_ASSIGN_COPILOT not to be set when assignees is empty") +} From e48d3d12a7af5512edeaf905a964798ae32a795e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:01:18 +0000 Subject: [PATCH 7/7] Revert validation changes, keep only the copilot assignment fix - Revert assignees field validation from safe_output_validation_config.go - Keep the GH_AW_ASSIGN_COPILOT environment variable fix in compiler_safe_outputs_env.go - Keep comprehensive tests for the env var fix - Recompile all 142 workflows without the validation schema changes - Per feedback: validation was not needed, only the env var fix Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com> --- .github/workflows/agent-performance-analyzer.lock.yml | 6 ------ .github/workflows/breaking-change-checker.lock.yml | 6 ------ .github/workflows/ci-doctor.lock.yml | 6 ------ .github/workflows/cli-consistency-checker.lock.yml | 6 ------ .github/workflows/cli-version-checker.lock.yml | 6 ------ .github/workflows/daily-cli-performance.lock.yml | 6 ------ .github/workflows/daily-file-diet.lock.yml | 6 ------ .github/workflows/daily-multi-device-docs-tester.lock.yml | 6 ------ .github/workflows/daily-safe-output-optimizer.lock.yml | 6 ------ .github/workflows/daily-team-status.lock.yml | 6 ------ .github/workflows/daily-testify-uber-super-expert.lock.yml | 6 ------ .github/workflows/deep-report.lock.yml | 6 ------ .github/workflows/delight.lock.yml | 6 ------ .github/workflows/dependabot-go-checker.lock.yml | 6 ------ .github/workflows/discussion-task-miner.lock.yml | 6 ------ .github/workflows/duplicate-code-detector.lock.yml | 6 ------ .github/workflows/go-pattern-detector.lock.yml | 6 ------ .github/workflows/issue-arborist.lock.yml | 6 ------ .github/workflows/plan.lock.yml | 6 ------ .github/workflows/poem-bot.lock.yml | 6 ------ .github/workflows/secret-scanning-triage.lock.yml | 6 ------ .github/workflows/security-alert-burndown.lock.yml | 6 ------ .github/workflows/security-compliance.lock.yml | 6 ------ .github/workflows/semantic-function-refactor.lock.yml | 6 ------ .github/workflows/smoke-claude.lock.yml | 6 ------ .github/workflows/smoke-codex.lock.yml | 6 ------ .github/workflows/smoke-copilot.lock.yml | 6 ------ .github/workflows/smoke-opencode.lock.yml | 6 ------ .github/workflows/stale-repo-identifier.lock.yml | 6 ------ .github/workflows/step-name-alignment.lock.yml | 6 ------ .github/workflows/super-linter.lock.yml | 6 ------ .github/workflows/video-analyzer.lock.yml | 6 ------ .github/workflows/workflow-health-manager.lock.yml | 6 ------ .github/workflows/workflow-normalizer.lock.yml | 6 ------ .github/workflows/workflow-skill-extractor.lock.yml | 6 ------ pkg/workflow/safe_output_validation_config.go | 1 - 36 files changed, 211 deletions(-) diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index 66d6a0e0e2..89e1cb4f66 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -405,12 +405,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index 6b77b1a111..d14d780fde 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -278,12 +278,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index c7a031a405..a1cb717b16 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -338,12 +338,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index 72d2929218..086c96e32e 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -277,12 +277,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 192c301639..64961cf07a 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -302,12 +302,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml index 707c8cc223..d47be00d10 100644 --- a/.github/workflows/daily-cli-performance.lock.yml +++ b/.github/workflows/daily-cli-performance.lock.yml @@ -326,12 +326,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index fc0ed2b2a7..323569e360 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -284,12 +284,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 9eca19576f..334aef34eb 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -310,12 +310,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml index b02e19fa9f..ad13bc7994 100644 --- a/.github/workflows/daily-safe-output-optimizer.lock.yml +++ b/.github/workflows/daily-safe-output-optimizer.lock.yml @@ -326,12 +326,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index 585593dd91..d3a47ae38c 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -290,12 +290,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml index d7a038208f..7bc8d5981e 100644 --- a/.github/workflows/daily-testify-uber-super-expert.lock.yml +++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml @@ -294,12 +294,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 4b7545be5e..59fce9a00d 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -405,12 +405,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml index 276b45279c..81501b47eb 100644 --- a/.github/workflows/delight.lock.yml +++ b/.github/workflows/delight.lock.yml @@ -347,12 +347,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index ef81c23fe3..1165d71478 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -316,12 +316,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/discussion-task-miner.lock.yml b/.github/workflows/discussion-task-miner.lock.yml index ad86964232..db1497d52b 100644 --- a/.github/workflows/discussion-task-miner.lock.yml +++ b/.github/workflows/discussion-task-miner.lock.yml @@ -330,12 +330,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 86bc008250..71be8e3471 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -283,12 +283,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index 4dee2cb545..be381d60f5 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -289,12 +289,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 0ebaae4107..8fd52ebd79 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -374,12 +374,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml index 2f06843b79..4a50a0167b 100644 --- a/.github/workflows/plan.lock.yml +++ b/.github/workflows/plan.lock.yml @@ -368,12 +368,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index 1f57b7f083..cb9a7ac4fc 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -720,12 +720,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/secret-scanning-triage.lock.yml b/.github/workflows/secret-scanning-triage.lock.yml index 45d317163b..501f380034 100644 --- a/.github/workflows/secret-scanning-triage.lock.yml +++ b/.github/workflows/secret-scanning-triage.lock.yml @@ -368,12 +368,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/security-alert-burndown.lock.yml b/.github/workflows/security-alert-burndown.lock.yml index 2e16114431..1adf066c01 100644 --- a/.github/workflows/security-alert-burndown.lock.yml +++ b/.github/workflows/security-alert-burndown.lock.yml @@ -446,12 +446,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index 779c22849c..1b9134d356 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -292,12 +292,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index 14d5c73522..5e1acd2372 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -325,12 +325,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index cb8e638913..ef8bc5535f 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -417,12 +417,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index abaa1c5e95..8efe5ca81c 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -453,12 +453,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index a9092ee775..850399447f 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -443,12 +443,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/smoke-opencode.lock.yml b/.github/workflows/smoke-opencode.lock.yml index aed751207c..17eeacb81a 100644 --- a/.github/workflows/smoke-opencode.lock.yml +++ b/.github/workflows/smoke-opencode.lock.yml @@ -379,12 +379,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index 3eb3aac99d..b8869eed1e 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -370,12 +370,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml index 1cf5490036..dd0e010fed 100644 --- a/.github/workflows/step-name-alignment.lock.yml +++ b/.github/workflows/step-name-alignment.lock.yml @@ -294,12 +294,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 8413c69196..d8e140e33b 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -300,12 +300,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index 36beb39a2e..ff93f8d05d 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -291,12 +291,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml index 8123c1a347..ac7eac1c0c 100644 --- a/.github/workflows/workflow-health-manager.lock.yml +++ b/.github/workflows/workflow-health-manager.lock.yml @@ -392,12 +392,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/workflow-normalizer.lock.yml b/.github/workflows/workflow-normalizer.lock.yml index ebadb887dd..dbd383cd37 100644 --- a/.github/workflows/workflow-normalizer.lock.yml +++ b/.github/workflows/workflow-normalizer.lock.yml @@ -299,12 +299,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/.github/workflows/workflow-skill-extractor.lock.yml b/.github/workflows/workflow-skill-extractor.lock.yml index 14253214c0..afb56bb0ee 100644 --- a/.github/workflows/workflow-skill-extractor.lock.yml +++ b/.github/workflows/workflow-skill-extractor.lock.yml @@ -334,12 +334,6 @@ jobs: "create_issue": { "defaultMax": 1, "fields": { - "assignees": { - "type": "array", - "itemType": "string", - "itemSanitize": true, - "itemMaxLength": 39 - }, "body": { "required": true, "type": "string", diff --git a/pkg/workflow/safe_output_validation_config.go b/pkg/workflow/safe_output_validation_config.go index 65990b1d4e..5ab3dfbbff 100644 --- a/pkg/workflow/safe_output_validation_config.go +++ b/pkg/workflow/safe_output_validation_config.go @@ -49,7 +49,6 @@ var ValidationConfig = map[string]TypeValidationConfig{ "title": {Required: true, Type: "string", Sanitize: true, MaxLength: 128}, "body": {Required: true, Type: "string", Sanitize: true, MaxLength: MaxBodyLength}, "labels": {Type: "array", ItemType: "string", ItemSanitize: true, ItemMaxLength: 128}, - "assignees": {Type: "array", ItemType: "string", ItemSanitize: true, ItemMaxLength: MaxGitHubUsernameLength}, "parent": {IssueOrPRNumber: true}, "temporary_id": {Type: "string"}, "repo": {Type: "string", MaxLength: 256}, // Optional: target repository in format "owner/repo"