Skip to content

Commit

Permalink
Add a GitHub workflow to monitor component updates
Browse files Browse the repository at this point in the history
Rather than using private IFTTT Applets that send mails to this
maintainer whenever a new version of a Git for Windows component was
released, let's use the power of GitHub workflows to make this process
publicly visible.

This workflow monitors the Atom/RSS feeds, and opens a ticket whenever a
new version was released.

Note: Bash sometimes releases multiple patched versions within a few
minutes of each other (i.e. 5.1p1 through 5.1p4, 5.0p15 and 5.0p16). The
MSYS2 runtime also has a similar system. We can address those patches as
a group, so we shouldn't get multiple issues about them.

Note further: We're not acting on newlib releases, OpenSSL alphas, Perl
release candidates or non-stable Perl releases. There's no need to open
issues about them.

Co-authored-by: Matthias Aßhauer <mha1993@live.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
  • Loading branch information
dscho and rimrul committed Sep 24, 2024
1 parent 0c9b6a9 commit 4d02bc6
Showing 1 changed file with 98 additions and 0 deletions.
98 changes: 98 additions & 0 deletions .github/workflows/monitor-components.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Monitor component updates

# Git for Windows is a slightly modified subset of MSYS2. Some of its
# components are maintained by Git for Windows, others by MSYS2. To help
# keeping the former up to date, this workflow monitors the Atom/RSS feeds
# and opens new tickets for each new component version.

on:
schedule:
- cron: "23 8,11,14,17 * * *"
workflow_dispatch:

env:
CHARACTER_LIMIT: 5000
MAX_AGE: 7d

jobs:
job:
# Only run this in Git for Windows' fork
if: github.event.repository.owner.login == 'git-for-windows'
runs-on: ubuntu-latest
permissions:
issues: write
strategy:
matrix:
component:
- label: git
feed: https://github.com/git/git/tags.atom
- label: git-lfs
feed: https://github.com/git-lfs/git-lfs/tags.atom
- label: git-credential-manager
feed: https://github.com/git-ecosystem/git-credential-manager/tags.atom
- label: tig
feed: https://github.com/jonas/tig/tags.atom
- label: cygwin
feed: https://github.com/cygwin/cygwin/releases.atom
title-pattern: ^(?!.*newlib)
- label: msys2-runtime-package
feed: https://github.com/msys2/MSYS2-packages/commits/master/msys2-runtime.atom
- label: msys2-runtime
feed: https://github.com/msys2/msys2-runtime/commits/HEAD.atom
aggregate: true
- label: openssh
feed: https://github.com/openssh/openssh-portable/tags.atom
- label: libfido2
feed: https://github.com/Yubico/libfido2/tags.atom
- label: libcbor
feed: https://github.com/PJK/libcbor/tags.atom
- label: openssl
feed: https://github.com/openssl/openssl/tags.atom
title-pattern: ^(?!.*alpha)
- label: gnutls
feed: https://gnutls.org/news.atom
- label: heimdal
feed: https://github.com/heimdal/heimdal/tags.atom
- label: git-sizer
feed: https://github.com/github/git-sizer/tags.atom
- label: gitflow
feed: https://github.com/petervanderdoes/gitflow-avh/tags.atom
- label: curl
feed: https://github.com/curl/curl/tags.atom
- label: libgpg-error
feed: https://github.com/gpg/libgpg-error/releases.atom
title-pattern: ^libgpg-error-[0-9\.]*$
- label: libgcrypt
feed: https://github.com/gpg/libgcrypt/releases.atom
title-pattern: ^libgcrypt-[0-9\.]*$
- label: gpg
feed: https://github.com/gpg/gnupg/releases.atom
- label: mintty
feed: https://github.com/mintty/mintty/releases.atom
- label: 7-zip
feed: https://sourceforge.net/projects/sevenzip/rss?path=/7-Zip
aggregate: true
- label: bash
feed: https://git.savannah.gnu.org/cgit/bash.git/atom/?h=master
aggregate: true
- label: perl
feed: https://github.com/Perl/perl5/tags.atom
title-pattern: ^(?!.*(5\.[0-9]+[13579]|RC))
- label: pcre2
feed: https://github.com/PCRE2Project/pcre2/tags.atom
- label: mingw-w64-llvm
feed: https://github.com/msys2/MINGW-packages/commits/master/mingw-w64-llvm.atom
- label: innosetup
feed: https://github.com/jrsoftware/issrc/tags.atom
fail-fast: false
steps:
- uses: git-for-windows/rss-to-issues@v0
with:
feed: ${{matrix.component.feed}}
prefix: "[New ${{matrix.component.label}} version]"
labels: component-update
github-token: ${{ secrets.GITHUB_TOKEN }}
character-limit: ${{ env.CHARACTER_LIMIT }}
max-age: ${{ env.MAX_AGE }}
aggregate: ${{matrix.component.aggregate}}
title-pattern: ${{matrix.component.title-pattern}}

0 comments on commit 4d02bc6

Please sign in to comment.