首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >GitLab × PawSQL:提交代码即自动审核,SQL 质量零漏洞

GitLab × PawSQL:提交代码即自动审核,SQL 质量零漏洞

作者头像
PawSQL
发布2026-06-17 20:46:49
发布2026-06-17 20:46:49
1240
举报

配置一次,从此每次往GitLab仓库 Push 代码或创建 MR,PawSQL 自动审核其中的 SQL 文件,审核结果直接回写到 GitLab 评论区。 开发者在 GitLab 里就能看到 SQL 有什么问题,DBA 不用手动翻代码找坑。 适用于 GitLab SaaS 和私有化部署。

引言:四步完成初始化,后续自动触发

步骤

在哪操作

做什么

GitLab

创建 Access Token

PawSQL

注册 GitLab 平台实例

PawSQL

为平台添加监控项

GitLab

配置 Webhook,打通回调

GitLab

用户日常Push 或创建 MR,自动触发审核

前置条件: PawSQL 实例已部署 · GitLab 实例可用 · GitLab 账号需 MaintainerOwner 权限 · PawSQL 账号需平台集成管理权限。

一句话了解PawSQL : PawSQL 是 AI 驱动的企业级智能 SQL 审核优化平台,全球个人用户超 2 万。核心能力包括:40+ 种查询重写算法、基于代价模型的智能索引推荐、内置 300 + 规则集保障 SQL 合规安全、覆盖开发到运维全生命周期治理并支持 CI/CD 集成、兼容 MySQL、Oracle、openGauss、TDSQL 等 20 余种数据库。

第一步:在 GitLab 中创建 Access Token

PawSQL 要通过 API 读取项目、分支、文件、Diff,并写入评论。需要一个 api scope 的 Personal Access Token。

登录 GitLab → 右上角头像 → Preferences → 左侧菜单 Access Tokens

GitLab 用户菜单 - Preferences
GitLab 用户菜单 - Preferences

点击 Add new token,按以下配置填写:

配置项

填写

Token name

pawsql-integration(可自定义)

Expiration date

建议至少 1 年

Scopes

勾选 api

创建 Access Token 表单
创建 Access Token 表单

点击 Create personal access token。创建成功后立即复制保存 Token——刷新页面后将不可再次查看。

Token 创建成功 - 复制 Token
Token 创建成功 - 复制 Token

⚠️ Token 是敏感凭证,请勿泄露或提交到代码仓库。

第二步:在 PawSQL 中添加 GitLab 平台

登录 PawSQL → 左侧导航 平台集成 → 右上角 添加平台。

平台列表页 - 添加平台按钮
平台列表页 - 添加平台按钮

平台类型选 GitLab,填写配置:

配置项

说明

示例

平台名称

自定义

我的GitLab

GitLab 地址

API Base URL

SaaS: https://gitlab.com

Access Token

第一步创建的 Token

glpat-xxxxxxxxxxxx

Webhook Secret

自定义密钥,用于验证回调

my-webhook-secret

GitLab 平台配置表单
GitLab 平台配置表单

💡 Webhook Secret 可选,但生产环境建议启用——后续 GitLab 配置 Webhook 时需填入相同密钥。

点击创建,平台列表中出现刚添加的 GitLab,状态 已启用

平台列表 - GitLab 平台已添加
平台列表 - GitLab 平台已添加

第三步:添加监控项

这一步决定审核什么、什么时候审、审完了怎么反馈

3.1 进入监控管理

平台列表中找到 GitLab → 点击 管理监控。进入后页面顶部显示 Webhook URL——先复制下来,第四步要用。

平台列表 - 管理监控按钮
平台列表 - 管理监控按钮

3.2 新建监控项

点击 添加监控,逐项配置:

添加监控按钮
添加监控按钮

① 选择仓库 — 下拉列表自动加载你有权限的项目。

选择仓库下拉框
选择仓库下拉框

② 选择分支 — 支持 glob 模式(* 匹配所有分支)。

选择分支下拉框
选择分支下拉框

③ 选择事件类型(可多选):

  • PUSH — 代码推送到监控分支时触发
  • MERGE_REQUEST — 创建或更新 MR 时触发
选择事件类型
选择事件类型

💡 两项都勾选最佳——覆盖 Push 和 MR 两种变更场景。

④ 选择审核模式

  • 变更文件(推荐):仅审核本次 Push/MR 中变更的 SQL 文件
  • 目录扫描:审核监控路径下所有 SQL 文件
选择审核模式
选择审核模式

⑤ 填写监控路径 — 只审核该路径下的 .sql / .xml 文件:

路径

范围

/

整个仓库

/sql

仅 sql 目录

/db/migration

仅迁移目录

填写监控路径
填写监控路径

⑥ 选择工作空间 — 决定审核使用的数据库类型和版本。

选择工作空间
选择工作空间

⑦ 选择规则模板 — 系统根据工作空间自动匹配默认模板,也可自定义。

选择规则模板
选择规则模板

⑧ 开启评论回写(强烈推荐)— 审核结果自动写回 GitLab 评论区。

评论回写开关
评论回写开关

💡 这是整套集成的核心价值。 开启后,开发者直接在 GitLab 的 Commit 或 MR 页面看到 SQL 审核反馈——查出什么问题、在哪一行、怎么修。不用切到 PawSQL。

⑨ 选择审核人(可多选)— 需要人工审查时通知。

选择审核人
选择审核人

3.3 保存

点击 保存。监控项就绪。

监控列表 - 新建的监控项
监控列表 - 新建的监控项

第四步:在 GitLab 中配置 Webhook

把 PawSQL 的回调地址注册到 GitLab,让 Push 和 MR 事件能通知到 PawSQL。

GitLab 项目 → Settings → Webhooks → Add new webhook:

24-gitlab-add-webhook-form.png
24-gitlab-add-webhook-form.png

配置项

填写

URL

第三步中复制的 Webhook URL

Secret token

第二步设置的 Webhook Secret(如有)

Trigger

勾选 Push events 和 Merge request events

SSL verification

HTTPS 且证书有效时保持勾选

Webhook 列表中出现新条目,即配置成功。

可选验证:点击 Webhook 右侧 TestPush events,返回 HTTP 200 即连接正常。

GitLab Webhook 测试成功
GitLab Webhook 测试成功

第五步:触发审核,看效果

Push 代码

向监控分支推送含 SQL 的 Commit 即触发:

代码语言:javascript
复制
git checkout main
echo "CREATE TABLE users (id INT, name VARCHAR(255));" > db/migration/V001_create_users.sql
git add . && git commit -m "Add user table migration"
git push origin main

创建 Merge Request

从 feature 分支创建 MR 到监控分支,MR 含 SQL 文件变更即触发。

GitLab 创建 Merge Request
GitLab 创建 Merge Request

在哪看结果?

  • GitLab 内(开启评论回写):审核完成自动在 Commit 或 MR 中写入评论——审核结果、统计信息、每条违规的 SQL 和行号。开发者不离开 GitLab 就能定位问题。
GitLab MR 审核评论
GitLab MR 审核评论
  • PawSQL平台:进入 工单管理,点击具体任务查看完整报告——结果总览、文件列表、每条 SQL 的违规详情和修复建议。
PawSQL 审核报告详情页
PawSQL 审核报告详情页

常见问题

  • Access Token 需要什么权限?api scope 足矣——覆盖读项目/分支/文件、读 Diff、写评论和 MR Note。
  • 支持哪些文件类型?.sql.xml(MyBatis Mapper)中的 SQL 语句。
  • Webhook 没触发? 依次检查:URL 是否正确、Secret 是否一致、推送分支是否匹配监控配置、文件路径是否在监控范围、文件类型是否支持。
  • 私有化 GitLab 能用吗? 完全支持。API Base URL 填私有化地址即可(如 https://gitlab.company.com),确保 PawSQL 能访问。
  • 怎么修改监控项? 监控列表右侧有编辑和删除按钮。删除不会自动清理 GitLab 中的 Webhook,需手动处理。
  • "待人工审查"是什么? 违规程度未达自动拒绝阈值,需指定审核人确认。

五分钟配完,以后每次提交 SQL,质量检查自动跑。 开发者省掉"等 DBA 检查"的等待,DBA 省掉"逐条翻 SQL"的重复劳动。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PawSQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言:四步完成初始化,后续自动触发
  • 第一步:在 GitLab 中创建 Access Token
  • 第二步:在 PawSQL 中添加 GitLab 平台
  • 第三步:添加监控项
    • 3.1 进入监控管理
    • 3.2 新建监控项
    • 3.3 保存
  • 第四步:在 GitLab 中配置 Webhook
  • 第五步:触发审核,看效果
    • Push 代码
    • 创建 Merge Request
    • 在哪看结果?
  • 常见问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档