ci: align pre-commit hooks and GitHub templates#19
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. Run pre-commit CI only on files modified by the PR, and roll out the standard issue templates and 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
Adopt the shared pre-commit baseline: conventional-commit message validation (commit-msg stage) and the centralized add-license hook from the org .github repository (v1.0.0 - excludes .github/ templates and never rewrites LICENSE files). Run pre-commit CI only on files modified by the PR, and add the caller stub for the org-wide conventional-pr reusable workflow (PR title validation + type labeling). PR and issue templates are no longer stored per repository: they are inherited from the org-wide defaults in triton-inference-server/.github (issues route to the server repository). TRI-1100
Org-wide label color scheme and cherry-pick detection. TRI-1100
Human-readable type labels with enforced descriptions and colors. TRI-1100
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
Grant issues:write to the labeling job (review feedback). TRI-1100
Greptile SummaryThis PR aligns the repository's CI/pre-commit setup with the org-wide baseline in
Confidence Score: 5/5Safe to merge — all three files are CI/config-only changes with no runtime code paths, the pull_request_target guard is correctly scoped, and all hooks are pinned to a specific tag. The changes are purely CI workflow and pre-commit configuration. The pull_request_target conditional correctly prevents double-triggering and the safety relies only on the org-internal reusable workflow (pinned tag, write-once) not checking out PR code — a claim consistent with the comment in the file. The pre-commit improvements (null-delimited paths, deleted-file filter, cache) are straightforwardly correct. No logic errors or missing guards were found. 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 OrgWF as org .github reusable workflow (v1.4.3)
Dev->>GH: Open / update PR
GH->>PC: pull_request event
PC->>PC: checkout (fetch-depth 2)
PC->>PC: cache restore (~/.cache/pre-commit)
PC->>PC: pip install pre-commit
PC->>PC: "git diff -z --diff-filter=d HEAD^1 HEAD"
PC->>PC: pre-commit run --files changed files
GH->>CP: pull_request (same-repo) OR pull_request_target (fork)
CP->>CP: if guard routes same-repo to pull_request, fork to pull_request_target
CP->>OrgWF: "uses conventional-pr.yml@v1.4.3"
OrgWF->>GH: validate PR title (Conventional Commits)
OrgWF->>GH: derive + apply type label
OrgWF->>GH: detect cherry-picks, fail if no type derivable
Reviews (2): Last reviewed commit: "ci: harden CI workflows and configs per ..." | Re-trigger Greptile |
- 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
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.Depends on triton-inference-server/.github#5 (pinned tags current:
v1.4.3— already exist, 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)