-
Notifications
You must be signed in to change notification settings - Fork 3
✨ feat: add bot for tracking status of pipeline proposals and SIGs #45
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
📊 Test Coverage Report
Tests: 81 statements covered out of 81 🎉 Excellent coverage! |
- Removes package-lock.json from .gitignore to fix GitHub Action cache dependency path - Commits package-lock.json to ensure consistent dependency versions - Resolves 'Some specified paths were not resolved, unable to cache dependencies' error
c302e6d to
441e208
Compare
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 pull request introduces comprehensive automation for the approval process of pipeline proposals and RFCs in the nf-core community. The system replaces manual tracking with GitHub Actions workflows that monitor issue comments for /approve and /reject commands from team members and automatically update proposal statuses.
Key changes include:
- Addition of automated approval workflows for pipeline proposals and RFCs with different voting requirements
- Comprehensive test suite with unit and integration tests covering all workflow scenarios
- Updated documentation reflecting the new automated processes alongside remaining manual steps
Reviewed Changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/pipeline_proposals.yml |
New workflow automating pipeline proposal approvals (2 core OR 1 core + 1 maintainer) |
.github/workflows/rfc_approval.yml |
Refactored RFC approval workflow to use shared ApprovalManager class |
.github/workflows/sig_approval.yml |
New SIG approval workflow requiring 2 core team approvals |
.github/workflows/lib/approval.js |
Core ApprovalManager class handling team fetching, comment processing, and status updates |
.github/workflows/lib/approval.test.js |
Comprehensive unit tests for ApprovalManager functionality |
.github/workflows/lib/workflow-integration.test.js |
End-to-end integration tests for complete workflow scenarios |
.github/workflows/test-approval-automation.yml |
CI workflow for testing approval automation with coverage reporting |
README.md |
Updated documentation explaining automated vs manual workflow steps |
Comments suppressed due to low confidence (2)
ewels
left a comment
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.
Too large to review in detail, but a quick skim looks good to me!
Co-authored-by: Maxime U Garcia <maxime.garcia@seqera.io>
This pull request introduces a new GitHub Actions workflow to automate the approval process for pipeline proposals. The workflow handles issue creation, comment-based voting, and status updates, ensuring that proposals are reviewed and approved or rejected based on team member input. It includes logic to manage labels, track votes, and update issue status dynamically.
New Workflow for Pipeline Proposal Approval:
Workflow Setup: Added a new workflow file
.github/workflows/pipeline_proposals.ymlto automate the approval process for pipeline proposals triggered by issue events (opened,closed,labeled,unlabeled) and comments (created,edited).Approval Logic: Implemented logic to fetch team members, track approvals/rejections, and determine the proposal status based on voting rules (e.g., approvals required from either 2 core members or 1 core member + 1 maintainer).
Dynamic Status Updates: Added functions to generate detailed status comments, format user lists, and update issue labels and states based on the current approval/rejection status.
Timed-Out and Label Handling: Integrated label-based handling to mark proposals as "timed-out" and update the status accordingly.