菜鸟科技网

Redmine命令有哪些常用操作?

Web 界面操作(最常用)

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

Redmine命令有哪些常用操作?-图1
(图片来源网络,侵删)
功能 操作路径/说明
创建项目 顶部菜单 -> 项目 -> 新项目
创建问题 进入项目 -> 问题 -> 新建问题
设置问题状态 在问题详情页的右侧状态下拉框中选择(新建、处理中、已解决、已关闭)
分配问题 在问题详情页的右侧分配给下拉框中选择用户
添加时间日志 在问题详情页,点击 时间记录 选项卡,填写时间和备注后保存
上传附件 在问题详情页,点击 文件 选项卡,点击 添加文件
创建 Wiki 页面 进入项目 -> Wiki -> 新建页面
查看报表 进入项目 -> 报表,可以查看问题完成情况、活动等

Redmine REST API(自动化和脚本的核心)

Redmine 提供了强大的 REST API,允许你通过编程或命令行工具(如 curl)来与 Redmine 交互,这是实现自动化、批量操作和与其他系统集成的基础。

1 API 认证

在发送 API 请求前,你需要进行身份验证,最简单的方式是使用 API 密钥

  1. 获取 API 密钥

    • 登录你的 Redmine 账户。
    • 点击右上角的你的头像。
    • 选择 我的账户 (My account)。
    • API 密钥 (API access key) 部分,你可以查看或生成你的密钥。
  2. 在请求中使用密钥

    Redmine命令有哪些常用操作?-图2
    (图片来源网络,侵删)
    • URL 参数 (不推荐,不安全) http://your-redmine-url/issues.json?key=YOUR_API_KEY
    • HTTP 请求头 (推荐,更安全) X-Redmine-API-Key: YOUR_API_KEY

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) 创建一个新问题

Redmine命令有哪些常用操作?-图3
(图片来源网络,侵删)
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_date
    • project: name, identifier, description

命令行工具 (redmine-clirmine)

社区开发了一些命令行工具来简化与 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!

分享:
扫描分享到社交APP
上一篇
下一篇