From 0553dd0b662dc58704aa3454d7cfface0c215717 Mon Sep 17 00:00:00 2001 From: Sarah Schneider Date: Wed, 16 Jun 2021 10:40:00 -0400 Subject: [PATCH 1/2] prevent 500s when a bogus version like enterprise-server@3.14788585 is attempted --- middleware/contextualizers/release-notes.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/middleware/contextualizers/release-notes.js b/middleware/contextualizers/release-notes.js index 2a54833aab..5a27392b89 100644 --- a/middleware/contextualizers/release-notes.js +++ b/middleware/contextualizers/release-notes.js @@ -17,8 +17,9 @@ module.exports = async function releaseNotesContext (req, res, next) { const [requestedPlan, requestedRelease] = req.context.currentVersion.split('@') const releaseNotesPerPlan = req.context.site.data['release-notes'][requestedPlan] - // 404 if no release notes can be found + // 404 if no release notes can be found or the requested release is not supported if (!releaseNotesPerPlan) return next() + if (!supported.includes(requestedRelease)) return next() // Release notes handling differs if version has numbered releases (like GHES) or not (like GHAE) const hasNumberedReleases = !(requestedRelease === 'latest') From acdf131b98e7eb04d88f79addf65de7aa016c8a2 Mon Sep 17 00:00:00 2001 From: Sarah Schneider Date: Wed, 16 Jun 2021 11:09:13 -0400 Subject: [PATCH 2/2] use all instead of supported because deprecated releases get special handling --- middleware/contextualizers/release-notes.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/middleware/contextualizers/release-notes.js b/middleware/contextualizers/release-notes.js index 5a27392b89..477c5cd2ad 100644 --- a/middleware/contextualizers/release-notes.js +++ b/middleware/contextualizers/release-notes.js @@ -17,9 +17,9 @@ module.exports = async function releaseNotesContext (req, res, next) { const [requestedPlan, requestedRelease] = req.context.currentVersion.split('@') const releaseNotesPerPlan = req.context.site.data['release-notes'][requestedPlan] - // 404 if no release notes can be found or the requested release is not supported + // 404 if no release notes can be found or the requested release is not valid if (!releaseNotesPerPlan) return next() - if (!supported.includes(requestedRelease)) return next() + if (!all.includes(requestedRelease)) return next() // Release notes handling differs if version has numbered releases (like GHES) or not (like GHAE) const hasNumberedReleases = !(requestedRelease === 'latest')