2024年11月25日 星期一

Redmine WebAPI 使用方式 (ChatGPT回答)

如何從外部讀取 redmine 的 issue 內容?
ChatGPT 說:

要从外部读取 Redmine 的 Issue 内容,可以通过 Redmine 提供的 REST API 实现。这种方式允许你以编程的方式访问 Redmine 的数据,包括项目、任务、时间条目等。以下是具体步骤和方法:


1. 启用 Redmine 的 REST API

  • 登录 Redmine 管理后台。
  • 前往 “管理” > “设置” > “API”
  • 勾选 “启用 REST API”,然后保存。

2. 获取 API Key

每个用户都有一个唯一的 API Key,通常用于身份验证:

  1. 登录 Redmine。
  2. 前往 “我的账户” 页面。
  3. 找到 “API 密钥”,如果没有生成,可以点击生成按钮。

3. 使用 API 读取 Issue 数据

通过发送 HTTP 请求,可以读取 Issue 的内容。常见方法包括使用命令行工具(如 curl)或编程语言(如 Python、JavaScript 等)。

API Endpoint 示例

  • 获取单个 Issue:

  • 例如:https://your-redmine-site.com/issues/123.json

  • 获取多个 Issue:

    可以使用参数筛选:

    • project_id:指定项目
    • status_id:筛选状态
    • tracker_id:筛选跟踪器类型
    • assigned_to_id:筛选指定负责人 

4. 示例:使用 curl 请求

获取单个 Issue

curl -H "X-Redmine-API-Key: your_api_key" https://your-redmine-site.com/issues/123.json 

获取多个 Issue

curl -H "X-Redmine-API-Key: your_api_key" "https://your-redmine-site.com/issues.json?project_id=1&status_id=open"

5. 示例:使用 Python

使用 requests

import requests

# Redmine URL 和 API Key
redmine_url = "https://your-redmine-site.com/issues.json"
api_key = "your_api_key"

# 请求头
headers = {
    "X-Redmine-API-Key": api_key
}

# 发起请求
params = {
    "project_id": 1,  # 替换为你的项目ID
    "status_id": "open"  # 只获取开放状态的 Issue
}
response = requests.get(redmine_url, headers=headers, params=params)

# 处理结果
if response.status_code == 200:
    issues = response.json()
    print(issues)
else:
    print(f"Error: {response.status_code}, {response.text}")
 
 

沒有留言:

張貼留言