#问题 #仓库 #GitHub #报告 #生成 #GitHub问题 #模板

bin+lib gh-report-gen

从GitHub问题生成报告

1 个不稳定版本

0.1.0 2023年3月19日

#11#GitHub问题

MIT 许可证

250KB
461

gh-report-gen

gh-report-gen 是一个用Rust编写的CLI工具,它可以获取GitHub问题并根据指定的模板生成报告。
它帮助开发者轻松创建其仓库中问题的摘要和概述。

安装

cargo install gh-report-gen

先决条件

创建GitHub个人访问令牌(PAT)

gh-report-gen 使用GitHub的GraphQL API。因此,需要具有仓库权限的PAT,允许读取您的仓库。

设置 > 生成新令牌

GraphQL API不支持使用细粒度个人访问令牌进行认证。

用法

假设环境变量 GH_PAT 已导出。

export GH_PAT=ghp_your_personal_access_token_with_repo_scope

获取问题并以默认格式输出

gh-report-gen

过滤问题

获取指定时间后更新/创建的问题。
时间以RFC3339格式指定。

gh-report-gen --since "2023-03-01T00:00:00+09:00"

指定要获取问题的仓库。仓库以 owner/name 格式指定。
由于支持glob模式,您可以编写 --include myorg/* 以指定myorg组织中的所有仓库。
使用 --exclude 指定要排除的仓库。
默认情况下,已指定 --include *,因此包含所有仓库。

您可以指定尽可能多的包含/排除。
为了使问题有资格包含在内,它必须属于包含之一,但不属于所有排除。

例如,要针对ymgyt用户的除对应于“-handson”后缀的仓库和
myorg组织的foo仓库之外的所有ymgyt用户仓库,请执行以下操作。

gh-report-gen \
  --include ymgyt/* \
  --exlucde ymgyt/*-handson \
  --include myorg/foo

自定义输出

您可以指定如何输出检索到的问题。
格式基于Rust的模板库, tera
默认情况下, 以下模板 已指定。

例如,仅输出问题的标题

cat << EOF > ./issues.tmpl
# Issues
user: {{ user }}
{% for issue in issues %}
- {{ issue.title }}
{% endfor %}
EOF

gh-report-gen --template ./issues.tmpl

模板中可用的变量

在模板中可以引用以下变量。

name description
user 创建PAT的GitHub用户名(登录名)
问题 issue的数组

问题

issue具有以下字段
要引用问题的标题,可以使用类似issue.title的语法。
所有时间均采用RFC3339格式。

name description
编号 问题ID
标题 问题的标题
关闭 布尔值,表示问题是否已关闭
closed_at 问题关闭的时间,如果问题未关闭,则为None
created_at 问题创建的时间
updated_at 问题更新的时间
状态 当前问题状态。OPEN
url 问题的链接
repository_name 问题所属仓库的名称
repository_owner 问题所属仓库的所有者
assignees 问题分配的assignees,不包括用户
labels 问题的labels
tracked_issues_count 问题跟踪的问题数量
tracked_closed_issues_count 问题跟踪的已关闭问题的数量

开发

更新Github graphql模式

cargo install graphql_client_cli --force
graphql-client introspect-schema https://api.github.com/graphql \
    --header "Authorization: bearer ${GH_PAT}" \
    --header "user-agent: rust-graphql-client"

GitHub文档

许可证

本项目采用MIT许可证

依赖项

~21–38MB
~629K SLoC