1 个不稳定版本
0.1.0 | 2023年3月19日 |
---|
#11 在 #GitHub问题
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"
许可证
本项目采用MIT许可证。
依赖项
~21–38MB
~629K SLoC