g2log 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,15 @@
1
+ {
2
+ "api_key": "your-api-key-here",
3
+ "default_author": "张三",
4
+ "default_since": "yesterday",
5
+ "default_until": "today",
6
+ "model": "deepseek-chat",
7
+ "api_base_url": "https://api.deepseek.com",
8
+ "api_provider": "deepseek",
9
+ "repositories": {
10
+ "前端项目": "/path/to/frontend-project",
11
+ "后端项目": "/path/to/backend-project",
12
+ "移动端": "/path/to/mobile-app"
13
+ },
14
+ "prompt_template": "请根据下面的Git提交记录,用3-5句话简洁地总结一天的工作内容。\n\n以下是Git提交记录:\n\n{log_content}\n\n要求:\n1. 按项目和日期组织内容\n2. 每个项目每天的工作内容用3-5句话概括\n3. 使用清晰、专业但不晦涩的语言\n4. 突出重要的功能开发、问题修复和优化改进\n5. 适合放入工作日报的简洁描述\n6. 输出格式为:【日期】:\n 【项目名称1】-【工作内容概述】\n 【项目名称2】-【工作内容概述】\n7. 回复不要出现多余的内容,非必要不要用markdown格式"
15
+ }
package/CONFIG.md ADDED
@@ -0,0 +1,155 @@
1
+ # Git用户日志工具配置说明
2
+
3
+ Git用户日志工具支持通过配置文件来简化命令行参数输入,提高使用效率。配置文件默认保存在用户主目录下的 `.git-user-log-config.json`。
4
+
5
+ ## 配置文件结构
6
+
7
+ 配置文件采用JSON格式,包含以下主要配置项:
8
+
9
+ ```json
10
+ {
11
+ "deepseek_api_key": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
12
+ "default_author": "张三",
13
+ "default_since": "yesterday",
14
+ "default_until": "today",
15
+ "repositories": {
16
+ "前端": "/path/to/frontend-project",
17
+ "后端": "/path/to/backend-project"
18
+ },
19
+ "prompt_template": "请根据下面的Git提交记录,用3-5句话简洁地总结一天的工作内容。\n\n这些是{author}在{since}至{until}期间的Git提交记录:\n\n{log_content}\n\n..."
20
+ }
21
+ ```
22
+
23
+ ## 配置项说明
24
+
25
+ ### API密钥设置
26
+
27
+ ```json
28
+ "deepseek_api_key": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
29
+ ```
30
+
31
+ - 用于AI总结功能
32
+ - 从DeepSeek官网获取API密钥后填入
33
+ - 也可通过命令行设置:`git-user-log --set-api-key="YOUR_API_KEY"`
34
+
35
+ ### 默认作者
36
+
37
+ ```json
38
+ "default_author": "张三"
39
+ ```
40
+
41
+ - 设置默认的Git提交作者名称
42
+ - 如果命令行不指定`--author`参数,将使用此默认值
43
+ - 也可通过命令行设置:`git-user-log --set-default-author="张三"`
44
+
45
+ ### 默认时间范围
46
+
47
+ ```json
48
+ "default_since": "yesterday",
49
+ "default_until": "today"
50
+ ```
51
+
52
+ - 设置查询Git提交记录的默认时间范围
53
+ - 支持Git支持的各种时间格式:
54
+ - 具体日期:`2023-01-01`
55
+ - 相对日期:`1 week ago`, `yesterday`
56
+ - 特殊关键词:`today`, `last Monday`
57
+ - 也可通过命令行设置:`git-user-log --set-time-range --since="yesterday" --until="today"`
58
+
59
+ ### 仓库配置
60
+
61
+ ```json
62
+ "repositories": {
63
+ "前端": "/Users/username/Projects/frontend-project",
64
+ "后端": "/Users/username/Projects/backend-project",
65
+ "移动端": "/Users/username/Projects/mobile-app"
66
+ }
67
+ ```
68
+
69
+ - 设置仓库路径别名,方便快速切换不同项目
70
+ - 键值对格式:`"别名": "完整路径"`
71
+ - 自动处理功能:当配置了多个仓库时,不指定`--repo`参数会自动处理所有仓库并汇总结果
72
+ - 使用方法:
73
+ - 处理所有仓库:`git-user-log --ai-summary`
74
+ - 指定单个仓库:`git-user-log --repo="前端" --ai-summary`
75
+ - 管理命令:
76
+ - 添加仓库:`git-user-log --add-repo="前端" --path="/path/to/frontend"`
77
+ - 删除仓库:`git-user-log --remove-repo="前端"`
78
+ - 查看所有:`git-user-log --list-repos"`
79
+
80
+ ### AI提示词模板
81
+
82
+ ```json
83
+ "prompt_template": "请根据下面的Git提交记录,用3-5句话简洁地总结一天的工作内容。\n\n这些是{author}在{since}至{until}期间的Git提交记录:\n\n{log_content}\n\n..."
84
+ ```
85
+
86
+ - 自定义AI总结功能的提示词模板
87
+ - 支持的变量:
88
+ - `{author}`: 提交作者
89
+ - `{since}`: 起始日期
90
+ - `{until}`: 结束日期
91
+ - `{log_content}`: Git提交日志内容
92
+ - 设置方式:
93
+ - 通过配置文件直接设置
94
+ - 通过命令行从文件读取:`git-user-log --set-prompt-template="my-prompt.txt"`
95
+
96
+ ## 配置优先级
97
+
98
+ 1. 命令行参数具有最高优先级
99
+ 2. 配置文件中的设置作为默认值
100
+ 3. 如果都未指定,则部分参数会使用程序内置默认值
101
+
102
+ ## 多仓库自动处理功能
103
+
104
+ 当配置文件中设置了多个仓库,且运行命令时不指定`--repo`参数时,工具会:
105
+
106
+ 1. 自动获取所有配置仓库的Git提交记录
107
+ 2. 合并所有仓库的日志,并在每条记录前加上仓库标识
108
+ 3. 如果使用`--ai-summary`,将所有仓库的日志一起发送给AI进行总结
109
+ 4. 生成包含所有项目工作内容的统一总结
110
+
111
+ 这个功能特别适合:
112
+ - 同时负责多个项目的开发人员
113
+ - 需要生成包含所有项目的每日工作总结
114
+ - 希望减少重复操作的场景
115
+
116
+ ## 配置示例
117
+
118
+ ### 基础配置示例
119
+
120
+ ```json
121
+ {
122
+ "deepseek_api_key": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
123
+ "default_author": "张三",
124
+ "default_since": "today",
125
+ "default_until": "today"
126
+ }
127
+ ```
128
+
129
+ ### 带多个仓库的完整配置
130
+
131
+ ```json
132
+ {
133
+ "deepseek_api_key": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
134
+ "default_author": "张三",
135
+ "default_since": "yesterday",
136
+ "default_until": "today",
137
+ "repositories": {
138
+ "前端": "/Users/username/Projects/frontend-project",
139
+ "后端": "/Users/username/Projects/backend-project",
140
+ "移动端": "/Users/username/Projects/mobile-app",
141
+ "文档": "/Users/username/Projects/documentation",
142
+ "工具": "/Users/username/Projects/tools"
143
+ },
144
+ "prompt_template": "请根据下面的Git提交记录,用3-5句话简洁地总结一天的工作内容。\n\n这些是{author}在{since}至{until}期间的Git提交记录:\n\n{log_content}\n\n要求:\n1. 按项目和日期组织内容\n2. 每个项目每天的工作内容用3-5句话概括\n3. 使用清晰、专业但不晦涩的语言"
145
+ }
146
+ ```
147
+
148
+ ## 使用技巧
149
+
150
+ 1. 设置适合自己的默认作者和时间范围,可以直接使用`git-user-log --ai-summary`生成今日工作总结
151
+ 2. 为经常使用的项目配置别名,避免每次输入完整路径
152
+ 3. 可以按团队、项目类型等方式组织仓库别名,便于管理
153
+ 4. 自定义AI提示词模板,使生成的工作总结更符合自己的风格和需求
154
+ 5. 对于跨多个仓库工作的开发者,利用多仓库自动处理功能大幅提高效率
155
+ 6. 建议保持API密钥的安全,不要将含有真实API密钥的配置文件提交到公共代码仓库
package/PUBLISH.md ADDED
@@ -0,0 +1,111 @@
1
+ # Git用户日志工具发布指南
2
+
3
+ 本文档提供了将Git用户日志工具发布到npm的步骤。
4
+
5
+ ## 准备工作
6
+
7
+ 1. 确保你有一个npm账号,如果没有,请在[npmjs.com](https://www.npmjs.com)注册
8
+
9
+ 2. 登录到npm:
10
+ ```bash
11
+ npm login
12
+ ```
13
+
14
+ 3. 更新package.json中的以下字段:
15
+ - `version`: 每次发布前增加版本号
16
+ - `author`: 填写你的名字和邮箱
17
+ - `repository.url`: 更新为你的GitHub仓库地址
18
+ - `bugs.url`: 更新为你的GitHub仓库issues地址
19
+ - `homepage`: 更新为你的GitHub仓库主页
20
+
21
+ ## 发布步骤
22
+
23
+ 1. 确保所有代码变更已提交并推送到GitHub
24
+
25
+ 2. 确保所有文件都有正确的执行权限:
26
+ ```bash
27
+ chmod +x git-user-log.js
28
+ chmod +x install.js
29
+ ```
30
+
31
+ 3. 检查是否所有必要的文件都会被包含在发布中:
32
+ ```bash
33
+ npm pack
34
+ ```
35
+ 这将创建一个tar包而不实际发布。检查生成的.tgz文件内容,确保包含所有必要的文件,并且没有不需要的文件。
36
+
37
+ 4. 选择版本更新类型并发布:
38
+ ```bash
39
+ # 补丁版本更新 (修复bug等小变更)
40
+ npm version patch
41
+
42
+ # 次要版本更新 (添加新功能,但向后兼容)
43
+ npm version minor
44
+
45
+ # 主要版本更新 (重大变更,可能不向后兼容)
46
+ npm version major
47
+ ```
48
+
49
+ 5. 发布到npm:
50
+ ```bash
51
+ npm publish
52
+ ```
53
+
54
+ 发布成功后,用户可以通过以下方式使用:
55
+ - 全局安装: `npm install -g g2log`
56
+ - 直接运行: `npx g2log [选项]`
57
+
58
+ 6. 发布成功后,为该版本创建一个GitHub release:
59
+ ```bash
60
+ git push --tags
61
+ ```
62
+ 然后在GitHub上创建对应的release。
63
+
64
+ ## 更新已发布的包
65
+
66
+ 1. 进行代码修改
67
+
68
+ 2. 更新版本号:
69
+ ```bash
70
+ npm version patch # 或minor或major
71
+ ```
72
+
73
+ 3. 再次发布:
74
+ ```bash
75
+ npm publish
76
+ ```
77
+
78
+ ## 撤回发布
79
+
80
+ 如果发现发布的版本有严重问题,可以在发布后24小时内撤回:
81
+
82
+ ```bash
83
+ npm unpublish g2log@x.y.z # 替换x.y.z为要撤回的版本号
84
+ ```
85
+
86
+ ## 本地测试
87
+
88
+ 在正式发布前,可以使用以下命令进行本地测试:
89
+
90
+ ```bash
91
+ # 在本地创建全局链接
92
+ ./local-install.sh
93
+
94
+ # 测试命令
95
+ g2log --help
96
+
97
+ # 完成测试后,移除本地链接
98
+ npm unlink g2log
99
+ ```
100
+
101
+ ## NPX测试
102
+
103
+ 发布前测试npx调用:
104
+
105
+ ```bash
106
+ # 先打包但不发布
107
+ npm pack
108
+
109
+ # 使用本地包进行测试
110
+ npx -p ./g2log-x.y.z.tgz g2log --help
111
+ ```
package/README.md ADDED
@@ -0,0 +1,201 @@
1
+ # Git 用户日志工具
2
+
3
+ 这是一个基于 Node.js 开发的命令行工具,用于获取指定用户在特定时间范围内的 Git 提交记录,并通过 AI 自动生成工作总结。
4
+
5
+ ## 功能特点
6
+
7
+ - 🔍 自动从配置文件读取用户信息和仓库路径
8
+ - 📅 支持灵活的时间范围过滤
9
+ - 🎨 彩色命令行输出提升可读性
10
+ - 📁 支持将结果导出到文件
11
+ - 🔄 进度显示和友好的用户界面
12
+ - 🤖 自动生成3-5句话的工作总结
13
+ - ⚙️ 支持配置文件设置默认参数和多仓库别名
14
+ - 🌊 支持流式输出AI响应,实时查看生成过程
15
+ - 🔌 支持多种AI提供商API(OpenAI, DeepSeek)
16
+ - 🚀 支持通过npx直接运行,无需安装
17
+
18
+ ## 安装与使用
19
+
20
+ ### 通过 NPX 直接运行(无需安装)
21
+
22
+ ```bash
23
+ npx g2log [选项]
24
+ ```
25
+
26
+ ### 全局安装(推荐长期使用)
27
+
28
+ ```bash
29
+ npm install -g g2log
30
+ ```
31
+
32
+ 然后使用:
33
+
34
+ ```bash
35
+ g2log [选项]
36
+ ```
37
+
38
+ 或者:
39
+
40
+ ```bash
41
+ # 从本地目录全局安装
42
+ git clone https://github.com/yourusername/git-user-log.git
43
+ cd git-user-log
44
+ npm install -g
45
+ ```
46
+
47
+ ### 临时使用
48
+
49
+ 无需安装,直接使用 Node.js 运行脚本:
50
+
51
+ ```bash
52
+ node git-user-log.js
53
+ ```
54
+
55
+ ## 使用方法
56
+
57
+ ```bash
58
+ g2log [--since="2023-01-01"] [--until="2023-12-31"] [选项]
59
+ ```
60
+
61
+ 或通过npx直接运行:
62
+
63
+ ```bash
64
+ npx g2log [--since="2023-01-01"] [--until="2023-12-31"] [选项]
65
+ ```
66
+
67
+ ### 命令行参数
68
+
69
+ - `--since="YYYY-MM-DD"` - 起始日期(如未指定,使用配置中的默认值)
70
+ - `--until="YYYY-MM-DD"` - 结束日期(如未指定,使用配置中的默认值)
71
+ - `--local` - 使用本地仓库,忽略配置文件中的仓库设置
72
+ - `--output="文件路径"` - 将输出保存到指定文件
73
+
74
+ ### 配置管理命令
75
+
76
+ - `--set-api-key="KEY"` - 设置API密钥
77
+ - `--set-ai-model="MODEL"` - 设置AI模型(默认: deepseek-chat)
78
+ - `--set-api-provider="PROVIDER"` - 设置API提供商(deepseek或openai)
79
+ - `--set-api-url="URL"` - 设置API基础URL
80
+ - `--set-default-author="NAME"` - 设置默认作者
81
+ - `--set-time-range --since="DATE" --until="DATE"` - 设置默认时间范围
82
+ - `--add-repo="ALIAS" --path="/path/to/repo"` - 添加仓库配置
83
+ - `--remove-repo="ALIAS"` - 删除仓库配置
84
+ - `--list-repos` - 列出所有配置的仓库
85
+ - `--set-prompt-template="file.txt"` - 从文件设置AI总结的prompt模板
86
+ - `--reset-prompt-template` - 重置AI总结的prompt模板为默认值
87
+ - `--fix-config` - 修复配置文件格式问题
88
+ - `--help` - 显示帮助信息
89
+
90
+ ### 配置文件
91
+
92
+ 配置文件保存在用户主目录下的 `.git-user-log-config.json`,包含以下内容:
93
+
94
+ ```json
95
+ {
96
+ "api_key": "your-api-key-here",
97
+ "default_author": "张三",
98
+ "default_since": "today",
99
+ "default_until": "today",
100
+ "model": "deepseek-chat",
101
+ "api_base_url": "https://api.deepseek.com",
102
+ "api_provider": "deepseek",
103
+ "repositories": {
104
+ "前端": "/path/to/frontend-project",
105
+ "后端": "/path/to/backend-project"
106
+ },
107
+ "prompt_template": "请根据下面的Git提交记录,用3-5句话简洁地总结一天的工作内容..."
108
+ }
109
+ ```
110
+
111
+ ## 配置优先级
112
+
113
+ 1. 命令行参数优先级最高(仅支持时间范围参数)
114
+ 2. 配置文件中的设置作为默认值
115
+ 3. 内置默认值作为最低优先级
116
+
117
+ ## 示例
118
+
119
+ ```bash
120
+ # 使用配置的默认值生成今日工作总结
121
+ g2log
122
+
123
+ # 指定时间范围
124
+ g2log --since="2023-01-01" --until="2023-12-31"
125
+
126
+ # 使用本地仓库
127
+ g2log --local
128
+
129
+ # 保存结果到文件
130
+ g2log --output="today-summary.md"
131
+
132
+ # 设置配置
133
+ g2log --set-default-author="张三"
134
+ g2log --set-ai-model="gpt-3.5-turbo"
135
+ g2log --set-api-provider="openai"
136
+ g2log --set-api-url="https://api.openai.com"
137
+ g2log --add-repo="前端" --path="/path/to/frontend-project"
138
+ ```
139
+
140
+ ## 日期格式
141
+
142
+ 支持 Git 的日期格式,例如:
143
+
144
+ - 具体日期:`2023-01-01`
145
+ - 相对日期:`1 month ago`, `last week`, `yesterday`
146
+ - 特殊关键词:`now`, `today`, `last Monday`
147
+
148
+ ## 多仓库自动处理功能
149
+
150
+ 工具默认会处理配置文件中的所有仓库:
151
+
152
+ 1. 自动获取所有配置仓库的Git提交记录
153
+ 2. 合并所有仓库的日志,并在每条记录前加上仓库标识
154
+ 3. 将所有仓库的日志一起发送给AI进行总结
155
+ 4. 生成包含所有项目工作内容的统一总结
156
+
157
+ 如果希望仅处理本地仓库,可以使用 `--local` 参数。
158
+
159
+ ## 注意事项
160
+
161
+ - 确保已安装 Git 并可在命令行中使用
162
+ - 确保配置文件中有正确的作者名称和仓库路径
163
+ - 使用AI总结功能需要有效的DeepSeek API密钥
164
+ - 配置文件保存在用户主目录下的 `.git-user-log-config.json` 文件中
165
+
166
+ ## 问题反馈
167
+
168
+ 如果遇到任何问题或有改进建议,请提交 issue 或联系开发者。
169
+
170
+ ## 许可证
171
+
172
+ MIT
173
+
174
+ ## AI提供商支持
175
+
176
+ 工具支持多种AI提供商的API:
177
+
178
+ 1. **DeepSeek API (默认)**
179
+ - 基础URL: https://api.deepseek.com
180
+ - 推荐模型: deepseek-chat
181
+
182
+ 2. **OpenAI API**
183
+ - 基础URL: https://api.openai.com
184
+ - 推荐模型: gpt-3.5-turbo, gpt-4
185
+
186
+ 切换提供商示例:
187
+ ```bash
188
+ # 切换到OpenAI
189
+ g2log --set-api-provider="openai"
190
+ g2log --set-api-url="https://api.openai.com"
191
+ g2log --set-ai-model="gpt-3.5-turbo"
192
+
193
+ # 切换回DeepSeek
194
+ g2log --set-api-provider="deepseek"
195
+ g2log --set-api-url="https://api.deepseek.com"
196
+ g2log --set-ai-model="deepseek-chat"
197
+ ```
198
+
199
+ ## 流式输出
200
+
201
+ 当使用OpenAI API时,工具会启用流式输出功能,让您能够实时看到AI生成内容的过程,无需等待整个响应完成。这提供了更好的用户体验,特别是当处理大量提交记录时。