Skip to main content

code-review

Review a pull request or code change in tektoncd/catalog. Use when asked to review a PR, evaluate a diff, or assess code quality. Applies Tekton community standards, TEP-0003 catalog organization, task authoring recommendations, and catalog-specific conventions (directory structure, metadata, tests).

来源信息

仓库
tektoncd/catalog
最近来源活动
2026年6月8日 07:38
检测到的 SKILL.md 语言
英语
星标
735
分支
602

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
code-review
description
Review a pull request or code change in tektoncd/catalog. Use when asked to review a PR, evaluate a diff, or assess code quality. Applies Tekton community standards, TEP-0003 catalog organization, task authoring recommendations, and catalog-specific conventions (directory structure, metadata, tests).
license
Apache-2.0
metadata
{"project":"tekton-catalog"}
allowed-tools
Read Grep Glob Bash(git diff:*) Bash(git log:*) Bash(yamllint:*)
# Code Review tektoncd/catalog follows [Tekton community review standards](https://github.com/tektoncd/community/blob/main/standards.md) and [TEP-0003 Catalog Organization](https://github.com/tektoncd/community/blob/master/teps/0003-tekton-catalog-organization.md). ## Review Checklist ### Catalog Organization (TEP-0003) - [ ] File path follows `<kind>/<name>/<version>/name.yaml` (kind = task, stepaction, or pipeline) - [ ] Resource YAML file name matches the resource name - [ ] `README.md` exists at `<kind>/<name>/<version>/README.md` - [ ] `OWNERS` file exists at `<kind>/<name>/OWNERS` (or version-level) - [ ] Version directory name is a valid semver-like format (e.g. `0.1`, `0.2`) ### Mandatory Metadata - [ ] Label `app.kubernetes.io/version` matches the directory version - [ ] Annotation `tekton.dev/pipelines.minVersion` is present and accurate - [ ] Annotation `tekton.dev/categories` is present (e.g. Git, Build, Deploy, CLI) - [ ] Annotation `tekton.dev/tags` is present with comma-separated tags - [ ] Annotation `tekton.dev/displayName` is present (optional but recommended) - [ ] Annotation `tekton.dev/platforms` lists supported platforms (optional) - [ ] `spec.description` follows the convention: one-line summary followed by detailed paragraph(s) ### Task Authoring Quality - [ ] **No `$(params.*)` interpolation inside `script` blocks** — this is a security vulnerability (code injection) and reliability issue. Parameters must be passed via `env` or `args` and referenced as `$ENV_VAR` or `$1`. See [recommendations.md](../../../recommendations.md) - [ ] Images are referenced by digest (`image@sha256:...`) where possible, not by mutable tags (`:latest`) - [ ] Steps run as non-root and non-privileged unless explicitly required. If root is needed, use `securityContext.runAsUser: 0` explicitly - [ ] Parameters have default values where reasonable - [ ] Workspaces have clear descriptions. Tasks should use **at most one writeable workspace** (Tekton recommendation) - [ ] Script steps use `#!/usr/bin/env bash` (or appropriate shebang) with `set -e` for error handling - [ ] No hardcoded values that should be parameters - [ ] Results are documented and used only for small data (commit SHAs, branch names). Large data should use a Workspace instead - [ ] Tasks are idempotent — safe to re-execute - [ ] `tekton.dev/pipelines.minVersion` is set to the lowest version that supports the features used (portability across Pipeline versions) ### YAML Quality - [ ] `yamllint` passes with the project's `.yamllint` config - [ ] No trailing whitespace - [ ] Consistent indentation (2 spaces) - [ ] Proper quoting of strings where needed ### Testing - [ ] New tasks or changed functionality include tests in `tests/` directory - [ ] Test directory contains `run.yaml` (TaskRun or PipelineRun) - [ ] Pre-apply hook scripts (`pre-apply-task-hook.sh`, `pre-apply-taskrun-hook.sh`) are used where setup is needed - [ ] For tasks calling external APIs, fixtures are provided in `tests/fixtures/` for go-rest-api-test - [ ] Tests do not depend on external services without fixture mocking ### New Version Workflow - [ ] If bumping a version (e.g. 0.1 to 0.2), the old version was copied first in a separate commit, then modified in a subsequent commit - [ ] Changes from the previous version are clearly visible in the diff (not buried in a full copy) ### Documentation - [ ] `README.md` documents all parameters with types and defaults - [ ] `README.md` documents all workspaces - [ ] `README.md` documents all results (if any) - [ ] `README.md` includes usage example(s) - [ ] `samples/` directory contains example TaskRun/PipelineRun YAMLs ### Security - [ ] **No `$(params.*)` interpolation in scripts** — critical injection risk (repeat check — this is the most common security issue in catalog tasks) - [ ] No secrets or credentials hardcoded in YAML - [ ] Sensitive data passed via Kubernetes Secrets or workspaces - [ ] Container images come from trusted registries - [ ] No use of `privileged: true` without justification ## What to Approve Approve when: - All checklist items pass - Tests cover the changed behavior - The change is focused (one concern per PR) - Commit messages follow [Tekton commit conventions](https://github.com/tektoncd/community/blob/main/standards.md#commit-messages) - New version workflow is followed (copy + modify in separate commits) ## What to Block Block (request changes) when: - `$(params.*)` is used inside `script` blocks (injection vulnerability) - TEP-0003 structure is not followed - Mandatory metadata labels/annotations are missing - Images use mutable tags without justification - Tests are missing for new or changed tasks - Security issues (hardcoded secrets, unnecessary privileges) - `yamllint` fails - Version copy and modifications are squashed into a single commit
在 GitHub 查看