ci: align pre-commit hooks and GitHub templates#8890
Conversation
Adopt the shared pre-commit baseline: two-line SPDX header, conventional commit message validation (commit-msg stage), and the centralized add-license / add-spdx-license hooks from developer_tools v0.2.0. The local add-spdx-license hook and its script move to developer_tools. Run pre-commit CI only on files modified by the PR, and roll out the simplified single PR template. TRI-1100
Legal's Copyright / License Header Guidance specifies the SPDX form without a comma after the year. TRI-1100
Human-readable type labels with enforced descriptions and colors. TRI-1100
Review feedback on triton-inference-server/server#8890: external contributors keep the visual commit-type checklist for now; internal contributors rely on the enforced conventional-pr workflow and commit-msg hook. TRI-1100
|
Add |
The add-license hook now fails when the LICENSE copyright year is stale. TRI-1100
Workflow files are license-processed again (only templates excluded); refresh the stale copyright year this repo's pre-commit workflow carried. TRI-1100
|
Done — the description now links the full org-defaults diff (https://github.com/triton-inference-server/.github/pull/5/files) in the merge-order note. |
Grant issues:write to the labeling job (review feedback). TRI-1100
Greptile SummaryThis PR aligns the repository's CI and developer tooling with the org-wide setup consolidated in
Confidence Score: 5/5Safe to merge; all changes are CI/tooling configuration with no impact on application code or production behaviour. Every changed file is a workflow YAML, a pre-commit config, a deleted PR template, or a deleted utility script. The pull_request_target fork path is correctly guarded so the writable token is only used to manage labels via the pinned reusable workflow, never to execute contributor code. The one practical improvement is adding a restore-keys fallback to the pre-commit cache step so config rev-bumps don't force a full cold rebuild. No files require special attention. Important Files Changed
Sequence DiagramsequenceDiagram
participant Dev as Developer
participant GH as GitHub
participant PC as pre-commit.yml
participant CP as conventional-pr.yml
participant OW as org .github reusable workflow
Dev->>GH: Open / update PR
GH->>PC: pull_request event
activate PC
PC->>PC: "checkout (depth=2)"
PC->>PC: restore pre-commit cache
PC->>PC: "git diff --name-only -z --diff-filter=d HEAD^1 HEAD"
PC->>PC: pre-commit run --files changed-files
PC-->>GH: pass / fail
deactivate PC
alt Same-repo PR
GH->>CP: pull_request event
else Fork PR
GH->>CP: pull_request_target event
end
activate CP
CP->>OW: "uses conventional-pr.yml@v1.4.3"
activate OW
OW->>GH: Validate PR title (Conventional Commits)
OW->>GH: Derive type labels (ci→CI/CD, feat→feature, fix→fix)
OW->>GH: Enforce org-wide label colors/descriptions
OW->>GH: Detect cherry-picks
OW-->>CP: pass / fail
deactivate OW
CP-->>GH: status check + labels applied
deactivate CP
Reviews (2): Last reviewed commit: "ci: harden CI workflows and configs per ..." | Re-trigger Greptile |
| permissions: | ||
| pull-requests: write | ||
| issues: write | ||
| uses: triton-inference-server/.github/.github/workflows/conventional-pr.yml@v1.4.2 |
There was a problem hiding this comment.
Version tag mismatch with PR description
The PR description references @v1.4.1 throughout (including in the test plan), but the actual pinned tag here is v1.4.2. The same discrepancy exists in .pre-commit-config.yaml (line 88, also v1.4.2). This is purely a documentation drift in the PR body, but if a future reviewer audits the description against the committed YAML it will look like an unintentional bump. Consider updating the PR description to reflect v1.4.2.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
There was a problem hiding this comment.
Fixed - documentation drift: the descriptions have been refreshed to the current pinned tag v1.4.3 (they lagged behind the tag revisions; the tag exists and CI is green fleet-wide).
- conventional-pr stub: dual pull_request/pull_request_target triggers so fork PRs from external contributors get labeled too (the reusable workflow never checks out PR code); explicit contents:read; pinned v1.4.3. - pre-commit workflow: robust modified-files runner (null-delimited paths, deletion-only PRs handled, deleted paths filtered, no undocumented -r flag, cache keyed on config hash). - flake8 args quoted correctly (the flow-scalar form split at commas and silently reduced the select list). - hooks pinned to .github v1.4.3. TRI-1100
|
Closing: the team is moving away from centralized org-level configuration in favor of per-repository self-contained setups (see #8897 for the first decentralized implementation). Branch retained for reference. TRI-1100 |
What does the PR do?
Aligns this repository with the org-wide setup consolidated in triton-inference-server/.github:
.pre-commit-config.yaml: shared baseline hooks, conventional-commit message validation (commit-msg stage), and the centralizedadd-licensehook from the org.githubrepository (rev: v1.4.3— excludes.github/templates, never rewrites LICENSE files).conventional-prworkflow (@v1.4.3): validates the PR title against Conventional Commits (hard gate — it becomes the squash-merge commit), derives one human-readable label per distinct type found in the title and all conforming commit subjects (e.g.ci:→CI/CD,feat:→feature,fix:→fix), enforces org-wide label colors/descriptions, detects cherry-picks, and fails if no type is derivable and no type label is assigned.Repo-specific: keeps the
deploy/templatescheck-yaml exclude;ISSUE_TEMPLATE/stays local — this repository is the org-wide issue intake point; the unused local SPDX script is removed.Best merged after triton-inference-server/.github#5 (full org-defaults diff: https://github.com/triton-inference-server/.github/pull/5/files). The pinned tags (current:
v1.4.3) already exist, so CI is green.Pros / Cons
Pros
.githubrepo) for hooks, templates, issue routing, and the PR-title workflow — one change propagates everywhere.Cons / risks
.githubrepository (tags are write-once; changes ship as a new tag + rev bump)..githubrepository to remain public.Related Issues / PRs
Related PRs:
Test plan
pre-commit validate-configpasses;pre-commit run --files <PR diff>passes locally with the centralized hooks pinned to the .github branch SHA.v1.4.3exists: the conventional-pr check validates this PR's own title and applies thecilabel.Caveats
Checklist
<commit_type>: <Title>(conventional commit)