Skip to content

fugui/code-notifier

Repository files navigation

Code-Shield Notifier

Code-Shield Notifier 是一个在 Windows 后台运行的系统托盘应用程序 (Tray App)。它主要负责监听本地端口,接收包含 Markdown 内容的通知请求,并将它们转换为格式化的 HTML 以及 PDF 附件,最后通过本地的 Outlook 客户端发送邮件或保存到草稿箱。

主要功能

  • 本地 HTTP 服务:在 0.0.0.0:8081 监听通知请求 (如 /api/notify/email)。
  • Outlook 集成:利用 Windows COM 接口与本地 Outlook 交互,支持直接发送邮件或保存到草稿箱。
  • 邮件模板管理:支持在界面中查看、自定义和保存邮件模板。
  • 自动/手动发送:可通过界面勾选“自动发送”。如果未勾选,所有通过 API 发送过来的请求将转化为 Outlook 中的草稿,并可以在 GUI 中一键“批量发送等待中的邮件”。
  • 系统托盘运行:关闭主窗口后,程序会自动隐藏在系统托盘中后台运行,不会干扰正常的桌面操作。

编译构建

本项目使用 Go 语言开发,由于调用了 Windows 原生 GUI 接口(使用 windigo 库),需要在能够编译 Windows 程序的平台上进行编译。

可以使用 Makefile 或者 build.bat 编译:

# 使用 Makefile
make build

# 或者直接执行 go build(推荐添加 -H=windowsgui 隐藏黑色命令行窗口)
GOOS=windows GOARCH=amd64 go build -ldflags "-H=windowsgui -s -w" -o notifier.exe

运行与使用

  1. 双击生成的 notifier.exe 即可运行。
  2. 程序启动后会在任务栏右下角系统托盘显示一个图标,双击图标可唤出主控制界面。
  3. 如果 8081 端口被占用,程序启动时会弹出报错对话框提示,请确保没有旧的进程残留。

📧 邮件模板说明

程序会在运行目录下自动加载或生成一个 template.md 文件。您可以编辑该文件自定义邮件正文模板。

默认模板内容

您好,

我们根据您管理的代码仓最新的代码提交信息,进行了 ${TASK.DISPLAYNAME},总结如下:

${BODY}

请您基于以上信息及附件,进行分析和处理。

谢谢。

支持的占位符变量

  • ${TASK.NAME}:任务类型的内部标识(例如:coredump_risk)。
  • ${TASK.DISPLAYNAME}:任务展示的友好名称(例如:Coredump 风险扫描)。
  • ${REPO.NAME}:扫描的代码仓库名称。
  • ${BRANCH}:扫描的代码仓库分支。
  • ${BODY}:AI 扫描发现的问题简要总结(纯文本或 Markdown 格式)。
  • ${REPORT_URL}:报告的在线查看链接。若模板未显式配置此占位符,且请求中带有了报告链接,系统会在末尾自动追加精美的报告直达跳转区块。

About

代码通知服务,通过邮件、IM 等把代码检视等活动, 通知开发人员

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors