feat: add campaign capability update-project#3524
Merged
Conversation
added 9 commits
November 11, 2025 19:24
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR adds campaign workflow capabilities to enable AI agents to orchestrate focused, time-bound initiatives with automatic project board management. The key functionality is the new update-project safe output that provides smart GitHub Projects v2 board management - automatically creating projects if they don't exist, adding issues/PRs to boards, and updating custom fields.
Key changes:
- Adds
update-projectsafe output with support for project creation, item addition, and field updates - Implements campaign ID tracking system (format:
slug-timestamp) with automatic label generation - Adds comprehensive documentation for campaign workflows including patterns and best practices
Reviewed Changes
Copilot reviewed 33 out of 34 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| schemas/agent-output.json | Adds UpdateProjectOutput schema with project, campaign_id, content fields, and custom field support |
| pkg/workflow/update_project_job.go | Creates update_project job builder with proper permissions and environment variables |
| pkg/workflow/update_project.go | Defines UpdateProjectConfig struct and parsing logic |
| pkg/workflow/safe_outputs.go | Integrates update-project configuration parsing and safe outputs config generation |
| pkg/workflow/permissions.go | Adds NewPermissionsContentsReadProjectsWrite helper for project write permissions |
| pkg/workflow/js/update_project.test.cjs | Comprehensive test suite covering project creation, item addition, field updates, and error handling |
| pkg/workflow/js/update_project.cjs | Core JavaScript implementation handling project operations, campaign IDs, and GraphQL queries |
| pkg/workflow/js.go | Adds bundling support for update_project script with lazy initialization |
| pkg/workflow/compiler_jobs.go | Integrates update_project job into safe outputs job building pipeline |
| pkg/workflow/compiler.go | Adds UpdateProjects field to SafeOutputsConfig struct |
| pkg/parser/schemas/main_workflow_schema.json | Adds update-project schema to workflow configuration |
| docs/src/content/docs/guides/campaigns.md | Comprehensive campaign workflow documentation with examples and best practices |
| .golangci.yml | Updates golangci-lint configuration version |
| Multiple .lock.yml files | Updates action pins (actions/setup-go@v6, actions/download-artifact@v4, super-linter/slim@v8) |
| .github/workflows/ai-triage-campaign.md | Example campaign workflow demonstrating AI-focused issue triage |
| pkg/workflow/action_pins_test.go | Updates expected action pin count from 20 to 23 |
Comments suppressed due to low confidence (1)
docs/src/content/docs/guides/campaigns.md:1
- The documentation references a hardcoded user-specific project URL ('mnkiefer'). This should be replaced with a placeholder or generic example to avoid confusion. Use something like
https://github.com/users/YOUR_USERNAME/projects/24or reference the workflow input variable instead.
---
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Campaign capability
update-projectupdate-projectsafe output, enabling smart management of GitHub Projects (v2) boards, including creation, item addition, and field updates.Added Workflow "
AI Triage Campaign"update-project. Below is a sample run that has picked out 10 AI ready issues and added them to the Campaign Project Board for Copilot to work on.Run Steps:
Run Summary:
Campaign Project Board:
/cc @pelikhan