Skip to content

Commit 8df28d5

Browse files
committed
chore(ci): validate README lists of keys
Ensure README lists are in sync with nodejs/node README.
1 parent 5f720ce commit 8df28d5

File tree

2 files changed

+101
-53
lines changed

2 files changed

+101
-53
lines changed

.github/workflows/ci.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Linters
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, reopened, ready_for_review]
6+
push:
7+
branches:
8+
- main
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
12+
cancel-in-progress: true
13+
14+
permissions:
15+
contents: read
16+
17+
jobs:
18+
lint-readme:
19+
if: github.event.pull_request.draft == false
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
23+
with:
24+
persist-credentials: false
25+
- name: Validate README lists
26+
run: |
27+
NODEJS_README_PATH=$(mktemp)
28+
curl -sSLo "$NODEJS_README_PATH" https://github.com/nodejs/node/raw/HEAD/README.md
29+
{
30+
sed -n '/^<!-- Active releasers keys -->$/q;p' README.md
31+
echo '<!-- Active releasers keys -->'
32+
echo
33+
awk -F'`' '/^### Release keys$/,/^<summary>Other keys used to sign some previous releases<.summary>$/{if($1 == " ") print " [`" $2 "`](./keys/" $2 ".asc)"; else if (substr($0, 0, 2) == "* ") print }' "$NODEJS_README_PATH"
34+
echo
35+
sed -n '\#^<!-- /Active releasers keys -->$#,/^<!-- Retired keys -->$/p' README.md
36+
echo
37+
awk -F'`' '/^<summary>Other keys used to sign some previous releases<.summary>$/,/^<.details>$/{if($1 == " ") print " [`" $2 "`](./keys/" $2 ".asc)"; else if (substr($0, 0, 2) == "* ") print }' "$NODEJS_README_PATH"
38+
echo
39+
sed -n '\#^<!-- /Retired keys -->$#,$p' README.md
40+
} | diff README.md -

README.md

Lines changed: 61 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -2,62 +2,70 @@
22

33
Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys):
44

5-
* **Antoine du Hamel** &lt;duhamelantoine1995@gmail.com&gt;
6-
[`C0D6248439F1D5604AAFFB4021D900FFDB233756`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/C0D6248439F1D5604AAFFB4021D900FFDB233756.asc)
7-
* **Beth Griggs** &lt;bgriggs@redhat.com&gt;
8-
[`4ED778F539E3634C779C87C6D7062848A1AB005C`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/4ED778F539E3634C779C87C6D7062848A1AB005C.asc)
9-
* **Bryan English** &lt;bryan@bryanenglish.com&gt;
10-
[`141F07595B7B3FFE74309A937405533BE57C7D57`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/141F07595B7B3FFE74309A937405533BE57C7D57.asc)
11-
* **Colin Ihrig** &lt;cjihrig@gmail.com&gt;
12-
[`94AE36675C464D64BAFA68DD7434390BDBE9B9C5`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/94AE36675C464D64BAFA68DD7434390BDBE9B9C5.asc)
13-
* **Danielle Adams** &lt;adamzdanielle@gmail.com&gt;
14-
[`74F12602B6F1C4E913FAA37AD3A89613643B6201`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/74F12602B6F1C4E913FAA37AD3A89613643B6201.asc)
15-
* **James M Snell** &lt;jasnell@keybase.io&gt;
16-
[`71DCFD284A79C3B38668286BC97EC7A07EDE3FC1`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/71DCFD284A79C3B38668286BC97EC7A07EDE3FC1.asc)
17-
* **Michaël Zasso** &lt;targos@protonmail.com&gt;
18-
[`8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600.asc)
19-
* **Myles Borins** &lt;myles.borins@gmail.com&gt;
20-
[`C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8.asc)
21-
* **Rafael Gonzaga** &lt;rafael.nunu@hotmail.com&gt;
22-
[`890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4.asc)
23-
* **Richard Lau** &lt;rlau@redhat.com&gt;
24-
[`C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C.asc)
25-
* **Rod Vagg** &lt;rod@vagg.org&gt;
26-
[`DD8F2338BAE7501E3DD5AC78C273792F7D83545D`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/DD8F2338BAE7501E3DD5AC78C273792F7D83545D.asc)
27-
* **Ruben Bridgewater** &lt;ruben@bridgewater.de&gt;
28-
[`A48C2BEE680E841632CD4E44F07496B3EB3C1762`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/A48C2BEE680E841632CD4E44F07496B3EB3C1762.asc)
29-
* **Ruy Adorno** &lt;ruyadorno@hotmail.com&gt;
30-
[`108F52B48DB57BB0CC439B2997B01419BD92F80A`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/108F52B48DB57BB0CC439B2997B01419BD92F80A.asc)
31-
* **Shelley Vohr** &lt;shelley.vohr@gmail.com&gt;
32-
[`B9E2F5981AA6E0CD28160D9FF13993A75599653C`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/B9E2F5981AA6E0CD28160D9FF13993A75599653C.asc)
33-
* **Marco Ippolito** &lt;<marcoippolito54@gmail.com>&gt;
34-
[`CC68F5A3106FF448322E48ED27F5E38D5B0A215F`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/CC68F5A3106FF448322E48ED27F5E38D5B0A215F.asc)
35-
* **Ulises Gascón** &lt;ulisesgascongonzalez@gmail.com&gt;
36-
[`A363A499291CBBC940DD62E41F10027AF002F8B0`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/A363A499291CBBC940DD62E41F10027AF002F8B0.asc)
5+
<!-- Active releasers keys -->
6+
7+
* **Antoine du Hamel** <<duhamelantoine1995@gmail.com>>
8+
[`C0D6248439F1D5604AAFFB4021D900FFDB233756`](./keys/C0D6248439F1D5604AAFFB4021D900FFDB233756.asc)
9+
* **Juan José Arboleda** <<soyjuanarbol@gmail.com>>
10+
[`DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7`](./keys/DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7.asc)
11+
* **Marco Ippolito** <<marcoippolito54@gmail.com>>
12+
[`CC68F5A3106FF448322E48ED27F5E38D5B0A215F`](./keys/CC68F5A3106FF448322E48ED27F5E38D5B0A215F.asc)
13+
* **Michaël Zasso** <<targos@protonmail.com>>
14+
[`8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600`](./keys/8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600.asc)
15+
* **Rafael Gonzaga** <<rafael.nunu@hotmail.com>>
16+
[`890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4`](./keys/890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4.asc)
17+
* **Richard Lau** <<rlau@redhat.com>>
18+
[`C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C`](./keys/C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C.asc)
19+
* **Ruy Adorno** <<ruyadorno@hotmail.com>>
20+
[`108F52B48DB57BB0CC439B2997B01419BD92F80A`](./keys/108F52B48DB57BB0CC439B2997B01419BD92F80A.asc)
21+
* **Ulises Gascón** <<ulisesgascongonzalez@gmail.com>>
22+
[`A363A499291CBBC940DD62E41F10027AF002F8B0`](./keys/A363A499291CBBC940DD62E41F10027AF002F8B0.asc)
23+
24+
<!-- /Active releasers keys -->
3725

3826
Other keys used to sign some previous releases:
3927

40-
* **Danielle Adams** &lt;adamzdanielle@gmail.com&gt;
41-
[`1C050899334244A8AF75E53792EF661D867B9DFA`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/1C050899334244A8AF75E53792EF661D867B9DFA.asc)
42-
* **Chris Dickinson** &lt;christopher.s.dickinson@gmail.com&gt;
43-
[`9554F04D7259F04124DE6B476D5A82AC7E37093B`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/9554F04D7259F04124DE6B476D5A82AC7E37093B.asc)
44-
* **Evan Lucas** &lt;evanlucas@me.com&gt;
45-
[`B9AE9905FFD7803F25714661B63B535A4C206CA9`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/B9AE9905FFD7803F25714661B63B535A4C206CA9.asc)
46-
* **Gibson Fahnestock** &lt;gibfahn@gmail.com&gt;
47-
[`77984A986EBC2AA786BC0F66B01FBB92821C587A`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/77984A986EBC2AA786BC0F66B01FBB92821C587A.asc)
48-
* **Isaac Z. Schlueter** &lt;i@izs.me&gt;
49-
[`93C7E9E91B49E432C2F75674B0A78B0A6C481CF6`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/93C7E9E91B49E432C2F75674B0A78B0A6C481CF6.asc)
50-
* **Italo A. Casas** &lt;me@italoacasas.com&gt;
51-
[`56730D5401028683275BD23C23EFEFE93C4CFFFE`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/56730D5401028683275BD23C23EFEFE93C4CFFFE.asc)
52-
* **Jeremiah Senkpiel** &lt;fishrock@keybase.io&gt;
53-
[`FD3A5288F042B6850C66B31F09FE44734EB7990E`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/FD3A5288F042B6850C66B31F09FE44734EB7990E.asc)
54-
* **Julien Gilli** &lt;jgilli@fastmail.fm&gt;
55-
[`114F43EE0176B71C7BC219DD50A3051F888C628D`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/114F43EE0176B71C7BC219DD50A3051F888C628D.asc)
56-
* **Timothy J Fontaine** &lt;tjfontaine@gmail.com&gt;
57-
[`7937DFD2AB06298B2293C3187D33FF9D0246406D`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/7937DFD2AB06298B2293C3187D33FF9D0246406D.asc)
58-
* **Juan José Arboleda** &lt;soyjuanarbol@gmail.com&gt;
59-
[`61FC681DFB92A079F1685E77973F295594EC4689`](https://raw.githubusercontent.com/nodejs/release-keys/HEAD/keys/61FC681DFB92A079F1685E77973F295594EC4689.asc)
60-
28+
<!-- Retired keys -->
29+
30+
* **Beth Griggs** <<bethanyngriggs@gmail.com>>
31+
[`4ED778F539E3634C779C87C6D7062848A1AB005C`](./keys/4ED778F539E3634C779C87C6D7062848A1AB005C.asc)
32+
* **Bryan English** <<bryan@bryanenglish.com>>
33+
[`141F07595B7B3FFE74309A937405533BE57C7D57`](./keys/141F07595B7B3FFE74309A937405533BE57C7D57.asc)
34+
* **Chris Dickinson** <<christopher.s.dickinson@gmail.com>>
35+
[`9554F04D7259F04124DE6B476D5A82AC7E37093B`](./keys/9554F04D7259F04124DE6B476D5A82AC7E37093B.asc)
36+
* **Colin Ihrig** <<cjihrig@gmail.com>>
37+
[`94AE36675C464D64BAFA68DD7434390BDBE9B9C5`](./keys/94AE36675C464D64BAFA68DD7434390BDBE9B9C5.asc)
38+
* **Danielle Adams** <<adamzdanielle@gmail.com>>
39+
[`1C050899334244A8AF75E53792EF661D867B9DFA`](./keys/1C050899334244A8AF75E53792EF661D867B9DFA.asc)
40+
[`74F12602B6F1C4E913FAA37AD3A89613643B6201`](./keys/74F12602B6F1C4E913FAA37AD3A89613643B6201.asc)
41+
* **Evan Lucas** <<evanlucas@me.com>>
42+
[`B9AE9905FFD7803F25714661B63B535A4C206CA9`](./keys/B9AE9905FFD7803F25714661B63B535A4C206CA9.asc)
43+
* **Gibson Fahnestock** <<gibfahn@gmail.com>>
44+
[`77984A986EBC2AA786BC0F66B01FBB92821C587A`](./keys/77984A986EBC2AA786BC0F66B01FBB92821C587A.asc)
45+
* **Isaac Z. Schlueter** <<i@izs.me>>
46+
[`93C7E9E91B49E432C2F75674B0A78B0A6C481CF6`](./keys/93C7E9E91B49E432C2F75674B0A78B0A6C481CF6.asc)
47+
* **Italo A. Casas** <<me@italoacasas.com>>
48+
[`56730D5401028683275BD23C23EFEFE93C4CFFFE`](./keys/56730D5401028683275BD23C23EFEFE93C4CFFFE.asc)
49+
* **James M Snell** <<jasnell@keybase.io>>
50+
[`71DCFD284A79C3B38668286BC97EC7A07EDE3FC1`](./keys/71DCFD284A79C3B38668286BC97EC7A07EDE3FC1.asc)
51+
* **Jeremiah Senkpiel** <<fishrock@keybase.io>>
52+
[`FD3A5288F042B6850C66B31F09FE44734EB7990E`](./keys/FD3A5288F042B6850C66B31F09FE44734EB7990E.asc)
53+
* **Juan José Arboleda** <<soyjuanarbol@gmail.com>>
54+
[`61FC681DFB92A079F1685E77973F295594EC4689`](./keys/61FC681DFB92A079F1685E77973F295594EC4689.asc)
55+
* **Julien Gilli** <<jgilli@fastmail.fm>>
56+
[`114F43EE0176B71C7BC219DD50A3051F888C628D`](./keys/114F43EE0176B71C7BC219DD50A3051F888C628D.asc)
57+
* **Myles Borins** <<myles.borins@gmail.com>>
58+
[`C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8`](./keys/C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8.asc)
59+
* **Rod Vagg** <<rod@vagg.org>>
60+
[`DD8F2338BAE7501E3DD5AC78C273792F7D83545D`](./keys/DD8F2338BAE7501E3DD5AC78C273792F7D83545D.asc)
61+
* **Ruben Bridgewater** <<ruben@bridgewater.de>>
62+
[`A48C2BEE680E841632CD4E44F07496B3EB3C1762`](./keys/A48C2BEE680E841632CD4E44F07496B3EB3C1762.asc)
63+
* **Shelley Vohr** <<shelley.vohr@gmail.com>>
64+
[`B9E2F5981AA6E0CD28160D9FF13993A75599653C`](./keys/B9E2F5981AA6E0CD28160D9FF13993A75599653C.asc)
65+
* **Timothy J Fontaine** <<tjfontaine@gmail.com>>
66+
[`7937DFD2AB06298B2293C3187D33FF9D0246406D`](./keys/7937DFD2AB06298B2293C3187D33FF9D0246406D.asc)
67+
68+
<!-- /Retired keys -->
6169

6270
## Verifying Release Packages
6371

0 commit comments

Comments
 (0)