You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用GitLab GraphQL获取超3年的用户提交、工单等操作记录

获取自托管GitLab用户全量操作记录的解决方案

问题1:免费版GitLab能否用GraphQL API突破3年时间限制?

可以。GitLab Core(免费版)的GraphQL API没有像REST /events接口那样的3年时间限制,只要实例存储的历史数据未被清理,就能查询到用户的全量操作记录。

问题2:GraphQL查询示例与实现指引

基础查询模板(覆盖所需操作类型)

以下查询可获取指定用户的提交记录、Issue操作(创建/关闭)、Merge Request操作(创建/合并/关闭),包含时间戳和关键标识符:

query GetUserFullActivity($userId: ID!, $after: String) {
  user(id: $userId) {
    name
    username
    # 获取用户提交记录
    contributions(first: 100, after: $after) {
      pageInfo {
        endCursor
        hasNextPage
      }
      nodes {
        ... on RepositoryContribution {
          commit {
            id
            sha
            committedAt
          }
          repository {
            name
          }
        }
        # 获取Issue相关操作
        ... on IssueContribution {
          issue {
            id
            title
            state
            createdAt
            closedAt
          }
          action
        }
        # 获取Merge Request相关操作
        ... on MergeRequestContribution {
          mergeRequest {
            id
            title
            state
            createdAt
            mergedAt
            closedAt
          }
          action
        }
      }
    }
  }
}

实现注意事项

  • 参数配置:将$userId替换为目标用户的GitLab ID(可通过REST API GET /api/v4/users?username=<用户名>获取);$after用于分页,首次查询留空,后续用返回的endCursor值继续拉取下一页数据。
  • 请求方式:向自托管实例的/api/graphql端点发送POST请求,请求头需携带PRIVATE-TOKEN: <你的个人访问令牌>。
  • 操作标识:action字段会明确标注操作类型(比如Issue的CREATED/CLOSED,MR的CREATED/MERGED/CLOSED)。

其他绕过时间限制的方案

直接查询GitLab数据库(自托管专属)

若拥有实例数据库的访问权限,可直接查询底层数据表:

  • 提交记录:查询commits表,通过关联users表的id字段过滤目标用户,committed_date为提交时间戳。
  • Issue操作:结合issues表(创建/关闭时间)与issue_events表(所有状态变更记录)查询。
  • MR操作:结合merge_requests表(创建/合并/关闭时间)与merge_request_events表查询。

项目导出汇总

对用户参与的所有项目,逐个导出项目数据(GitLab免费版支持),导出包中包含完整的提交、Issue、MR历史,之后自行汇总所有项目的导出内容。

解析GitLab备份文件

如果有实例的完整备份包(通常为tar格式),解压后可读取其中的数据库备份文件(如PostgreSQL的dump文件),直接从中提取用户的全量操作记录。

内容的提问来源于stack exchange,提问作者Shunya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 21:42:32