-
Notifications
You must be signed in to change notification settings - Fork 26
feat: add campaign capability update-project
#3524
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
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