跳转到主要内容

Dinghy每日摘要工具

项目描述

Dinghy,一个GitHub活动摘要工具。

PyPI Supported Python versions License Sponsor me on GitHub nedbat on Mastodon

Dinghy使用GitHub GraphQL API查找发布、问题和拉取请求上的最近活动,并编写一个紧凑的HTML摘要 如这个

示例摘要

以下是一个Dinghy摘要的示例,报告了一些PSF仓库:black、requests和PEPs

入门指南

  1. 安装dinghy

    $ python -m pip install dinghy
  2. 要运行dinghy,您需要一个GitHub 个人访问令牌。您需要分配给它的作用域取决于您将访问哪些仓库。如果您只访问公共仓库,则不需要任何作用域。如果您将访问任何私有仓库,则需要“repo”作用域。创建一个令牌并将GITHUB_TOKEN环境变量定义为

    $ export GITHUB_TOKEN=ghp_Y2oxDn9gHJ3W2NcQeyJsrMOez
  1. 然后使用GitHub URL运行dinghy

    $ dinghy https://github.com/Me/MyProject
    Wrote digest: digest.html

    您将在digest.html中获得仓库上周活动的摘要。它看起来 类似于这样

    您还可以编写一个YAML配置文件以摘要多个来源,或使用不同的时间段

    $ dinghy my-dinghy-config.yaml
    Wrote digest: proj1.html
    Wrote digest: proj2-daily.html
    Wrote digest: proj2-weekly.html

    额外的参数指定要编写的摘要

    $ dinghy my-dinghy-config.yaml proj1.html
    Wrote digest: proj1.html

配置

帆船配置是从YAML文件中读取的(默认为dinghy.yaml)。以下是一个示例

digests:
  - digest: lastweek.html
    title: My projects last week
    since: 1 week
    items:
      - https://github.com/orgs/myorg/projects/17
      - https://github.com/orgs/anotherorg/projects/8
      - https://github.com/myorg/myrepo/pulls

  - digest: hotnews.html
    title: Today's news
    since: 1 day
    items:
      - url: https://github.com/orgs/anotherorg/projects/8
        home_repo: anotherorg/wg
      - https://github.com/myorg/churnchurn/issues

  - digest: all_prs.html
    since: 1 day
    items:
      - search: org:myorg is:pr
        title: MyOrg pull requests

defaults:
  ignore_users:
    - app-user
    - fake-bot

digests子句是一个要生成的摘要列表。 defaults子句设置了文件中其余摘要选项的默认值。每个 digests子句指定了要摘要的内容

  • digest设置是要写入的HTML摘要文件。

  • since设置指示要回溯多远以查找活动。它可以使用周、天、小时、分钟和秒等单位,也可以缩写,如 1d6h。使用 since: forever 将包括所有活动,无论其何时发生。如果省略 since,则默认为一周。您可以在dinghy命令行上指定 --since=<SINCE> 来提供一个明确的值。

  • items设置是一个要报告的事项列表,可以以几种不同的方式指定

    • url设置是一个GitHub URL,有几种形式

      • 组织项目的URL将报告项目中的问题和拉取请求。您的GitHub令牌需要“read:project”范围。

      • 到仓库的URL将报告仓库中的问题和拉取请求以及发布。

      • 到仓库问题的URL将报告仓库中的问题。

      • 到仓库拉取请求的URL将报告仓库中的拉取请求。

      • 到仓库发布的URL将报告仓库中的发布。

      • 这些URL中的任何一个都可以指向GitHub Enterprise安装,而不是https://github.com

    • search设置可以指定一个GitHub搜索查询以查找问题或拉取请求。查询将添加一个 updated:术语以考虑 since:设置。

    • 如果项目只需要指定一个GitHub URL,则它可以是URL字符串。

  • 可选的 title设置将用于构建HTML页面的标题和主要标题。

  • template设置是用于生成摘要的Jinja2模板文件的名称。默认为“digest.html.j2”,它包含在dinghy中。传递给模板的数据未明确指定;如果您想编写自己的模板,请将其模型建立在内置的digest.html.j2上。

项目可以具有其他选项

  • 默认情况下,不会报告机器人用户的活动。如果您想包括它们,请使用 include_bots: true

  • 某些应用程序使用真实用户账户执行操作,但您仍然想忽略它们。您可以在 ignore_users设置中列出应忽略的用户名。

  • 摘要可以设置明确的标题,使用 title设置。

  • 组织项目选项包括

    • home_repo是最可能创建大多数问题的仓库的所有者/仓库名称。其他仓库中的问题将在摘要中指明仓库。

每日发布

示例摘要使用来自其自己的仓库的GitHub Action每天发布:nedbat/dinghy_sample。您可以将其用作自己发布的起点。

贡献者

感谢所有帮助过的人

  • Ned Batchelder

  • Bill Mill

  • Doug Hellmann

  • Henry Gessau

  • Lucas Taylor

  • Quentin Pradet

  • Simon de Vlieger

变更日志

未发布

请查看 scriv.d 目录 中的片段文件。

1.3.2 — 2023-09-21

修复

  • 1.3.1 版本中修复忽略 --since 选项时,意外忽略了配置文件中的 since 设置。现已修复,关闭 问题 36。感谢,Lucas Taylor

1.3.1 — 2023-09-17

修复

  • 当在命令行上使用 URL 时,会忽略 --since 选项。现已修复,关闭 问题 35

1.3.0 — 2023-07-31

新增

  • 现在可以通过 --since 在命令行上指定 since 日期,这将覆盖 YAML 文件中的任何指定。

  • since 值可以指定为特定的 ISO 8601 日期或日期时间,关闭 问题 26

1.2.0 — 2023-01-27

新增

  • 现在您可以在命令行上指定要写入的摘要,这将只选择配置文件中的那些摘要。

修复

  • 如果配置文件中没有 digests: 子句,可能是因为它根本不是 dinghy 配置文件,因此将打印有关此错误的消息。

1.1.0 — 2023-01-25

新增

  • 摘要可以指定 template,一个用于生成摘要的 Jinja2 模板文件。这为其他输出格式(不仅仅是 HTML)打开了可能性。

1.0.0 — 2022-12-03

  • 没有变化,只是决定 Dinghy 已经足够稳定,可以命名为 1.0.0。

0.15.0 — 2022-11-09

新增

  • 在摘要中显示版本。感谢,Simon de Vlieger。

  • 添加了一个新的设置 include_bots: true,这将包括由机器人用户创建的拉取请求、问题或评论。默认值仍为 False,以排除它们。关闭 问题 25

0.14.0 — 2022-10-25

新增

  • 现在已注册 CLI 命令,您可以使用 dinghy 作为命令而不是 python -m dinghy(尽管这仍然有效)。

  • 现在您可以使用 since: forever 指定包括所有活动,无论它们何时发生。

变更

  • 搜索结果现在始终显示包含项目的存储库。

修复

  • 删除的 GitHub 用户发表的评论会导致崩溃。现已修复(问题 23)。

0.13.4 — 2022-10-06

修复

  • 只有根据其年龄过滤拉取请求上的评论,而不是根据其作者,因此机器人评论和“忽略用户”的评论仍然被包括在内。现已修复。

0.13.3 — 2022-09-29

修复

  • 在拉取请求和问题上的图标悬停提示中的文本与图标的顺序相同,这使得它们更容易理解。

0.13.2 — 2022-08-13

修复

  • 添加一个 HTML <meta> 标签以确保内容被正确解码为 UTF-8。修复 问题 12。感谢,Bill Mill。

0.13.1 — 2022-08-03

修复

  • 在 Windows 上,当完成时会显示一个令人担忧但无害的错误。现已修复,关闭 问题 9。感谢,Carlton Gibson。

0.13.0 — 2022-07-29

删除

  • 删除了已弃用的“pull_requests”设置。

新增

  • 使用 api_root 设置,GitHub Enterprise 用户可以控制要使用的 GraphQL 端点。

变更

0.12.0 — 2022-06-12

新增

  • 可以使用 title 选项在单个摘要中添加文本到报告的标题。感谢,Doug Hellmann。

0.11.5 — 2022-06-07

修复

  • 现在已关闭的问题现在区分“完成”和“未计划”。

0.11.4 — 2022-05-10

新增

  • 将 GitHub 中的文本提取应用于 HTML 转义(哎呀!)

  • 表情符号现在以表情符号的形式显示,而不是以文本形式。

0.11.3 — 2022-05-06

修复

  • GitHub 有时响应“502 网关错误”。如果发生这种情况,请暂停并重试。

0.11.2 — 2022-04-12

新增

  • 添加了 --version 选项。

修复

  • 具有许多审查的拉取请求会跳过一些审查。现在可以完全检索所有拉取请求数据。

  • 在大容量摘要中,GitHub 有时返回 403 作为速率限制。当发生这种情况时,请重试以完成查询。

0.11.1 — 2022-03-29

修复

  • 纠正了一个打包错误(缺少更改日志条目)。

0.11.0 — 2022-03-29

新增

  • 已解决的评论现在用复选框图标表示,并显示“已解决评论”的悬停文本。

修复

  • 修复了尝试获取项目中的问题仓库时崩溃的问题。

0.10.0 — 2022-03-28

变更

  • 拉取请求数据未正确显示:评论未包含在摘要中。

  • 如果需要显示较新评论的讨论线程,则将包含截止日期之前的拉取请求评论。以灰色显示旧评论,以帮助专注于最近的活动。

  • 对时间段的解析现在更加严格,因此“1 个月”不会误认为是“1 分钟”。修复了 问题 7

删除

  • 哎呀,发现根本不存在“项目(beta)”的仓库项目。那个不会工作的事情已经被移除。

0.9.0 — 2022-03-17

新增

  • 支持 GitHub 企业版:您可以使用指向您自己的 GitHub 企业安装的 URL。只能使用单个主机。感谢 Henry Gessau。

  • 配置文件中的“search:”条目将找到与查询匹配的问题或拉取请求。

  • 配置文件中的项可以有 title: 来设置显式标题。

弃用

  • 已弃用 pull_requests: 配置设置,转而使用 search:pull_requests: org:my_org 变为 search: org:my_org is:pr

0.8.0 — 2022-03-16

新增

  • 支持仓库项目。

修复

  • 在某些错误上处理错误失败。现在已修复,关闭 问题 4

0.7.1 — 2022-03-13

修复

  • 更好地处理授权问题,并显示错误消息,以便用户可以修复它们。

0.7.0 — 2022-03-12

新增

  • 现在,命令行可以接受 GitHub URL,以快速获取仓库(或问题、拉取请求等)一周的活动摘要。

  • 现在可以通过 -v/--verbosity 命令行选项指定日志级别。

修复

  • 现在对依赖项有最小固定,修复了 问题 1

0.6.0 — 2022-03-10

新增

  • GitHub 的 @ghost 用户在 GraphQL 结果中显示为“None”的“作者”。正确处理该情况。

修复

  • 修复了标签的颜色。

  • 正确处理正文中 HTML。

0.5.2 — 2022-03-08

变更

  • 对缩进和信息进行了更多 HTML 调整。

0.5.1 — 2022-03-07

变更

  • 调整缩进,使线程结构更清晰。

0.5.0 — 2022-03-03

变更

  • 拉取请求审查现在显示得更紧凑。

0.4.0 — 2022-02-28

新增

  • 仓库 URL 将报告仓库中的拉取请求和问题。

0.3.0 — 2022-02-27

新增

  • 可以将配置文件指定为命令行参数。

  • GitHub 图标装饰了拉取请求、问题和评论,以区分它们并指示其状态。

变更

  • 配置文件语法已更改。现在有一个顶级 digests 子句和一个可选的 defaults 子句。

  • 原来的 bots 设置现在称为 ignore_users

  • 拉取请求审查线程以层次结构形式展示。

0.2.0 — 2022-02-21

新增

  • 项目可以具有选项。组织项目有一个 home_repo 选项,以便其他仓库的问题可以获得其他仓库的指示。

  • 可以搜索组织的拉取请求。

  • 如果dinghy遇到GraphQL API速率限制,它将休眠,直到限制重置。

  • 不要报告机器人用户的活动。可以使用 bot 设置列出应被视为机器人的用户账户。

0.1.0 — 2022-02-19

  • 首次发布。

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。

源代码发行版

dinghy-1.3.2.tar.gz (39.9 kB 查看哈希值)

上传时间 源代码

构建发行版

dinghy-1.3.2-py3-none-any.whl (35.5 kB 查看哈希值)

上传时间 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面