Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
65e34a8aa7 |
@@ -362,6 +362,31 @@ describe('subjectFromInputs', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('when duplicate subjects are supplied', () => {
|
||||||
|
let otherDir = ''
|
||||||
|
|
||||||
|
// Add duplicate subject in alternate directory
|
||||||
|
beforeEach(async () => {
|
||||||
|
// Set-up temp directory
|
||||||
|
const tmpDir = await fs.realpath(os.tmpdir())
|
||||||
|
otherDir = await fs.mkdtemp(tmpDir + path.sep)
|
||||||
|
|
||||||
|
// Write file to temp directory
|
||||||
|
await fs.writeFile(path.join(otherDir, filename), content)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('returns de-duplicated subjects', async () => {
|
||||||
|
const inputs: SubjectInputs = {
|
||||||
|
...blankInputs,
|
||||||
|
subjectPath: `${path.join(dir, 'subject')}, ${path.join(otherDir, 'subject')} `
|
||||||
|
}
|
||||||
|
const subjects = await subjectFromInputs(inputs)
|
||||||
|
|
||||||
|
expect(subjects).toBeDefined()
|
||||||
|
expect(subjects).toHaveLength(1)
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
5
dist/index.js
generated
vendored
5
dist/index.js
generated
vendored
@@ -71205,7 +71205,10 @@ const getSubjectFromPath = async (subjectPath, subjectName) => {
|
|||||||
for (const file of files) {
|
for (const file of files) {
|
||||||
const name = subjectName || path_1.default.parse(file).base;
|
const name = subjectName || path_1.default.parse(file).base;
|
||||||
const digest = await digestFile(DIGEST_ALGORITHM, file);
|
const digest = await digestFile(DIGEST_ALGORITHM, file);
|
||||||
digestedSubjects.push({ name, digest: { [DIGEST_ALGORITHM]: digest } });
|
// Only add the subject if it is not already in the list
|
||||||
|
if (!digestedSubjects.some(s => s.name === name && s.digest[DIGEST_ALGORITHM] === digest)) {
|
||||||
|
digestedSubjects.push({ name, digest: { [DIGEST_ALGORITHM]: digest } });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (digestedSubjects.length === 0) {
|
if (digestedSubjects.length === 0) {
|
||||||
throw new Error(`Could not find subject at path ${subjectPath}`);
|
throw new Error(`Could not find subject at path ${subjectPath}`);
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "actions/attest",
|
"name": "actions/attest",
|
||||||
"version": "2.0.0",
|
"version": "2.0.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "actions/attest",
|
"name": "actions/attest",
|
||||||
"version": "2.0.0",
|
"version": "2.0.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/attest": "^1.5.0",
|
"@actions/attest": "^1.5.0",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "actions/attest",
|
"name": "actions/attest",
|
||||||
"description": "Generate signed attestations for workflow artifacts",
|
"description": "Generate signed attestations for workflow artifacts",
|
||||||
"version": "2.0.0",
|
"version": "2.0.1",
|
||||||
"author": "",
|
"author": "",
|
||||||
"private": true,
|
"private": true,
|
||||||
"homepage": "https://github.com/actions/attest",
|
"homepage": "https://github.com/actions/attest",
|
||||||
|
|||||||
@@ -84,7 +84,14 @@ const getSubjectFromPath = async (
|
|||||||
const name = subjectName || path.parse(file).base
|
const name = subjectName || path.parse(file).base
|
||||||
const digest = await digestFile(DIGEST_ALGORITHM, file)
|
const digest = await digestFile(DIGEST_ALGORITHM, file)
|
||||||
|
|
||||||
digestedSubjects.push({ name, digest: { [DIGEST_ALGORITHM]: digest } })
|
// Only add the subject if it is not already in the list
|
||||||
|
if (
|
||||||
|
!digestedSubjects.some(
|
||||||
|
s => s.name === name && s.digest[DIGEST_ALGORITHM] === digest
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
digestedSubjects.push({ name, digest: { [DIGEST_ALGORITHM]: digest } })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (digestedSubjects.length === 0) {
|
if (digestedSubjects.length === 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user