Skip to content

Commit 849d3f7

Browse files
zimegmwbrooks
andauthored
docs: document the release signing key fingerprint (#1677)
Co-authored-by: Michael Brooks <21328+mwbrooks@users.noreply.github.com>
1 parent 6a50482 commit 849d3f7

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

‎.github/maintainers_guide.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ These `-SNAPSHOT` versions are intended to be overwritten. This enables develope
120120
* Make sure there are no build failures at https://github.com/slackapi/java-slack-sdk/actions?query=branch%3Amain
121121
* Set a new version
122122
* Run `scripts/set_version.sh (the version)` (e.g., `scripts/set_version.sh 1.0.0`) — requires `gnu-sed` on macOS (`brew install gnu-sed`)
123+
* If the signing key changed, update the fingerprint in [`SECURITY.md`](../SECURITY.md#verifying-releases) so the tagged commit has the new fingerprint. This is rare: the release workflow signs with the key saved as the `GPG_KEY` and `GPG_PASSPHRASE` secrets in the `central` environment, so it only changes when someone rotates those secrets
123124
* `git add . -v && git commit -m'version (your version here)'`
124125
* `git tag v(your version here)`
125126
* `git push && git push --tags`
@@ -131,6 +132,7 @@ These `-SNAPSHOT` versions are intended to be overwritten. This enables develope
131132
* Click the "Generate release notes" button to list changes grouped by the labels in [`.github/release.yml`](./release.yml)
132133
* Edit the resulting notes to ensure they have decent messaging that is understandable by non-contributors, but each change should still have its own line
133134
* [Look at previous releases](https://github.com/slackapi/java-slack-sdk/releases) and follow their layouts
135+
* If the signing key changed, announce the new fingerprint in the release notes
134136
* (Slack Internal) Publishing the GitHub Release runs the notify job in the [release workflow](./workflows/release.yml), which posts the release internally. Check that the announcement appears.
135137
* (Slack Internal) Tweet? Not necessary for patch updates, might be needed for minor updates, definitely needed for
136138
major updates. Include a link to the GitHub Release(s).

‎SECURITY.md‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,20 @@ This project follows coordinated disclosure:
6262

6363
- Allow a reasonable timeframe for the team to investigate, develop, and release a fix before any public disclosure.
6464
- Researchers who follow responsible disclosure practices are eligible for recognition and bounty consideration through the Slack HackerOne program.
65+
66+
## Verifying Releases
67+
68+
Release artifacts published to [Maven Central](https://central.sonatype.com/namespace/com.slack.api) are signed with the following PGP key, which is published on [keyserver.ubuntu.com](https://keyserver.ubuntu.com/pks/lookup?search=0xC716D8933EE60B43B1E6B1936D5B6DF8D07BE057&op=index):
69+
70+
```
71+
C716D8933EE60B43B1E6B1936D5B6DF8D07BE057
72+
```
73+
74+
Releases starting with `v1.48.1` are signed with this key. If the key changes, this fingerprint is updated and the change is announced in the release notes.
75+
76+
To verify a downloaded artifact, import the key and check the artifact against its `.asc` signature:
77+
78+
```sh
79+
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys C716D8933EE60B43B1E6B1936D5B6DF8D07BE057
80+
gpg --verify slack-api-client-<version>.jar.asc slack-api-client-<version>.jar
81+
```

0 commit comments

Comments
 (0)