前言
很多开发者都在使用公司私有化部署的gitlab仓库进行代码托管,在某些场景下希望监控某个文件的变更,比如配置文件的变更,错误代码定义的变更,这些需要通知到运维,或者产品,已做响应的信息同步。
我实现了一个gitlab 文件监控器,用于检查指定分支的文件是否发生了变更,在有变更时,把变更内容通过邮件的方式通知到接收人的邮箱。
代码已经放到mobiusy/gitlab-file-watcher (github.com), 欢迎start, fork, 提需求。
如何使用
使用Node运行
要使用这个工具,您需要执行以下步骤:
- 将仓库克隆到您的本地机器。
- 运行
npm install安装所需的依赖项。 - 在项目的根目录下创建一个
.env文件,并添加以下环境变量:# gitlab配置 GITLAB_URL=https://gitlab.com # 相对于仓库根目录的文件路径,您想要检查的文件 FILE_PATH=src/lib/exception-code.ts # 格式:命名空间/仓库 REPOSITORY=your-group/repository-name # 如何生成您的私有令牌,请参阅:https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-personal-access-token PRIVATE_TOKEN=xxxxxxxxxxxx # 提交时间,格式:YYYY-MM-DDTHH:mm:ssZ SINCE=2023-07-04T08:00:00.000Z # 运行计划 # Cron风格的调度,参见:https://crontab.guru SCHEDULE=*/5 * * * * # 电子邮件配置 EMAIL_HOST=smtp.domain.com PORT=465 SECURE=true AUTH_USER=your-email@example.com AUTH_PASS=your-email-password # 收件人,用逗号分隔 RECIPIENTS=tom@example.com,jerry@example.com - 运行
npm run start启动工具。
使用Docker运行
在项目的根目录下运行以下命令:
docker build -t gitlab-change-notifier:latest .
docker run -d \
-v /absolute/path/to/.env:/app/.env \
--name gitlab-change-notifier \
--restart=always \
gitlab-change-notifier:latest
使用Docker Compose运行
在项目的根目录下运行以下命令:
docker-compose up -d