Skip to content

Commit d70154e

Browse files
committed
Merge branch 'dev'
2 parents d3a6502 + edb7ba5 commit d70154e

File tree

4 files changed

+168
-30
lines changed

4 files changed

+168
-30
lines changed

.editorconfig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# .editorconfig
2+
[*]
3+
end_of_line = lf
4+
insert_final_newline = true
5+
charset = utf-8
6+
indent_style = space
7+
indent_size = 4
8+
trim_trailing_whitespace = true

CHANGELOG.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,21 @@ This changlog uses the [ISO 8601 date format](https://www.iso.org/iso-8601-date-
77

88
## [Unreleased]
99

10+
## [1.5.0] - 2021-07-11
11+
12+
### Added
13+
14+
* zstd compression support
15+
* Added .editorconfig
16+
* Added key expire readme tutorial [#26](https://github.com/NicoHood/gpgit/issues/26)
17+
* Added `--version` option
18+
* Added `--asset` option [#32](https://github.com/NicoHood/gpgit/issues/32)
19+
* Added `--title` option [#28](https://github.com/NicoHood/gpgit/issues/28)
20+
21+
### Fixed
22+
23+
* Fixed Readme Links
24+
1025
## [1.4.1] - 2021-01-31
1126

1227
### Changed
@@ -181,7 +196,8 @@ This changlog uses the [ISO 8601 date format](https://www.iso.org/iso-8601-date-
181196
### Added
182197
- Initial release of the software
183198

184-
[Unreleased]: https://github.com/NicoHood/gpgit/compare/1.4.1...HEAD
199+
[Unreleased]: https://github.com/NicoHood/gpgit/compare/1.5.0...HEAD
200+
[1.4.1]: https://github.com/NicoHood/gpgit/compare/1.4.1...1.5.0
185201
[1.4.1]: https://github.com/NicoHood/gpgit/compare/1.4.0...1.4.1
186202
[1.4.0]: https://github.com/NicoHood/gpgit/compare/1.3.4...1.4.0
187203
[1.3.4]: https://github.com/NicoHood/gpgit/compare/1.3.3...1.3.4

Readme.md

Lines changed: 84 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,71 @@ The security status of GNU/Linux projects will be tracked in the [Linux Security
4848

4949
## Installation
5050

51-
### Distribution Packages
52-
* [Arch Linux](https://archlinux.org/packages/community/any/gpgit/) `sudo pacman -S gpgit`
51+
### Arch Linux
5352

54-
### Manual Installation
53+
GPGit is available as [official Arch Linux distribution package](https://archlinux.org/packages/community/any/gpgit/):
5554

5655
```bash
57-
# Install dependencies and optional dependencies
58-
sudo apt-get install bash gnupg2 git tar xz-utils coreutils gawk grep sed
59-
sudo apt-get install gzip bzip lzip file jq curl
56+
sudo pacman -S gpgit
57+
# Optional dependencies for Github API uploading
58+
sudo pacman -S curl jq
59+
```
60+
61+
### Debian
62+
63+
First install the following dependencies, then follow the manual installation instruction.
64+
65+
```bash
66+
# Install dependencies
67+
sudo apt-get install bash gnupg2 git tar xz-utils coreutils gawk grep sed util-linux
68+
# Optional dependencies
69+
sudo apt-get install gzip bzip lzip zstd file jq curl
70+
```
6071

72+
### MacOS
73+
74+
First install the following dependencies with [Homebrew](https://brew.sh/), then follow the manual installation instructions.
75+
76+
```bash
77+
# Install dependencies
78+
brew install bash git xz gnu-getopt coreutils
79+
# Install a GPG suite, such as https://gpgtools.org/
80+
brew install --ask gpg-suite
81+
# Optional dependencies
82+
brew install gzip bzip2 lzip zstd jq curl
83+
```
84+
85+
### Manual Installation
86+
87+
#### Dependencies
88+
89+
* bash
90+
* gnupg2
91+
* git
92+
* tar
93+
* xz
94+
* grep
95+
* sed
96+
* gnu awk
97+
* gnu getopt (util-linux)
98+
* gnu date (coreutils)
99+
100+
#### Optional Dependencies
101+
102+
* gzip (Compression option)
103+
* zstd (Compression option)
104+
* bzip (Compression option)
105+
* lzip (Compression option)
106+
* file (Github API upload)
107+
* jq (Github API upload)
108+
* curl (Github API upload)
109+
* shellcheck (Development: `make test`)
110+
111+
#### Installation Instructions
112+
113+
```bash
61114
# Download and verify source
62-
VERSION=1.4.1
115+
VERSION=1.5.0
63116
wget "https://github.com/NicoHood/gpgit/releases/download/${VERSION}/gpgit-${VERSION}.tar.xz"
64117
wget "https://github.com/NicoHood/gpgit/releases/download/${VERSION}/gpgit-${VERSION}.tar.xz.asc"
65118
gpg2 --keyserver hkps://keyserver.ubuntu.com --recv-keys 97312D5EB9D7AE7D0BD4307351DAE9B7C1AE9161
@@ -84,7 +137,7 @@ If you add and commit a `CHANGELOG.md` file to your Git with the [Keep a Changel
84137
$ gpgit --help
85138
Usage: gpgit [options] <tagname> [<commit> | <object>]
86139
87-
GPGit 1.4.1 https://github.com/NicoHood/gpgit
140+
GPGit 1.5.0 https://github.com/NicoHood/gpgit
88141
A shell script that automates the process of signing Git sources via GPG.
89142
90143
Mandatory arguments:
@@ -99,6 +152,8 @@ Optional arguments:
99152
current working directory.
100153
-u, --local-user <keyid> Use the given GPG key (same as --signingkey).
101154
-o, --output <path> Safe all release assets to the specified <path>.
155+
-a, --asset Add additional Github assets, e.g. software bundles.
156+
-t, --title Custom Github release title (instead of tag name).
102157
-p, --pre-release Flag as Github pre-release.
103158
-f, --force Force the recreation of Git tag and release assets.
104159
-i, --interactive Run in interactive mode, step-by-step.
@@ -114,7 +169,7 @@ Configuration options:
114169
gpgit.signingkey <keyid>, user.signingkey <keyid>
115170
gpgit.output <path>
116171
gpgit.token <token>
117-
gpgit.compression <xz | gzip | bzip2 | lzip | zip>
172+
gpgit.compression <xz | gzip | bzip2 | lzip | zstd | zip>
118173
gpgit.hash <sha512 | sha384 | sha256 | sha1 | md5>
119174
gpgit.changelog <auto | true | false>
120175
gpgit.github <auto | true | false>
@@ -137,7 +192,7 @@ GPGit guides you through 5 simple steps to get your software project ready with
137192
2. [Publish your key](#2-publish-your-key)
138193
1. [Send GPG key to a key server](#21-send-gpg-key-to-a-key-server)
139194
2. [Publish full fingerprint](#22-publish-full-fingerprint)
140-
3. [Associate GPG key with Github](#23-associate-gpg-key-with-github)
195+
3. [Associate GPG key with Github](#23-associate-gpg-key-with-github)
141196
3. [Use Git with GPG](#3-use-git-with-gpg)
142197
1. [Configure Git GPG key](#31-configure-git-gpg-key)
143198
2. [Enble commit signing](#32-enable-commit-signing)
@@ -164,7 +219,7 @@ Here are a few examples how to keep a passphrase strong but easy to remember:
164219
### 1.2 Key generation
165220
If you don't have a GPG key yet, create a new one first. You can use RSA (4096 bits) or ECC (Curve 25519) for a strong key. GPG offers you the option to use the most future-proof key algorithm available. Use the most recent version gnupg2, not gnupg1!
166221

167-
Ed25519 ECC GPG keys are currently [not supported by Github](https://help.github.com/articles/generating-a-new-gpg-key/#supported-gpg-key-algorithms). To generate an ECC key use `future-default` instead of `rsa4096` as parameter.
222+
Ed25519 ECC GPG keys are still not supported by every software/platform. To generate an RSA key use `rsa4096` instead of `future-default` as parameter.
168223

169224
**Make sure that your secret key is stored somewhere safe and use a unique strong password.**
170225

@@ -185,7 +240,7 @@ uid John Doe <[email protected]>
185240
sub cv25519 2017-09-24 [E]
186241
```
187242

188-
The generated key has the fingerprint `6718A9A63030E182A86FEE152F8E73B1D445CCD3` in this example. Share it with others so they can verify your source. [[Read more]](https://wiki.archlinux.org/index.php/GnuPG#Create_key_pair)
243+
The generated key has the fingerprint `6718A9A63030E182A86FEE152F8E73B1D445CCD3` in this example. Share it with others so they can verify your source. [[Read more]](https://wiki.archlinux.org/index.php/GnuPG#Create_a_key_pair)
189244

190245
If you ever move your installation make sure to backup `~/.gnupg/` as it contains the **private key** and the **revocation certificate**. Handle it with care. [[Read more]](https://wiki.archlinux.org/index.php/GnuPG#Revoke_a_key)
191246

@@ -207,7 +262,7 @@ gpg2 --keyserver hkps://keyserver.ubuntu.com --recv-keys <fingerprint>
207262
To make it easy for everyone else to find your key it is crucial that you publish the [**full fingerprint**](https://lkml.org/lkml/2016/8/15/445) on a trusted platform, such as your website or Github. To give the key more trust other users can sign your key too. [[Read more]](https://wiki.debian.org/Keysigning)
208263

209264
### 2.3 Associate GPG key with Github
210-
To make Github display your commits as "verified" you also need to add your public [GPG key to your Github profile](https://github.com/settings/keys). [[Read more]](https://help.github.com/articles/generating-a-gpg-key/)
265+
To make Github display your commits as "verified" you also need to add your public [GPG key to your Github profile](https://github.com/settings/keys). [[Read more]](https://docs.github.com/github/authenticating-to-github/adding-a-new-gpg-key-to-your-github-account)
211266

212267
```bash
213268
# List keys + full fingerprint
@@ -267,7 +322,7 @@ git archive --format=tar --prefix gpgit-1.0.0/ 1.0.0 | xz > gpgit-1.0.0.tar.xz
267322
### 4.2 Sign the archive
268323
Type the filename of the tarball that you want to sign and then run:
269324
```bash
270-
gpg2 --digest-algo SHA512 --armor --detach-sign gpgit-1.0.0.tar.xz
325+
gpg2 --personal-digest-preferences SHA512 --armor --detach-sign gpgit-1.0.0.tar.xz
271326
```
272327
**Do not blindly sign the Github source downloads** unless you have compared its content with the local files via `diff.` [[Read more]](https://wiki.archlinux.org/index.php/GnuPG#Make_a_detached_signature)
273328

@@ -288,7 +343,7 @@ sha512sum gpgit-1.0.0.tar.xz > gpgit-1.0.0.tar.xz.sha512
288343

289344
## 5. Upload the release
290345
### 5.1 Configure HTTPS download server
291-
* [Why HTTPS Matters](https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https)
346+
* [Why HTTPS Matters](https://web.dev/why-https-matters/)
292347
* [Let's Encrypt](https://letsencrypt.org/)
293348
* [SSL Server Test](https://www.ssllabs.com/ssltest/)
294349

@@ -306,5 +361,19 @@ The script also supports [uploading to Github](https://developer.github.com/v3/r
306361
## Email Encryption
307362
You can also use your GPG key for email encryption with [thunderbird](https://support.mozilla.org/en-US/kb/openpgp-thunderbird-howto-and-faq).
308363

364+
## Update key expire date
365+
366+
After renewing the GPG key expire date make sure to [publish your GPG key](https://github.com/NicoHood/gpgit#2-publish-your-key) again to the keyserver and update your website accordingly. A more detailed instruction can be found at [G-Loaded Journal](https://www.g-loaded.eu/2010/11/01/change-expiration-date-gpg-key/).
367+
368+
```
369+
gpg2 --edit-key <fingerprint>
370+
gpg> expire
371+
gpg> 1y
372+
gpg> key 1
373+
gpg> expire
374+
gpg> 1y
375+
gpg> save
376+
```
377+
309378
## Contact
310379
You can get securely in touch with me [here](https://contact.nicohood.de). My GPG key ID is `9731 2D5E B9D7 AE7D 0BD4 3073 51DA E9B7 C1AE 9161`. Don't hesitate to [file a bug at Github](https://github.com/NicoHood/gpgit/issues). More cool projects from me can be found [on my Website](https://www.nicohood.de).

0 commit comments

Comments
 (0)