如何运行shell命令捕获输出写入UML图,实现git SHA自动注入脚注
UML脚注新增Git SHA标识实现方案
需求背景
现有UML工具已支持脚注功能,可自动生成图片创建日期、创建用户等信息,现需将Git Commit SHA加入脚注,需要新增类似%date()的内置预处理器函数,支持传入Shell命令及参数执行,并返回命令的输出文本,预期用法为%sys_call("git rev-parse --short=10 HEAD")。
实现步骤
- 新增
%sys_call()预处理器内置函数,入参为合法的Shell命令字符串 - 函数内部调用系统Shell执行传入命令,捕获标准输出内容,自动去除首尾换行、空白字符后返回
- 新增异常兼容逻辑:命令执行报错、无执行权限、当前目录不是Git仓库等异常场景下,返回预设占位符(如
unknown_commit),避免UML渲染流程中断
配置示例
脚注模板配置:
生成时间:%date(%Y-%m-%d %H:%M) | 创建用户:%current_user() | Git版本:%sys_call("git rev-parse --short=10 HEAD")
实际渲染效果参考:
生成时间:2024-05-22 16:47 | 创建用户:wangwu | Git版本:f83d29c7e0
注意事项
- 需对传入
%sys_call()的命令做安全校验,拦截高危操作指令,避免命令注入风险 - 执行命令时建议设置1-2秒的超时阈值,避免异常命令阻塞UML生成流程
内容的提问来源于stack exchange,提问作者Curtis Lehman
相关产品推荐
相关产品推荐

