🌱 Sync workflows from kubestellar/infra#3817
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits. 📝 Please follow instructions in the contributing guide to update your commits with the DCO Full details of the Developer Certificate of Origin can be found at developercertificate.org. The list of commits missing DCO signoff:
DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
✅ Deploy Preview for kubestellarconsole ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
👋 Hey @clubanderson — thanks for opening this PR!
This is an automated message. |
There was a problem hiding this comment.
Pull request overview
Syncs GitHub Actions caller workflows in this repository to use the standardized reusable workflows hosted in kubestellar/infra, aligning CI/automation behavior with the shared infra repo.
Changes:
- Add
pr-verify-title.ymlthat callskubestellar/infra’s reusable PR title verification workflow. - Simplify
ai-fix.ymlto callkubestellar/infra’s reusable AI-fix workflow (replacing in-repo queueing logic).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| .github/workflows/pr-verify-title.yml | Adds a new PR title verification workflow that delegates to the shared reusable workflow in kubestellar/infra. |
| .github/workflows/ai-fix.yml | Replaces local Copilot-queueing/job logic with a call to the shared reusable AI-fix workflow. |
| jobs: | ||
| # Queue issues for Copilot assignment (processed by copilot-queue.yml) | ||
| queue-for-copilot: | ||
| runs-on: ubuntu-latest | ||
| if: | | ||
| (github.event_name == 'issues' && | ||
| contains(github.event.issue.labels.*.name, 'ai-fix-requested') && | ||
| contains(github.event.issue.labels.*.name, 'triage/accepted')) || | ||
| github.event_name == 'workflow_dispatch' | ||
| steps: | ||
| - name: Add to Copilot queue | ||
| uses: actions/github-script@v7 | ||
| with: | ||
| github-token: ${{ secrets.CONSOLE_AUTO || secrets.GITHUB_TOKEN }} | ||
| script: | | ||
| const issueNumber = context.eventName === 'workflow_dispatch' | ||
| ? parseInt('${{ inputs.issue_number }}', 10) | ||
| : context.payload.issue?.number; | ||
|
|
||
| if (!issueNumber) { | ||
| core.info('No issue number found, skipping'); | ||
| return; | ||
| } | ||
|
|
||
| const { data: issue } = await github.rest.issues.get({ | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| issue_number: issueNumber, | ||
| }); | ||
|
|
||
| const labels = issue.labels.map(l => l.name); | ||
|
|
||
| // Skip if already queued or being processed | ||
| if (labels.includes('ai-queued') || labels.includes('ai-processing') || labels.includes('ai-pr-ready')) { | ||
| core.info(`#${issueNumber}: already queued or in progress, skipping`); | ||
| return; | ||
| } | ||
|
|
||
| // Check required label | ||
| if (!labels.includes('ai-fix-requested') && context.eventName !== 'workflow_dispatch') { | ||
| core.info(`#${issueNumber}: missing ai-fix-requested label, skipping`); | ||
| return; | ||
| } | ||
|
|
||
| // Add to queue | ||
| await github.rest.issues.addLabels({ | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| issue_number: issueNumber, | ||
| labels: ['ai-queued'], | ||
| }); | ||
|
|
||
| core.info(`#${issueNumber}: added to Copilot queue`); | ||
|
|
||
| # Keep the PR linking job from the reusable workflow | ||
| update-issue-on-pr: | ||
| if: github.event_name == 'pull_request_target' | ||
| ai-fix: | ||
| uses: kubestellar/infra/.github/workflows/reusable-ai-fix.yml@main | ||
| with: | ||
| issue_number: '' | ||
| issue_number: ${{ github.event.inputs.issue_number || '' }} |
There was a problem hiding this comment.
ai-fix now runs unconditionally on every issues:labeled event (and calls the reusable workflow), whereas the previous implementation gated execution to ai-fix-requested + triage/accepted (or workflow_dispatch). If the reusable workflow doesn’t short-circuit early, this can create noisy/expensive runs for unrelated label changes. Consider restoring a job-level if: guard equivalent to the previous conditions to keep runs scoped to intended labels.
🔄 Auto-Applying Copilot Code ReviewCopilot code review found 0 code suggestion(s) and 1 general comment(s). Also address these general comments:
Push all fixes in a single commit. Run Auto-generated by copilot-review-apply workflow. |
|
Thank you for your contribution! Your PR has been merged. Check out what's new:
Stay connected: Slack #kubestellar-dev | Multi-Cluster Survey |
This PR syncs the caller workflows from
kubestellar/infra.These workflows call reusable workflows from
kubestellar/infra:Standard Workflows:
add-help-wanted.yml- Add help-wanted label to issuesassignment-helper.yml- Handle issue assignmentsfeedback.yml- Collect feedbackgreetings.yml- Welcome new contributorslabel-helper.yml- Manage labelspr-verifier.yml- Verify PR contentspr-verify-title.yml- Verify PR title formatscorecard.yml- Security scorecardstale.yml- Mark stale issues/PRsAgentic Workflows (Copilot Integration):
ai-fix.yml- Assign Copilot to issues withai-fix-requestedlabelcopilot-automation.yml- Automate Copilot PR processing (DCO, labels)copilot-dco.yml- Override DCO for Copilot PRsAuto-generated by workflow sync