Require project URL for campaign orchestrator workflows#12815
Require project URL for campaign orchestrator workflows#12815
Conversation
- Add validation to require project URL for campaign orchestrators - Create campaign_project_validation.go with detection logic - Add comprehensive tests for campaign detection - Update dependabot-bundler.md to include project URL - Integrate validation into compiler orchestrator engine Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
- Add project URL to code-scanning-fixer.md - Add project URL to secret-scanning-triage.md - Add project URL to security-fix-pr.md - All campaign workflows now pass validation Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
|
@copilot |
- Frontmatter 'project' field is now the source of truth - If not in frontmatter, fall back to searching markdown body - Add tests for markdown fallback functionality - Update error messages to mention both options Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Done! The
The implementation:
Example markdown fallback: # Campaign
Track progress at https://github.com/orgs/githubnext/projects/144 |
|
@copilot Revert what is not part of this last commit (logic) |
- Remove markdown body fallback for project URL detection - Keep only frontmatter validation (original logic) - Frontmatter 'project' field is now required for campaigns Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
|
@copilot Check other safe outputs like update-issue and how they are identified. |
- Keep campaign detection focused on explicit campaign indicators - Campaign labels (agentic-campaign, z_campaign_*) in safe-outputs - Campaign-id in repo-memory configuration - Don't use update-project as detection (avoids false positives) - Fix tests to add project URL where needed Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
I reviewed how safe outputs like Campaign Detection (commit cb17d5b):
Rationale: Result:
|
🔍 PR Triage ResultsCategory: chore | Risk: medium | Priority: 45/100 Scores Breakdown
📋 Recommended Action: batch_reviewThis PR is part of Batch #4: Chore Updates (batch-chore-001) along with PR #12827. Review together for configuration consistency. Next Steps:
Triaged by PR Triage Agent on 2026-01-31 | Run #21540069309
|
|
@copilot Revert all these changes. The issue is that a missing tool was recoded for workflow dispatch, even though the frontmatter contained the correct safe outputs for it. |
Fix: Campaign orchestrator requires a GitHub Project URL to track Dependabot PRs and bundle issues ✅
Summary
This PR adds validation to ensure that campaign orchestrator workflows have a required GitHub Project URL for tracking work items (Dependabot PRs, bundle issues, security alerts, etc.).
Campaign orchestrators coordinate multiple workflows and track progress on GitHub Project boards. Without a project URL, they cannot track Dependabot PRs, manage bundle issues, or provide visibility into campaign progress.
Changes
New Validation Logic:
pkg/workflow/campaign_project_validation.go- Campaign detection and validationpkg/workflow/campaign_project_validation_test.go- Comprehensive test suite (12 test cases)pkg/workflow/compiler_orchestrator_engine.go- Integrated validation into compilation flowCampaign Detection (Aligned with Safe-Output Patterns):
Workflows are identified as campaigns based on explicit campaign indicators:
agentic-campaignorz_campaign_*) in safe-outputs configurations (add-labels, create-issue, create-pull-request, create-discussion)campaign-id) in repo-memory tool configurationThe detection is consistent with how safe outputs like
update-issue,add-labels, etc. are identified - by checking for their presence in configuration maps.Note:
update-projectis NOT used as a detection criterion to avoid false positives. Workflows can use project management features without being campaign orchestrators. Campaign characteristics are explicitly declared through labels or campaign IDs.Project URL Requirement:
projectfield in frontmatter is required for campaign workflowsWorkflow Fixes:
Added
project: https://github.com/orgs/githubnext/projects/144to 4 campaign workflows:.github/workflows/dependabot-bundler.md✅.github/workflows/code-scanning-fixer.md✅.github/workflows/secret-scanning-triage.md✅.github/workflows/security-fix-pr.md✅Test Updates:
update_project_handler_config_test.goto include project URL for test workflow using update-projectTesting Results ✅
Error Messages
The validation provides clear, actionable error messages:
Design Rationale
Campaign Detection Philosophy:
update-projectalone doesn't make a workflow a campaign (it's a tool, not an identity)Implementation Complete
All requirements met:
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.