Compare commits

..

1 Commits

Author SHA1 Message Date
t.behrendt 30070f7f9c refactor: to node action (#47)
CD / Release (push) Successful in 33s
Refactoring the action from a composite to Node action. This change improves security through pinning of packages as well as better test-ability and error handling.

Reviewed-on: #47
Co-authored-by: Timo Behrendt <t.behrendt@t00n.de>
Co-committed-by: Timo Behrendt <t.behrendt@t00n.de>
2026-06-27 14:00:15 +02:00
4 changed files with 8 additions and 6 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Validate JSON - name: Validate Renovate Config
uses: ./ uses: ./
with: with:
json-file: renovate.json json-file: renovate.json
+1 -1
View File
@@ -22228,7 +22228,7 @@ const validateJson = async (jsonFileContent) => {
const schemaUrl = new URL(schema); const schemaUrl = new URL(schema);
const schemaText = await (await fetch(schemaUrl.toString())).text(); const schemaText = await (await fetch(schemaUrl.toString())).text();
const schemaObject = JSON.parse(schemaText); const schemaObject = JSON.parse(schemaText);
const validator = new import_ajv.default(); const validator = new import_ajv.default({ strict: false });
if (!validator.compile(schemaObject)(jsonObject)) throw new Error(`JSON file is not valid: ${validator.errorsText()}`); if (!validator.compile(schemaObject)(jsonObject)) throw new Error(`JSON file is not valid: ${validator.errorsText()}`);
}; };
//#endregion //#endregion
+3 -3
View File
@@ -58,10 +58,10 @@ describe("validateJson()", () => {
{ {
ok: true, ok: true,
text: async () => text: async () =>
JSON.stringify({ ({
despiteThisBeingValidJson: despiteThisBeingValidJson:
"toString() breaks it, making it invalid", "toString() breaks it, making it invalid",
}), }).toString(),
}, },
); );
@@ -69,7 +69,7 @@ describe("validateJson()", () => {
$schema: "https://json-schema.org/draft-07/schema", $schema: "https://json-schema.org/draft-07/schema",
}); });
await expect(validateJson(jsonFile)).rejects.toThrow( await expect(validateJson(jsonFile)).rejects.toThrow(
'strict mode: unknown keyword: "despiteThisBeingValidJson"', '"[object Object]" is not valid JSON',
); );
}); });
+3 -1
View File
@@ -14,7 +14,9 @@ export const validateJson = async (jsonFileContent: string): Promise<void> => {
const schemaText = await schemaContent.text(); const schemaText = await schemaContent.text();
const schemaObject = JSON.parse(schemaText); const schemaObject = JSON.parse(schemaText);
const validator = new Ajv(); const validator = new Ajv({
strict: false,
});
const validate = validator.compile(schemaObject); const validate = validator.compile(schemaObject);
const isValid = validate(jsonObject); const isValid = validate(jsonObject);
if (!isValid) { if (!isValid) {