1
0
mirror of synced 2026-01-10 00:03:04 -05:00

Merge pull request #30243 from github/repo-sync

Repo sync
This commit is contained in:
docs-bot
2023-11-29 13:57:04 -05:00
committed by GitHub
5 changed files with 62 additions and 34 deletions

25
package-lock.json generated
View File

@@ -68,6 +68,7 @@
"ora": "^7.0.1",
"parse5": "7.1.2",
"port-used": "^2.0.8",
"quick-lru": "7.0.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"rehype-highlight": "^7.0.0",
@@ -2370,9 +2371,9 @@
}
},
"node_modules/@primer/react/node_modules/@oddbird/popover-polyfill": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@oddbird/popover-polyfill/-/popover-polyfill-0.3.2.tgz",
"integrity": "sha512-H0Q8JcFkXrOt2FrP0cUz2qomU5O+Dfc51UYLk5GtDWmVhdmvtV2FhgaCUh3TA6U5dogMZOFAf3QbwiGXhe9LXQ=="
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@oddbird/popover-polyfill/-/popover-polyfill-0.3.5.tgz",
"integrity": "sha512-NpbjRxlc99/w/fWhOLMYl0m314HTiEwBtWfAs3z65rEw8pCX+NgUomscG3Ao6bbxaT3tLtSXRkDLx3u6gazIBw=="
},
"node_modules/@primer/view-components": {
"version": "0.1.4",
@@ -7578,6 +7579,17 @@
"node": ">=10.19.0"
}
},
"node_modules/http2-wrapper/node_modules/quick-lru": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
"integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/human-signals": {
"version": "2.1.0",
"dev": true,
@@ -12321,10 +12333,11 @@
"integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
},
"node_modules/quick-lru": {
"version": "5.1.1",
"license": "MIT",
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.0.0.tgz",
"integrity": "sha512-MX8gB7cVYTrYcFfAnfLlhRd0+Toyl8yX8uBx1MrX7K0jegiz9TumwOK27ldXrgDlHRdVi+MqU9Ssw6dr4BNreg==",
"engines": {
"node": ">=10"
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"

View File

@@ -265,6 +265,7 @@
"ora": "^7.0.1",
"parse5": "7.1.2",
"port-used": "^2.0.8",
"quick-lru": "7.0.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"rehype-highlight": "^7.0.0",

View File

@@ -2,6 +2,8 @@ import express from 'express'
import { omit, without, mapValues } from 'lodash-es'
import Ajv from 'ajv'
import addFormats from 'ajv-formats'
import QuickLRU from 'quick-lru'
import { schemas, hydroNames } from './lib/schema.js'
import catchMiddlewareError from '#src/observability/middleware/catch-middleware-error.js'
import { noCacheControl } from '#src/frame/middleware/cache-control.js'
@@ -28,6 +30,11 @@ async function publish(...args) {
return await _publish(...args)
}
const sentValidationErrors = new QuickLRU({
maxSize: 10_000,
maxAge: 1000 * 60,
})
router.post(
'/',
catchMiddlewareError(async function postEvents(req, res) {
@@ -42,14 +49,25 @@ router.post(
// Validate the data matches the corresponding data schema
const validate = validations[type]
if (!validate(req.body)) {
// Track validation errors in Hydro so that we can know if
// there's a widespread problem in events.ts
await publish(
formatErrors(validate.errors, req.body).map((error) => ({
schema: hydroNames.validation,
value: error,
})),
)
const hash = `${req.ip}:${validate.errors
.map((error) => error.message + error.instancePath)
.join(':')}`
// This protects so we don't bother sending the same validation
// error, per user, more than once (per time interval).
// This helps if we're bombarded with junk bot traffic. So it
// protects our Hydro instance from being overloaded with things
// that aren't helping anybody.
if (!sentValidationErrors.has(hash)) {
sentValidationErrors.set(hash, true)
// Track validation errors in Hydro so that we can know if
// there's a widespread problem in events.ts
await publish(
formatErrors(validate.errors, req.body).map((error) => ({
schema: hydroNames.validation,
value: error,
})),
)
}
// We aren't helping bots spam us :)
return res.status(400).json(isProd ? {} : validate.errors)
}

View File

@@ -101,10 +101,12 @@ The dates we use for Enterprise releases and deprecations are stored in [release
1. Remove the temporarily created directory from your `github/docs-internal` checkout.
## Step 4: Test the archived static pages
## Step 4: Deprecate the GHES release in docs-internal
- [ ] Completed step 4 ✅
This step will remove the version from the drop-down picker, effectively deprecating the version from a user's perspective. The content for the deperecated release will still exist in the Markdown files.
1. In your `docs-internal` checkout, create a new branch: `git checkout -b deprecate-<version>`.
1. In your `docs-internal` checkout, edit `lib/enterprise-server-releases.js` by removing the version number to be deprecated from the `supported` array and move it to the `deprecatedWithFunctionalRedirects` array.
@@ -120,27 +122,21 @@ The dates we use for Enterprise releases and deprecations are stored in [release
- You should see a banner on the top of every deprecated page with the date that the version was deprecated.
- You should see a banner at the top of every page for the oldes currently supported version with the date that it will be deprecated in the ~3 months.
## Step 5: Deprecate the version in docs-internal
1. If everything looks good, check in the changes to `lib/enterprise-server-releases.js` and create a pull request.
1. Ensure that CI is passing or make any changes to content needed to get tests to pass.
1. 🚢 Ship the change.
## Step 5: Create a tag
- [ ] ✅ Completed step 5
1. In your `deprecate-<version>` branch, create a new branch: `git checkout -b deprecate-<version>`.
1. Ensure that CI is passing or make any changes to content needed to get tests to pass.
1. 🚢 Ship the change.
The version is now effectively deprecated. 🎉
## Step 🎉: You can complete the remaining steps in any order. And get a snack, you deserve it! 🍪
## Step 6: Create a tag
- [ ] ✅ Completed step 6
1. Create a new tag for the most recent commit on the `main` branch so that we can keep track of where in commit history we removed the GHES release. Create a tag called `enterprise-<release number>-release`. To create only a tag and not a release, you can [create a new release](https://github.com/github/docs-internal/releases), which allows you to "Choose a tag." Select add a new tag and use the tag name as the release title. After creating the new release, you wil see the new tag as well. You can then delete the release.
## Step 7: Remove static files for the version
## Step 6: Remove static files for the version
- [ ] Completed step 7
- [ ] Completed step 6
1. In your `docs-internal` checkout, create a new branch: `git checkout -b remove-<version>-data-files`.
@@ -152,9 +148,9 @@ The version is now effectively deprecated. 🎉
1. When the PR is approved, merge it in. 🚢
## Step 8: Remove the liquid conditionals and content for the version
## Step 7: Remove the liquid conditionals and content for the version
- [] Completed step 8
- [ ] Completed step 7
1. In your `docs-internal` checkout, create a new branch `remove-<version>-markup` branch: `git checkout -b remove-<version>-markup`.

View File

@@ -12,7 +12,7 @@ export const dates = JSON.parse(await fs.readFile('src/ghes-releases/lib/enterpr
export const next = '3.12'
export const nextNext = '3.13'
export const supported = ['3.11', '3.10', '3.9', '3.8', '3.7', '3.6']
export const supported = ['3.11', '3.10', '3.9', '3.8', '3.7']
// Edit this to `null` when it's no longer the release candidate
export const releaseCandidate = '3.11'
@@ -40,7 +40,7 @@ function isValidNext(v1, v2) {
// When you're archiving a version, add the new archived number to this
// array and you should never need to touch the `deprecated` array
// on the line just below.
export const deprecatedWithFunctionalRedirects = ['3.5', '3.4', '3.3', '3.2', '3.1', '3.0']
export const deprecatedWithFunctionalRedirects = ['3.6', '3.5', '3.4', '3.3', '3.2', '3.1', '3.0']
export const deprecated = [
...deprecatedWithFunctionalRedirects,
'2.22',