Skip to content

ci: add PR review and issue triage automation pipelines - #5552

Draft
Marc-André Moreau (mamoreau-devolutions) wants to merge 1 commit into
mainfrom
copilot/pr-automation
Draft

Marc-André Moreau (mamoreau-devolutions) wants to merge 1 commit into
mainfrom
copilot/pr-automation

Conversation

@mamoreau-devolutions

Copy link
Copy Markdown
Contributor
  • I have read the contributing guidelines, and I agree with the Code of Conduct.
  • Have you checked that there aren't other open pull requests for the same changes?
  • Have you tested that the committed code can be executed without errors?
  • Have you confirmed that this issue is caused by UniGetUI itself, and not by the package manager or the package involved?
    If the same issue can be reproduced outside UniGetUI with the relevant package manager or with the package itself, please report it there first. UniGetUI should only be used to track issues that are specific to UniGetUI's behavior or integration.

Summary

Introduces advisory, report-only-by-default PR triage/specialist review and issue triage/labeling automation tailored to Devolutions/UniGetUI:

  1. PR Automation (.github/pr-automation/, .github/workflows/pr-automation.yml, .github/workflows/review-pipeline.yml, .github/PR_AUTOMATION.md)

    • Deterministic scope/size/first-contributor labeling, exact-head CI gating across UniGetUI's filtered workflows (.NET Tests, CLI Headless E2E, Translation Validation, PR Automation Tests), and optional multi-specialist AI review (dotnet-aot, package-engine, ui-localization, skeptical, code-compressor, plus general consolidator).
    • Defaults to PR_AUTOMATION_MODE=report-only and PR_AUTOMATION_AI_ENABLED=false. Read-only model jobs and a serialized opt-in writer job (concurrency.queue: max) protect fork PRs and prevent duplicate publications.
  2. Issue Intelligence & Automatic Triage/Labeling (.github/issue-automation/, .github/workflows/issue-automation.yml, .github/ISSUE_AUTOMATION.md)

    • Separates automation-owned additive routing labels (type, manager, platform/*, area/*) from protected maintainer workflow and judgment labels (ready-to-go, needs-further-study, needs-author-answer, waiting-for-user-feedback, ready-for-release, released, waiting-for-something, important, hard-one, duplicate, not-UniGetUI).
    • Deterministic form/log parser with 64 KiB head/tail body curation, path/token redaction, routine "which" startup-log noise filtering, version era & form-vs-log conflict detection, WinGet backend/command-equivalence checks, candidate fix PR matching, release-pinned (v2026.3.2) capability matching, and an 8-queue maintainer backlog digest.
    • Defaults to ISSUE_AUTOMATION_MODE=report-only, ISSUE_AUTOMATION_AI_ENABLED=false, and ISSUE_AUTOMATION_DAILY_BUDGET=0.
  3. Shared Actions, Skills & Issue Intake Improvements

    • Adds .github/actions/openai-agent (bounded Node 24 OpenAI-compatible agent harness with Ajv schema + semantic validation) and .github/actions/sync-skills + .github/skills-sync.yml + .github/workflows/sync-skills.yml (pinned skill synchronizer preserving UniGetUI's local translation-* skills).
    • Updates .github/ISSUE_TEMPLATE/{bug-issue,hard-crash,config}.yml, docs/ISSUE_DIAGNOSTICS.md, and CONTRIBUTING.md for cross-platform OS/architecture reporting and non-destructive troubleshooting.

Validation

  • node .github/pr-automation/check-config.js — passed
  • node --test .github/pr-automation/test/*.test.js — passed (55/55 tests)
  • node .github/issue-automation/check-config.js — passed
  • node --test .github/issue-automation/test/*.test.js — passed (10/10 suites, including 18-issue UniGetUI replay benchmark)
  • node --test .github/actions/sync-skills/test/*.test.js — passed (18/18 tests)
  • node --test .github/actions/openai-agent/test/*.test.js — passed (126/126 tests)

N/A

N/A

Introduce report-only PR triage/specialist review and issue triage/labeling pipelines, shared openai-agent and sync-skills actions, updated issue intake templates, and validation suites.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant