scanner-inc/validate-detection-rules
GitHub: scanner-inc/validate-detection-rules
一个 GitHub Action,封装 scanner-cli 对仓库中的 YAML 检测规则文件进行格式校验和测试运行,并在 GitHub 上以标注形式展示结果。
Stars: 0 | Forks: 1
# Detection Rule Validator Action
一个 GitHub Action,通过使用 scanner-cli 工具扫描存储库中的 YAML 文件来验证检测规则。
## 用法
```
name: Validate Detection Rules
on: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: scanner-inc/validate-detection-rules@v0.2.0
with:
check_action: "validate_and_run_tests"
scanner_api_url: "${{ secrets.SCANNER_API_URL }}"
scanner_api_key: "${{ secrets.SCANNER_API_KEY }}"
```
## 输入
| 输入 | 描述 | 必需 | 默认值 |
| ----------------- | -------------------------------------------------------------- | -------- | --------------- |
| `check_action` | 要执行的操作:`validate_only` 或 `validate_and_run_tests` | 否 | `validate_only` |
| `scanner_api_url` | Scanner 实例的 API URL | 是 | - |
| `scanner_api_key` | Scanner API key | 是 | - |
| `file` | 检测规则文件 - 逗号分隔的列表 | 否 | - |
| `dir` | 检测规则文件的目录 | 否 | - |
| `recursive` | 递归搜索目录以查找有效的 YAML 文件 | 否 | `true` |
### 检查操作模式
- **`validate_only`**(默认):运行 `scanner-cli validate` 来检查检测规则是否为有效的 YAML 并且符合预期的 schema。
- **`validate_and_run_tests`**:运行 `scanner-cli run-tests` 来验证规则,并执行检测规则中定义的任何嵌入式测试。
如果未指定 `file` 和 `dir`,该操作将递归扫描当前目录(`.`)。我们建议默认使用此行为,因为它与 Scanner 的 Github 同步逻辑的行为相匹配。
有关获取 API URL 和密钥的详细信息,请参阅 [Scanner.dev CLI 文档](https://docs.scanner.dev/scanner/using-scanner/beta-features/detection-rules-as-code/cli)。
## 工作原理
该操作会安装 scanner-cli 工具,并使用指定的文件、目录和选项运行 `scanner-cli validate` 或 `scanner-cli run-tests`(取决于 `check_action` 输入)。
CLI 在两种模式下都会使用 `--json` 运行,并且会解析结构化响应,以便在每个失败的文件上显示 GitHub 标注(并在每个带有非致命建议的文件上显示警告标注)。对于 `validate_and_run_tests`,单个失败的测试也会作为标注显示在规则的 YAML 文件上。
## 开发
此存储库使用 Yarn 4(通过 Corepack 管理)。
准备发布:
1. 安装依赖项:`yarn install`
2. 构建打包发行版:`yarn build`
3. 提交 `dist/` 文件夹:`git add dist && git commit -m "Build dist"`
4. 标记发布版本:`git tag v{$VERSION} && git push --tags`
打包后的 `dist/index.js` 包含所有依赖项,因此用户无需安装任何内容。
### 重新生成 schema bundle
要重新生成,请安装 [`gh`](https://cli.github.com/) 并进行身份验证(`gh auth login`),然后:
```
yarn gen_schema
```
标签:GitHub Action, MITM代理, 安全检测规则, 自动化攻击