2

对 GitLab API 的一些请求,例如列出合并请求(https://docs.gitlab.com/ee/api/merge_requests.html#list-merge-requests)允许datetime类型的 URL 查询参数(created_after以及created_before此特定示例的参数) .

我似乎找不到可行的datetime参数格式。时间戳(无论有无毫秒)都不起作用,ISO 格式(如2017-06-29T11:00:00.000Z.

也许这个查询参数根本不起作用?

4

4 回答 4

1

找到原因:created_beforecreated_after参数虽然在官方 API 文档中列出和描述,但尚未包含在任何发布版本中。

从 GitLab 版本 9.3.5 开始,它仍然列在unreleased

https://github.com/gitlabhq/gitlabhq/blob/master/changelogs/unreleased/12151-add-since-and-until-params-to-issuables.yml

https://github.com/gitlabhq/gitlabhq/commit/9fe6c2b2c2dd92831c93297021b41d6721e4b201

于 2017-07-06T10:02:42.813 回答
0

在 Gitlab 12.6.4-ee(企业版)中,当 URL 编码时,“2020-02-12T00:08:15Z”和“2020-02-12T00:07:15+01:00”等 ISO8601 日期时间格式有效。所以“2020-02-12T00:08:15Z”->“2020-02-12T00%3A08%3A15Z”和“2020-02-12T00:07:15+01:00”->“2020-02-12T00 %3A07%3A15%2B01%3A00”。所以一个完整的(假的)URL示例是:https ://gitlab.mycompany.com/api/v4/projects/myproject/merge_requests?updated_after=2020-02-12T00%3A07%3A15%2B01%3A00

于 2020-02-12T00:27:54.187 回答
0

这是对我有用的时间格式(标准 ISO-8601):
three_weeks_ago = (datetime.datetime.now(timezone.utc)- timedelta(days=21)).isoformat() . mrs = request(f'/merge_requests?state=merged&created_after={three_weeks_ago}&per_page=100')

于 2019-07-28T19:14:50.547 回答
0

尝试 ISO8601 时间戳,因此删除纳秒并包括时区:

2017-06-29T11:00:00+00:00

使用 rubyDateTime​​ 类作为参考,因为这个类在 Gitlab 中使用。

https://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/DateTime.html

Gitlab的合并请求API类:
https ://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/api/merge_requests.rb

于 2017-06-30T18:21:50.287 回答