From 16570d73f47b2cf6f4c3e5927308282b093f8161 Mon Sep 17 00:00:00 2001 From: openhands Date: Wed, 26 Aug 2026 13:26:47 -0500 Subject: [PATCH] ci: add PR validation scripts and workflows to skill branch The skill/openhands-enterprise-troubleshooting branch predates the PR description and issue readiness validation jobs. As a result, pull_request_target checks out a base SHA that lacks .github/scripts/check_pr_description.py and the job fails with FileNotFoundError. Backport the scripts, workflows, and dependabot config from main so the PR-description and issue-readiness checks can run. Co-authored-by: openhands --- .github/dependabot.yml | 24 ++ .github/scripts/check_issue_readiness.py | 272 ++++++++++++++++++++ .github/scripts/check_pr_description.py | 226 ++++++++++++++++ .github/scripts/post-readiness-comment.mjs | 184 +++++++++++++ .github/scripts/refresh_linked_pr_checks.py | 171 ++++++++++++ .github/workflows/issue-readiness-check.yml | 142 ++++++++++ .github/workflows/pr-description-check.yml | 37 +++ 7 files changed, 1056 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/scripts/check_issue_readiness.py create mode 100644 .github/scripts/check_pr_description.py create mode 100644 .github/scripts/post-readiness-comment.mjs create mode 100644 .github/scripts/refresh_linked_pr_checks.py create mode 100644 .github/workflows/issue-readiness-check.yml create mode 100644 .github/workflows/pr-description-check.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..0586bf0e --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,24 @@ +# Keep dependency update scheduling centralized in this repository configuration. +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + commit-message: + prefix: ci(deps) + + - package-ecosystem: npm + directory: / + schedule: + interval: weekly + commit-message: + prefix: chore(deps) + include: scope + + - package-ecosystem: pip + directory: / + schedule: + interval: weekly + commit-message: + prefix: chore(deps) diff --git a/.github/scripts/check_issue_readiness.py b/.github/scripts/check_issue_readiness.py new file mode 100644 index 00000000..1707254b --- /dev/null +++ b/.github/scripts/check_issue_readiness.py @@ -0,0 +1,272 @@ +"""Determine whether an issue meets the `ready-for-dev` readiness criteria. + +The criteria are type-specific and tailored to extension contributions +(skills, plugins, integrations, and automations): + +- Bug reports (labeled `bug`): the Actual Behavior section must describe a + reproducible run and include a supported validation command (`uv`, + `pytest`, `python`, `pip`, `npm`, or `node`), plus a non-empty Acceptance + Criteria section with at least one checklist item. + +- Enhancements (labeled `enhancement`): the body must contain non-empty + Desired Behavior and Acceptance Criteria sections, the latter with at + least one checklist item. + +GitHub issue forms render each field as an `###