Web 界面操作(最常用)
这是所有 Redmine 用户最熟悉的交互方式,虽然没有“命令行”,但一些核心操作流程可以看作是“命令”。

| 功能 | 操作路径/说明 |
|---|---|
| 创建项目 | 顶部菜单 -> 项目 -> 新项目 |
| 创建问题 | 进入项目 -> 问题 -> 新建问题 |
| 设置问题状态 | 在问题详情页的右侧状态下拉框中选择(新建、处理中、已解决、已关闭) |
| 分配问题 | 在问题详情页的右侧分配给下拉框中选择用户 |
| 添加时间日志 | 在问题详情页,点击 时间记录 选项卡,填写时间和备注后保存 |
| 上传附件 | 在问题详情页,点击 文件 选项卡,点击 添加文件 |
| 创建 Wiki 页面 | 进入项目 -> Wiki -> 新建页面 |
| 查看报表 | 进入项目 -> 报表,可以查看问题完成情况、活动等 |
Redmine REST API(自动化和脚本的核心)
Redmine 提供了强大的 REST API,允许你通过编程或命令行工具(如 curl)来与 Redmine 交互,这是实现自动化、批量操作和与其他系统集成的基础。
1 API 认证
在发送 API 请求前,你需要进行身份验证,最简单的方式是使用 API 密钥。
-
获取 API 密钥:
- 登录你的 Redmine 账户。
- 点击右上角的你的头像。
- 选择
我的账户(My account)。 - 在
API 密钥(API access key) 部分,你可以查看或生成你的密钥。
-
在请求中使用密钥:
(图片来源网络,侵删)- URL 参数 (不推荐,不安全)
http://your-redmine-url/issues.json?key=YOUR_API_KEY - HTTP 请求头 (推荐,更安全)
X-Redmine-API-Key: YOUR_API_KEY
- URL 参数 (不推荐,不安全)
2 常用 API 端点示例
假设你的 Redmine 地址是 http://redmine.example.com,你的 API 密钥是 1234567890abcdef1234567890abcdef。
a) 获取所有问题
curl -X GET \ -H "X-Redmine-API-Key: 1234567890abcdef1234567890abcdef" \ "http://redmine.example.com/issues.json"
b) 获取指定项目的问题
# 假设项目标识符是 "my-project" curl -X GET \ -H "X-Redmine-API-Key: 1234567890abcdef1234567890abcdef" \ "http://redmine.example.com/projects/my-project/issues.json"
c) 创建一个新问题

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Redmine-API-Key: 1234567890abcdef1234567890abcdef" \
-d '{
"issue": {
"project_id": "my-project",
"subject": "这是一个通过API创建的新问题",
"priority_id": 4,
"description": "问题的详细描述..."
}
}' \
"http://redmine.example.com/issues.json"
d) 更新一个问题(#123)
curl -X PUT \
-H "Content-Type: application/json" \
-H "X-Redmine-API-Key: 1234567890abcdef1234567890abcdef" \
-d '{
"issue": {
"status_id": "2", # 假设ID为2是“处理中”状态
"assigned_to_id": "5" # 分配给ID为5的用户
}
}' \
"http://redmine.example.com/issues/123.json"
e) 上传附件到问题
# 注意:这里使用的是 multipart/form-data curl -X POST \ -F "file=@/path/to/your/localfile.txt" \ -F "token=YOUR_API_KEY" \ "http://redmine.example.com/issues/123.json"
3 API 资源和字段
- 官方文档:Redmine REST API (这是最权威的参考)
- 常用资源:
issues,projects,users,time_entries,versions,news - 常用字段:
issue:subject,description,status_id,priority_id,assigned_to_id,project_id,due_dateproject:name,identifier,description
命令行工具 (redmine-cli 或 rmine)
社区开发了一些命令行工具来简化与 Redmine API 的交互,让你感觉像在使用真正的“命令”。
这里以一个流行的 Ruby 工具 redmine-cli 为例。
1 安装
通常需要通过 Ruby 的包管理器 Gem 安装:
gem install redmine-cli
2 配置
首次使用时,需要配置你的 Redmine 服务器地址和 API 密钥。
# 运行交互式配置 redmine-cli config # 或者直接在命令行中设置 redmine-cli config --url http://redmine.example.com --key YOUR_API_KEY
3 常用命令
配置完成后,你就可以使用更简洁的命令了。
| 命令 | 示例 | 说明 |
|---|---|---|
| 问题列表 | redmine-cli issue list --project "my-project" |
列出项目中的问题 |
| 创建问题 | redmine-cli issue create --project "my-project" --subject "新问题CLI" |
创建一个新问题 |
| 显示问题详情 | redmine-cli issue show 123 |
显示ID为123的问题详情 |
| 更新问题 | redmine-cli issue update 123 --status-id 3 |
更新ID为123问题的状态 |
| 添加时间记录 | redmine-cli time-entry add --issue 123 --hours 2.5 --comments "修复了bug" |
为问题#123添加2.5小时的工作日志 |
| 查看帮助 | redmine-cli --help |
查看所有可用命令的帮助 |
4 其他工具
- rmine: 另一个用 Go 语言编写的 Redmine CLI 工具,性能可能更好。
- redmine-shell: 提供一个类似 shell 的交互环境来操作 Redmine。
Redmine 服务器管理命令(针对服务器管理员)
如果你是 Redmine 服务器的管理员,你会用到一些系统级命令来管理 Redmine 实例(通常是基于 Ruby on Rails 的)。
这些命令需要在 Redmine 的应用根目录下执行(通常是 /var/redmine 或 /opt/redmine)。
| 命令 | 示例 | 说明 |
|---|---|---|
| 启动 Redmine 服务 | sudo systemctl start redmine (如果使用 systemd) 或 rails server webrick -e production |
启动 Redmine 的 Web 服务器(Webrick, Puma, Unicorn 等) |
| 停止 Redmine 服务 | sudo systemctl stop redmine |
停止 Redmine 服务 |
| 重启 Redmine 服务 | sudo systemctl restart redmine |
重启 Redmine 服务 |
| 查看服务状态 | sudo systemctl status redmine |
查看 Redmine 服务是否正在运行 |
| 数据库迁移 | bundle exec rake db:migrate |
当升级 Redmine 或修改插件后,运行此命令来更新数据库结构 |
| 缓存清理 | bundle exec rake tmp:cache:clear |
清理缓存,解决一些显示问题 |
| 插件安装/卸载 | bundle exec rake redmine:plugins NAME=plugin_name install |
安装或卸载插件 |
| 生成密钥 | bundle exec rake secret |
生成一个用于加密 session 的密钥,常用于配置文件 |
| 场景 | 使用方式 | 关键词/工具 |
|---|---|---|
| 日常使用 | Web 界面 | 点击、表单、下拉框 |
| 自动化/脚本 | REST API | curl, POST, GET, PUT, /issues.json |
| 命令行爱好者 | 第三方 CLI 工具 | redmine-cli, rmine, config, issue list |
| 服务器管理 | 服务器管理命令 | systemctl, rake db:migrate, bundle exec |
希望这份详细的梳理能帮助你更好地理解和使用 Redmine!
