From 983aafb216f84d71cfe49eacc6a63c3a31dbf1c2 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 10 Aug 2021 08:22:15 +0200 Subject: [PATCH] Handle `if-asked` for `git-push-gpgsign` input --- .github/ghaction-import-gpg.png | Bin 22803 -> 16870 bytes .github/workflows/ci.yml | 4 +-- Dockerfile.dev | 53 -------------------------------- README.md | 5 +-- action.yml | 2 +- dist/index.js | 53 +++++++++++++++++--------------- src/context.ts | 4 +-- src/main.ts | 51 ++++++++++++++++-------------- 8 files changed, 65 insertions(+), 107 deletions(-) delete mode 100644 Dockerfile.dev diff --git a/.github/ghaction-import-gpg.png b/.github/ghaction-import-gpg.png index d702c72c2a270086a21b6b67d530f0a21959236b..a3a920e80098d60e52f35a93f56cde79d7e51a0f 100644 GIT binary patch literal 16870 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

1>WL(#C1p71@W!rRZ>2 zxfrdQ*ox_idDCtb<4U{hlV$#LyHw8C@Y8vx-9{|;gA+}-gBK15(DLPW-7IapI@0n9 z`%1jjNh>v-!^y&MQ3nokLsx{QWQVgzo8Gf z5pGLusw94BXlWO(@0b62RCz09RkO>_BtC)v+HY(3hvb*iPk5#?s-Y+4j|>|xUtnt; zu8FZvf$gkMOG@M9AZQgwWr`_23OoONDxTUQb67R9+|-kyph(~+e1`t)4~?fs zGV!Vo@YQoE*0N-xk4exl!^0qBt)&NZicB{DTo)GOweq ztnk`v6%@(ARzO;R3Uq4>tTnjm?|vJ_4--`7tpl*Bp7 zD9342&k-#YiZS8>->j78Ua#mEcTw_WNh~BY$IH6$|$)ays?0!E~;qr7JJN<8_!IK$QXk@JYh!Eu^meG+UNEzU)O4Q@&=urrl^#hNzw z-NfB2ONbY{(Gt6}>~EXn_Ki#qS-xDO7v~?KujF@W5%HkaQdjGF`%TL~RL0P@VP*4Z zxd*GFM>VKneOYTG;J(2gQ;n;NoEdS;}p~{%)V#C?!8(1>Ra*JmZD;-Ifcm(V?-=EesUj+qMu3WwR+h;r?lsxeE2gt8!UKi=PB>qy4SIs}JArAYul+2ct(+uQY^6&V^AG)%+zISZ6n%d?=+!N!*v7$wVYi0$H z$9E9oN7ltJG}z{#&4K;7N9-c!t*mMAUjI1gpDB)Mv-f4I3bF<;Hq6>uWAY0vj#qxY zjfM|nbO>rISi1a>6vV~4q~7a=qx1Z>SQ3o*S@HfAdTxZlomPXMC`UB`(|V43)CS)Iba|J+T|vb49M7-KD$o!#8t`2CKa4Nbsa2^eWuU&!JRrP8B8jMucM4W*Y> zf&i&p*t*lΠS~J6%|eZ&}3J+}BVIbrnOM7eC( zF3x*;cfVe^!eBMN9JVQ1=V)1^*4Z~64lNivn|$EOu#UUfuyc8W^7+JGony=GE>xT1OSq;156L!FR|-hu6xFxMSagkDUZy5B(oA6{(_XnI za*V#UAEh2sr=klZLkgcp7nYW`bn68}i48LLfjVQS4~FJk?*28>oX)e=2jGvj=#s_q9ZuW+Sel5$xqo-Ys z#pQ@)HTWZsUhw7>VivOeefR&AGMf`nKCTb&;}0USm@fj*^vh=gaL{eem=t#qbWIEz z=k@`wANH08;2R8ndO*oS`qBa%Q`EKw#x@{eoAgMI_F(Y^7Qys##$b}v5vXhnstPTN zk%dqm-}cVA0AB207WVlBp43Bf(ogu41$U;m_7XABf?%blX$>xdUrVqAm;ECMA{bi? zqLHZfq>H|9@x`T?cjB23u;ICO;Vuj52@N<#(UM1<%PV%+7wFn+nQ#0rd&y@%EhMQ< zK<3R0Q~)bIFVrWhB=YEhqT4P}U3mh107Ka$tq*lX4Qxm;ECgErrq6;FAd@1Z%ZO-o z);D{JAQep;Bd>J=@)*Y2u=q0Mmq`BdSwv~`@tcmwlu7F->InHKYW_!D?M#YY6ZY

^d#tqD%;F_!C98h*92jcZ=b|b|A+_d8#g2b73>N*H-F^Kj6MAu zeS={RJ(1(NIZ?ps+Z27Ww|&&|vVq^bh9dI<;UKT-vyZ(0diD1)|HD11jGW&sQk8N1 PpO%+$s literal 22803 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 S!RwR=}?S diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bd54ab03..ce3e29fd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,7 +47,7 @@ jobs: git-user-signingkey: true git-commit-gpgsign: true git-tag-gpgsign: true - git-push-gpgsign: true + git-push-gpgsign: if-asked - name: GPG user IDs run: | @@ -88,7 +88,7 @@ jobs: git-user-signingkey: true git-commit-gpgsign: true git-tag-gpgsign: true - git-push-gpgsign: true + git-push-gpgsign: if-asked - name: GPG user IDs run: | diff --git a/Dockerfile.dev b/Dockerfile.dev deleted file mode 100644 index f9a1dbcf..00000000 --- a/Dockerfile.dev +++ /dev/null @@ -1,53 +0,0 @@ -#syntax=docker/dockerfile:1.2 - -FROM node:12 AS deps -WORKDIR /src -COPY package.json yarn.lock ./ -RUN --mount=type=cache,target=/src/node_modules \ - yarn install - -FROM scratch AS update-yarn -COPY --from=deps /src/yarn.lock / - -FROM deps AS validate-yarn -COPY .git .git -RUN status=$(git status --porcelain -- yarn.lock); if [ -n "$status" ]; then echo $status; exit 1; fi - -FROM deps AS base -COPY . . - -FROM base AS build -RUN --mount=type=cache,target=/src/node_modules \ - yarn build - -FROM deps AS test -ARG GITHUB_REPOSITORY -ENV RUNNER_TEMP=/tmp/github_runner -ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache -ENV GITHUB_REPOSITORY=${GITHUB_REPOSITORY} -COPY . . -RUN --mount=type=cache,target=/src/node_modules \ - yarn run test - -FROM scratch AS test-coverage -COPY --from=test /src/coverage /coverage/ - -FROM base AS run-format -RUN --mount=type=cache,target=/src/node_modules \ - yarn run format - -FROM scratch AS format -COPY --from=run-format /src/src/*.ts /src/ - -FROM base AS validate-format -RUN --mount=type=cache,target=/src/node_modules \ - yarn run format-check - -FROM scratch AS dist -COPY --from=build /src/dist/ /dist/ - -FROM build AS validate-build -RUN status=$(git status --porcelain -- dist); if [ -n "$status" ]; then echo $status; exit 1; fi - -FROM base AS dev -ENTRYPOINT ["bash"] diff --git a/README.md b/README.md index d67c30db..9f80ac31 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,8 @@ gpg --armor --export-secret-key joe@foo.bar | xclip -selection clipboard -i gpg --armor --export-secret-key joe@foo.bar | xclip ``` -Paste your clipboard as a [`secret`](https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets) named `GPG_PRIVATE_KEY` for example. Create another secret with the `PASSPHRASE` if applicable. +Paste your clipboard as a [`secret`](https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets) +named `GPG_PRIVATE_KEY` for example. Create another secret with the `PASSPHRASE` if applicable. ## Usage @@ -135,7 +136,7 @@ Following inputs can be used as `step.with` keys | `git-user-signingkey` | Bool | Set GPG signing keyID for this Git repository (default `false`) | | `git-commit-gpgsign`**¹** | Bool | Sign all commits automatically. (default `false`) | | `git-tag-gpgsign`**¹** | Bool | Sign all tags automatically. (default `false`) | -| `git-push-gpgsign`**¹** | Bool | Sign all pushes automatically. (default `false`) | +| `git-push-gpgsign`**¹** | String | Sign all pushes automatically. (default `if-asked`) | | `git-committer-name`**¹** | String | Set commit author's name (defaults to the name associated with the GPG key) | | `git-committer-email`**¹** | String | Set commit author's email (defaults to the email address associated with the GPG key) | | `workdir` | String | Working directory (below repository root) (default `.`) | diff --git a/action.yml b/action.yml index 9317e87f..a699ff2b 100644 --- a/action.yml +++ b/action.yml @@ -27,7 +27,7 @@ inputs: required: false git-push-gpgsign: description: 'Sign all pushes automatically. git-user-signingkey needs to be enabled' - default: 'false' + default: 'if-asked' required: false git-committer-name: description: 'Commit author''s name' diff --git a/dist/index.js b/dist/index.js index 01f0782a..86372b1c 100644 --- a/dist/index.js +++ b/dist/index.js @@ -47,7 +47,7 @@ function getInputs() { gitUserSigningkey: /true/i.test(core.getInput('git-user-signingkey')), gitCommitGpgsign: /true/i.test(core.getInput('git-commit-gpgsign')), gitTagGpgsign: /true/i.test(core.getInput('git-tag-gpgsign')), - gitPushGpgsign: /true/i.test(core.getInput('git-push-gpgsign')), + gitPushGpgsign: core.getInput('git-push-gpgsign'), gitCommitterName: core.getInput('git-committer-name'), gitCommitterEmail: core.getInput('git-committer-email'), workdir: core.getInput('workdir') || '.' @@ -415,35 +415,40 @@ function run() { core.info(`📂 Using ${inputs.workdir} as working directory...`); process.chdir(inputs.workdir); } - core.info('📣 GnuPG info'); const version = yield gpg.getVersion(); const dirs = yield gpg.getDirs(); - core.info(`Version : ${version.gnupg} (libgcrypt ${version.libgcrypt})`); - core.info(`Libdir : ${dirs.libdir}`); - core.info(`Libexecdir : ${dirs.libexecdir}`); - core.info(`Datadir : ${dirs.datadir}`); - core.info(`Homedir : ${dirs.homedir}`); - core.info('🔮 Checking GPG private key'); + yield core.group(`📣 GnuPG info`, () => __awaiter(this, void 0, void 0, function* () { + core.info(`Version : ${version.gnupg} (libgcrypt ${version.libgcrypt})`); + core.info(`Libdir : ${dirs.libdir}`); + core.info(`Libexecdir : ${dirs.libexecdir}`); + core.info(`Datadir : ${dirs.datadir}`); + core.info(`Homedir : ${dirs.homedir}`); + })); const privateKey = yield openpgp.readPrivateKey(inputs.gpgPrivateKey); - core.debug(`Fingerprint : ${privateKey.fingerprint}`); - core.debug(`KeyID : ${privateKey.keyID}`); - core.debug(`Name : ${privateKey.name}`); - core.debug(`Email : ${privateKey.email}`); - core.debug(`CreationTime : ${privateKey.creationTime}`); - core.info('🔑 Importing GPG private key'); - yield gpg.importKey(inputs.gpgPrivateKey).then(stdout => { - core.debug(stdout); - }); + yield core.group(`🔮 Checking GPG private key`, () => __awaiter(this, void 0, void 0, function* () { + core.info(`Fingerprint : ${privateKey.fingerprint}`); + core.info(`KeyID : ${privateKey.keyID}`); + core.info(`Name : ${privateKey.name}`); + core.info(`Email : ${privateKey.email}`); + core.info(`CreationTime : ${privateKey.creationTime}`); + })); + yield core.group(`🔑 Importing GPG private key`, () => __awaiter(this, void 0, void 0, function* () { + yield gpg.importKey(inputs.gpgPrivateKey).then(stdout => { + core.info(stdout); + }); + })); if (inputs.passphrase) { core.info('⚙️ Configuring GnuPG agent'); yield gpg.configureAgent(gpg.agentConfig); core.info('📌 Getting keygrips'); - for (let keygrip of yield gpg.getKeygrips(privateKey.fingerprint)) { - core.info(`🔓 Presetting passphrase for ${keygrip}`); - yield gpg.presetPassphrase(keygrip, inputs.passphrase).then(stdout => { - core.debug(stdout); - }); - } + yield core.group(`📌 Getting keygrips`, () => __awaiter(this, void 0, void 0, function* () { + for (let keygrip of yield gpg.getKeygrips(privateKey.fingerprint)) { + core.info(`🔓 Presetting passphrase for ${keygrip}`); + yield gpg.presetPassphrase(keygrip, inputs.passphrase).then(stdout => { + core.debug(stdout); + }); + } + })); } core.info('🛒 Setting outputs...'); context.setOutput('fingerprint', privateKey.fingerprint); @@ -472,7 +477,7 @@ function run() { } if (inputs.gitPushGpgsign) { core.info('💎 Sign all pushes automatically'); - yield git.setConfig('push.gpgsign', 'true'); + yield git.setConfig('push.gpgsign', inputs.gitPushGpgsign); } } } diff --git a/src/context.ts b/src/context.ts index 8b80e1c7..851a2e93 100644 --- a/src/context.ts +++ b/src/context.ts @@ -7,7 +7,7 @@ export interface Inputs { gitUserSigningkey: boolean; gitCommitGpgsign: boolean; gitTagGpgsign: boolean; - gitPushGpgsign: boolean; + gitPushGpgsign: string; gitCommitterName: string; gitCommitterEmail: string; workdir: string; @@ -20,7 +20,7 @@ export async function getInputs(): Promise { gitUserSigningkey: /true/i.test(core.getInput('git-user-signingkey')), gitCommitGpgsign: /true/i.test(core.getInput('git-commit-gpgsign')), gitTagGpgsign: /true/i.test(core.getInput('git-tag-gpgsign')), - gitPushGpgsign: /true/i.test(core.getInput('git-push-gpgsign')), + gitPushGpgsign: core.getInput('git-push-gpgsign'), gitCommitterName: core.getInput('git-committer-name'), gitCommitterEmail: core.getInput('git-committer-email'), workdir: core.getInput('workdir') || '.' diff --git a/src/main.ts b/src/main.ts index 296b35d8..5088abba 100644 --- a/src/main.ts +++ b/src/main.ts @@ -15,26 +15,29 @@ async function run(): Promise { process.chdir(inputs.workdir); } - core.info('📣 GnuPG info'); const version = await gpg.getVersion(); const dirs = await gpg.getDirs(); - core.info(`Version : ${version.gnupg} (libgcrypt ${version.libgcrypt})`); - core.info(`Libdir : ${dirs.libdir}`); - core.info(`Libexecdir : ${dirs.libexecdir}`); - core.info(`Datadir : ${dirs.datadir}`); - core.info(`Homedir : ${dirs.homedir}`); + await core.group(`📣 GnuPG info`, async () => { + core.info(`Version : ${version.gnupg} (libgcrypt ${version.libgcrypt})`); + core.info(`Libdir : ${dirs.libdir}`); + core.info(`Libexecdir : ${dirs.libexecdir}`); + core.info(`Datadir : ${dirs.datadir}`); + core.info(`Homedir : ${dirs.homedir}`); + }); - core.info('🔮 Checking GPG private key'); const privateKey = await openpgp.readPrivateKey(inputs.gpgPrivateKey); - core.debug(`Fingerprint : ${privateKey.fingerprint}`); - core.debug(`KeyID : ${privateKey.keyID}`); - core.debug(`Name : ${privateKey.name}`); - core.debug(`Email : ${privateKey.email}`); - core.debug(`CreationTime : ${privateKey.creationTime}`); - - core.info('🔑 Importing GPG private key'); - await gpg.importKey(inputs.gpgPrivateKey).then(stdout => { - core.debug(stdout); + await core.group(`🔮 Checking GPG private key`, async () => { + core.info(`Fingerprint : ${privateKey.fingerprint}`); + core.info(`KeyID : ${privateKey.keyID}`); + core.info(`Name : ${privateKey.name}`); + core.info(`Email : ${privateKey.email}`); + core.info(`CreationTime : ${privateKey.creationTime}`); + }); + + await core.group(`🔑 Importing GPG private key`, async () => { + await gpg.importKey(inputs.gpgPrivateKey).then(stdout => { + core.info(stdout); + }); }); if (inputs.passphrase) { @@ -42,12 +45,14 @@ async function run(): Promise { await gpg.configureAgent(gpg.agentConfig); core.info('📌 Getting keygrips'); - for (let keygrip of await gpg.getKeygrips(privateKey.fingerprint)) { - core.info(`🔓 Presetting passphrase for ${keygrip}`); - await gpg.presetPassphrase(keygrip, inputs.passphrase).then(stdout => { - core.debug(stdout); - }); - } + await core.group(`📌 Getting keygrips`, async () => { + for (let keygrip of await gpg.getKeygrips(privateKey.fingerprint)) { + core.info(`🔓 Presetting passphrase for ${keygrip}`); + await gpg.presetPassphrase(keygrip, inputs.passphrase).then(stdout => { + core.debug(stdout); + }); + } + }); } core.info('🛒 Setting outputs...'); @@ -82,7 +87,7 @@ async function run(): Promise { } if (inputs.gitPushGpgsign) { core.info('💎 Sign all pushes automatically'); - await git.setConfig('push.gpgsign', 'true'); + await git.setConfig('push.gpgsign', inputs.gitPushGpgsign); } } } catch (error) {