diff --git a/.ci/integration/tasks/dependencies.yml b/.ci/integration/tasks/dependencies.yml index 4fc9c758..ae52ea4a 100644 --- a/.ci/integration/tasks/dependencies.yml +++ b/.ci/integration/tasks/dependencies.yml @@ -14,7 +14,7 @@ - name: Get ShellCheck get_url: - url: https://storage.googleapis.com/shellcheck/shellcheck-latest.linux.x86_64.tar.xz + url: https://github.com/koalaman/shellcheck/releases/download/v0.7.1/shellcheck-v0.7.1.linux.x86_64.tar.xz dest: /tmp/shellcheck.tar.xz - name: Install ShellCheck diff --git a/.github/workflows/misspell.yml b/.github/workflows/misspell.yml new file mode 100644 index 00000000..83966abd --- /dev/null +++ b/.github/workflows/misspell.yml @@ -0,0 +1,19 @@ +name: misspell + +on: + schedule: + - cron: '0 0 * * *' + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: sobolevn/misspell-fixer-action@0.1.0 + - uses: peter-evans/create-pull-request@v2.4.4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: 'Fixes by misspell-fixer' + title: 'Typos fix by misspell-fixer' diff --git a/CHANGELOG.md b/CHANGELOG.md index 93385ed0..81201eae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,12 +7,14 @@ - In 'tell', warn about disabled, revoked, expired, or invalid keys (#552, #508, #317, #290, #283, #238) - Error if 'tell' is used on an email address with multiple keys (#552) - Don't let 'reveal' clobber secret files (#579) +- Updated test key fixture that had expired (#607) ### Misc - Improve docs about using gpg with git-secret (#577) - Reflect changes in ruby bundler during build process - Upgrade build process to ansible 2.9 +- Use shellcheck 0.7.1 with CI, not 'latest' (#609) ## Version 0.3.2 diff --git a/tests/fixtures/gpg/README.md b/tests/fixtures/gpg/README.md index 9d0f48e5..e1cdb31d 100644 --- a/tests/fixtures/gpg/README.md +++ b/tests/fixtures/gpg/README.md @@ -1,29 +1,35 @@ == public/private key pairs for test keys -* user1 and user2 are normal gpg key sets for user1@gitsecret.io and - user2@gitsecret.io. They have the passphrases 'user1pass' and 'user2pass', - respectively. - user1 is not currently used. +* git-secret test keys are named user1@gitsecret.io through + user5@gitsecret.io -* user3 was created by `gpg --quick-generate user3@gitsecret.io` - and therefore has only an email associated with it (no username). - It has the passphrase 'user3pass' as the tests expect. - This user was created to fix https://github.com/sobolevn/git-secret/issues/227 , - "keys with no info but the email address not recognized by whoknows" +* All test keysets have the passphrases 'userNpass' I.E., 'user3pass' + for user3@gitsecret.io. -* user4 was created with `gpg --gen-key`, using the name 'user4' - and the email address user4@gitsecret.io. As the tests expect, - it has the passphrase 'user4pass'. - - It is also set to expire on 2018-09-23. To make keys expire, I used the - `gpg --edit-key user@email` command's `expiry` function. - - The public and private key for user4 were exported with +* The public/private key sets were exported with (for example) `gpg --export --armor user4 > tests/fixtures/gpg/user4/public.key` and `gpg --export-secret-keys --armor user4 > tests/fixtures/gpg/user4/private.key` -* user5 was created for issue #527 using `gpg --full-generate-key`. - with name 'user5', no email address, the comment 'comment comment', and - the passphrase 'user5pass'. Keys were exported as above. +* user1 and user2 are normal gpg key sets for user1@gitsecret.io and + user2@gitsecret.io, and have the passphrases 'user1pass' and 'user2pass'. + +* user3 was created by `gpg --quick-generate user3@gitsecret.io` + and therefore has only an email associated with it (no username). + This user was created to fix + https://github.com/sobolevn/git-secret/issues/227, + "keys with email address but no name not recognized by whoknows". + The passphrase is 'user3pass'. + +* user4 was created with `gpg --gen-key`, using the name 'user4' + and the email address user4@gitsecret.io, and is also set to + expire on 2018-09-23. + To set the key's expiry, I used the + `gpg --edit-key user@email` command's `expiry` function. + The passphrase is 'user4pass'. + +* user5 was created for issue #527, where keys were being rejected if they + didn't have an email address, and had whitespace in their 'comment'. + using `gpg --full-generate-key` with name 'user5', no email address, + the comment 'comment comment', and the passphrase 'user5pass'. diff --git a/tests/fixtures/gpg/user3@gitsecret.io/private.key b/tests/fixtures/gpg/user3@gitsecret.io/private.key index 21810192..7837a1dd 100644 --- a/tests/fixtures/gpg/user3@gitsecret.io/private.key +++ b/tests/fixtures/gpg/user3@gitsecret.io/private.key @@ -1,4 +1,5 @@ -----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v2.0.22 (GNU/Linux) lQPGBFtLVc0BCACwGHyefi/z8xeH6KpLN2k9+PlHAPpwJaW+8siaWjbQenkbWX6/ cVBFBwLNVCY+UacKNKVPxYDgS9UkAGlqD1GRGISh9uvIKW/w4T2LBxDQBGlYsTdL @@ -20,40 +21,40 @@ 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 -t8BLVRdOiK5wCW5ErIHh7mpgpvRK4Q== -=3Kdr +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 +iK5wCW5ErIHh7mpgpvRK4Q== +=wl8Z -----END PGP PRIVATE KEY BLOCK----- diff --git a/tests/fixtures/gpg/user3@gitsecret.io/public.key b/tests/fixtures/gpg/user3@gitsecret.io/public.key index 3a50993b..a8d1a308 100644 --- a/tests/fixtures/gpg/user3@gitsecret.io/public.key +++ b/tests/fixtures/gpg/user3@gitsecret.io/public.key @@ -1,4 +1,5 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.22 (GNU/Linux) mQENBFtLVc0BCACwGHyefi/z8xeH6KpLN2k9+PlHAPpwJaW+8siaWjbQenkbWX6/ cVBFBwLNVCY+UacKNKVPxYDgS9UkAGlqD1GRGISh9uvIKW/w4T2LBxDQBGlYsTdL @@ -6,25 +7,25 @@ KhOY1eTb5c7fa3ai17CqNam384+fqD9WCiK3PnO/1QLW48E8Q3R7JgyxmFB96FCb PZuRAMcBmKR7aa2yp493gGoI6Ts04gd33zDex0Qywz7u1rKNp/Sirb35nJUZ7Q63 fof2LXSaJXEnHMdE6BFMkIhSluMAICxnb8uD57QilPSh3dkd5VmZAwd0dFV9orLA zlBnRu/VOmQA3bXaT8/g+F0XiA/r+4ARLnyRABEBAAG0EnVzZXIzQGdpdHNlY3Jl -dC5pb4kBVAQTAQgAPhYhBHP8k4RMwYJK33MPsbP8kwgK5TtRBQJbS1XNAhsDBQkD -wmcABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELP8kwgK5TtR/RUIAILLv/ij -FXzZ87KgikMi4PQ+WGpgXe8G5ownzwQS3TKAFSpk2QsWwzrOcFK3midxCqhUVRJ+ -U+92yPUlGkSa2BXQI5xGud8wLTFdEYHSJi64jFfgKKg4pNtJnRs95jCPXNxvSIvj -ZbTtbutl1U9xotlQhoezRLBMCyjfQCZx9D6AnpcrBHkD6u/pDlrDHkjE5SarwRA7 -Yca2nm9GH2QxWnjLH4sdXMQOsPHANDy6coaRN5a14RjIFv71vO+JA5Oop13ueP5i -f0cK3Djn4Wz2R4vVx3Mu3/2owMU1GOvZbnbZlb79KYfv469u0TeqNmuu1jc1hFrD -18WpPSv3XEU2pqu5AQ0EW0tVzQEIAPZv9pwPyKQ8x675NJHPXGTCvGMyHXiTHltY -taaEB0UrcWSlHNHL+7tRExjJzV7iTVV36ytJxzo8d8DJbl0/uTK5X8jeoZUlMYO2 -ndgNxeD1NJOhinrlWj5FNOUYTcZV5Wz8pWzcil/agGDFtdmL63CtDplSv4CTsz2h -aKY3IaRiv+Q4L/zM7mFrGxg1qY60GZx52WRy0fGHdq5nntcYMcK3WHl8xEzM2hWq -HJaaD5dbs7fQdjx/kBffuseC2m4KS7t6PNffk1f6Mt6VHlrZ/ZD5JWzTakaY4Xqf -g8okDek9dh+i5HzC6KIWOJ/FWrUBBCbQnUwl4yK0e75VxfHwoGsAEQEAAYkBNgQY -AQgAIBYhBHP8k4RMwYJK33MPsbP8kwgK5TtRBQJbS1XNAhsMAAoJELP8kwgK5TtR -PWcH/3K5/Xe6gmRqYEG2kI9ZSK9S7Sx87HJetFIP/Zi97u03PcrOaoPhAfmNM5em -OzKTR7f10xWy1NKKitSVTO6SVWcahR5yquUraVrYgkO798LaXc4rm9UtZJrYiFt1 -UTDKkBlvwo5EY9ed9iqmnnnzPKw1yj+JfwAfIL317Pl4eLYBE+PY4fwjiIfGilQD -HBHtkfMs/HgrZpOwHMHMmBg2XaYh5PfTDzPQAougKqeeX5jyrrJTIy9S71o5RhA8 -5jmUGLX8DE2+YnV6n25gvUKO5EkWQFt+KwKEw8B4eROufdVBFe8JAYVN+MN1lLfA -S1UXToiucAluRKyB4e5qYKb0SuE= -=XKbN +dC5pb4kBTgQTAQgAOBYhBHP8k4RMwYJK33MPsbP8kwgK5TtRAhsDBQsJCAcCBhUK +CQgLAgQWAgMBAh4BAheABQJfZfe/AAoJELP8kwgK5TtRHGoH/RmpDq1mHmadn+QL +ZMtvgZAmpltk7Jvgjq4jYsfd2LjcRf1Qy0m9cGyXmtHryMKkl+vML+cJaRUsL2Z4 +3J1SANcY0nITKnbZ1cmhK9/NwjVYU5M4rsl0eL1O2yaoQpmT1gLSuWJqKxvzzq9e +sHguxvIupFhhzT72hEtmdZtj2Zz7jgGucU5akxrIQuckyE2rlrBImHBz3zdUTATH +Id0JK2P3hDZIEz+/3Gmj7GONslV7yq0gle8Dlok+LUc5ulYEmr7dlZWop9ZjzBSi +M+f43s9S5S8EbNRqd+lt0qzTbleM7hjTNuH7b9bwlwWzWcvl8QAtnotXLRyWV0sH +5Fyjdzi5AQ0EW0tVzQEIAPZv9pwPyKQ8x675NJHPXGTCvGMyHXiTHltYtaaEB0Ur +cWSlHNHL+7tRExjJzV7iTVV36ytJxzo8d8DJbl0/uTK5X8jeoZUlMYO2ndgNxeD1 +NJOhinrlWj5FNOUYTcZV5Wz8pWzcil/agGDFtdmL63CtDplSv4CTsz2haKY3IaRi +v+Q4L/zM7mFrGxg1qY60GZx52WRy0fGHdq5nntcYMcK3WHl8xEzM2hWqHJaaD5db +s7fQdjx/kBffuseC2m4KS7t6PNffk1f6Mt6VHlrZ/ZD5JWzTakaY4Xqfg8okDek9 +dh+i5HzC6KIWOJ/FWrUBBCbQnUwl4yK0e75VxfHwoGsAEQEAAYkBNgQYAQgAIBYh +BHP8k4RMwYJK33MPsbP8kwgK5TtRBQJbS1XNAhsMAAoJELP8kwgK5TtRPWcH/3K5 +/Xe6gmRqYEG2kI9ZSK9S7Sx87HJetFIP/Zi97u03PcrOaoPhAfmNM5emOzKTR7f1 +0xWy1NKKitSVTO6SVWcahR5yquUraVrYgkO798LaXc4rm9UtZJrYiFt1UTDKkBlv +wo5EY9ed9iqmnnnzPKw1yj+JfwAfIL317Pl4eLYBE+PY4fwjiIfGilQDHBHtkfMs +/HgrZpOwHMHMmBg2XaYh5PfTDzPQAougKqeeX5jyrrJTIy9S71o5RhA85jmUGLX8 +DE2+YnV6n25gvUKO5EkWQFt+KwKEw8B4eROufdVBFe8JAYVN+MN1lLfAS1UXToiu +cAluRKyB4e5qYKb0SuE= +=ccTC -----END PGP PUBLIC KEY BLOCK-----