首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在文件列表中获取提交数据GraphQL API

在文件列表中获取提交数据GraphQL API
EN

Stack Overflow用户
提问于 2022-03-16 15:08:49
回答 1查看 602关注 0票数 4

我是GraphQL API的新手。我正在尝试获取每个文件的提交消息和pushedAt日期,您通常可以在任何github的根网页上看到这些消息和日期,其中显示了分支的所有文件(例如https://github.com/Alamofire/Alamofire )。

代码语言:javascript
运行
复制
.github    Updates for Xcode 13.3 (#3576)                   3 days ago
Tests      Fix 2020 and 2021 Deprecation Warnings (#3555)   last month

我的graphql似乎在提交数据的资源管理器中不返回任何内容("commitData":{})。我做错了什么?

代码语言:javascript
运行
复制
fragment Files on Tree {
  entries {
    oid
    name
    type
    path
    extension    
    metaData: object {
      ... on Blob {
        byteSize
        isBinary
      }
    }
    commitData: object {
      ... on Commit {
        oid
        pushedDate
        message
      }
    }
  }
}

query Files($owner: String!, $repo: String!, $branch: String!) {
  repository(owner: $owner, name: $repo) {
    ... on Repository {
      object(expression: $branch) {
        ... on Tree {
          ...Files
        }
      }
    }
  }
}

查询变量:

代码语言:javascript
运行
复制
{
  "repo": "Alamofire",
  "branch": "HEAD:",
  "owner": "Alamofire"
}
EN

Stack Overflow用户

发布于 2022-04-01 12:06:15

这是意料之中的。TreeEntry object: GitObject不公开提交信息。相反,它返回Blob类型(用于文件对象)或Tree类型(用于目录路径)。我们怎么知道的?object的文档("Entry file object")提供了一个模糊的提示,但是我们可以通过内省GraphQL __typename 元场来确定对象类型名称:

代码语言:javascript
运行
复制
metaData: object {
  __typename
}

对于文件条目,这将导致:

代码语言:javascript
运行
复制
"metaData": {
      "__typename": "Blob"
    }

即使Commit也实现了GitObject接口,TreeEntry类型也不返回它。换句话说,你不能从这里到达那里。使用这个API,您似乎需要两个步骤的查询。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71499519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档