Skip to content

ci: align pre-commit hooks and GitHub templates#19

Open
mc-nv wants to merge 17 commits into
mainfrom
mchornyi/TRI-1100/github-align-hooks-and-templates
Open

ci: align pre-commit hooks and GitHub templates#19
mc-nv wants to merge 17 commits into
mainfrom
mchornyi/TRI-1100/github-align-hooks-and-templates

Conversation

@mc-nv

@mc-nv mc-nv commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

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 centralized add-license hook from the org .github repository (rev: v1.4.3 — excludes .github/ templates, never rewrites LICENSE files).
  • Pre-commit CI runs only on files modified by the PR.
  • Caller stub for the org-wide reusable conventional-pr workflow (@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.
  • No per-repo templates: PR templates and issue routing are inherited from the org-wide defaults in triton-inference-server/.github (issues route to the server repository).

Depends on triton-inference-server/.github#5 (pinned tags current: v1.4.3 — already exist, CI is green).

Pros / Cons

Pros

  • Single home (org .github repo) for hooks, templates, issue routing, and the PR-title workflow — one change propagates everywhere.
  • Repos carry only a config file and two small workflow stubs; no template copies to drift.
  • Commit/PR title format enforced both locally (commit-msg hook) and in CI (reusable workflow), with automatic type labels.
  • License hooks never modify LICENSE files.

Cons / risks

  • Version-pinned dependency on the org .github repository (tags are write-once; changes ship as a new tag + rev bump).
  • Template inheritance requires the org .github repository to remain public.

Related Issues / PRs

  • Resolves: TRI-1100

Related PRs:

Test plan

  • pre-commit validate-config passes; pre-commit run --files <PR diff> passes locally with the centralized hooks pinned to the .github branch SHA.
  • After .github#5 merges and v1.4.3 exists: the conventional-pr check validates this PR's own title and applies the ci label.
  • No LICENSE file content is changed by this PR.

Caveats

  • None beyond the merge-order note above.

Checklist

  • PR title follows <commit_type>: <Title> (conventional commit)
  • I ran pre-commit locally on all files changed by this PR and it passes
  • Copyright header is correct on all changed files
  • External contributors: I have read the Contribution guidelines and signed the Contributor License Agreement

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
@mc-nv mc-nv self-assigned this Jul 18, 2026
This was referenced Jul 18, 2026
Legal's Copyright / License Header Guidance specifies the SPDX form
without a comma after the year.

TRI-1100
@mc-nv
mc-nv marked this pull request as ready for review July 18, 2026 02:05
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
@github-actions github-actions Bot added CI/CD Continuous integration and workflow changes (ci: PRs) and removed ci labels Jul 20, 2026
@github-actions github-actions Bot added the chore Maintenance work, no production code change (chore: PRs) label Jul 20, 2026
mc-nv added 3 commits July 21, 2026 08:16
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
@mc-nv
mc-nv requested a review from pskiran1 July 22, 2026 15:11
@Vinya567

Copy link
Copy Markdown

@greptileai

@greptile-apps

greptile-apps Bot commented Jul 22, 2026

Copy link
Copy Markdown

Greptile Summary

This PR aligns the repository's CI/pre-commit setup with the org-wide baseline in triton-inference-server/.github. All three changed files introduce or update thin callers/configs that delegate logic to the centralized org repo at the pinned tag v1.4.3.

  • .github/workflows/conventional-pr.yml (new): thin caller for the org reusable workflow; correctly guards against double-triggering by routing same-repo PRs through pull_request and fork PRs through pull_request_target, with permissions scoped to pull-requests: write and issues: write only.
  • .github/workflows/pre-commit.yml: replaces pre-commit/action with a direct pip install + manual run; improves robustness with null-delimited file lists (-z/-0), --diff-filter=d to skip deleted paths, a pre-commit cache step keyed on the config hash, and a minimal contents: read permission.
  • .pre-commit-config.yaml: adds default_install_hook_types for commit-msg stage, a conventional-pre-commit hook, fixes a stray space in the flake8 --extend-ignore arg, and migrates add-license from developer_tools to triton-inference-server/.github.

Confidence Score: 5/5

Safe 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

Filename Overview
.github/workflows/conventional-pr.yml New thin-caller workflow delegating PR-title validation and labeling to the org-wide reusable workflow at v1.4.3, with a correct pull_request / pull_request_target guard to prevent double-triggering and safely handle fork PRs.
.github/workflows/pre-commit.yml Replaces the pre-commit/action invocation with a direct pip-install + manual run; adds pre-commit cache, null-delimited file list (robust to paths with spaces), --diff-filter=d to skip deleted files, and a minimal contents: read permission.
.pre-commit-config.yaml Adds default_install_hook_types for commit-msg stage, conventional-pre-commit hook, fixes flake8 arg formatting (removes stray space in --extend-ignore), and migrates add-license hook from developer_tools to the org .github repo at v1.4.3.

Sequence Diagram

sequenceDiagram
    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
Loading

Reviews (2): Last reviewed commit: "ci: harden CI workflows and configs per ..." | Re-trigger Greptile

Comment thread .github/workflows/conventional-pr.yml Outdated
- 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance work, no production code change (chore: PRs) CI/CD Continuous integration and workflow changes (ci: PRs)

Development

Successfully merging this pull request may close these issues.

2 participants