我已经对此进行了相当长的修改,发现 Power BI 是一种使电子表格中的数据保持最新的好方法。我不得不稍微研究一下 Power BI 才能完成这项工作,因为从结构化的 JSON 字段中获取正确的信息,并将列表折叠成串联的字符串,尤其是标签,并不是非常直观。但是这个 Power BI 查询对我来说效果很好,因为它消除了所有干扰并将相关信息转换为易于理解的格式,可以与利益相关者一起查看:
let
MyJsonRecord = Json.Document(Web.Contents("https://api.github.com/repos/<your org>/<your repo>/issues?&per_page=100&page=1&state=open&filter=all", [Headers=[Authorization="Basic <your auth token>", Accept="application/vnd.github.symmetra-preview+json"]])),
MyJsonTable = Table.FromRecords(MyJsonRecord),
#"Column selection" = Table.SelectColumns(MyJsonTable,{"number", "title", "user", "labels", "state", "assignee", "assignees", "comments", "created_at", "updated_at", "closed_at", "body"}),
#"Expanded labels" = Table.ExpandListColumn(#"Column selection", "labels"),
#"Expanded labels1" = Table.ExpandRecordColumn(#"Expanded labels", "labels", {"name"}, {"labels.name"}),
#"Grouped Rows" = Table.Group(#"Expanded labels1", {"number","title", "user", "state", "assignee", "assignees", "comments", "created_at", "updated_at", "closed_at", "body"}, {{"Label", each Text.Combine([labels.name],","), type text}}),
#"Removed Other Columns" = Table.SelectColumns(#"Grouped Rows",{"number", "title", "state", "assignee", "comments", "created_at", "updated_at", "closed_at", "body", "Label"}),
#"Expanded assignee" = Table.ExpandRecordColumn(#"Removed Other Columns", "assignee", {"login"}, {"assignee.login"})
in
#"Expanded assignee"
我在其中添加然后删除了列,但没有清理它 - 在您使用它之前随意这样做。
显然,您还必须在 URL 中填写您自己的组织名称和 repo 名称,并获取 auth 令牌。我已经使用 Chrome REST 插件测试了 URL,并通过在那里输入用户和 api 密钥获得了令牌。如果您不想处理令牌,可以使用用户和密钥从 Excel 显式验证。我只是发现在查询设置中使用匿名路由更简单,而是提供易于格式化的请求标头。
此外,这适用于最多包含 100 个未解决问题的存储库。如果您有更多,则需要复制查询(对于第 2 页等)并合并结果。
使用此查询的步骤:
- 在新工作表的“数据”选项卡上,打开“获取数据”下拉菜单
- 选择“启动 Power Query 编辑器”
- 在编辑器中,选择“新建查询”、“其他来源”、“空白查询”
- 现在您点击“高级编辑器”并粘贴上述查询
- 点击高级编辑器上的“完成”按钮,然后从工具栏中点击“关闭并加载”
- 问题正在加载到您的电子表格中,您正在开展业务
- 不需要糟糕的第三方工具