Compare commits

...

53 Commits

Author SHA1 Message Date
Jonathan Tamsut 1e02fbb597 fix format 2023-05-03 15:24:04 -07:00
Jonathan Tamsut b534e3a243 use certificate reader to read in certs 2023-05-03 15:14:32 -07:00
Jonathan Tamsut 523f24c92f create certificate reader 2023-05-03 15:14:09 -07:00
Jonathan Tamsut 0901deea32 add packages to look up root certs 2023-05-03 15:12:59 -07:00
Jonathan Tamsut 59620fae2d format and lint 2023-05-01 15:14:08 -07:00
Jonathan Tamsut 3fbdfd5f2e update var 2023-05-01 15:08:41 -07:00
Jonathan Tamsut 57a5994e12 add the ability to read in cert 2023-05-01 14:51:54 -07:00
Felipe Suero c6cde72b37 Merge pull request #32 from actions/major-minor-choices
Automate incrementing the version number
2023-05-01 10:32:20 -04:00
Felipe Suero d47636092a don't pin actions stuff 2023-05-01 10:15:24 -04:00
Felipe Suero e292f8ca51 pin all the things 2023-05-01 10:10:52 -04:00
Felipe Suero 8f4080074b pin dependencies 2023-05-01 10:05:19 -04:00
Felipe Suero b04e5db100 save files 2023-04-28 12:55:00 -04:00
Felipe Suero 2795997f4c minor fixes 2023-04-28 12:53:31 -04:00
Felipe Suero 8bc0c5636e draw from lerna 2023-04-27 10:28:01 -04:00
Felipe Suero 58bf3b35cc chmod 2023-04-27 10:25:40 -04:00
Felipe Suero 124ee84d1f Automate incrementing the version number 2023-04-27 10:23:36 -04:00
Jonathan Tamsut 5cb4007629 Merge pull request #26 from actions/release/0.3.4
Release version 0.3.4
2023-04-21 11:10:29 -07:00
GitHub Actions 07fa29649e Release extension version 0.3.4 2023-04-21 18:09:23 +00:00
Liela Rotschy 7bb2962bb0 Merge pull request #25 from actions/lrotschy/add-branches-ignore-to-merge-group-schema
Add branches-ignore to merge group schema
2023-04-19 14:38:04 -06:00
Liela Rotschy 3904c64796 Alphabetize 2023-04-19 13:15:08 -06:00
Liela Rotschy 48ad5e5251 Fix indentation 2023-04-19 13:11:39 -06:00
Liela Rotschy 317c4fcd63 Fix hyphen 2023-04-19 12:58:00 -06:00
Liela Rotschy bf97052855 Add branches-ignore to merge group schema 2023-04-19 12:29:38 -06:00
Crystal Tenn dd8930fd74 Merge pull request #24 from actions/ketchup/fixReusableWorkflowRef
Fix Reusable Workflow Reference for Windows by using vscodeURI instead of path.join
2023-04-19 11:07:04 -04:00
Crystal Tenn 2449e5cea1 make variable names more specific 2023-04-18 18:16:55 -04:00
Crystal Tenn dba3cf5d96 remove unused reference to path 2023-04-18 18:13:52 -04:00
Crystal Tenn 804f83828f fix path reference for reusable workflows and use vscodeURI instead 2023-04-18 17:30:53 -04:00
Crystal Tenn cf2fd6332f Merge pull request #22 from actions/release/0.3.3
Release version 0.3.3
2023-04-14 15:06:27 -04:00
GitHub Actions 51649f27f8 Release extension version 0.3.3 2023-04-14 19:05:30 +00:00
Jonathan Tamsut 74db91e276 Merge pull request #20 from actions/jtamsut/auto-complete-for-mappings
Handle auto-completion for string and boolean mappings
2023-04-14 12:03:28 -07:00
Jonathan Tamsut a1d81c730f yarn prettier 2023-04-14 10:29:20 -07:00
Jonathan Tamsut 18d1bd9734 fix case bug 2023-04-14 10:22:42 -07:00
Jonathan Tamsut fc6a1d3e0c Merge branch 'main' into jtamsut/auto-complete-for-mappings 2023-04-14 09:51:39 -07:00
Jonathan Tamsut 6df34a78ce Update languageservice/src/value-providers/definition.ts
Co-authored-by: Josh Gross <joshmgross@github.com>
2023-04-14 09:51:27 -07:00
Liela Rotschy aee5c2b919 Merge pull request #21 from actions/lrotschy/add-project-board-link
Add project board link to CONTRIBUTING.md
2023-04-14 09:54:11 -06:00
Liela Rotschy 8cdfe810db Add project board link to CONTRIBUTING.md 2023-04-14 08:03:11 -06:00
Jonathan Tamsut 17a680df41 Merge branch 'jtamsut/auto-complete-for-mappings' of https://github.com/actions/languageservices into jtamsut/auto-complete-for-mappings 2023-04-13 15:30:18 -07:00
Jonathan Tamsut 11d3fc25ee run prettier 2023-04-13 15:26:31 -07:00
Jonathan Tamsut d2783ed733 Merge branch 'main' into jtamsut/auto-complete-for-mappings 2023-04-13 15:22:22 -07:00
Jonathan Tamsut 6d0f74e38b fix typo 2023-04-13 15:21:36 -07:00
Jonathan Tamsut 2ecbeafacb add tests 2023-04-13 15:21:23 -07:00
Jonathan Tamsut a4d3fb1a3e add newline to boolean 2023-04-13 10:05:39 -07:00
Beth Brennan 83cac82450 Merge pull request #16 from actions/elbrenn/contributing-links
Fix links in CONTRIBUTING.md
2023-04-12 18:39:55 -04:00
Jonathan Tamsut fc2bacfcdc add break 2023-04-12 15:37:42 -07:00
Jonathan Tamsut 7d8a7c11a6 handle string and boolean mappings 2023-04-12 15:26:17 -07:00
Felipe Suero e37d7620d6 Merge pull request #19 from actions/felipesu19-on-error-tokens
Fixes errors around "on-error" token parsing
2023-04-12 11:45:38 -04:00
Felipe Suero 6e8cbc3e8c prettify 2023-04-12 11:32:38 -04:00
Felipe Suero d0916938ce Remove TokenType 2023-04-12 11:26:59 -04:00
Felipe Suero 488879804f prettify 2023-04-11 13:56:02 -04:00
Felipe Suero 736dd1a66c add scalar handling 2023-04-11 13:54:53 -04:00
Felipe Suero d58deaf097 Remove branch 2023-04-11 10:12:38 -04:00
Felipe Suero f4a32c43cf token 2023-04-11 10:05:30 -04:00
Beth Brennan f29fffce7e Fix links in CONTRIBUTING.md 2023-04-07 13:28:49 -04:00
18 changed files with 223 additions and 44 deletions
+18 -9
View File
@@ -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 }}
+10 -2
View File
@@ -8,6 +8,8 @@ Hi there! We're thrilled that you'd like to contribute to this project. Your hel
We accept pull requests for bug fixes and features where we've discussed the approach in an issue and given the go-ahead for a community member to work on it. We'd also love to hear about ideas for new features as issues.
We track issues on our project board [here](https://github.com/orgs/github/projects/9557/views/1).
Please do:
* Check existing issues to verify that the [bug][bug issues] or [feature request][feature request issues] has not already been submitted.
@@ -21,7 +23,7 @@ Please avoid:
* Opening pull requests for issues marked `needs-design`, `needs-investigation`, or `blocked`.
Contributions to this project are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) to the public under the [project's open source license](LICENSE.md).
Contributions to this project are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) to the public under the [project's open source license](LICENSE).
Please note that this project is released with a [Contributor Code of Conduct][code-of-conduct]. By participating in this project you agree to abide by its terms.
@@ -60,4 +62,10 @@ Please also look at the `README.md` files for each package for additional notes
- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
- [Using Pull Requests](https://help.github.com/articles/about-pull-requests/)
- [GitHub Help](https://help.github.com)
- [GitHub Help](https://help.github.com)
[bug issues]: https://github.com/actions/languageservices/labels/bug
[feature request issues]: https://github.com/actions/languageservices/labels/enhancement
[hw]: https://github.com/actions/languageservices/labels/help%20wanted
[gfi]: https://github.com/actions/languageservices/labels/good%20first%20issue
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@actions/expressions",
"version": "0.3.2",
"version": "0.3.4",
"license": "MIT",
"type": "module",
"source": "./src/index.ts",
+6 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@actions/languageserver",
"version": "0.3.2",
"version": "0.3.4",
"description": "Language server for GitHub Actions",
"license": "MIT",
"type": "module",
@@ -43,12 +43,15 @@
"watch": "tsc --build tsconfig.build.json --watch"
},
"dependencies": {
"@actions/languageservice": "^0.3.2",
"@actions/workflow-parser": "^0.3.2",
"@actions/languageservice": "^0.3.4",
"@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": {
+35
View File
@@ -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;
}
}
+23 -4
View File
@@ -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`
});
}
}
+5 -2
View File
@@ -2,8 +2,8 @@ import {File} from "@actions/workflow-parser/workflows/file";
import {FileProvider} from "@actions/workflow-parser/workflows/file-provider";
import {fileIdentifier} from "@actions/workflow-parser/workflows/file-reference";
import {Octokit} from "@octokit/rest";
import path from "path";
import {TTLCache} from "./utils/cache";
import vscodeURI from "vscode-uri/lib/umd";
export function getFileProvider(
client: Octokit | undefined,
@@ -31,7 +31,10 @@ export function getFileProvider(
throw new Error("Local file references are not supported with this configuration");
}
const file = await readFile(path.join(workspace, ref.path));
const workspaceURI = vscodeURI.URI.parse(workspace);
const refURI = vscodeURI.Utils.joinPath(workspaceURI, ref.path);
const file = await readFile(refURI.toString());
if (!file) {
throw new Error(`File not found: ${ref.path}`);
}
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@actions/languageservice",
"version": "0.3.2",
"version": "0.3.4",
"description": "Language service for GitHub Actions",
"license": "MIT",
"type": "module",
@@ -44,8 +44,8 @@
"watch": "tsc --build tsconfig.build.json --watch"
},
"dependencies": {
"@actions/expressions": "^0.3.2",
"@actions/workflow-parser": "^0.3.2",
"@actions/expressions": "^0.3.4",
"@actions/workflow-parser": "^0.3.4",
"vscode-languageserver-textdocument": "^1.0.7",
"vscode-languageserver-types": "^3.17.2",
"vscode-uri": "^3.0.7",
+11
View File
@@ -474,4 +474,15 @@ jobs:
expect(result.filter(x => x.label === "concurrency").map(x => x.textEdit?.newText)).toEqual(["concurrency"]);
});
});
it("adds a new line and indentation for mapping keys", async () => {
const input = "concurrency: |";
const result = await complete(...getPositionFromCursor(input));
expect(result.filter(x => x.label === "cancel-in-progress").map(x => x.textEdit?.newText)).toEqual([
"\n cancel-in-progress: "
]);
expect(result.filter(x => x.label === "group").map(x => x.textEdit?.newText)).toEqual(["\n group: "]);
});
});
@@ -71,6 +71,10 @@ function mappingValues(
// No special insertText in this case
break;
case DefinitionType.String:
case DefinitionType.Boolean:
insertText = `\n${indentation}${key}: `;
break;
default:
insertText = `${key}: `;
}
+1 -1
View File
@@ -1,5 +1,5 @@
{
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
"useWorkspaces": true,
"version": "0.3.2"
"version": "0.3.4"
}
+64 -11
View File
@@ -135,7 +135,7 @@
},
"expressions": {
"name": "@actions/expressions",
"version": "0.3.2",
"version": "0.3.4",
"license": "MIT",
"devDependencies": {
"@types/jest": "^29.0.3",
@@ -395,15 +395,18 @@
},
"languageserver": {
"name": "@actions/languageserver",
"version": "0.3.2",
"version": "0.3.4",
"license": "MIT",
"dependencies": {
"@actions/languageservice": "^0.3.2",
"@actions/workflow-parser": "^0.3.2",
"@actions/languageservice": "^0.3.4",
"@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": {
@@ -678,11 +681,11 @@
},
"languageservice": {
"name": "@actions/languageservice",
"version": "0.3.2",
"version": "0.3.4",
"license": "MIT",
"dependencies": {
"@actions/expressions": "^0.3.2",
"@actions/workflow-parser": "^0.3.2",
"@actions/expressions": "^0.3.4",
"@actions/workflow-parser": "^0.3.4",
"vscode-languageserver-textdocument": "^1.0.7",
"vscode-languageserver-types": "^3.17.2",
"vscode-uri": "^3.0.7",
@@ -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,
@@ -11720,10 +11773,10 @@
},
"workflow-parser": {
"name": "@actions/workflow-parser",
"version": "0.3.2",
"version": "0.3.4",
"license": "MIT",
"dependencies": {
"@actions/expressions": "^0.3.2",
"@actions/expressions": "^0.3.4",
"cronstrue": "^2.21.0",
"yaml": "^2.0.0-8"
},
+24
View File
@@ -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
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@actions/workflow-parser",
"version": "0.3.2",
"version": "0.3.4",
"license": "MIT",
"type": "module",
"source": "./src/index.ts",
@@ -43,7 +43,7 @@
"watch": "tsc --build tsconfig.build.json --watch"
},
"dependencies": {
"@actions/expressions": "^0.3.2",
"@actions/expressions": "^0.3.4",
"cronstrue": "^2.21.0",
"yaml": "^2.0.0-8"
},
+6 -2
View File
@@ -50,7 +50,7 @@ function convertStep(context: TemplateContext, idBuilder: IdBuilder, step: Templ
let id: StringToken | undefined;
let name: ScalarToken | undefined;
let uses: StringToken | undefined;
let continueOnError: boolean | undefined;
let continueOnError: boolean | ScalarToken | undefined;
let env: MappingToken | undefined;
const ifCondition = new BasicExpressionToken(undefined, undefined, "success()", undefined, undefined, undefined);
for (const item of mapping) {
@@ -78,7 +78,11 @@ function convertStep(context: TemplateContext, idBuilder: IdBuilder, step: Templ
env = item.value.assertMapping("step env");
break;
case "continue-on-error":
continueOnError = item.value.assertBoolean("steps item continue-on-error").value;
if (!item.value.isExpression) {
continueOnError = item.value.assertBoolean("steps item continue-on-error").value;
} else {
continueOnError = item.value.assertScalar("steps item continue-on-error");
}
}
}
@@ -86,7 +86,7 @@ type BaseStep = {
id: string;
name?: ScalarToken;
if: BasicExpressionToken;
"continue-on-error"?: boolean;
"continue-on-error"?: boolean | ScalarToken;
env?: MappingToken;
};
+2 -1
View File
@@ -577,7 +577,8 @@
"mapping": {
"properties": {
"types": "merge-group-activity",
"branches": "event-branches"
"branches": "event-branches",
"branches-ignore": "event-branches-ignore"
}
}
},
+7 -2
View File
@@ -73,8 +73,10 @@ on:
- deleted
merge_group:
branches:
- master
- main
- master
- main
branches-ignore:
- develop
types:
- checks_requested
milestone:
@@ -321,6 +323,9 @@ jobs:
"master",
"main"
],
"branches-ignore": [
"develop"
],
"types": [
"checks_requested"
]