mirror of
https://github.com/dependabot/fetch-metadata.git
synced 2026-03-12 18:07:12 -04:00
If the update-type is missing for some reason, calculate it from the versions
This commit is contained in:
20
dist/index.js
generated
vendored
20
dist/index.js
generated
vendored
@@ -9043,7 +9043,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.parse = void 0;
|
||||
exports.calculateUpdateType = exports.parse = void 0;
|
||||
const YAML = __importStar(__nccwpck_require__(4603));
|
||||
function parse(commitMessage, branchName, mainBranch, lookup, getScore) {
|
||||
var _a, _b, _c, _d;
|
||||
@@ -9064,7 +9064,8 @@ function parse(commitMessage, branchName, mainBranch, lookup, getScore) {
|
||||
const dirname = `/${chunks.slice(2, -1 * (1 + (dependency['dependency-name'].match(/\//g) || []).length)).join(delim) || ''}`;
|
||||
const lastVersion = index === 0 ? prev : '';
|
||||
const nextVersion = index === 0 ? next : '';
|
||||
return Object.assign({ dependencyName: dependency['dependency-name'], dependencyType: dependency['dependency-type'], updateType: dependency['update-type'], directory: dirname, packageEcosystem: chunks[1], targetBranch: mainBranch, prevVersion: lastVersion, newVersion: nextVersion, compatScore: yield scoreFn(dependency['dependency-name'], lastVersion, nextVersion, chunks[1]) }, yield lookupFn(dependency['dependency-name'], lastVersion, dirname));
|
||||
const updateType = dependency['update-type'] || calculateUpdateType(lastVersion, nextVersion);
|
||||
return Object.assign({ dependencyName: dependency['dependency-name'], dependencyType: dependency['dependency-type'], updateType: updateType, directory: dirname, packageEcosystem: chunks[1], targetBranch: mainBranch, prevVersion: lastVersion, newVersion: nextVersion, compatScore: yield scoreFn(dependency['dependency-name'], lastVersion, nextVersion, chunks[1]) }, yield lookupFn(dependency['dependency-name'], lastVersion, dirname));
|
||||
})));
|
||||
}
|
||||
}
|
||||
@@ -9072,6 +9073,21 @@ function parse(commitMessage, branchName, mainBranch, lookup, getScore) {
|
||||
});
|
||||
}
|
||||
exports.parse = parse;
|
||||
function calculateUpdateType(lastVersion, nextVersion) {
|
||||
if (!lastVersion || !nextVersion || lastVersion === nextVersion) {
|
||||
return '';
|
||||
}
|
||||
const lastParts = lastVersion.split('.');
|
||||
const nextParts = nextVersion.split('.');
|
||||
if (lastParts[0] !== nextParts[0]) {
|
||||
return 'version-update:semver-major';
|
||||
}
|
||||
if (lastParts.length < 2 || nextParts.length < 2 || lastParts[1] !== nextParts[1]) {
|
||||
return 'version-update:semver-minor';
|
||||
}
|
||||
return 'version-update:semver-patch';
|
||||
}
|
||||
exports.calculateUpdateType = calculateUpdateType;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
@@ -30,7 +30,6 @@ test('it returns the updated dependency information when there is a yaml fragmen
|
||||
'updated-dependencies:\n' +
|
||||
'- dependency-name: coffee-rails\n' +
|
||||
' dependency-type: direct:production\n' +
|
||||
' update-type: version-update:semver-minor\n' +
|
||||
'...\n' +
|
||||
'\n' +
|
||||
'Signed-off-by: dependabot[bot] <support@github.com>'
|
||||
@@ -194,3 +193,19 @@ test('it properly handles dependencies which contain slashes', async () => {
|
||||
expect(updatedDependencies[0].ghsaId).toEqual('')
|
||||
expect(updatedDependencies[0].cvss).toEqual(0)
|
||||
})
|
||||
|
||||
test('calculateUpdateType should handle all paths', () => {
|
||||
expect(updateMetadata.calculateUpdateType('', '')).toEqual('')
|
||||
expect(updateMetadata.calculateUpdateType('', '1')).toEqual('')
|
||||
expect(updateMetadata.calculateUpdateType('1', '')).toEqual('')
|
||||
expect(updateMetadata.calculateUpdateType('1.1.1', '1.1.1')).toEqual('')
|
||||
expect(updateMetadata.calculateUpdateType('1', '2')).toEqual('version-update:semver-major')
|
||||
expect(updateMetadata.calculateUpdateType('1.2.2', '2.2.2')).toEqual('version-update:semver-major')
|
||||
expect(updateMetadata.calculateUpdateType('1.1', '1')).toEqual('version-update:semver-minor')
|
||||
expect(updateMetadata.calculateUpdateType('1', '1.1')).toEqual('version-update:semver-minor')
|
||||
expect(updateMetadata.calculateUpdateType('1.2.1', '1.1.1')).toEqual('version-update:semver-minor')
|
||||
expect(updateMetadata.calculateUpdateType('1.1.1', '1.1')).toEqual('version-update:semver-patch')
|
||||
expect(updateMetadata.calculateUpdateType('1.1', '1.1.1')).toEqual('version-update:semver-patch')
|
||||
expect(updateMetadata.calculateUpdateType('1.1.1', '1.1.2')).toEqual('version-update:semver-patch')
|
||||
expect(updateMetadata.calculateUpdateType('1.1.1.1', '1.1.1.2')).toEqual('version-update:semver-patch')
|
||||
})
|
||||
|
||||
@@ -46,10 +46,11 @@ export async function parse (commitMessage: string, branchName: string, mainBran
|
||||
const dirname = `/${chunks.slice(2, -1 * (1 + (dependency['dependency-name'].match(/\//g) || []).length)).join(delim) || ''}`
|
||||
const lastVersion = index === 0 ? prev : ''
|
||||
const nextVersion = index === 0 ? next : ''
|
||||
const updateType = dependency['update-type'] || calculateUpdateType(lastVersion, nextVersion)
|
||||
return {
|
||||
dependencyName: dependency['dependency-name'],
|
||||
dependencyType: dependency['dependency-type'],
|
||||
updateType: dependency['update-type'],
|
||||
updateType: updateType,
|
||||
directory: dirname,
|
||||
packageEcosystem: chunks[1],
|
||||
targetBranch: mainBranch,
|
||||
@@ -64,3 +65,22 @@ export async function parse (commitMessage: string, branchName: string, mainBran
|
||||
|
||||
return Promise.resolve([])
|
||||
}
|
||||
|
||||
export function calculateUpdateType (lastVersion: string, nextVersion: string) {
|
||||
if (!lastVersion || !nextVersion || lastVersion === nextVersion) {
|
||||
return ''
|
||||
}
|
||||
|
||||
const lastParts = lastVersion.split('.')
|
||||
const nextParts = nextVersion.split('.')
|
||||
|
||||
if (lastParts[0] !== nextParts[0]) {
|
||||
return 'version-update:semver-major'
|
||||
}
|
||||
|
||||
if (lastParts.length < 2 || nextParts.length < 2 || lastParts[1] !== nextParts[1]) {
|
||||
return 'version-update:semver-minor'
|
||||
}
|
||||
|
||||
return 'version-update:semver-patch'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user