Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Github Actions Author

ASecurity

当需要为仓库搭建 GitHub Actions 持续集成/部署(CI/CD)流水线时使用;产出可直接落地的 .github/workflows/*.yml(测试、构建推送镜像、K8s 部署、矩阵构建、安全扫描、可复用工作流、审批门禁);不适用于 GitLab CI、Jenkins 等非 GitHub 平台或运行时业务代码;触发词:github actions、workflow、工作流、ci/cd、流水线、自动化测试部署、matrix matrix构建、可复用工作流

3 stars
0 votes
0 copies
0 views
Added 9/19/2026
ai-agentspythongoshellnodedockerkubernetesawsazureterraformcode-review

Works with

cursorcliapi

Security Analysis

A100/100

Scanned 9/19/2026

$npx -y skills add findscripter/everything-skills --skill github-actions-author --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Github Actions Author?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Github Actions Author
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/findscripter-github-actions-author/badge)](https://www.skillsdirectory.com/skills/findscripter-github-actions-author)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: github-actions-author
title: GitHub Actions工作流编写
description: 当需要为仓库搭建 GitHub Actions 持续集成/部署(CI/CD)流水线时使用;产出可直接落地的 .github/workflows/*.yml(测试、构建推送镜像、K8s 部署、矩阵构建、安全扫描、可复用工作流、审批门禁);不适用于 GitLab CI、Jenkins 等非 GitHub 平台或运行时业务代码;触发词:github actions、workflow、工作流、ci/cd、流水线、自动化测试部署、matrix matrix构建、可复用工作流
domain: 平台/integration
triggers: [github actions, workflow, 工作流, ci/cd, 流水线, 自动化测试部署, matrix, 矩阵构建, 可复用工作流, github-actions-author]
tags: [github-actions, ci-cd, devops, workflow, docker, kubernetes, security-scan, yaml, integration]
level: 进阶
status: stable
agents: [claude-code, codex, cursor, gemini-cli]
tools: [GitHub Actions, actions/checkout, actions/setup-node, actions/setup-python, docker/build-push-action, docker/metadata-action, kubectl, aws-eks, aquasecurity/trivy-action, github/codeql-action, snyk, slackapi/slack-github-action]
requires: []
related: [ci-cd-pipeline-builder, deployment-engineer, gitops-argocd-flux, git-hooks-automation]
combines_with: [docker-container-optimizer, terraform-specialist, release-manager]
license: MIT
source: wshobson/agents
source_license: MIT
---
## 何时使用

适用于为 GitHub 托管仓库编写 `.github/workflows/*.yml`,实现自动化测试、构建并推送容器镜像、部署到 Kubernetes、跑安全扫描、矩阵多环境构建、抽取可复用工作流、生产审批门禁等场景。

不该用:目标平台是 GitLab CI、Jenkins、CircleCI、Azure Pipelines 等非 GitHub Actions(改用对应平台技能);只是编写应用业务代码或本地脚本而不涉及 CI/CD 编排;需要的是流水线整体架构设计而非具体工作流文件落地。

## 步骤

1. 明确触发条件:`push`/`pull_request` 的分支、`tags`、`workflow_call`(可复用)或 `workflow_dispatch`(手动)。
2. 选 runner:`ubuntu-latest` 为默认;跨平台需求用 matrix 列 `os`。
3. 编排 jobs 与 steps:第一步固定 `actions/checkout@v4`,再按需 setup 语言、装依赖、跑测试/构建/部署。
4. 按最小权限声明 `permissions`,敏感值一律走 `secrets`。
5. 配缓存(`cache: "npm"` 或 `cache-from/cache-to: type=gha`)加速。
6. 生产部署绑定 `environment` 触发审批门禁,并加失败/成功通知。

## 指令

- 锁定具体 action 版本(`@v4`),禁止 `@latest`,保证可复现。
- 缓存依赖;多版本验证用 matrix;PR 上启用状态检查(status checks)。
- 用 `permissions:` 显式声明最小权限(如 `contents: read`、`packages: write`)。
- 复用逻辑抽成 `workflow_call` 可复用工作流;生产环境加审批门禁与失败通知。
- 敏感工作负载可考虑 self-hosted runners。

## 示例

测试工作流(含 Node 矩阵 + 覆盖率上传):

```yaml
name: Test
on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]
jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x, 20.x]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: "npm"
      - run: npm ci
      - run: npm run lint
      - run: npm test
      - uses: codecov/codecov-action@v4
        with:
          files: ./coverage/lcov.info
```

构建并推送镜像到 GHCR(带 GHA 缓存、自动打 tag):

```yaml
name: Build and Push
on:
  push:
    branches: [main]
    tags: ["v*"]
env:
  REGISTRY: ghcr.io
  IMAGE_NAME: ${{ github.repository }}
jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write
    steps:
      - uses: actions/checkout@v4
      - uses: docker/login-action@v3
        with:
          registry: ${{ env.REGISTRY }}
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - id: meta
        uses: docker/metadata-action@v5
        with:
          images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
          tags: |
            type=ref,event=branch
            type=semver,pattern={{version}}
      - uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}
          cache-from: type=gha
          cache-to: type=gha,mode=max
```

可复用工作流(`workflow_call` 定义 + 调用):

```yaml
# .github/workflows/reusable-test.yml
on:
  workflow_call:
    inputs:
      node-version: { required: true, type: string }
    secrets:
      NPM_TOKEN: { required: true }
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: ${{ inputs.node-version }} }
      - run: npm ci
      - run: npm test
```

```yaml
# 调用方
jobs:
  call-test:
    uses: ./.github/workflows/reusable-test.yml
    with: { node-version: "20.x" }
    secrets: { NPM_TOKEN: ${{ secrets.NPM_TOKEN }} }
```

安全扫描(Trivy + SARIF 上传到 GitHub Security):

```yaml
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: aquasecurity/trivy-action@0.28.0
        with:
          scan-type: "fs"
          scan-ref: "."
          format: "sarif"
          output: "trivy-results.sarif"
      - uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: "trivy-results.sarif"
```

带审批门禁的生产部署(`environment` + 失败/成功通知):

```yaml
on:
  push:
    tags: ["v*"]
jobs:
  deploy:
    runs-on: ubuntu-latest
    environment:
      name: production
      url: https://app.example.com
    steps:
      - uses: actions/checkout@v4
      - run: echo "Deploying to production..."
      - if: success()
        uses: slackapi/slack-github-action@v1
        with:
          webhook-url: ${{ secrets.SLACK_WEBHOOK }}
          payload: |
            {"text": "Deployment to production completed successfully!"}
```

部署到 Kubernetes(EKS 场景关键命令):

```yaml
- uses: aws-actions/configure-aws-credentials@v4
  with:
    aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
    aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
    aws-region: us-west-2
- run: aws eks update-kubeconfig --name production-cluster --region us-west-2
- run: |
    kubectl apply -f k8s/
    kubectl rollout status deployment/my-app -n production
```

## 注意事项

- action 版本必须钉死到具体 tag/commit,`@latest` 在复现和供应链安全上都不可取。
- `secrets.GITHUB_TOKEN` 默认权限受 `permissions:` 约束,跨仓库或推镜像时按需显式放权。
- `cache: type=gha` 与 npm/pip 缓存能显著缩短 CI 时间,但注意缓存键命中与失效。
- 矩阵会成倍放大 job 数量,注意并发额度与计费;必要时用 `fail-fast`/`include`/`exclude` 收敛。
- 生产部署务必经 `environment` 审批门禁,避免误推;失败时加通知(Slack/邮件)便于及时介入。
- 跨平台矩阵中 Windows 的 shell 与路径差异需单独验证(脚本可能在 `ubuntu` 通过却在 `windows` 失败)。

## 互见

- `dependency-auditor`:把依赖漏洞审计接入 CI 安全扫描步骤。
- `code-reviewer`:在 PR 工作流中触发自动化代码审查与状态检查。

---

本条采编自 wshobson/agents(MIT 许可证)。

Attribution

findscripterfindscripter
View sourceSee grades on GitHubMore from findscripter →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →