-
Notifications
You must be signed in to change notification settings - Fork 42
Require project URL for campaign orchestrator workflows #12815
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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 <[email protected]>
- 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 <[email protected]>
|
@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 <[email protected]>
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 <[email protected]>
|
@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 <[email protected]>
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.