Central workflow repository for the Ascenvo organization. Reusable GitHub Actions workflows defined here are called from other repos via workflow_call, so CI, branch policy, and PR automation stay consistent org-wide without being duplicated in every project.
All workflows live in .github/workflows and support both direct triggers and workflow_call reuse.
ci.yml(status-checks) — Runs on PRs intodevelop/production/release/**and on pushes toproduction/develop. Detects whether the repo is a Node project and, if so, runslint,format-check,typecheck,test, andtest:coverage(each only--if-present), uploads a coverage artifact when produced, then builds.branch-policy.yml— Runs on PRs targetingproduction. Fails unless the PR's head branch isdeveloporrelease/*, enforcing thatproductiononly receives promotions from those branches.pr-description.yml— Runs on PR open/reopen/synchronize. Gathers PR metadata, commits, changed files, and diff viaghandgit, sends them to a configured chat-completions API (API_KEY/API_BASE_URL/MODELsecrets) along with the prompt inskills/pr-description-updater/SKILL.md, validates the response againstschemas/pr-description-body.schema.json, and updates the PR body viagh pr editif it changed. Skips fork PRs (no secrets access onpull_requestevents).
CODEOWNERS— Requires@ascenvo/platform-engineering-teamreview on all changes.schemas/pr-description-body.schema.json— JSON Schema the AI-generated PR description output must satisfy.skills/pr-description-updater/SKILL.md— Prompt/instructions defining the required PR description structure (Summary, Changes, Checklist, Testing, Notes) and evidence rules (no invented test results, preserve existing manual content).
This repo is itself a Node/TypeScript project (used to test the workflow logic and tooling):
npm install
npm run lint # eslint
npm run format-check # prettier --check
npm run typecheck # tsc --noEmit
npm test # tsx --test test/*.test.ts
npm run test:coverageTests in test/ cover the workflow YAML (workflows.test.ts), the PR description schema (schema.test.ts), and the skill file (skill.test.ts).