Package: dinghy
Dinghy, a GitHub activity digest tool.Dinghy uses the GitHub GraphQL API to find recent activity on releases, issues
and pull requests, and writes a compact HTML digestlike this.Sample DigestHere’s a sample of a Dinghy digest reporting onsome PSF repos: black,
requests, and PEPs.Getting StartedInstall dinghy:$python-mpipinstalldinghyTo run dinghy you will need a GitHubpersonal access token. The scopes
you need to assign to it depend on what repos you’ll be accessing.  If you
are only accessing public repos, then you don’t need any scopes.  If you
will be accessing any private repos, then you need the “repo” scope.  Create
a token and define the GITHUB_TOKEN environment variable with the value:$exportGITHUB_TOKEN=ghp_Y2oxDn9gHJ3W2NcQeyJsrMOezThen run dinghy with a GitHub URL:$dinghyhttps://github.com/Me/MyProjectWrotedigest:digest.htmlYou will have a digest of the repo’s last week of activity in digest.html.
It will looksomething like this.You can also write a YAML configuration file to digest multiple sources, or
with different time periods:$dinghymy-dinghy-config.yamlWrotedigest:proj1.htmlWrotedigest:proj2-daily.htmlWrotedigest:proj2-weekly.htmlExtra arguments specify which digests to write:$dinghymy-dinghy-config.yamlproj1.htmlWrotedigest:proj1.htmlConfigurationDinghy configuration is read from a YAML file (dinghy.yamlby default).
Here’s an example:digests:-digest:lastweek.htmltitle:My projects last weeksince:1 weekitems:-https://github.com/orgs/myorg/projects/17-https://github.com/orgs/anotherorg/projects/8-https://github.com/myorg/myrepo/pulls-digest:hotnews.htmltitle:Today's newssince:1 dayitems:-url:https://github.com/orgs/anotherorg/projects/8home_repo:anotherorg/wg-https://github.com/myorg/churnchurn/issues-digest:all_prs.htmlsince:1 dayitems:-search:org:myorg is:prtitle:MyOrg pull requestsdefaults:ignore_users:-app-user-fake-botThedigestsclause is a list of digests to produce.  Thedefaultsclause sets defaults for the digest options in the rest of the file.  Eachdigestsclause specifies what to digest:Thedigestsetting is the HTML digest file to write.Thesincesetting indicates how far back to look for activity. It can use
units of weeks, days, hours, minutes and seconds, and can also be
abbreviated, like1d6h. Usingsince: foreverwill include all
activity regardless of when it happened.  Ifsinceis omitted, it
defaults to one week.  You can specify--since=<SINCE>on the dinghy
command line to provide an explicit value.Theitemssetting is a list of things to report on, specified in a few
different ways:Theurlsetting is a GitHub URL, in a number of forms:An organization project URL will report on the issues and pull requests
in the project. Your GitHub token will need the “read:project” scope.A URL to a repo will report on the issues, pull requests and releases in
the repo.A URL to a repo’s issues will report on the issues in the repo.A URL to a repo’s pull requests will report on the pull requests in the
repo.A URL to a repo’s releases will report on the releases in the repo.Any of these URLs can point to a GitHub Enterprise installation instead
ofhttps://github.com.Thesearchsetting can specify a GitHub search query to find issues or
pull requests. The query will have anupdated:term added to it to
account for thesince:setting.If an item only needs to specify a GitHub URL, then it can simply be the
URL string.The optionaltitlesetting will be used to construct the title
and main header of the HTML page.Thetemplatesetting is the name of a Jinja2 template file to use to
produce the digest. It defaults to “digest.html.j2”, which is packaged with
dinghy.  The data passed to the template is under-specified; if you want to
write a template of your own, model it on the built-indigest.html.j2.For GitHub Enterprise, you can specifyapi_root, which is the URL to
build on for GraphQL API requests. It defaults to
“https://api.github.com/graphql”.Items can have additional options:By default, no activity is reported for bot users.  If you want to include
them, useinclude_bots: true.Some applications perform actions using real user accounts, but you’d like to
ignore them anyway.  You can list those user names that should be ignored in
theignore_userssetting.Digests can have an explicit title set with thetitlesetting.Options for organization projects include:home_repois the owner/repo of the repo in which most issues will be
created.  Issues in other repos will have the repo indicated in the
digest.Daily PublishingThesample digestis published daily using a GitHub Action from
its own repo:nedbat/dinghy_sample.  You can use it as a
starting point for your own publishing.ContributorsThanks to all who have helped:Ned BatchelderBill MillDoug HellmannHenry GessauLucas TaylorQuentin PradetSimon de VliegerChangelogUnreleasedSee the fragment files in thescriv.d directory.1.3.2 — 2023-09-21FixedThe 1.3.1 fix for the ignore--sinceoption accidentally ignoredsincesettings in configuration files.  This is now fixed, closingissue
36.  Thanks,Lucas Taylor.1.3.1 — 2023-09-17FixedWhen using a URL on the command line, the--sinceoption was ignored.
This is now fixed, closingissue 35.1.3.0 — 2023-07-31AddedThesincedate can now be specified on the command line with--since.
This will override any specification in the YAML file.Thesincevalue can be specified as a specific ISO 8601 date or datetime,
closingissue 26.1.2.0 — 2023-01-27AddedNow you can additionally specify digests on the command line to write, which
will choose just those digests from the configuration file.FixedIf the config file has nodigests:clause, it could be because it’s not a
dinghy config file at all, so print an error message about it.1.1.0 — 2023-01-25AddedA digest can specifytemplate, a Jinja2 template file to produce the
digest.  This opens the possibility for other output formats than HTML.1.0.0 — 2022-12-03Nothing has changed, just decided Dinghy was stable enough to call 1.0.0.0.15.0 — 2022-11-09AddedShow releases in the digest. Thanks, Simon de Vlieger.A new settinginclude_bots: truewill include pull requests, issues, or
comments created by bot users.  The default remains False, to exclude them.
Closesissue 25.0.14.0 — 2022-10-25AddedNow a CLI command is registered so you can usedinghyas a command
instead ofpython-mdinghy(though that still works).You can now specifysince: foreverto include all activity regardless of
when it happened.ChangedSearch results now always show the repo containing the item.FixedComments by deleted GitHub users would cause a crash.  This is now fixed
(issue 23).0.13.4 — 2022-10-06FixedComments on pull requests were only filtered by their age, not their authors,
so bot comments, and comments by “ignored users” were still included.  This
is now fixed.0.13.3 — 2022-09-29FixedThe hover tip for icons on pull requests and issues has text in the same
order as the icons, making them easier to understand.0.13.2 — 2022-08-13FixedAdd an HTML<meta>tag to ensure content is properly decoded as UTF-8.
Fixesissue 12.  Thanks, Bill Mill.0.13.1 — 2022-08-03FixedOn Windows, an alarming but harmless error would appear when finishing.
This is now fixed, closingissue 9.  Thanks, Carlton Gibson.0.13.0 — 2022-07-29RemovedRemoved the deprecated “pull_requests” setting.AddedTheapi_rootsetting lets GitHub Enterprise users control the GraphQL
endpoint to use.ChangedAdapt to the2022-06-23 GitHub issues update, using the ProjectsV2 API
instead of the ProjectsNext API.0.12.0 — 2022-06-12AddedThetitleoption can be used on individual digests to add text to the
title of the report. Thanks, Doug Hellmann.0.11.5 — 2022-06-07FixedClosed issues now distinguish between “completed” and “not planned”.0.11.4 — 2022-05-10AddedHTML escaping is applied to the text pulled from GitHub (oops!)Emojis are displayed as emojis rather than as text.0.11.3 — 2022-05-06FixedGitHub sometimes responds with “502 Bad Gateway”.  Pause and retry if that
happens.0.11.2 — 2022-04-12AddedAdded a--versionoption.FixedPull requests with many reviews would skip some reviews.  Now all pull
request data is fully retrieved.On large digests, GitHub sometimes returns 403 as a rate limit.  Retry when
this happens to finish the queries.0.11.1 — 2022-03-29FixedCorrected a packaging mistake (missing Changelog entry).0.11.0 — 2022-03-29AddedResolved comments are now indicated with a checkbox icon, and hover text of
“resolved comment”.FixedFixed a crash trying to get the repository for an issue in a project.0.10.0 — 2022-03-28ChangedPull request data was not properly displayed: comments weren’t included in
the digest that should have been.Pull request comments older than the cutoff date will be included if they are
needed to show the discussion threads of newer comments.  The old comments
are shown in gray to help stay focused on recent activity.Parsing of time durations was made stricter, so that “1 month” isn’t
mistaken for “1 minute”.  Fixesissue 7RemovedOops, it turns out there’s no such thing as a repo project for “Projects
(beta)”.  That thing that wouldn’t have worked has been removed.0.9.0 — 2022-03-17AddedGitHub enterprise support: you can use URLs pointing to your own GitHub
Enterprise installation.  Only a single host can be used.  Thanks, Henry
Gessau.A “search:” entry in the configuration file will find issues or pull requests
matching the query.Items in the configuration file can havetitle:to set an explicit title.DeprecatedThepull_requests:configuration setting is deprecated in favor ofsearch:.pull_requests: org:my_orgbecomessearch: org:my_org is:pr.0.8.0 — 2022-03-16AddedRepo projects are supported.FixedError handling failed on certain errors.  This is now fixed, closingissue 4.0.7.1 — 2022-03-13FixedBetter handling of authorization problems, with error message presented so
that the user can fix them.0.7.0 — 2022-03-12AddedThe command line now accepts a GitHub URL to quickly get a week’s digest of
activity from a repo (or issues, pull requests, etc).The logging level can now be specified with the-v/--verbositycommand-line option.FixedDependencies now have minimum pins, fixingissue 1.0.6.0 — 2022-03-10AddedGitHub’s @ghost user shows up in GraphQL results as an “author” of None.
Properly handle that case.FixedFixes to the color of labels.Correct handling of HTML in bodies.0.5.2 — 2022-03-08ChangedMore HTML tweaks to indentation and information.0.5.1 — 2022-03-07ChangedIndentation tweaks to make thread structure clearer.0.5.0 — 2022-03-03ChangedPull request reviews are displayed more compactly.0.4.0 — 2022-02-28AddedA repo URL will report on both pull requests and issues in the repo.0.3.0 — 2022-02-27AddedThe configuration file can be specified as the argument on the command line.GitHub icons decorate pull requests, issues, and comments to distinguish them
and indicate their status.ChangedThe configuration file syntax changed.  Now there is a top-leveldigestsclause and an optionaldefaultsclause.Thebotssetting is now calledignore_users.Pull request review threads are presented hierarchically.0.2.0 — 2022-02-21AddedItems can have options.  Organization projects have ahome_repooption so
that issues from other repos will get an indication of the other repo.Organizatons can be searched for pull requests.If dinghy hits a GraphQL API rate limit, it will sleep until the limit is
reset.Don’t report on activity by bot users.  Thebotsetting can be used to
list user accounts that should be considered bots.0.1.0 — 2022-02-19First release.