Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1e02fbb597 | |||
| b534e3a243 | |||
| 523f24c92f | |||
| 0901deea32 | |||
| 59620fae2d | |||
| 3fbdfd5f2e | |||
| 57a5994e12 | |||
| c6cde72b37 | |||
| d47636092a | |||
| e292f8ca51 | |||
| 8f4080074b | |||
| b04e5db100 | |||
| 2795997f4c | |||
| 8bc0c5636e | |||
| 58bf3b35cc | |||
| 124ee84d1f |
@@ -1,13 +1,18 @@
|
||||
name: Create release PR
|
||||
|
||||
run-name: Create release PR for v${{ github.event.inputs.version }}
|
||||
run-name: Create release PR for new ${{ github.event.inputs.version }} version
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
required: true
|
||||
description: "Version to bump `package.json` to (format: x.y.z)"
|
||||
type: choice
|
||||
description: "What type of release is this"
|
||||
options:
|
||||
- "major"
|
||||
- "minor"
|
||||
- "patch"
|
||||
|
||||
jobs:
|
||||
create-release-pr:
|
||||
@@ -31,21 +36,25 @@ jobs:
|
||||
git config --global user.email "github-actions@github.com"
|
||||
git config --global user.name "GitHub Actions"
|
||||
|
||||
git checkout -b release/${{ inputs.version }}
|
||||
NEW_VERSION=$(./script/workflows/increment-version.sh ${{ inputs.version }})
|
||||
|
||||
npx lerna version ${{ inputs.version }} --yes --no-push --no-git-tag-version --force-publish
|
||||
git checkout -b release/$NEW_VERSION
|
||||
|
||||
npx lerna version $NEW_VERSION --yes --no-push --no-git-tag-version --force-publish
|
||||
|
||||
git add **/package.json package-lock.json lerna.json
|
||||
git commit -m "Release extension version ${{ inputs.version }}"
|
||||
git commit -m "Release extension version $NEW_VERSION"
|
||||
|
||||
git push --set-upstream origin release/${{ inputs.version }}
|
||||
git push --set-upstream origin release/$NEW_VERSION
|
||||
|
||||
echo "new_version=$NEW_VERSION" >> $GITHUB_ENV
|
||||
|
||||
- name: Create PR
|
||||
run: |
|
||||
gh pr create \
|
||||
--title "Release version ${{ inputs.version }}" \
|
||||
--body "Release version ${{ inputs.version }}" \
|
||||
--title "Release version ${{ env.new_version }}" \
|
||||
--body "Release version ${{ env.new_version }}" \
|
||||
--base main \
|
||||
--head release/${{ inputs.version }}
|
||||
--head release/${{ env.new_version }}
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
# actions/expressions
|
||||
|
||||
blah
|
||||
|
||||
`@actions/expressions` is a library to parse and evaluate GitHub Actions [expressions](https://docs.github.com/actions/learn-github-actions/expressions).
|
||||
|
||||
## Installation
|
||||
@@ -94,4 +92,4 @@ npm run format-check
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the terms of the MIT open source license. Please refer to [MIT](../LICENSE) for the full terms.
|
||||
This project is licensed under the terms of the MIT open source license. Please refer to [MIT](../LICENSE) for the full terms.
|
||||
@@ -47,8 +47,11 @@
|
||||
"@actions/workflow-parser": "^0.3.4",
|
||||
"@octokit/rest": "^19.0.7",
|
||||
"@octokit/types": "^9.0.0",
|
||||
"@roamhq/mac-ca": "^1.0.7",
|
||||
"node-forge": "^1.3.1",
|
||||
"vscode-languageserver": "^8.0.2",
|
||||
"vscode-languageserver-textdocument": "^1.0.7",
|
||||
"win-ca": "^3.5.0",
|
||||
"yaml": "^2.1.3"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
export class CertificateReader {
|
||||
getAllRootCAs(): string[] {
|
||||
switch (process.platform) {
|
||||
case "darwin":
|
||||
return this.getMacOSCerts();
|
||||
case "win32":
|
||||
return this.getWindowsCerts();
|
||||
default:
|
||||
// We only support self-signed certs from Windows anc MacOS
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
private getMacOSCerts(): string[] {
|
||||
// loading modules here prevents unnecessary module loading
|
||||
// see: https://stackoverflow.com/questions/9132772/lazy-loading-in-node-js
|
||||
const macCa = require("@roamhq/mac-ca");
|
||||
const forge = require("node-forge");
|
||||
|
||||
return macCa.all().map((cert: any) => forge.pki.certificateToPem(cert));
|
||||
}
|
||||
|
||||
private getWindowsCerts(): string[] {
|
||||
const ca = require("win-ca");
|
||||
|
||||
let rootCAs: string[] = [];
|
||||
|
||||
ca({
|
||||
format: ca.der2.pem,
|
||||
ondata: (crt: string) => rootCAs.push(crt)
|
||||
});
|
||||
|
||||
return rootCAs;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,27 @@
|
||||
import {Octokit} from "@octokit/rest";
|
||||
import {Agent} from "node:https";
|
||||
import {CertificateReader} from "./certificate-reader";
|
||||
|
||||
export function getClient(token: string, userAgent?: string): Octokit {
|
||||
return new Octokit({
|
||||
auth: token,
|
||||
userAgent: userAgent || `GitHub Actions Language Server`
|
||||
});
|
||||
const certReader = new CertificateReader();
|
||||
const selfSignedCerts = certReader.getAllRootCAs();
|
||||
|
||||
if (selfSignedCerts.length > 0) {
|
||||
const httpsAgent = new Agent({
|
||||
ca: selfSignedCerts
|
||||
});
|
||||
|
||||
return new Octokit({
|
||||
auth: token,
|
||||
userAgent: userAgent || `GitHub Actions Language Server`,
|
||||
request: {
|
||||
agent: httpsAgent
|
||||
}
|
||||
});
|
||||
} else {
|
||||
return new Octokit({
|
||||
auth: token,
|
||||
userAgent: userAgent || `GitHub Actions Language Server`
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+55
-2
@@ -402,8 +402,11 @@
|
||||
"@actions/workflow-parser": "^0.3.4",
|
||||
"@octokit/rest": "^19.0.7",
|
||||
"@octokit/types": "^9.0.0",
|
||||
"@roamhq/mac-ca": "^1.0.7",
|
||||
"node-forge": "^1.3.1",
|
||||
"vscode-languageserver": "^8.0.2",
|
||||
"vscode-languageserver-textdocument": "^1.0.7",
|
||||
"win-ca": "^3.5.0",
|
||||
"yaml": "^2.1.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -3695,6 +3698,14 @@
|
||||
"typescript": "^3 || ^4"
|
||||
}
|
||||
},
|
||||
"node_modules/@roamhq/mac-ca": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@roamhq/mac-ca/-/mac-ca-1.0.7.tgz",
|
||||
"integrity": "sha512-AOHGY1R0pH+dWJueA5i1gx2V19CLfDa8ojanhyd5ZSI/YDZ3szDr0NSDntFgWGKsvT4TtvNZfDWmXuwbSY9fTg==",
|
||||
"dependencies": {
|
||||
"node-forge": "^1.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@sinclair/typebox": {
|
||||
"version": "0.24.51",
|
||||
"dev": true,
|
||||
@@ -6998,6 +7009,11 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/is-electron": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz",
|
||||
"integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg=="
|
||||
},
|
||||
"node_modules/is-extglob": {
|
||||
"version": "2.1.1",
|
||||
"dev": true,
|
||||
@@ -8710,6 +8726,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/node-forge": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
|
||||
"integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
|
||||
"engines": {
|
||||
"node": ">= 6.13.0"
|
||||
}
|
||||
},
|
||||
"node_modules/node-gyp": {
|
||||
"version": "9.3.0",
|
||||
"dev": true,
|
||||
@@ -10688,7 +10712,6 @@
|
||||
},
|
||||
"node_modules/split": {
|
||||
"version": "1.0.1",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"through": "2"
|
||||
@@ -10954,7 +10977,6 @@
|
||||
},
|
||||
"node_modules/through": {
|
||||
"version": "2.3.8",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/through2": {
|
||||
@@ -11469,6 +11491,37 @@
|
||||
"string-width": "^1.0.2 || 2 || 3 || 4"
|
||||
}
|
||||
},
|
||||
"node_modules/win-ca": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/win-ca/-/win-ca-3.5.0.tgz",
|
||||
"integrity": "sha512-0TgO/+2iz2pS3OxBy2ikovPHOYyZRdLRxRTT9ze7DpZwEpaahLFOBuac93GM3lYEVzDyf8fXskJjIX/EILvkhQ==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"is-electron": "^2.2.0",
|
||||
"make-dir": "^1.3.0",
|
||||
"node-forge": "^1.2.1",
|
||||
"split": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/win-ca/node_modules/make-dir": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
|
||||
"integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
|
||||
"dependencies": {
|
||||
"pify": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/win-ca/node_modules/pify": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
||||
"integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/word-wrap": {
|
||||
"version": "1.2.3",
|
||||
"dev": true,
|
||||
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
VERSION=$(cat lerna.json | jq -r '.version')
|
||||
|
||||
MAJOR=$(echo $VERSION | cut -d. -f1)
|
||||
MINOR=$(echo $VERSION | cut -d. -f2)
|
||||
PATCH=$(echo $VERSION | cut -d. -f3)
|
||||
|
||||
if [ "$1" == "major" ]; then
|
||||
MAJOR=$((MAJOR+1))
|
||||
MINOR=0
|
||||
PATCH=0
|
||||
elif [ "$1" == "minor" ]; then
|
||||
MINOR=$((MINOR+1))
|
||||
PATCH=0
|
||||
elif [ "$1" == "patch" ]; then
|
||||
PATCH=$((PATCH+1))
|
||||
else
|
||||
echo "Invalid version type. Use 'major', 'minor' or 'patch'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
|
||||
echo $NEW_VERSION
|
||||
Reference in New Issue
Block a user