使用 GitLab API 获取用户提交列表

Sea*_*lus 1 gitlab

我可以使用此命令成功访问有关用户的信息:

curl http://gitlab.$INTERNAL_SERVER.com/api/v3/\
users/$USER_ID\?private_token\=$GITLAB_TOKEN
Run Code Online (Sandbox Code Playgroud)

但是,我找不到用于获取用户已推送到 GitLab 服务器的提交列表的 API 端点。是否存在包含此信息的 URL?

dem*_*iak 6

据我所知,这样的 API 端点不存在。基本上我能想到的最好的就是这个流程:

  1. 查找用户参与的所有项目(本身不是 100% 简单)
  2. 然后获得该项目的提交
  3. 然后根据用户邮箱过滤那些提交。

我正在使用java-gitlab-api来访问 Gitlab 服务器,所以手边没有 curl 示例(抱歉!)。


Spe*_*r H 5

看起来您可以使用 Events 端点获取提交列表

data = requests.get(host + "/api/v4/users/{id}/events".format(id=user_id),
                                    params={"action": "pushed"})
Run Code Online (Sandbox Code Playgroud)

你可以通过更新链接params

params.update({"before": before_date})
Run Code Online (Sandbox Code Playgroud)

哪里before date可以是数据中的最后一个元素,您可以连续循环以获取用户从特定日期开始的所有提交

  • 我尝试使用您的方式(事件 API)获取提交。但是,如果推送中有 1 个以上的提交,它将始终显示第一个提交和最后一个 'commit sha'。因此,无法以这种方式找到所有提交。 (2认同)