1

Redmine API 可以提供 JSON 格式的时间条目。

$ curl -X GET \
  'https://my_redmine/time_entries.json' \
  -H 'X-Redmine-API-Key: my_api_key'

{"time_entries":[{"id":14212,"project":{"id":73,"name":"Project 1"},"issue":{"id":5488},"user":{"id":5,"name":"John SMITH"},"activity":{"id":8,"name":"Grouillot"},"hours":8.0,"comments":"dsgsdsdh","spent_on":"2020-03-09","created_on":"2020-01-07T14:03:58Z","updated_on":"2020-01-07T14:33:52Z", ...

现在我需要对它们进行聚合,我宁愿使用内置的报告聚合功能,也不愿在获取所有必需的时间条目后自己进行。

假设我们有这些时间条目

+------+----------+-------+------------+
| user | issue_id | hours | spent_on   |
+------+----------+-------+------------+
|    1 |       42 |     4 | 2020-01-01 |
|    1 |       43 |     4 | 2020-01-01 |
|    2 |       42 |     8 | 2020-01-01 |
+------+----------+-------+------------+

如果我希望它们由用户聚合,这就是需要得到的

+------+-------+------------+
| user | hours | spent_on   |
+------+-------+------------+
|    1 |     8 | 2020-01-01 |
|    2 |     8 | 2020-01-01 |
+------+-------+------------+

在当前的 REST API中似乎没有任何方法可以做到这一点

但是由于这种查询可以通过 CSV 生成报告

https://my_redmine/time_entries/report.csv?columns=day&criteria%5B%5D=user

我天真地认为我们可以像这样使用它

$ curl -X GET \
  'https://my_redmine/time_entries/report.json?columns=day&criteria%5B%5D=user' \
  -H 'Accept: application/json' \
  -H 'X-Redmine-API-Key: my_api_key'

但不走运,它返回一个指向 HTML 登录表单的重定向。
即使使用 API 密钥或基本身份验证来获取 CSV 似乎也不可能。

有没有人知道如何使用 REST HTTP 查询聚合时间条目?

4

0 回答 0