* First run of script * Get the app running --- ish * Get NextJS working * Remove `node:` * Get more tests passing in unit directory * Update FailBot test to use nock * Update test.yml * Update Dockerfile * tests/content fixes * Update page.js * Update build-changelog.js * updating tests/routing * Update orphan-tests.js * updating tests/rendering * Update .eslintrc.js * Update .eslintrc.js * Install jest/globals * "linting" tests * staging update to server.mjs * Change '.github/allowed-actions.js' to a ESM export * Lint * Fixes for the main package.json * Move Jest to be last in the npm test command so we can pass args * Just use 'npm run lint' in the npm test command * update algolia label script * update openapi script * update require on openapi * Update enterprise-algolia-label.js * forgot JSON.parse * Update lunr-search-index.js * Always explicitly include process.cwd() for JSON file reads pathed from project root * update graphql/update-files.js script * Update other npm scripts using jest to pass ESM NODE_OPTIONS * Update check-for-enterprise-issues-by-label.js for ESM * Update create-enterprise-issue.js for ESM * Import jest global for browser tests * Convert 'script/deploy' to ESM Co-authored-by: Grace Park <gracepark@github.com> Co-authored-by: James M. Greene <jamesmgreene@github.com>
48 lines
1.5 KiB
JavaScript
Executable File
48 lines
1.5 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
import path from 'path'
|
|
import assert from 'assert'
|
|
import patterns from '../lib/patterns.js'
|
|
import { deprecated } from '../lib/enterprise-server-releases.js'
|
|
import { getNewVersionedPath, getOldVersionFromOldPath } from '../lib/old-versions-utils.js'
|
|
|
|
const usage = 'must provide a path like "/github/getting-started" or "/enterprise/2.20/user/github/getting-started", with or without language code'
|
|
|
|
// [start-readme]
|
|
//
|
|
// Helper script that returns a "new" versioned path given an "old" versioned path.
|
|
//
|
|
// Examples:
|
|
//
|
|
// Given: /github/getting-started-with-github/using-github
|
|
// Returns: /free-pro-team@latest/github/getting-started-with-github/using-github
|
|
//
|
|
// Given: /enterprise/admin/installation/upgrading-github-enterprise
|
|
// Returns: /enterprise-server@2.22/admin/installation/upgrading-github-enterprise
|
|
//
|
|
//
|
|
// [end-readme]
|
|
|
|
let oldPath = process.argv.slice(2)[0]
|
|
assert(oldPath, usage)
|
|
|
|
// add '/' to the original string if not included
|
|
if (!oldPath.startsWith('/')) {
|
|
oldPath = path.join('/', oldPath)
|
|
}
|
|
|
|
// do not transform deprecated versions
|
|
const oldVersion = getOldVersionFromOldPath(oldPath)
|
|
|
|
if (deprecated.includes(oldVersion)) {
|
|
console.log('This is a deprecated Enterprise path! It does not redirect.\n')
|
|
process.exit()
|
|
}
|
|
|
|
// get the new path
|
|
const newPath = patterns.hasLanguageCode.test(oldPath)
|
|
? getNewVersionedPath(oldPath, oldPath.match(patterns.getLanguageCode)[1])
|
|
: getNewVersionedPath(oldPath)
|
|
|
|
// print the result
|
|
console.log(`New versioned path:\n\n${newPath}\n`)
|