Remove versions feature flag code (#15793)
* remove FEATURE_NEW_VERSIONS from feature-flags.json * remove process.env.FEATURE_NEW_VERSIONS from include files * remove process.env.FEATURE_NEW_VERSIONS from lib files * remove process.env.FEATURE_NEW_VERSIONS from middleware files * remove process.env.FEATURE_NEW_VERSIONS from script files * remove process.env.FEATURE_NEW_VERSIONS from test files * update test fixtures to use new versions as canonical fixtures
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
"FEATURE_TEST_TRUE": true,
|
"FEATURE_TEST_TRUE": true,
|
||||||
"FEATURE_TEST_FALSE": false,
|
"FEATURE_TEST_FALSE": false
|
||||||
"FEATURE_NEW_VERSIONS": true
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,11 +2,7 @@
|
|||||||
<details class="dropdown-withArrow d-inline-block details details-reset mb-4 position-relative close-when-clicked-outside article-versions">
|
<details class="dropdown-withArrow d-inline-block details details-reset mb-4 position-relative close-when-clicked-outside article-versions">
|
||||||
<summary class="d-flex flex-items-center flex-justify-between f4 h5-mktg btn-outline-mktg btn-mktg p-2">
|
<summary class="d-flex flex-items-center flex-justify-between f4 h5-mktg btn-outline-mktg btn-mktg p-2">
|
||||||
<!-- GitHub.com, Enterprise Server 2.16, etc -->
|
<!-- GitHub.com, Enterprise Server 2.16, etc -->
|
||||||
{% if process.env.FEATURE_NEW_VERSIONS %}
|
|
||||||
<span class="d-md-none d-xl-inline-block mr-1">{{ site.data.ui.pages.article_version }}</span> {{ allVersions[currentVersion].versionTitle }}
|
<span class="d-md-none d-xl-inline-block mr-1">{{ site.data.ui.pages.article_version }}</span> {{ allVersions[currentVersion].versionTitle }}
|
||||||
{% else %}
|
|
||||||
<span class="d-md-none d-xl-inline-block mr-1">{{ site.data.ui.pages.article_version }}</span> {{ productNames[currentVersion] }}
|
|
||||||
{% endif %}
|
|
||||||
<svg class="arrow ml-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="#1277eb"><path d="M1,1l6.2,6L13,1"></path></svg>
|
<svg class="arrow ml-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="#1277eb"><path d="M1,1l6.2,6L13,1"></path></svg>
|
||||||
</summary>
|
</summary>
|
||||||
|
|
||||||
@@ -16,11 +12,7 @@
|
|||||||
href="{{ permalink.href }}"
|
href="{{ permalink.href }}"
|
||||||
class="d-block py-2 {% if currentPath == permalink.href %}link-blue active{% else %}link-gray-dark no-underline{% endif %}"
|
class="d-block py-2 {% if currentPath == permalink.href %}link-blue active{% else %}link-gray-dark no-underline{% endif %}"
|
||||||
>
|
>
|
||||||
{% if process.env.FEATURE_NEW_VERSIONS %}
|
|
||||||
{{ allVersions[permalink.pageVersion].versionTitle }}</a>
|
{{ allVersions[permalink.pageVersion].versionTitle }}</a>
|
||||||
{% else %}
|
|
||||||
{{ productNames[permalink.pageVersion] }}</a>
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
{% unless process.env.FEATURE_NEW_VERSIONS %}
|
|
||||||
{% assign enterpriseServerReleases = enterpriseVersions %}
|
|
||||||
{% endunless %}
|
|
||||||
{% if currentVersion contains enterpriseServerReleases.oldestSupported %}
|
{% if currentVersion contains enterpriseServerReleases.oldestSupported %}
|
||||||
<div class="deprecation-banner border rounded-1 mb-2 bg-yellow-light p-3 border-yellow f5">
|
<div class="deprecation-banner border rounded-1 mb-2 bg-yellow-light p-3 border-yellow f5">
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -44,11 +44,7 @@
|
|||||||
<div id="current-product" class="d-flex flex-items-center flex-justify-between" style="padding-top: 2px;">
|
<div id="current-product" class="d-flex flex-items-center flex-justify-between" style="padding-top: 2px;">
|
||||||
<!-- Product switcher - GitHub.com, Enterprise Server, etc -->
|
<!-- Product switcher - GitHub.com, Enterprise Server, etc -->
|
||||||
<!-- 404 and 500 error layouts are not real pages so we need to hardcode the name for those -->
|
<!-- 404 and 500 error layouts are not real pages so we need to hardcode the name for those -->
|
||||||
{% if process.env.FEATURE_NEW_VERSIONS %}
|
|
||||||
{{ allProducts[currentProduct].name }}
|
{{ allProducts[currentProduct].name }}
|
||||||
{% else %}
|
|
||||||
{{ currentProduct.name }}
|
|
||||||
{% endif %}
|
|
||||||
<svg class="arrow ml-md-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="#1277eb"><path d="M1,1l6.2,6L13,1"></path></svg>
|
<svg class="arrow ml-md-1" width="14px" height="8px" viewBox="0 0 14 8" xml:space="preserve" fill="none" stroke="#1277eb"><path d="M1,1l6.2,6L13,1"></path></svg>
|
||||||
</div>
|
</div>
|
||||||
</summary>
|
</summary>
|
||||||
@@ -57,7 +53,7 @@
|
|||||||
{% for product in activeProducts %}
|
{% for product in activeProducts %}
|
||||||
<a href="{% unless product.external %}/{{ currentLanguage }}{% endunless %}{{ product.href }}"
|
<a href="{% unless product.external %}/{{ currentLanguage }}{% endunless %}{{ product.href }}"
|
||||||
class="d-block py-2
|
class="d-block py-2
|
||||||
{% if process.env.FEATURE_NEW_VERSIONS and product.id == currentProduct %}text-blue-mktg text-underline active{% elsif product.id == currentProduct.id %}text-blue-mktg text-underline active{% else %}link-gray-dark no-underline{% endif %}">
|
{% if product.id == currentProduct %}text-blue-mktg text-underline active{% elsif product.id == currentProduct.id %}text-blue-mktg text-underline active{% else %}link-gray-dark no-underline{% endif %}">
|
||||||
{{ product.name }}
|
{{ product.name }}
|
||||||
{% if product.external %}
|
{% if product.external %}
|
||||||
<span class="ml-1"><svg width="9" height="10" viewBox="0 0 9 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path stroke="#24292e" d="M.646 8.789l8-8M8.5 9V1M1 .643h8"/></svg></span>
|
<span class="ml-1"><svg width="9" height="10" viewBox="0 0 9 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path stroke="#24292e" d="M.646 8.789l8-8M8.5 9V1M1 .643h8"/></svg></span>
|
||||||
@@ -68,10 +64,8 @@
|
|||||||
</details>
|
</details>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if process.env.FEATURE_NEW_VERSIONS %}
|
|
||||||
<!-- Versions picker that only appears in the header on homepage/versioned homepages -->
|
<!-- Versions picker that only appears in the header on homepage/versioned homepages -->
|
||||||
{% include homepage-version-switcher %}
|
{% include homepage-version-switcher %}
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="d-md-inline-block">
|
<div class="d-md-inline-block">
|
||||||
|
|
||||||
|
|||||||
@@ -20,12 +20,7 @@
|
|||||||
<h3 class="text-mono f5 text-normal text-gray text-md-center mb-4">{{ site.data.ui.homepage.explore_by_product }}</h3>
|
<h3 class="text-mono f5 text-normal text-gray text-md-center mb-4">{{ site.data.ui.homepage.explore_by_product }}</h3>
|
||||||
<div class="d-flex flex-wrap gutter gutter-xl-spacious">
|
<div class="d-flex flex-wrap gutter gutter-xl-spacious">
|
||||||
{% for product in activeProducts %}
|
{% for product in activeProducts %}
|
||||||
{% if process.env.FEATURE_NEW_VERSIONS %}
|
{% if product.versions contains currentVersion or currentVersion == 'homepage' %}
|
||||||
{% assign productVersions = product.versions %}
|
|
||||||
{% else %}
|
|
||||||
{% assign productVersions = currentVersion %}
|
|
||||||
{% endif %}
|
|
||||||
{% if productVersions contains currentVersion or currentVersion == 'homepage' %}
|
|
||||||
<div class="d-flex flex-column col-12 col-sm-6 col-lg-3 pb-4">
|
<div class="d-flex flex-column col-12 col-sm-6 col-lg-3 pb-4">
|
||||||
<a class="btn-mktg flex-auto d-flex flex-items-center btn-outline-mktg btn-large-mktg ws-normal " href="{% unless product.external %}/{{ currentLanguage }}{% endunless %}{% if product.versions contains currentVersion %}/{{currentVersion}}/{{product.id}}{% else %}{{product.href}}{% endif %}">{{ product.name }}
|
<a class="btn-mktg flex-auto d-flex flex-items-center btn-outline-mktg btn-large-mktg ws-normal " href="{% unless product.external %}/{{ currentLanguage }}{% endunless %}{% if product.versions contains currentVersion %}/{{currentVersion}}/{{product.id}}{% else %}{{product.href}}{% endif %}">{{ product.name }}
|
||||||
{% if product.external %}
|
{% if product.external %}
|
||||||
|
|||||||
@@ -1,25 +1,12 @@
|
|||||||
{% if process.env.FEATURE_NEW_VERSIONS %}
|
|
||||||
{% include all-products-link %}
|
{% include all-products-link %}
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% for product in activeProducts %}
|
{% for product in activeProducts %}
|
||||||
|
{% if product.versions contains currentVersion or currentVersion == 'homepage' %}
|
||||||
{% if process.env.FEATURE_NEW_VERSIONS %}
|
|
||||||
{% assign productVersions = product.versions %}
|
|
||||||
{% else %}
|
|
||||||
{% assign productVersions = currentVersion %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if productVersions contains currentVersion or currentVersion == 'homepage' %}
|
|
||||||
<li
|
<li
|
||||||
title="{{product.name}}{% if product.external %} (External Site){% endif %}"
|
title="{{product.name}}{% if product.external %} (External Site){% endif %}"
|
||||||
class="sidebar-product"
|
class="sidebar-product"
|
||||||
>
|
>
|
||||||
{% if process.env.FEATURE_NEW_VERSIONS %}
|
|
||||||
<a href="{% unless product.external %}/{{currentLanguage}}{% endunless %}{% if product.versions contains currentVersion %}/{{currentVersion}}/{{product.id}}{% else %}{{product.href}}{% endif %}" class="f4 pl-4 pr-5 py-2">
|
<a href="{% unless product.external %}/{{currentLanguage}}{% endunless %}{% if product.versions contains currentVersion %}/{{currentVersion}}/{{product.id}}{% else %}{{product.href}}{% endif %}" class="f4 pl-4 pr-5 py-2">
|
||||||
{% else %}
|
|
||||||
<a href="{% unless product.external %}/{{currentLanguage}}{% endunless %}{{product.href}}" class="f4 pl-4 pr-5 py-2">
|
|
||||||
{% endif %}
|
|
||||||
{{ product.name }}
|
{{ product.name }}
|
||||||
{% if product.external %}
|
{% if product.external %}
|
||||||
<span class="ml-1"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="octicon" width="16" height="16"> <path fill-rule="evenodd" clip-rule="evenodd" d="M14.75 1C14.8163 1 14.8799 1.02634 14.9268 1.07322C14.9737 1.12011 15 1.1837 15 1.25V5.396C15.0001 5.44551 14.9855 5.49393 14.958 5.53513C14.9305 5.57632 14.8915 5.60843 14.8457 5.62739C14.8 5.64635 14.7497 5.6513 14.7011 5.64162C14.6525 5.63194 14.608 5.60805 14.573 5.573L13.03 4.03L8.53 8.53C8.38783 8.66248 8.19978 8.7346 8.00548 8.73118C7.81118 8.72775 7.62579 8.64903 7.48838 8.51162C7.35097 8.37421 7.27225 8.18882 7.26883 7.99452C7.2654 7.80022 7.33752 7.61217 7.47 7.47L11.97 2.97L10.427 1.427C10.3919 1.39204 10.3681 1.34745 10.3584 1.2989C10.3487 1.25034 10.3536 1.20001 10.3726 1.15427C10.3916 1.10853 10.4237 1.06945 10.4649 1.04199C10.5061 1.01453 10.5545 0.999912 10.604 1H14.75ZM2.75 2C2.28587 2 1.84075 2.18437 1.51256 2.51256C1.18437 2.84075 1 3.28587 1 3.75V13.25C1 14.216 1.784 15 2.75 15H12.25C12.7141 15 13.1592 14.8156 13.4874 14.4874C13.8156 14.1592 14 13.7141 14 13.25V9.75C14 9.55109 13.921 9.36032 13.7803 9.21967C13.6397 9.07902 13.4489 9 13.25 9C13.0511 9 12.8603 9.07902 12.7197 9.21967C12.579 9.36032 12.5 9.55109 12.5 9.75V13.25C12.5 13.3163 12.4737 13.3799 12.4268 13.4268C12.3799 13.4737 12.3163 13.5 12.25 13.5H2.75C2.6837 13.5 2.62011 13.4737 2.57322 13.4268C2.52634 13.3799 2.5 13.3163 2.5 13.25V3.75C2.5 3.6837 2.52634 3.62011 2.57322 3.57322C2.62011 3.52634 2.6837 3.5 2.75 3.5H6.25C6.44891 3.5 6.63968 3.42098 6.78033 3.28033C6.92098 3.13968 7 2.94891 7 2.75C7 2.55109 6.92098 2.36032 6.78033 2.21967C6.63968 2.07902 6.44891 2 6.25 2H2.75Z"></path></svg></span>
|
<span class="ml-1"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="octicon" width="16" height="16"> <path fill-rule="evenodd" clip-rule="evenodd" d="M14.75 1C14.8163 1 14.8799 1.02634 14.9268 1.07322C14.9737 1.12011 15 1.1837 15 1.25V5.396C15.0001 5.44551 14.9855 5.49393 14.958 5.53513C14.9305 5.57632 14.8915 5.60843 14.8457 5.62739C14.8 5.64635 14.7497 5.6513 14.7011 5.64162C14.6525 5.63194 14.608 5.60805 14.573 5.573L13.03 4.03L8.53 8.53C8.38783 8.66248 8.19978 8.7346 8.00548 8.73118C7.81118 8.72775 7.62579 8.64903 7.48838 8.51162C7.35097 8.37421 7.27225 8.18882 7.26883 7.99452C7.2654 7.80022 7.33752 7.61217 7.47 7.47L11.97 2.97L10.427 1.427C10.3919 1.39204 10.3681 1.34745 10.3584 1.2989C10.3487 1.25034 10.3536 1.20001 10.3726 1.15427C10.3916 1.10853 10.4237 1.06945 10.4649 1.04199C10.5061 1.01453 10.5545 0.999912 10.604 1H14.75ZM2.75 2C2.28587 2 1.84075 2.18437 1.51256 2.51256C1.18437 2.84075 1 3.28587 1 3.75V13.25C1 14.216 1.784 15 2.75 15H12.25C12.7141 15 13.1592 14.8156 13.4874 14.4874C13.8156 14.1592 14 13.7141 14 13.25V9.75C14 9.55109 13.921 9.36032 13.7803 9.21967C13.6397 9.07902 13.4489 9 13.25 9C13.0511 9 12.8603 9.07902 12.7197 9.21967C12.579 9.36032 12.5 9.55109 12.5 9.75V13.25C12.5 13.3163 12.4737 13.3799 12.4268 13.4268C12.3799 13.4737 12.3163 13.5 12.25 13.5H2.75C2.6837 13.5 2.62011 13.4737 2.57322 13.4268C2.52634 13.3799 2.5 13.3163 2.5 13.25V3.75C2.5 3.6837 2.52634 3.62011 2.57322 3.57322C2.62011 3.52634 2.6837 3.5 2.75 3.5H6.25C6.44891 3.5 6.63968 3.42098 6.78033 3.28033C6.92098 3.13968 7 2.94891 7 2.75C7 2.55109 6.92098 2.36032 6.78033 2.21967C6.63968 2.07902 6.44891 2 6.25 2H2.75Z"></path></svg></span>
|
||||||
|
|||||||
@@ -6,11 +6,7 @@
|
|||||||
also gets an `is-current-page` class.
|
also gets an `is-current-page` class.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{% if process.env.FEATURE_NEW_VERSIONS %}
|
|
||||||
{% assign product = siteTree[currentLanguage][currentVersion].products[currentProduct] %}
|
{% assign product = siteTree[currentLanguage][currentVersion].products[currentProduct] %}
|
||||||
{% else %}
|
|
||||||
{% assign product = siteTree[currentLanguage][currentVersion].products[currentProduct.id] %}
|
|
||||||
{% endif %}
|
|
||||||
{% include all-products-link %}
|
{% include all-products-link %}
|
||||||
<li title="{{product.title}}" class="sidebar-product mb-2">
|
<li title="{{product.title}}" class="sidebar-product mb-2">
|
||||||
<a href="/{{currentLanguage}}{{product.href}}" class="pl-4 pr-5 pb-1 f4">{{ product.title }}</a>
|
<a href="/{{currentLanguage}}{{product.href}}" class="pl-4 pr-5 pb-1 f4">{{ product.title }}</a>
|
||||||
|
|||||||
@@ -4,11 +4,7 @@
|
|||||||
<h4 class="mb-3">
|
<h4 class="mb-3">
|
||||||
{{ site.data.ui.support.still_need_help }}
|
{{ site.data.ui.support.still_need_help }}
|
||||||
</h4>
|
</h4>
|
||||||
{% if process.env.FEATURE_NEW_VERSIONS %}
|
|
||||||
{% if currentVersion contains 'enterprise' %}{% assign isEnterprise = true %}{% else %}{% assign isEnterprise = false %}{% endif %}
|
{% if currentVersion contains 'enterprise' %}{% assign isEnterprise = true %}{% else %}{% assign isEnterprise = false %}{% endif %}
|
||||||
{% else %}
|
|
||||||
{% if currentVersion != 'dotcom' %}{% assign isEnterprise = true %}{% else %}{% assign isEnterprise = false %}{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
<a id="ask-community" href="https://github.community" class="btn btn-outline">
|
<a id="ask-community" href="https://github.community" class="btn btn-outline">
|
||||||
{% octicon "people" width="16" %}
|
{% octicon "people" width="16" %}
|
||||||
{{ site.data.ui.support.ask_community }}
|
{{ site.data.ui.support.ask_community }}
|
||||||
|
|||||||
@@ -5,47 +5,29 @@ const { difference } = require('lodash')
|
|||||||
const yaml = require('js-yaml')
|
const yaml = require('js-yaml')
|
||||||
const contentDir = path.join(process.cwd(), 'content')
|
const contentDir = path.join(process.cwd(), 'content')
|
||||||
const frontmatter = require('@github-docs/frontmatter')
|
const frontmatter = require('@github-docs/frontmatter')
|
||||||
|
const getApplicableVersions = require('./get-applicable-versions')
|
||||||
|
|
||||||
let getApplicableVersions
|
// the product order is determined by data/products.yml
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
getApplicableVersions = require('./get-applicable-versions')
|
|
||||||
}
|
|
||||||
|
|
||||||
// the product order is determined by a yml file
|
|
||||||
const productsFile = path.join(process.cwd(), 'data/products.yml')
|
const productsFile = path.join(process.cwd(), 'data/products.yml')
|
||||||
const productsYml = yaml.load(fs.readFileSync(productsFile, 'utf8'))
|
const productsYml = yaml.load(fs.readFileSync(productsFile, 'utf8'))
|
||||||
const sortedProductIds = productsYml.productsInOrder
|
const sortedProductIds = productsYml.productsInOrder
|
||||||
|
|
||||||
let contentProductIds = fs.readdirSync(contentDir, { withFileTypes: true })
|
const contentProductIds = fs.readdirSync(contentDir, { withFileTypes: true })
|
||||||
.filter(entry => entry.isDirectory())
|
.filter(entry => entry.isDirectory())
|
||||||
.map(entry => entry.name)
|
.map(entry => entry.name)
|
||||||
|
|
||||||
// TODO this can be removed when we replace content/enterprise/admin with content/admin
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
contentProductIds = contentProductIds.map(id => id.replace('enterprise', 'enterpriseServer'))
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(difference(sortedProductIds, contentProductIds).length === 0)
|
assert(difference(sortedProductIds, contentProductIds).length === 0)
|
||||||
assert(difference(contentProductIds, sortedProductIds).length === 0)
|
assert(difference(contentProductIds, sortedProductIds).length === 0)
|
||||||
|
|
||||||
const internalProducts = {}
|
const internalProducts = {}
|
||||||
|
|
||||||
sortedProductIds.forEach(productId => {
|
sortedProductIds.forEach(productId => {
|
||||||
const relPath = process.env.FEATURE_NEW_VERSIONS
|
const relPath = productId
|
||||||
? productId
|
|
||||||
: productId === 'enterpriseServer' ? 'enterprise/admin' : productId
|
|
||||||
|
|
||||||
const dir = path.join('content', relPath)
|
const dir = path.join('content', relPath)
|
||||||
const toc = path.join(dir, 'index.md')
|
const toc = path.join(dir, 'index.md')
|
||||||
const { data } = frontmatter(fs.readFileSync(toc, 'utf8'))
|
const { data } = frontmatter(fs.readFileSync(toc, 'utf8'))
|
||||||
|
const applicableVersions = getApplicableVersions(data.versions, toc)
|
||||||
let applicableVersions, href
|
const href = path.join('/', applicableVersions[0], productId)
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
applicableVersions = getApplicableVersions(data.versions, toc)
|
|
||||||
href = path.join('/', applicableVersions[0], productId)
|
|
||||||
} else {
|
|
||||||
href = path.join('/', relPath)
|
|
||||||
}
|
|
||||||
|
|
||||||
internalProducts[productId] = {
|
internalProducts[productId] = {
|
||||||
id: productId,
|
id: productId,
|
||||||
@@ -56,11 +38,7 @@ sortedProductIds.forEach(productId => {
|
|||||||
wip: data.wip || false
|
wip: data.wip || false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
internalProducts[productId].versions = applicableVersions
|
internalProducts[productId].versions = applicableVersions
|
||||||
} else {
|
|
||||||
internalProducts[productId].hasEnterpriseUserVersions = productsYml.hasEnterpriseUserVersions.some(id => id === productId)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const externalProducts = {
|
const externalProducts = {
|
||||||
@@ -78,10 +56,6 @@ const externalProducts = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
Object.keys(externalProducts).forEach(id => { externalProducts[id].hasEnterpriseUserVersions = false })
|
|
||||||
}
|
|
||||||
|
|
||||||
const allProducts = Object.assign({}, internalProducts, externalProducts)
|
const allProducts = Object.assign({}, internalProducts, externalProducts)
|
||||||
|
|
||||||
module.exports = allProducts
|
module.exports = allProducts
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
const enterpriseServerReleases = require('./enterprise-server-releases')
|
const enterpriseServerReleases = require('./enterprise-server-releases')
|
||||||
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
module.exports = ['dotcom'].concat(enterpriseServerReleases.supported)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
// version = "plan"@"release"
|
// version = "plan"@"release"
|
||||||
// example: enterprise-server@2.21
|
// example: enterprise-server@2.21
|
||||||
// where "enterprise-server" is the plan and "2.21" is the release
|
// where "enterprise-server" is the plan and "2.21" is the release
|
||||||
@@ -48,4 +43,3 @@ if (process.env.FEATURE_NEW_VERSIONS) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
module.exports = allVersions
|
module.exports = allVersions
|
||||||
}
|
|
||||||
|
|||||||
@@ -79,9 +79,7 @@ module.exports = async function checkLinks ($, page, context, version, checkedLi
|
|||||||
|
|
||||||
// finding the linked page isn't enough if it's a github.com page; also need to check versions
|
// finding the linked page isn't enough if it's a github.com page; also need to check versions
|
||||||
if (linkedPage.relativePath.startsWith('github')) {
|
if (linkedPage.relativePath.startsWith('github')) {
|
||||||
const linkedPageVersions = process.env.FEATURE_NEW_VERSIONS
|
const linkedPageVersions = getApplicableVersions(linkedPage.versions, linkedPage.relativePath)
|
||||||
? getApplicableVersions(linkedPage.versions, linkedPage.relativePath)
|
|
||||||
: getApplicableVersions(linkedPage.productVersions, linkedPage.relativePath)
|
|
||||||
|
|
||||||
if (!linkedPageVersions.includes(version) && $(internalLink).attr('class') !== 'dotcom-only') {
|
if (!linkedPageVersions.includes(version) && $(internalLink).attr('class') !== 'dotcom-only') {
|
||||||
brokenLinks.links.push({ 'broken link': link, reason: `${version} not found in linked page versions`, 'linked page': linkedPage.fullPath })
|
brokenLinks.links.push({ 'broken link': link, reason: `${version} not found in linked page versions`, 'linked page': linkedPage.fullPath })
|
||||||
|
|||||||
@@ -68,9 +68,7 @@ module.exports = async function checkLinks ($, page, context, version, checkedLi
|
|||||||
|
|
||||||
// finding the linked page isn't enough if it's a github.com page; also need to check versions
|
// finding the linked page isn't enough if it's a github.com page; also need to check versions
|
||||||
if (linkedPage.relativePath.startsWith('github')) {
|
if (linkedPage.relativePath.startsWith('github')) {
|
||||||
const linkedPageVersions = process.env.FEATURE_NEW_VERSIONS
|
const linkedPageVersions = getApplicableVersions(linkedPage.versions, linkedPage.relativePath)
|
||||||
? getApplicableVersions(linkedPage.versions, linkedPage.relativePath)
|
|
||||||
: getApplicableVersions(linkedPage.productVersions, linkedPage.relativePath)
|
|
||||||
|
|
||||||
if (!linkedPageVersions.includes(version) && $(internalLink).attr('class') !== 'dotcom-only') {
|
if (!linkedPageVersions.includes(version) && $(internalLink).attr('class') !== 'dotcom-only') {
|
||||||
brokenLinks.links.push({ 'broken link': link, reason: `${version} not found in linked page versions`, 'linked page': linkedPage.fullPath })
|
brokenLinks.links.push({ 'broken link': link, reason: `${version} not found in linked page versions`, 'linked page': linkedPage.fullPath })
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
const slash = require('slash')
|
const slash = require('slash')
|
||||||
const patterns = require('./patterns')
|
const patterns = require('./patterns')
|
||||||
const allVersions = process.env.FEATURE_NEW_VERSIONS
|
const allVersions = Object.keys(require('./all-versions'))
|
||||||
? Object.keys(require('./all-versions'))
|
|
||||||
: require('./all-versions')
|
|
||||||
const { getVersionedPathWithLanguage } = require('./path-utils')
|
const { getVersionedPathWithLanguage } = require('./path-utils')
|
||||||
|
|
||||||
module.exports = function findPage (href, pages, redirects = {}, languageCode = 'en', sourceLanguage = null) {
|
module.exports = function findPage (href, pages, redirects = {}, languageCode = 'en', sourceLanguage = null) {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ const semverRange = {
|
|||||||
conform: require('semver').validRange,
|
conform: require('semver').validRange,
|
||||||
message: 'Must be a valid SemVer range'
|
message: 'Must be a valid SemVer range'
|
||||||
}
|
}
|
||||||
const productIds = Object.keys(require('./all-products'))
|
|
||||||
const versionIds = Object.keys(require('./all-versions'))
|
const versionIds = Object.keys(require('./all-versions'))
|
||||||
|
|
||||||
const schema = {
|
const schema = {
|
||||||
@@ -68,7 +67,6 @@ const schema = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
schema.properties.versions = {
|
schema.properties.versions = {
|
||||||
type: ['object', 'string'], // allow a '*' string to indicate all versions
|
type: ['object', 'string'], // allow a '*' string to indicate all versions
|
||||||
required: true,
|
required: true,
|
||||||
@@ -77,22 +75,6 @@ if (process.env.FEATURE_NEW_VERSIONS) {
|
|||||||
return acc
|
return acc
|
||||||
}, {})
|
}, {})
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
schema.properties.productVersions = {
|
|
||||||
type: 'object',
|
|
||||||
required: true,
|
|
||||||
properties: productIds.reduce((acc, productId) => {
|
|
||||||
// github used to be called dotcom
|
|
||||||
// TODO: rename `dotcom` to `github` in all the markdown files' frontmatter
|
|
||||||
if (productId === 'github') productId = 'dotcom'
|
|
||||||
|
|
||||||
acc[productId] = semverRange
|
|
||||||
return acc
|
|
||||||
}, {})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function frontmatter (markdown, opts = {}) {
|
function frontmatter (markdown, opts = {}) {
|
||||||
const defaults = {
|
const defaults = {
|
||||||
|
|||||||
@@ -1,36 +1,12 @@
|
|||||||
const allVersions = require('./all-versions')
|
const allVersions = require('./all-versions')
|
||||||
const versionSatisifiesRange = require('./version-satisfies-range')
|
const versionSatisifiesRange = require('./version-satisfies-range')
|
||||||
|
|
||||||
let nonEnterpriseProductVersions
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
nonEnterpriseProductVersions = Object.keys(require('./frontmatter').schema.properties.productVersions.properties)
|
|
||||||
.filter(prop => prop !== 'enterprise')
|
|
||||||
}
|
|
||||||
|
|
||||||
// return an array of versions that an article's product versions encompasses
|
// return an array of versions that an article's product versions encompasses
|
||||||
function getApplicableVersions (frontmatterVersions, filepath) {
|
function getApplicableVersions (frontmatterVersions, filepath) {
|
||||||
if (typeof frontmatterVersions === 'undefined') {
|
if (typeof frontmatterVersions === 'undefined') {
|
||||||
throw new Error(`No \`versions\` frontmatter found in ${filepath}`)
|
throw new Error(`No \`versions\` frontmatter found in ${filepath}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
const applicableVersions = allVersions.filter(version => {
|
|
||||||
if (version === 'dotcom') {
|
|
||||||
// find any non-Enterprise product versions that apply
|
|
||||||
return nonEnterpriseProductVersions.some(version => version in frontmatterVersions)
|
|
||||||
} else {
|
|
||||||
return versionSatisifiesRange(version, frontmatterVersions.enterprise)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
if (!applicableVersions.length) {
|
|
||||||
throw new Error(`No applicable product versions found for file ${filepath}. Please double-check the page's \`productVersions\` frontmatter.`)
|
|
||||||
}
|
|
||||||
|
|
||||||
return applicableVersions
|
|
||||||
}
|
|
||||||
|
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
// all versions are applicable!
|
// all versions are applicable!
|
||||||
if (frontmatterVersions === '*') {
|
if (frontmatterVersions === '*') {
|
||||||
return Object.keys(allVersions)
|
return Object.keys(allVersions)
|
||||||
@@ -72,6 +48,5 @@ function getApplicableVersions (frontmatterVersions, filepath) {
|
|||||||
|
|
||||||
return applicableVersions
|
return applicableVersions
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = getApplicableVersions
|
module.exports = getApplicableVersions
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ const LiquidTag = require('./liquid-tag')
|
|||||||
const findPage = require('../find-page')
|
const findPage = require('../find-page')
|
||||||
const getApplicableVersions = require('../get-applicable-versions')
|
const getApplicableVersions = require('../get-applicable-versions')
|
||||||
|
|
||||||
const versionsProp = process.env.FEATURE_NEW_VERSIONS ? 'versions' : 'productVersions'
|
|
||||||
|
|
||||||
// This class supports a set of link tags. Each tag expects one parameter, a language-agnostic href:
|
// This class supports a set of link tags. Each tag expects one parameter, a language-agnostic href:
|
||||||
//
|
//
|
||||||
// {% link /articles/set-up-git %}
|
// {% link /articles/set-up-git %}
|
||||||
@@ -64,7 +62,7 @@ module.exports = class Link extends LiquidTag {
|
|||||||
if (!page) return ''
|
if (!page) return ''
|
||||||
|
|
||||||
// get versions of the found page
|
// get versions of the found page
|
||||||
const applicableVersions = getApplicableVersions(page[versionsProp], fullPath)
|
const applicableVersions = getApplicableVersions(page.versions, fullPath)
|
||||||
|
|
||||||
// check whether the page versions include the current version
|
// check whether the page versions include the current version
|
||||||
const shouldLinkRenderInCurrentVersion = applicableVersions.includes(ctx.currentVersion)
|
const shouldLinkRenderInCurrentVersion = applicableVersions.includes(ctx.currentVersion)
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
const nonEnterpriseDefaultVersion = Object.values(require('../lib/all-versions'))
|
const nonEnterpriseDefaultVersion = Object.values(require('../lib/all-versions'))
|
||||||
.find(version => version.nonEnterpriseDefault).version
|
.find(version => version.nonEnterpriseDefault).version
|
||||||
|
|
||||||
module.exports = nonEnterpriseDefaultVersion
|
module.exports = nonEnterpriseDefaultVersion
|
||||||
}
|
|
||||||
|
|||||||
13
lib/page.js
13
lib/page.js
@@ -19,10 +19,6 @@ const frontmatter = require('./frontmatter')
|
|||||||
const products = require('./all-products')
|
const products = require('./all-products')
|
||||||
const slash = require('slash')
|
const slash = require('slash')
|
||||||
|
|
||||||
const versionsProp = process.env.FEATURE_NEW_VERSIONS
|
|
||||||
? 'versions'
|
|
||||||
: 'productVersions'
|
|
||||||
|
|
||||||
class Page {
|
class Page {
|
||||||
constructor (opts) {
|
constructor (opts) {
|
||||||
assert(opts.relativePath, 'relativePath is required')
|
assert(opts.relativePath, 'relativePath is required')
|
||||||
@@ -72,7 +68,7 @@ class Page {
|
|||||||
delete this.guideLinks
|
delete this.guideLinks
|
||||||
|
|
||||||
// derive array of Permalink objects
|
// derive array of Permalink objects
|
||||||
this.permalinks = Permalink.derive(this.languageCode, this.relativePath, this.title, this[versionsProp])
|
this.permalinks = Permalink.derive(this.languageCode, this.relativePath, this.title, this.versions)
|
||||||
|
|
||||||
// create backwards-compatible old paths for page permalinks and frontmatter redirects
|
// create backwards-compatible old paths for page permalinks and frontmatter redirects
|
||||||
this.redirects = generateRedirectsForPermalinks(this.permalinks, this.redirect_from)
|
this.redirects = generateRedirectsForPermalinks(this.permalinks, this.redirect_from)
|
||||||
@@ -93,16 +89,11 @@ class Page {
|
|||||||
// Infer the parent product ID from the page's relative file path
|
// Infer the parent product ID from the page's relative file path
|
||||||
get parentProductId () {
|
get parentProductId () {
|
||||||
// Each page's top-level content directory matches its product ID
|
// Each page's top-level content directory matches its product ID
|
||||||
let id = this.relativePath.split('/')[0]
|
const id = this.relativePath.split('/')[0]
|
||||||
|
|
||||||
// ignore top-level content/index.md
|
// ignore top-level content/index.md
|
||||||
if (id === 'index.md') return null
|
if (id === 'index.md') return null
|
||||||
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
// make an exception of GitHub Enterprise
|
|
||||||
if (id === 'enterprise') id = 'enterpriseServer'
|
|
||||||
}
|
|
||||||
|
|
||||||
// make sure the ID is valid
|
// make sure the ID is valid
|
||||||
assert(
|
assert(
|
||||||
Object.keys(products).includes(id),
|
Object.keys(products).includes(id),
|
||||||
|
|||||||
@@ -1,75 +1,16 @@
|
|||||||
const slash = require('slash')
|
const slash = require('slash')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const patterns = require('./patterns')
|
const patterns = require('./patterns')
|
||||||
const { latest, deprecated } = require('./enterprise-server-releases')
|
const { deprecated } = require('./enterprise-server-releases')
|
||||||
const internalProducts = Object.values(require('./all-products'))
|
|
||||||
.filter(prod => !prod.external)
|
|
||||||
const allProducts = require('./all-products')
|
const allProducts = require('./all-products')
|
||||||
const allVersions = require('./all-versions')
|
const allVersions = require('./all-versions')
|
||||||
const { getNewVersionedPath } = require('./old-versions-utils')
|
const { getNewVersionedPath } = require('./old-versions-utils')
|
||||||
|
|
||||||
let pathsThatHaveEnterpriseUserVersions, pathsThatDoNotHaveEnterpriseUserVersions
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
pathsThatHaveEnterpriseUserVersions = internalProducts
|
|
||||||
.filter(prod => prod.hasEnterpriseUserVersions)
|
|
||||||
.map(prod => prod.href)
|
|
||||||
.concat(['/articles', '/categories'])
|
|
||||||
|
|
||||||
pathsThatDoNotHaveEnterpriseUserVersions = internalProducts
|
|
||||||
.filter(prod => !prod.hasEnterpriseUserVersions)
|
|
||||||
.map(prod => prod.href)
|
|
||||||
.concat(['/enterprise'])
|
|
||||||
}
|
|
||||||
|
|
||||||
// construct appropriate versioned path for any given HREF
|
// construct appropriate versioned path for any given HREF
|
||||||
function getVersionedPathWithoutLanguage (href, version) {
|
function getVersionedPathWithoutLanguage (href, version) {
|
||||||
// start clean without language code or trailing slash
|
// start clean without language code or trailing slash
|
||||||
href = getPathWithoutLanguage(href.replace(patterns.trailingSlash, '$1'))
|
href = getPathWithoutLanguage(href.replace(patterns.trailingSlash, '$1'))
|
||||||
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
// does href need an enterprise user path?
|
|
||||||
// e.g., /articles/foo -> /en/enterprise/2.15/user/articles/foo
|
|
||||||
// also redirects like /common-issues-and-questions
|
|
||||||
// but NOT /actions, /desktop, /enterprise, etc.
|
|
||||||
const needsEnterpriseUserPath = (
|
|
||||||
pathsThatHaveEnterpriseUserVersions.some(path => href.startsWith(path)) ||
|
|
||||||
!pathsThatDoNotHaveEnterpriseUserVersions.some(path => href.startsWith(path))
|
|
||||||
)
|
|
||||||
|
|
||||||
// construct enterprise user path
|
|
||||||
if (needsEnterpriseUserPath && version !== 'dotcom') {
|
|
||||||
href = `/enterprise/${version}/user/${href}`
|
|
||||||
}
|
|
||||||
|
|
||||||
// hack fix for double slash bug
|
|
||||||
href = href.replace('//', '/')
|
|
||||||
|
|
||||||
// does href need an enterprise version added to path?
|
|
||||||
const needsEnterpriseVersion = (
|
|
||||||
href.match(patterns.enterprise) &&
|
|
||||||
href.match(patterns.getEnterpriseVersionNumber) === null
|
|
||||||
)
|
|
||||||
|
|
||||||
// add the enterprise version
|
|
||||||
if (needsEnterpriseVersion) {
|
|
||||||
// if current page version is dotcom, use the latest version of enterprise
|
|
||||||
href = version === 'dotcom'
|
|
||||||
? href.replace(/(\/enterprise)/, `$1/${latest}`)
|
|
||||||
: href.replace(/(\/enterprise)/, `$1/${version}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
// is this an enterprise user path on dotcom?
|
|
||||||
const isEnterpriseUsePath = href.match(patterns.enterprise) && !href.match(patterns.admin)
|
|
||||||
|
|
||||||
// if so, replace enterprise user part of path with /github/
|
|
||||||
if (isEnterpriseUsePath && version === 'dotcom') {
|
|
||||||
href = href.replace(/\/enterprise\/.+?\/user\//, '')
|
|
||||||
}
|
|
||||||
|
|
||||||
return slash(href.replace(patterns.trailingSlash, '$1'))
|
|
||||||
}
|
|
||||||
|
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
// if this is an old versioned path that includes a deprecated version, do not change!
|
// if this is an old versioned path that includes a deprecated version, do not change!
|
||||||
// example: /enterprise/11.10.340/admin/articles/upgrading-to-the-latest-release
|
// example: /enterprise/11.10.340/admin/articles/upgrading-to-the-latest-release
|
||||||
const oldEnterpriseVersionNumber = href.match(patterns.getEnterpriseVersionNumber)
|
const oldEnterpriseVersionNumber = href.match(patterns.getEnterpriseVersionNumber)
|
||||||
@@ -102,7 +43,6 @@ function getVersionedPathWithoutLanguage (href, version) {
|
|||||||
// update the version
|
// update the version
|
||||||
return slash(href.replace(versionFromPath, version))
|
return slash(href.replace(versionFromPath, version))
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// add language code
|
// add language code
|
||||||
function getVersionedPathWithLanguage (href, version, languageCode) {
|
function getVersionedPathWithLanguage (href, version, languageCode) {
|
||||||
@@ -127,17 +67,8 @@ function getPathWithoutLanguage (href) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getPathWithoutVersion (href) {
|
function getPathWithoutVersion (href) {
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
const number = href.match(patterns.getEnterpriseVersionNumber)
|
|
||||||
if (!number) return href
|
|
||||||
|
|
||||||
return slash(href.replace('/' + number[1], ''))
|
|
||||||
}
|
|
||||||
|
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
return href.replace(`/${getVersionStringFromPath(href)}`, '')
|
return href.replace(`/${getVersionStringFromPath(href)}`, '')
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function getVersionStringFromPath (href) {
|
function getVersionStringFromPath (href) {
|
||||||
href = getPathWithoutLanguage(href)
|
href = getPathWithoutLanguage(href)
|
||||||
|
|||||||
@@ -16,9 +16,7 @@ class Permalink {
|
|||||||
|
|
||||||
this.href = pathUtils.getVersionedPathWithLanguage(permalinkSuffix, pageVersion, languageCode)
|
this.href = pathUtils.getVersionedPathWithLanguage(permalinkSuffix, pageVersion, languageCode)
|
||||||
|
|
||||||
this.pageVersionTitle = process.env.FEATURE_NEW_VERSIONS
|
this.pageVersionTitle = allVersions[pageVersion].versionTitle
|
||||||
? allVersions[pageVersion].versionTitle
|
|
||||||
: pageVersion === 'dotcom' ? 'GitHub.com' : `Enterprise Server ${pageVersion}`
|
|
||||||
|
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
@@ -33,7 +31,6 @@ class Permalink {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// special permalink for homepage
|
// special permalink for homepage
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
if (relativePath === 'index.md') {
|
if (relativePath === 'index.md') {
|
||||||
const homepagePermalink = {
|
const homepagePermalink = {
|
||||||
...permalinks[0],
|
...permalinks[0],
|
||||||
@@ -44,7 +41,6 @@ class Permalink {
|
|||||||
}
|
}
|
||||||
permalinks.push(homepagePermalink)
|
permalinks.push(homepagePermalink)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return permalinks
|
return permalinks
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
const patterns = require('../patterns')
|
const patterns = require('../patterns')
|
||||||
const { latest } = require('../enterprise-server-releases')
|
const { latest } = require('../enterprise-server-releases')
|
||||||
const { getVersionedPathWithLanguage } = require('../path-utils')
|
const { getVersionedPathWithLanguage } = require('../path-utils')
|
||||||
const latestEnterpriseRestPath = `/enterprise/${latest}/user/rest/`
|
|
||||||
|
|
||||||
// This function takes a known pre-migration path from developer.github.com and
|
// This function takes a known pre-migration path from developer.github.com and
|
||||||
// infers and returns a current, correct docs.github.com path.
|
// infers and returns a current, correct docs.github.com path.
|
||||||
@@ -48,14 +47,8 @@ module.exports = function getDocsPathFromDeveloperPath (oldDeveloperPath, allRed
|
|||||||
newPath = allRedirects[newPath] || newPath
|
newPath = allRedirects[newPath] || newPath
|
||||||
|
|
||||||
// old developer routes that include 'enterprise-admin' should always redirect to enterprise server
|
// old developer routes that include 'enterprise-admin' should always redirect to enterprise server
|
||||||
const enterpriseRegex = process.env.FEATURE_NEW_VERSIONS
|
if (fragment && newPath.includes('/rest/reference/enterprise-admin') && !patterns.enterpriseServer.test(newPath)) {
|
||||||
? patterns.enterpriseServer
|
newPath = getVersionedPathWithLanguage(newPath, `enterprise-server@${latest}`, 'en')
|
||||||
: patterns.enterprise
|
|
||||||
|
|
||||||
if (fragment && newPath.includes('/rest/reference/enterprise-admin') && !enterpriseRegex.test(newPath)) {
|
|
||||||
newPath = process.env.FEATURE_NEW_VERSIONS
|
|
||||||
? getVersionedPathWithLanguage(newPath, `enterprise-server@${latest}`, 'en')
|
|
||||||
: newPath.replace('/rest/', latestEnterpriseRestPath)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// show an error if the page to be redirected to doesn't exist
|
// show an error if the page to be redirected to doesn't exist
|
||||||
|
|||||||
@@ -55,7 +55,6 @@ module.exports = function getOldPathsFromPath (currentPath, languageCode, curren
|
|||||||
// ------ END LEGACY VERSION FORMAT REPLACEMENTS ------//
|
// ------ END LEGACY VERSION FORMAT REPLACEMENTS ------//
|
||||||
|
|
||||||
// ------ BEGIN MODERN VERSION FORMAT REPLACEMENTS ------//
|
// ------ BEGIN MODERN VERSION FORMAT REPLACEMENTS ------//
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
if (currentlySupportedVersions.includes(currentVersion) || versionSatisifiesRange(currentVersion, `>${lastReleaseWithLegacyFormat}`)) {
|
if (currentlySupportedVersions.includes(currentVersion) || versionSatisifiesRange(currentVersion, `>${lastReleaseWithLegacyFormat}`)) {
|
||||||
oldPaths.forEach(oldPath => {
|
oldPaths.forEach(oldPath => {
|
||||||
// create old path /github from new path /free-pro-team@latest/github
|
// create old path /github from new path /free-pro-team@latest/github
|
||||||
@@ -105,7 +104,6 @@ module.exports = function getOldPathsFromPath (currentPath, languageCode, curren
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// ------ END MODERN VERSION FORMAT REPLACEMENTS ------//
|
// ------ END MODERN VERSION FORMAT REPLACEMENTS ------//
|
||||||
|
|
||||||
// For each old path added to the set above, do the following...
|
// For each old path added to the set above, do the following...
|
||||||
|
|||||||
@@ -52,9 +52,7 @@ module.exports = async function precompileRedirects (pages) {
|
|||||||
// although we only support developer Enterprise paths up to 2.21, we make
|
// although we only support developer Enterprise paths up to 2.21, we make
|
||||||
// an exception to always redirect versionless paths to the latest version
|
// an exception to always redirect versionless paths to the latest version
|
||||||
if (developerRoute.includes('/2.21/')) {
|
if (developerRoute.includes('/2.21/')) {
|
||||||
const newPathOnLatestVersion = process.env.FEATURE_NEW_VERSIONS
|
const newPathOnLatestVersion = newPath.replace('@2.21/', `@${latest}/`)
|
||||||
? newPath.replace('@2.21/', `@${latest}/`)
|
|
||||||
: newPath.replace('/2.21/', `/${latest}/`)
|
|
||||||
const developerRouteWithoutVersion = developerRoute.replace('/2.21/', '/')
|
const developerRouteWithoutVersion = developerRoute.replace('/2.21/', '/')
|
||||||
const developerRouteWithLanguageWithoutVersion = `/en${developerRouteWithoutVersion}`
|
const developerRouteWithLanguageWithoutVersion = `/en${developerRouteWithoutVersion}`
|
||||||
allRedirects[developerRouteWithoutVersion] = newPathOnLatestVersion
|
allRedirects[developerRouteWithoutVersion] = newPathOnLatestVersion
|
||||||
@@ -65,9 +63,7 @@ module.exports = async function precompileRedirects (pages) {
|
|||||||
// we should eventually yank this block because 2.22 never existed on developer site
|
// we should eventually yank this block because 2.22 never existed on developer site
|
||||||
// the better solution is to change `/v3` and `/v4` links in content to `/rest` and `/graphql`
|
// the better solution is to change `/v3` and `/v4` links in content to `/rest` and `/graphql`
|
||||||
if (developerRoute.includes('/2.21/')) {
|
if (developerRoute.includes('/2.21/')) {
|
||||||
const newPath222 = process.env.FEATURE_NEW_VERSIONS
|
const newPath222 = newPath.replace('@2.21/', '@2.22/')
|
||||||
? newPath.replace('@2.21/', '@2.22/')
|
|
||||||
: newPath.replace('/2.21/', '/2.22/')
|
|
||||||
const developerRoute222 = developerRoute.replace('/2.21/', '/2.22/')
|
const developerRoute222 = developerRoute.replace('/2.21/', '/2.22/')
|
||||||
const developerRouteWithLanguage222 = `/en${developerRoute222}`
|
const developerRouteWithLanguage222 = `/en${developerRoute222}`
|
||||||
allRedirects[developerRoute222] = newPath222
|
allRedirects[developerRoute222] = newPath222
|
||||||
@@ -88,14 +84,12 @@ module.exports = async function precompileRedirects (pages) {
|
|||||||
// given a developer route like `/v3/gists/comments`,
|
// given a developer route like `/v3/gists/comments`,
|
||||||
// add a veriation like `/free-pro-team@latest/v3/gists/comments`;
|
// add a veriation like `/free-pro-team@latest/v3/gists/comments`;
|
||||||
// again, we need to do this because all links in content get rewritten
|
// again, we need to do this because all links in content get rewritten
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
if (!developerRoute.startsWith('/enterprise/')) {
|
if (!developerRoute.startsWith('/enterprise/')) {
|
||||||
const developerRouteWithVersion = path.join(nonEnterpriseDefaultVersion, developerRoute)
|
const developerRouteWithVersion = path.join(nonEnterpriseDefaultVersion, developerRoute)
|
||||||
const developerRouteWithVersionAndLanguage = `/en/${developerRouteWithVersion}`
|
const developerRouteWithVersionAndLanguage = `/en/${developerRouteWithVersion}`
|
||||||
allRedirects[developerRouteWithVersion] = newPath
|
allRedirects[developerRouteWithVersion] = newPath
|
||||||
allRedirects[developerRouteWithVersionAndLanguage] = newPath
|
allRedirects[developerRouteWithVersionAndLanguage] = newPath
|
||||||
}
|
}
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return allRedirects
|
return allRedirects
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
const versionsProp = process.env.FEATURE_NEW_VERSIONS
|
|
||||||
? 'versions'
|
|
||||||
: 'productVersions'
|
|
||||||
|
|
||||||
module.exports = function removeDeprecatedFrontmatter (data, devCheckout, versionToDeprecate, nextOldestVersion) {
|
module.exports = function removeDeprecatedFrontmatter (data, devCheckout, versionToDeprecate, nextOldestVersion) {
|
||||||
// there are currently different frontmatter conventions for developer docs vs. help docs
|
// there are currently different frontmatter conventions for developer docs vs. help docs
|
||||||
if (devCheckout) {
|
if (devCheckout) {
|
||||||
@@ -16,12 +12,12 @@ module.exports = function removeDeprecatedFrontmatter (data, devCheckout, versio
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// skip files with no versions or Enterprise versions frontmatter
|
// skip files with no versions or Enterprise versions frontmatter
|
||||||
if (!data[versionsProp]) return data
|
if (!data.versions) return data
|
||||||
if (!data[versionsProp].enterprise) return data
|
if (!data.versions.enterprise) return data
|
||||||
|
|
||||||
// change frontmatter like enterprise: '>=2.13' to enterprise: '*'
|
// change frontmatter like enterprise: '>=2.13' to enterprise: '*'
|
||||||
if (data[versionsProp].enterprise === `>=${versionToDeprecate}` || data[versionsProp].enterprise === `>=${nextOldestVersion}`) {
|
if (data.versions.enterprise === `>=${versionToDeprecate}` || data.versions.enterprise === `>=${nextOldestVersion}`) {
|
||||||
data[versionsProp].enterprise = '*'
|
data.versions.enterprise = '*'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +1,29 @@
|
|||||||
const latestEnterpriseVersion = require('./enterprise-server-releases').latest
|
const latestEnterpriseVersion = require('./enterprise-server-releases').latest
|
||||||
const nonEnterpriseDefaultVersion = require('./non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('./non-enterprise-default-version')
|
||||||
const { getOldVersionFromNewVersion } = require('./old-versions-utils')
|
const { getOldVersionFromNewVersion } = require('./old-versions-utils')
|
||||||
|
const s3BasePath = 'https://github-images.s3.amazonaws.com'
|
||||||
|
|
||||||
// rewrite asset paths to s3 if it's a dotcom article on any GHE version
|
// This module rewrites asset paths on Enterprise versions to S3 paths.
|
||||||
// or if it's an admin article on any GHE version EXCEPT latest version
|
// Source example: /assets/images/foo.png
|
||||||
|
// Rewritten: https://github-images.s3.amazonaws.com/enterprise/2.20/assets/images/foo.png
|
||||||
|
// The one exception is Admin pages on the latest GHES release.
|
||||||
module.exports = function rewriteAssetPathsToS3 ($, version, relativePath) {
|
module.exports = function rewriteAssetPathsToS3 ($, version, relativePath) {
|
||||||
let oldVersion
|
// if the current version is non-enterprise, do not rewrite
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
if (version === nonEnterpriseDefaultVersion) return
|
if (version === nonEnterpriseDefaultVersion) return
|
||||||
// get 2.22 from enterprise-server@2.22
|
|
||||||
oldVersion = getOldVersionFromNewVersion(version)
|
|
||||||
// relativePath starts with the product, like /admin/foo or /github/foo
|
|
||||||
const product = relativePath.split('/')[0]
|
|
||||||
if (product === 'admin' && oldVersion === latestEnterpriseVersion) return
|
|
||||||
} else {
|
|
||||||
if (version === 'dotcom') return
|
|
||||||
if (relativePath.includes('enterprise/') && version === latestEnterpriseVersion) return
|
|
||||||
oldVersion = version
|
|
||||||
}
|
|
||||||
|
|
||||||
const s3Path = 'https://github-images.s3.amazonaws.com'
|
// get 2.22 from enterprise-server@2.22
|
||||||
|
const oldVersion = getOldVersionFromNewVersion(version)
|
||||||
|
|
||||||
|
// the relativePath starts with the product, like /admin/foo or /github/foo
|
||||||
|
const product = relativePath.split('/')[0]
|
||||||
|
|
||||||
|
// if this is an Admin page on the latest version, do not rewrite
|
||||||
|
if (product === 'admin' && oldVersion === latestEnterpriseVersion) return
|
||||||
|
|
||||||
$('img').each((i, el) => {
|
$('img').each((i, el) => {
|
||||||
const src = $(el).attr('src')
|
const src = $(el).attr('src')
|
||||||
if (!src.startsWith('/assets/images')) return
|
if (!src.startsWith('/assets/images')) return
|
||||||
const newSrc = `${s3Path}/enterprise/${oldVersion}${src}`
|
const newSrc = `${s3BasePath}/enterprise/${oldVersion}${src}`
|
||||||
if (src !== newSrc) $(el).attr('src', newSrc)
|
if (src !== newSrc) $(el).attr('src', newSrc)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,9 +27,7 @@ function getNewHref (link, languageCode, version) {
|
|||||||
// If link is dotcom-only, just get the language code
|
// If link is dotcom-only, just get the language code
|
||||||
// Otherwise, get the versioned path with language code
|
// Otherwise, get the versioned path with language code
|
||||||
const newHref = link.hasClass('dotcom-only')
|
const newHref = link.hasClass('dotcom-only')
|
||||||
? process.env.FEATURE_NEW_VERSIONS
|
|
||||||
? pathUtils.getVersionedPathWithLanguage(href, nonEnterpriseDefaultVersion, languageCode)
|
? pathUtils.getVersionedPathWithLanguage(href, nonEnterpriseDefaultVersion, languageCode)
|
||||||
: pathUtils.getPathWithLanguage(href, languageCode)
|
|
||||||
: pathUtils.getVersionedPathWithLanguage(href, version, languageCode)
|
: pathUtils.getVersionedPathWithLanguage(href, version, languageCode)
|
||||||
|
|
||||||
if (href !== newHref) link.attr('href', newHref)
|
if (href !== newHref) link.attr('href', newHref)
|
||||||
|
|||||||
@@ -5,14 +5,7 @@ const products = Object.values(require('../lib/all-products'))
|
|||||||
const { getVersionedPathWithoutLanguage } = require('./path-utils')
|
const { getVersionedPathWithoutLanguage } = require('./path-utils')
|
||||||
const languageCodes = Object.keys(require('./languages'))
|
const languageCodes = Object.keys(require('./languages'))
|
||||||
const addTitlesToTree = require('./site-tree-titles')
|
const addTitlesToTree = require('./site-tree-titles')
|
||||||
|
const allVersions = Object.keys(require('./all-versions'))
|
||||||
const allVersions = process.env.FEATURE_NEW_VERSIONS
|
|
||||||
? Object.keys(require('./all-versions'))
|
|
||||||
: require('./all-versions')
|
|
||||||
|
|
||||||
const versionsProp = process.env.FEATURE_NEW_VERSIONS
|
|
||||||
? 'versions'
|
|
||||||
: 'productVersions'
|
|
||||||
|
|
||||||
// This module builds a localized tree of every page on the site
|
// This module builds a localized tree of every page on the site
|
||||||
// It includes single-source pages that have different variants
|
// It includes single-source pages that have different variants
|
||||||
@@ -83,7 +76,7 @@ function buildCategoriesTree (tocItems, productHref, pages, redirects, version,
|
|||||||
|
|
||||||
category.title = page.shortTitle || page.title
|
category.title = page.shortTitle || page.title
|
||||||
|
|
||||||
if (!getApplicableVersions(page[versionsProp], page.fullPath).includes(version)) {
|
if (!getApplicableVersions(page.versions, page.fullPath).includes(version)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,7 +128,7 @@ function buildMaptopicsTree (tocItems, categoryHref, pages, redirects, version,
|
|||||||
// if this is not a maptopic, return early
|
// if this is not a maptopic, return early
|
||||||
if (!page.mapTopic) return
|
if (!page.mapTopic) return
|
||||||
|
|
||||||
if (!getApplicableVersions(page[versionsProp], page.fullPath).includes(version)) {
|
if (!getApplicableVersions(page.versions, page.fullPath).includes(version)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,7 +170,7 @@ function buildArticlesTree (tocItems, categoryHref, pages, redirects, version, l
|
|||||||
|
|
||||||
article.title = page.shortTitle || page.title
|
article.title = page.shortTitle || page.title
|
||||||
|
|
||||||
if (!getApplicableVersions(page[versionsProp], page.fullPath).includes(version)) {
|
if (!getApplicableVersions(page.versions, page.fullPath).includes(version)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
const path = require('path')
|
const path = require('path')
|
||||||
const { getPathWithoutLanguage, getVersionedPathWithoutLanguage } = require('../lib/path-utils')
|
const { getPathWithoutLanguage } = require('../lib/path-utils')
|
||||||
|
|
||||||
module.exports = async (req, res, next) => {
|
module.exports = async (req, res, next) => {
|
||||||
req.context.breadcrumbs = {}
|
req.context.breadcrumbs = {}
|
||||||
@@ -7,65 +7,8 @@ module.exports = async (req, res, next) => {
|
|||||||
if (!req.context.page) return next()
|
if (!req.context.page) return next()
|
||||||
if (req.context.page.relativePath === 'index.md') return next()
|
if (req.context.page.relativePath === 'index.md') return next()
|
||||||
|
|
||||||
let pathParts, product, categoryPath
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
if (req.context.page.relativePath === 'enterprise/index.md') return next()
|
|
||||||
|
|
||||||
pathParts = req.context.currentPathWithoutLanguage.split('/')
|
|
||||||
|
|
||||||
// remove first empty item
|
|
||||||
pathParts.shift()
|
|
||||||
|
|
||||||
let productPath
|
|
||||||
|
|
||||||
// e.g., /github
|
|
||||||
if (pathParts[0] !== 'enterprise') {
|
|
||||||
productPath = path.posix.join('/', pathParts[0])
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pathParts[0] === 'enterprise') {
|
|
||||||
// handling for /enterprise/version/admin
|
|
||||||
if (pathParts.includes('admin')) {
|
|
||||||
productPath = path.posix.join('/', ...pathParts.slice(0, 3))
|
|
||||||
// remove /enterprise/version so that path starts with /admin
|
|
||||||
pathParts.splice(0, 2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// handling for /enterprise/version/user/product
|
|
||||||
if (pathParts.includes('user')) {
|
|
||||||
productPath = path.posix.join('/', ...pathParts.slice(0, 4))
|
|
||||||
// remove /enterprise/version/user so that path starts with /product
|
|
||||||
pathParts.splice(0, 3)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// turn /product paths into /enterprise/version/user/product paths and vice versa
|
|
||||||
productPath = getVersionedPathWithoutLanguage(productPath, req.context.currentVersion)
|
|
||||||
|
|
||||||
product = req.context.siteTree[req.language][req.context.currentVersion].products[req.context.currentProduct.id]
|
|
||||||
|
|
||||||
// GitHub.com is the only product with a breadcrumbs-specific Enterprise title
|
|
||||||
// in the sidebar, the product title is `GitHub.com` in all versions
|
|
||||||
// in the breadcrumbs, the product title is either `GitHub.com` or `GitHub Enterprise Server`
|
|
||||||
const productTitle = product.title === 'GitHub.com' && req.context.currentVersion !== 'dotcom'
|
|
||||||
? 'GitHub Enterprise Server'
|
|
||||||
: product.title
|
|
||||||
|
|
||||||
req.context.breadcrumbs.product = {
|
|
||||||
href: productPath,
|
|
||||||
title: productTitle
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!pathParts[1]) return next()
|
|
||||||
|
|
||||||
// get category path
|
|
||||||
// e.g., /github/getting-started-with-github
|
|
||||||
categoryPath = path.posix.join(productPath, pathParts[1])
|
|
||||||
}
|
|
||||||
|
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
const rawPath = getPathWithoutLanguage(req.path)
|
const rawPath = getPathWithoutLanguage(req.path)
|
||||||
pathParts = rawPath.split('/')
|
const pathParts = rawPath.split('/')
|
||||||
|
|
||||||
// drop first '/'
|
// drop first '/'
|
||||||
pathParts.shift()
|
pathParts.shift()
|
||||||
@@ -74,7 +17,7 @@ module.exports = async (req, res, next) => {
|
|||||||
pathParts.shift()
|
pathParts.shift()
|
||||||
|
|
||||||
const productPath = path.posix.join('/', req.context.currentProduct)
|
const productPath = path.posix.join('/', req.context.currentProduct)
|
||||||
product = req.context.siteTree[req.language][req.context.currentVersion].products[req.context.currentProduct]
|
const product = req.context.siteTree[req.language][req.context.currentVersion].products[req.context.currentProduct]
|
||||||
|
|
||||||
req.context.breadcrumbs.product = {
|
req.context.breadcrumbs.product = {
|
||||||
href: path.posix.join('/', req.context.currentVersion, productPath),
|
href: path.posix.join('/', req.context.currentVersion, productPath),
|
||||||
@@ -86,8 +29,7 @@ module.exports = async (req, res, next) => {
|
|||||||
// get category path
|
// get category path
|
||||||
// e.g., `getting-started-with-github` in /free-pro-team@latest/github/getting-started-with-github
|
// e.g., `getting-started-with-github` in /free-pro-team@latest/github/getting-started-with-github
|
||||||
// or /enterprise-server@2.21/github/getting-started-with-github
|
// or /enterprise-server@2.21/github/getting-started-with-github
|
||||||
categoryPath = path.posix.join('/', req.context.currentVersion, productPath, pathParts[1])
|
const categoryPath = path.posix.join('/', req.context.currentVersion, productPath, pathParts[1])
|
||||||
}
|
|
||||||
|
|
||||||
const category = product.categories[categoryPath]
|
const category = product.categories[categoryPath]
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ const allProducts = require('../lib/all-products')
|
|||||||
const activeProducts = Object.values(allProducts).filter(product => !product.wip)
|
const activeProducts = Object.values(allProducts).filter(product => !product.wip)
|
||||||
const { getVersionStringFromPath, getProductStringFromPath, getPathWithoutLanguage } = require('../lib/path-utils')
|
const { getVersionStringFromPath, getProductStringFromPath, getPathWithoutLanguage } = require('../lib/path-utils')
|
||||||
const productNames = require('../lib/product-names')
|
const productNames = require('../lib/product-names')
|
||||||
const patterns = require('../lib/patterns')
|
|
||||||
const warmServer = require('../lib/warm-server')
|
const warmServer = require('../lib/warm-server')
|
||||||
const featureFlags = Object.keys(require('../feature-flags'))
|
const featureFlags = Object.keys(require('../feature-flags'))
|
||||||
|
|
||||||
@@ -25,31 +24,19 @@ module.exports = async function contextualize (req, res, next) {
|
|||||||
// define each context property explicitly for code-search friendliness
|
// define each context property explicitly for code-search friendliness
|
||||||
// e.g. searches for "req.context.page" will include results from this file
|
// e.g. searches for "req.context.page" will include results from this file
|
||||||
req.context.currentLanguage = req.language
|
req.context.currentLanguage = req.language
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
req.context.currentVersion = getVersionStringFromPath(req.path)
|
req.context.currentVersion = getVersionStringFromPath(req.path)
|
||||||
req.context.currentProduct = getProductStringFromPath(req.path)
|
req.context.currentProduct = getProductStringFromPath(req.path)
|
||||||
req.context.allProducts = allProducts
|
req.context.allProducts = allProducts
|
||||||
req.context.activeProducts = activeProducts
|
req.context.activeProducts = activeProducts
|
||||||
req.context.allVersions = allVersions
|
req.context.allVersions = allVersions
|
||||||
req.context.currentPathWithoutLanguage = getPathWithoutLanguage(req.path)
|
req.context.currentPathWithoutLanguage = getPathWithoutLanguage(req.path)
|
||||||
}
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
req.context.currentVersion = getVersion(req.path)
|
|
||||||
req.context.currentPathWithoutLanguage = getPathWithoutLanguage(req.path).replace(patterns.getEnterpriseVersionlessPath, '$1/')
|
|
||||||
}
|
|
||||||
req.context.currentPath = req.path
|
req.context.currentPath = req.path
|
||||||
req.context.query = req.query
|
req.context.query = req.query
|
||||||
req.context.languages = languages
|
req.context.languages = languages
|
||||||
req.context.earlyAccessPaths = earlyAccessPaths
|
req.context.earlyAccessPaths = earlyAccessPaths
|
||||||
req.context.enterpriseVersions = enterpriseServerReleases
|
req.context.enterpriseVersions = enterpriseServerReleases
|
||||||
req.context.productNames = productNames
|
req.context.productNames = productNames
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
req.context.enterpriseServerReleases = enterpriseServerReleases
|
req.context.enterpriseServerReleases = enterpriseServerReleases
|
||||||
}
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
req.context.enterpriseVersions = enterpriseServerReleases
|
|
||||||
req.context.productNames = productNames
|
|
||||||
}
|
|
||||||
req.context.redirects = redirects
|
req.context.redirects = redirects
|
||||||
req.context.site = site[req.language].site
|
req.context.site = site[req.language].site
|
||||||
req.context.siteTree = siteTree
|
req.context.siteTree = siteTree
|
||||||
@@ -57,15 +44,3 @@ module.exports = async function contextualize (req, res, next) {
|
|||||||
|
|
||||||
return next()
|
return next()
|
||||||
}
|
}
|
||||||
|
|
||||||
// infer the version from the request path
|
|
||||||
// /en/articles/foo -> dotcom
|
|
||||||
// /en/enterprise/2.14/user/articles/foo -> 2.14
|
|
||||||
// /en/enterprise/user/articles/foo -> latest GHES version
|
|
||||||
function getVersion (requestPath) {
|
|
||||||
const versionNumber = requestPath.match(patterns.getEnterpriseVersionNumber)
|
|
||||||
|
|
||||||
return patterns.enterprise.test(requestPath)
|
|
||||||
? versionNumber ? versionNumber[1] : enterpriseServerReleases.latest
|
|
||||||
: 'dotcom'
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -14,9 +14,7 @@ module.exports = async (req, res, next) => {
|
|||||||
if (!req.path.includes('/graphql/')) return next()
|
if (!req.path.includes('/graphql/')) return next()
|
||||||
|
|
||||||
// TODO need to update this to the new versions in coordination with the updater scripts
|
// TODO need to update this to the new versions in coordination with the updater scripts
|
||||||
const currentOldVersion = process.env.FEATURE_NEW_VERSIONS
|
const currentOldVersion = getOldVersionFromNewVersion(req.context.currentVersion)
|
||||||
? getOldVersionFromNewVersion(req.context.currentVersion)
|
|
||||||
: req.context.currentVersion
|
|
||||||
|
|
||||||
req.context.graphql = {
|
req.context.graphql = {
|
||||||
schemaForCurrentVersion: require(`../../lib/graphql/static/schema-${currentOldVersion}`),
|
schemaForCurrentVersion: require(`../../lib/graphql/static/schema-${currentOldVersion}`),
|
||||||
|
|||||||
@@ -6,9 +6,7 @@ module.exports = async function (req, res, next) {
|
|||||||
req.context.rest = rest
|
req.context.rest = rest
|
||||||
|
|
||||||
// TODO need to update this to the new versions in coordination with the updater scripts
|
// TODO need to update this to the new versions in coordination with the updater scripts
|
||||||
const currentOldVersion = process.env.FEATURE_NEW_VERSIONS
|
const currentOldVersion = getOldVersionFromNewVersion(req.context.currentVersion)
|
||||||
? getOldVersionFromNewVersion(req.context.currentVersion)
|
|
||||||
: req.context.currentVersion
|
|
||||||
|
|
||||||
// link to include in `Works with GitHub Apps` notes
|
// link to include in `Works with GitHub Apps` notes
|
||||||
// e.g. /ja/rest/reference/apps or /en/enterprise/2.20/user/rest/reference/apps
|
// e.g. /ja/rest/reference/apps or /en/enterprise/2.20/user/rest/reference/apps
|
||||||
|
|||||||
@@ -5,9 +5,7 @@ const { getOldVersionFromNewVersion } = require('../../lib/old-versions-utils')
|
|||||||
|
|
||||||
module.exports = async (req, res, next) => {
|
module.exports = async (req, res, next) => {
|
||||||
// TODO need to update this to the new versions in coordination with the updater scripts
|
// TODO need to update this to the new versions in coordination with the updater scripts
|
||||||
const currentOldVersion = process.env.FEATURE_NEW_VERSIONS
|
const currentOldVersion = getOldVersionFromNewVersion(req.context.currentVersion)
|
||||||
? getOldVersionFromNewVersion(req.context.currentVersion)
|
|
||||||
: req.context.currentVersion
|
|
||||||
|
|
||||||
const webhookPayloadsForCurrentVersion = webhookPayloads[currentOldVersion]
|
const webhookPayloadsForCurrentVersion = webhookPayloads[currentOldVersion]
|
||||||
|
|
||||||
|
|||||||
@@ -30,9 +30,7 @@ async function getLinkData (rawLinks, context) {
|
|||||||
const linkedPage = findPage(href, context.pages, context.redirects, context.currentLanguage)
|
const linkedPage = findPage(href, context.pages, context.redirects, context.currentLanguage)
|
||||||
if (!linkedPage) continue
|
if (!linkedPage) continue
|
||||||
|
|
||||||
const applicableVersions = process.env.FEATURE_NEW_VERSIONS
|
const applicableVersions = getApplicableVersions(linkedPage.versions, linkedPage.fullPath)
|
||||||
? getApplicableVersions(linkedPage.versions, linkedPage.fullPath)
|
|
||||||
: getApplicableVersions(linkedPage.productVersions, linkedPage.fullPath)
|
|
||||||
|
|
||||||
// skip link if this is not the homepage and the link's versions do not include the current version
|
// skip link if this is not the homepage and the link's versions do not include the current version
|
||||||
if (context.currentVersion !== 'homepage' && !applicableVersions.includes(context.currentVersion)) continue
|
if (context.currentVersion !== 'homepage' && !applicableVersions.includes(context.currentVersion)) continue
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ module.exports = function (app) {
|
|||||||
app.use(require('./redirects/help-to-docs'))
|
app.use(require('./redirects/help-to-docs'))
|
||||||
app.use(require('./set-fastly-cache-headers'))
|
app.use(require('./set-fastly-cache-headers'))
|
||||||
app.use(require('./handle-invalid-paths'))
|
app.use(require('./handle-invalid-paths'))
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) app.use(require('./enterprise-homepage'))
|
|
||||||
app.use(require('./loaderio-verification'))
|
app.use(require('./loaderio-verification'))
|
||||||
app.use(require('./cors'))
|
app.use(require('./cors'))
|
||||||
app.use(require('./csp'))
|
app.use(require('./csp'))
|
||||||
@@ -41,13 +40,11 @@ module.exports = function (app) {
|
|||||||
app.use(require('./early-access-paths'))
|
app.use(require('./early-access-paths'))
|
||||||
app.use(require('./early-access-proxy'))
|
app.use(require('./early-access-proxy'))
|
||||||
app.use(require('./find-page'))
|
app.use(require('./find-page'))
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) app.use(require('./products'))
|
|
||||||
app.use(require('./notices'))
|
app.use(require('./notices'))
|
||||||
app.use(require('./archived-enterprise-versions'))
|
app.use(require('./archived-enterprise-versions'))
|
||||||
app.use(require('./archived-enterprise-versions-assets'))
|
app.use(require('./archived-enterprise-versions-assets'))
|
||||||
app.use('/assets', express.static('assets'))
|
app.use('/assets', express.static('assets'))
|
||||||
app.use('/public', express.static('data/graphql'))
|
app.use('/public', express.static('data/graphql'))
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) app.use(require('./homepages'))
|
|
||||||
app.use(require('./redirects/language-code-redirects'))
|
app.use(require('./redirects/language-code-redirects'))
|
||||||
// redirects need to be handled before the contextualizers
|
// redirects need to be handled before the contextualizers
|
||||||
app.use(require('./redirects/handle-redirects'))
|
app.use(require('./redirects/handle-redirects'))
|
||||||
|
|||||||
@@ -22,9 +22,7 @@ module.exports = (req, res, next) => {
|
|||||||
language.wip
|
language.wip
|
||||||
)
|
)
|
||||||
|
|
||||||
const currentProduct = process.env.FEATURE_NEW_VERSIONS
|
const currentProduct = req.context.allProducts[req.context.currentProduct]
|
||||||
? req.context.allProducts[req.context.currentProduct]
|
|
||||||
: req.context.currentProduct
|
|
||||||
|
|
||||||
// if this is the homepage and no product is chosen yet, return early
|
// if this is the homepage and no product is chosen yet, return early
|
||||||
if (!currentProduct) return next()
|
if (!currentProduct) return next()
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
require('../lib/feature-flags')
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const assert = require('assert')
|
const assert = require('assert')
|
||||||
const patterns = require('../lib/patterns')
|
const patterns = require('../lib/patterns')
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
require('../../lib/feature-flags')
|
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const mkdirp = require('mkdirp').sync
|
const mkdirp = require('mkdirp').sync
|
||||||
@@ -12,26 +11,23 @@ const graphqlStaticDir = path.join(process.cwd(), 'lib/graphql/static')
|
|||||||
const { getContents } = require('../../lib/git-utils')
|
const { getContents } = require('../../lib/git-utils')
|
||||||
const dataFilenames = require('./utils/data-filenames')
|
const dataFilenames = require('./utils/data-filenames')
|
||||||
const { oldVersions } = require('../../lib/old-versions-utils')
|
const { oldVersions } = require('../../lib/old-versions-utils')
|
||||||
const allVersions = require('../../lib/all-versions')
|
|
||||||
const processPreviews = require('./utils/process-previews')
|
const processPreviews = require('./utils/process-previews')
|
||||||
const processUpcomingChanges = require('./utils/process-upcoming-changes')
|
const processUpcomingChanges = require('./utils/process-upcoming-changes')
|
||||||
const processSchemas = require('./utils/process-schemas')
|
const processSchemas = require('./utils/process-schemas')
|
||||||
const prerenderObjects = require('./utils/prerender-objects')
|
const prerenderObjects = require('./utils/prerender-objects')
|
||||||
|
|
||||||
// TODO need to update this to the new versions
|
|
||||||
// for now, fall back to the old versions for use in schema filenames
|
|
||||||
const versions = process.env.FEATURE_NEW_VERSIONS ? oldVersions : allVersions
|
|
||||||
|
|
||||||
// TODO this step is only required as long as we support GHE versions *OLDER THAN* 2.21
|
// TODO this step is only required as long as we support GHE versions *OLDER THAN* 2.21
|
||||||
// as soon as 2.20 is deprecated on 2021-02-11, we can remove all graphql-ruby filtering
|
// as soon as 2.20 is deprecated on 2021-02-11, we can remove all graphql-ruby filtering
|
||||||
const removeHiddenMembersScript = path.join(__dirname, './utils/remove-hidden-schema-members.rb')
|
const removeHiddenMembersScript = path.join(__dirname, './utils/remove-hidden-schema-members.rb')
|
||||||
|
|
||||||
// optionally build only 'dotcom' or any GHE version by passing the number ('2.20')
|
// optionally build only 'dotcom' or any GHE version by passing the number ('2.20')
|
||||||
let versionsToBuild = versions
|
// TODO need to update this to the new versions
|
||||||
|
// for now, fall back to the old versions for use in schema filenames
|
||||||
|
let versionsToBuild = oldVersions
|
||||||
|
|
||||||
if (process.argv.length === 3) {
|
if (process.argv.length === 3) {
|
||||||
const version = process.argv[2]
|
const version = process.argv[2]
|
||||||
assert(versions.includes(version), `'${version}' is not valid! must be one of: ${versions}`)
|
assert(oldVersions.includes(version), `'${version}' is not valid! must be one of: ${oldVersions}`)
|
||||||
versionsToBuild = [version]
|
versionsToBuild = [version]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
//
|
//
|
||||||
// [end-readme]
|
// [end-readme]
|
||||||
|
|
||||||
require('../lib/feature-flags')
|
|
||||||
require('make-promises-safe')
|
require('make-promises-safe')
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -1,20 +1,11 @@
|
|||||||
/* global page */
|
/* global page */
|
||||||
require('../../lib/feature-flags')
|
|
||||||
const sleep = require('await-sleep')
|
const sleep = require('await-sleep')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('homepage', () => {
|
describe('homepage', () => {
|
||||||
testFeatureNewVersions('should be titled "GitHub Documentation"', async () => {
|
test('should be titled "GitHub Documentation"', async () => {
|
||||||
await page.goto('http://localhost:4001')
|
await page.goto('http://localhost:4001')
|
||||||
await expect(page.title()).resolves.toMatch('GitHub Documentation')
|
await expect(page.title()).resolves.toMatch('GitHub Documentation')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('should be titled "GitHub.com Help"', async () => {
|
|
||||||
await page.goto('http://localhost:4001')
|
|
||||||
await expect(page.title()).resolves.toMatch('GitHub.com Help')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('algolia browser search', () => {
|
describe('algolia browser search', () => {
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const walk = require('walk-sync')
|
const walk = require('walk-sync')
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const { getDOM, getJSON } = require('../helpers')
|
const { getDOM, getJSON } = require('../helpers')
|
||||||
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
||||||
const japaneseCharacters = require('japanese-characters')
|
const japaneseCharacters = require('japanese-characters')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('gettingStartedLinks and popularLinks', () => {
|
describe('gettingStartedLinks and popularLinks', () => {
|
||||||
jest.setTimeout(3 * 60 * 1000)
|
jest.setTimeout(3 * 60 * 1000)
|
||||||
|
|
||||||
@@ -16,7 +12,7 @@ describe('gettingStartedLinks and popularLinks', () => {
|
|||||||
expect($('.featured-links')).toHaveLength(0)
|
expect($('.featured-links')).toHaveLength(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('landing page intro links have expected properties', async () => {
|
test('landing page intro links have expected properties', async () => {
|
||||||
const $ = await getDOM('/en')
|
const $ = await getDOM('/en')
|
||||||
const $featuredLinks = $('.featured-links a')
|
const $featuredLinks = $('.featured-links a')
|
||||||
expect($featuredLinks).toHaveLength(9)
|
expect($featuredLinks).toHaveLength(9)
|
||||||
@@ -29,19 +25,6 @@ describe('gettingStartedLinks and popularLinks', () => {
|
|||||||
expect($featuredLinks.eq(8).children('p').text().startsWith('You can create a website')).toBe(true)
|
expect($featuredLinks.eq(8).children('p').text().startsWith('You can create a website')).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('landing page intro links have expected properties', async () => {
|
|
||||||
const $ = await getDOM('/en')
|
|
||||||
const $featuredLinks = $('.featured-links a')
|
|
||||||
expect($featuredLinks).toHaveLength(9)
|
|
||||||
expect($featuredLinks.eq(0).attr('href')).toBe('/en/github/getting-started-with-github/set-up-git')
|
|
||||||
expect($featuredLinks.eq(0).children('h4').text().startsWith('Set up Git')).toBe(true)
|
|
||||||
expect($featuredLinks.eq(0).children('p').text().startsWith('At the heart of GitHub')).toBe(true)
|
|
||||||
|
|
||||||
expect($featuredLinks.eq(8).attr('href')).toBe('/en/github/working-with-github-pages')
|
|
||||||
expect($featuredLinks.eq(8).children('h4').text().startsWith('GitHub Pages')).toBe(true)
|
|
||||||
expect($featuredLinks.eq(8).children('p').text().startsWith('You can create a website')).toBe(true)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('localized intro links link to localized pages', async () => {
|
test('localized intro links link to localized pages', async () => {
|
||||||
const $ = await getDOM('/ja')
|
const $ = await getDOM('/ja')
|
||||||
const $featuredLinks = $('.featured-links a')
|
const $featuredLinks = $('.featured-links a')
|
||||||
@@ -51,7 +34,7 @@ describe('gettingStartedLinks and popularLinks', () => {
|
|||||||
expect(japaneseCharacters.presentIn($featuredLinks.eq(0).children('p').text())).toBe(true)
|
expect(japaneseCharacters.presentIn($featuredLinks.eq(0).children('p').text())).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('Enterprise user intro links have expected values', async () => {
|
test('Enterprise user intro links have expected values', async () => {
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/insights`)
|
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/insights`)
|
||||||
const $featuredLinks = $('.featured-links a')
|
const $featuredLinks = $('.featured-links a')
|
||||||
expect($featuredLinks).toHaveLength(6)
|
expect($featuredLinks).toHaveLength(6)
|
||||||
@@ -60,15 +43,6 @@ describe('gettingStartedLinks and popularLinks', () => {
|
|||||||
expect($featuredLinks.eq(0).children('p').text().startsWith('GitHub Insights provides metrics')).toBe(true)
|
expect($featuredLinks.eq(0).children('p').text().startsWith('GitHub Insights provides metrics')).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('Enterprise user intro links have expected values', async () => {
|
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/insights`)
|
|
||||||
const $featuredLinks = $('.featured-links a')
|
|
||||||
expect($featuredLinks).toHaveLength(6)
|
|
||||||
expect($featuredLinks.eq(0).attr('href')).toBe(`/en/enterprise/${enterpriseServerReleases.latest}/user/insights/installing-and-configuring-github-insights/about-github-insights`)
|
|
||||||
expect($featuredLinks.eq(0).children('h4').text().startsWith('About GitHub Insights')).toBe(true)
|
|
||||||
expect($featuredLinks.eq(0).children('p').text().startsWith('GitHub Insights provides metrics')).toBe(true)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('featured links respect versioning', async () => {
|
test('featured links respect versioning', async () => {
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/packages`)
|
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/packages`)
|
||||||
const $featuredLinks = $('.featured-links a')
|
const $featuredLinks = $('.featured-links a')
|
||||||
@@ -80,7 +54,7 @@ describe('gettingStartedLinks and popularLinks', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('context.page object', () => {
|
describe('context.page object', () => {
|
||||||
testFeatureNewVersions('returns modified array of links', async () => {
|
test('returns modified array of links', async () => {
|
||||||
const gettingStartedLinks = await getJSON('/en?json=gettingStartedLinks')
|
const gettingStartedLinks = await getJSON('/en?json=gettingStartedLinks')
|
||||||
const expectedFirstLink = {
|
const expectedFirstLink = {
|
||||||
href: `/en/${nonEnterpriseDefaultVersion}/github/getting-started-with-github/set-up-git`,
|
href: `/en/${nonEnterpriseDefaultVersion}/github/getting-started-with-github/set-up-git`,
|
||||||
@@ -91,17 +65,6 @@ describe('gettingStartedLinks and popularLinks', () => {
|
|||||||
expect(gettingStartedLinks[0].intro.startsWith('At the heart of GitHub')).toBe(true)
|
expect(gettingStartedLinks[0].intro.startsWith('At the heart of GitHub')).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('returns modified array of links', async () => {
|
|
||||||
const gettingStartedLinks = await getJSON('/en?json=gettingStartedLinks')
|
|
||||||
const expectedFirstLink = {
|
|
||||||
href: '/en/github/getting-started-with-github/set-up-git',
|
|
||||||
title: 'Set up Git'
|
|
||||||
}
|
|
||||||
expect(gettingStartedLinks[0].href).toEqual(expectedFirstLink.href)
|
|
||||||
expect(gettingStartedLinks[0].title).toEqual(expectedFirstLink.title)
|
|
||||||
expect(gettingStartedLinks[0].intro.startsWith('At the heart of GitHub')).toBe(true)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('returns raw array of links on the page object', async () => {
|
test('returns raw array of links on the page object', async () => {
|
||||||
const rawGettingStartedLinks = await getJSON('/en?json=page.rawGettingStartedLinks')
|
const rawGettingStartedLinks = await getJSON('/en?json=page.rawGettingStartedLinks')
|
||||||
expect(rawGettingStartedLinks[0]).toEqual('/github/getting-started-with-github/set-up-git')
|
expect(rawGettingStartedLinks[0]).toEqual('/github/getting-started-with-github/set-up-git')
|
||||||
|
|||||||
@@ -3,14 +3,14 @@ const upcomingChangesJson = require('../../lib/graphql/static/upcoming-changes')
|
|||||||
const prerenderedObjectsJson = require('../../lib/graphql/static/prerendered-objects')
|
const prerenderedObjectsJson = require('../../lib/graphql/static/prerendered-objects')
|
||||||
const { schemaValidator, previewsValidator, upcomingChangesValidator } = require('../../lib/graphql/validator')
|
const { schemaValidator, previewsValidator, upcomingChangesValidator } = require('../../lib/graphql/validator')
|
||||||
const revalidator = require('revalidator')
|
const revalidator = require('revalidator')
|
||||||
const allVersions = require('../../lib/all-versions')
|
const { oldVersions } = require('../../lib/old-versions-utils')
|
||||||
const graphqlTypes = require('../../lib/graphql/types').map(t => t.kind)
|
const graphqlTypes = require('../../lib/graphql/types').map(t => t.kind)
|
||||||
|
|
||||||
describe('graphql json files', () => {
|
describe('graphql json files', () => {
|
||||||
jest.setTimeout(3 * 60 * 1000)
|
jest.setTimeout(3 * 60 * 1000)
|
||||||
|
|
||||||
test('static files have versions as top-level keys', () => {
|
test('static files have versions as top-level keys', () => {
|
||||||
allVersions.forEach(version => {
|
oldVersions.forEach(version => {
|
||||||
expect(version in previewsJson).toBe(true)
|
expect(version in previewsJson).toBe(true)
|
||||||
expect(version in upcomingChangesJson).toBe(true)
|
expect(version in upcomingChangesJson).toBe(true)
|
||||||
expect(version in prerenderedObjectsJson).toBe(true)
|
expect(version in prerenderedObjectsJson).toBe(true)
|
||||||
@@ -18,7 +18,7 @@ describe('graphql json files', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('schemas object validation', () => {
|
test('schemas object validation', () => {
|
||||||
allVersions.forEach(version => {
|
oldVersions.forEach(version => {
|
||||||
const schemaJsonPerVersion = require(`../../lib/graphql/static/schema-${version}`)
|
const schemaJsonPerVersion = require(`../../lib/graphql/static/schema-${version}`)
|
||||||
// all graphql types are arrays except for queries
|
// all graphql types are arrays except for queries
|
||||||
graphqlTypes
|
graphqlTypes
|
||||||
@@ -48,7 +48,7 @@ describe('graphql json files', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('previews object validation', () => {
|
test('previews object validation', () => {
|
||||||
allVersions.forEach(version => {
|
oldVersions.forEach(version => {
|
||||||
previewsJson[version].forEach(previewObj => {
|
previewsJson[version].forEach(previewObj => {
|
||||||
const { valid, errors } = revalidator.validate(previewObj, previewsValidator)
|
const { valid, errors } = revalidator.validate(previewObj, previewsValidator)
|
||||||
const errorMessage = JSON.stringify(errors, null, 2)
|
const errorMessage = JSON.stringify(errors, null, 2)
|
||||||
@@ -58,7 +58,7 @@ describe('graphql json files', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('upcoming changes object validation', () => {
|
test('upcoming changes object validation', () => {
|
||||||
allVersions.forEach(version => {
|
oldVersions.forEach(version => {
|
||||||
Object.values(upcomingChangesJson[version]).forEach(changes => {
|
Object.values(upcomingChangesJson[version]).forEach(changes => {
|
||||||
// each object value is an array of changes
|
// each object value is an array of changes
|
||||||
changes.forEach(changeObj => {
|
changes.forEach(changeObj => {
|
||||||
@@ -71,7 +71,7 @@ describe('graphql json files', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('prerendered objects validation', () => {
|
test('prerendered objects validation', () => {
|
||||||
allVersions.forEach(version => {
|
oldVersions.forEach(version => {
|
||||||
// shape of prerenderedObject: {
|
// shape of prerenderedObject: {
|
||||||
// html: <div>foo</div>,
|
// html: <div>foo</div>,
|
||||||
// miniToc: {contents: '<a>bar</a>', headingLevel: N, indentationLevel: N}
|
// miniToc: {contents: '<a>bar</a>', headingLevel: N, indentationLevel: N}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const walk = require('walk-sync')
|
const walk = require('walk-sync')
|
||||||
@@ -15,9 +14,6 @@ const variablesDir = path.join(rootDir, 'data/variables')
|
|||||||
|
|
||||||
const languageCodes = Object.keys(languages)
|
const languageCodes = Object.keys(languages)
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
// WARNING: Complicated RegExp below!
|
// WARNING: Complicated RegExp below!
|
||||||
//
|
//
|
||||||
// Things matched by this RegExp:
|
// Things matched by this RegExp:
|
||||||
@@ -128,7 +124,7 @@ describe('lint-files', () => {
|
|||||||
content = bodyContent
|
content = bodyContent
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('relative URLs must start with "/"', async () => {
|
test('relative URLs must start with "/"', async () => {
|
||||||
const initialMatches = (content.match(relativeArticleLinkRegex) || [])
|
const initialMatches = (content.match(relativeArticleLinkRegex) || [])
|
||||||
|
|
||||||
// Filter out some very specific false positive matches
|
// Filter out some very specific false positive matches
|
||||||
@@ -180,65 +176,13 @@ describe('lint-files', () => {
|
|||||||
expect(matches.length, errorMessage).toBe(0)
|
expect(matches.length, errorMessage).toBe(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('relative URLs must start with "/"', async () => {
|
|
||||||
const initialMatches = (content.match(relativeArticleLinkRegex) || [])
|
|
||||||
|
|
||||||
// Filter out some very specific false positive matches
|
|
||||||
const matches = initialMatches.filter(match => {
|
|
||||||
if (markdownRelPath === 'content/github/enforcing-best-practices-with-github-policies/overview.md') {
|
|
||||||
if (match === '[A-Z]([a-z]|-)') {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else if (markdownRelPath === 'content/github/enforcing-best-practices-with-github-policies/constraints.md') {
|
|
||||||
if (match === '[a-z]([a-z]|-)') {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else if (markdownRelPath === 'content/github/building-a-strong-community/editing-wiki-content.md') {
|
|
||||||
if (match === '[Link Text](full-URL-of-wiki-page)') {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else if (markdownRelPath === 'content/enterprise/admin/user-management/configuring-email-for-notifications.md') {
|
|
||||||
if (/^\[\d+\]: (?:connect|disconnect|[0-9A-F]+:)\s*$/.test(match)) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else if (markdownRelPath === 'content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md') {
|
|
||||||
if (/^\[\d+\]: (?:Starting|Started|√|\d{4}-\d{2}-\d{2})\s*$/.test(match)) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else if (markdownRelPath === 'content/github/finding-security-vulnerabilities-and-errors-in-your-code/sarif-support-for-code-scanning.md') {
|
|
||||||
if (/^\[(?:here|ruleIndex|ruleID)\]\(\d+\)\s*$/.test(match)) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else if (markdownRelPath === 'content/github/building-a-strong-community/manually-creating-a-single-issue-template-for-your-repository.md') {
|
|
||||||
if (match === '[DATE]: [FEATURE ') {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else if (markdownRelPath === 'content/rest/overview/libraries.md') {
|
|
||||||
if (
|
|
||||||
match === '[pithub-github] ([CPAN][pithub-cpan])' ||
|
|
||||||
match === '[net-github-github] ([CPAN][net-github-cpan])'
|
|
||||||
) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
} else if (markdownRelPath === 'data/reusables/repositories/relative-links.md') {
|
|
||||||
if (match === '[Contribution guidelines for this project](docs/CONTRIBUTING.md)') {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
})
|
|
||||||
|
|
||||||
const errorMessage = formatLinkError(relativeArticleLinkErrorText, matches)
|
|
||||||
expect(matches.length, errorMessage).toBe(0)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('URLs must not contain a hard-coded language code', async () => {
|
test('URLs must not contain a hard-coded language code', async () => {
|
||||||
const matches = (content.match(languageLinkRegex) || [])
|
const matches = (content.match(languageLinkRegex) || [])
|
||||||
const errorMessage = formatLinkError(languageLinkErrorText, matches)
|
const errorMessage = formatLinkError(languageLinkErrorText, matches)
|
||||||
expect(matches.length, errorMessage).toBe(0)
|
expect(matches.length, errorMessage).toBe(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('URLs must not contain a hard-coded version number', async () => {
|
test('URLs must not contain a hard-coded version number', async () => {
|
||||||
const initialMatches = (content.match(versionLinkRegEx) || [])
|
const initialMatches = (content.match(versionLinkRegEx) || [])
|
||||||
|
|
||||||
// Filter out some very specific false positive matches
|
// Filter out some very specific false positive matches
|
||||||
@@ -253,21 +197,6 @@ describe('lint-files', () => {
|
|||||||
expect(matches.length, errorMessage).toBe(0)
|
expect(matches.length, errorMessage).toBe(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('URLs must not contain a hard-coded version number', async () => {
|
|
||||||
const initialMatches = (content.match(versionLinkRegEx) || [])
|
|
||||||
|
|
||||||
// Filter out some very specific false positive matches
|
|
||||||
const matches = initialMatches.filter(match => {
|
|
||||||
if (markdownRelPath === 'content/enterprise/admin/enterprise-management/migrating-from-github-enterprise-1110x-to-2123.md') {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
})
|
|
||||||
|
|
||||||
const errorMessage = formatLinkError(versionLinkErrorText, matches)
|
|
||||||
expect(matches.length, errorMessage).toBe(0)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('URLs must not contain a hard-coded domain name', async () => {
|
test('URLs must not contain a hard-coded domain name', async () => {
|
||||||
const matches = (content.match(domainLinkRegex) || [])
|
const matches = (content.match(domainLinkRegex) || [])
|
||||||
const errorMessage = formatLinkError(domainLinkErrorText, matches)
|
const errorMessage = formatLinkError(domainLinkErrorText, matches)
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const { isEqual, get, uniqBy } = require('lodash')
|
const { isEqual, get, uniqBy } = require('lodash')
|
||||||
const loadSiteData = require('../../lib/site-data')
|
const loadSiteData = require('../../lib/site-data')
|
||||||
const loadPages = require('../../lib/pages')
|
const loadPages = require('../../lib/pages')
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const { get, isPlainObject, has } = require('lodash')
|
const { get, isPlainObject, has } = require('lodash')
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const revalidator = require('revalidator')
|
const revalidator = require('revalidator')
|
||||||
const schema = require('../../lib/site-tree-schema')
|
const schema = require('../../lib/site-tree-schema')
|
||||||
const latestEnterpriseRelease = require('../../lib/enterprise-server-releases').latest
|
const latestEnterpriseRelease = require('../../lib/enterprise-server-releases').latest
|
||||||
@@ -7,9 +6,6 @@ const flat = require('flat')
|
|||||||
const japaneseCharacters = require('japanese-characters')
|
const japaneseCharacters = require('japanese-characters')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('siteTree', () => {
|
describe('siteTree', () => {
|
||||||
jest.setTimeout(3 * 60 * 1000)
|
jest.setTimeout(3 * 60 * 1000)
|
||||||
|
|
||||||
@@ -25,34 +21,21 @@ describe('siteTree', () => {
|
|||||||
expect('ja' in siteTree).toBe(true)
|
expect('ja' in siteTree).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('object order', () => {
|
test('object order', () => {
|
||||||
expect(Object.keys(siteTree)[0]).toBe('en')
|
expect(Object.keys(siteTree)[0]).toBe('en')
|
||||||
expect(Object.keys(siteTree.en)[0]).toBe(nonEnterpriseDefaultVersion)
|
expect(Object.keys(siteTree.en)[0]).toBe(nonEnterpriseDefaultVersion)
|
||||||
expect(Object.keys(siteTree.en[nonEnterpriseDefaultVersion].products.github.categories)[0]).toBe(`/${nonEnterpriseDefaultVersion}/github/getting-started-with-github`)
|
expect(Object.keys(siteTree.en[nonEnterpriseDefaultVersion].products.github.categories)[0]).toBe(`/${nonEnterpriseDefaultVersion}/github/getting-started-with-github`)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('object order', () => {
|
test('object structure', () => {
|
||||||
expect(Object.keys(siteTree)[0]).toBe('en')
|
|
||||||
expect(Object.keys(siteTree.en)[0]).toBe('dotcom')
|
|
||||||
expect(Object.keys(siteTree.en.dotcom.products.github.categories)[0]).toBe('/github/getting-started-with-github')
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('object structure', () => {
|
|
||||||
expect(nonEnterpriseDefaultVersion in siteTree.en).toBe(true)
|
expect(nonEnterpriseDefaultVersion in siteTree.en).toBe(true)
|
||||||
expect(`enterprise-server@${latestEnterpriseRelease}` in siteTree.en).toBe(true)
|
expect(`enterprise-server@${latestEnterpriseRelease}` in siteTree.en).toBe(true)
|
||||||
expect(flatTree[`en.${nonEnterpriseDefaultVersion}.products.github.href`]).toBe(`/${nonEnterpriseDefaultVersion}/github`)
|
expect(flatTree[`en.${nonEnterpriseDefaultVersion}.products.github.href`]).toBe(`/${nonEnterpriseDefaultVersion}/github`)
|
||||||
expect(flatTree[`en.${nonEnterpriseDefaultVersion}.products.github.categories./${nonEnterpriseDefaultVersion}/github/getting-started-with-github.href`]).toBe(`/${nonEnterpriseDefaultVersion}/github/getting-started-with-github`)
|
expect(flatTree[`en.${nonEnterpriseDefaultVersion}.products.github.categories./${nonEnterpriseDefaultVersion}/github/getting-started-with-github.href`]).toBe(`/${nonEnterpriseDefaultVersion}/github/getting-started-with-github`)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('object structure', () => {
|
|
||||||
expect('dotcom' in siteTree.en).toBe(true)
|
|
||||||
expect(latestEnterpriseRelease in siteTree.en).toBe(true)
|
|
||||||
expect(flatTree['en.dotcom.products.github.href']).toBe('/github')
|
|
||||||
expect(flatTree['en.dotcom.products.github.categories./github/getting-started-with-github.href']).toBe('/github/getting-started-with-github')
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('localized titles', () => {
|
describe('localized titles', () => {
|
||||||
testFeatureNewVersions('titles for categories', () => {
|
test('titles for categories', () => {
|
||||||
const japaneseTitle = flatTree[`ja.${nonEnterpriseDefaultVersion}.products.github.categories./${nonEnterpriseDefaultVersion}/github/getting-started-with-github.title`]
|
const japaneseTitle = flatTree[`ja.${nonEnterpriseDefaultVersion}.products.github.categories./${nonEnterpriseDefaultVersion}/github/getting-started-with-github.title`]
|
||||||
expect(typeof japaneseTitle).toBe('string')
|
expect(typeof japaneseTitle).toBe('string')
|
||||||
expect(japaneseCharacters.presentIn(japaneseTitle)).toBe(true)
|
expect(japaneseCharacters.presentIn(japaneseTitle)).toBe(true)
|
||||||
@@ -62,21 +45,11 @@ describe('siteTree', () => {
|
|||||||
expect(japaneseCharacters.presentIn(englishTitle)).toBe(false)
|
expect(japaneseCharacters.presentIn(englishTitle)).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('titles for categories', () => {
|
|
||||||
const japaneseTitle = flatTree['ja.dotcom.products.github.categories./github/getting-started-with-github.title']
|
|
||||||
expect(typeof japaneseTitle).toBe('string')
|
|
||||||
expect(japaneseCharacters.presentIn(japaneseTitle)).toBe(true)
|
|
||||||
|
|
||||||
const englishTitle = flatTree['en.dotcom.products.github.categories./github/getting-started-with-github.title']
|
|
||||||
expect(typeof englishTitle).toBe('string')
|
|
||||||
expect(japaneseCharacters.presentIn(englishTitle)).toBe(false)
|
|
||||||
})
|
|
||||||
|
|
||||||
test.todo('titles for maptopics')
|
test.todo('titles for maptopics')
|
||||||
|
|
||||||
test.todo('titles for articles')
|
test.todo('titles for articles')
|
||||||
|
|
||||||
testFeatureNewVersions('articles that include site data in liquid templating', () => {
|
test('articles that include site data in liquid templating', () => {
|
||||||
const pageWithDynamicTitle = siteTree.en[`enterprise-server@${latestEnterpriseRelease}`]
|
const pageWithDynamicTitle = siteTree.en[`enterprise-server@${latestEnterpriseRelease}`]
|
||||||
.products.admin
|
.products.admin
|
||||||
.categories[`/enterprise-server@${latestEnterpriseRelease}/admin/enterprise-support`]
|
.categories[`/enterprise-server@${latestEnterpriseRelease}/admin/enterprise-support`]
|
||||||
@@ -84,18 +57,9 @@ describe('siteTree', () => {
|
|||||||
// title: 'Working with {{ site.data.variables.contact.github_support }}'
|
// title: 'Working with {{ site.data.variables.contact.github_support }}'
|
||||||
expect(pageWithDynamicTitle.title).toEqual('Working with GitHub Support')
|
expect(pageWithDynamicTitle.title).toEqual('Working with GitHub Support')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('articles that include site data in liquid templating', () => {
|
|
||||||
const pageWithDynamicTitle = siteTree.en[latestEnterpriseRelease]
|
|
||||||
.products.enterpriseServer
|
|
||||||
.categories[`/enterprise/${latestEnterpriseRelease}/admin/enterprise-support`]
|
|
||||||
// Source frontmatter from article:
|
|
||||||
// title: 'Working with {{ site.data.variables.contact.github_support }}'
|
|
||||||
expect(pageWithDynamicTitle.title).toEqual('Working with GitHub Support')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('object validation', () => {
|
test('object validation', () => {
|
||||||
const products = Object.values(siteTree.en[nonEnterpriseDefaultVersion].products)
|
const products = Object.values(siteTree.en[nonEnterpriseDefaultVersion].products)
|
||||||
expect(products.length).toBeGreaterThan(0)
|
expect(products.length).toBeGreaterThan(0)
|
||||||
|
|
||||||
@@ -117,27 +81,4 @@ describe('siteTree', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('object validation', () => {
|
|
||||||
const products = Object.values(siteTree.en.dotcom.products)
|
|
||||||
expect(products.length).toBeGreaterThan(0)
|
|
||||||
|
|
||||||
products.forEach(product => {
|
|
||||||
const { valid, errors } = revalidator.validate(product, schema.product)
|
|
||||||
const expectation = JSON.stringify(errors, null, 2)
|
|
||||||
expect(valid, expectation).toBe(true)
|
|
||||||
|
|
||||||
Object.values(product.categories || {}).forEach(category => {
|
|
||||||
const { valid, errors } = revalidator.validate(category, schema.category)
|
|
||||||
const expectation = JSON.stringify(errors, null, 2)
|
|
||||||
expect(valid, expectation).toBe(true)
|
|
||||||
|
|
||||||
Object.values(category.maptopics || {}).forEach(maptopic => {
|
|
||||||
const { valid, errors } = revalidator.validate(maptopic, schema.maptopic)
|
|
||||||
const expectation = JSON.stringify(errors, null, 2)
|
|
||||||
expect(valid, expectation).toBe(true)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,45 +1,27 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const { difference } = require('lodash')
|
const { difference } = require('lodash')
|
||||||
const { getJSON } = require('../helpers')
|
const { getJSON } = require('../helpers')
|
||||||
const { latest } = require('../../lib/enterprise-server-releases')
|
const { latest } = require('../../lib/enterprise-server-releases')
|
||||||
const allVersions = require('../../lib/all-versions')
|
|
||||||
const { oldVersions } = require('../../lib/old-versions-utils')
|
const { oldVersions } = require('../../lib/old-versions-utils')
|
||||||
const webhookPayloads = require('../../lib/webhooks')
|
const webhookPayloads = require('../../lib/webhooks')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('webhook payloads', () => {
|
describe('webhook payloads', () => {
|
||||||
jest.setTimeout(3 * 60 * 1000)
|
jest.setTimeout(3 * 60 * 1000)
|
||||||
|
|
||||||
// TODO update this test when we update the webhook payload filepaths
|
// TODO update this test when we update the webhook payload filepaths
|
||||||
testFeatureNewVersions('have old versions as top-level keys', () => {
|
test('have old versions as top-level keys', () => {
|
||||||
oldVersions.forEach(version => {
|
oldVersions.forEach(version => {
|
||||||
expect(version in webhookPayloads).toBe(true)
|
expect(version in webhookPayloads).toBe(true)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('have current versions as top-level keys', () => {
|
|
||||||
allVersions.forEach(version => {
|
|
||||||
expect(version in webhookPayloads).toBe(true)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
// TODO update this test when we update the webhook payload filepaths
|
// TODO update this test when we update the webhook payload filepaths
|
||||||
testFeatureNewVersions('have a reasonable number of payloads per version', () => {
|
test('have a reasonable number of payloads per version', () => {
|
||||||
oldVersions.forEach(version => {
|
oldVersions.forEach(version => {
|
||||||
const payloadsPerVersion = Object.keys(webhookPayloads[version])
|
const payloadsPerVersion = Object.keys(webhookPayloads[version])
|
||||||
expect(payloadsPerVersion.length).toBeGreaterThan(20)
|
expect(payloadsPerVersion.length).toBeGreaterThan(20)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('have a reasonable number of payloads per version', () => {
|
|
||||||
allVersions.forEach(version => {
|
|
||||||
const payloadsPerVersion = Object.keys(webhookPayloads[version])
|
|
||||||
expect(payloadsPerVersion.length).toBeGreaterThan(20)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
test('have payloads that are JSON strings, not objects', () => {
|
test('have payloads that are JSON strings, not objects', () => {
|
||||||
// use the first one found for testing purposes
|
// use the first one found for testing purposes
|
||||||
const firstKey = Object.keys(webhookPayloads.dotcom)[0]
|
const firstKey = Object.keys(webhookPayloads.dotcom)[0]
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
title: GitHub 上でプロジェクトを探索する
|
title: GitHub 上でプロジェクトを探索する
|
||||||
intro: ''
|
intro: ''
|
||||||
mapTopic: verdadero
|
mapTopic: verdadero
|
||||||
productVersions:
|
versions:
|
||||||
dotcom: '*'
|
free-pro-team: '*'
|
||||||
enterprise: '*'
|
enterprise-server: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
110
tests/fixtures/developer-redirects.json
vendored
110
tests/fixtures/developer-redirects.json
vendored
@@ -1,26 +1,26 @@
|
|||||||
{
|
{
|
||||||
"/apps": "/en/developers/apps",
|
"/apps": "/en/free-pro-team@latest/developers/apps",
|
||||||
"/apps/building-github-apps": "/en/developers/apps/building-github-apps",
|
"/apps/building-github-apps": "/en/free-pro-team@latest/developers/apps/building-github-apps",
|
||||||
"/apps/building-oauth-apps": "/en/developers/apps/building-oauth-apps",
|
"/apps/building-oauth-apps": "/en/free-pro-team@latest/developers/apps/building-oauth-apps",
|
||||||
"/apps/managing-github-apps": "/en/developers/apps/managing-github-apps",
|
"/apps/managing-github-apps": "/en/free-pro-team@latest/developers/apps/managing-github-apps",
|
||||||
"/apps/managing-oauth-apps": "/en/developers/apps/managing-oauth-apps",
|
"/apps/managing-oauth-apps": "/en/free-pro-team@latest/developers/apps/managing-oauth-apps",
|
||||||
"/apps/quickstart-guides": "/en/developers/apps/guides",
|
"/apps/quickstart-guides": "/en/free-pro-team@latest/developers/apps/guides",
|
||||||
"/marketplace": "/en/developers/github-marketplace",
|
"/marketplace": "/en/free-pro-team@latest/developers/github-marketplace",
|
||||||
"/marketplace/getting-started": "/en/developers/github-marketplace/about-github-marketplace",
|
"/marketplace/getting-started": "/en/free-pro-team@latest/developers/github-marketplace/about-github-marketplace",
|
||||||
"/marketplace/integrating-with-the-github-marketplace-api": "/en/developers/github-marketplace/using-the-github-marketplace-api-in-your-app",
|
"/marketplace/integrating-with-the-github-marketplace-api": "/en/free-pro-team@latest/developers/github-marketplace/using-the-github-marketplace-api-in-your-app",
|
||||||
"/marketplace/listing-on-github-marketplace": "/en/developers/github-marketplace/listing-an-app-on-github-marketplace",
|
"/marketplace/listing-on-github-marketplace": "/en/free-pro-team@latest/developers/github-marketplace/listing-an-app-on-github-marketplace",
|
||||||
"/marketplace/selling-your-app": "/en/developers/github-marketplace/selling-your-app-on-github-marketplace",
|
"/marketplace/selling-your-app": "/en/free-pro-team@latest/developers/github-marketplace/selling-your-app-on-github-marketplace",
|
||||||
"/v3": "/en/rest",
|
"/v3": "/en/free-pro-team@latest/rest",
|
||||||
"/v3/actions/workflow-jobs": "/en/rest/reference/actions#workflow-jobs",
|
"/v3/actions/workflow-jobs": "/en/free-pro-team@latest/rest/reference/actions#workflow-jobs",
|
||||||
"/v3/actions/workflow-runs": "/en/rest/reference/actions#workflow-runs",
|
"/v3/actions/workflow-runs": "/en/free-pro-team@latest/rest/reference/actions#workflow-runs",
|
||||||
"/v3/actions/workflow_jobs": "/en/rest/reference/actions#workflow-jobs",
|
"/v3/actions/workflow_jobs": "/en/free-pro-team@latest/rest/reference/actions#workflow-jobs",
|
||||||
"/v3/actions/workflow_runs": "/en/rest/reference/actions#workflow-runs",
|
"/v3/actions/workflow_runs": "/en/free-pro-team@latest/rest/reference/actions#workflow-runs",
|
||||||
"/v3/guides": "/en/rest/guides",
|
"/v3/guides": "/en/free-pro-team@latest/rest/guides",
|
||||||
"/v3/guides/managing-deploy-keys": "/en/developers/overview/managing-deploy-keys",
|
"/v3/guides/managing-deploy-keys": "/en/free-pro-team@latest/developers/overview/managing-deploy-keys",
|
||||||
"/v3/misc": "/en/rest/reference/emojis",
|
"/v3/misc": "/en/free-pro-team@latest/rest/reference/emojis",
|
||||||
"/v4/public_schema": "/en/graphql/overview/public-schema",
|
"/v4/public_schema": "/en/free-pro-team@latest/graphql/overview/public-schema",
|
||||||
"/v4/object/repository": "/en/graphql/reference/objects#repository",
|
"/v4/object/repository": "/en/free-pro-team@latest/graphql/reference/objects#repository",
|
||||||
"/webhooks": "/en/developers/webhooks-and-events/about-webhooks",
|
"/webhooks": "/en/free-pro-team@latest/developers/webhooks-and-events/about-webhooks",
|
||||||
"/en/enterprise/2.18/apps": "/en/enterprise/2.18/user/developers/apps",
|
"/en/enterprise/2.18/apps": "/en/enterprise/2.18/user/developers/apps",
|
||||||
"/en/enterprise/2.18/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise/2.18/user/developers/apps/authorizing-oauth-apps",
|
"/en/enterprise/2.18/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise/2.18/user/developers/apps/authorizing-oauth-apps",
|
||||||
"/en/enterprise/2.18/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise/2.18/user/developers/apps/scopes-for-oauth-apps",
|
"/en/enterprise/2.18/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise/2.18/user/developers/apps/scopes-for-oauth-apps",
|
||||||
@@ -32,37 +32,37 @@
|
|||||||
"/en/enterprise/2.18/v4/guides/intro-to-graphql": "/en/enterprise/2.18/user/graphql/guides/introduction-to-graphql",
|
"/en/enterprise/2.18/v4/guides/intro-to-graphql": "/en/enterprise/2.18/user/graphql/guides/introduction-to-graphql",
|
||||||
"/en/enterprise/2.18/v4/guides/migrating-from-rest": "/en/enterprise/2.18/user/graphql/guides/migrating-from-rest-to-graphql",
|
"/en/enterprise/2.18/v4/guides/migrating-from-rest": "/en/enterprise/2.18/user/graphql/guides/migrating-from-rest-to-graphql",
|
||||||
"/en/enterprise/2.18/webhooks": "/en/enterprise/2.18/user/developers/webhooks-and-events/about-webhooks",
|
"/en/enterprise/2.18/webhooks": "/en/enterprise/2.18/user/developers/webhooks-and-events/about-webhooks",
|
||||||
"/en/enterprise/2.19/apps": "/en/enterprise/2.19/user/developers/apps",
|
"/en/enterprise/2.19/apps": "/en/enterprise-server@2.19/developers/apps",
|
||||||
"/en/enterprise/2.19/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise/2.19/user/developers/apps/authorizing-oauth-apps",
|
"/en/enterprise/2.19/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise-server@2.19/developers/apps/authorizing-oauth-apps",
|
||||||
"/en/enterprise/2.19/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise/2.19/user/developers/apps/scopes-for-oauth-apps",
|
"/en/enterprise/2.19/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise-server@2.19/developers/apps/scopes-for-oauth-apps",
|
||||||
"/en/enterprise/2.19/apps/differences-between-apps": "/en/enterprise/2.19/user/developers/apps/differences-between-github-apps-and-oauth-apps",
|
"/en/enterprise/2.19/apps/differences-between-apps": "/en/enterprise-server@2.19/developers/apps/differences-between-github-apps-and-oauth-apps",
|
||||||
"/en/enterprise/2.19/v3/auth": "/en/enterprise/2.19/user/rest/overview/other-authentication-methods",
|
"/en/enterprise/2.19/v3/auth": "/en/enterprise-server@2.19/rest/overview/other-authentication-methods",
|
||||||
"/en/enterprise/2.19/v3/guides/managing-deploy-keys": "/en/enterprise/2.19/user/developers/overview/managing-deploy-keys",
|
"/en/enterprise/2.19/v3/guides/managing-deploy-keys": "/en/enterprise-server@2.19/developers/overview/managing-deploy-keys",
|
||||||
"/en/enterprise/2.19/v4/explorer": "/en/enterprise/2.19/user/graphql/overview/explorer",
|
"/en/enterprise/2.19/v4/explorer": "/en/enterprise-server@2.19/graphql/overview/explorer",
|
||||||
"/en/enterprise/2.19/v4/guides/forming-calls": "/en/enterprise/2.19/user/graphql/guides/forming-calls-with-graphql",
|
"/en/enterprise/2.19/v4/guides/forming-calls": "/en/enterprise-server@2.19/graphql/guides/forming-calls-with-graphql",
|
||||||
"/en/enterprise/2.19/v4/guides/intro-to-graphql": "/en/enterprise/2.19/user/graphql/guides/introduction-to-graphql",
|
"/en/enterprise/2.19/v4/guides/intro-to-graphql": "/en/enterprise-server@2.19/graphql/guides/introduction-to-graphql",
|
||||||
"/en/enterprise/2.19/v4/guides/migrating-from-rest": "/en/enterprise/2.19/user/graphql/guides/migrating-from-rest-to-graphql",
|
"/en/enterprise/2.19/v4/guides/migrating-from-rest": "/en/enterprise-server@2.19/graphql/guides/migrating-from-rest-to-graphql",
|
||||||
"/en/enterprise/2.19/webhooks": "/en/enterprise/2.19/user/developers/webhooks-and-events/about-webhooks",
|
"/en/enterprise/2.19/webhooks": "/en/enterprise-server@2.19/developers/webhooks-and-events/about-webhooks",
|
||||||
"/en/enterprise/2.20/apps": "/en/enterprise/2.20/user/developers/apps",
|
"/en/enterprise/2.20/apps": "/en/enterprise-server@2.20/developers/apps",
|
||||||
"/en/enterprise/2.20/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise/2.20/user/developers/apps/authorizing-oauth-apps",
|
"/en/enterprise/2.20/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise-server@2.20/developers/apps/authorizing-oauth-apps",
|
||||||
"/en/enterprise/2.20/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise/2.20/user/developers/apps/scopes-for-oauth-apps",
|
"/en/enterprise/2.20/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise-server@2.20/developers/apps/scopes-for-oauth-apps",
|
||||||
"/en/enterprise/2.20/apps/differences-between-apps": "/en/enterprise/2.20/user/developers/apps/differences-between-github-apps-and-oauth-apps",
|
"/en/enterprise/2.20/apps/differences-between-apps": "/en/enterprise-server@2.20/developers/apps/differences-between-github-apps-and-oauth-apps",
|
||||||
"/en/enterprise/2.20/v3/auth": "/en/enterprise/2.20/user/rest/overview/other-authentication-methods",
|
"/en/enterprise/2.20/v3/auth": "/en/enterprise-server@2.20/rest/overview/other-authentication-methods",
|
||||||
"/en/enterprise/2.20/v3/guides/managing-deploy-keys": "/en/enterprise/2.20/user/developers/overview/managing-deploy-keys",
|
"/en/enterprise/2.20/v3/guides/managing-deploy-keys": "/en/enterprise-server@2.20/developers/overview/managing-deploy-keys",
|
||||||
"/en/enterprise/2.20/v4/explorer": "/en/enterprise/2.20/user/graphql/overview/explorer",
|
"/en/enterprise/2.20/v4/explorer": "/en/enterprise-server@2.20/graphql/overview/explorer",
|
||||||
"/en/enterprise/2.20/v4/guides/forming-calls": "/en/enterprise/2.20/user/graphql/guides/forming-calls-with-graphql",
|
"/en/enterprise/2.20/v4/guides/forming-calls": "/en/enterprise-server@2.20/graphql/guides/forming-calls-with-graphql",
|
||||||
"/en/enterprise/2.20/v4/guides/intro-to-graphql": "/en/enterprise/2.20/user/graphql/guides/introduction-to-graphql",
|
"/en/enterprise/2.20/v4/guides/intro-to-graphql": "/en/enterprise-server@2.20/graphql/guides/introduction-to-graphql",
|
||||||
"/en/enterprise/2.20/v4/guides/migrating-from-rest": "/en/enterprise/2.20/user/graphql/guides/migrating-from-rest-to-graphql",
|
"/en/enterprise/2.20/v4/guides/migrating-from-rest": "/en/enterprise-server@2.20/graphql/guides/migrating-from-rest-to-graphql",
|
||||||
"/en/enterprise/2.20/webhooks": "/en/enterprise/2.20/user/developers/webhooks-and-events/about-webhooks",
|
"/en/enterprise/2.20/webhooks": "/en/enterprise-server@2.20/developers/webhooks-and-events/about-webhooks",
|
||||||
"/en/enterprise/2.21/apps": "/en/enterprise/2.21/user/developers/apps",
|
"/en/enterprise/2.21/apps": "/en/enterprise-server@2.21/developers/apps",
|
||||||
"/en/enterprise/2.21/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise/2.21/user/developers/apps/authorizing-oauth-apps",
|
"/en/enterprise/2.21/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise-server@2.21/developers/apps/authorizing-oauth-apps",
|
||||||
"/en/enterprise/2.21/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise/2.21/user/developers/apps/scopes-for-oauth-apps",
|
"/en/enterprise/2.21/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise-server@2.21/developers/apps/scopes-for-oauth-apps",
|
||||||
"/en/enterprise/2.21/apps/differences-between-apps": "/en/enterprise/2.21/user/developers/apps/differences-between-github-apps-and-oauth-apps",
|
"/en/enterprise/2.21/apps/differences-between-apps": "/en/enterprise-server@2.21/developers/apps/differences-between-github-apps-and-oauth-apps",
|
||||||
"/en/enterprise/2.21/v3/auth": "/en/enterprise/2.21/user/rest/overview/other-authentication-methods",
|
"/en/enterprise/2.21/v3/auth": "/en/enterprise-server@2.21/rest/overview/other-authentication-methods",
|
||||||
"/en/enterprise/2.21/v3/guides/managing-deploy-keys": "/en/enterprise/2.21/user/developers/overview/managing-deploy-keys",
|
"/en/enterprise/2.21/v3/guides/managing-deploy-keys": "/en/enterprise-server@2.21/developers/overview/managing-deploy-keys",
|
||||||
"/en/enterprise/2.21/v4/explorer": "/en/enterprise/2.21/user/graphql/overview/explorer",
|
"/en/enterprise/2.21/v4/explorer": "/en/enterprise-server@2.21/graphql/overview/explorer",
|
||||||
"/en/enterprise/2.21/v4/guides/forming-calls": "/en/enterprise/2.21/user/graphql/guides/forming-calls-with-graphql",
|
"/en/enterprise/2.21/v4/guides/forming-calls": "/en/enterprise-server@2.21/graphql/guides/forming-calls-with-graphql",
|
||||||
"/en/enterprise/2.21/v4/guides/intro-to-graphql": "/en/enterprise/2.21/user/graphql/guides/introduction-to-graphql",
|
"/en/enterprise/2.21/v4/guides/intro-to-graphql": "/en/enterprise-server@2.21/graphql/guides/introduction-to-graphql",
|
||||||
"/en/enterprise/2.21/v4/guides/migrating-from-rest": "/en/enterprise/2.21/user/graphql/guides/migrating-from-rest-to-graphql",
|
"/en/enterprise/2.21/v4/guides/migrating-from-rest": "/en/enterprise-server@2.21/graphql/guides/migrating-from-rest-to-graphql",
|
||||||
"/en/enterprise/2.21/webhooks": "/en/enterprise/2.21/user/developers/webhooks-and-events/about-webhooks"
|
"/en/enterprise/2.21/webhooks": "/en/enterprise-server@2.21/developers/webhooks-and-events/about-webhooks"
|
||||||
}
|
}
|
||||||
|
|||||||
720
tests/fixtures/graphql-redirects.json
vendored
720
tests/fixtures/graphql-redirects.json
vendored
@@ -41,186 +41,186 @@
|
|||||||
"/en/enterprise/2.18/v4/scalar/date": "/en/enterprise/2.18/user/graphql/reference/scalars#date",
|
"/en/enterprise/2.18/v4/scalar/date": "/en/enterprise/2.18/user/graphql/reference/scalars#date",
|
||||||
"/en/enterprise/2.18/v4/union": "/en/enterprise/2.18/user/graphql/reference/unions",
|
"/en/enterprise/2.18/v4/union": "/en/enterprise/2.18/user/graphql/reference/unions",
|
||||||
"/en/enterprise/2.18/v4/union/auditentryactor": "/en/enterprise/2.18/user/graphql/reference/unions#auditentryactor",
|
"/en/enterprise/2.18/v4/union/auditentryactor": "/en/enterprise/2.18/user/graphql/reference/unions#auditentryactor",
|
||||||
"/en/enterprise/2.19/user/v4/enum": "/en/enterprise/2.19/user/graphql/reference/enums",
|
"/en/enterprise/2.19/user/v4/enum": "/en/enterprise-server@2.19/graphql/reference/enums",
|
||||||
"/en/enterprise/2.19/user/v4/enum/auditlogorderfield": "/en/enterprise/2.19/user/graphql/reference/enums#auditlogorderfield",
|
"/en/enterprise/2.19/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.19/graphql/reference/enums#auditlogorderfield",
|
||||||
"/en/enterprise/2.19/user/v4/enum/checkannotationlevel": "/en/enterprise/2.19/user/graphql/reference/enums#checkannotationlevel",
|
"/en/enterprise/2.19/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.19/graphql/reference/enums#checkannotationlevel",
|
||||||
"/en/enterprise/2.19/user/v4/guides": "/en/enterprise/2.19/user/graphql/guides",
|
"/en/enterprise/2.19/user/v4/guides": "/en/enterprise-server@2.19/graphql/guides",
|
||||||
"/en/enterprise/2.19/user/v4/input_object": "/en/enterprise/2.19/user/graphql/reference/input-objects",
|
"/en/enterprise/2.19/user/v4/input_object": "/en/enterprise-server@2.19/graphql/reference/input-objects",
|
||||||
"/en/enterprise/2.19/user/v4/interface": "/en/enterprise/2.19/user/graphql/reference/interfaces",
|
"/en/enterprise/2.19/user/v4/interface": "/en/enterprise-server@2.19/graphql/reference/interfaces",
|
||||||
"/en/enterprise/2.19/user/v4/interface/actor": "/en/enterprise/2.19/user/graphql/reference/interfaces#actor",
|
"/en/enterprise/2.19/user/v4/interface/actor": "/en/enterprise-server@2.19/graphql/reference/interfaces#actor",
|
||||||
"/en/enterprise/2.19/user/v4/interface/assignable": "/en/enterprise/2.19/user/graphql/reference/interfaces#assignable",
|
"/en/enterprise/2.19/user/v4/interface/assignable": "/en/enterprise-server@2.19/graphql/reference/interfaces#assignable",
|
||||||
"/en/enterprise/2.19/user/v4/mutation": "/en/enterprise/2.19/user/graphql/reference/mutations",
|
"/en/enterprise/2.19/user/v4/mutation": "/en/enterprise-server@2.19/graphql/reference/mutations",
|
||||||
"/en/enterprise/2.19/user/v4/object": "/en/enterprise/2.19/user/graphql/reference/objects",
|
"/en/enterprise/2.19/user/v4/object": "/en/enterprise-server@2.19/graphql/reference/objects",
|
||||||
"/en/enterprise/2.19/user/v4/object/actorlocation": "/en/enterprise/2.19/user/graphql/reference/objects#actorlocation",
|
"/en/enterprise/2.19/user/v4/object/actorlocation": "/en/enterprise-server@2.19/graphql/reference/objects#actorlocation",
|
||||||
"/en/enterprise/2.19/user/v4/object/addedtoprojectevent": "/en/enterprise/2.19/user/graphql/reference/objects#addedtoprojectevent",
|
"/en/enterprise/2.19/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.19/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/en/enterprise/2.19/user/v4/previews": "/en/enterprise/2.19/user/graphql/overview/schema-previews",
|
"/en/enterprise/2.19/user/v4/previews": "/en/enterprise-server@2.19/graphql/overview/schema-previews",
|
||||||
"/en/enterprise/2.19/user/v4/public_schema": "/en/enterprise/2.19/user/graphql/overview/public-schema",
|
"/en/enterprise/2.19/user/v4/public_schema": "/en/enterprise-server@2.19/graphql/overview/public-schema",
|
||||||
"/en/enterprise/2.19/user/v4/query": "/en/enterprise/2.19/user/graphql/reference/queries",
|
"/en/enterprise/2.19/user/v4/query": "/en/enterprise-server@2.19/graphql/reference/queries",
|
||||||
"/en/enterprise/2.19/user/v4/reference": "/en/enterprise/2.19/user/graphql/reference",
|
"/en/enterprise/2.19/user/v4/reference": "/en/enterprise-server@2.19/graphql/reference",
|
||||||
"/en/enterprise/2.19/user/v4/scalar": "/en/enterprise/2.19/user/graphql/reference/scalars",
|
"/en/enterprise/2.19/user/v4/scalar": "/en/enterprise-server@2.19/graphql/reference/scalars",
|
||||||
"/en/enterprise/2.19/user/v4/scalar/boolean": "/en/enterprise/2.19/user/graphql/reference/scalars#boolean",
|
"/en/enterprise/2.19/user/v4/scalar/boolean": "/en/enterprise-server@2.19/graphql/reference/scalars#boolean",
|
||||||
"/en/enterprise/2.19/user/v4/scalar/date": "/en/enterprise/2.19/user/graphql/reference/scalars#date",
|
"/en/enterprise/2.19/user/v4/scalar/date": "/en/enterprise-server@2.19/graphql/reference/scalars#date",
|
||||||
"/en/enterprise/2.19/user/v4/union": "/en/enterprise/2.19/user/graphql/reference/unions",
|
"/en/enterprise/2.19/user/v4/union": "/en/enterprise-server@2.19/graphql/reference/unions",
|
||||||
"/en/enterprise/2.19/user/v4/union/assignee": "/en/enterprise/2.19/user/graphql/reference/unions#assignee",
|
"/en/enterprise/2.19/user/v4/union/assignee": "/en/enterprise-server@2.19/graphql/reference/unions#assignee",
|
||||||
"/en/enterprise/2.19/user/v4/union/auditentryactor": "/en/enterprise/2.19/user/graphql/reference/unions#auditentryactor",
|
"/en/enterprise/2.19/user/v4/union/auditentryactor": "/en/enterprise-server@2.19/graphql/reference/unions#auditentryactor",
|
||||||
"/en/enterprise/2.19/v4/enum": "/en/enterprise/2.19/user/graphql/reference/enums",
|
"/en/enterprise/2.19/v4/enum": "/en/enterprise-server@2.19/graphql/reference/enums",
|
||||||
"/en/enterprise/2.19/v4/enum/auditlogorderfield": "/en/enterprise/2.19/user/graphql/reference/enums#auditlogorderfield",
|
"/en/enterprise/2.19/v4/enum/auditlogorderfield": "/en/enterprise-server@2.19/graphql/reference/enums#auditlogorderfield",
|
||||||
"/en/enterprise/2.19/v4/enum/checkannotationlevel": "/en/enterprise/2.19/user/graphql/reference/enums#checkannotationlevel",
|
"/en/enterprise/2.19/v4/enum/checkannotationlevel": "/en/enterprise-server@2.19/graphql/reference/enums#checkannotationlevel",
|
||||||
"/en/enterprise/2.19/v4/guides": "/en/enterprise/2.19/user/graphql/guides",
|
"/en/enterprise/2.19/v4/guides": "/en/enterprise-server@2.19/graphql/guides",
|
||||||
"/en/enterprise/2.19/v4/input_object": "/en/enterprise/2.19/user/graphql/reference/input-objects",
|
"/en/enterprise/2.19/v4/input_object": "/en/enterprise-server@2.19/graphql/reference/input-objects",
|
||||||
"/en/enterprise/2.19/v4/interface": "/en/enterprise/2.19/user/graphql/reference/interfaces",
|
"/en/enterprise/2.19/v4/interface": "/en/enterprise-server@2.19/graphql/reference/interfaces",
|
||||||
"/en/enterprise/2.19/v4/interface/actor": "/en/enterprise/2.19/user/graphql/reference/interfaces#actor",
|
"/en/enterprise/2.19/v4/interface/actor": "/en/enterprise-server@2.19/graphql/reference/interfaces#actor",
|
||||||
"/en/enterprise/2.19/v4/interface/assignable": "/en/enterprise/2.19/user/graphql/reference/interfaces#assignable",
|
"/en/enterprise/2.19/v4/interface/assignable": "/en/enterprise-server@2.19/graphql/reference/interfaces#assignable",
|
||||||
"/en/enterprise/2.19/v4/mutation": "/en/enterprise/2.19/user/graphql/reference/mutations",
|
"/en/enterprise/2.19/v4/mutation": "/en/enterprise-server@2.19/graphql/reference/mutations",
|
||||||
"/en/enterprise/2.19/v4/object": "/en/enterprise/2.19/user/graphql/reference/objects",
|
"/en/enterprise/2.19/v4/object": "/en/enterprise-server@2.19/graphql/reference/objects",
|
||||||
"/en/enterprise/2.19/v4/object/actorlocation": "/en/enterprise/2.19/user/graphql/reference/objects#actorlocation",
|
"/en/enterprise/2.19/v4/object/actorlocation": "/en/enterprise-server@2.19/graphql/reference/objects#actorlocation",
|
||||||
"/en/enterprise/2.19/v4/object/addedtoprojectevent": "/en/enterprise/2.19/user/graphql/reference/objects#addedtoprojectevent",
|
"/en/enterprise/2.19/v4/object/addedtoprojectevent": "/en/enterprise-server@2.19/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/en/enterprise/2.19/v4/previews": "/en/enterprise/2.19/user/graphql/overview/schema-previews",
|
"/en/enterprise/2.19/v4/previews": "/en/enterprise-server@2.19/graphql/overview/schema-previews",
|
||||||
"/en/enterprise/2.19/v4/public_schema": "/en/enterprise/2.19/user/graphql/overview/public-schema",
|
"/en/enterprise/2.19/v4/public_schema": "/en/enterprise-server@2.19/graphql/overview/public-schema",
|
||||||
"/en/enterprise/2.19/v4/query": "/en/enterprise/2.19/user/graphql/reference/queries",
|
"/en/enterprise/2.19/v4/query": "/en/enterprise-server@2.19/graphql/reference/queries",
|
||||||
"/en/enterprise/2.19/v4/reference": "/en/enterprise/2.19/user/graphql/reference",
|
"/en/enterprise/2.19/v4/reference": "/en/enterprise-server@2.19/graphql/reference",
|
||||||
"/en/enterprise/2.19/v4/scalar": "/en/enterprise/2.19/user/graphql/reference/scalars",
|
"/en/enterprise/2.19/v4/scalar": "/en/enterprise-server@2.19/graphql/reference/scalars",
|
||||||
"/en/enterprise/2.19/v4/scalar/boolean": "/en/enterprise/2.19/user/graphql/reference/scalars#boolean",
|
"/en/enterprise/2.19/v4/scalar/boolean": "/en/enterprise-server@2.19/graphql/reference/scalars#boolean",
|
||||||
"/en/enterprise/2.19/v4/scalar/date": "/en/enterprise/2.19/user/graphql/reference/scalars#date",
|
"/en/enterprise/2.19/v4/scalar/date": "/en/enterprise-server@2.19/graphql/reference/scalars#date",
|
||||||
"/en/enterprise/2.19/v4/union": "/en/enterprise/2.19/user/graphql/reference/unions",
|
"/en/enterprise/2.19/v4/union": "/en/enterprise-server@2.19/graphql/reference/unions",
|
||||||
"/en/enterprise/2.19/v4/union/assignee": "/en/enterprise/2.19/user/graphql/reference/unions#assignee",
|
"/en/enterprise/2.19/v4/union/assignee": "/en/enterprise-server@2.19/graphql/reference/unions#assignee",
|
||||||
"/en/enterprise/2.19/v4/union/auditentryactor": "/en/enterprise/2.19/user/graphql/reference/unions#auditentryactor",
|
"/en/enterprise/2.19/v4/union/auditentryactor": "/en/enterprise-server@2.19/graphql/reference/unions#auditentryactor",
|
||||||
"/en/enterprise/2.20/user/v4/enum": "/en/enterprise/2.20/user/graphql/reference/enums",
|
"/en/enterprise/2.20/user/v4/enum": "/en/enterprise-server@2.20/graphql/reference/enums",
|
||||||
"/en/enterprise/2.20/user/v4/enum/auditlogorderfield": "/en/enterprise/2.20/user/graphql/reference/enums#auditlogorderfield",
|
"/en/enterprise/2.20/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.20/graphql/reference/enums#auditlogorderfield",
|
||||||
"/en/enterprise/2.20/user/v4/enum/checkannotationlevel": "/en/enterprise/2.20/user/graphql/reference/enums#checkannotationlevel",
|
"/en/enterprise/2.20/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.20/graphql/reference/enums#checkannotationlevel",
|
||||||
"/en/enterprise/2.20/user/v4/guides": "/en/enterprise/2.20/user/graphql/guides",
|
"/en/enterprise/2.20/user/v4/guides": "/en/enterprise-server@2.20/graphql/guides",
|
||||||
"/en/enterprise/2.20/user/v4/input_object": "/en/enterprise/2.20/user/graphql/reference/input-objects",
|
"/en/enterprise/2.20/user/v4/input_object": "/en/enterprise-server@2.20/graphql/reference/input-objects",
|
||||||
"/en/enterprise/2.20/user/v4/interface": "/en/enterprise/2.20/user/graphql/reference/interfaces",
|
"/en/enterprise/2.20/user/v4/interface": "/en/enterprise-server@2.20/graphql/reference/interfaces",
|
||||||
"/en/enterprise/2.20/user/v4/interface/actor": "/en/enterprise/2.20/user/graphql/reference/interfaces#actor",
|
"/en/enterprise/2.20/user/v4/interface/actor": "/en/enterprise-server@2.20/graphql/reference/interfaces#actor",
|
||||||
"/en/enterprise/2.20/user/v4/interface/assignable": "/en/enterprise/2.20/user/graphql/reference/interfaces#assignable",
|
"/en/enterprise/2.20/user/v4/interface/assignable": "/en/enterprise-server@2.20/graphql/reference/interfaces#assignable",
|
||||||
"/en/enterprise/2.20/user/v4/mutation": "/en/enterprise/2.20/user/graphql/reference/mutations",
|
"/en/enterprise/2.20/user/v4/mutation": "/en/enterprise-server@2.20/graphql/reference/mutations",
|
||||||
"/en/enterprise/2.20/user/v4/object": "/en/enterprise/2.20/user/graphql/reference/objects",
|
"/en/enterprise/2.20/user/v4/object": "/en/enterprise-server@2.20/graphql/reference/objects",
|
||||||
"/en/enterprise/2.20/user/v4/object/actorlocation": "/en/enterprise/2.20/user/graphql/reference/objects#actorlocation",
|
"/en/enterprise/2.20/user/v4/object/actorlocation": "/en/enterprise-server@2.20/graphql/reference/objects#actorlocation",
|
||||||
"/en/enterprise/2.20/user/v4/object/addedtoprojectevent": "/en/enterprise/2.20/user/graphql/reference/objects#addedtoprojectevent",
|
"/en/enterprise/2.20/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.20/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/en/enterprise/2.20/user/v4/previews": "/en/enterprise/2.20/user/graphql/overview/schema-previews",
|
"/en/enterprise/2.20/user/v4/previews": "/en/enterprise-server@2.20/graphql/overview/schema-previews",
|
||||||
"/en/enterprise/2.20/user/v4/public_schema": "/en/enterprise/2.20/user/graphql/overview/public-schema",
|
"/en/enterprise/2.20/user/v4/public_schema": "/en/enterprise-server@2.20/graphql/overview/public-schema",
|
||||||
"/en/enterprise/2.20/user/v4/query": "/en/enterprise/2.20/user/graphql/reference/queries",
|
"/en/enterprise/2.20/user/v4/query": "/en/enterprise-server@2.20/graphql/reference/queries",
|
||||||
"/en/enterprise/2.20/user/v4/reference": "/en/enterprise/2.20/user/graphql/reference",
|
"/en/enterprise/2.20/user/v4/reference": "/en/enterprise-server@2.20/graphql/reference",
|
||||||
"/en/enterprise/2.20/user/v4/scalar": "/en/enterprise/2.20/user/graphql/reference/scalars",
|
"/en/enterprise/2.20/user/v4/scalar": "/en/enterprise-server@2.20/graphql/reference/scalars",
|
||||||
"/en/enterprise/2.20/user/v4/scalar/boolean": "/en/enterprise/2.20/user/graphql/reference/scalars#boolean",
|
"/en/enterprise/2.20/user/v4/scalar/boolean": "/en/enterprise-server@2.20/graphql/reference/scalars#boolean",
|
||||||
"/en/enterprise/2.20/user/v4/scalar/date": "/en/enterprise/2.20/user/graphql/reference/scalars#date",
|
"/en/enterprise/2.20/user/v4/scalar/date": "/en/enterprise-server@2.20/graphql/reference/scalars#date",
|
||||||
"/en/enterprise/2.20/user/v4/union": "/en/enterprise/2.20/user/graphql/reference/unions",
|
"/en/enterprise/2.20/user/v4/union": "/en/enterprise-server@2.20/graphql/reference/unions",
|
||||||
"/en/enterprise/2.20/user/v4/union/assignee": "/en/enterprise/2.20/user/graphql/reference/unions#assignee",
|
"/en/enterprise/2.20/user/v4/union/assignee": "/en/enterprise-server@2.20/graphql/reference/unions#assignee",
|
||||||
"/en/enterprise/2.20/user/v4/union/auditentryactor": "/en/enterprise/2.20/user/graphql/reference/unions#auditentryactor",
|
"/en/enterprise/2.20/user/v4/union/auditentryactor": "/en/enterprise-server@2.20/graphql/reference/unions#auditentryactor",
|
||||||
"/en/enterprise/2.20/v4/enum": "/en/enterprise/2.20/user/graphql/reference/enums",
|
"/en/enterprise/2.20/v4/enum": "/en/enterprise-server@2.20/graphql/reference/enums",
|
||||||
"/en/enterprise/2.20/v4/enum/auditlogorderfield": "/en/enterprise/2.20/user/graphql/reference/enums#auditlogorderfield",
|
"/en/enterprise/2.20/v4/enum/auditlogorderfield": "/en/enterprise-server@2.20/graphql/reference/enums#auditlogorderfield",
|
||||||
"/en/enterprise/2.20/v4/enum/checkannotationlevel": "/en/enterprise/2.20/user/graphql/reference/enums#checkannotationlevel",
|
"/en/enterprise/2.20/v4/enum/checkannotationlevel": "/en/enterprise-server@2.20/graphql/reference/enums#checkannotationlevel",
|
||||||
"/en/enterprise/2.20/v4/guides": "/en/enterprise/2.20/user/graphql/guides",
|
"/en/enterprise/2.20/v4/guides": "/en/enterprise-server@2.20/graphql/guides",
|
||||||
"/en/enterprise/2.20/v4/input_object": "/en/enterprise/2.20/user/graphql/reference/input-objects",
|
"/en/enterprise/2.20/v4/input_object": "/en/enterprise-server@2.20/graphql/reference/input-objects",
|
||||||
"/en/enterprise/2.20/v4/interface": "/en/enterprise/2.20/user/graphql/reference/interfaces",
|
"/en/enterprise/2.20/v4/interface": "/en/enterprise-server@2.20/graphql/reference/interfaces",
|
||||||
"/en/enterprise/2.20/v4/interface/actor": "/en/enterprise/2.20/user/graphql/reference/interfaces#actor",
|
"/en/enterprise/2.20/v4/interface/actor": "/en/enterprise-server@2.20/graphql/reference/interfaces#actor",
|
||||||
"/en/enterprise/2.20/v4/interface/assignable": "/en/enterprise/2.20/user/graphql/reference/interfaces#assignable",
|
"/en/enterprise/2.20/v4/interface/assignable": "/en/enterprise-server@2.20/graphql/reference/interfaces#assignable",
|
||||||
"/en/enterprise/2.20/v4/mutation": "/en/enterprise/2.20/user/graphql/reference/mutations",
|
"/en/enterprise/2.20/v4/mutation": "/en/enterprise-server@2.20/graphql/reference/mutations",
|
||||||
"/en/enterprise/2.20/v4/object": "/en/enterprise/2.20/user/graphql/reference/objects",
|
"/en/enterprise/2.20/v4/object": "/en/enterprise-server@2.20/graphql/reference/objects",
|
||||||
"/en/enterprise/2.20/v4/object/actorlocation": "/en/enterprise/2.20/user/graphql/reference/objects#actorlocation",
|
"/en/enterprise/2.20/v4/object/actorlocation": "/en/enterprise-server@2.20/graphql/reference/objects#actorlocation",
|
||||||
"/en/enterprise/2.20/v4/object/addedtoprojectevent": "/en/enterprise/2.20/user/graphql/reference/objects#addedtoprojectevent",
|
"/en/enterprise/2.20/v4/object/addedtoprojectevent": "/en/enterprise-server@2.20/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/en/enterprise/2.20/v4/previews": "/en/enterprise/2.20/user/graphql/overview/schema-previews",
|
"/en/enterprise/2.20/v4/previews": "/en/enterprise-server@2.20/graphql/overview/schema-previews",
|
||||||
"/en/enterprise/2.20/v4/public_schema": "/en/enterprise/2.20/user/graphql/overview/public-schema",
|
"/en/enterprise/2.20/v4/public_schema": "/en/enterprise-server@2.20/graphql/overview/public-schema",
|
||||||
"/en/enterprise/2.20/v4/query": "/en/enterprise/2.20/user/graphql/reference/queries",
|
"/en/enterprise/2.20/v4/query": "/en/enterprise-server@2.20/graphql/reference/queries",
|
||||||
"/en/enterprise/2.20/v4/reference": "/en/enterprise/2.20/user/graphql/reference",
|
"/en/enterprise/2.20/v4/reference": "/en/enterprise-server@2.20/graphql/reference",
|
||||||
"/en/enterprise/2.20/v4/scalar": "/en/enterprise/2.20/user/graphql/reference/scalars",
|
"/en/enterprise/2.20/v4/scalar": "/en/enterprise-server@2.20/graphql/reference/scalars",
|
||||||
"/en/enterprise/2.20/v4/scalar/boolean": "/en/enterprise/2.20/user/graphql/reference/scalars#boolean",
|
"/en/enterprise/2.20/v4/scalar/boolean": "/en/enterprise-server@2.20/graphql/reference/scalars#boolean",
|
||||||
"/en/enterprise/2.20/v4/scalar/date": "/en/enterprise/2.20/user/graphql/reference/scalars#date",
|
"/en/enterprise/2.20/v4/scalar/date": "/en/enterprise-server@2.20/graphql/reference/scalars#date",
|
||||||
"/en/enterprise/2.20/v4/union": "/en/enterprise/2.20/user/graphql/reference/unions",
|
"/en/enterprise/2.20/v4/union": "/en/enterprise-server@2.20/graphql/reference/unions",
|
||||||
"/en/enterprise/2.20/v4/union/assignee": "/en/enterprise/2.20/user/graphql/reference/unions#assignee",
|
"/en/enterprise/2.20/v4/union/assignee": "/en/enterprise-server@2.20/graphql/reference/unions#assignee",
|
||||||
"/en/enterprise/2.20/v4/union/auditentryactor": "/en/enterprise/2.20/user/graphql/reference/unions#auditentryactor",
|
"/en/enterprise/2.20/v4/union/auditentryactor": "/en/enterprise-server@2.20/graphql/reference/unions#auditentryactor",
|
||||||
"/en/enterprise/2.21/user/v4/enum": "/en/enterprise/2.21/user/graphql/reference/enums",
|
"/en/enterprise/2.21/user/v4/enum": "/en/enterprise-server@2.21/graphql/reference/enums",
|
||||||
"/en/enterprise/2.21/user/v4/enum/auditlogorderfield": "/en/enterprise/2.21/user/graphql/reference/enums#auditlogorderfield",
|
"/en/enterprise/2.21/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.21/graphql/reference/enums#auditlogorderfield",
|
||||||
"/en/enterprise/2.21/user/v4/enum/checkannotationlevel": "/en/enterprise/2.21/user/graphql/reference/enums#checkannotationlevel",
|
"/en/enterprise/2.21/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.21/graphql/reference/enums#checkannotationlevel",
|
||||||
"/en/enterprise/2.21/user/v4/guides": "/en/enterprise/2.21/user/graphql/guides",
|
"/en/enterprise/2.21/user/v4/guides": "/en/enterprise-server@2.21/graphql/guides",
|
||||||
"/en/enterprise/2.21/user/v4/input_object": "/en/enterprise/2.21/user/graphql/reference/input-objects",
|
"/en/enterprise/2.21/user/v4/input_object": "/en/enterprise-server@2.21/graphql/reference/input-objects",
|
||||||
"/en/enterprise/2.21/user/v4/interface": "/en/enterprise/2.21/user/graphql/reference/interfaces",
|
"/en/enterprise/2.21/user/v4/interface": "/en/enterprise-server@2.21/graphql/reference/interfaces",
|
||||||
"/en/enterprise/2.21/user/v4/interface/actor": "/en/enterprise/2.21/user/graphql/reference/interfaces#actor",
|
"/en/enterprise/2.21/user/v4/interface/actor": "/en/enterprise-server@2.21/graphql/reference/interfaces#actor",
|
||||||
"/en/enterprise/2.21/user/v4/interface/assignable": "/en/enterprise/2.21/user/graphql/reference/interfaces#assignable",
|
"/en/enterprise/2.21/user/v4/interface/assignable": "/en/enterprise-server@2.21/graphql/reference/interfaces#assignable",
|
||||||
"/en/enterprise/2.21/user/v4/mutation": "/en/enterprise/2.21/user/graphql/reference/mutations",
|
"/en/enterprise/2.21/user/v4/mutation": "/en/enterprise-server@2.21/graphql/reference/mutations",
|
||||||
"/en/enterprise/2.21/user/v4/object": "/en/enterprise/2.21/user/graphql/reference/objects",
|
"/en/enterprise/2.21/user/v4/object": "/en/enterprise-server@2.21/graphql/reference/objects",
|
||||||
"/en/enterprise/2.21/user/v4/object/actorlocation": "/en/enterprise/2.21/user/graphql/reference/objects#actorlocation",
|
"/en/enterprise/2.21/user/v4/object/actorlocation": "/en/enterprise-server@2.21/graphql/reference/objects#actorlocation",
|
||||||
"/en/enterprise/2.21/user/v4/object/addedtoprojectevent": "/en/enterprise/2.21/user/graphql/reference/objects#addedtoprojectevent",
|
"/en/enterprise/2.21/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.21/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/en/enterprise/2.21/user/v4/previews": "/en/enterprise/2.21/user/graphql/overview/schema-previews",
|
"/en/enterprise/2.21/user/v4/previews": "/en/enterprise-server@2.21/graphql/overview/schema-previews",
|
||||||
"/en/enterprise/2.21/user/v4/public_schema": "/en/enterprise/2.21/user/graphql/overview/public-schema",
|
"/en/enterprise/2.21/user/v4/public_schema": "/en/enterprise-server@2.21/graphql/overview/public-schema",
|
||||||
"/en/enterprise/2.21/user/v4/query": "/en/enterprise/2.21/user/graphql/reference/queries",
|
"/en/enterprise/2.21/user/v4/query": "/en/enterprise-server@2.21/graphql/reference/queries",
|
||||||
"/en/enterprise/2.21/user/v4/reference": "/en/enterprise/2.21/user/graphql/reference",
|
"/en/enterprise/2.21/user/v4/reference": "/en/enterprise-server@2.21/graphql/reference",
|
||||||
"/en/enterprise/2.21/user/v4/scalar": "/en/enterprise/2.21/user/graphql/reference/scalars",
|
"/en/enterprise/2.21/user/v4/scalar": "/en/enterprise-server@2.21/graphql/reference/scalars",
|
||||||
"/en/enterprise/2.21/user/v4/scalar/boolean": "/en/enterprise/2.21/user/graphql/reference/scalars#boolean",
|
"/en/enterprise/2.21/user/v4/scalar/boolean": "/en/enterprise-server@2.21/graphql/reference/scalars#boolean",
|
||||||
"/en/enterprise/2.21/user/v4/scalar/date": "/en/enterprise/2.21/user/graphql/reference/scalars#date",
|
"/en/enterprise/2.21/user/v4/scalar/date": "/en/enterprise-server@2.21/graphql/reference/scalars#date",
|
||||||
"/en/enterprise/2.21/user/v4/union": "/en/enterprise/2.21/user/graphql/reference/unions",
|
"/en/enterprise/2.21/user/v4/union": "/en/enterprise-server@2.21/graphql/reference/unions",
|
||||||
"/en/enterprise/2.21/user/v4/union/assignee": "/en/enterprise/2.21/user/graphql/reference/unions#assignee",
|
"/en/enterprise/2.21/user/v4/union/assignee": "/en/enterprise-server@2.21/graphql/reference/unions#assignee",
|
||||||
"/en/enterprise/2.21/user/v4/union/auditentryactor": "/en/enterprise/2.21/user/graphql/reference/unions#auditentryactor",
|
"/en/enterprise/2.21/user/v4/union/auditentryactor": "/en/enterprise-server@2.21/graphql/reference/unions#auditentryactor",
|
||||||
"/en/enterprise/2.21/v4/enum": "/en/enterprise/2.21/user/graphql/reference/enums",
|
"/en/enterprise/2.21/v4/enum": "/en/enterprise-server@2.21/graphql/reference/enums",
|
||||||
"/en/enterprise/2.21/v4/enum/auditlogorderfield": "/en/enterprise/2.21/user/graphql/reference/enums#auditlogorderfield",
|
"/en/enterprise/2.21/v4/enum/auditlogorderfield": "/en/enterprise-server@2.21/graphql/reference/enums#auditlogorderfield",
|
||||||
"/en/enterprise/2.21/v4/enum/checkannotationlevel": "/en/enterprise/2.21/user/graphql/reference/enums#checkannotationlevel",
|
"/en/enterprise/2.21/v4/enum/checkannotationlevel": "/en/enterprise-server@2.21/graphql/reference/enums#checkannotationlevel",
|
||||||
"/en/enterprise/2.21/v4/guides": "/en/enterprise/2.21/user/graphql/guides",
|
"/en/enterprise/2.21/v4/guides": "/en/enterprise-server@2.21/graphql/guides",
|
||||||
"/en/enterprise/2.21/v4/input_object": "/en/enterprise/2.21/user/graphql/reference/input-objects",
|
"/en/enterprise/2.21/v4/input_object": "/en/enterprise-server@2.21/graphql/reference/input-objects",
|
||||||
"/en/enterprise/2.21/v4/interface": "/en/enterprise/2.21/user/graphql/reference/interfaces",
|
"/en/enterprise/2.21/v4/interface": "/en/enterprise-server@2.21/graphql/reference/interfaces",
|
||||||
"/en/enterprise/2.21/v4/interface/actor": "/en/enterprise/2.21/user/graphql/reference/interfaces#actor",
|
"/en/enterprise/2.21/v4/interface/actor": "/en/enterprise-server@2.21/graphql/reference/interfaces#actor",
|
||||||
"/en/enterprise/2.21/v4/interface/assignable": "/en/enterprise/2.21/user/graphql/reference/interfaces#assignable",
|
"/en/enterprise/2.21/v4/interface/assignable": "/en/enterprise-server@2.21/graphql/reference/interfaces#assignable",
|
||||||
"/en/enterprise/2.21/v4/mutation": "/en/enterprise/2.21/user/graphql/reference/mutations",
|
"/en/enterprise/2.21/v4/mutation": "/en/enterprise-server@2.21/graphql/reference/mutations",
|
||||||
"/en/enterprise/2.21/v4/object": "/en/enterprise/2.21/user/graphql/reference/objects",
|
"/en/enterprise/2.21/v4/object": "/en/enterprise-server@2.21/graphql/reference/objects",
|
||||||
"/en/enterprise/2.21/v4/object/actorlocation": "/en/enterprise/2.21/user/graphql/reference/objects#actorlocation",
|
"/en/enterprise/2.21/v4/object/actorlocation": "/en/enterprise-server@2.21/graphql/reference/objects#actorlocation",
|
||||||
"/en/enterprise/2.21/v4/object/addedtoprojectevent": "/en/enterprise/2.21/user/graphql/reference/objects#addedtoprojectevent",
|
"/en/enterprise/2.21/v4/object/addedtoprojectevent": "/en/enterprise-server@2.21/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/en/enterprise/2.21/v4/previews": "/en/enterprise/2.21/user/graphql/overview/schema-previews",
|
"/en/enterprise/2.21/v4/previews": "/en/enterprise-server@2.21/graphql/overview/schema-previews",
|
||||||
"/en/enterprise/2.21/v4/public_schema": "/en/enterprise/2.21/user/graphql/overview/public-schema",
|
"/en/enterprise/2.21/v4/public_schema": "/en/enterprise-server@2.21/graphql/overview/public-schema",
|
||||||
"/en/enterprise/2.21/v4/query": "/en/enterprise/2.21/user/graphql/reference/queries",
|
"/en/enterprise/2.21/v4/query": "/en/enterprise-server@2.21/graphql/reference/queries",
|
||||||
"/en/enterprise/2.21/v4/reference": "/en/enterprise/2.21/user/graphql/reference",
|
"/en/enterprise/2.21/v4/reference": "/en/enterprise-server@2.21/graphql/reference",
|
||||||
"/en/enterprise/2.21/v4/scalar": "/en/enterprise/2.21/user/graphql/reference/scalars",
|
"/en/enterprise/2.21/v4/scalar": "/en/enterprise-server@2.21/graphql/reference/scalars",
|
||||||
"/en/enterprise/2.21/v4/scalar/boolean": "/en/enterprise/2.21/user/graphql/reference/scalars#boolean",
|
"/en/enterprise/2.21/v4/scalar/boolean": "/en/enterprise-server@2.21/graphql/reference/scalars#boolean",
|
||||||
"/en/enterprise/2.21/v4/scalar/date": "/en/enterprise/2.21/user/graphql/reference/scalars#date",
|
"/en/enterprise/2.21/v4/scalar/date": "/en/enterprise-server@2.21/graphql/reference/scalars#date",
|
||||||
"/en/enterprise/2.21/v4/union": "/en/enterprise/2.21/user/graphql/reference/unions",
|
"/en/enterprise/2.21/v4/union": "/en/enterprise-server@2.21/graphql/reference/unions",
|
||||||
"/en/enterprise/2.21/v4/union/assignee": "/en/enterprise/2.21/user/graphql/reference/unions#assignee",
|
"/en/enterprise/2.21/v4/union/assignee": "/en/enterprise-server@2.21/graphql/reference/unions#assignee",
|
||||||
"/en/enterprise/2.21/v4/union/auditentryactor": "/en/enterprise/2.21/user/graphql/reference/unions#auditentryactor",
|
"/en/enterprise/2.21/v4/union/auditentryactor": "/en/enterprise-server@2.21/graphql/reference/unions#auditentryactor",
|
||||||
"/en/enterprise/v4/enum": "/en/enterprise/user/graphql/reference/enums",
|
"/en/enterprise/v4/enum": "/en/enterprise-server/graphql/reference/enums",
|
||||||
"/en/enterprise/v4/enum/auditlogorderfield": "/en/enterprise/user/graphql/reference/enums#auditlogorderfield",
|
"/en/enterprise/v4/enum/auditlogorderfield": "/en/enterprise-server/graphql/reference/enums#auditlogorderfield",
|
||||||
"/en/enterprise/v4/enum/checkannotationlevel": "/en/enterprise/user/graphql/reference/enums#checkannotationlevel",
|
"/en/enterprise/v4/enum/checkannotationlevel": "/en/enterprise-server/graphql/reference/enums#checkannotationlevel",
|
||||||
"/en/enterprise/v4/guides": "/en/enterprise/user/graphql/guides",
|
"/en/enterprise/v4/guides": "/en/enterprise-server/graphql/guides",
|
||||||
"/en/enterprise/v4/input_object": "/en/enterprise/user/graphql/reference/input-objects",
|
"/en/enterprise/v4/input_object": "/en/enterprise-server/graphql/reference/input-objects",
|
||||||
"/en/enterprise/v4/interface": "/en/enterprise/user/graphql/reference/interfaces",
|
"/en/enterprise/v4/interface": "/en/enterprise-server/graphql/reference/interfaces",
|
||||||
"/en/enterprise/v4/interface/actor": "/en/enterprise/user/graphql/reference/interfaces#actor",
|
"/en/enterprise/v4/interface/actor": "/en/enterprise-server/graphql/reference/interfaces#actor",
|
||||||
"/en/enterprise/v4/interface/assignable": "/en/enterprise/user/graphql/reference/interfaces#assignable",
|
"/en/enterprise/v4/interface/assignable": "/en/enterprise-server/graphql/reference/interfaces#assignable",
|
||||||
"/en/enterprise/v4/mutation": "/en/enterprise/user/graphql/reference/mutations",
|
"/en/enterprise/v4/mutation": "/en/enterprise-server/graphql/reference/mutations",
|
||||||
"/en/enterprise/v4/object": "/en/enterprise/user/graphql/reference/objects",
|
"/en/enterprise/v4/object": "/en/enterprise-server/graphql/reference/objects",
|
||||||
"/en/enterprise/v4/object/actorlocation": "/en/enterprise/user/graphql/reference/objects#actorlocation",
|
"/en/enterprise/v4/object/actorlocation": "/en/enterprise-server/graphql/reference/objects#actorlocation",
|
||||||
"/en/enterprise/v4/object/addedtoprojectevent": "/en/enterprise/user/graphql/reference/objects#addedtoprojectevent",
|
"/en/enterprise/v4/object/addedtoprojectevent": "/en/enterprise-server/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/en/enterprise/v4/previews": "/en/enterprise/user/graphql/overview/schema-previews",
|
"/en/enterprise/v4/previews": "/en/enterprise-server/graphql/overview/schema-previews",
|
||||||
"/en/enterprise/v4/public_schema": "/en/enterprise/user/graphql/overview/public-schema",
|
"/en/enterprise/v4/public_schema": "/en/enterprise-server/graphql/overview/public-schema",
|
||||||
"/en/enterprise/v4/query": "/en/enterprise/user/graphql/reference/queries",
|
"/en/enterprise/v4/query": "/en/enterprise-server/graphql/reference/queries",
|
||||||
"/en/enterprise/v4/reference": "/en/enterprise/user/graphql/reference",
|
"/en/enterprise/v4/reference": "/en/enterprise-server/graphql/reference",
|
||||||
"/en/enterprise/v4/scalar": "/en/enterprise/user/graphql/reference/scalars",
|
"/en/enterprise/v4/scalar": "/en/enterprise-server/graphql/reference/scalars",
|
||||||
"/en/enterprise/v4/scalar/boolean": "/en/enterprise/user/graphql/reference/scalars#boolean",
|
"/en/enterprise/v4/scalar/boolean": "/en/enterprise-server/graphql/reference/scalars#boolean",
|
||||||
"/en/enterprise/v4/scalar/date": "/en/enterprise/user/graphql/reference/scalars#date",
|
"/en/enterprise/v4/scalar/date": "/en/enterprise-server/graphql/reference/scalars#date",
|
||||||
"/en/enterprise/v4/union": "/en/enterprise/user/graphql/reference/unions",
|
"/en/enterprise/v4/union": "/en/enterprise-server/graphql/reference/unions",
|
||||||
"/en/enterprise/v4/union/assignee": "/en/enterprise/user/graphql/reference/unions#assignee",
|
"/en/enterprise/v4/union/assignee": "/en/enterprise-server/graphql/reference/unions#assignee",
|
||||||
"/en/enterprise/v4/union/auditentryactor": "/en/enterprise/user/graphql/reference/unions#auditentryactor",
|
"/en/enterprise/v4/union/auditentryactor": "/en/enterprise-server/graphql/reference/unions#auditentryactor",
|
||||||
"/en/v4/enum": "/en/graphql/reference/enums",
|
"/en/v4/enum": "/en/free-pro-team@latest/graphql/reference/enums",
|
||||||
"/en/v4/enum/auditlogorderfield": "/en/graphql/reference/enums#auditlogorderfield",
|
"/en/v4/enum/auditlogorderfield": "/en/free-pro-team@latest/graphql/reference/enums#auditlogorderfield",
|
||||||
"/en/v4/enum/checkannotationlevel": "/en/graphql/reference/enums#checkannotationlevel",
|
"/en/v4/enum/checkannotationlevel": "/en/free-pro-team@latest/graphql/reference/enums#checkannotationlevel",
|
||||||
"/en/v4/guides": "/en/graphql/guides",
|
"/en/v4/guides": "/en/free-pro-team@latest/graphql/guides",
|
||||||
"/en/v4/input_object": "/en/graphql/reference/input-objects",
|
"/en/v4/input_object": "/en/free-pro-team@latest/graphql/reference/input-objects",
|
||||||
"/en/v4/input_object/acceptenterpriseadministratorinvitationinput": "/en/graphql/reference/input-objects#acceptenterpriseadministratorinvitationinput",
|
"/en/v4/input_object/acceptenterpriseadministratorinvitationinput": "/en/free-pro-team@latest/graphql/reference/input-objects#acceptenterpriseadministratorinvitationinput",
|
||||||
"/en/v4/input_object/accepttopicsuggestioninput": "/en/graphql/reference/input-objects#accepttopicsuggestioninput",
|
"/en/v4/input_object/accepttopicsuggestioninput": "/en/free-pro-team@latest/graphql/reference/input-objects#accepttopicsuggestioninput",
|
||||||
"/en/v4/interface": "/en/graphql/reference/interfaces",
|
"/en/v4/interface": "/en/free-pro-team@latest/graphql/reference/interfaces",
|
||||||
"/en/v4/interface/actor": "/en/graphql/reference/interfaces#actor",
|
"/en/v4/interface/actor": "/en/free-pro-team@latest/graphql/reference/interfaces#actor",
|
||||||
"/en/v4/interface/assignable": "/en/graphql/reference/interfaces#assignable",
|
"/en/v4/interface/assignable": "/en/free-pro-team@latest/graphql/reference/interfaces#assignable",
|
||||||
"/en/v4/mutation": "/en/graphql/reference/mutations",
|
"/en/v4/mutation": "/en/free-pro-team@latest/graphql/reference/mutations",
|
||||||
"/en/v4/mutation/acceptenterpriseadministratorinvitation": "/en/graphql/reference/mutations#acceptenterpriseadministratorinvitation",
|
"/en/v4/mutation/acceptenterpriseadministratorinvitation": "/en/free-pro-team@latest/graphql/reference/mutations#acceptenterpriseadministratorinvitation",
|
||||||
"/en/v4/mutation/accepttopicsuggestion": "/en/graphql/reference/mutations#accepttopicsuggestion",
|
"/en/v4/mutation/accepttopicsuggestion": "/en/free-pro-team@latest/graphql/reference/mutations#accepttopicsuggestion",
|
||||||
"/en/v4/object": "/en/graphql/reference/objects",
|
"/en/v4/object": "/en/free-pro-team@latest/graphql/reference/objects",
|
||||||
"/en/v4/object/actorlocation": "/en/graphql/reference/objects#actorlocation",
|
"/en/v4/object/actorlocation": "/en/free-pro-team@latest/graphql/reference/objects#actorlocation",
|
||||||
"/en/v4/object/addedtoprojectevent": "/en/graphql/reference/objects#addedtoprojectevent",
|
"/en/v4/object/addedtoprojectevent": "/en/free-pro-team@latest/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/en/v4/previews": "/en/graphql/overview/schema-previews",
|
"/en/v4/previews": "/en/free-pro-team@latest/graphql/overview/schema-previews",
|
||||||
"/en/v4/public_schema": "/en/graphql/overview/public-schema",
|
"/en/v4/public_schema": "/en/free-pro-team@latest/graphql/overview/public-schema",
|
||||||
"/en/v4/query": "/en/graphql/reference/queries",
|
"/en/v4/query": "/en/free-pro-team@latest/graphql/reference/queries",
|
||||||
"/en/v4/reference": "/en/graphql/reference",
|
"/en/v4/reference": "/en/free-pro-team@latest/graphql/reference",
|
||||||
"/en/v4/scalar": "/en/graphql/reference/scalars",
|
"/en/v4/scalar": "/en/free-pro-team@latest/graphql/reference/scalars",
|
||||||
"/en/v4/scalar/boolean": "/en/graphql/reference/scalars#boolean",
|
"/en/v4/scalar/boolean": "/en/free-pro-team@latest/graphql/reference/scalars#boolean",
|
||||||
"/en/v4/scalar/date": "/en/graphql/reference/scalars#date",
|
"/en/v4/scalar/date": "/en/free-pro-team@latest/graphql/reference/scalars#date",
|
||||||
"/en/v4/union": "/en/graphql/reference/unions",
|
"/en/v4/union": "/en/free-pro-team@latest/graphql/reference/unions",
|
||||||
"/en/v4/union/assignee": "/en/graphql/reference/unions#assignee",
|
"/en/v4/union/assignee": "/en/free-pro-team@latest/graphql/reference/unions#assignee",
|
||||||
"/en/v4/union/auditentryactor": "/en/graphql/reference/unions#auditentryactor",
|
"/en/v4/union/auditentryactor": "/en/free-pro-team@latest/graphql/reference/unions#auditentryactor",
|
||||||
"/enterprise/2.18/user/v4/enum": "/en/enterprise/2.18/user/graphql/reference/enums",
|
"/enterprise/2.18/user/v4/enum": "/en/enterprise/2.18/user/graphql/reference/enums",
|
||||||
"/enterprise/2.18/user/v4/enum/auditlogorderfield": "/en/enterprise/2.18/user/graphql/reference/enums#auditlogorderfield",
|
"/enterprise/2.18/user/v4/enum/auditlogorderfield": "/en/enterprise/2.18/user/graphql/reference/enums#auditlogorderfield",
|
||||||
"/enterprise/2.18/user/v4/enum/checkannotationlevel": "/en/enterprise/2.18/user/graphql/reference/enums#checkannotationlevel",
|
"/enterprise/2.18/user/v4/enum/checkannotationlevel": "/en/enterprise/2.18/user/graphql/reference/enums#checkannotationlevel",
|
||||||
@@ -263,184 +263,184 @@
|
|||||||
"/enterprise/2.18/v4/scalar/date": "/en/enterprise/2.18/user/graphql/reference/scalars#date",
|
"/enterprise/2.18/v4/scalar/date": "/en/enterprise/2.18/user/graphql/reference/scalars#date",
|
||||||
"/enterprise/2.18/v4/union": "/en/enterprise/2.18/user/graphql/reference/unions",
|
"/enterprise/2.18/v4/union": "/en/enterprise/2.18/user/graphql/reference/unions",
|
||||||
"/enterprise/2.18/v4/union/auditentryactor": "/en/enterprise/2.18/user/graphql/reference/unions#auditentryactor",
|
"/enterprise/2.18/v4/union/auditentryactor": "/en/enterprise/2.18/user/graphql/reference/unions#auditentryactor",
|
||||||
"/enterprise/2.19/user/v4/enum": "/en/enterprise/2.19/user/graphql/reference/enums",
|
"/enterprise/2.19/user/v4/enum": "/en/enterprise-server@2.19/graphql/reference/enums",
|
||||||
"/enterprise/2.19/user/v4/enum/auditlogorderfield": "/en/enterprise/2.19/user/graphql/reference/enums#auditlogorderfield",
|
"/enterprise/2.19/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.19/graphql/reference/enums#auditlogorderfield",
|
||||||
"/enterprise/2.19/user/v4/enum/checkannotationlevel": "/en/enterprise/2.19/user/graphql/reference/enums#checkannotationlevel",
|
"/enterprise/2.19/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.19/graphql/reference/enums#checkannotationlevel",
|
||||||
"/enterprise/2.19/user/v4/guides": "/en/enterprise/2.19/user/graphql/guides",
|
"/enterprise/2.19/user/v4/guides": "/en/enterprise-server@2.19/graphql/guides",
|
||||||
"/enterprise/2.19/user/v4/input_object": "/en/enterprise/2.19/user/graphql/reference/input-objects",
|
"/enterprise/2.19/user/v4/input_object": "/en/enterprise-server@2.19/graphql/reference/input-objects",
|
||||||
"/enterprise/2.19/user/v4/interface": "/en/enterprise/2.19/user/graphql/reference/interfaces",
|
"/enterprise/2.19/user/v4/interface": "/en/enterprise-server@2.19/graphql/reference/interfaces",
|
||||||
"/enterprise/2.19/user/v4/interface/actor": "/en/enterprise/2.19/user/graphql/reference/interfaces#actor",
|
"/enterprise/2.19/user/v4/interface/actor": "/en/enterprise-server@2.19/graphql/reference/interfaces#actor",
|
||||||
"/enterprise/2.19/user/v4/interface/assignable": "/en/enterprise/2.19/user/graphql/reference/interfaces#assignable",
|
"/enterprise/2.19/user/v4/interface/assignable": "/en/enterprise-server@2.19/graphql/reference/interfaces#assignable",
|
||||||
"/enterprise/2.19/user/v4/mutation": "/en/enterprise/2.19/user/graphql/reference/mutations",
|
"/enterprise/2.19/user/v4/mutation": "/en/enterprise-server@2.19/graphql/reference/mutations",
|
||||||
"/enterprise/2.19/user/v4/object": "/en/enterprise/2.19/user/graphql/reference/objects",
|
"/enterprise/2.19/user/v4/object": "/en/enterprise-server@2.19/graphql/reference/objects",
|
||||||
"/enterprise/2.19/user/v4/object/actorlocation": "/en/enterprise/2.19/user/graphql/reference/objects#actorlocation",
|
"/enterprise/2.19/user/v4/object/actorlocation": "/en/enterprise-server@2.19/graphql/reference/objects#actorlocation",
|
||||||
"/enterprise/2.19/user/v4/object/addedtoprojectevent": "/en/enterprise/2.19/user/graphql/reference/objects#addedtoprojectevent",
|
"/enterprise/2.19/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.19/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/enterprise/2.19/user/v4/previews": "/en/enterprise/2.19/user/graphql/overview/schema-previews",
|
"/enterprise/2.19/user/v4/previews": "/en/enterprise-server@2.19/graphql/overview/schema-previews",
|
||||||
"/enterprise/2.19/user/v4/public_schema": "/en/enterprise/2.19/user/graphql/overview/public-schema",
|
"/enterprise/2.19/user/v4/public_schema": "/en/enterprise-server@2.19/graphql/overview/public-schema",
|
||||||
"/enterprise/2.19/user/v4/query": "/en/enterprise/2.19/user/graphql/reference/queries",
|
"/enterprise/2.19/user/v4/query": "/en/enterprise-server@2.19/graphql/reference/queries",
|
||||||
"/enterprise/2.19/user/v4/reference": "/en/enterprise/2.19/user/graphql/reference",
|
"/enterprise/2.19/user/v4/reference": "/en/enterprise-server@2.19/graphql/reference",
|
||||||
"/enterprise/2.19/user/v4/scalar": "/en/enterprise/2.19/user/graphql/reference/scalars",
|
"/enterprise/2.19/user/v4/scalar": "/en/enterprise-server@2.19/graphql/reference/scalars",
|
||||||
"/enterprise/2.19/user/v4/scalar/boolean": "/en/enterprise/2.19/user/graphql/reference/scalars#boolean",
|
"/enterprise/2.19/user/v4/scalar/boolean": "/en/enterprise-server@2.19/graphql/reference/scalars#boolean",
|
||||||
"/enterprise/2.19/user/v4/scalar/date": "/en/enterprise/2.19/user/graphql/reference/scalars#date",
|
"/enterprise/2.19/user/v4/scalar/date": "/en/enterprise-server@2.19/graphql/reference/scalars#date",
|
||||||
"/enterprise/2.19/user/v4/union": "/en/enterprise/2.19/user/graphql/reference/unions",
|
"/enterprise/2.19/user/v4/union": "/en/enterprise-server@2.19/graphql/reference/unions",
|
||||||
"/enterprise/2.19/user/v4/union/assignee": "/en/enterprise/2.19/user/graphql/reference/unions#assignee",
|
"/enterprise/2.19/user/v4/union/assignee": "/en/enterprise-server@2.19/graphql/reference/unions#assignee",
|
||||||
"/enterprise/2.19/user/v4/union/auditentryactor": "/en/enterprise/2.19/user/graphql/reference/unions#auditentryactor",
|
"/enterprise/2.19/user/v4/union/auditentryactor": "/en/enterprise-server@2.19/graphql/reference/unions#auditentryactor",
|
||||||
"/enterprise/2.19/v4/enum": "/en/enterprise/2.19/user/graphql/reference/enums",
|
"/enterprise/2.19/v4/enum": "/en/enterprise-server@2.19/graphql/reference/enums",
|
||||||
"/enterprise/2.19/v4/enum/auditlogorderfield": "/en/enterprise/2.19/user/graphql/reference/enums#auditlogorderfield",
|
"/enterprise/2.19/v4/enum/auditlogorderfield": "/en/enterprise-server@2.19/graphql/reference/enums#auditlogorderfield",
|
||||||
"/enterprise/2.19/v4/enum/checkannotationlevel": "/en/enterprise/2.19/user/graphql/reference/enums#checkannotationlevel",
|
"/enterprise/2.19/v4/enum/checkannotationlevel": "/en/enterprise-server@2.19/graphql/reference/enums#checkannotationlevel",
|
||||||
"/enterprise/2.19/v4/guides": "/en/enterprise/2.19/user/graphql/guides",
|
"/enterprise/2.19/v4/guides": "/en/enterprise-server@2.19/graphql/guides",
|
||||||
"/enterprise/2.19/v4/input_object": "/en/enterprise/2.19/user/graphql/reference/input-objects",
|
"/enterprise/2.19/v4/input_object": "/en/enterprise-server@2.19/graphql/reference/input-objects",
|
||||||
"/enterprise/2.19/v4/interface": "/en/enterprise/2.19/user/graphql/reference/interfaces",
|
"/enterprise/2.19/v4/interface": "/en/enterprise-server@2.19/graphql/reference/interfaces",
|
||||||
"/enterprise/2.19/v4/interface/actor": "/en/enterprise/2.19/user/graphql/reference/interfaces#actor",
|
"/enterprise/2.19/v4/interface/actor": "/en/enterprise-server@2.19/graphql/reference/interfaces#actor",
|
||||||
"/enterprise/2.19/v4/interface/assignable": "/en/enterprise/2.19/user/graphql/reference/interfaces#assignable",
|
"/enterprise/2.19/v4/interface/assignable": "/en/enterprise-server@2.19/graphql/reference/interfaces#assignable",
|
||||||
"/enterprise/2.19/v4/mutation": "/en/enterprise/2.19/user/graphql/reference/mutations",
|
"/enterprise/2.19/v4/mutation": "/en/enterprise-server@2.19/graphql/reference/mutations",
|
||||||
"/enterprise/2.19/v4/object": "/en/enterprise/2.19/user/graphql/reference/objects",
|
"/enterprise/2.19/v4/object": "/en/enterprise-server@2.19/graphql/reference/objects",
|
||||||
"/enterprise/2.19/v4/object/actorlocation": "/en/enterprise/2.19/user/graphql/reference/objects#actorlocation",
|
"/enterprise/2.19/v4/object/actorlocation": "/en/enterprise-server@2.19/graphql/reference/objects#actorlocation",
|
||||||
"/enterprise/2.19/v4/object/addedtoprojectevent": "/en/enterprise/2.19/user/graphql/reference/objects#addedtoprojectevent",
|
"/enterprise/2.19/v4/object/addedtoprojectevent": "/en/enterprise-server@2.19/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/enterprise/2.19/v4/previews": "/en/enterprise/2.19/user/graphql/overview/schema-previews",
|
"/enterprise/2.19/v4/previews": "/en/enterprise-server@2.19/graphql/overview/schema-previews",
|
||||||
"/enterprise/2.19/v4/public_schema": "/en/enterprise/2.19/user/graphql/overview/public-schema",
|
"/enterprise/2.19/v4/public_schema": "/en/enterprise-server@2.19/graphql/overview/public-schema",
|
||||||
"/enterprise/2.19/v4/query": "/en/enterprise/2.19/user/graphql/reference/queries",
|
"/enterprise/2.19/v4/query": "/en/enterprise-server@2.19/graphql/reference/queries",
|
||||||
"/enterprise/2.19/v4/reference": "/en/enterprise/2.19/user/graphql/reference",
|
"/enterprise/2.19/v4/reference": "/en/enterprise-server@2.19/graphql/reference",
|
||||||
"/enterprise/2.19/v4/scalar": "/en/enterprise/2.19/user/graphql/reference/scalars",
|
"/enterprise/2.19/v4/scalar": "/en/enterprise-server@2.19/graphql/reference/scalars",
|
||||||
"/enterprise/2.19/v4/scalar/boolean": "/en/enterprise/2.19/user/graphql/reference/scalars#boolean",
|
"/enterprise/2.19/v4/scalar/boolean": "/en/enterprise-server@2.19/graphql/reference/scalars#boolean",
|
||||||
"/enterprise/2.19/v4/scalar/date": "/en/enterprise/2.19/user/graphql/reference/scalars#date",
|
"/enterprise/2.19/v4/scalar/date": "/en/enterprise-server@2.19/graphql/reference/scalars#date",
|
||||||
"/enterprise/2.19/v4/union": "/en/enterprise/2.19/user/graphql/reference/unions",
|
"/enterprise/2.19/v4/union": "/en/enterprise-server@2.19/graphql/reference/unions",
|
||||||
"/enterprise/2.19/v4/union/assignee": "/en/enterprise/2.19/user/graphql/reference/unions#assignee",
|
"/enterprise/2.19/v4/union/assignee": "/en/enterprise-server@2.19/graphql/reference/unions#assignee",
|
||||||
"/enterprise/2.19/v4/union/auditentryactor": "/en/enterprise/2.19/user/graphql/reference/unions#auditentryactor",
|
"/enterprise/2.19/v4/union/auditentryactor": "/en/enterprise-server@2.19/graphql/reference/unions#auditentryactor",
|
||||||
"/enterprise/2.20/user/v4/enum": "/en/enterprise/2.20/user/graphql/reference/enums",
|
"/enterprise/2.20/user/v4/enum": "/en/enterprise-server@2.20/graphql/reference/enums",
|
||||||
"/enterprise/2.20/user/v4/enum/auditlogorderfield": "/en/enterprise/2.20/user/graphql/reference/enums#auditlogorderfield",
|
"/enterprise/2.20/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.20/graphql/reference/enums#auditlogorderfield",
|
||||||
"/enterprise/2.20/user/v4/enum/checkannotationlevel": "/en/enterprise/2.20/user/graphql/reference/enums#checkannotationlevel",
|
"/enterprise/2.20/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.20/graphql/reference/enums#checkannotationlevel",
|
||||||
"/enterprise/2.20/user/v4/guides": "/en/enterprise/2.20/user/graphql/guides",
|
"/enterprise/2.20/user/v4/guides": "/en/enterprise-server@2.20/graphql/guides",
|
||||||
"/enterprise/2.20/user/v4/input_object": "/en/enterprise/2.20/user/graphql/reference/input-objects",
|
"/enterprise/2.20/user/v4/input_object": "/en/enterprise-server@2.20/graphql/reference/input-objects",
|
||||||
"/enterprise/2.20/user/v4/interface": "/en/enterprise/2.20/user/graphql/reference/interfaces",
|
"/enterprise/2.20/user/v4/interface": "/en/enterprise-server@2.20/graphql/reference/interfaces",
|
||||||
"/enterprise/2.20/user/v4/interface/actor": "/en/enterprise/2.20/user/graphql/reference/interfaces#actor",
|
"/enterprise/2.20/user/v4/interface/actor": "/en/enterprise-server@2.20/graphql/reference/interfaces#actor",
|
||||||
"/enterprise/2.20/user/v4/interface/assignable": "/en/enterprise/2.20/user/graphql/reference/interfaces#assignable",
|
"/enterprise/2.20/user/v4/interface/assignable": "/en/enterprise-server@2.20/graphql/reference/interfaces#assignable",
|
||||||
"/enterprise/2.20/user/v4/mutation": "/en/enterprise/2.20/user/graphql/reference/mutations",
|
"/enterprise/2.20/user/v4/mutation": "/en/enterprise-server@2.20/graphql/reference/mutations",
|
||||||
"/enterprise/2.20/user/v4/object": "/en/enterprise/2.20/user/graphql/reference/objects",
|
"/enterprise/2.20/user/v4/object": "/en/enterprise-server@2.20/graphql/reference/objects",
|
||||||
"/enterprise/2.20/user/v4/object/actorlocation": "/en/enterprise/2.20/user/graphql/reference/objects#actorlocation",
|
"/enterprise/2.20/user/v4/object/actorlocation": "/en/enterprise-server@2.20/graphql/reference/objects#actorlocation",
|
||||||
"/enterprise/2.20/user/v4/object/addedtoprojectevent": "/en/enterprise/2.20/user/graphql/reference/objects#addedtoprojectevent",
|
"/enterprise/2.20/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.20/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/enterprise/2.20/user/v4/previews": "/en/enterprise/2.20/user/graphql/overview/schema-previews",
|
"/enterprise/2.20/user/v4/previews": "/en/enterprise-server@2.20/graphql/overview/schema-previews",
|
||||||
"/enterprise/2.20/user/v4/public_schema": "/en/enterprise/2.20/user/graphql/overview/public-schema",
|
"/enterprise/2.20/user/v4/public_schema": "/en/enterprise-server@2.20/graphql/overview/public-schema",
|
||||||
"/enterprise/2.20/user/v4/query": "/en/enterprise/2.20/user/graphql/reference/queries",
|
"/enterprise/2.20/user/v4/query": "/en/enterprise-server@2.20/graphql/reference/queries",
|
||||||
"/enterprise/2.20/user/v4/reference": "/en/enterprise/2.20/user/graphql/reference",
|
"/enterprise/2.20/user/v4/reference": "/en/enterprise-server@2.20/graphql/reference",
|
||||||
"/enterprise/2.20/user/v4/scalar": "/en/enterprise/2.20/user/graphql/reference/scalars",
|
"/enterprise/2.20/user/v4/scalar": "/en/enterprise-server@2.20/graphql/reference/scalars",
|
||||||
"/enterprise/2.20/user/v4/scalar/boolean": "/en/enterprise/2.20/user/graphql/reference/scalars#boolean",
|
"/enterprise/2.20/user/v4/scalar/boolean": "/en/enterprise-server@2.20/graphql/reference/scalars#boolean",
|
||||||
"/enterprise/2.20/user/v4/scalar/date": "/en/enterprise/2.20/user/graphql/reference/scalars#date",
|
"/enterprise/2.20/user/v4/scalar/date": "/en/enterprise-server@2.20/graphql/reference/scalars#date",
|
||||||
"/enterprise/2.20/user/v4/union": "/en/enterprise/2.20/user/graphql/reference/unions",
|
"/enterprise/2.20/user/v4/union": "/en/enterprise-server@2.20/graphql/reference/unions",
|
||||||
"/enterprise/2.20/user/v4/union/assignee": "/en/enterprise/2.20/user/graphql/reference/unions#assignee",
|
"/enterprise/2.20/user/v4/union/assignee": "/en/enterprise-server@2.20/graphql/reference/unions#assignee",
|
||||||
"/enterprise/2.20/user/v4/union/auditentryactor": "/en/enterprise/2.20/user/graphql/reference/unions#auditentryactor",
|
"/enterprise/2.20/user/v4/union/auditentryactor": "/en/enterprise-server@2.20/graphql/reference/unions#auditentryactor",
|
||||||
"/enterprise/2.20/v4/enum": "/en/enterprise/2.20/user/graphql/reference/enums",
|
"/enterprise/2.20/v4/enum": "/en/enterprise-server@2.20/graphql/reference/enums",
|
||||||
"/enterprise/2.20/v4/enum/auditlogorderfield": "/en/enterprise/2.20/user/graphql/reference/enums#auditlogorderfield",
|
"/enterprise/2.20/v4/enum/auditlogorderfield": "/en/enterprise-server@2.20/graphql/reference/enums#auditlogorderfield",
|
||||||
"/enterprise/2.20/v4/enum/checkannotationlevel": "/en/enterprise/2.20/user/graphql/reference/enums#checkannotationlevel",
|
"/enterprise/2.20/v4/enum/checkannotationlevel": "/en/enterprise-server@2.20/graphql/reference/enums#checkannotationlevel",
|
||||||
"/enterprise/2.20/v4/guides": "/en/enterprise/2.20/user/graphql/guides",
|
"/enterprise/2.20/v4/guides": "/en/enterprise-server@2.20/graphql/guides",
|
||||||
"/enterprise/2.20/v4/input_object": "/en/enterprise/2.20/user/graphql/reference/input-objects",
|
"/enterprise/2.20/v4/input_object": "/en/enterprise-server@2.20/graphql/reference/input-objects",
|
||||||
"/enterprise/2.20/v4/interface": "/en/enterprise/2.20/user/graphql/reference/interfaces",
|
"/enterprise/2.20/v4/interface": "/en/enterprise-server@2.20/graphql/reference/interfaces",
|
||||||
"/enterprise/2.20/v4/interface/actor": "/en/enterprise/2.20/user/graphql/reference/interfaces#actor",
|
"/enterprise/2.20/v4/interface/actor": "/en/enterprise-server@2.20/graphql/reference/interfaces#actor",
|
||||||
"/enterprise/2.20/v4/interface/assignable": "/en/enterprise/2.20/user/graphql/reference/interfaces#assignable",
|
"/enterprise/2.20/v4/interface/assignable": "/en/enterprise-server@2.20/graphql/reference/interfaces#assignable",
|
||||||
"/enterprise/2.20/v4/mutation": "/en/enterprise/2.20/user/graphql/reference/mutations",
|
"/enterprise/2.20/v4/mutation": "/en/enterprise-server@2.20/graphql/reference/mutations",
|
||||||
"/enterprise/2.20/v4/object": "/en/enterprise/2.20/user/graphql/reference/objects",
|
"/enterprise/2.20/v4/object": "/en/enterprise-server@2.20/graphql/reference/objects",
|
||||||
"/enterprise/2.20/v4/object/actorlocation": "/en/enterprise/2.20/user/graphql/reference/objects#actorlocation",
|
"/enterprise/2.20/v4/object/actorlocation": "/en/enterprise-server@2.20/graphql/reference/objects#actorlocation",
|
||||||
"/enterprise/2.20/v4/object/addedtoprojectevent": "/en/enterprise/2.20/user/graphql/reference/objects#addedtoprojectevent",
|
"/enterprise/2.20/v4/object/addedtoprojectevent": "/en/enterprise-server@2.20/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/enterprise/2.20/v4/previews": "/en/enterprise/2.20/user/graphql/overview/schema-previews",
|
"/enterprise/2.20/v4/previews": "/en/enterprise-server@2.20/graphql/overview/schema-previews",
|
||||||
"/enterprise/2.20/v4/public_schema": "/en/enterprise/2.20/user/graphql/overview/public-schema",
|
"/enterprise/2.20/v4/public_schema": "/en/enterprise-server@2.20/graphql/overview/public-schema",
|
||||||
"/enterprise/2.20/v4/query": "/en/enterprise/2.20/user/graphql/reference/queries",
|
"/enterprise/2.20/v4/query": "/en/enterprise-server@2.20/graphql/reference/queries",
|
||||||
"/enterprise/2.20/v4/reference": "/en/enterprise/2.20/user/graphql/reference",
|
"/enterprise/2.20/v4/reference": "/en/enterprise-server@2.20/graphql/reference",
|
||||||
"/enterprise/2.20/v4/scalar": "/en/enterprise/2.20/user/graphql/reference/scalars",
|
"/enterprise/2.20/v4/scalar": "/en/enterprise-server@2.20/graphql/reference/scalars",
|
||||||
"/enterprise/2.20/v4/scalar/boolean": "/en/enterprise/2.20/user/graphql/reference/scalars#boolean",
|
"/enterprise/2.20/v4/scalar/boolean": "/en/enterprise-server@2.20/graphql/reference/scalars#boolean",
|
||||||
"/enterprise/2.20/v4/scalar/date": "/en/enterprise/2.20/user/graphql/reference/scalars#date",
|
"/enterprise/2.20/v4/scalar/date": "/en/enterprise-server@2.20/graphql/reference/scalars#date",
|
||||||
"/enterprise/2.20/v4/union": "/en/enterprise/2.20/user/graphql/reference/unions",
|
"/enterprise/2.20/v4/union": "/en/enterprise-server@2.20/graphql/reference/unions",
|
||||||
"/enterprise/2.20/v4/union/assignee": "/en/enterprise/2.20/user/graphql/reference/unions#assignee",
|
"/enterprise/2.20/v4/union/assignee": "/en/enterprise-server@2.20/graphql/reference/unions#assignee",
|
||||||
"/enterprise/2.20/v4/union/auditentryactor": "/en/enterprise/2.20/user/graphql/reference/unions#auditentryactor",
|
"/enterprise/2.20/v4/union/auditentryactor": "/en/enterprise-server@2.20/graphql/reference/unions#auditentryactor",
|
||||||
"/enterprise/2.21/user/v4/enum": "/en/enterprise/2.21/user/graphql/reference/enums",
|
"/enterprise/2.21/user/v4/enum": "/en/enterprise-server@2.21/graphql/reference/enums",
|
||||||
"/enterprise/2.21/user/v4/enum/auditlogorderfield": "/en/enterprise/2.21/user/graphql/reference/enums#auditlogorderfield",
|
"/enterprise/2.21/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.21/graphql/reference/enums#auditlogorderfield",
|
||||||
"/enterprise/2.21/user/v4/enum/checkannotationlevel": "/en/enterprise/2.21/user/graphql/reference/enums#checkannotationlevel",
|
"/enterprise/2.21/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.21/graphql/reference/enums#checkannotationlevel",
|
||||||
"/enterprise/2.21/user/v4/guides": "/en/enterprise/2.21/user/graphql/guides",
|
"/enterprise/2.21/user/v4/guides": "/en/enterprise-server@2.21/graphql/guides",
|
||||||
"/enterprise/2.21/user/v4/input_object": "/en/enterprise/2.21/user/graphql/reference/input-objects",
|
"/enterprise/2.21/user/v4/input_object": "/en/enterprise-server@2.21/graphql/reference/input-objects",
|
||||||
"/enterprise/2.21/user/v4/interface": "/en/enterprise/2.21/user/graphql/reference/interfaces",
|
"/enterprise/2.21/user/v4/interface": "/en/enterprise-server@2.21/graphql/reference/interfaces",
|
||||||
"/enterprise/2.21/user/v4/interface/actor": "/en/enterprise/2.21/user/graphql/reference/interfaces#actor",
|
"/enterprise/2.21/user/v4/interface/actor": "/en/enterprise-server@2.21/graphql/reference/interfaces#actor",
|
||||||
"/enterprise/2.21/user/v4/interface/assignable": "/en/enterprise/2.21/user/graphql/reference/interfaces#assignable",
|
"/enterprise/2.21/user/v4/interface/assignable": "/en/enterprise-server@2.21/graphql/reference/interfaces#assignable",
|
||||||
"/enterprise/2.21/user/v4/mutation": "/en/enterprise/2.21/user/graphql/reference/mutations",
|
"/enterprise/2.21/user/v4/mutation": "/en/enterprise-server@2.21/graphql/reference/mutations",
|
||||||
"/enterprise/2.21/user/v4/object": "/en/enterprise/2.21/user/graphql/reference/objects",
|
"/enterprise/2.21/user/v4/object": "/en/enterprise-server@2.21/graphql/reference/objects",
|
||||||
"/enterprise/2.21/user/v4/object/actorlocation": "/en/enterprise/2.21/user/graphql/reference/objects#actorlocation",
|
"/enterprise/2.21/user/v4/object/actorlocation": "/en/enterprise-server@2.21/graphql/reference/objects#actorlocation",
|
||||||
"/enterprise/2.21/user/v4/object/addedtoprojectevent": "/en/enterprise/2.21/user/graphql/reference/objects#addedtoprojectevent",
|
"/enterprise/2.21/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.21/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/enterprise/2.21/user/v4/previews": "/en/enterprise/2.21/user/graphql/overview/schema-previews",
|
"/enterprise/2.21/user/v4/previews": "/en/enterprise-server@2.21/graphql/overview/schema-previews",
|
||||||
"/enterprise/2.21/user/v4/public_schema": "/en/enterprise/2.21/user/graphql/overview/public-schema",
|
"/enterprise/2.21/user/v4/public_schema": "/en/enterprise-server@2.21/graphql/overview/public-schema",
|
||||||
"/enterprise/2.21/user/v4/query": "/en/enterprise/2.21/user/graphql/reference/queries",
|
"/enterprise/2.21/user/v4/query": "/en/enterprise-server@2.21/graphql/reference/queries",
|
||||||
"/enterprise/2.21/user/v4/reference": "/en/enterprise/2.21/user/graphql/reference",
|
"/enterprise/2.21/user/v4/reference": "/en/enterprise-server@2.21/graphql/reference",
|
||||||
"/enterprise/2.21/user/v4/scalar": "/en/enterprise/2.21/user/graphql/reference/scalars",
|
"/enterprise/2.21/user/v4/scalar": "/en/enterprise-server@2.21/graphql/reference/scalars",
|
||||||
"/enterprise/2.21/user/v4/scalar/boolean": "/en/enterprise/2.21/user/graphql/reference/scalars#boolean",
|
"/enterprise/2.21/user/v4/scalar/boolean": "/en/enterprise-server@2.21/graphql/reference/scalars#boolean",
|
||||||
"/enterprise/2.21/user/v4/scalar/date": "/en/enterprise/2.21/user/graphql/reference/scalars#date",
|
"/enterprise/2.21/user/v4/scalar/date": "/en/enterprise-server@2.21/graphql/reference/scalars#date",
|
||||||
"/enterprise/2.21/user/v4/union": "/en/enterprise/2.21/user/graphql/reference/unions",
|
"/enterprise/2.21/user/v4/union": "/en/enterprise-server@2.21/graphql/reference/unions",
|
||||||
"/enterprise/2.21/user/v4/union/assignee": "/en/enterprise/2.21/user/graphql/reference/unions#assignee",
|
"/enterprise/2.21/user/v4/union/assignee": "/en/enterprise-server@2.21/graphql/reference/unions#assignee",
|
||||||
"/enterprise/2.21/user/v4/union/auditentryactor": "/en/enterprise/2.21/user/graphql/reference/unions#auditentryactor",
|
"/enterprise/2.21/user/v4/union/auditentryactor": "/en/enterprise-server@2.21/graphql/reference/unions#auditentryactor",
|
||||||
"/enterprise/2.21/v4/enum": "/en/enterprise/2.21/user/graphql/reference/enums",
|
"/enterprise/2.21/v4/enum": "/en/enterprise-server@2.21/graphql/reference/enums",
|
||||||
"/enterprise/2.21/v4/enum/auditlogorderfield": "/en/enterprise/2.21/user/graphql/reference/enums#auditlogorderfield",
|
"/enterprise/2.21/v4/enum/auditlogorderfield": "/en/enterprise-server@2.21/graphql/reference/enums#auditlogorderfield",
|
||||||
"/enterprise/2.21/v4/enum/checkannotationlevel": "/en/enterprise/2.21/user/graphql/reference/enums#checkannotationlevel",
|
"/enterprise/2.21/v4/enum/checkannotationlevel": "/en/enterprise-server@2.21/graphql/reference/enums#checkannotationlevel",
|
||||||
"/enterprise/2.21/v4/guides": "/en/enterprise/2.21/user/graphql/guides",
|
"/enterprise/2.21/v4/guides": "/en/enterprise-server@2.21/graphql/guides",
|
||||||
"/enterprise/2.21/v4/input_object": "/en/enterprise/2.21/user/graphql/reference/input-objects",
|
"/enterprise/2.21/v4/input_object": "/en/enterprise-server@2.21/graphql/reference/input-objects",
|
||||||
"/enterprise/2.21/v4/interface": "/en/enterprise/2.21/user/graphql/reference/interfaces",
|
"/enterprise/2.21/v4/interface": "/en/enterprise-server@2.21/graphql/reference/interfaces",
|
||||||
"/enterprise/2.21/v4/interface/actor": "/en/enterprise/2.21/user/graphql/reference/interfaces#actor",
|
"/enterprise/2.21/v4/interface/actor": "/en/enterprise-server@2.21/graphql/reference/interfaces#actor",
|
||||||
"/enterprise/2.21/v4/interface/assignable": "/en/enterprise/2.21/user/graphql/reference/interfaces#assignable",
|
"/enterprise/2.21/v4/interface/assignable": "/en/enterprise-server@2.21/graphql/reference/interfaces#assignable",
|
||||||
"/enterprise/2.21/v4/mutation": "/en/enterprise/2.21/user/graphql/reference/mutations",
|
"/enterprise/2.21/v4/mutation": "/en/enterprise-server@2.21/graphql/reference/mutations",
|
||||||
"/enterprise/2.21/v4/object": "/en/enterprise/2.21/user/graphql/reference/objects",
|
"/enterprise/2.21/v4/object": "/en/enterprise-server@2.21/graphql/reference/objects",
|
||||||
"/enterprise/2.21/v4/object/actorlocation": "/en/enterprise/2.21/user/graphql/reference/objects#actorlocation",
|
"/enterprise/2.21/v4/object/actorlocation": "/en/enterprise-server@2.21/graphql/reference/objects#actorlocation",
|
||||||
"/enterprise/2.21/v4/object/addedtoprojectevent": "/en/enterprise/2.21/user/graphql/reference/objects#addedtoprojectevent",
|
"/enterprise/2.21/v4/object/addedtoprojectevent": "/en/enterprise-server@2.21/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/enterprise/2.21/v4/previews": "/en/enterprise/2.21/user/graphql/overview/schema-previews",
|
"/enterprise/2.21/v4/previews": "/en/enterprise-server@2.21/graphql/overview/schema-previews",
|
||||||
"/enterprise/2.21/v4/public_schema": "/en/enterprise/2.21/user/graphql/overview/public-schema",
|
"/enterprise/2.21/v4/public_schema": "/en/enterprise-server@2.21/graphql/overview/public-schema",
|
||||||
"/enterprise/2.21/v4/query": "/en/enterprise/2.21/user/graphql/reference/queries",
|
"/enterprise/2.21/v4/query": "/en/enterprise-server@2.21/graphql/reference/queries",
|
||||||
"/enterprise/2.21/v4/reference": "/en/enterprise/2.21/user/graphql/reference",
|
"/enterprise/2.21/v4/reference": "/en/enterprise-server@2.21/graphql/reference",
|
||||||
"/enterprise/2.21/v4/scalar": "/en/enterprise/2.21/user/graphql/reference/scalars",
|
"/enterprise/2.21/v4/scalar": "/en/enterprise-server@2.21/graphql/reference/scalars",
|
||||||
"/enterprise/2.21/v4/scalar/boolean": "/en/enterprise/2.21/user/graphql/reference/scalars#boolean",
|
"/enterprise/2.21/v4/scalar/boolean": "/en/enterprise-server@2.21/graphql/reference/scalars#boolean",
|
||||||
"/enterprise/2.21/v4/scalar/date": "/en/enterprise/2.21/user/graphql/reference/scalars#date",
|
"/enterprise/2.21/v4/scalar/date": "/en/enterprise-server@2.21/graphql/reference/scalars#date",
|
||||||
"/enterprise/2.21/v4/union": "/en/enterprise/2.21/user/graphql/reference/unions",
|
"/enterprise/2.21/v4/union": "/en/enterprise-server@2.21/graphql/reference/unions",
|
||||||
"/enterprise/2.21/v4/union/assignee": "/en/enterprise/2.21/user/graphql/reference/unions#assignee",
|
"/enterprise/2.21/v4/union/assignee": "/en/enterprise-server@2.21/graphql/reference/unions#assignee",
|
||||||
"/enterprise/2.21/v4/union/auditentryactor": "/en/enterprise/2.21/user/graphql/reference/unions#auditentryactor",
|
"/enterprise/2.21/v4/union/auditentryactor": "/en/enterprise-server@2.21/graphql/reference/unions#auditentryactor",
|
||||||
"/enterprise/v4/enum": "/en/enterprise/user/graphql/reference/enums",
|
"/enterprise/v4/enum": "/en/enterprise-server/graphql/reference/enums",
|
||||||
"/enterprise/v4/enum/auditlogorderfield": "/en/enterprise/user/graphql/reference/enums#auditlogorderfield",
|
"/enterprise/v4/enum/auditlogorderfield": "/en/enterprise-server/graphql/reference/enums#auditlogorderfield",
|
||||||
"/enterprise/v4/enum/checkannotationlevel": "/en/enterprise/user/graphql/reference/enums#checkannotationlevel",
|
"/enterprise/v4/enum/checkannotationlevel": "/en/enterprise-server/graphql/reference/enums#checkannotationlevel",
|
||||||
"/enterprise/v4/guides": "/en/enterprise/user/graphql/guides",
|
"/enterprise/v4/guides": "/en/enterprise-server/graphql/guides",
|
||||||
"/enterprise/v4/input_object": "/en/enterprise/user/graphql/reference/input-objects",
|
"/enterprise/v4/input_object": "/en/enterprise-server/graphql/reference/input-objects",
|
||||||
"/enterprise/v4/interface": "/en/enterprise/user/graphql/reference/interfaces",
|
"/enterprise/v4/interface": "/en/enterprise-server/graphql/reference/interfaces",
|
||||||
"/enterprise/v4/interface/actor": "/en/enterprise/user/graphql/reference/interfaces#actor",
|
"/enterprise/v4/interface/actor": "/en/enterprise-server/graphql/reference/interfaces#actor",
|
||||||
"/enterprise/v4/interface/assignable": "/en/enterprise/user/graphql/reference/interfaces#assignable",
|
"/enterprise/v4/interface/assignable": "/en/enterprise-server/graphql/reference/interfaces#assignable",
|
||||||
"/enterprise/v4/mutation": "/en/enterprise/user/graphql/reference/mutations",
|
"/enterprise/v4/mutation": "/en/enterprise-server/graphql/reference/mutations",
|
||||||
"/enterprise/v4/object": "/en/enterprise/user/graphql/reference/objects",
|
"/enterprise/v4/object": "/en/enterprise-server/graphql/reference/objects",
|
||||||
"/enterprise/v4/object/actorlocation": "/en/enterprise/user/graphql/reference/objects#actorlocation",
|
"/enterprise/v4/object/actorlocation": "/en/enterprise-server/graphql/reference/objects#actorlocation",
|
||||||
"/enterprise/v4/object/addedtoprojectevent": "/en/enterprise/user/graphql/reference/objects#addedtoprojectevent",
|
"/enterprise/v4/object/addedtoprojectevent": "/en/enterprise-server/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/enterprise/v4/previews": "/en/enterprise/user/graphql/overview/schema-previews",
|
"/enterprise/v4/previews": "/en/enterprise-server/graphql/overview/schema-previews",
|
||||||
"/enterprise/v4/public_schema": "/en/enterprise/user/graphql/overview/public-schema",
|
"/enterprise/v4/public_schema": "/en/enterprise-server/graphql/overview/public-schema",
|
||||||
"/enterprise/v4/query": "/en/enterprise/user/graphql/reference/queries",
|
"/enterprise/v4/query": "/en/enterprise-server/graphql/reference/queries",
|
||||||
"/enterprise/v4/reference": "/en/enterprise/user/graphql/reference",
|
"/enterprise/v4/reference": "/en/enterprise-server/graphql/reference",
|
||||||
"/enterprise/v4/scalar": "/en/enterprise/user/graphql/reference/scalars",
|
"/enterprise/v4/scalar": "/en/enterprise-server/graphql/reference/scalars",
|
||||||
"/enterprise/v4/scalar/boolean": "/en/enterprise/user/graphql/reference/scalars#boolean",
|
"/enterprise/v4/scalar/boolean": "/en/enterprise-server/graphql/reference/scalars#boolean",
|
||||||
"/enterprise/v4/scalar/date": "/en/enterprise/user/graphql/reference/scalars#date",
|
"/enterprise/v4/scalar/date": "/en/enterprise-server/graphql/reference/scalars#date",
|
||||||
"/enterprise/v4/union": "/en/enterprise/user/graphql/reference/unions",
|
"/enterprise/v4/union": "/en/enterprise-server/graphql/reference/unions",
|
||||||
"/enterprise/v4/union/assignee": "/en/enterprise/user/graphql/reference/unions#assignee",
|
"/enterprise/v4/union/assignee": "/en/enterprise-server/graphql/reference/unions#assignee",
|
||||||
"/enterprise/v4/union/auditentryactor": "/en/enterprise/user/graphql/reference/unions#auditentryactor",
|
"/enterprise/v4/union/auditentryactor": "/en/enterprise-server/graphql/reference/unions#auditentryactor",
|
||||||
"/v4/enum": "/en/graphql/reference/enums",
|
"/v4/enum": "/en/free-pro-team@latest/graphql/reference/enums",
|
||||||
"/v4/enum/auditlogorderfield": "/en/graphql/reference/enums#auditlogorderfield",
|
"/v4/enum/auditlogorderfield": "/en/free-pro-team@latest/graphql/reference/enums#auditlogorderfield",
|
||||||
"/v4/enum/checkannotationlevel": "/en/graphql/reference/enums#checkannotationlevel",
|
"/v4/enum/checkannotationlevel": "/en/free-pro-team@latest/graphql/reference/enums#checkannotationlevel",
|
||||||
"/v4/guides": "/en/graphql/guides",
|
"/v4/guides": "/en/free-pro-team@latest/graphql/guides",
|
||||||
"/v4/input_object": "/en/graphql/reference/input-objects",
|
"/v4/input_object": "/en/free-pro-team@latest/graphql/reference/input-objects",
|
||||||
"/v4/input_object/acceptenterpriseadministratorinvitationinput": "/en/graphql/reference/input-objects#acceptenterpriseadministratorinvitationinput",
|
"/v4/input_object/acceptenterpriseadministratorinvitationinput": "/en/free-pro-team@latest/graphql/reference/input-objects#acceptenterpriseadministratorinvitationinput",
|
||||||
"/v4/input_object/accepttopicsuggestioninput": "/en/graphql/reference/input-objects#accepttopicsuggestioninput",
|
"/v4/input_object/accepttopicsuggestioninput": "/en/free-pro-team@latest/graphql/reference/input-objects#accepttopicsuggestioninput",
|
||||||
"/v4/interface": "/en/graphql/reference/interfaces",
|
"/v4/interface": "/en/free-pro-team@latest/graphql/reference/interfaces",
|
||||||
"/v4/interface/actor": "/en/graphql/reference/interfaces#actor",
|
"/v4/interface/actor": "/en/free-pro-team@latest/graphql/reference/interfaces#actor",
|
||||||
"/v4/interface/assignable": "/en/graphql/reference/interfaces#assignable",
|
"/v4/interface/assignable": "/en/free-pro-team@latest/graphql/reference/interfaces#assignable",
|
||||||
"/v4/mutation": "/en/graphql/reference/mutations",
|
"/v4/mutation": "/en/free-pro-team@latest/graphql/reference/mutations",
|
||||||
"/v4/mutation/acceptenterpriseadministratorinvitation": "/en/graphql/reference/mutations#acceptenterpriseadministratorinvitation",
|
"/v4/mutation/acceptenterpriseadministratorinvitation": "/en/free-pro-team@latest/graphql/reference/mutations#acceptenterpriseadministratorinvitation",
|
||||||
"/v4/mutation/accepttopicsuggestion": "/en/graphql/reference/mutations#accepttopicsuggestion",
|
"/v4/mutation/accepttopicsuggestion": "/en/free-pro-team@latest/graphql/reference/mutations#accepttopicsuggestion",
|
||||||
"/v4/object": "/en/graphql/reference/objects",
|
"/v4/object": "/en/free-pro-team@latest/graphql/reference/objects",
|
||||||
"/v4/object/actorlocation": "/en/graphql/reference/objects#actorlocation",
|
"/v4/object/actorlocation": "/en/free-pro-team@latest/graphql/reference/objects#actorlocation",
|
||||||
"/v4/object/addedtoprojectevent": "/en/graphql/reference/objects#addedtoprojectevent",
|
"/v4/object/addedtoprojectevent": "/en/free-pro-team@latest/graphql/reference/objects#addedtoprojectevent",
|
||||||
"/v4/previews": "/en/graphql/overview/schema-previews",
|
"/v4/previews": "/en/free-pro-team@latest/graphql/overview/schema-previews",
|
||||||
"/v4/public_schema": "/en/graphql/overview/public-schema",
|
"/v4/public_schema": "/en/free-pro-team@latest/graphql/overview/public-schema",
|
||||||
"/v4/query": "/en/graphql/reference/queries",
|
"/v4/query": "/en/free-pro-team@latest/graphql/reference/queries",
|
||||||
"/v4/reference": "/en/graphql/reference",
|
"/v4/reference": "/en/free-pro-team@latest/graphql/reference",
|
||||||
"/v4/scalar": "/en/graphql/reference/scalars",
|
"/v4/scalar": "/en/free-pro-team@latest/graphql/reference/scalars",
|
||||||
"/v4/scalar/boolean": "/en/graphql/reference/scalars#boolean",
|
"/v4/scalar/boolean": "/en/free-pro-team@latest/graphql/reference/scalars#boolean",
|
||||||
"/v4/scalar/date": "/en/graphql/reference/scalars#date",
|
"/v4/scalar/date": "/en/free-pro-team@latest/graphql/reference/scalars#date",
|
||||||
"/v4/union": "/en/graphql/reference/unions",
|
"/v4/union": "/en/free-pro-team@latest/graphql/reference/unions",
|
||||||
"/v4/union/assignee": "/en/graphql/reference/unions#assignee",
|
"/v4/union/assignee": "/en/free-pro-team@latest/graphql/reference/unions#assignee",
|
||||||
"/v4/union/auditentryactor": "/en/graphql/reference/unions#auditentryactor"
|
"/v4/union/auditentryactor": "/en/free-pro-team@latest/graphql/reference/unions#auditentryactor"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
title: GitHub 上でプロジェクトを探索する
|
|
||||||
intro: ''
|
|
||||||
mapTopic: verdadero
|
|
||||||
versions:
|
|
||||||
free-pro-team: '*'
|
|
||||||
enterprise-server: '*'
|
|
||||||
---
|
|
||||||
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
{
|
|
||||||
"/apps": "/en/free-pro-team@latest/developers/apps",
|
|
||||||
"/apps/building-github-apps": "/en/free-pro-team@latest/developers/apps/building-github-apps",
|
|
||||||
"/apps/building-oauth-apps": "/en/free-pro-team@latest/developers/apps/building-oauth-apps",
|
|
||||||
"/apps/managing-github-apps": "/en/free-pro-team@latest/developers/apps/managing-github-apps",
|
|
||||||
"/apps/managing-oauth-apps": "/en/free-pro-team@latest/developers/apps/managing-oauth-apps",
|
|
||||||
"/apps/quickstart-guides": "/en/free-pro-team@latest/developers/apps/guides",
|
|
||||||
"/marketplace": "/en/free-pro-team@latest/developers/github-marketplace",
|
|
||||||
"/marketplace/getting-started": "/en/free-pro-team@latest/developers/github-marketplace/about-github-marketplace",
|
|
||||||
"/marketplace/integrating-with-the-github-marketplace-api": "/en/free-pro-team@latest/developers/github-marketplace/using-the-github-marketplace-api-in-your-app",
|
|
||||||
"/marketplace/listing-on-github-marketplace": "/en/free-pro-team@latest/developers/github-marketplace/listing-an-app-on-github-marketplace",
|
|
||||||
"/marketplace/selling-your-app": "/en/free-pro-team@latest/developers/github-marketplace/selling-your-app-on-github-marketplace",
|
|
||||||
"/v3": "/en/free-pro-team@latest/rest",
|
|
||||||
"/v3/actions/workflow-jobs": "/en/free-pro-team@latest/rest/reference/actions#workflow-jobs",
|
|
||||||
"/v3/actions/workflow-runs": "/en/free-pro-team@latest/rest/reference/actions#workflow-runs",
|
|
||||||
"/v3/actions/workflow_jobs": "/en/free-pro-team@latest/rest/reference/actions#workflow-jobs",
|
|
||||||
"/v3/actions/workflow_runs": "/en/free-pro-team@latest/rest/reference/actions#workflow-runs",
|
|
||||||
"/v3/guides": "/en/free-pro-team@latest/rest/guides",
|
|
||||||
"/v3/guides/managing-deploy-keys": "/en/free-pro-team@latest/developers/overview/managing-deploy-keys",
|
|
||||||
"/v3/misc": "/en/free-pro-team@latest/rest/reference/emojis",
|
|
||||||
"/v4/public_schema": "/en/free-pro-team@latest/graphql/overview/public-schema",
|
|
||||||
"/v4/object/repository": "/en/free-pro-team@latest/graphql/reference/objects#repository",
|
|
||||||
"/webhooks": "/en/free-pro-team@latest/developers/webhooks-and-events/about-webhooks",
|
|
||||||
"/en/enterprise/2.18/apps": "/en/enterprise/2.18/user/developers/apps",
|
|
||||||
"/en/enterprise/2.18/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise/2.18/user/developers/apps/authorizing-oauth-apps",
|
|
||||||
"/en/enterprise/2.18/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise/2.18/user/developers/apps/scopes-for-oauth-apps",
|
|
||||||
"/en/enterprise/2.18/apps/differences-between-apps": "/en/enterprise/2.18/user/developers/apps/differences-between-github-apps-and-oauth-apps",
|
|
||||||
"/en/enterprise/2.18/v3/auth": "/en/enterprise/2.18/user/rest/overview/other-authentication-methods",
|
|
||||||
"/en/enterprise/2.18/v3/guides/managing-deploy-keys": "/en/enterprise/2.18/user/developers/overview/managing-deploy-keys",
|
|
||||||
"/en/enterprise/2.18/v4/explorer": "/en/enterprise/2.18/user/graphql/overview/explorer",
|
|
||||||
"/en/enterprise/2.18/v4/guides/forming-calls": "/en/enterprise/2.18/user/graphql/guides/forming-calls-with-graphql",
|
|
||||||
"/en/enterprise/2.18/v4/guides/intro-to-graphql": "/en/enterprise/2.18/user/graphql/guides/introduction-to-graphql",
|
|
||||||
"/en/enterprise/2.18/v4/guides/migrating-from-rest": "/en/enterprise/2.18/user/graphql/guides/migrating-from-rest-to-graphql",
|
|
||||||
"/en/enterprise/2.18/webhooks": "/en/enterprise/2.18/user/developers/webhooks-and-events/about-webhooks",
|
|
||||||
"/en/enterprise/2.19/apps": "/en/enterprise-server@2.19/developers/apps",
|
|
||||||
"/en/enterprise/2.19/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise-server@2.19/developers/apps/authorizing-oauth-apps",
|
|
||||||
"/en/enterprise/2.19/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise-server@2.19/developers/apps/scopes-for-oauth-apps",
|
|
||||||
"/en/enterprise/2.19/apps/differences-between-apps": "/en/enterprise-server@2.19/developers/apps/differences-between-github-apps-and-oauth-apps",
|
|
||||||
"/en/enterprise/2.19/v3/auth": "/en/enterprise-server@2.19/rest/overview/other-authentication-methods",
|
|
||||||
"/en/enterprise/2.19/v3/guides/managing-deploy-keys": "/en/enterprise-server@2.19/developers/overview/managing-deploy-keys",
|
|
||||||
"/en/enterprise/2.19/v4/explorer": "/en/enterprise-server@2.19/graphql/overview/explorer",
|
|
||||||
"/en/enterprise/2.19/v4/guides/forming-calls": "/en/enterprise-server@2.19/graphql/guides/forming-calls-with-graphql",
|
|
||||||
"/en/enterprise/2.19/v4/guides/intro-to-graphql": "/en/enterprise-server@2.19/graphql/guides/introduction-to-graphql",
|
|
||||||
"/en/enterprise/2.19/v4/guides/migrating-from-rest": "/en/enterprise-server@2.19/graphql/guides/migrating-from-rest-to-graphql",
|
|
||||||
"/en/enterprise/2.19/webhooks": "/en/enterprise-server@2.19/developers/webhooks-and-events/about-webhooks",
|
|
||||||
"/en/enterprise/2.20/apps": "/en/enterprise-server@2.20/developers/apps",
|
|
||||||
"/en/enterprise/2.20/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise-server@2.20/developers/apps/authorizing-oauth-apps",
|
|
||||||
"/en/enterprise/2.20/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise-server@2.20/developers/apps/scopes-for-oauth-apps",
|
|
||||||
"/en/enterprise/2.20/apps/differences-between-apps": "/en/enterprise-server@2.20/developers/apps/differences-between-github-apps-and-oauth-apps",
|
|
||||||
"/en/enterprise/2.20/v3/auth": "/en/enterprise-server@2.20/rest/overview/other-authentication-methods",
|
|
||||||
"/en/enterprise/2.20/v3/guides/managing-deploy-keys": "/en/enterprise-server@2.20/developers/overview/managing-deploy-keys",
|
|
||||||
"/en/enterprise/2.20/v4/explorer": "/en/enterprise-server@2.20/graphql/overview/explorer",
|
|
||||||
"/en/enterprise/2.20/v4/guides/forming-calls": "/en/enterprise-server@2.20/graphql/guides/forming-calls-with-graphql",
|
|
||||||
"/en/enterprise/2.20/v4/guides/intro-to-graphql": "/en/enterprise-server@2.20/graphql/guides/introduction-to-graphql",
|
|
||||||
"/en/enterprise/2.20/v4/guides/migrating-from-rest": "/en/enterprise-server@2.20/graphql/guides/migrating-from-rest-to-graphql",
|
|
||||||
"/en/enterprise/2.20/webhooks": "/en/enterprise-server@2.20/developers/webhooks-and-events/about-webhooks",
|
|
||||||
"/en/enterprise/2.21/apps": "/en/enterprise-server@2.21/developers/apps",
|
|
||||||
"/en/enterprise/2.21/apps/building-oauth-apps/authorizing-oauth-apps": "/en/enterprise-server@2.21/developers/apps/authorizing-oauth-apps",
|
|
||||||
"/en/enterprise/2.21/apps/building-oauth-apps/understanding-scopes-for-oauth-apps": "/en/enterprise-server@2.21/developers/apps/scopes-for-oauth-apps",
|
|
||||||
"/en/enterprise/2.21/apps/differences-between-apps": "/en/enterprise-server@2.21/developers/apps/differences-between-github-apps-and-oauth-apps",
|
|
||||||
"/en/enterprise/2.21/v3/auth": "/en/enterprise-server@2.21/rest/overview/other-authentication-methods",
|
|
||||||
"/en/enterprise/2.21/v3/guides/managing-deploy-keys": "/en/enterprise-server@2.21/developers/overview/managing-deploy-keys",
|
|
||||||
"/en/enterprise/2.21/v4/explorer": "/en/enterprise-server@2.21/graphql/overview/explorer",
|
|
||||||
"/en/enterprise/2.21/v4/guides/forming-calls": "/en/enterprise-server@2.21/graphql/guides/forming-calls-with-graphql",
|
|
||||||
"/en/enterprise/2.21/v4/guides/intro-to-graphql": "/en/enterprise-server@2.21/graphql/guides/introduction-to-graphql",
|
|
||||||
"/en/enterprise/2.21/v4/guides/migrating-from-rest": "/en/enterprise-server@2.21/graphql/guides/migrating-from-rest-to-graphql",
|
|
||||||
"/en/enterprise/2.21/webhooks": "/en/enterprise-server@2.21/developers/webhooks-and-events/about-webhooks"
|
|
||||||
}
|
|
||||||
446
tests/fixtures/new-versions/graphql-redirects.json
vendored
446
tests/fixtures/new-versions/graphql-redirects.json
vendored
@@ -1,446 +0,0 @@
|
|||||||
{
|
|
||||||
"/en/enterprise/2.18/user/v4/enum": "/en/enterprise/2.18/user/graphql/reference/enums",
|
|
||||||
"/en/enterprise/2.18/user/v4/enum/auditlogorderfield": "/en/enterprise/2.18/user/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/en/enterprise/2.18/user/v4/enum/checkannotationlevel": "/en/enterprise/2.18/user/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/en/enterprise/2.18/user/v4/guides": "/en/enterprise/2.18/user/graphql/guides",
|
|
||||||
"/en/enterprise/2.18/user/v4/input_object": "/en/enterprise/2.18/user/graphql/reference/input-objects",
|
|
||||||
"/en/enterprise/2.18/user/v4/interface": "/en/enterprise/2.18/user/graphql/reference/interfaces",
|
|
||||||
"/en/enterprise/2.18/user/v4/interface/actor": "/en/enterprise/2.18/user/graphql/reference/interfaces#actor",
|
|
||||||
"/en/enterprise/2.18/user/v4/interface/assignable": "/en/enterprise/2.18/user/graphql/reference/interfaces#assignable",
|
|
||||||
"/en/enterprise/2.18/user/v4/mutation": "/en/enterprise/2.18/user/graphql/reference/mutations",
|
|
||||||
"/en/enterprise/2.18/user/v4/object": "/en/enterprise/2.18/user/graphql/reference/objects",
|
|
||||||
"/en/enterprise/2.18/user/v4/object/actorlocation": "/en/enterprise/2.18/user/graphql/reference/objects#actorlocation",
|
|
||||||
"/en/enterprise/2.18/user/v4/object/addedtoprojectevent": "/en/enterprise/2.18/user/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/en/enterprise/2.18/user/v4/previews": "/en/enterprise/2.18/user/graphql/overview/schema-previews",
|
|
||||||
"/en/enterprise/2.18/user/v4/public_schema": "/en/enterprise/2.18/user/graphql/overview/public-schema",
|
|
||||||
"/en/enterprise/2.18/user/v4/query": "/en/enterprise/2.18/user/graphql/reference/queries",
|
|
||||||
"/en/enterprise/2.18/user/v4/reference": "/en/enterprise/2.18/user/graphql/reference",
|
|
||||||
"/en/enterprise/2.18/user/v4/scalar": "/en/enterprise/2.18/user/graphql/reference/scalars",
|
|
||||||
"/en/enterprise/2.18/user/v4/scalar/boolean": "/en/enterprise/2.18/user/graphql/reference/scalars#boolean",
|
|
||||||
"/en/enterprise/2.18/user/v4/scalar/date": "/en/enterprise/2.18/user/graphql/reference/scalars#date",
|
|
||||||
"/en/enterprise/2.18/user/v4/union": "/en/enterprise/2.18/user/graphql/reference/unions",
|
|
||||||
"/en/enterprise/2.18/user/v4/union/auditentryactor": "/en/enterprise/2.18/user/graphql/reference/unions#auditentryactor",
|
|
||||||
"/en/enterprise/2.18/v4/enum": "/en/enterprise/2.18/user/graphql/reference/enums",
|
|
||||||
"/en/enterprise/2.18/v4/enum/auditlogorderfield": "/en/enterprise/2.18/user/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/en/enterprise/2.18/v4/enum/checkannotationlevel": "/en/enterprise/2.18/user/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/en/enterprise/2.18/v4/guides": "/en/enterprise/2.18/user/graphql/guides",
|
|
||||||
"/en/enterprise/2.18/v4/input_object": "/en/enterprise/2.18/user/graphql/reference/input-objects",
|
|
||||||
"/en/enterprise/2.18/v4/interface": "/en/enterprise/2.18/user/graphql/reference/interfaces",
|
|
||||||
"/en/enterprise/2.18/v4/interface/actor": "/en/enterprise/2.18/user/graphql/reference/interfaces#actor",
|
|
||||||
"/en/enterprise/2.18/v4/interface/assignable": "/en/enterprise/2.18/user/graphql/reference/interfaces#assignable",
|
|
||||||
"/en/enterprise/2.18/v4/mutation": "/en/enterprise/2.18/user/graphql/reference/mutations",
|
|
||||||
"/en/enterprise/2.18/v4/object": "/en/enterprise/2.18/user/graphql/reference/objects",
|
|
||||||
"/en/enterprise/2.18/v4/object/actorlocation": "/en/enterprise/2.18/user/graphql/reference/objects#actorlocation",
|
|
||||||
"/en/enterprise/2.18/v4/object/addedtoprojectevent": "/en/enterprise/2.18/user/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/en/enterprise/2.18/v4/previews": "/en/enterprise/2.18/user/graphql/overview/schema-previews",
|
|
||||||
"/en/enterprise/2.18/v4/public_schema": "/en/enterprise/2.18/user/graphql/overview/public-schema",
|
|
||||||
"/en/enterprise/2.18/v4/query": "/en/enterprise/2.18/user/graphql/reference/queries",
|
|
||||||
"/en/enterprise/2.18/v4/reference": "/en/enterprise/2.18/user/graphql/reference",
|
|
||||||
"/en/enterprise/2.18/v4/scalar": "/en/enterprise/2.18/user/graphql/reference/scalars",
|
|
||||||
"/en/enterprise/2.18/v4/scalar/boolean": "/en/enterprise/2.18/user/graphql/reference/scalars#boolean",
|
|
||||||
"/en/enterprise/2.18/v4/scalar/date": "/en/enterprise/2.18/user/graphql/reference/scalars#date",
|
|
||||||
"/en/enterprise/2.18/v4/union": "/en/enterprise/2.18/user/graphql/reference/unions",
|
|
||||||
"/en/enterprise/2.18/v4/union/auditentryactor": "/en/enterprise/2.18/user/graphql/reference/unions#auditentryactor",
|
|
||||||
"/en/enterprise/2.19/user/v4/enum": "/en/enterprise-server@2.19/graphql/reference/enums",
|
|
||||||
"/en/enterprise/2.19/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.19/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/en/enterprise/2.19/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.19/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/en/enterprise/2.19/user/v4/guides": "/en/enterprise-server@2.19/graphql/guides",
|
|
||||||
"/en/enterprise/2.19/user/v4/input_object": "/en/enterprise-server@2.19/graphql/reference/input-objects",
|
|
||||||
"/en/enterprise/2.19/user/v4/interface": "/en/enterprise-server@2.19/graphql/reference/interfaces",
|
|
||||||
"/en/enterprise/2.19/user/v4/interface/actor": "/en/enterprise-server@2.19/graphql/reference/interfaces#actor",
|
|
||||||
"/en/enterprise/2.19/user/v4/interface/assignable": "/en/enterprise-server@2.19/graphql/reference/interfaces#assignable",
|
|
||||||
"/en/enterprise/2.19/user/v4/mutation": "/en/enterprise-server@2.19/graphql/reference/mutations",
|
|
||||||
"/en/enterprise/2.19/user/v4/object": "/en/enterprise-server@2.19/graphql/reference/objects",
|
|
||||||
"/en/enterprise/2.19/user/v4/object/actorlocation": "/en/enterprise-server@2.19/graphql/reference/objects#actorlocation",
|
|
||||||
"/en/enterprise/2.19/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.19/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/en/enterprise/2.19/user/v4/previews": "/en/enterprise-server@2.19/graphql/overview/schema-previews",
|
|
||||||
"/en/enterprise/2.19/user/v4/public_schema": "/en/enterprise-server@2.19/graphql/overview/public-schema",
|
|
||||||
"/en/enterprise/2.19/user/v4/query": "/en/enterprise-server@2.19/graphql/reference/queries",
|
|
||||||
"/en/enterprise/2.19/user/v4/reference": "/en/enterprise-server@2.19/graphql/reference",
|
|
||||||
"/en/enterprise/2.19/user/v4/scalar": "/en/enterprise-server@2.19/graphql/reference/scalars",
|
|
||||||
"/en/enterprise/2.19/user/v4/scalar/boolean": "/en/enterprise-server@2.19/graphql/reference/scalars#boolean",
|
|
||||||
"/en/enterprise/2.19/user/v4/scalar/date": "/en/enterprise-server@2.19/graphql/reference/scalars#date",
|
|
||||||
"/en/enterprise/2.19/user/v4/union": "/en/enterprise-server@2.19/graphql/reference/unions",
|
|
||||||
"/en/enterprise/2.19/user/v4/union/assignee": "/en/enterprise-server@2.19/graphql/reference/unions#assignee",
|
|
||||||
"/en/enterprise/2.19/user/v4/union/auditentryactor": "/en/enterprise-server@2.19/graphql/reference/unions#auditentryactor",
|
|
||||||
"/en/enterprise/2.19/v4/enum": "/en/enterprise-server@2.19/graphql/reference/enums",
|
|
||||||
"/en/enterprise/2.19/v4/enum/auditlogorderfield": "/en/enterprise-server@2.19/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/en/enterprise/2.19/v4/enum/checkannotationlevel": "/en/enterprise-server@2.19/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/en/enterprise/2.19/v4/guides": "/en/enterprise-server@2.19/graphql/guides",
|
|
||||||
"/en/enterprise/2.19/v4/input_object": "/en/enterprise-server@2.19/graphql/reference/input-objects",
|
|
||||||
"/en/enterprise/2.19/v4/interface": "/en/enterprise-server@2.19/graphql/reference/interfaces",
|
|
||||||
"/en/enterprise/2.19/v4/interface/actor": "/en/enterprise-server@2.19/graphql/reference/interfaces#actor",
|
|
||||||
"/en/enterprise/2.19/v4/interface/assignable": "/en/enterprise-server@2.19/graphql/reference/interfaces#assignable",
|
|
||||||
"/en/enterprise/2.19/v4/mutation": "/en/enterprise-server@2.19/graphql/reference/mutations",
|
|
||||||
"/en/enterprise/2.19/v4/object": "/en/enterprise-server@2.19/graphql/reference/objects",
|
|
||||||
"/en/enterprise/2.19/v4/object/actorlocation": "/en/enterprise-server@2.19/graphql/reference/objects#actorlocation",
|
|
||||||
"/en/enterprise/2.19/v4/object/addedtoprojectevent": "/en/enterprise-server@2.19/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/en/enterprise/2.19/v4/previews": "/en/enterprise-server@2.19/graphql/overview/schema-previews",
|
|
||||||
"/en/enterprise/2.19/v4/public_schema": "/en/enterprise-server@2.19/graphql/overview/public-schema",
|
|
||||||
"/en/enterprise/2.19/v4/query": "/en/enterprise-server@2.19/graphql/reference/queries",
|
|
||||||
"/en/enterprise/2.19/v4/reference": "/en/enterprise-server@2.19/graphql/reference",
|
|
||||||
"/en/enterprise/2.19/v4/scalar": "/en/enterprise-server@2.19/graphql/reference/scalars",
|
|
||||||
"/en/enterprise/2.19/v4/scalar/boolean": "/en/enterprise-server@2.19/graphql/reference/scalars#boolean",
|
|
||||||
"/en/enterprise/2.19/v4/scalar/date": "/en/enterprise-server@2.19/graphql/reference/scalars#date",
|
|
||||||
"/en/enterprise/2.19/v4/union": "/en/enterprise-server@2.19/graphql/reference/unions",
|
|
||||||
"/en/enterprise/2.19/v4/union/assignee": "/en/enterprise-server@2.19/graphql/reference/unions#assignee",
|
|
||||||
"/en/enterprise/2.19/v4/union/auditentryactor": "/en/enterprise-server@2.19/graphql/reference/unions#auditentryactor",
|
|
||||||
"/en/enterprise/2.20/user/v4/enum": "/en/enterprise-server@2.20/graphql/reference/enums",
|
|
||||||
"/en/enterprise/2.20/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.20/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/en/enterprise/2.20/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.20/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/en/enterprise/2.20/user/v4/guides": "/en/enterprise-server@2.20/graphql/guides",
|
|
||||||
"/en/enterprise/2.20/user/v4/input_object": "/en/enterprise-server@2.20/graphql/reference/input-objects",
|
|
||||||
"/en/enterprise/2.20/user/v4/interface": "/en/enterprise-server@2.20/graphql/reference/interfaces",
|
|
||||||
"/en/enterprise/2.20/user/v4/interface/actor": "/en/enterprise-server@2.20/graphql/reference/interfaces#actor",
|
|
||||||
"/en/enterprise/2.20/user/v4/interface/assignable": "/en/enterprise-server@2.20/graphql/reference/interfaces#assignable",
|
|
||||||
"/en/enterprise/2.20/user/v4/mutation": "/en/enterprise-server@2.20/graphql/reference/mutations",
|
|
||||||
"/en/enterprise/2.20/user/v4/object": "/en/enterprise-server@2.20/graphql/reference/objects",
|
|
||||||
"/en/enterprise/2.20/user/v4/object/actorlocation": "/en/enterprise-server@2.20/graphql/reference/objects#actorlocation",
|
|
||||||
"/en/enterprise/2.20/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.20/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/en/enterprise/2.20/user/v4/previews": "/en/enterprise-server@2.20/graphql/overview/schema-previews",
|
|
||||||
"/en/enterprise/2.20/user/v4/public_schema": "/en/enterprise-server@2.20/graphql/overview/public-schema",
|
|
||||||
"/en/enterprise/2.20/user/v4/query": "/en/enterprise-server@2.20/graphql/reference/queries",
|
|
||||||
"/en/enterprise/2.20/user/v4/reference": "/en/enterprise-server@2.20/graphql/reference",
|
|
||||||
"/en/enterprise/2.20/user/v4/scalar": "/en/enterprise-server@2.20/graphql/reference/scalars",
|
|
||||||
"/en/enterprise/2.20/user/v4/scalar/boolean": "/en/enterprise-server@2.20/graphql/reference/scalars#boolean",
|
|
||||||
"/en/enterprise/2.20/user/v4/scalar/date": "/en/enterprise-server@2.20/graphql/reference/scalars#date",
|
|
||||||
"/en/enterprise/2.20/user/v4/union": "/en/enterprise-server@2.20/graphql/reference/unions",
|
|
||||||
"/en/enterprise/2.20/user/v4/union/assignee": "/en/enterprise-server@2.20/graphql/reference/unions#assignee",
|
|
||||||
"/en/enterprise/2.20/user/v4/union/auditentryactor": "/en/enterprise-server@2.20/graphql/reference/unions#auditentryactor",
|
|
||||||
"/en/enterprise/2.20/v4/enum": "/en/enterprise-server@2.20/graphql/reference/enums",
|
|
||||||
"/en/enterprise/2.20/v4/enum/auditlogorderfield": "/en/enterprise-server@2.20/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/en/enterprise/2.20/v4/enum/checkannotationlevel": "/en/enterprise-server@2.20/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/en/enterprise/2.20/v4/guides": "/en/enterprise-server@2.20/graphql/guides",
|
|
||||||
"/en/enterprise/2.20/v4/input_object": "/en/enterprise-server@2.20/graphql/reference/input-objects",
|
|
||||||
"/en/enterprise/2.20/v4/interface": "/en/enterprise-server@2.20/graphql/reference/interfaces",
|
|
||||||
"/en/enterprise/2.20/v4/interface/actor": "/en/enterprise-server@2.20/graphql/reference/interfaces#actor",
|
|
||||||
"/en/enterprise/2.20/v4/interface/assignable": "/en/enterprise-server@2.20/graphql/reference/interfaces#assignable",
|
|
||||||
"/en/enterprise/2.20/v4/mutation": "/en/enterprise-server@2.20/graphql/reference/mutations",
|
|
||||||
"/en/enterprise/2.20/v4/object": "/en/enterprise-server@2.20/graphql/reference/objects",
|
|
||||||
"/en/enterprise/2.20/v4/object/actorlocation": "/en/enterprise-server@2.20/graphql/reference/objects#actorlocation",
|
|
||||||
"/en/enterprise/2.20/v4/object/addedtoprojectevent": "/en/enterprise-server@2.20/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/en/enterprise/2.20/v4/previews": "/en/enterprise-server@2.20/graphql/overview/schema-previews",
|
|
||||||
"/en/enterprise/2.20/v4/public_schema": "/en/enterprise-server@2.20/graphql/overview/public-schema",
|
|
||||||
"/en/enterprise/2.20/v4/query": "/en/enterprise-server@2.20/graphql/reference/queries",
|
|
||||||
"/en/enterprise/2.20/v4/reference": "/en/enterprise-server@2.20/graphql/reference",
|
|
||||||
"/en/enterprise/2.20/v4/scalar": "/en/enterprise-server@2.20/graphql/reference/scalars",
|
|
||||||
"/en/enterprise/2.20/v4/scalar/boolean": "/en/enterprise-server@2.20/graphql/reference/scalars#boolean",
|
|
||||||
"/en/enterprise/2.20/v4/scalar/date": "/en/enterprise-server@2.20/graphql/reference/scalars#date",
|
|
||||||
"/en/enterprise/2.20/v4/union": "/en/enterprise-server@2.20/graphql/reference/unions",
|
|
||||||
"/en/enterprise/2.20/v4/union/assignee": "/en/enterprise-server@2.20/graphql/reference/unions#assignee",
|
|
||||||
"/en/enterprise/2.20/v4/union/auditentryactor": "/en/enterprise-server@2.20/graphql/reference/unions#auditentryactor",
|
|
||||||
"/en/enterprise/2.21/user/v4/enum": "/en/enterprise-server@2.21/graphql/reference/enums",
|
|
||||||
"/en/enterprise/2.21/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.21/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/en/enterprise/2.21/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.21/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/en/enterprise/2.21/user/v4/guides": "/en/enterprise-server@2.21/graphql/guides",
|
|
||||||
"/en/enterprise/2.21/user/v4/input_object": "/en/enterprise-server@2.21/graphql/reference/input-objects",
|
|
||||||
"/en/enterprise/2.21/user/v4/interface": "/en/enterprise-server@2.21/graphql/reference/interfaces",
|
|
||||||
"/en/enterprise/2.21/user/v4/interface/actor": "/en/enterprise-server@2.21/graphql/reference/interfaces#actor",
|
|
||||||
"/en/enterprise/2.21/user/v4/interface/assignable": "/en/enterprise-server@2.21/graphql/reference/interfaces#assignable",
|
|
||||||
"/en/enterprise/2.21/user/v4/mutation": "/en/enterprise-server@2.21/graphql/reference/mutations",
|
|
||||||
"/en/enterprise/2.21/user/v4/object": "/en/enterprise-server@2.21/graphql/reference/objects",
|
|
||||||
"/en/enterprise/2.21/user/v4/object/actorlocation": "/en/enterprise-server@2.21/graphql/reference/objects#actorlocation",
|
|
||||||
"/en/enterprise/2.21/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.21/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/en/enterprise/2.21/user/v4/previews": "/en/enterprise-server@2.21/graphql/overview/schema-previews",
|
|
||||||
"/en/enterprise/2.21/user/v4/public_schema": "/en/enterprise-server@2.21/graphql/overview/public-schema",
|
|
||||||
"/en/enterprise/2.21/user/v4/query": "/en/enterprise-server@2.21/graphql/reference/queries",
|
|
||||||
"/en/enterprise/2.21/user/v4/reference": "/en/enterprise-server@2.21/graphql/reference",
|
|
||||||
"/en/enterprise/2.21/user/v4/scalar": "/en/enterprise-server@2.21/graphql/reference/scalars",
|
|
||||||
"/en/enterprise/2.21/user/v4/scalar/boolean": "/en/enterprise-server@2.21/graphql/reference/scalars#boolean",
|
|
||||||
"/en/enterprise/2.21/user/v4/scalar/date": "/en/enterprise-server@2.21/graphql/reference/scalars#date",
|
|
||||||
"/en/enterprise/2.21/user/v4/union": "/en/enterprise-server@2.21/graphql/reference/unions",
|
|
||||||
"/en/enterprise/2.21/user/v4/union/assignee": "/en/enterprise-server@2.21/graphql/reference/unions#assignee",
|
|
||||||
"/en/enterprise/2.21/user/v4/union/auditentryactor": "/en/enterprise-server@2.21/graphql/reference/unions#auditentryactor",
|
|
||||||
"/en/enterprise/2.21/v4/enum": "/en/enterprise-server@2.21/graphql/reference/enums",
|
|
||||||
"/en/enterprise/2.21/v4/enum/auditlogorderfield": "/en/enterprise-server@2.21/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/en/enterprise/2.21/v4/enum/checkannotationlevel": "/en/enterprise-server@2.21/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/en/enterprise/2.21/v4/guides": "/en/enterprise-server@2.21/graphql/guides",
|
|
||||||
"/en/enterprise/2.21/v4/input_object": "/en/enterprise-server@2.21/graphql/reference/input-objects",
|
|
||||||
"/en/enterprise/2.21/v4/interface": "/en/enterprise-server@2.21/graphql/reference/interfaces",
|
|
||||||
"/en/enterprise/2.21/v4/interface/actor": "/en/enterprise-server@2.21/graphql/reference/interfaces#actor",
|
|
||||||
"/en/enterprise/2.21/v4/interface/assignable": "/en/enterprise-server@2.21/graphql/reference/interfaces#assignable",
|
|
||||||
"/en/enterprise/2.21/v4/mutation": "/en/enterprise-server@2.21/graphql/reference/mutations",
|
|
||||||
"/en/enterprise/2.21/v4/object": "/en/enterprise-server@2.21/graphql/reference/objects",
|
|
||||||
"/en/enterprise/2.21/v4/object/actorlocation": "/en/enterprise-server@2.21/graphql/reference/objects#actorlocation",
|
|
||||||
"/en/enterprise/2.21/v4/object/addedtoprojectevent": "/en/enterprise-server@2.21/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/en/enterprise/2.21/v4/previews": "/en/enterprise-server@2.21/graphql/overview/schema-previews",
|
|
||||||
"/en/enterprise/2.21/v4/public_schema": "/en/enterprise-server@2.21/graphql/overview/public-schema",
|
|
||||||
"/en/enterprise/2.21/v4/query": "/en/enterprise-server@2.21/graphql/reference/queries",
|
|
||||||
"/en/enterprise/2.21/v4/reference": "/en/enterprise-server@2.21/graphql/reference",
|
|
||||||
"/en/enterprise/2.21/v4/scalar": "/en/enterprise-server@2.21/graphql/reference/scalars",
|
|
||||||
"/en/enterprise/2.21/v4/scalar/boolean": "/en/enterprise-server@2.21/graphql/reference/scalars#boolean",
|
|
||||||
"/en/enterprise/2.21/v4/scalar/date": "/en/enterprise-server@2.21/graphql/reference/scalars#date",
|
|
||||||
"/en/enterprise/2.21/v4/union": "/en/enterprise-server@2.21/graphql/reference/unions",
|
|
||||||
"/en/enterprise/2.21/v4/union/assignee": "/en/enterprise-server@2.21/graphql/reference/unions#assignee",
|
|
||||||
"/en/enterprise/2.21/v4/union/auditentryactor": "/en/enterprise-server@2.21/graphql/reference/unions#auditentryactor",
|
|
||||||
"/en/enterprise/v4/enum": "/en/enterprise-server/graphql/reference/enums",
|
|
||||||
"/en/enterprise/v4/enum/auditlogorderfield": "/en/enterprise-server/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/en/enterprise/v4/enum/checkannotationlevel": "/en/enterprise-server/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/en/enterprise/v4/guides": "/en/enterprise-server/graphql/guides",
|
|
||||||
"/en/enterprise/v4/input_object": "/en/enterprise-server/graphql/reference/input-objects",
|
|
||||||
"/en/enterprise/v4/interface": "/en/enterprise-server/graphql/reference/interfaces",
|
|
||||||
"/en/enterprise/v4/interface/actor": "/en/enterprise-server/graphql/reference/interfaces#actor",
|
|
||||||
"/en/enterprise/v4/interface/assignable": "/en/enterprise-server/graphql/reference/interfaces#assignable",
|
|
||||||
"/en/enterprise/v4/mutation": "/en/enterprise-server/graphql/reference/mutations",
|
|
||||||
"/en/enterprise/v4/object": "/en/enterprise-server/graphql/reference/objects",
|
|
||||||
"/en/enterprise/v4/object/actorlocation": "/en/enterprise-server/graphql/reference/objects#actorlocation",
|
|
||||||
"/en/enterprise/v4/object/addedtoprojectevent": "/en/enterprise-server/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/en/enterprise/v4/previews": "/en/enterprise-server/graphql/overview/schema-previews",
|
|
||||||
"/en/enterprise/v4/public_schema": "/en/enterprise-server/graphql/overview/public-schema",
|
|
||||||
"/en/enterprise/v4/query": "/en/enterprise-server/graphql/reference/queries",
|
|
||||||
"/en/enterprise/v4/reference": "/en/enterprise-server/graphql/reference",
|
|
||||||
"/en/enterprise/v4/scalar": "/en/enterprise-server/graphql/reference/scalars",
|
|
||||||
"/en/enterprise/v4/scalar/boolean": "/en/enterprise-server/graphql/reference/scalars#boolean",
|
|
||||||
"/en/enterprise/v4/scalar/date": "/en/enterprise-server/graphql/reference/scalars#date",
|
|
||||||
"/en/enterprise/v4/union": "/en/enterprise-server/graphql/reference/unions",
|
|
||||||
"/en/enterprise/v4/union/assignee": "/en/enterprise-server/graphql/reference/unions#assignee",
|
|
||||||
"/en/enterprise/v4/union/auditentryactor": "/en/enterprise-server/graphql/reference/unions#auditentryactor",
|
|
||||||
"/en/v4/enum": "/en/free-pro-team@latest/graphql/reference/enums",
|
|
||||||
"/en/v4/enum/auditlogorderfield": "/en/free-pro-team@latest/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/en/v4/enum/checkannotationlevel": "/en/free-pro-team@latest/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/en/v4/guides": "/en/free-pro-team@latest/graphql/guides",
|
|
||||||
"/en/v4/input_object": "/en/free-pro-team@latest/graphql/reference/input-objects",
|
|
||||||
"/en/v4/input_object/acceptenterpriseadministratorinvitationinput": "/en/free-pro-team@latest/graphql/reference/input-objects#acceptenterpriseadministratorinvitationinput",
|
|
||||||
"/en/v4/input_object/accepttopicsuggestioninput": "/en/free-pro-team@latest/graphql/reference/input-objects#accepttopicsuggestioninput",
|
|
||||||
"/en/v4/interface": "/en/free-pro-team@latest/graphql/reference/interfaces",
|
|
||||||
"/en/v4/interface/actor": "/en/free-pro-team@latest/graphql/reference/interfaces#actor",
|
|
||||||
"/en/v4/interface/assignable": "/en/free-pro-team@latest/graphql/reference/interfaces#assignable",
|
|
||||||
"/en/v4/mutation": "/en/free-pro-team@latest/graphql/reference/mutations",
|
|
||||||
"/en/v4/mutation/acceptenterpriseadministratorinvitation": "/en/free-pro-team@latest/graphql/reference/mutations#acceptenterpriseadministratorinvitation",
|
|
||||||
"/en/v4/mutation/accepttopicsuggestion": "/en/free-pro-team@latest/graphql/reference/mutations#accepttopicsuggestion",
|
|
||||||
"/en/v4/object": "/en/free-pro-team@latest/graphql/reference/objects",
|
|
||||||
"/en/v4/object/actorlocation": "/en/free-pro-team@latest/graphql/reference/objects#actorlocation",
|
|
||||||
"/en/v4/object/addedtoprojectevent": "/en/free-pro-team@latest/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/en/v4/previews": "/en/free-pro-team@latest/graphql/overview/schema-previews",
|
|
||||||
"/en/v4/public_schema": "/en/free-pro-team@latest/graphql/overview/public-schema",
|
|
||||||
"/en/v4/query": "/en/free-pro-team@latest/graphql/reference/queries",
|
|
||||||
"/en/v4/reference": "/en/free-pro-team@latest/graphql/reference",
|
|
||||||
"/en/v4/scalar": "/en/free-pro-team@latest/graphql/reference/scalars",
|
|
||||||
"/en/v4/scalar/boolean": "/en/free-pro-team@latest/graphql/reference/scalars#boolean",
|
|
||||||
"/en/v4/scalar/date": "/en/free-pro-team@latest/graphql/reference/scalars#date",
|
|
||||||
"/en/v4/union": "/en/free-pro-team@latest/graphql/reference/unions",
|
|
||||||
"/en/v4/union/assignee": "/en/free-pro-team@latest/graphql/reference/unions#assignee",
|
|
||||||
"/en/v4/union/auditentryactor": "/en/free-pro-team@latest/graphql/reference/unions#auditentryactor",
|
|
||||||
"/enterprise/2.18/user/v4/enum": "/en/enterprise/2.18/user/graphql/reference/enums",
|
|
||||||
"/enterprise/2.18/user/v4/enum/auditlogorderfield": "/en/enterprise/2.18/user/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/enterprise/2.18/user/v4/enum/checkannotationlevel": "/en/enterprise/2.18/user/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/enterprise/2.18/user/v4/guides": "/en/enterprise/2.18/user/graphql/guides",
|
|
||||||
"/enterprise/2.18/user/v4/input_object": "/en/enterprise/2.18/user/graphql/reference/input-objects",
|
|
||||||
"/enterprise/2.18/user/v4/interface": "/en/enterprise/2.18/user/graphql/reference/interfaces",
|
|
||||||
"/enterprise/2.18/user/v4/interface/actor": "/en/enterprise/2.18/user/graphql/reference/interfaces#actor",
|
|
||||||
"/enterprise/2.18/user/v4/interface/assignable": "/en/enterprise/2.18/user/graphql/reference/interfaces#assignable",
|
|
||||||
"/enterprise/2.18/user/v4/mutation": "/en/enterprise/2.18/user/graphql/reference/mutations",
|
|
||||||
"/enterprise/2.18/user/v4/object": "/en/enterprise/2.18/user/graphql/reference/objects",
|
|
||||||
"/enterprise/2.18/user/v4/object/actorlocation": "/en/enterprise/2.18/user/graphql/reference/objects#actorlocation",
|
|
||||||
"/enterprise/2.18/user/v4/object/addedtoprojectevent": "/en/enterprise/2.18/user/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/enterprise/2.18/user/v4/previews": "/en/enterprise/2.18/user/graphql/overview/schema-previews",
|
|
||||||
"/enterprise/2.18/user/v4/public_schema": "/en/enterprise/2.18/user/graphql/overview/public-schema",
|
|
||||||
"/enterprise/2.18/user/v4/query": "/en/enterprise/2.18/user/graphql/reference/queries",
|
|
||||||
"/enterprise/2.18/user/v4/reference": "/en/enterprise/2.18/user/graphql/reference",
|
|
||||||
"/enterprise/2.18/user/v4/scalar": "/en/enterprise/2.18/user/graphql/reference/scalars",
|
|
||||||
"/enterprise/2.18/user/v4/scalar/boolean": "/en/enterprise/2.18/user/graphql/reference/scalars#boolean",
|
|
||||||
"/enterprise/2.18/user/v4/scalar/date": "/en/enterprise/2.18/user/graphql/reference/scalars#date",
|
|
||||||
"/enterprise/2.18/user/v4/union": "/en/enterprise/2.18/user/graphql/reference/unions",
|
|
||||||
"/enterprise/2.18/user/v4/union/auditentryactor": "/en/enterprise/2.18/user/graphql/reference/unions#auditentryactor",
|
|
||||||
"/enterprise/2.18/v4/enum": "/en/enterprise/2.18/user/graphql/reference/enums",
|
|
||||||
"/enterprise/2.18/v4/enum/auditlogorderfield": "/en/enterprise/2.18/user/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/enterprise/2.18/v4/enum/checkannotationlevel": "/en/enterprise/2.18/user/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/enterprise/2.18/v4/guides": "/en/enterprise/2.18/user/graphql/guides",
|
|
||||||
"/enterprise/2.18/v4/input_object": "/en/enterprise/2.18/user/graphql/reference/input-objects",
|
|
||||||
"/enterprise/2.18/v4/interface": "/en/enterprise/2.18/user/graphql/reference/interfaces",
|
|
||||||
"/enterprise/2.18/v4/interface/actor": "/en/enterprise/2.18/user/graphql/reference/interfaces#actor",
|
|
||||||
"/enterprise/2.18/v4/interface/assignable": "/en/enterprise/2.18/user/graphql/reference/interfaces#assignable",
|
|
||||||
"/enterprise/2.18/v4/mutation": "/en/enterprise/2.18/user/graphql/reference/mutations",
|
|
||||||
"/enterprise/2.18/v4/object": "/en/enterprise/2.18/user/graphql/reference/objects",
|
|
||||||
"/enterprise/2.18/v4/object/actorlocation": "/en/enterprise/2.18/user/graphql/reference/objects#actorlocation",
|
|
||||||
"/enterprise/2.18/v4/object/addedtoprojectevent": "/en/enterprise/2.18/user/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/enterprise/2.18/v4/previews": "/en/enterprise/2.18/user/graphql/overview/schema-previews",
|
|
||||||
"/enterprise/2.18/v4/public_schema": "/en/enterprise/2.18/user/graphql/overview/public-schema",
|
|
||||||
"/enterprise/2.18/v4/query": "/en/enterprise/2.18/user/graphql/reference/queries",
|
|
||||||
"/enterprise/2.18/v4/reference": "/en/enterprise/2.18/user/graphql/reference",
|
|
||||||
"/enterprise/2.18/v4/scalar": "/en/enterprise/2.18/user/graphql/reference/scalars",
|
|
||||||
"/enterprise/2.18/v4/scalar/boolean": "/en/enterprise/2.18/user/graphql/reference/scalars#boolean",
|
|
||||||
"/enterprise/2.18/v4/scalar/date": "/en/enterprise/2.18/user/graphql/reference/scalars#date",
|
|
||||||
"/enterprise/2.18/v4/union": "/en/enterprise/2.18/user/graphql/reference/unions",
|
|
||||||
"/enterprise/2.18/v4/union/auditentryactor": "/en/enterprise/2.18/user/graphql/reference/unions#auditentryactor",
|
|
||||||
"/enterprise/2.19/user/v4/enum": "/en/enterprise-server@2.19/graphql/reference/enums",
|
|
||||||
"/enterprise/2.19/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.19/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/enterprise/2.19/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.19/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/enterprise/2.19/user/v4/guides": "/en/enterprise-server@2.19/graphql/guides",
|
|
||||||
"/enterprise/2.19/user/v4/input_object": "/en/enterprise-server@2.19/graphql/reference/input-objects",
|
|
||||||
"/enterprise/2.19/user/v4/interface": "/en/enterprise-server@2.19/graphql/reference/interfaces",
|
|
||||||
"/enterprise/2.19/user/v4/interface/actor": "/en/enterprise-server@2.19/graphql/reference/interfaces#actor",
|
|
||||||
"/enterprise/2.19/user/v4/interface/assignable": "/en/enterprise-server@2.19/graphql/reference/interfaces#assignable",
|
|
||||||
"/enterprise/2.19/user/v4/mutation": "/en/enterprise-server@2.19/graphql/reference/mutations",
|
|
||||||
"/enterprise/2.19/user/v4/object": "/en/enterprise-server@2.19/graphql/reference/objects",
|
|
||||||
"/enterprise/2.19/user/v4/object/actorlocation": "/en/enterprise-server@2.19/graphql/reference/objects#actorlocation",
|
|
||||||
"/enterprise/2.19/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.19/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/enterprise/2.19/user/v4/previews": "/en/enterprise-server@2.19/graphql/overview/schema-previews",
|
|
||||||
"/enterprise/2.19/user/v4/public_schema": "/en/enterprise-server@2.19/graphql/overview/public-schema",
|
|
||||||
"/enterprise/2.19/user/v4/query": "/en/enterprise-server@2.19/graphql/reference/queries",
|
|
||||||
"/enterprise/2.19/user/v4/reference": "/en/enterprise-server@2.19/graphql/reference",
|
|
||||||
"/enterprise/2.19/user/v4/scalar": "/en/enterprise-server@2.19/graphql/reference/scalars",
|
|
||||||
"/enterprise/2.19/user/v4/scalar/boolean": "/en/enterprise-server@2.19/graphql/reference/scalars#boolean",
|
|
||||||
"/enterprise/2.19/user/v4/scalar/date": "/en/enterprise-server@2.19/graphql/reference/scalars#date",
|
|
||||||
"/enterprise/2.19/user/v4/union": "/en/enterprise-server@2.19/graphql/reference/unions",
|
|
||||||
"/enterprise/2.19/user/v4/union/assignee": "/en/enterprise-server@2.19/graphql/reference/unions#assignee",
|
|
||||||
"/enterprise/2.19/user/v4/union/auditentryactor": "/en/enterprise-server@2.19/graphql/reference/unions#auditentryactor",
|
|
||||||
"/enterprise/2.19/v4/enum": "/en/enterprise-server@2.19/graphql/reference/enums",
|
|
||||||
"/enterprise/2.19/v4/enum/auditlogorderfield": "/en/enterprise-server@2.19/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/enterprise/2.19/v4/enum/checkannotationlevel": "/en/enterprise-server@2.19/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/enterprise/2.19/v4/guides": "/en/enterprise-server@2.19/graphql/guides",
|
|
||||||
"/enterprise/2.19/v4/input_object": "/en/enterprise-server@2.19/graphql/reference/input-objects",
|
|
||||||
"/enterprise/2.19/v4/interface": "/en/enterprise-server@2.19/graphql/reference/interfaces",
|
|
||||||
"/enterprise/2.19/v4/interface/actor": "/en/enterprise-server@2.19/graphql/reference/interfaces#actor",
|
|
||||||
"/enterprise/2.19/v4/interface/assignable": "/en/enterprise-server@2.19/graphql/reference/interfaces#assignable",
|
|
||||||
"/enterprise/2.19/v4/mutation": "/en/enterprise-server@2.19/graphql/reference/mutations",
|
|
||||||
"/enterprise/2.19/v4/object": "/en/enterprise-server@2.19/graphql/reference/objects",
|
|
||||||
"/enterprise/2.19/v4/object/actorlocation": "/en/enterprise-server@2.19/graphql/reference/objects#actorlocation",
|
|
||||||
"/enterprise/2.19/v4/object/addedtoprojectevent": "/en/enterprise-server@2.19/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/enterprise/2.19/v4/previews": "/en/enterprise-server@2.19/graphql/overview/schema-previews",
|
|
||||||
"/enterprise/2.19/v4/public_schema": "/en/enterprise-server@2.19/graphql/overview/public-schema",
|
|
||||||
"/enterprise/2.19/v4/query": "/en/enterprise-server@2.19/graphql/reference/queries",
|
|
||||||
"/enterprise/2.19/v4/reference": "/en/enterprise-server@2.19/graphql/reference",
|
|
||||||
"/enterprise/2.19/v4/scalar": "/en/enterprise-server@2.19/graphql/reference/scalars",
|
|
||||||
"/enterprise/2.19/v4/scalar/boolean": "/en/enterprise-server@2.19/graphql/reference/scalars#boolean",
|
|
||||||
"/enterprise/2.19/v4/scalar/date": "/en/enterprise-server@2.19/graphql/reference/scalars#date",
|
|
||||||
"/enterprise/2.19/v4/union": "/en/enterprise-server@2.19/graphql/reference/unions",
|
|
||||||
"/enterprise/2.19/v4/union/assignee": "/en/enterprise-server@2.19/graphql/reference/unions#assignee",
|
|
||||||
"/enterprise/2.19/v4/union/auditentryactor": "/en/enterprise-server@2.19/graphql/reference/unions#auditentryactor",
|
|
||||||
"/enterprise/2.20/user/v4/enum": "/en/enterprise-server@2.20/graphql/reference/enums",
|
|
||||||
"/enterprise/2.20/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.20/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/enterprise/2.20/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.20/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/enterprise/2.20/user/v4/guides": "/en/enterprise-server@2.20/graphql/guides",
|
|
||||||
"/enterprise/2.20/user/v4/input_object": "/en/enterprise-server@2.20/graphql/reference/input-objects",
|
|
||||||
"/enterprise/2.20/user/v4/interface": "/en/enterprise-server@2.20/graphql/reference/interfaces",
|
|
||||||
"/enterprise/2.20/user/v4/interface/actor": "/en/enterprise-server@2.20/graphql/reference/interfaces#actor",
|
|
||||||
"/enterprise/2.20/user/v4/interface/assignable": "/en/enterprise-server@2.20/graphql/reference/interfaces#assignable",
|
|
||||||
"/enterprise/2.20/user/v4/mutation": "/en/enterprise-server@2.20/graphql/reference/mutations",
|
|
||||||
"/enterprise/2.20/user/v4/object": "/en/enterprise-server@2.20/graphql/reference/objects",
|
|
||||||
"/enterprise/2.20/user/v4/object/actorlocation": "/en/enterprise-server@2.20/graphql/reference/objects#actorlocation",
|
|
||||||
"/enterprise/2.20/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.20/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/enterprise/2.20/user/v4/previews": "/en/enterprise-server@2.20/graphql/overview/schema-previews",
|
|
||||||
"/enterprise/2.20/user/v4/public_schema": "/en/enterprise-server@2.20/graphql/overview/public-schema",
|
|
||||||
"/enterprise/2.20/user/v4/query": "/en/enterprise-server@2.20/graphql/reference/queries",
|
|
||||||
"/enterprise/2.20/user/v4/reference": "/en/enterprise-server@2.20/graphql/reference",
|
|
||||||
"/enterprise/2.20/user/v4/scalar": "/en/enterprise-server@2.20/graphql/reference/scalars",
|
|
||||||
"/enterprise/2.20/user/v4/scalar/boolean": "/en/enterprise-server@2.20/graphql/reference/scalars#boolean",
|
|
||||||
"/enterprise/2.20/user/v4/scalar/date": "/en/enterprise-server@2.20/graphql/reference/scalars#date",
|
|
||||||
"/enterprise/2.20/user/v4/union": "/en/enterprise-server@2.20/graphql/reference/unions",
|
|
||||||
"/enterprise/2.20/user/v4/union/assignee": "/en/enterprise-server@2.20/graphql/reference/unions#assignee",
|
|
||||||
"/enterprise/2.20/user/v4/union/auditentryactor": "/en/enterprise-server@2.20/graphql/reference/unions#auditentryactor",
|
|
||||||
"/enterprise/2.20/v4/enum": "/en/enterprise-server@2.20/graphql/reference/enums",
|
|
||||||
"/enterprise/2.20/v4/enum/auditlogorderfield": "/en/enterprise-server@2.20/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/enterprise/2.20/v4/enum/checkannotationlevel": "/en/enterprise-server@2.20/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/enterprise/2.20/v4/guides": "/en/enterprise-server@2.20/graphql/guides",
|
|
||||||
"/enterprise/2.20/v4/input_object": "/en/enterprise-server@2.20/graphql/reference/input-objects",
|
|
||||||
"/enterprise/2.20/v4/interface": "/en/enterprise-server@2.20/graphql/reference/interfaces",
|
|
||||||
"/enterprise/2.20/v4/interface/actor": "/en/enterprise-server@2.20/graphql/reference/interfaces#actor",
|
|
||||||
"/enterprise/2.20/v4/interface/assignable": "/en/enterprise-server@2.20/graphql/reference/interfaces#assignable",
|
|
||||||
"/enterprise/2.20/v4/mutation": "/en/enterprise-server@2.20/graphql/reference/mutations",
|
|
||||||
"/enterprise/2.20/v4/object": "/en/enterprise-server@2.20/graphql/reference/objects",
|
|
||||||
"/enterprise/2.20/v4/object/actorlocation": "/en/enterprise-server@2.20/graphql/reference/objects#actorlocation",
|
|
||||||
"/enterprise/2.20/v4/object/addedtoprojectevent": "/en/enterprise-server@2.20/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/enterprise/2.20/v4/previews": "/en/enterprise-server@2.20/graphql/overview/schema-previews",
|
|
||||||
"/enterprise/2.20/v4/public_schema": "/en/enterprise-server@2.20/graphql/overview/public-schema",
|
|
||||||
"/enterprise/2.20/v4/query": "/en/enterprise-server@2.20/graphql/reference/queries",
|
|
||||||
"/enterprise/2.20/v4/reference": "/en/enterprise-server@2.20/graphql/reference",
|
|
||||||
"/enterprise/2.20/v4/scalar": "/en/enterprise-server@2.20/graphql/reference/scalars",
|
|
||||||
"/enterprise/2.20/v4/scalar/boolean": "/en/enterprise-server@2.20/graphql/reference/scalars#boolean",
|
|
||||||
"/enterprise/2.20/v4/scalar/date": "/en/enterprise-server@2.20/graphql/reference/scalars#date",
|
|
||||||
"/enterprise/2.20/v4/union": "/en/enterprise-server@2.20/graphql/reference/unions",
|
|
||||||
"/enterprise/2.20/v4/union/assignee": "/en/enterprise-server@2.20/graphql/reference/unions#assignee",
|
|
||||||
"/enterprise/2.20/v4/union/auditentryactor": "/en/enterprise-server@2.20/graphql/reference/unions#auditentryactor",
|
|
||||||
"/enterprise/2.21/user/v4/enum": "/en/enterprise-server@2.21/graphql/reference/enums",
|
|
||||||
"/enterprise/2.21/user/v4/enum/auditlogorderfield": "/en/enterprise-server@2.21/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/enterprise/2.21/user/v4/enum/checkannotationlevel": "/en/enterprise-server@2.21/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/enterprise/2.21/user/v4/guides": "/en/enterprise-server@2.21/graphql/guides",
|
|
||||||
"/enterprise/2.21/user/v4/input_object": "/en/enterprise-server@2.21/graphql/reference/input-objects",
|
|
||||||
"/enterprise/2.21/user/v4/interface": "/en/enterprise-server@2.21/graphql/reference/interfaces",
|
|
||||||
"/enterprise/2.21/user/v4/interface/actor": "/en/enterprise-server@2.21/graphql/reference/interfaces#actor",
|
|
||||||
"/enterprise/2.21/user/v4/interface/assignable": "/en/enterprise-server@2.21/graphql/reference/interfaces#assignable",
|
|
||||||
"/enterprise/2.21/user/v4/mutation": "/en/enterprise-server@2.21/graphql/reference/mutations",
|
|
||||||
"/enterprise/2.21/user/v4/object": "/en/enterprise-server@2.21/graphql/reference/objects",
|
|
||||||
"/enterprise/2.21/user/v4/object/actorlocation": "/en/enterprise-server@2.21/graphql/reference/objects#actorlocation",
|
|
||||||
"/enterprise/2.21/user/v4/object/addedtoprojectevent": "/en/enterprise-server@2.21/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/enterprise/2.21/user/v4/previews": "/en/enterprise-server@2.21/graphql/overview/schema-previews",
|
|
||||||
"/enterprise/2.21/user/v4/public_schema": "/en/enterprise-server@2.21/graphql/overview/public-schema",
|
|
||||||
"/enterprise/2.21/user/v4/query": "/en/enterprise-server@2.21/graphql/reference/queries",
|
|
||||||
"/enterprise/2.21/user/v4/reference": "/en/enterprise-server@2.21/graphql/reference",
|
|
||||||
"/enterprise/2.21/user/v4/scalar": "/en/enterprise-server@2.21/graphql/reference/scalars",
|
|
||||||
"/enterprise/2.21/user/v4/scalar/boolean": "/en/enterprise-server@2.21/graphql/reference/scalars#boolean",
|
|
||||||
"/enterprise/2.21/user/v4/scalar/date": "/en/enterprise-server@2.21/graphql/reference/scalars#date",
|
|
||||||
"/enterprise/2.21/user/v4/union": "/en/enterprise-server@2.21/graphql/reference/unions",
|
|
||||||
"/enterprise/2.21/user/v4/union/assignee": "/en/enterprise-server@2.21/graphql/reference/unions#assignee",
|
|
||||||
"/enterprise/2.21/user/v4/union/auditentryactor": "/en/enterprise-server@2.21/graphql/reference/unions#auditentryactor",
|
|
||||||
"/enterprise/2.21/v4/enum": "/en/enterprise-server@2.21/graphql/reference/enums",
|
|
||||||
"/enterprise/2.21/v4/enum/auditlogorderfield": "/en/enterprise-server@2.21/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/enterprise/2.21/v4/enum/checkannotationlevel": "/en/enterprise-server@2.21/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/enterprise/2.21/v4/guides": "/en/enterprise-server@2.21/graphql/guides",
|
|
||||||
"/enterprise/2.21/v4/input_object": "/en/enterprise-server@2.21/graphql/reference/input-objects",
|
|
||||||
"/enterprise/2.21/v4/interface": "/en/enterprise-server@2.21/graphql/reference/interfaces",
|
|
||||||
"/enterprise/2.21/v4/interface/actor": "/en/enterprise-server@2.21/graphql/reference/interfaces#actor",
|
|
||||||
"/enterprise/2.21/v4/interface/assignable": "/en/enterprise-server@2.21/graphql/reference/interfaces#assignable",
|
|
||||||
"/enterprise/2.21/v4/mutation": "/en/enterprise-server@2.21/graphql/reference/mutations",
|
|
||||||
"/enterprise/2.21/v4/object": "/en/enterprise-server@2.21/graphql/reference/objects",
|
|
||||||
"/enterprise/2.21/v4/object/actorlocation": "/en/enterprise-server@2.21/graphql/reference/objects#actorlocation",
|
|
||||||
"/enterprise/2.21/v4/object/addedtoprojectevent": "/en/enterprise-server@2.21/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/enterprise/2.21/v4/previews": "/en/enterprise-server@2.21/graphql/overview/schema-previews",
|
|
||||||
"/enterprise/2.21/v4/public_schema": "/en/enterprise-server@2.21/graphql/overview/public-schema",
|
|
||||||
"/enterprise/2.21/v4/query": "/en/enterprise-server@2.21/graphql/reference/queries",
|
|
||||||
"/enterprise/2.21/v4/reference": "/en/enterprise-server@2.21/graphql/reference",
|
|
||||||
"/enterprise/2.21/v4/scalar": "/en/enterprise-server@2.21/graphql/reference/scalars",
|
|
||||||
"/enterprise/2.21/v4/scalar/boolean": "/en/enterprise-server@2.21/graphql/reference/scalars#boolean",
|
|
||||||
"/enterprise/2.21/v4/scalar/date": "/en/enterprise-server@2.21/graphql/reference/scalars#date",
|
|
||||||
"/enterprise/2.21/v4/union": "/en/enterprise-server@2.21/graphql/reference/unions",
|
|
||||||
"/enterprise/2.21/v4/union/assignee": "/en/enterprise-server@2.21/graphql/reference/unions#assignee",
|
|
||||||
"/enterprise/2.21/v4/union/auditentryactor": "/en/enterprise-server@2.21/graphql/reference/unions#auditentryactor",
|
|
||||||
"/enterprise/v4/enum": "/en/enterprise-server/graphql/reference/enums",
|
|
||||||
"/enterprise/v4/enum/auditlogorderfield": "/en/enterprise-server/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/enterprise/v4/enum/checkannotationlevel": "/en/enterprise-server/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/enterprise/v4/guides": "/en/enterprise-server/graphql/guides",
|
|
||||||
"/enterprise/v4/input_object": "/en/enterprise-server/graphql/reference/input-objects",
|
|
||||||
"/enterprise/v4/interface": "/en/enterprise-server/graphql/reference/interfaces",
|
|
||||||
"/enterprise/v4/interface/actor": "/en/enterprise-server/graphql/reference/interfaces#actor",
|
|
||||||
"/enterprise/v4/interface/assignable": "/en/enterprise-server/graphql/reference/interfaces#assignable",
|
|
||||||
"/enterprise/v4/mutation": "/en/enterprise-server/graphql/reference/mutations",
|
|
||||||
"/enterprise/v4/object": "/en/enterprise-server/graphql/reference/objects",
|
|
||||||
"/enterprise/v4/object/actorlocation": "/en/enterprise-server/graphql/reference/objects#actorlocation",
|
|
||||||
"/enterprise/v4/object/addedtoprojectevent": "/en/enterprise-server/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/enterprise/v4/previews": "/en/enterprise-server/graphql/overview/schema-previews",
|
|
||||||
"/enterprise/v4/public_schema": "/en/enterprise-server/graphql/overview/public-schema",
|
|
||||||
"/enterprise/v4/query": "/en/enterprise-server/graphql/reference/queries",
|
|
||||||
"/enterprise/v4/reference": "/en/enterprise-server/graphql/reference",
|
|
||||||
"/enterprise/v4/scalar": "/en/enterprise-server/graphql/reference/scalars",
|
|
||||||
"/enterprise/v4/scalar/boolean": "/en/enterprise-server/graphql/reference/scalars#boolean",
|
|
||||||
"/enterprise/v4/scalar/date": "/en/enterprise-server/graphql/reference/scalars#date",
|
|
||||||
"/enterprise/v4/union": "/en/enterprise-server/graphql/reference/unions",
|
|
||||||
"/enterprise/v4/union/assignee": "/en/enterprise-server/graphql/reference/unions#assignee",
|
|
||||||
"/enterprise/v4/union/auditentryactor": "/en/enterprise-server/graphql/reference/unions#auditentryactor",
|
|
||||||
"/v4/enum": "/en/free-pro-team@latest/graphql/reference/enums",
|
|
||||||
"/v4/enum/auditlogorderfield": "/en/free-pro-team@latest/graphql/reference/enums#auditlogorderfield",
|
|
||||||
"/v4/enum/checkannotationlevel": "/en/free-pro-team@latest/graphql/reference/enums#checkannotationlevel",
|
|
||||||
"/v4/guides": "/en/free-pro-team@latest/graphql/guides",
|
|
||||||
"/v4/input_object": "/en/free-pro-team@latest/graphql/reference/input-objects",
|
|
||||||
"/v4/input_object/acceptenterpriseadministratorinvitationinput": "/en/free-pro-team@latest/graphql/reference/input-objects#acceptenterpriseadministratorinvitationinput",
|
|
||||||
"/v4/input_object/accepttopicsuggestioninput": "/en/free-pro-team@latest/graphql/reference/input-objects#accepttopicsuggestioninput",
|
|
||||||
"/v4/interface": "/en/free-pro-team@latest/graphql/reference/interfaces",
|
|
||||||
"/v4/interface/actor": "/en/free-pro-team@latest/graphql/reference/interfaces#actor",
|
|
||||||
"/v4/interface/assignable": "/en/free-pro-team@latest/graphql/reference/interfaces#assignable",
|
|
||||||
"/v4/mutation": "/en/free-pro-team@latest/graphql/reference/mutations",
|
|
||||||
"/v4/mutation/acceptenterpriseadministratorinvitation": "/en/free-pro-team@latest/graphql/reference/mutations#acceptenterpriseadministratorinvitation",
|
|
||||||
"/v4/mutation/accepttopicsuggestion": "/en/free-pro-team@latest/graphql/reference/mutations#accepttopicsuggestion",
|
|
||||||
"/v4/object": "/en/free-pro-team@latest/graphql/reference/objects",
|
|
||||||
"/v4/object/actorlocation": "/en/free-pro-team@latest/graphql/reference/objects#actorlocation",
|
|
||||||
"/v4/object/addedtoprojectevent": "/en/free-pro-team@latest/graphql/reference/objects#addedtoprojectevent",
|
|
||||||
"/v4/previews": "/en/free-pro-team@latest/graphql/overview/schema-previews",
|
|
||||||
"/v4/public_schema": "/en/free-pro-team@latest/graphql/overview/public-schema",
|
|
||||||
"/v4/query": "/en/free-pro-team@latest/graphql/reference/queries",
|
|
||||||
"/v4/reference": "/en/free-pro-team@latest/graphql/reference",
|
|
||||||
"/v4/scalar": "/en/free-pro-team@latest/graphql/reference/scalars",
|
|
||||||
"/v4/scalar/boolean": "/en/free-pro-team@latest/graphql/reference/scalars#boolean",
|
|
||||||
"/v4/scalar/date": "/en/free-pro-team@latest/graphql/reference/scalars#date",
|
|
||||||
"/v4/union": "/en/free-pro-team@latest/graphql/reference/unions",
|
|
||||||
"/v4/union/assignee": "/en/free-pro-team@latest/graphql/reference/unions#assignee",
|
|
||||||
"/v4/union/auditentryactor": "/en/free-pro-team@latest/graphql/reference/unions#auditentryactor"
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
title: Some page that exists in the content directory but not the translations directory
|
|
||||||
versions:
|
|
||||||
free-pro-team: '*'
|
|
||||||
---
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
title: This is an article
|
|
||||||
intro: 'I've got broken frontmatter'
|
|
||||||
versions:
|
|
||||||
free-pro-team: '*'
|
|
||||||
---
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
---
|
|
||||||
title: A page with redirects
|
|
||||||
redirect_from:
|
|
||||||
- /some-old-path
|
|
||||||
versions:
|
|
||||||
free-pro-team: '*'
|
|
||||||
---
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
title: A sample article
|
|
||||||
versions:
|
|
||||||
free-pro-team: '*'
|
|
||||||
---
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
title: A sample article
|
|
||||||
versions:
|
|
||||||
free-pro-team: '*'
|
|
||||||
---
|
|
||||||
|
|
||||||
506
tests/fixtures/new-versions/rest-redirects.json
vendored
506
tests/fixtures/new-versions/rest-redirects.json
vendored
@@ -1,506 +0,0 @@
|
|||||||
{
|
|
||||||
"/en/enterprise/2.18/v3/activity/event_types": "/en/enterprise/2.18/user/developers/webhooks-and-events/github-event-types",
|
|
||||||
"/en/enterprise/2.18/v3/activity/events/types": "/en/enterprise/2.18/user/developers/webhooks-and-events/webhook-events-and-payloads",
|
|
||||||
"/en/enterprise/2.18/v3/activity/events": "/en/enterprise/2.18/user/rest/reference/activity#events",
|
|
||||||
"/en/enterprise/2.18/v3/activity/feeds": "/en/enterprise/2.18/user/rest/reference/activity#feeds",
|
|
||||||
"/en/enterprise/2.18/v3/activity": "/en/enterprise/2.18/user/rest/reference/activity",
|
|
||||||
"/en/enterprise/2.18/v3/activity/notifications": "/en/enterprise/2.18/user/rest/reference/activity#notifications",
|
|
||||||
"/en/enterprise/2.18/v3/activity/starring": "/en/enterprise/2.18/user/rest/reference/activity#starring",
|
|
||||||
"/en/enterprise/2.18/v3/activity/watching": "/en/enterprise/2.18/user/rest/reference/activity#watching",
|
|
||||||
"/en/enterprise/2.18/v3/apps/available-endpoints": "/en/enterprise/2.18/user/rest/overview/endpoints-available-for-github-apps",
|
|
||||||
"/en/enterprise/2.18/v3/apps": "/en/enterprise/2.18/user/rest/reference/apps",
|
|
||||||
"/en/enterprise/2.18/v3/apps/installations": "/en/enterprise/2.18/user/rest/reference/apps#installations",
|
|
||||||
"/en/enterprise/2.18/v3/apps/permissions": "/en/enterprise/2.18/user/rest/reference/permissions-required-for-github-apps",
|
|
||||||
"/en/enterprise/2.18/v3/checks": "/en/enterprise/2.18/user/rest/reference/checks",
|
|
||||||
"/en/enterprise/2.18/v3/checks/runs": "/en/enterprise/2.18/user/rest/reference/checks#runs",
|
|
||||||
"/en/enterprise/2.18/v3/checks/suites": "/en/enterprise/2.18/user/rest/reference/checks#suites",
|
|
||||||
"/en/enterprise/2.18/v3/codes_of_conduct": "/en/enterprise/2.18/user/rest/reference/codes-of-conduct",
|
|
||||||
"/en/enterprise/2.18/v3/emojis": "/en/enterprise/2.18/user/rest/reference/emojis",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/admin_stats": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#admin-stats",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/global_webhooks": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#global-webhooks",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin": "/en/enterprise/2.18/user/rest/reference/enterprise-admin",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/ldap": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#ldap",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/license": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#license",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/management_console": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#management-console",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/org_pre_receive_hooks": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/orgs": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#orgs",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/pre_receive_environments": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#pre-receive-environments",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/repo_pre_receive_hooks": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#repo-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/search_indexing": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#search-indexing",
|
|
||||||
"/en/enterprise/2.18/v3/enterprise-admin/users": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#users",
|
|
||||||
"/en/enterprise/2.18/v3/gists/comments": "/en/enterprise/2.18/user/rest/reference/gists#comments",
|
|
||||||
"/en/enterprise/2.18/v3/gists": "/en/enterprise/2.18/user/rest/reference/gists",
|
|
||||||
"/en/enterprise/2.18/v3/git/blobs": "/en/enterprise/2.18/user/rest/reference/git#blobs",
|
|
||||||
"/en/enterprise/2.18/v3/git/commits": "/en/enterprise/2.18/user/rest/reference/git#commits",
|
|
||||||
"/en/enterprise/2.18/v3/git": "/en/enterprise/2.18/user/rest/reference/git",
|
|
||||||
"/en/enterprise/2.18/v3/git/refs": "/en/enterprise/2.18/user/rest/reference/git#refs",
|
|
||||||
"/en/enterprise/2.18/v3/git/tags": "/en/enterprise/2.18/user/rest/reference/git#tags",
|
|
||||||
"/en/enterprise/2.18/v3/git/trees": "/en/enterprise/2.18/user/rest/reference/git#trees",
|
|
||||||
"/en/enterprise/2.18/v3/gitignore": "/en/enterprise/2.18/user/rest/reference/gitignore",
|
|
||||||
"/en/enterprise/2.18/v3/issues/assignees": "/en/enterprise/2.18/user/rest/reference/issues#assignees",
|
|
||||||
"/en/enterprise/2.18/v3/issues/comments": "/en/enterprise/2.18/user/rest/reference/issues#comments",
|
|
||||||
"/en/enterprise/2.18/v3/issues/events": "/en/enterprise/2.18/user/rest/reference/issues#events",
|
|
||||||
"/en/enterprise/2.18/v3/issues": "/en/enterprise/2.18/user/rest/reference/issues",
|
|
||||||
"/en/enterprise/2.18/v3/issues/issue-event-types": "/en/enterprise/2.18/user/developers/webhooks-and-events/issue-event-types",
|
|
||||||
"/en/enterprise/2.18/v3/issues/labels": "/en/enterprise/2.18/user/rest/reference/issues#labels",
|
|
||||||
"/en/enterprise/2.18/v3/issues/milestones": "/en/enterprise/2.18/user/rest/reference/issues#milestones",
|
|
||||||
"/en/enterprise/2.18/v3/issues/timeline": "/en/enterprise/2.18/user/rest/reference/issues#timeline",
|
|
||||||
"/en/enterprise/2.18/v3/licenses": "/en/enterprise/2.18/user/rest/reference/licenses",
|
|
||||||
"/en/enterprise/2.18/v3/markdown": "/en/enterprise/2.18/user/rest/reference/markdown",
|
|
||||||
"/en/enterprise/2.18/v3/meta": "/en/enterprise/2.18/user/rest/reference/meta",
|
|
||||||
"/en/enterprise/2.18/v3/oauth_authorizations": "/en/enterprise/2.18/user/rest/reference/oauth-authorizations",
|
|
||||||
"/en/enterprise/2.18/v3/orgs/hooks": "/en/enterprise/2.18/user/rest/reference/orgs#hooks",
|
|
||||||
"/en/enterprise/2.18/v3/orgs": "/en/enterprise/2.18/user/rest/reference/orgs",
|
|
||||||
"/en/enterprise/2.18/v3/orgs/members": "/en/enterprise/2.18/user/rest/reference/orgs#members",
|
|
||||||
"/en/enterprise/2.18/v3/orgs/outside_collaborators": "/en/enterprise/2.18/user/rest/reference/orgs#outside-collaborators",
|
|
||||||
"/en/enterprise/2.18/v3/orgs/pre_receive_hooks": "/en/enterprise/2.18/user/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.18/v3/orgs/teams": "/en/enterprise/2.18/user/rest/reference/orgs#teams",
|
|
||||||
"/en/enterprise/2.18/v3/projects/cards": "/en/enterprise/2.18/user/rest/reference/projects#cards",
|
|
||||||
"/en/enterprise/2.18/v3/projects/collaborators": "/en/enterprise/2.18/user/rest/reference/projects#collaborators",
|
|
||||||
"/en/enterprise/2.18/v3/projects/columns": "/en/enterprise/2.18/user/rest/reference/projects#columns",
|
|
||||||
"/en/enterprise/2.18/v3/projects": "/en/enterprise/2.18/user/rest/reference/projects",
|
|
||||||
"/en/enterprise/2.18/v3/pulls/comments": "/en/enterprise/2.18/user/rest/reference/pulls#comments",
|
|
||||||
"/en/enterprise/2.18/v3/pulls": "/en/enterprise/2.18/user/rest/reference/pulls",
|
|
||||||
"/en/enterprise/2.18/v3/pulls/review_requests": "/en/enterprise/2.18/user/rest/reference/pulls#review-requests",
|
|
||||||
"/en/enterprise/2.18/v3/pulls/reviews": "/en/enterprise/2.18/user/rest/reference/pulls#reviews",
|
|
||||||
"/en/enterprise/2.18/v3/rate_limit": "/en/enterprise/2.18/user/rest/reference/rate-limit",
|
|
||||||
"/en/enterprise/2.18/v3/reactions": "/en/enterprise/2.18/user/rest/reference/reactions",
|
|
||||||
"/en/enterprise/2.18/v3/repos/branches": "/en/enterprise/2.18/user/rest/reference/repos#branches",
|
|
||||||
"/en/enterprise/2.18/v3/repos/collaborators": "/en/enterprise/2.18/user/rest/reference/repos#collaborators",
|
|
||||||
"/en/enterprise/2.18/v3/repos/comments": "/en/enterprise/2.18/user/rest/reference/repos#comments",
|
|
||||||
"/en/enterprise/2.18/v3/repos/commits": "/en/enterprise/2.18/user/rest/reference/repos#commits",
|
|
||||||
"/en/enterprise/2.18/v3/repos/contents": "/en/enterprise/2.18/user/rest/reference/repos#contents",
|
|
||||||
"/en/enterprise/2.18/v3/repos/deployments": "/en/enterprise/2.18/user/rest/reference/repos#deployments",
|
|
||||||
"/en/enterprise/2.18/v3/repos/downloads": "/en/enterprise/2.18/user/rest/reference/repos#downloads",
|
|
||||||
"/en/enterprise/2.18/v3/repos/forks": "/en/enterprise/2.18/user/rest/reference/repos#forks",
|
|
||||||
"/en/enterprise/2.18/v3/repos/hooks": "/en/enterprise/2.18/user/rest/reference/repos#hooks",
|
|
||||||
"/en/enterprise/2.18/v3/repos": "/en/enterprise/2.18/user/rest/reference/repos",
|
|
||||||
"/en/enterprise/2.18/v3/repos/invitations": "/en/enterprise/2.18/user/rest/reference/repos#invitations",
|
|
||||||
"/en/enterprise/2.18/v3/repos/keys": "/en/enterprise/2.18/user/rest/reference/repos#keys",
|
|
||||||
"/en/enterprise/2.18/v3/repos/merging": "/en/enterprise/2.18/user/rest/reference/repos#merging",
|
|
||||||
"/en/enterprise/2.18/v3/repos/pages": "/en/enterprise/2.18/user/rest/reference/repos#pages",
|
|
||||||
"/en/enterprise/2.18/v3/repos/pre_receive_hooks": "/en/enterprise/2.18/user/rest/reference/repos#pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.18/v3/repos/releases": "/en/enterprise/2.18/user/rest/reference/repos#releases",
|
|
||||||
"/en/enterprise/2.18/v3/repos/statistics": "/en/enterprise/2.18/user/rest/reference/repos#statistics",
|
|
||||||
"/en/enterprise/2.18/v3/repos/statuses": "/en/enterprise/2.18/user/rest/reference/repos#statuses",
|
|
||||||
"/en/enterprise/2.18/v3/search": "/en/enterprise/2.18/user/rest/reference/search",
|
|
||||||
"/en/enterprise/2.18/v3/teams/discussion_comments": "/en/enterprise/2.18/user/rest/reference/teams#discussion-comments",
|
|
||||||
"/en/enterprise/2.18/v3/teams/discussions": "/en/enterprise/2.18/user/rest/reference/teams#discussions",
|
|
||||||
"/en/enterprise/2.18/v3/teams": "/en/enterprise/2.18/user/rest/reference/teams",
|
|
||||||
"/en/enterprise/2.18/v3/teams/members": "/en/enterprise/2.18/user/rest/reference/teams#members",
|
|
||||||
"/en/enterprise/2.18/v3/users/administration": "/en/enterprise/2.18/user/rest/reference/users#administration",
|
|
||||||
"/en/enterprise/2.18/v3/users/emails": "/en/enterprise/2.18/user/rest/reference/users#emails",
|
|
||||||
"/en/enterprise/2.18/v3/users/followers": "/en/enterprise/2.18/user/rest/reference/users#followers",
|
|
||||||
"/en/enterprise/2.18/v3/users/gpg_keys": "/en/enterprise/2.18/user/rest/reference/users#gpg-keys",
|
|
||||||
"/en/enterprise/2.18/v3/users": "/en/enterprise/2.18/user/rest/reference/users",
|
|
||||||
"/en/enterprise/2.18/v3/users/keys": "/en/enterprise/2.18/user/rest/reference/users#keys",
|
|
||||||
"/en/enterprise/2.19/v3/activity/event_types": "/en/enterprise-server@2.19/developers/webhooks-and-events/github-event-types",
|
|
||||||
"/en/enterprise/2.19/v3/activity/events/types": "/en/enterprise-server@2.19/developers/webhooks-and-events/webhook-events-and-payloads",
|
|
||||||
"/en/enterprise/2.19/v3/activity/events": "/en/enterprise-server@2.19/rest/reference/activity#events",
|
|
||||||
"/en/enterprise/2.19/v3/activity/feeds": "/en/enterprise-server@2.19/rest/reference/activity#feeds",
|
|
||||||
"/en/enterprise/2.19/v3/activity": "/en/enterprise-server@2.19/rest/reference/activity",
|
|
||||||
"/en/enterprise/2.19/v3/activity/notifications": "/en/enterprise-server@2.19/rest/reference/activity#notifications",
|
|
||||||
"/en/enterprise/2.19/v3/activity/starring": "/en/enterprise-server@2.19/rest/reference/activity#starring",
|
|
||||||
"/en/enterprise/2.19/v3/activity/watching": "/en/enterprise-server@2.19/rest/reference/activity#watching",
|
|
||||||
"/en/enterprise/2.19/v3/apps/available-endpoints": "/en/enterprise-server@2.19/rest/overview/endpoints-available-for-github-apps",
|
|
||||||
"/en/enterprise/2.19/v3/apps": "/en/enterprise-server@2.19/rest/reference/apps",
|
|
||||||
"/en/enterprise/2.19/v3/apps/installations": "/en/enterprise-server@2.19/rest/reference/apps#installations",
|
|
||||||
"/en/enterprise/2.19/v3/apps/permissions": "/en/enterprise-server@2.19/rest/reference/permissions-required-for-github-apps",
|
|
||||||
"/en/enterprise/2.19/v3/checks": "/en/enterprise-server@2.19/rest/reference/checks",
|
|
||||||
"/en/enterprise/2.19/v3/checks/runs": "/en/enterprise-server@2.19/rest/reference/checks#runs",
|
|
||||||
"/en/enterprise/2.19/v3/checks/suites": "/en/enterprise-server@2.19/rest/reference/checks#suites",
|
|
||||||
"/en/enterprise/2.19/v3/codes_of_conduct": "/en/enterprise-server@2.19/rest/reference/codes-of-conduct",
|
|
||||||
"/en/enterprise/2.19/v3/emojis": "/en/enterprise-server@2.19/rest/reference/emojis",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/admin_stats": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#admin-stats",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/global_webhooks": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#global-webhooks",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin": "/en/enterprise-server@2.19/rest/reference/enterprise-admin",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/ldap": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#ldap",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/license": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#license",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/management_console": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#management-console",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/org_pre_receive_hooks": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/orgs": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#orgs",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/pre_receive_environments": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#pre-receive-environments",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/repo_pre_receive_hooks": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#repo-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/search_indexing": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#search-indexing",
|
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/users": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#users",
|
|
||||||
"/en/enterprise/2.19/v3/gists/comments": "/en/enterprise-server@2.19/rest/reference/gists#comments",
|
|
||||||
"/en/enterprise/2.19/v3/gists": "/en/enterprise-server@2.19/rest/reference/gists",
|
|
||||||
"/en/enterprise/2.19/v3/git/blobs": "/en/enterprise-server@2.19/rest/reference/git#blobs",
|
|
||||||
"/en/enterprise/2.19/v3/git/commits": "/en/enterprise-server@2.19/rest/reference/git#commits",
|
|
||||||
"/en/enterprise/2.19/v3/git": "/en/enterprise-server@2.19/rest/reference/git",
|
|
||||||
"/en/enterprise/2.19/v3/git/refs": "/en/enterprise-server@2.19/rest/reference/git#refs",
|
|
||||||
"/en/enterprise/2.19/v3/git/tags": "/en/enterprise-server@2.19/rest/reference/git#tags",
|
|
||||||
"/en/enterprise/2.19/v3/git/trees": "/en/enterprise-server@2.19/rest/reference/git#trees",
|
|
||||||
"/en/enterprise/2.19/v3/gitignore": "/en/enterprise-server@2.19/rest/reference/gitignore",
|
|
||||||
"/en/enterprise/2.19/v3/issues/assignees": "/en/enterprise-server@2.19/rest/reference/issues#assignees",
|
|
||||||
"/en/enterprise/2.19/v3/issues/comments": "/en/enterprise-server@2.19/rest/reference/issues#comments",
|
|
||||||
"/en/enterprise/2.19/v3/issues/events": "/en/enterprise-server@2.19/rest/reference/issues#events",
|
|
||||||
"/en/enterprise/2.19/v3/issues": "/en/enterprise-server@2.19/rest/reference/issues",
|
|
||||||
"/en/enterprise/2.19/v3/issues/issue-event-types": "/en/enterprise-server@2.19/developers/webhooks-and-events/issue-event-types",
|
|
||||||
"/en/enterprise/2.19/v3/issues/labels": "/en/enterprise-server@2.19/rest/reference/issues#labels",
|
|
||||||
"/en/enterprise/2.19/v3/issues/milestones": "/en/enterprise-server@2.19/rest/reference/issues#milestones",
|
|
||||||
"/en/enterprise/2.19/v3/issues/timeline": "/en/enterprise-server@2.19/rest/reference/issues#timeline",
|
|
||||||
"/en/enterprise/2.19/v3/licenses": "/en/enterprise-server@2.19/rest/reference/licenses",
|
|
||||||
"/en/enterprise/2.19/v3/markdown": "/en/enterprise-server@2.19/rest/reference/markdown",
|
|
||||||
"/en/enterprise/2.19/v3/meta": "/en/enterprise-server@2.19/rest/reference/meta",
|
|
||||||
"/en/enterprise/2.19/v3/oauth_authorizations": "/en/enterprise-server@2.19/rest/reference/oauth-authorizations",
|
|
||||||
"/en/enterprise/2.19/v3/orgs/hooks": "/en/enterprise-server@2.19/rest/reference/orgs#hooks",
|
|
||||||
"/en/enterprise/2.19/v3/orgs": "/en/enterprise-server@2.19/rest/reference/orgs",
|
|
||||||
"/en/enterprise/2.19/v3/orgs/members": "/en/enterprise-server@2.19/rest/reference/orgs#members",
|
|
||||||
"/en/enterprise/2.19/v3/orgs/outside_collaborators": "/en/enterprise-server@2.19/rest/reference/orgs#outside-collaborators",
|
|
||||||
"/en/enterprise/2.19/v3/orgs/pre_receive_hooks": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.19/v3/orgs/teams": "/en/enterprise-server@2.19/rest/reference/orgs#teams",
|
|
||||||
"/en/enterprise/2.19/v3/projects/cards": "/en/enterprise-server@2.19/rest/reference/projects#cards",
|
|
||||||
"/en/enterprise/2.19/v3/projects/collaborators": "/en/enterprise-server@2.19/rest/reference/projects#collaborators",
|
|
||||||
"/en/enterprise/2.19/v3/projects/columns": "/en/enterprise-server@2.19/rest/reference/projects#columns",
|
|
||||||
"/en/enterprise/2.19/v3/projects": "/en/enterprise-server@2.19/rest/reference/projects",
|
|
||||||
"/en/enterprise/2.19/v3/pulls/comments": "/en/enterprise-server@2.19/rest/reference/pulls#comments",
|
|
||||||
"/en/enterprise/2.19/v3/pulls": "/en/enterprise-server@2.19/rest/reference/pulls",
|
|
||||||
"/en/enterprise/2.19/v3/pulls/review_requests": "/en/enterprise-server@2.19/rest/reference/pulls#review-requests",
|
|
||||||
"/en/enterprise/2.19/v3/pulls/reviews": "/en/enterprise-server@2.19/rest/reference/pulls#reviews",
|
|
||||||
"/en/enterprise/2.19/v3/rate_limit": "/en/enterprise-server@2.19/rest/reference/rate-limit",
|
|
||||||
"/en/enterprise/2.19/v3/reactions": "/en/enterprise-server@2.19/rest/reference/reactions",
|
|
||||||
"/en/enterprise/2.19/v3/repos/branches": "/en/enterprise-server@2.19/rest/reference/repos#branches",
|
|
||||||
"/en/enterprise/2.19/v3/repos/collaborators": "/en/enterprise-server@2.19/rest/reference/repos#collaborators",
|
|
||||||
"/en/enterprise/2.19/v3/repos/comments": "/en/enterprise-server@2.19/rest/reference/repos#comments",
|
|
||||||
"/en/enterprise/2.19/v3/repos/commits": "/en/enterprise-server@2.19/rest/reference/repos#commits",
|
|
||||||
"/en/enterprise/2.19/v3/repos/contents": "/en/enterprise-server@2.19/rest/reference/repos#contents",
|
|
||||||
"/en/enterprise/2.19/v3/repos/deployments": "/en/enterprise-server@2.19/rest/reference/repos#deployments",
|
|
||||||
"/en/enterprise/2.19/v3/repos/downloads": "/en/enterprise-server@2.19/rest/reference/repos#downloads",
|
|
||||||
"/en/enterprise/2.19/v3/repos/forks": "/en/enterprise-server@2.19/rest/reference/repos#forks",
|
|
||||||
"/en/enterprise/2.19/v3/repos/hooks": "/en/enterprise-server@2.19/rest/reference/repos#hooks",
|
|
||||||
"/en/enterprise/2.19/v3/repos": "/en/enterprise-server@2.19/rest/reference/repos",
|
|
||||||
"/en/enterprise/2.19/v3/repos/invitations": "/en/enterprise-server@2.19/rest/reference/repos#invitations",
|
|
||||||
"/en/enterprise/2.19/v3/repos/keys": "/en/enterprise-server@2.19/rest/reference/repos#keys",
|
|
||||||
"/en/enterprise/2.19/v3/repos/merging": "/en/enterprise-server@2.19/rest/reference/repos#merging",
|
|
||||||
"/en/enterprise/2.19/v3/repos/pages": "/en/enterprise-server@2.19/rest/reference/repos#pages",
|
|
||||||
"/en/enterprise/2.19/v3/repos/pre_receive_hooks": "/en/enterprise-server@2.19/rest/reference/repos#pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.19/v3/repos/releases": "/en/enterprise-server@2.19/rest/reference/repos#releases",
|
|
||||||
"/en/enterprise/2.19/v3/repos/statistics": "/en/enterprise-server@2.19/rest/reference/repos#statistics",
|
|
||||||
"/en/enterprise/2.19/v3/repos/statuses": "/en/enterprise-server@2.19/rest/reference/repos#statuses",
|
|
||||||
"/en/enterprise/2.19/v3/search": "/en/enterprise-server@2.19/rest/reference/search",
|
|
||||||
"/en/enterprise/2.19/v3/teams/discussion_comments": "/en/enterprise-server@2.19/rest/reference/teams#discussion-comments",
|
|
||||||
"/en/enterprise/2.19/v3/teams/discussions": "/en/enterprise-server@2.19/rest/reference/teams#discussions",
|
|
||||||
"/en/enterprise/2.19/v3/teams": "/en/enterprise-server@2.19/rest/reference/teams",
|
|
||||||
"/en/enterprise/2.19/v3/teams/members": "/en/enterprise-server@2.19/rest/reference/teams#members",
|
|
||||||
"/en/enterprise/2.19/v3/users/administration": "/en/enterprise-server@2.19/rest/reference/users#administration",
|
|
||||||
"/en/enterprise/2.19/v3/users/emails": "/en/enterprise-server@2.19/rest/reference/users#emails",
|
|
||||||
"/en/enterprise/2.19/v3/users/followers": "/en/enterprise-server@2.19/rest/reference/users#followers",
|
|
||||||
"/en/enterprise/2.19/v3/users/gpg_keys": "/en/enterprise-server@2.19/rest/reference/users#gpg-keys",
|
|
||||||
"/en/enterprise/2.19/v3/users": "/en/enterprise-server@2.19/rest/reference/users",
|
|
||||||
"/en/enterprise/2.19/v3/users/keys": "/en/enterprise-server@2.19/rest/reference/users#keys",
|
|
||||||
"/en/enterprise/2.20/v3/activity/event_types": "/en/enterprise-server@2.20/developers/webhooks-and-events/github-event-types",
|
|
||||||
"/en/enterprise/2.20/v3/activity/events/types": "/en/enterprise-server@2.20/developers/webhooks-and-events/webhook-events-and-payloads",
|
|
||||||
"/en/enterprise/2.20/v3/activity/events": "/en/enterprise-server@2.20/rest/reference/activity#events",
|
|
||||||
"/en/enterprise/2.20/v3/activity/feeds": "/en/enterprise-server@2.20/rest/reference/activity#feeds",
|
|
||||||
"/en/enterprise/2.20/v3/activity": "/en/enterprise-server@2.20/rest/reference/activity",
|
|
||||||
"/en/enterprise/2.20/v3/activity/notifications": "/en/enterprise-server@2.20/rest/reference/activity#notifications",
|
|
||||||
"/en/enterprise/2.20/v3/activity/starring": "/en/enterprise-server@2.20/rest/reference/activity#starring",
|
|
||||||
"/en/enterprise/2.20/v3/activity/watching": "/en/enterprise-server@2.20/rest/reference/activity#watching",
|
|
||||||
"/en/enterprise/2.20/v3/apps/available-endpoints": "/en/enterprise-server@2.20/rest/overview/endpoints-available-for-github-apps",
|
|
||||||
"/en/enterprise/2.20/v3/apps": "/en/enterprise-server@2.20/rest/reference/apps",
|
|
||||||
"/en/enterprise/2.20/v3/apps/installations": "/en/enterprise-server@2.20/rest/reference/apps#installations",
|
|
||||||
"/en/enterprise/2.20/v3/apps/oauth_applications": "/en/enterprise-server@2.20/rest/reference/apps#oauth-applications",
|
|
||||||
"/en/enterprise/2.20/v3/apps/permissions": "/en/enterprise-server@2.20/rest/reference/permissions-required-for-github-apps",
|
|
||||||
"/en/enterprise/2.20/v3/checks": "/en/enterprise-server@2.20/rest/reference/checks",
|
|
||||||
"/en/enterprise/2.20/v3/checks/runs": "/en/enterprise-server@2.20/rest/reference/checks#runs",
|
|
||||||
"/en/enterprise/2.20/v3/checks/suites": "/en/enterprise-server@2.20/rest/reference/checks#suites",
|
|
||||||
"/en/enterprise/2.20/v3/codes_of_conduct": "/en/enterprise-server@2.20/rest/reference/codes-of-conduct",
|
|
||||||
"/en/enterprise/2.20/v3/emojis": "/en/enterprise-server@2.20/rest/reference/emojis",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/admin_stats": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#admin-stats",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/global_webhooks": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#global-webhooks",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin": "/en/enterprise-server@2.20/rest/reference/enterprise-admin",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/ldap": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#ldap",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/license": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#license",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/management_console": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#management-console",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/org_pre_receive_hooks": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/orgs": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#orgs",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/pre_receive_environments": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#pre-receive-environments",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/repo_pre_receive_hooks": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#repo-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/search_indexing": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#search-indexing",
|
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/users": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#users",
|
|
||||||
"/en/enterprise/2.20/v3/gists/comments": "/en/enterprise-server@2.20/rest/reference/gists#comments",
|
|
||||||
"/en/enterprise/2.20/v3/gists": "/en/enterprise-server@2.20/rest/reference/gists",
|
|
||||||
"/en/enterprise/2.20/v3/git/blobs": "/en/enterprise-server@2.20/rest/reference/git#blobs",
|
|
||||||
"/en/enterprise/2.20/v3/git/commits": "/en/enterprise-server@2.20/rest/reference/git#commits",
|
|
||||||
"/en/enterprise/2.20/v3/git": "/en/enterprise-server@2.20/rest/reference/git",
|
|
||||||
"/en/enterprise/2.20/v3/git/refs": "/en/enterprise-server@2.20/rest/reference/git#refs",
|
|
||||||
"/en/enterprise/2.20/v3/git/tags": "/en/enterprise-server@2.20/rest/reference/git#tags",
|
|
||||||
"/en/enterprise/2.20/v3/git/trees": "/en/enterprise-server@2.20/rest/reference/git#trees",
|
|
||||||
"/en/enterprise/2.20/v3/gitignore": "/en/enterprise-server@2.20/rest/reference/gitignore",
|
|
||||||
"/en/enterprise/2.20/v3/issues/assignees": "/en/enterprise-server@2.20/rest/reference/issues#assignees",
|
|
||||||
"/en/enterprise/2.20/v3/issues/comments": "/en/enterprise-server@2.20/rest/reference/issues#comments",
|
|
||||||
"/en/enterprise/2.20/v3/issues/events": "/en/enterprise-server@2.20/rest/reference/issues#events",
|
|
||||||
"/en/enterprise/2.20/v3/issues": "/en/enterprise-server@2.20/rest/reference/issues",
|
|
||||||
"/en/enterprise/2.20/v3/issues/issue-event-types": "/en/enterprise-server@2.20/developers/webhooks-and-events/issue-event-types",
|
|
||||||
"/en/enterprise/2.20/v3/issues/labels": "/en/enterprise-server@2.20/rest/reference/issues#labels",
|
|
||||||
"/en/enterprise/2.20/v3/issues/milestones": "/en/enterprise-server@2.20/rest/reference/issues#milestones",
|
|
||||||
"/en/enterprise/2.20/v3/issues/timeline": "/en/enterprise-server@2.20/rest/reference/issues#timeline",
|
|
||||||
"/en/enterprise/2.20/v3/licenses": "/en/enterprise-server@2.20/rest/reference/licenses",
|
|
||||||
"/en/enterprise/2.20/v3/markdown": "/en/enterprise-server@2.20/rest/reference/markdown",
|
|
||||||
"/en/enterprise/2.20/v3/meta": "/en/enterprise-server@2.20/rest/reference/meta",
|
|
||||||
"/en/enterprise/2.20/v3/oauth_authorizations": "/en/enterprise-server@2.20/rest/reference/oauth-authorizations",
|
|
||||||
"/en/enterprise/2.20/v3/orgs/hooks": "/en/enterprise-server@2.20/rest/reference/orgs#hooks",
|
|
||||||
"/en/enterprise/2.20/v3/orgs": "/en/enterprise-server@2.20/rest/reference/orgs",
|
|
||||||
"/en/enterprise/2.20/v3/orgs/members": "/en/enterprise-server@2.20/rest/reference/orgs#members",
|
|
||||||
"/en/enterprise/2.20/v3/orgs/outside_collaborators": "/en/enterprise-server@2.20/rest/reference/orgs#outside-collaborators",
|
|
||||||
"/en/enterprise/2.20/v3/orgs/pre_receive_hooks": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.20/v3/orgs/teams": "/en/enterprise-server@2.20/rest/reference/orgs#teams",
|
|
||||||
"/en/enterprise/2.20/v3/projects/cards": "/en/enterprise-server@2.20/rest/reference/projects#cards",
|
|
||||||
"/en/enterprise/2.20/v3/projects/collaborators": "/en/enterprise-server@2.20/rest/reference/projects#collaborators",
|
|
||||||
"/en/enterprise/2.20/v3/projects/columns": "/en/enterprise-server@2.20/rest/reference/projects#columns",
|
|
||||||
"/en/enterprise/2.20/v3/projects": "/en/enterprise-server@2.20/rest/reference/projects",
|
|
||||||
"/en/enterprise/2.20/v3/pulls/comments": "/en/enterprise-server@2.20/rest/reference/pulls#comments",
|
|
||||||
"/en/enterprise/2.20/v3/pulls": "/en/enterprise-server@2.20/rest/reference/pulls",
|
|
||||||
"/en/enterprise/2.20/v3/pulls/review_requests": "/en/enterprise-server@2.20/rest/reference/pulls#review-requests",
|
|
||||||
"/en/enterprise/2.20/v3/pulls/reviews": "/en/enterprise-server@2.20/rest/reference/pulls#reviews",
|
|
||||||
"/en/enterprise/2.20/v3/rate_limit": "/en/enterprise-server@2.20/rest/reference/rate-limit",
|
|
||||||
"/en/enterprise/2.20/v3/reactions": "/en/enterprise-server@2.20/rest/reference/reactions",
|
|
||||||
"/en/enterprise/2.20/v3/repos/branches": "/en/enterprise-server@2.20/rest/reference/repos#branches",
|
|
||||||
"/en/enterprise/2.20/v3/repos/collaborators": "/en/enterprise-server@2.20/rest/reference/repos#collaborators",
|
|
||||||
"/en/enterprise/2.20/v3/repos/comments": "/en/enterprise-server@2.20/rest/reference/repos#comments",
|
|
||||||
"/en/enterprise/2.20/v3/repos/commits": "/en/enterprise-server@2.20/rest/reference/repos#commits",
|
|
||||||
"/en/enterprise/2.20/v3/repos/contents": "/en/enterprise-server@2.20/rest/reference/repos#contents",
|
|
||||||
"/en/enterprise/2.20/v3/repos/deployments": "/en/enterprise-server@2.20/rest/reference/repos#deployments",
|
|
||||||
"/en/enterprise/2.20/v3/repos/downloads": "/en/enterprise-server@2.20/rest/reference/repos#downloads",
|
|
||||||
"/en/enterprise/2.20/v3/repos/forks": "/en/enterprise-server@2.20/rest/reference/repos#forks",
|
|
||||||
"/en/enterprise/2.20/v3/repos/hooks": "/en/enterprise-server@2.20/rest/reference/repos#hooks",
|
|
||||||
"/en/enterprise/2.20/v3/repos": "/en/enterprise-server@2.20/rest/reference/repos",
|
|
||||||
"/en/enterprise/2.20/v3/repos/invitations": "/en/enterprise-server@2.20/rest/reference/repos#invitations",
|
|
||||||
"/en/enterprise/2.20/v3/repos/keys": "/en/enterprise-server@2.20/rest/reference/repos#keys",
|
|
||||||
"/en/enterprise/2.20/v3/repos/merging": "/en/enterprise-server@2.20/rest/reference/repos#merging",
|
|
||||||
"/en/enterprise/2.20/v3/repos/pages": "/en/enterprise-server@2.20/rest/reference/repos#pages",
|
|
||||||
"/en/enterprise/2.20/v3/repos/pre_receive_hooks": "/en/enterprise-server@2.20/rest/reference/repos#pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.20/v3/repos/releases": "/en/enterprise-server@2.20/rest/reference/repos#releases",
|
|
||||||
"/en/enterprise/2.20/v3/repos/statistics": "/en/enterprise-server@2.20/rest/reference/repos#statistics",
|
|
||||||
"/en/enterprise/2.20/v3/repos/statuses": "/en/enterprise-server@2.20/rest/reference/repos#statuses",
|
|
||||||
"/en/enterprise/2.20/v3/search": "/en/enterprise-server@2.20/rest/reference/search",
|
|
||||||
"/en/enterprise/2.20/v3/teams/discussion_comments": "/en/enterprise-server@2.20/rest/reference/teams#discussion-comments",
|
|
||||||
"/en/enterprise/2.20/v3/teams/discussions": "/en/enterprise-server@2.20/rest/reference/teams#discussions",
|
|
||||||
"/en/enterprise/2.20/v3/teams": "/en/enterprise-server@2.20/rest/reference/teams",
|
|
||||||
"/en/enterprise/2.20/v3/teams/members": "/en/enterprise-server@2.20/rest/reference/teams#members",
|
|
||||||
"/en/enterprise/2.20/v3/users/administration": "/en/enterprise-server@2.20/rest/reference/users#administration",
|
|
||||||
"/en/enterprise/2.20/v3/users/emails": "/en/enterprise-server@2.20/rest/reference/users#emails",
|
|
||||||
"/en/enterprise/2.20/v3/users/followers": "/en/enterprise-server@2.20/rest/reference/users#followers",
|
|
||||||
"/en/enterprise/2.20/v3/users/gpg_keys": "/en/enterprise-server@2.20/rest/reference/users#gpg-keys",
|
|
||||||
"/en/enterprise/2.20/v3/users": "/en/enterprise-server@2.20/rest/reference/users",
|
|
||||||
"/en/enterprise/2.20/v3/users/keys": "/en/enterprise-server@2.20/rest/reference/users#keys",
|
|
||||||
"/en/enterprise/2.21/v3/activity/event_types": "/en/enterprise-server@2.21/developers/webhooks-and-events/github-event-types",
|
|
||||||
"/en/enterprise/2.21/v3/activity/events/types": "/en/enterprise-server@2.21/developers/webhooks-and-events/webhook-events-and-payloads",
|
|
||||||
"/en/enterprise/2.21/v3/activity/events": "/en/enterprise-server@2.21/rest/reference/activity#events",
|
|
||||||
"/en/enterprise/2.21/v3/activity/feeds": "/en/enterprise-server@2.21/rest/reference/activity#feeds",
|
|
||||||
"/en/enterprise/2.21/v3/activity": "/en/enterprise-server@2.21/rest/reference/activity",
|
|
||||||
"/en/enterprise/2.21/v3/activity/notifications": "/en/enterprise-server@2.21/rest/reference/activity#notifications",
|
|
||||||
"/en/enterprise/2.21/v3/activity/starring": "/en/enterprise-server@2.21/rest/reference/activity#starring",
|
|
||||||
"/en/enterprise/2.21/v3/activity/watching": "/en/enterprise-server@2.21/rest/reference/activity#watching",
|
|
||||||
"/en/enterprise/2.21/v3/apps/available-endpoints": "/en/enterprise-server@2.21/rest/overview/endpoints-available-for-github-apps",
|
|
||||||
"/en/enterprise/2.21/v3/apps": "/en/enterprise-server@2.21/rest/reference/apps",
|
|
||||||
"/en/enterprise/2.21/v3/apps/installations": "/en/enterprise-server@2.21/rest/reference/apps#installations",
|
|
||||||
"/en/enterprise/2.21/v3/apps/oauth_applications": "/en/enterprise-server@2.21/rest/reference/apps#oauth-applications",
|
|
||||||
"/en/enterprise/2.21/v3/apps/permissions": "/en/enterprise-server@2.21/rest/reference/permissions-required-for-github-apps",
|
|
||||||
"/en/enterprise/2.21/v3/checks": "/en/enterprise-server@2.21/rest/reference/checks",
|
|
||||||
"/en/enterprise/2.21/v3/checks/runs": "/en/enterprise-server@2.21/rest/reference/checks#runs",
|
|
||||||
"/en/enterprise/2.21/v3/checks/suites": "/en/enterprise-server@2.21/rest/reference/checks#suites",
|
|
||||||
"/en/enterprise/2.21/v3/codes_of_conduct": "/en/enterprise-server@2.21/rest/reference/codes-of-conduct",
|
|
||||||
"/en/enterprise/2.21/v3/emojis": "/en/enterprise-server@2.21/rest/reference/emojis",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/admin_stats": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#admin-stats",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/global_webhooks": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#global-webhooks",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin": "/en/enterprise-server@2.21/rest/reference/enterprise-admin",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/ldap": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#ldap",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/license": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#license",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/management_console": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#management-console",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/org_pre_receive_hooks": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/orgs": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#orgs",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/pre_receive_environments": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#pre-receive-environments",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/repo_pre_receive_hooks": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#repo-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/search_indexing": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#search-indexing",
|
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/users": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#users",
|
|
||||||
"/en/enterprise/2.21/v3/gists/comments": "/en/enterprise-server@2.21/rest/reference/gists#comments",
|
|
||||||
"/en/enterprise/2.21/v3/gists": "/en/enterprise-server@2.21/rest/reference/gists",
|
|
||||||
"/en/enterprise/2.21/v3/git/blobs": "/en/enterprise-server@2.21/rest/reference/git#blobs",
|
|
||||||
"/en/enterprise/2.21/v3/git/commits": "/en/enterprise-server@2.21/rest/reference/git#commits",
|
|
||||||
"/en/enterprise/2.21/v3/git": "/en/enterprise-server@2.21/rest/reference/git",
|
|
||||||
"/en/enterprise/2.21/v3/git/refs": "/en/enterprise-server@2.21/rest/reference/git#refs",
|
|
||||||
"/en/enterprise/2.21/v3/git/tags": "/en/enterprise-server@2.21/rest/reference/git#tags",
|
|
||||||
"/en/enterprise/2.21/v3/git/trees": "/en/enterprise-server@2.21/rest/reference/git#trees",
|
|
||||||
"/en/enterprise/2.21/v3/gitignore": "/en/enterprise-server@2.21/rest/reference/gitignore",
|
|
||||||
"/en/enterprise/2.21/v3/issues/assignees": "/en/enterprise-server@2.21/rest/reference/issues#assignees",
|
|
||||||
"/en/enterprise/2.21/v3/issues/comments": "/en/enterprise-server@2.21/rest/reference/issues#comments",
|
|
||||||
"/en/enterprise/2.21/v3/issues/events": "/en/enterprise-server@2.21/rest/reference/issues#events",
|
|
||||||
"/en/enterprise/2.21/v3/issues": "/en/enterprise-server@2.21/rest/reference/issues",
|
|
||||||
"/en/enterprise/2.21/v3/issues/issue-event-types": "/en/enterprise-server@2.21/developers/webhooks-and-events/issue-event-types",
|
|
||||||
"/en/enterprise/2.21/v3/issues/labels": "/en/enterprise-server@2.21/rest/reference/issues#labels",
|
|
||||||
"/en/enterprise/2.21/v3/issues/milestones": "/en/enterprise-server@2.21/rest/reference/issues#milestones",
|
|
||||||
"/en/enterprise/2.21/v3/issues/timeline": "/en/enterprise-server@2.21/rest/reference/issues#timeline",
|
|
||||||
"/en/enterprise/2.21/v3/licenses": "/en/enterprise-server@2.21/rest/reference/licenses",
|
|
||||||
"/en/enterprise/2.21/v3/markdown": "/en/enterprise-server@2.21/rest/reference/markdown",
|
|
||||||
"/en/enterprise/2.21/v3/meta": "/en/enterprise-server@2.21/rest/reference/meta",
|
|
||||||
"/en/enterprise/2.21/v3/oauth_authorizations": "/en/enterprise-server@2.21/rest/reference/oauth-authorizations",
|
|
||||||
"/en/enterprise/2.21/v3/orgs/hooks": "/en/enterprise-server@2.21/rest/reference/orgs#hooks",
|
|
||||||
"/en/enterprise/2.21/v3/orgs": "/en/enterprise-server@2.21/rest/reference/orgs",
|
|
||||||
"/en/enterprise/2.21/v3/orgs/members": "/en/enterprise-server@2.21/rest/reference/orgs#members",
|
|
||||||
"/en/enterprise/2.21/v3/orgs/outside_collaborators": "/en/enterprise-server@2.21/rest/reference/orgs#outside-collaborators",
|
|
||||||
"/en/enterprise/2.21/v3/orgs/pre_receive_hooks": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.21/v3/orgs/teams": "/en/enterprise-server@2.21/rest/reference/orgs#teams",
|
|
||||||
"/en/enterprise/2.21/v3/projects/cards": "/en/enterprise-server@2.21/rest/reference/projects#cards",
|
|
||||||
"/en/enterprise/2.21/v3/projects/collaborators": "/en/enterprise-server@2.21/rest/reference/projects#collaborators",
|
|
||||||
"/en/enterprise/2.21/v3/projects/columns": "/en/enterprise-server@2.21/rest/reference/projects#columns",
|
|
||||||
"/en/enterprise/2.21/v3/projects": "/en/enterprise-server@2.21/rest/reference/projects",
|
|
||||||
"/en/enterprise/2.21/v3/pulls/comments": "/en/enterprise-server@2.21/rest/reference/pulls#comments",
|
|
||||||
"/en/enterprise/2.21/v3/pulls": "/en/enterprise-server@2.21/rest/reference/pulls",
|
|
||||||
"/en/enterprise/2.21/v3/pulls/review_requests": "/en/enterprise-server@2.21/rest/reference/pulls#review-requests",
|
|
||||||
"/en/enterprise/2.21/v3/pulls/reviews": "/en/enterprise-server@2.21/rest/reference/pulls#reviews",
|
|
||||||
"/en/enterprise/2.21/v3/rate_limit": "/en/enterprise-server@2.21/rest/reference/rate-limit",
|
|
||||||
"/en/enterprise/2.21/v3/reactions": "/en/enterprise-server@2.21/rest/reference/reactions",
|
|
||||||
"/en/enterprise/2.21/v3/repos/branches": "/en/enterprise-server@2.21/rest/reference/repos#branches",
|
|
||||||
"/en/enterprise/2.21/v3/repos/collaborators": "/en/enterprise-server@2.21/rest/reference/repos#collaborators",
|
|
||||||
"/en/enterprise/2.21/v3/repos/comments": "/en/enterprise-server@2.21/rest/reference/repos#comments",
|
|
||||||
"/en/enterprise/2.21/v3/repos/commits": "/en/enterprise-server@2.21/rest/reference/repos#commits",
|
|
||||||
"/en/enterprise/2.21/v3/repos/contents": "/en/enterprise-server@2.21/rest/reference/repos#contents",
|
|
||||||
"/en/enterprise/2.21/v3/repos/deployments": "/en/enterprise-server@2.21/rest/reference/repos#deployments",
|
|
||||||
"/en/enterprise/2.21/v3/repos/downloads": "/en/enterprise-server@2.21/rest/reference/repos#downloads",
|
|
||||||
"/en/enterprise/2.21/v3/repos/forks": "/en/enterprise-server@2.21/rest/reference/repos#forks",
|
|
||||||
"/en/enterprise/2.21/v3/repos/hooks": "/en/enterprise-server@2.21/rest/reference/repos#hooks",
|
|
||||||
"/en/enterprise/2.21/v3/repos": "/en/enterprise-server@2.21/rest/reference/repos",
|
|
||||||
"/en/enterprise/2.21/v3/repos/invitations": "/en/enterprise-server@2.21/rest/reference/repos#invitations",
|
|
||||||
"/en/enterprise/2.21/v3/repos/keys": "/en/enterprise-server@2.21/rest/reference/repos#keys",
|
|
||||||
"/en/enterprise/2.21/v3/repos/merging": "/en/enterprise-server@2.21/rest/reference/repos#merging",
|
|
||||||
"/en/enterprise/2.21/v3/repos/pages": "/en/enterprise-server@2.21/rest/reference/repos#pages",
|
|
||||||
"/en/enterprise/2.21/v3/repos/pre_receive_hooks": "/en/enterprise-server@2.21/rest/reference/repos#pre-receive-hooks",
|
|
||||||
"/en/enterprise/2.21/v3/repos/releases": "/en/enterprise-server@2.21/rest/reference/repos#releases",
|
|
||||||
"/en/enterprise/2.21/v3/repos/statistics": "/en/enterprise-server@2.21/rest/reference/repos#statistics",
|
|
||||||
"/en/enterprise/2.21/v3/repos/statuses": "/en/enterprise-server@2.21/rest/reference/repos#statuses",
|
|
||||||
"/en/enterprise/2.21/v3/search": "/en/enterprise-server@2.21/rest/reference/search",
|
|
||||||
"/en/enterprise/2.21/v3/teams/discussion_comments": "/en/enterprise-server@2.21/rest/reference/teams#discussion-comments",
|
|
||||||
"/en/enterprise/2.21/v3/teams/discussions": "/en/enterprise-server@2.21/rest/reference/teams#discussions",
|
|
||||||
"/en/enterprise/2.21/v3/teams": "/en/enterprise-server@2.21/rest/reference/teams",
|
|
||||||
"/en/enterprise/2.21/v3/teams/members": "/en/enterprise-server@2.21/rest/reference/teams#members",
|
|
||||||
"/en/enterprise/2.21/v3/users/administration": "/en/enterprise-server@2.21/rest/reference/users#administration",
|
|
||||||
"/en/enterprise/2.21/v3/users/emails": "/en/enterprise-server@2.21/rest/reference/users#emails",
|
|
||||||
"/en/enterprise/2.21/v3/users/followers": "/en/enterprise-server@2.21/rest/reference/users#followers",
|
|
||||||
"/en/enterprise/2.21/v3/users/gpg_keys": "/en/enterprise-server@2.21/rest/reference/users#gpg-keys",
|
|
||||||
"/en/enterprise/2.21/v3/users": "/en/enterprise-server@2.21/rest/reference/users",
|
|
||||||
"/en/enterprise/2.21/v3/users/keys": "/en/enterprise-server@2.21/rest/reference/users#keys",
|
|
||||||
"/v3/actions/artifacts": "/en/free-pro-team@latest/rest/reference/actions#artifacts",
|
|
||||||
"/v3/actions": "/en/free-pro-team@latest/rest/reference/actions",
|
|
||||||
"/v3/actions/secrets": "/en/free-pro-team@latest/rest/reference/actions#secrets",
|
|
||||||
"/v3/actions/self-hosted-runners": "/en/free-pro-team@latest/rest/reference/actions#self-hosted-runners",
|
|
||||||
"/v3/actions/self_hosted_runners": "/en/free-pro-team@latest/rest/reference/actions#self-hosted-runners",
|
|
||||||
"/v3/actions/workflow-jobs": "/en/free-pro-team@latest/rest/reference/actions#workflow-jobs",
|
|
||||||
"/v3/actions/workflow-runs": "/en/free-pro-team@latest/rest/reference/actions#workflow-runs",
|
|
||||||
"/v3/actions/workflows": "/en/free-pro-team@latest/rest/reference/actions#workflows",
|
|
||||||
"/v3/activity/event_types": "/en/free-pro-team@latest/developers/webhooks-and-events/github-event-types",
|
|
||||||
"/v3/activity/events/types": "/en/free-pro-team@latest/developers/webhooks-and-events/webhook-events-and-payloads",
|
|
||||||
"/v3/activity/events": "/en/free-pro-team@latest/rest/reference/activity#events",
|
|
||||||
"/v3/activity/feeds": "/en/free-pro-team@latest/rest/reference/activity#feeds",
|
|
||||||
"/v3/activity": "/en/free-pro-team@latest/rest/reference/activity",
|
|
||||||
"/v3/activity/notifications": "/en/free-pro-team@latest/rest/reference/activity#notifications",
|
|
||||||
"/v3/activity/starring": "/en/free-pro-team@latest/rest/reference/activity#starring",
|
|
||||||
"/v3/activity/watching": "/en/free-pro-team@latest/rest/reference/activity#watching",
|
|
||||||
"/v3/apps/available-endpoints": "/en/free-pro-team@latest/rest/overview/endpoints-available-for-github-apps",
|
|
||||||
"/v3/apps": "/en/free-pro-team@latest/rest/reference/apps",
|
|
||||||
"/v3/apps/installations": "/en/free-pro-team@latest/rest/reference/apps#installations",
|
|
||||||
"/v3/apps/marketplace": "/en/free-pro-team@latest/rest/reference/apps#marketplace",
|
|
||||||
"/v3/apps/oauth_applications": "/en/free-pro-team@latest/rest/reference/apps#oauth-applications",
|
|
||||||
"/v3/apps/permissions": "/en/free-pro-team@latest/rest/reference/permissions-required-for-github-apps",
|
|
||||||
"/v3/checks": "/en/free-pro-team@latest/rest/reference/checks",
|
|
||||||
"/v3/checks/runs": "/en/free-pro-team@latest/rest/reference/checks#runs",
|
|
||||||
"/v3/checks/suites": "/en/free-pro-team@latest/rest/reference/checks#suites",
|
|
||||||
"/v3/code-scanning": "/en/free-pro-team@latest/rest/reference/code-scanning",
|
|
||||||
"/v3/codes_of_conduct": "/en/free-pro-team@latest/rest/reference/codes-of-conduct",
|
|
||||||
"/v3/emojis": "/en/free-pro-team@latest/rest/reference/emojis",
|
|
||||||
"/v3/enterprise-admin": "/en/free-pro-team@latest/rest/reference/enterprise-admin",
|
|
||||||
"/v3/enterprise-admin/admin_stats": "/en/enterprise-server/rest/reference/enterprise-admin#admin-stats",
|
|
||||||
"/v3/enterprise-admin/global_webhooks": "/en/enterprise-server/rest/reference/enterprise-admin#global-webhooks",
|
|
||||||
"/v3/enterprise-admin/ldap": "/en/enterprise-server/rest/reference/enterprise-admin#ldap",
|
|
||||||
"/v3/enterprise-admin/license": "/en/enterprise-server/rest/reference/enterprise-admin#license",
|
|
||||||
"/v3/enterprise-admin/management_console": "/en/enterprise-server/rest/reference/enterprise-admin#management-console",
|
|
||||||
"/v3/enterprise-admin/orgs": "/en/enterprise-server/rest/reference/enterprise-admin#orgs",
|
|
||||||
"/v3/enterprise-admin/pre_receive_environments": "/en/enterprise-server/rest/reference/enterprise-admin#pre-receive-environments",
|
|
||||||
"/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise-server/rest/reference/enterprise-admin#pre-receive-hooks",
|
|
||||||
"/v3/enterprise-admin/search_indexing": "/en/enterprise-server/rest/reference/enterprise-admin#search-indexing",
|
|
||||||
"/v3/enterprise-admin/users": "/en/enterprise-server/rest/reference/enterprise-admin#users",
|
|
||||||
"/v3/gists/comments": "/en/free-pro-team@latest/rest/reference/gists#comments",
|
|
||||||
"/v3/gists": "/en/free-pro-team@latest/rest/reference/gists",
|
|
||||||
"/v3/git/blobs": "/en/free-pro-team@latest/rest/reference/git#blobs",
|
|
||||||
"/v3/git/commits": "/en/free-pro-team@latest/rest/reference/git#commits",
|
|
||||||
"/v3/git": "/en/free-pro-team@latest/rest/reference/git",
|
|
||||||
"/v3/git/refs": "/en/free-pro-team@latest/rest/reference/git#refs",
|
|
||||||
"/v3/git/tags": "/en/free-pro-team@latest/rest/reference/git#tags",
|
|
||||||
"/v3/git/trees": "/en/free-pro-team@latest/rest/reference/git#trees",
|
|
||||||
"/v3/gitignore": "/en/free-pro-team@latest/rest/reference/gitignore",
|
|
||||||
"/v3/interactions": "/en/free-pro-team@latest/rest/reference/interactions",
|
|
||||||
"/v3/interactions/orgs": "/en/free-pro-team@latest/rest/reference/interactions#orgs",
|
|
||||||
"/v3/interactions/repos": "/en/free-pro-team@latest/rest/reference/interactions#repos",
|
|
||||||
"/v3/issues/assignees": "/en/free-pro-team@latest/rest/reference/issues#assignees",
|
|
||||||
"/v3/issues/comments": "/en/free-pro-team@latest/rest/reference/issues#comments",
|
|
||||||
"/v3/issues/events": "/en/free-pro-team@latest/rest/reference/issues#events",
|
|
||||||
"/v3/issues": "/en/free-pro-team@latest/rest/reference/issues",
|
|
||||||
"/v3/issues/issue-event-types": "/en/free-pro-team@latest/developers/webhooks-and-events/issue-event-types",
|
|
||||||
"/v3/issues/labels": "/en/free-pro-team@latest/rest/reference/issues#labels",
|
|
||||||
"/v3/issues/milestones": "/en/free-pro-team@latest/rest/reference/issues#milestones",
|
|
||||||
"/v3/issues/timeline": "/en/free-pro-team@latest/rest/reference/issues#timeline",
|
|
||||||
"/v3/licenses": "/en/free-pro-team@latest/rest/reference/licenses",
|
|
||||||
"/v3/markdown": "/en/free-pro-team@latest/rest/reference/markdown",
|
|
||||||
"/v3/meta": "/en/free-pro-team@latest/rest/reference/meta",
|
|
||||||
"/v3/migrations": "/en/free-pro-team@latest/rest/reference/migrations",
|
|
||||||
"/v3/migrations/orgs": "/en/free-pro-team@latest/rest/reference/migrations#orgs",
|
|
||||||
"/v3/migrations/source_imports": "/en/free-pro-team@latest/rest/reference/migrations#source-imports",
|
|
||||||
"/v3/migrations/users": "/en/free-pro-team@latest/rest/reference/migrations#users",
|
|
||||||
"/v3/oauth_authorizations": "/en/free-pro-team@latest/rest/reference/oauth-authorizations",
|
|
||||||
"/v3/orgs/blocking": "/en/free-pro-team@latest/rest/reference/orgs#blocking",
|
|
||||||
"/v3/orgs/hooks": "/en/free-pro-team@latest/rest/reference/orgs#hooks",
|
|
||||||
"/v3/orgs": "/en/free-pro-team@latest/rest/reference/orgs",
|
|
||||||
"/v3/orgs/members": "/en/free-pro-team@latest/rest/reference/orgs#members",
|
|
||||||
"/v3/orgs/migrations": "/en/free-pro-team@latest/rest/reference/orgs#migrations",
|
|
||||||
"/v3/orgs/outside_collaborators": "/en/free-pro-team@latest/rest/reference/orgs#outside-collaborators",
|
|
||||||
"/v3/orgs/pre_receive_hooks": "/en/enterprise-server/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
|
||||||
"/v3/orgs/teams": "/en/free-pro-team@latest/rest/reference/orgs#teams",
|
|
||||||
"/v3/projects/cards": "/en/free-pro-team@latest/rest/reference/projects#cards",
|
|
||||||
"/v3/projects/collaborators": "/en/free-pro-team@latest/rest/reference/projects#collaborators",
|
|
||||||
"/v3/projects/columns": "/en/free-pro-team@latest/rest/reference/projects#columns",
|
|
||||||
"/v3/projects": "/en/free-pro-team@latest/rest/reference/projects",
|
|
||||||
"/v3/pulls/comments": "/en/free-pro-team@latest/rest/reference/pulls#comments",
|
|
||||||
"/v3/pulls": "/en/free-pro-team@latest/rest/reference/pulls",
|
|
||||||
"/v3/pulls/review_requests": "/en/free-pro-team@latest/rest/reference/pulls#review-requests",
|
|
||||||
"/v3/pulls/reviews": "/en/free-pro-team@latest/rest/reference/pulls#reviews",
|
|
||||||
"/v3/rate_limit": "/en/free-pro-team@latest/rest/reference/rate-limit",
|
|
||||||
"/v3/reactions": "/en/free-pro-team@latest/rest/reference/reactions",
|
|
||||||
"/v3/repos/branches": "/en/free-pro-team@latest/rest/reference/repos#branches",
|
|
||||||
"/v3/repos/collaborators": "/en/free-pro-team@latest/rest/reference/repos#collaborators",
|
|
||||||
"/v3/repos/comments": "/en/free-pro-team@latest/rest/reference/repos#comments",
|
|
||||||
"/v3/repos/commits": "/en/free-pro-team@latest/rest/reference/repos#commits",
|
|
||||||
"/v3/repos/community": "/en/free-pro-team@latest/rest/reference/repos#community",
|
|
||||||
"/v3/repos/contents": "/en/free-pro-team@latest/rest/reference/repos#contents",
|
|
||||||
"/v3/repos/deployments": "/en/free-pro-team@latest/rest/reference/repos#deployments",
|
|
||||||
"/v3/repos/downloads": "/en/free-pro-team@latest/rest/reference/repos#downloads",
|
|
||||||
"/v3/repos/forks": "/en/free-pro-team@latest/rest/reference/repos#forks",
|
|
||||||
"/v3/repos/hooks": "/en/free-pro-team@latest/rest/reference/repos#hooks",
|
|
||||||
"/v3/repos": "/en/free-pro-team@latest/rest/reference/repos",
|
|
||||||
"/v3/repos/invitations": "/en/free-pro-team@latest/rest/reference/repos#invitations",
|
|
||||||
"/v3/repos/keys": "/en/free-pro-team@latest/rest/reference/repos#keys",
|
|
||||||
"/v3/repos/merging": "/en/free-pro-team@latest/rest/reference/repos#merging",
|
|
||||||
"/v3/repos/pages": "/en/free-pro-team@latest/rest/reference/repos#pages",
|
|
||||||
"/v3/repos/pre_receive_hooks": "/en/free-pro-team@latest/rest/reference/repos#pre-receive-hooks",
|
|
||||||
"/v3/repos/releases": "/en/free-pro-team@latest/rest/reference/repos#releases",
|
|
||||||
"/v3/repos/statistics": "/en/free-pro-team@latest/rest/reference/repos#statistics",
|
|
||||||
"/v3/repos/statuses": "/en/free-pro-team@latest/rest/reference/repos#statuses",
|
|
||||||
"/v3/repos/traffic": "/en/free-pro-team@latest/rest/reference/repos#traffic",
|
|
||||||
"/v3/scim": "/en/free-pro-team@latest/rest/reference/scim",
|
|
||||||
"/v3/search": "/en/free-pro-team@latest/rest/reference/search",
|
|
||||||
"/v3/teams/discussion_comments": "/en/free-pro-team@latest/rest/reference/teams#discussion-comments",
|
|
||||||
"/v3/teams/discussions": "/en/free-pro-team@latest/rest/reference/teams#discussions",
|
|
||||||
"/v3/teams": "/en/free-pro-team@latest/rest/reference/teams",
|
|
||||||
"/v3/teams/members": "/en/free-pro-team@latest/rest/reference/teams#members",
|
|
||||||
"/v3/teams/team_sync": "/en/free-pro-team@latest/rest/reference/teams#team-sync",
|
|
||||||
"/v3/users/blocking": "/en/free-pro-team@latest/rest/reference/users#blocking",
|
|
||||||
"/v3/users/emails": "/en/free-pro-team@latest/rest/reference/users#emails",
|
|
||||||
"/v3/users/followers": "/en/free-pro-team@latest/rest/reference/users#followers",
|
|
||||||
"/v3/users/gpg_keys": "/en/free-pro-team@latest/rest/reference/users#gpg-keys",
|
|
||||||
"/v3/users": "/en/free-pro-team@latest/rest/reference/users",
|
|
||||||
"/v3/users/keys": "/en/free-pro-team@latest/rest/reference/users#keys"
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
title: A sample article
|
|
||||||
versions:
|
|
||||||
free-pro-team: '*'
|
|
||||||
---
|
|
||||||
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
title: A sample TOC
|
|
||||||
versions:
|
|
||||||
free-pro-team: '*'
|
|
||||||
---
|
|
||||||
|
|
||||||
{% link_in_list /sample-article %}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
title: Translated TOC
|
|
||||||
versions:
|
|
||||||
free-pro-team: '*'
|
|
||||||
---
|
|
||||||
|
|
||||||
### 目次
|
|
||||||
|
|
||||||
Placeholder text
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Some page that exists in the content directory but not the translations directory
|
title: Some page that exists in the content directory but not the translations directory
|
||||||
productVersions:
|
versions:
|
||||||
dotcom: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: This is an article
|
title: This is an article
|
||||||
intro: 'I've got broken frontmatter'
|
intro: 'I've got broken frontmatter'
|
||||||
productVersions:
|
versions:
|
||||||
dotcom: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|||||||
5
tests/fixtures/page-with-redirects.md
vendored
5
tests/fixtures/page-with-redirects.md
vendored
@@ -2,6 +2,7 @@
|
|||||||
title: A page with redirects
|
title: A page with redirects
|
||||||
redirect_from:
|
redirect_from:
|
||||||
- /some-old-path
|
- /some-old-path
|
||||||
productVersions:
|
versions:
|
||||||
dotcom: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: A sample article
|
title: A sample article
|
||||||
productVersions:
|
versions:
|
||||||
dotcom: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
title: A sample article
|
|
||||||
productVersions:
|
|
||||||
enterprise: '>2.16'
|
|
||||||
---
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: A sample article
|
title: A sample article
|
||||||
productVersions:
|
versions:
|
||||||
dotcom: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Frontmatter
|
title: Frontmatter
|
||||||
productVersions:
|
versions:
|
||||||
dotcom: '*'
|
dotcom: '*'
|
||||||
enterprise: '>=2.13'
|
enterprise: '>=2.13'
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Frontmatter
|
title: Frontmatter
|
||||||
productVersions:
|
versions:
|
||||||
dotcom: '*'
|
dotcom: '*'
|
||||||
enterprise: '>=2.14'
|
enterprise: '>=2.14'
|
||||||
---
|
---
|
||||||
|
|||||||
816
tests/fixtures/rest-redirects.json
vendored
816
tests/fixtures/rest-redirects.json
vendored
@@ -95,412 +95,412 @@
|
|||||||
"/en/enterprise/2.18/v3/users/gpg_keys": "/en/enterprise/2.18/user/rest/reference/users#gpg-keys",
|
"/en/enterprise/2.18/v3/users/gpg_keys": "/en/enterprise/2.18/user/rest/reference/users#gpg-keys",
|
||||||
"/en/enterprise/2.18/v3/users": "/en/enterprise/2.18/user/rest/reference/users",
|
"/en/enterprise/2.18/v3/users": "/en/enterprise/2.18/user/rest/reference/users",
|
||||||
"/en/enterprise/2.18/v3/users/keys": "/en/enterprise/2.18/user/rest/reference/users#keys",
|
"/en/enterprise/2.18/v3/users/keys": "/en/enterprise/2.18/user/rest/reference/users#keys",
|
||||||
"/en/enterprise/2.19/v3/activity/event_types": "/en/enterprise/2.19/user/developers/webhooks-and-events/github-event-types",
|
"/en/enterprise/2.19/v3/activity/event_types": "/en/enterprise-server@2.19/developers/webhooks-and-events/github-event-types",
|
||||||
"/en/enterprise/2.19/v3/activity/events/types": "/en/enterprise/2.19/user/developers/webhooks-and-events/webhook-events-and-payloads",
|
"/en/enterprise/2.19/v3/activity/events/types": "/en/enterprise-server@2.19/developers/webhooks-and-events/webhook-events-and-payloads",
|
||||||
"/en/enterprise/2.19/v3/activity/events": "/en/enterprise/2.19/user/rest/reference/activity#events",
|
"/en/enterprise/2.19/v3/activity/events": "/en/enterprise-server@2.19/rest/reference/activity#events",
|
||||||
"/en/enterprise/2.19/v3/activity/feeds": "/en/enterprise/2.19/user/rest/reference/activity#feeds",
|
"/en/enterprise/2.19/v3/activity/feeds": "/en/enterprise-server@2.19/rest/reference/activity#feeds",
|
||||||
"/en/enterprise/2.19/v3/activity": "/en/enterprise/2.19/user/rest/reference/activity",
|
"/en/enterprise/2.19/v3/activity": "/en/enterprise-server@2.19/rest/reference/activity",
|
||||||
"/en/enterprise/2.19/v3/activity/notifications": "/en/enterprise/2.19/user/rest/reference/activity#notifications",
|
"/en/enterprise/2.19/v3/activity/notifications": "/en/enterprise-server@2.19/rest/reference/activity#notifications",
|
||||||
"/en/enterprise/2.19/v3/activity/starring": "/en/enterprise/2.19/user/rest/reference/activity#starring",
|
"/en/enterprise/2.19/v3/activity/starring": "/en/enterprise-server@2.19/rest/reference/activity#starring",
|
||||||
"/en/enterprise/2.19/v3/activity/watching": "/en/enterprise/2.19/user/rest/reference/activity#watching",
|
"/en/enterprise/2.19/v3/activity/watching": "/en/enterprise-server@2.19/rest/reference/activity#watching",
|
||||||
"/en/enterprise/2.19/v3/apps/available-endpoints": "/en/enterprise/2.19/user/rest/overview/endpoints-available-for-github-apps",
|
"/en/enterprise/2.19/v3/apps/available-endpoints": "/en/enterprise-server@2.19/rest/overview/endpoints-available-for-github-apps",
|
||||||
"/en/enterprise/2.19/v3/apps": "/en/enterprise/2.19/user/rest/reference/apps",
|
"/en/enterprise/2.19/v3/apps": "/en/enterprise-server@2.19/rest/reference/apps",
|
||||||
"/en/enterprise/2.19/v3/apps/installations": "/en/enterprise/2.19/user/rest/reference/apps#installations",
|
"/en/enterprise/2.19/v3/apps/installations": "/en/enterprise-server@2.19/rest/reference/apps#installations",
|
||||||
"/en/enterprise/2.19/v3/apps/permissions": "/en/enterprise/2.19/user/rest/reference/permissions-required-for-github-apps",
|
"/en/enterprise/2.19/v3/apps/permissions": "/en/enterprise-server@2.19/rest/reference/permissions-required-for-github-apps",
|
||||||
"/en/enterprise/2.19/v3/checks": "/en/enterprise/2.19/user/rest/reference/checks",
|
"/en/enterprise/2.19/v3/checks": "/en/enterprise-server@2.19/rest/reference/checks",
|
||||||
"/en/enterprise/2.19/v3/checks/runs": "/en/enterprise/2.19/user/rest/reference/checks#runs",
|
"/en/enterprise/2.19/v3/checks/runs": "/en/enterprise-server@2.19/rest/reference/checks#runs",
|
||||||
"/en/enterprise/2.19/v3/checks/suites": "/en/enterprise/2.19/user/rest/reference/checks#suites",
|
"/en/enterprise/2.19/v3/checks/suites": "/en/enterprise-server@2.19/rest/reference/checks#suites",
|
||||||
"/en/enterprise/2.19/v3/codes_of_conduct": "/en/enterprise/2.19/user/rest/reference/codes-of-conduct",
|
"/en/enterprise/2.19/v3/codes_of_conduct": "/en/enterprise-server@2.19/rest/reference/codes-of-conduct",
|
||||||
"/en/enterprise/2.19/v3/emojis": "/en/enterprise/2.19/user/rest/reference/emojis",
|
"/en/enterprise/2.19/v3/emojis": "/en/enterprise-server@2.19/rest/reference/emojis",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/admin_stats": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#admin-stats",
|
"/en/enterprise/2.19/v3/enterprise-admin/admin_stats": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#admin-stats",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/global_webhooks": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#global-webhooks",
|
"/en/enterprise/2.19/v3/enterprise-admin/global_webhooks": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#global-webhooks",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin": "/en/enterprise/2.19/user/rest/reference/enterprise-admin",
|
"/en/enterprise/2.19/v3/enterprise-admin": "/en/enterprise-server@2.19/rest/reference/enterprise-admin",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/ldap": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#ldap",
|
"/en/enterprise/2.19/v3/enterprise-admin/ldap": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#ldap",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/license": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#license",
|
"/en/enterprise/2.19/v3/enterprise-admin/license": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#license",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/management_console": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#management-console",
|
"/en/enterprise/2.19/v3/enterprise-admin/management_console": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#management-console",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/org_pre_receive_hooks": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
"/en/enterprise/2.19/v3/enterprise-admin/org_pre_receive_hooks": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/orgs": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#orgs",
|
"/en/enterprise/2.19/v3/enterprise-admin/orgs": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#orgs",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/pre_receive_environments": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#pre-receive-environments",
|
"/en/enterprise/2.19/v3/enterprise-admin/pre_receive_environments": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#pre-receive-environments",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#pre-receive-hooks",
|
"/en/enterprise/2.19/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#pre-receive-hooks",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/repo_pre_receive_hooks": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#repo-pre-receive-hooks",
|
"/en/enterprise/2.19/v3/enterprise-admin/repo_pre_receive_hooks": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#repo-pre-receive-hooks",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/search_indexing": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#search-indexing",
|
"/en/enterprise/2.19/v3/enterprise-admin/search_indexing": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#search-indexing",
|
||||||
"/en/enterprise/2.19/v3/enterprise-admin/users": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#users",
|
"/en/enterprise/2.19/v3/enterprise-admin/users": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#users",
|
||||||
"/en/enterprise/2.19/v3/gists/comments": "/en/enterprise/2.19/user/rest/reference/gists#comments",
|
"/en/enterprise/2.19/v3/gists/comments": "/en/enterprise-server@2.19/rest/reference/gists#comments",
|
||||||
"/en/enterprise/2.19/v3/gists": "/en/enterprise/2.19/user/rest/reference/gists",
|
"/en/enterprise/2.19/v3/gists": "/en/enterprise-server@2.19/rest/reference/gists",
|
||||||
"/en/enterprise/2.19/v3/git/blobs": "/en/enterprise/2.19/user/rest/reference/git#blobs",
|
"/en/enterprise/2.19/v3/git/blobs": "/en/enterprise-server@2.19/rest/reference/git#blobs",
|
||||||
"/en/enterprise/2.19/v3/git/commits": "/en/enterprise/2.19/user/rest/reference/git#commits",
|
"/en/enterprise/2.19/v3/git/commits": "/en/enterprise-server@2.19/rest/reference/git#commits",
|
||||||
"/en/enterprise/2.19/v3/git": "/en/enterprise/2.19/user/rest/reference/git",
|
"/en/enterprise/2.19/v3/git": "/en/enterprise-server@2.19/rest/reference/git",
|
||||||
"/en/enterprise/2.19/v3/git/refs": "/en/enterprise/2.19/user/rest/reference/git#refs",
|
"/en/enterprise/2.19/v3/git/refs": "/en/enterprise-server@2.19/rest/reference/git#refs",
|
||||||
"/en/enterprise/2.19/v3/git/tags": "/en/enterprise/2.19/user/rest/reference/git#tags",
|
"/en/enterprise/2.19/v3/git/tags": "/en/enterprise-server@2.19/rest/reference/git#tags",
|
||||||
"/en/enterprise/2.19/v3/git/trees": "/en/enterprise/2.19/user/rest/reference/git#trees",
|
"/en/enterprise/2.19/v3/git/trees": "/en/enterprise-server@2.19/rest/reference/git#trees",
|
||||||
"/en/enterprise/2.19/v3/gitignore": "/en/enterprise/2.19/user/rest/reference/gitignore",
|
"/en/enterprise/2.19/v3/gitignore": "/en/enterprise-server@2.19/rest/reference/gitignore",
|
||||||
"/en/enterprise/2.19/v3/issues/assignees": "/en/enterprise/2.19/user/rest/reference/issues#assignees",
|
"/en/enterprise/2.19/v3/issues/assignees": "/en/enterprise-server@2.19/rest/reference/issues#assignees",
|
||||||
"/en/enterprise/2.19/v3/issues/comments": "/en/enterprise/2.19/user/rest/reference/issues#comments",
|
"/en/enterprise/2.19/v3/issues/comments": "/en/enterprise-server@2.19/rest/reference/issues#comments",
|
||||||
"/en/enterprise/2.19/v3/issues/events": "/en/enterprise/2.19/user/rest/reference/issues#events",
|
"/en/enterprise/2.19/v3/issues/events": "/en/enterprise-server@2.19/rest/reference/issues#events",
|
||||||
"/en/enterprise/2.19/v3/issues": "/en/enterprise/2.19/user/rest/reference/issues",
|
"/en/enterprise/2.19/v3/issues": "/en/enterprise-server@2.19/rest/reference/issues",
|
||||||
"/en/enterprise/2.19/v3/issues/issue-event-types": "/en/enterprise/2.19/user/developers/webhooks-and-events/issue-event-types",
|
"/en/enterprise/2.19/v3/issues/issue-event-types": "/en/enterprise-server@2.19/developers/webhooks-and-events/issue-event-types",
|
||||||
"/en/enterprise/2.19/v3/issues/labels": "/en/enterprise/2.19/user/rest/reference/issues#labels",
|
"/en/enterprise/2.19/v3/issues/labels": "/en/enterprise-server@2.19/rest/reference/issues#labels",
|
||||||
"/en/enterprise/2.19/v3/issues/milestones": "/en/enterprise/2.19/user/rest/reference/issues#milestones",
|
"/en/enterprise/2.19/v3/issues/milestones": "/en/enterprise-server@2.19/rest/reference/issues#milestones",
|
||||||
"/en/enterprise/2.19/v3/issues/timeline": "/en/enterprise/2.19/user/rest/reference/issues#timeline",
|
"/en/enterprise/2.19/v3/issues/timeline": "/en/enterprise-server@2.19/rest/reference/issues#timeline",
|
||||||
"/en/enterprise/2.19/v3/licenses": "/en/enterprise/2.19/user/rest/reference/licenses",
|
"/en/enterprise/2.19/v3/licenses": "/en/enterprise-server@2.19/rest/reference/licenses",
|
||||||
"/en/enterprise/2.19/v3/markdown": "/en/enterprise/2.19/user/rest/reference/markdown",
|
"/en/enterprise/2.19/v3/markdown": "/en/enterprise-server@2.19/rest/reference/markdown",
|
||||||
"/en/enterprise/2.19/v3/meta": "/en/enterprise/2.19/user/rest/reference/meta",
|
"/en/enterprise/2.19/v3/meta": "/en/enterprise-server@2.19/rest/reference/meta",
|
||||||
"/en/enterprise/2.19/v3/oauth_authorizations": "/en/enterprise/2.19/user/rest/reference/oauth-authorizations",
|
"/en/enterprise/2.19/v3/oauth_authorizations": "/en/enterprise-server@2.19/rest/reference/oauth-authorizations",
|
||||||
"/en/enterprise/2.19/v3/orgs/hooks": "/en/enterprise/2.19/user/rest/reference/orgs#hooks",
|
"/en/enterprise/2.19/v3/orgs/hooks": "/en/enterprise-server@2.19/rest/reference/orgs#hooks",
|
||||||
"/en/enterprise/2.19/v3/orgs": "/en/enterprise/2.19/user/rest/reference/orgs",
|
"/en/enterprise/2.19/v3/orgs": "/en/enterprise-server@2.19/rest/reference/orgs",
|
||||||
"/en/enterprise/2.19/v3/orgs/members": "/en/enterprise/2.19/user/rest/reference/orgs#members",
|
"/en/enterprise/2.19/v3/orgs/members": "/en/enterprise-server@2.19/rest/reference/orgs#members",
|
||||||
"/en/enterprise/2.19/v3/orgs/outside_collaborators": "/en/enterprise/2.19/user/rest/reference/orgs#outside-collaborators",
|
"/en/enterprise/2.19/v3/orgs/outside_collaborators": "/en/enterprise-server@2.19/rest/reference/orgs#outside-collaborators",
|
||||||
"/en/enterprise/2.19/v3/orgs/pre_receive_hooks": "/en/enterprise/2.19/user/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
"/en/enterprise/2.19/v3/orgs/pre_receive_hooks": "/en/enterprise-server@2.19/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
||||||
"/en/enterprise/2.19/v3/orgs/teams": "/en/enterprise/2.19/user/rest/reference/orgs#teams",
|
"/en/enterprise/2.19/v3/orgs/teams": "/en/enterprise-server@2.19/rest/reference/orgs#teams",
|
||||||
"/en/enterprise/2.19/v3/projects/cards": "/en/enterprise/2.19/user/rest/reference/projects#cards",
|
"/en/enterprise/2.19/v3/projects/cards": "/en/enterprise-server@2.19/rest/reference/projects#cards",
|
||||||
"/en/enterprise/2.19/v3/projects/collaborators": "/en/enterprise/2.19/user/rest/reference/projects#collaborators",
|
"/en/enterprise/2.19/v3/projects/collaborators": "/en/enterprise-server@2.19/rest/reference/projects#collaborators",
|
||||||
"/en/enterprise/2.19/v3/projects/columns": "/en/enterprise/2.19/user/rest/reference/projects#columns",
|
"/en/enterprise/2.19/v3/projects/columns": "/en/enterprise-server@2.19/rest/reference/projects#columns",
|
||||||
"/en/enterprise/2.19/v3/projects": "/en/enterprise/2.19/user/rest/reference/projects",
|
"/en/enterprise/2.19/v3/projects": "/en/enterprise-server@2.19/rest/reference/projects",
|
||||||
"/en/enterprise/2.19/v3/pulls/comments": "/en/enterprise/2.19/user/rest/reference/pulls#comments",
|
"/en/enterprise/2.19/v3/pulls/comments": "/en/enterprise-server@2.19/rest/reference/pulls#comments",
|
||||||
"/en/enterprise/2.19/v3/pulls": "/en/enterprise/2.19/user/rest/reference/pulls",
|
"/en/enterprise/2.19/v3/pulls": "/en/enterprise-server@2.19/rest/reference/pulls",
|
||||||
"/en/enterprise/2.19/v3/pulls/review_requests": "/en/enterprise/2.19/user/rest/reference/pulls#review-requests",
|
"/en/enterprise/2.19/v3/pulls/review_requests": "/en/enterprise-server@2.19/rest/reference/pulls#review-requests",
|
||||||
"/en/enterprise/2.19/v3/pulls/reviews": "/en/enterprise/2.19/user/rest/reference/pulls#reviews",
|
"/en/enterprise/2.19/v3/pulls/reviews": "/en/enterprise-server@2.19/rest/reference/pulls#reviews",
|
||||||
"/en/enterprise/2.19/v3/rate_limit": "/en/enterprise/2.19/user/rest/reference/rate-limit",
|
"/en/enterprise/2.19/v3/rate_limit": "/en/enterprise-server@2.19/rest/reference/rate-limit",
|
||||||
"/en/enterprise/2.19/v3/reactions": "/en/enterprise/2.19/user/rest/reference/reactions",
|
"/en/enterprise/2.19/v3/reactions": "/en/enterprise-server@2.19/rest/reference/reactions",
|
||||||
"/en/enterprise/2.19/v3/repos/branches": "/en/enterprise/2.19/user/rest/reference/repos#branches",
|
"/en/enterprise/2.19/v3/repos/branches": "/en/enterprise-server@2.19/rest/reference/repos#branches",
|
||||||
"/en/enterprise/2.19/v3/repos/collaborators": "/en/enterprise/2.19/user/rest/reference/repos#collaborators",
|
"/en/enterprise/2.19/v3/repos/collaborators": "/en/enterprise-server@2.19/rest/reference/repos#collaborators",
|
||||||
"/en/enterprise/2.19/v3/repos/comments": "/en/enterprise/2.19/user/rest/reference/repos#comments",
|
"/en/enterprise/2.19/v3/repos/comments": "/en/enterprise-server@2.19/rest/reference/repos#comments",
|
||||||
"/en/enterprise/2.19/v3/repos/commits": "/en/enterprise/2.19/user/rest/reference/repos#commits",
|
"/en/enterprise/2.19/v3/repos/commits": "/en/enterprise-server@2.19/rest/reference/repos#commits",
|
||||||
"/en/enterprise/2.19/v3/repos/contents": "/en/enterprise/2.19/user/rest/reference/repos#contents",
|
"/en/enterprise/2.19/v3/repos/contents": "/en/enterprise-server@2.19/rest/reference/repos#contents",
|
||||||
"/en/enterprise/2.19/v3/repos/deployments": "/en/enterprise/2.19/user/rest/reference/repos#deployments",
|
"/en/enterprise/2.19/v3/repos/deployments": "/en/enterprise-server@2.19/rest/reference/repos#deployments",
|
||||||
"/en/enterprise/2.19/v3/repos/downloads": "/en/enterprise/2.19/user/rest/reference/repos#downloads",
|
"/en/enterprise/2.19/v3/repos/downloads": "/en/enterprise-server@2.19/rest/reference/repos#downloads",
|
||||||
"/en/enterprise/2.19/v3/repos/forks": "/en/enterprise/2.19/user/rest/reference/repos#forks",
|
"/en/enterprise/2.19/v3/repos/forks": "/en/enterprise-server@2.19/rest/reference/repos#forks",
|
||||||
"/en/enterprise/2.19/v3/repos/hooks": "/en/enterprise/2.19/user/rest/reference/repos#hooks",
|
"/en/enterprise/2.19/v3/repos/hooks": "/en/enterprise-server@2.19/rest/reference/repos#hooks",
|
||||||
"/en/enterprise/2.19/v3/repos": "/en/enterprise/2.19/user/rest/reference/repos",
|
"/en/enterprise/2.19/v3/repos": "/en/enterprise-server@2.19/rest/reference/repos",
|
||||||
"/en/enterprise/2.19/v3/repos/invitations": "/en/enterprise/2.19/user/rest/reference/repos#invitations",
|
"/en/enterprise/2.19/v3/repos/invitations": "/en/enterprise-server@2.19/rest/reference/repos#invitations",
|
||||||
"/en/enterprise/2.19/v3/repos/keys": "/en/enterprise/2.19/user/rest/reference/repos#keys",
|
"/en/enterprise/2.19/v3/repos/keys": "/en/enterprise-server@2.19/rest/reference/repos#keys",
|
||||||
"/en/enterprise/2.19/v3/repos/merging": "/en/enterprise/2.19/user/rest/reference/repos#merging",
|
"/en/enterprise/2.19/v3/repos/merging": "/en/enterprise-server@2.19/rest/reference/repos#merging",
|
||||||
"/en/enterprise/2.19/v3/repos/pages": "/en/enterprise/2.19/user/rest/reference/repos#pages",
|
"/en/enterprise/2.19/v3/repos/pages": "/en/enterprise-server@2.19/rest/reference/repos#pages",
|
||||||
"/en/enterprise/2.19/v3/repos/pre_receive_hooks": "/en/enterprise/2.19/user/rest/reference/repos#pre-receive-hooks",
|
"/en/enterprise/2.19/v3/repos/pre_receive_hooks": "/en/enterprise-server@2.19/rest/reference/repos#pre-receive-hooks",
|
||||||
"/en/enterprise/2.19/v3/repos/releases": "/en/enterprise/2.19/user/rest/reference/repos#releases",
|
"/en/enterprise/2.19/v3/repos/releases": "/en/enterprise-server@2.19/rest/reference/repos#releases",
|
||||||
"/en/enterprise/2.19/v3/repos/statistics": "/en/enterprise/2.19/user/rest/reference/repos#statistics",
|
"/en/enterprise/2.19/v3/repos/statistics": "/en/enterprise-server@2.19/rest/reference/repos#statistics",
|
||||||
"/en/enterprise/2.19/v3/repos/statuses": "/en/enterprise/2.19/user/rest/reference/repos#statuses",
|
"/en/enterprise/2.19/v3/repos/statuses": "/en/enterprise-server@2.19/rest/reference/repos#statuses",
|
||||||
"/en/enterprise/2.19/v3/search": "/en/enterprise/2.19/user/rest/reference/search",
|
"/en/enterprise/2.19/v3/search": "/en/enterprise-server@2.19/rest/reference/search",
|
||||||
"/en/enterprise/2.19/v3/teams/discussion_comments": "/en/enterprise/2.19/user/rest/reference/teams#discussion-comments",
|
"/en/enterprise/2.19/v3/teams/discussion_comments": "/en/enterprise-server@2.19/rest/reference/teams#discussion-comments",
|
||||||
"/en/enterprise/2.19/v3/teams/discussions": "/en/enterprise/2.19/user/rest/reference/teams#discussions",
|
"/en/enterprise/2.19/v3/teams/discussions": "/en/enterprise-server@2.19/rest/reference/teams#discussions",
|
||||||
"/en/enterprise/2.19/v3/teams": "/en/enterprise/2.19/user/rest/reference/teams",
|
"/en/enterprise/2.19/v3/teams": "/en/enterprise-server@2.19/rest/reference/teams",
|
||||||
"/en/enterprise/2.19/v3/teams/members": "/en/enterprise/2.19/user/rest/reference/teams#members",
|
"/en/enterprise/2.19/v3/teams/members": "/en/enterprise-server@2.19/rest/reference/teams#members",
|
||||||
"/en/enterprise/2.19/v3/users/administration": "/en/enterprise/2.19/user/rest/reference/users#administration",
|
"/en/enterprise/2.19/v3/users/administration": "/en/enterprise-server@2.19/rest/reference/users#administration",
|
||||||
"/en/enterprise/2.19/v3/users/emails": "/en/enterprise/2.19/user/rest/reference/users#emails",
|
"/en/enterprise/2.19/v3/users/emails": "/en/enterprise-server@2.19/rest/reference/users#emails",
|
||||||
"/en/enterprise/2.19/v3/users/followers": "/en/enterprise/2.19/user/rest/reference/users#followers",
|
"/en/enterprise/2.19/v3/users/followers": "/en/enterprise-server@2.19/rest/reference/users#followers",
|
||||||
"/en/enterprise/2.19/v3/users/gpg_keys": "/en/enterprise/2.19/user/rest/reference/users#gpg-keys",
|
"/en/enterprise/2.19/v3/users/gpg_keys": "/en/enterprise-server@2.19/rest/reference/users#gpg-keys",
|
||||||
"/en/enterprise/2.19/v3/users": "/en/enterprise/2.19/user/rest/reference/users",
|
"/en/enterprise/2.19/v3/users": "/en/enterprise-server@2.19/rest/reference/users",
|
||||||
"/en/enterprise/2.19/v3/users/keys": "/en/enterprise/2.19/user/rest/reference/users#keys",
|
"/en/enterprise/2.19/v3/users/keys": "/en/enterprise-server@2.19/rest/reference/users#keys",
|
||||||
"/en/enterprise/2.20/v3/activity/event_types": "/en/enterprise/2.20/user/developers/webhooks-and-events/github-event-types",
|
"/en/enterprise/2.20/v3/activity/event_types": "/en/enterprise-server@2.20/developers/webhooks-and-events/github-event-types",
|
||||||
"/en/enterprise/2.20/v3/activity/events/types": "/en/enterprise/2.20/user/developers/webhooks-and-events/webhook-events-and-payloads",
|
"/en/enterprise/2.20/v3/activity/events/types": "/en/enterprise-server@2.20/developers/webhooks-and-events/webhook-events-and-payloads",
|
||||||
"/en/enterprise/2.20/v3/activity/events": "/en/enterprise/2.20/user/rest/reference/activity#events",
|
"/en/enterprise/2.20/v3/activity/events": "/en/enterprise-server@2.20/rest/reference/activity#events",
|
||||||
"/en/enterprise/2.20/v3/activity/feeds": "/en/enterprise/2.20/user/rest/reference/activity#feeds",
|
"/en/enterprise/2.20/v3/activity/feeds": "/en/enterprise-server@2.20/rest/reference/activity#feeds",
|
||||||
"/en/enterprise/2.20/v3/activity": "/en/enterprise/2.20/user/rest/reference/activity",
|
"/en/enterprise/2.20/v3/activity": "/en/enterprise-server@2.20/rest/reference/activity",
|
||||||
"/en/enterprise/2.20/v3/activity/notifications": "/en/enterprise/2.20/user/rest/reference/activity#notifications",
|
"/en/enterprise/2.20/v3/activity/notifications": "/en/enterprise-server@2.20/rest/reference/activity#notifications",
|
||||||
"/en/enterprise/2.20/v3/activity/starring": "/en/enterprise/2.20/user/rest/reference/activity#starring",
|
"/en/enterprise/2.20/v3/activity/starring": "/en/enterprise-server@2.20/rest/reference/activity#starring",
|
||||||
"/en/enterprise/2.20/v3/activity/watching": "/en/enterprise/2.20/user/rest/reference/activity#watching",
|
"/en/enterprise/2.20/v3/activity/watching": "/en/enterprise-server@2.20/rest/reference/activity#watching",
|
||||||
"/en/enterprise/2.20/v3/apps/available-endpoints": "/en/enterprise/2.20/user/rest/overview/endpoints-available-for-github-apps",
|
"/en/enterprise/2.20/v3/apps/available-endpoints": "/en/enterprise-server@2.20/rest/overview/endpoints-available-for-github-apps",
|
||||||
"/en/enterprise/2.20/v3/apps": "/en/enterprise/2.20/user/rest/reference/apps",
|
"/en/enterprise/2.20/v3/apps": "/en/enterprise-server@2.20/rest/reference/apps",
|
||||||
"/en/enterprise/2.20/v3/apps/installations": "/en/enterprise/2.20/user/rest/reference/apps#installations",
|
"/en/enterprise/2.20/v3/apps/installations": "/en/enterprise-server@2.20/rest/reference/apps#installations",
|
||||||
"/en/enterprise/2.20/v3/apps/oauth_applications": "/en/enterprise/2.20/user/rest/reference/apps#oauth-applications",
|
"/en/enterprise/2.20/v3/apps/oauth_applications": "/en/enterprise-server@2.20/rest/reference/apps#oauth-applications",
|
||||||
"/en/enterprise/2.20/v3/apps/permissions": "/en/enterprise/2.20/user/rest/reference/permissions-required-for-github-apps",
|
"/en/enterprise/2.20/v3/apps/permissions": "/en/enterprise-server@2.20/rest/reference/permissions-required-for-github-apps",
|
||||||
"/en/enterprise/2.20/v3/checks": "/en/enterprise/2.20/user/rest/reference/checks",
|
"/en/enterprise/2.20/v3/checks": "/en/enterprise-server@2.20/rest/reference/checks",
|
||||||
"/en/enterprise/2.20/v3/checks/runs": "/en/enterprise/2.20/user/rest/reference/checks#runs",
|
"/en/enterprise/2.20/v3/checks/runs": "/en/enterprise-server@2.20/rest/reference/checks#runs",
|
||||||
"/en/enterprise/2.20/v3/checks/suites": "/en/enterprise/2.20/user/rest/reference/checks#suites",
|
"/en/enterprise/2.20/v3/checks/suites": "/en/enterprise-server@2.20/rest/reference/checks#suites",
|
||||||
"/en/enterprise/2.20/v3/codes_of_conduct": "/en/enterprise/2.20/user/rest/reference/codes-of-conduct",
|
"/en/enterprise/2.20/v3/codes_of_conduct": "/en/enterprise-server@2.20/rest/reference/codes-of-conduct",
|
||||||
"/en/enterprise/2.20/v3/emojis": "/en/enterprise/2.20/user/rest/reference/emojis",
|
"/en/enterprise/2.20/v3/emojis": "/en/enterprise-server@2.20/rest/reference/emojis",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/admin_stats": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#admin-stats",
|
"/en/enterprise/2.20/v3/enterprise-admin/admin_stats": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#admin-stats",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/global_webhooks": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#global-webhooks",
|
"/en/enterprise/2.20/v3/enterprise-admin/global_webhooks": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#global-webhooks",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin": "/en/enterprise/2.20/user/rest/reference/enterprise-admin",
|
"/en/enterprise/2.20/v3/enterprise-admin": "/en/enterprise-server@2.20/rest/reference/enterprise-admin",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/ldap": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#ldap",
|
"/en/enterprise/2.20/v3/enterprise-admin/ldap": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#ldap",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/license": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#license",
|
"/en/enterprise/2.20/v3/enterprise-admin/license": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#license",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/management_console": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#management-console",
|
"/en/enterprise/2.20/v3/enterprise-admin/management_console": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#management-console",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/org_pre_receive_hooks": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
"/en/enterprise/2.20/v3/enterprise-admin/org_pre_receive_hooks": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/orgs": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#orgs",
|
"/en/enterprise/2.20/v3/enterprise-admin/orgs": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#orgs",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/pre_receive_environments": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#pre-receive-environments",
|
"/en/enterprise/2.20/v3/enterprise-admin/pre_receive_environments": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#pre-receive-environments",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#pre-receive-hooks",
|
"/en/enterprise/2.20/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#pre-receive-hooks",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/repo_pre_receive_hooks": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#repo-pre-receive-hooks",
|
"/en/enterprise/2.20/v3/enterprise-admin/repo_pre_receive_hooks": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#repo-pre-receive-hooks",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/search_indexing": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#search-indexing",
|
"/en/enterprise/2.20/v3/enterprise-admin/search_indexing": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#search-indexing",
|
||||||
"/en/enterprise/2.20/v3/enterprise-admin/users": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#users",
|
"/en/enterprise/2.20/v3/enterprise-admin/users": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#users",
|
||||||
"/en/enterprise/2.20/v3/gists/comments": "/en/enterprise/2.20/user/rest/reference/gists#comments",
|
"/en/enterprise/2.20/v3/gists/comments": "/en/enterprise-server@2.20/rest/reference/gists#comments",
|
||||||
"/en/enterprise/2.20/v3/gists": "/en/enterprise/2.20/user/rest/reference/gists",
|
"/en/enterprise/2.20/v3/gists": "/en/enterprise-server@2.20/rest/reference/gists",
|
||||||
"/en/enterprise/2.20/v3/git/blobs": "/en/enterprise/2.20/user/rest/reference/git#blobs",
|
"/en/enterprise/2.20/v3/git/blobs": "/en/enterprise-server@2.20/rest/reference/git#blobs",
|
||||||
"/en/enterprise/2.20/v3/git/commits": "/en/enterprise/2.20/user/rest/reference/git#commits",
|
"/en/enterprise/2.20/v3/git/commits": "/en/enterprise-server@2.20/rest/reference/git#commits",
|
||||||
"/en/enterprise/2.20/v3/git": "/en/enterprise/2.20/user/rest/reference/git",
|
"/en/enterprise/2.20/v3/git": "/en/enterprise-server@2.20/rest/reference/git",
|
||||||
"/en/enterprise/2.20/v3/git/refs": "/en/enterprise/2.20/user/rest/reference/git#refs",
|
"/en/enterprise/2.20/v3/git/refs": "/en/enterprise-server@2.20/rest/reference/git#refs",
|
||||||
"/en/enterprise/2.20/v3/git/tags": "/en/enterprise/2.20/user/rest/reference/git#tags",
|
"/en/enterprise/2.20/v3/git/tags": "/en/enterprise-server@2.20/rest/reference/git#tags",
|
||||||
"/en/enterprise/2.20/v3/git/trees": "/en/enterprise/2.20/user/rest/reference/git#trees",
|
"/en/enterprise/2.20/v3/git/trees": "/en/enterprise-server@2.20/rest/reference/git#trees",
|
||||||
"/en/enterprise/2.20/v3/gitignore": "/en/enterprise/2.20/user/rest/reference/gitignore",
|
"/en/enterprise/2.20/v3/gitignore": "/en/enterprise-server@2.20/rest/reference/gitignore",
|
||||||
"/en/enterprise/2.20/v3/issues/assignees": "/en/enterprise/2.20/user/rest/reference/issues#assignees",
|
"/en/enterprise/2.20/v3/issues/assignees": "/en/enterprise-server@2.20/rest/reference/issues#assignees",
|
||||||
"/en/enterprise/2.20/v3/issues/comments": "/en/enterprise/2.20/user/rest/reference/issues#comments",
|
"/en/enterprise/2.20/v3/issues/comments": "/en/enterprise-server@2.20/rest/reference/issues#comments",
|
||||||
"/en/enterprise/2.20/v3/issues/events": "/en/enterprise/2.20/user/rest/reference/issues#events",
|
"/en/enterprise/2.20/v3/issues/events": "/en/enterprise-server@2.20/rest/reference/issues#events",
|
||||||
"/en/enterprise/2.20/v3/issues": "/en/enterprise/2.20/user/rest/reference/issues",
|
"/en/enterprise/2.20/v3/issues": "/en/enterprise-server@2.20/rest/reference/issues",
|
||||||
"/en/enterprise/2.20/v3/issues/issue-event-types": "/en/enterprise/2.20/user/developers/webhooks-and-events/issue-event-types",
|
"/en/enterprise/2.20/v3/issues/issue-event-types": "/en/enterprise-server@2.20/developers/webhooks-and-events/issue-event-types",
|
||||||
"/en/enterprise/2.20/v3/issues/labels": "/en/enterprise/2.20/user/rest/reference/issues#labels",
|
"/en/enterprise/2.20/v3/issues/labels": "/en/enterprise-server@2.20/rest/reference/issues#labels",
|
||||||
"/en/enterprise/2.20/v3/issues/milestones": "/en/enterprise/2.20/user/rest/reference/issues#milestones",
|
"/en/enterprise/2.20/v3/issues/milestones": "/en/enterprise-server@2.20/rest/reference/issues#milestones",
|
||||||
"/en/enterprise/2.20/v3/issues/timeline": "/en/enterprise/2.20/user/rest/reference/issues#timeline",
|
"/en/enterprise/2.20/v3/issues/timeline": "/en/enterprise-server@2.20/rest/reference/issues#timeline",
|
||||||
"/en/enterprise/2.20/v3/licenses": "/en/enterprise/2.20/user/rest/reference/licenses",
|
"/en/enterprise/2.20/v3/licenses": "/en/enterprise-server@2.20/rest/reference/licenses",
|
||||||
"/en/enterprise/2.20/v3/markdown": "/en/enterprise/2.20/user/rest/reference/markdown",
|
"/en/enterprise/2.20/v3/markdown": "/en/enterprise-server@2.20/rest/reference/markdown",
|
||||||
"/en/enterprise/2.20/v3/meta": "/en/enterprise/2.20/user/rest/reference/meta",
|
"/en/enterprise/2.20/v3/meta": "/en/enterprise-server@2.20/rest/reference/meta",
|
||||||
"/en/enterprise/2.20/v3/oauth_authorizations": "/en/enterprise/2.20/user/rest/reference/oauth-authorizations",
|
"/en/enterprise/2.20/v3/oauth_authorizations": "/en/enterprise-server@2.20/rest/reference/oauth-authorizations",
|
||||||
"/en/enterprise/2.20/v3/orgs/hooks": "/en/enterprise/2.20/user/rest/reference/orgs#hooks",
|
"/en/enterprise/2.20/v3/orgs/hooks": "/en/enterprise-server@2.20/rest/reference/orgs#hooks",
|
||||||
"/en/enterprise/2.20/v3/orgs": "/en/enterprise/2.20/user/rest/reference/orgs",
|
"/en/enterprise/2.20/v3/orgs": "/en/enterprise-server@2.20/rest/reference/orgs",
|
||||||
"/en/enterprise/2.20/v3/orgs/members": "/en/enterprise/2.20/user/rest/reference/orgs#members",
|
"/en/enterprise/2.20/v3/orgs/members": "/en/enterprise-server@2.20/rest/reference/orgs#members",
|
||||||
"/en/enterprise/2.20/v3/orgs/outside_collaborators": "/en/enterprise/2.20/user/rest/reference/orgs#outside-collaborators",
|
"/en/enterprise/2.20/v3/orgs/outside_collaborators": "/en/enterprise-server@2.20/rest/reference/orgs#outside-collaborators",
|
||||||
"/en/enterprise/2.20/v3/orgs/pre_receive_hooks": "/en/enterprise/2.20/user/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
"/en/enterprise/2.20/v3/orgs/pre_receive_hooks": "/en/enterprise-server@2.20/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
||||||
"/en/enterprise/2.20/v3/orgs/teams": "/en/enterprise/2.20/user/rest/reference/orgs#teams",
|
"/en/enterprise/2.20/v3/orgs/teams": "/en/enterprise-server@2.20/rest/reference/orgs#teams",
|
||||||
"/en/enterprise/2.20/v3/projects/cards": "/en/enterprise/2.20/user/rest/reference/projects#cards",
|
"/en/enterprise/2.20/v3/projects/cards": "/en/enterprise-server@2.20/rest/reference/projects#cards",
|
||||||
"/en/enterprise/2.20/v3/projects/collaborators": "/en/enterprise/2.20/user/rest/reference/projects#collaborators",
|
"/en/enterprise/2.20/v3/projects/collaborators": "/en/enterprise-server@2.20/rest/reference/projects#collaborators",
|
||||||
"/en/enterprise/2.20/v3/projects/columns": "/en/enterprise/2.20/user/rest/reference/projects#columns",
|
"/en/enterprise/2.20/v3/projects/columns": "/en/enterprise-server@2.20/rest/reference/projects#columns",
|
||||||
"/en/enterprise/2.20/v3/projects": "/en/enterprise/2.20/user/rest/reference/projects",
|
"/en/enterprise/2.20/v3/projects": "/en/enterprise-server@2.20/rest/reference/projects",
|
||||||
"/en/enterprise/2.20/v3/pulls/comments": "/en/enterprise/2.20/user/rest/reference/pulls#comments",
|
"/en/enterprise/2.20/v3/pulls/comments": "/en/enterprise-server@2.20/rest/reference/pulls#comments",
|
||||||
"/en/enterprise/2.20/v3/pulls": "/en/enterprise/2.20/user/rest/reference/pulls",
|
"/en/enterprise/2.20/v3/pulls": "/en/enterprise-server@2.20/rest/reference/pulls",
|
||||||
"/en/enterprise/2.20/v3/pulls/review_requests": "/en/enterprise/2.20/user/rest/reference/pulls#review-requests",
|
"/en/enterprise/2.20/v3/pulls/review_requests": "/en/enterprise-server@2.20/rest/reference/pulls#review-requests",
|
||||||
"/en/enterprise/2.20/v3/pulls/reviews": "/en/enterprise/2.20/user/rest/reference/pulls#reviews",
|
"/en/enterprise/2.20/v3/pulls/reviews": "/en/enterprise-server@2.20/rest/reference/pulls#reviews",
|
||||||
"/en/enterprise/2.20/v3/rate_limit": "/en/enterprise/2.20/user/rest/reference/rate-limit",
|
"/en/enterprise/2.20/v3/rate_limit": "/en/enterprise-server@2.20/rest/reference/rate-limit",
|
||||||
"/en/enterprise/2.20/v3/reactions": "/en/enterprise/2.20/user/rest/reference/reactions",
|
"/en/enterprise/2.20/v3/reactions": "/en/enterprise-server@2.20/rest/reference/reactions",
|
||||||
"/en/enterprise/2.20/v3/repos/branches": "/en/enterprise/2.20/user/rest/reference/repos#branches",
|
"/en/enterprise/2.20/v3/repos/branches": "/en/enterprise-server@2.20/rest/reference/repos#branches",
|
||||||
"/en/enterprise/2.20/v3/repos/collaborators": "/en/enterprise/2.20/user/rest/reference/repos#collaborators",
|
"/en/enterprise/2.20/v3/repos/collaborators": "/en/enterprise-server@2.20/rest/reference/repos#collaborators",
|
||||||
"/en/enterprise/2.20/v3/repos/comments": "/en/enterprise/2.20/user/rest/reference/repos#comments",
|
"/en/enterprise/2.20/v3/repos/comments": "/en/enterprise-server@2.20/rest/reference/repos#comments",
|
||||||
"/en/enterprise/2.20/v3/repos/commits": "/en/enterprise/2.20/user/rest/reference/repos#commits",
|
"/en/enterprise/2.20/v3/repos/commits": "/en/enterprise-server@2.20/rest/reference/repos#commits",
|
||||||
"/en/enterprise/2.20/v3/repos/contents": "/en/enterprise/2.20/user/rest/reference/repos#contents",
|
"/en/enterprise/2.20/v3/repos/contents": "/en/enterprise-server@2.20/rest/reference/repos#contents",
|
||||||
"/en/enterprise/2.20/v3/repos/deployments": "/en/enterprise/2.20/user/rest/reference/repos#deployments",
|
"/en/enterprise/2.20/v3/repos/deployments": "/en/enterprise-server@2.20/rest/reference/repos#deployments",
|
||||||
"/en/enterprise/2.20/v3/repos/downloads": "/en/enterprise/2.20/user/rest/reference/repos#downloads",
|
"/en/enterprise/2.20/v3/repos/downloads": "/en/enterprise-server@2.20/rest/reference/repos#downloads",
|
||||||
"/en/enterprise/2.20/v3/repos/forks": "/en/enterprise/2.20/user/rest/reference/repos#forks",
|
"/en/enterprise/2.20/v3/repos/forks": "/en/enterprise-server@2.20/rest/reference/repos#forks",
|
||||||
"/en/enterprise/2.20/v3/repos/hooks": "/en/enterprise/2.20/user/rest/reference/repos#hooks",
|
"/en/enterprise/2.20/v3/repos/hooks": "/en/enterprise-server@2.20/rest/reference/repos#hooks",
|
||||||
"/en/enterprise/2.20/v3/repos": "/en/enterprise/2.20/user/rest/reference/repos",
|
"/en/enterprise/2.20/v3/repos": "/en/enterprise-server@2.20/rest/reference/repos",
|
||||||
"/en/enterprise/2.20/v3/repos/invitations": "/en/enterprise/2.20/user/rest/reference/repos#invitations",
|
"/en/enterprise/2.20/v3/repos/invitations": "/en/enterprise-server@2.20/rest/reference/repos#invitations",
|
||||||
"/en/enterprise/2.20/v3/repos/keys": "/en/enterprise/2.20/user/rest/reference/repos#keys",
|
"/en/enterprise/2.20/v3/repos/keys": "/en/enterprise-server@2.20/rest/reference/repos#keys",
|
||||||
"/en/enterprise/2.20/v3/repos/merging": "/en/enterprise/2.20/user/rest/reference/repos#merging",
|
"/en/enterprise/2.20/v3/repos/merging": "/en/enterprise-server@2.20/rest/reference/repos#merging",
|
||||||
"/en/enterprise/2.20/v3/repos/pages": "/en/enterprise/2.20/user/rest/reference/repos#pages",
|
"/en/enterprise/2.20/v3/repos/pages": "/en/enterprise-server@2.20/rest/reference/repos#pages",
|
||||||
"/en/enterprise/2.20/v3/repos/pre_receive_hooks": "/en/enterprise/2.20/user/rest/reference/repos#pre-receive-hooks",
|
"/en/enterprise/2.20/v3/repos/pre_receive_hooks": "/en/enterprise-server@2.20/rest/reference/repos#pre-receive-hooks",
|
||||||
"/en/enterprise/2.20/v3/repos/releases": "/en/enterprise/2.20/user/rest/reference/repos#releases",
|
"/en/enterprise/2.20/v3/repos/releases": "/en/enterprise-server@2.20/rest/reference/repos#releases",
|
||||||
"/en/enterprise/2.20/v3/repos/statistics": "/en/enterprise/2.20/user/rest/reference/repos#statistics",
|
"/en/enterprise/2.20/v3/repos/statistics": "/en/enterprise-server@2.20/rest/reference/repos#statistics",
|
||||||
"/en/enterprise/2.20/v3/repos/statuses": "/en/enterprise/2.20/user/rest/reference/repos#statuses",
|
"/en/enterprise/2.20/v3/repos/statuses": "/en/enterprise-server@2.20/rest/reference/repos#statuses",
|
||||||
"/en/enterprise/2.20/v3/search": "/en/enterprise/2.20/user/rest/reference/search",
|
"/en/enterprise/2.20/v3/search": "/en/enterprise-server@2.20/rest/reference/search",
|
||||||
"/en/enterprise/2.20/v3/teams/discussion_comments": "/en/enterprise/2.20/user/rest/reference/teams#discussion-comments",
|
"/en/enterprise/2.20/v3/teams/discussion_comments": "/en/enterprise-server@2.20/rest/reference/teams#discussion-comments",
|
||||||
"/en/enterprise/2.20/v3/teams/discussions": "/en/enterprise/2.20/user/rest/reference/teams#discussions",
|
"/en/enterprise/2.20/v3/teams/discussions": "/en/enterprise-server@2.20/rest/reference/teams#discussions",
|
||||||
"/en/enterprise/2.20/v3/teams": "/en/enterprise/2.20/user/rest/reference/teams",
|
"/en/enterprise/2.20/v3/teams": "/en/enterprise-server@2.20/rest/reference/teams",
|
||||||
"/en/enterprise/2.20/v3/teams/members": "/en/enterprise/2.20/user/rest/reference/teams#members",
|
"/en/enterprise/2.20/v3/teams/members": "/en/enterprise-server@2.20/rest/reference/teams#members",
|
||||||
"/en/enterprise/2.20/v3/users/administration": "/en/enterprise/2.20/user/rest/reference/users#administration",
|
"/en/enterprise/2.20/v3/users/administration": "/en/enterprise-server@2.20/rest/reference/users#administration",
|
||||||
"/en/enterprise/2.20/v3/users/emails": "/en/enterprise/2.20/user/rest/reference/users#emails",
|
"/en/enterprise/2.20/v3/users/emails": "/en/enterprise-server@2.20/rest/reference/users#emails",
|
||||||
"/en/enterprise/2.20/v3/users/followers": "/en/enterprise/2.20/user/rest/reference/users#followers",
|
"/en/enterprise/2.20/v3/users/followers": "/en/enterprise-server@2.20/rest/reference/users#followers",
|
||||||
"/en/enterprise/2.20/v3/users/gpg_keys": "/en/enterprise/2.20/user/rest/reference/users#gpg-keys",
|
"/en/enterprise/2.20/v3/users/gpg_keys": "/en/enterprise-server@2.20/rest/reference/users#gpg-keys",
|
||||||
"/en/enterprise/2.20/v3/users": "/en/enterprise/2.20/user/rest/reference/users",
|
"/en/enterprise/2.20/v3/users": "/en/enterprise-server@2.20/rest/reference/users",
|
||||||
"/en/enterprise/2.20/v3/users/keys": "/en/enterprise/2.20/user/rest/reference/users#keys",
|
"/en/enterprise/2.20/v3/users/keys": "/en/enterprise-server@2.20/rest/reference/users#keys",
|
||||||
"/en/enterprise/2.21/v3/activity/event_types": "/en/enterprise/2.21/user/developers/webhooks-and-events/github-event-types",
|
"/en/enterprise/2.21/v3/activity/event_types": "/en/enterprise-server@2.21/developers/webhooks-and-events/github-event-types",
|
||||||
"/en/enterprise/2.21/v3/activity/events/types": "/en/enterprise/2.21/user/developers/webhooks-and-events/webhook-events-and-payloads",
|
"/en/enterprise/2.21/v3/activity/events/types": "/en/enterprise-server@2.21/developers/webhooks-and-events/webhook-events-and-payloads",
|
||||||
"/en/enterprise/2.21/v3/activity/events": "/en/enterprise/2.21/user/rest/reference/activity#events",
|
"/en/enterprise/2.21/v3/activity/events": "/en/enterprise-server@2.21/rest/reference/activity#events",
|
||||||
"/en/enterprise/2.21/v3/activity/feeds": "/en/enterprise/2.21/user/rest/reference/activity#feeds",
|
"/en/enterprise/2.21/v3/activity/feeds": "/en/enterprise-server@2.21/rest/reference/activity#feeds",
|
||||||
"/en/enterprise/2.21/v3/activity": "/en/enterprise/2.21/user/rest/reference/activity",
|
"/en/enterprise/2.21/v3/activity": "/en/enterprise-server@2.21/rest/reference/activity",
|
||||||
"/en/enterprise/2.21/v3/activity/notifications": "/en/enterprise/2.21/user/rest/reference/activity#notifications",
|
"/en/enterprise/2.21/v3/activity/notifications": "/en/enterprise-server@2.21/rest/reference/activity#notifications",
|
||||||
"/en/enterprise/2.21/v3/activity/starring": "/en/enterprise/2.21/user/rest/reference/activity#starring",
|
"/en/enterprise/2.21/v3/activity/starring": "/en/enterprise-server@2.21/rest/reference/activity#starring",
|
||||||
"/en/enterprise/2.21/v3/activity/watching": "/en/enterprise/2.21/user/rest/reference/activity#watching",
|
"/en/enterprise/2.21/v3/activity/watching": "/en/enterprise-server@2.21/rest/reference/activity#watching",
|
||||||
"/en/enterprise/2.21/v3/apps/available-endpoints": "/en/enterprise/2.21/user/rest/overview/endpoints-available-for-github-apps",
|
"/en/enterprise/2.21/v3/apps/available-endpoints": "/en/enterprise-server@2.21/rest/overview/endpoints-available-for-github-apps",
|
||||||
"/en/enterprise/2.21/v3/apps": "/en/enterprise/2.21/user/rest/reference/apps",
|
"/en/enterprise/2.21/v3/apps": "/en/enterprise-server@2.21/rest/reference/apps",
|
||||||
"/en/enterprise/2.21/v3/apps/installations": "/en/enterprise/2.21/user/rest/reference/apps#installations",
|
"/en/enterprise/2.21/v3/apps/installations": "/en/enterprise-server@2.21/rest/reference/apps#installations",
|
||||||
"/en/enterprise/2.21/v3/apps/oauth_applications": "/en/enterprise/2.21/user/rest/reference/apps#oauth-applications",
|
"/en/enterprise/2.21/v3/apps/oauth_applications": "/en/enterprise-server@2.21/rest/reference/apps#oauth-applications",
|
||||||
"/en/enterprise/2.21/v3/apps/permissions": "/en/enterprise/2.21/user/rest/reference/permissions-required-for-github-apps",
|
"/en/enterprise/2.21/v3/apps/permissions": "/en/enterprise-server@2.21/rest/reference/permissions-required-for-github-apps",
|
||||||
"/en/enterprise/2.21/v3/checks": "/en/enterprise/2.21/user/rest/reference/checks",
|
"/en/enterprise/2.21/v3/checks": "/en/enterprise-server@2.21/rest/reference/checks",
|
||||||
"/en/enterprise/2.21/v3/checks/runs": "/en/enterprise/2.21/user/rest/reference/checks#runs",
|
"/en/enterprise/2.21/v3/checks/runs": "/en/enterprise-server@2.21/rest/reference/checks#runs",
|
||||||
"/en/enterprise/2.21/v3/checks/suites": "/en/enterprise/2.21/user/rest/reference/checks#suites",
|
"/en/enterprise/2.21/v3/checks/suites": "/en/enterprise-server@2.21/rest/reference/checks#suites",
|
||||||
"/en/enterprise/2.21/v3/codes_of_conduct": "/en/enterprise/2.21/user/rest/reference/codes-of-conduct",
|
"/en/enterprise/2.21/v3/codes_of_conduct": "/en/enterprise-server@2.21/rest/reference/codes-of-conduct",
|
||||||
"/en/enterprise/2.21/v3/emojis": "/en/enterprise/2.21/user/rest/reference/emojis",
|
"/en/enterprise/2.21/v3/emojis": "/en/enterprise-server@2.21/rest/reference/emojis",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/admin_stats": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#admin-stats",
|
"/en/enterprise/2.21/v3/enterprise-admin/admin_stats": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#admin-stats",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/global_webhooks": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#global-webhooks",
|
"/en/enterprise/2.21/v3/enterprise-admin/global_webhooks": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#global-webhooks",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin": "/en/enterprise/2.21/user/rest/reference/enterprise-admin",
|
"/en/enterprise/2.21/v3/enterprise-admin": "/en/enterprise-server@2.21/rest/reference/enterprise-admin",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/ldap": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#ldap",
|
"/en/enterprise/2.21/v3/enterprise-admin/ldap": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#ldap",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/license": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#license",
|
"/en/enterprise/2.21/v3/enterprise-admin/license": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#license",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/management_console": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#management-console",
|
"/en/enterprise/2.21/v3/enterprise-admin/management_console": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#management-console",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/org_pre_receive_hooks": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
"/en/enterprise/2.21/v3/enterprise-admin/org_pre_receive_hooks": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/orgs": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#orgs",
|
"/en/enterprise/2.21/v3/enterprise-admin/orgs": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#orgs",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/pre_receive_environments": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#pre-receive-environments",
|
"/en/enterprise/2.21/v3/enterprise-admin/pre_receive_environments": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#pre-receive-environments",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#pre-receive-hooks",
|
"/en/enterprise/2.21/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#pre-receive-hooks",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/repo_pre_receive_hooks": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#repo-pre-receive-hooks",
|
"/en/enterprise/2.21/v3/enterprise-admin/repo_pre_receive_hooks": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#repo-pre-receive-hooks",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/search_indexing": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#search-indexing",
|
"/en/enterprise/2.21/v3/enterprise-admin/search_indexing": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#search-indexing",
|
||||||
"/en/enterprise/2.21/v3/enterprise-admin/users": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#users",
|
"/en/enterprise/2.21/v3/enterprise-admin/users": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#users",
|
||||||
"/en/enterprise/2.21/v3/gists/comments": "/en/enterprise/2.21/user/rest/reference/gists#comments",
|
"/en/enterprise/2.21/v3/gists/comments": "/en/enterprise-server@2.21/rest/reference/gists#comments",
|
||||||
"/en/enterprise/2.21/v3/gists": "/en/enterprise/2.21/user/rest/reference/gists",
|
"/en/enterprise/2.21/v3/gists": "/en/enterprise-server@2.21/rest/reference/gists",
|
||||||
"/en/enterprise/2.21/v3/git/blobs": "/en/enterprise/2.21/user/rest/reference/git#blobs",
|
"/en/enterprise/2.21/v3/git/blobs": "/en/enterprise-server@2.21/rest/reference/git#blobs",
|
||||||
"/en/enterprise/2.21/v3/git/commits": "/en/enterprise/2.21/user/rest/reference/git#commits",
|
"/en/enterprise/2.21/v3/git/commits": "/en/enterprise-server@2.21/rest/reference/git#commits",
|
||||||
"/en/enterprise/2.21/v3/git": "/en/enterprise/2.21/user/rest/reference/git",
|
"/en/enterprise/2.21/v3/git": "/en/enterprise-server@2.21/rest/reference/git",
|
||||||
"/en/enterprise/2.21/v3/git/refs": "/en/enterprise/2.21/user/rest/reference/git#refs",
|
"/en/enterprise/2.21/v3/git/refs": "/en/enterprise-server@2.21/rest/reference/git#refs",
|
||||||
"/en/enterprise/2.21/v3/git/tags": "/en/enterprise/2.21/user/rest/reference/git#tags",
|
"/en/enterprise/2.21/v3/git/tags": "/en/enterprise-server@2.21/rest/reference/git#tags",
|
||||||
"/en/enterprise/2.21/v3/git/trees": "/en/enterprise/2.21/user/rest/reference/git#trees",
|
"/en/enterprise/2.21/v3/git/trees": "/en/enterprise-server@2.21/rest/reference/git#trees",
|
||||||
"/en/enterprise/2.21/v3/gitignore": "/en/enterprise/2.21/user/rest/reference/gitignore",
|
"/en/enterprise/2.21/v3/gitignore": "/en/enterprise-server@2.21/rest/reference/gitignore",
|
||||||
"/en/enterprise/2.21/v3/issues/assignees": "/en/enterprise/2.21/user/rest/reference/issues#assignees",
|
"/en/enterprise/2.21/v3/issues/assignees": "/en/enterprise-server@2.21/rest/reference/issues#assignees",
|
||||||
"/en/enterprise/2.21/v3/issues/comments": "/en/enterprise/2.21/user/rest/reference/issues#comments",
|
"/en/enterprise/2.21/v3/issues/comments": "/en/enterprise-server@2.21/rest/reference/issues#comments",
|
||||||
"/en/enterprise/2.21/v3/issues/events": "/en/enterprise/2.21/user/rest/reference/issues#events",
|
"/en/enterprise/2.21/v3/issues/events": "/en/enterprise-server@2.21/rest/reference/issues#events",
|
||||||
"/en/enterprise/2.21/v3/issues": "/en/enterprise/2.21/user/rest/reference/issues",
|
"/en/enterprise/2.21/v3/issues": "/en/enterprise-server@2.21/rest/reference/issues",
|
||||||
"/en/enterprise/2.21/v3/issues/issue-event-types": "/en/enterprise/2.21/user/developers/webhooks-and-events/issue-event-types",
|
"/en/enterprise/2.21/v3/issues/issue-event-types": "/en/enterprise-server@2.21/developers/webhooks-and-events/issue-event-types",
|
||||||
"/en/enterprise/2.21/v3/issues/labels": "/en/enterprise/2.21/user/rest/reference/issues#labels",
|
"/en/enterprise/2.21/v3/issues/labels": "/en/enterprise-server@2.21/rest/reference/issues#labels",
|
||||||
"/en/enterprise/2.21/v3/issues/milestones": "/en/enterprise/2.21/user/rest/reference/issues#milestones",
|
"/en/enterprise/2.21/v3/issues/milestones": "/en/enterprise-server@2.21/rest/reference/issues#milestones",
|
||||||
"/en/enterprise/2.21/v3/issues/timeline": "/en/enterprise/2.21/user/rest/reference/issues#timeline",
|
"/en/enterprise/2.21/v3/issues/timeline": "/en/enterprise-server@2.21/rest/reference/issues#timeline",
|
||||||
"/en/enterprise/2.21/v3/licenses": "/en/enterprise/2.21/user/rest/reference/licenses",
|
"/en/enterprise/2.21/v3/licenses": "/en/enterprise-server@2.21/rest/reference/licenses",
|
||||||
"/en/enterprise/2.21/v3/markdown": "/en/enterprise/2.21/user/rest/reference/markdown",
|
"/en/enterprise/2.21/v3/markdown": "/en/enterprise-server@2.21/rest/reference/markdown",
|
||||||
"/en/enterprise/2.21/v3/meta": "/en/enterprise/2.21/user/rest/reference/meta",
|
"/en/enterprise/2.21/v3/meta": "/en/enterprise-server@2.21/rest/reference/meta",
|
||||||
"/en/enterprise/2.21/v3/oauth_authorizations": "/en/enterprise/2.21/user/rest/reference/oauth-authorizations",
|
"/en/enterprise/2.21/v3/oauth_authorizations": "/en/enterprise-server@2.21/rest/reference/oauth-authorizations",
|
||||||
"/en/enterprise/2.21/v3/orgs/hooks": "/en/enterprise/2.21/user/rest/reference/orgs#hooks",
|
"/en/enterprise/2.21/v3/orgs/hooks": "/en/enterprise-server@2.21/rest/reference/orgs#hooks",
|
||||||
"/en/enterprise/2.21/v3/orgs": "/en/enterprise/2.21/user/rest/reference/orgs",
|
"/en/enterprise/2.21/v3/orgs": "/en/enterprise-server@2.21/rest/reference/orgs",
|
||||||
"/en/enterprise/2.21/v3/orgs/members": "/en/enterprise/2.21/user/rest/reference/orgs#members",
|
"/en/enterprise/2.21/v3/orgs/members": "/en/enterprise-server@2.21/rest/reference/orgs#members",
|
||||||
"/en/enterprise/2.21/v3/orgs/outside_collaborators": "/en/enterprise/2.21/user/rest/reference/orgs#outside-collaborators",
|
"/en/enterprise/2.21/v3/orgs/outside_collaborators": "/en/enterprise-server@2.21/rest/reference/orgs#outside-collaborators",
|
||||||
"/en/enterprise/2.21/v3/orgs/pre_receive_hooks": "/en/enterprise/2.21/user/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
"/en/enterprise/2.21/v3/orgs/pre_receive_hooks": "/en/enterprise-server@2.21/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
||||||
"/en/enterprise/2.21/v3/orgs/teams": "/en/enterprise/2.21/user/rest/reference/orgs#teams",
|
"/en/enterprise/2.21/v3/orgs/teams": "/en/enterprise-server@2.21/rest/reference/orgs#teams",
|
||||||
"/en/enterprise/2.21/v3/projects/cards": "/en/enterprise/2.21/user/rest/reference/projects#cards",
|
"/en/enterprise/2.21/v3/projects/cards": "/en/enterprise-server@2.21/rest/reference/projects#cards",
|
||||||
"/en/enterprise/2.21/v3/projects/collaborators": "/en/enterprise/2.21/user/rest/reference/projects#collaborators",
|
"/en/enterprise/2.21/v3/projects/collaborators": "/en/enterprise-server@2.21/rest/reference/projects#collaborators",
|
||||||
"/en/enterprise/2.21/v3/projects/columns": "/en/enterprise/2.21/user/rest/reference/projects#columns",
|
"/en/enterprise/2.21/v3/projects/columns": "/en/enterprise-server@2.21/rest/reference/projects#columns",
|
||||||
"/en/enterprise/2.21/v3/projects": "/en/enterprise/2.21/user/rest/reference/projects",
|
"/en/enterprise/2.21/v3/projects": "/en/enterprise-server@2.21/rest/reference/projects",
|
||||||
"/en/enterprise/2.21/v3/pulls/comments": "/en/enterprise/2.21/user/rest/reference/pulls#comments",
|
"/en/enterprise/2.21/v3/pulls/comments": "/en/enterprise-server@2.21/rest/reference/pulls#comments",
|
||||||
"/en/enterprise/2.21/v3/pulls": "/en/enterprise/2.21/user/rest/reference/pulls",
|
"/en/enterprise/2.21/v3/pulls": "/en/enterprise-server@2.21/rest/reference/pulls",
|
||||||
"/en/enterprise/2.21/v3/pulls/review_requests": "/en/enterprise/2.21/user/rest/reference/pulls#review-requests",
|
"/en/enterprise/2.21/v3/pulls/review_requests": "/en/enterprise-server@2.21/rest/reference/pulls#review-requests",
|
||||||
"/en/enterprise/2.21/v3/pulls/reviews": "/en/enterprise/2.21/user/rest/reference/pulls#reviews",
|
"/en/enterprise/2.21/v3/pulls/reviews": "/en/enterprise-server@2.21/rest/reference/pulls#reviews",
|
||||||
"/en/enterprise/2.21/v3/rate_limit": "/en/enterprise/2.21/user/rest/reference/rate-limit",
|
"/en/enterprise/2.21/v3/rate_limit": "/en/enterprise-server@2.21/rest/reference/rate-limit",
|
||||||
"/en/enterprise/2.21/v3/reactions": "/en/enterprise/2.21/user/rest/reference/reactions",
|
"/en/enterprise/2.21/v3/reactions": "/en/enterprise-server@2.21/rest/reference/reactions",
|
||||||
"/en/enterprise/2.21/v3/repos/branches": "/en/enterprise/2.21/user/rest/reference/repos#branches",
|
"/en/enterprise/2.21/v3/repos/branches": "/en/enterprise-server@2.21/rest/reference/repos#branches",
|
||||||
"/en/enterprise/2.21/v3/repos/collaborators": "/en/enterprise/2.21/user/rest/reference/repos#collaborators",
|
"/en/enterprise/2.21/v3/repos/collaborators": "/en/enterprise-server@2.21/rest/reference/repos#collaborators",
|
||||||
"/en/enterprise/2.21/v3/repos/comments": "/en/enterprise/2.21/user/rest/reference/repos#comments",
|
"/en/enterprise/2.21/v3/repos/comments": "/en/enterprise-server@2.21/rest/reference/repos#comments",
|
||||||
"/en/enterprise/2.21/v3/repos/commits": "/en/enterprise/2.21/user/rest/reference/repos#commits",
|
"/en/enterprise/2.21/v3/repos/commits": "/en/enterprise-server@2.21/rest/reference/repos#commits",
|
||||||
"/en/enterprise/2.21/v3/repos/contents": "/en/enterprise/2.21/user/rest/reference/repos#contents",
|
"/en/enterprise/2.21/v3/repos/contents": "/en/enterprise-server@2.21/rest/reference/repos#contents",
|
||||||
"/en/enterprise/2.21/v3/repos/deployments": "/en/enterprise/2.21/user/rest/reference/repos#deployments",
|
"/en/enterprise/2.21/v3/repos/deployments": "/en/enterprise-server@2.21/rest/reference/repos#deployments",
|
||||||
"/en/enterprise/2.21/v3/repos/downloads": "/en/enterprise/2.21/user/rest/reference/repos#downloads",
|
"/en/enterprise/2.21/v3/repos/downloads": "/en/enterprise-server@2.21/rest/reference/repos#downloads",
|
||||||
"/en/enterprise/2.21/v3/repos/forks": "/en/enterprise/2.21/user/rest/reference/repos#forks",
|
"/en/enterprise/2.21/v3/repos/forks": "/en/enterprise-server@2.21/rest/reference/repos#forks",
|
||||||
"/en/enterprise/2.21/v3/repos/hooks": "/en/enterprise/2.21/user/rest/reference/repos#hooks",
|
"/en/enterprise/2.21/v3/repos/hooks": "/en/enterprise-server@2.21/rest/reference/repos#hooks",
|
||||||
"/en/enterprise/2.21/v3/repos": "/en/enterprise/2.21/user/rest/reference/repos",
|
"/en/enterprise/2.21/v3/repos": "/en/enterprise-server@2.21/rest/reference/repos",
|
||||||
"/en/enterprise/2.21/v3/repos/invitations": "/en/enterprise/2.21/user/rest/reference/repos#invitations",
|
"/en/enterprise/2.21/v3/repos/invitations": "/en/enterprise-server@2.21/rest/reference/repos#invitations",
|
||||||
"/en/enterprise/2.21/v3/repos/keys": "/en/enterprise/2.21/user/rest/reference/repos#keys",
|
"/en/enterprise/2.21/v3/repos/keys": "/en/enterprise-server@2.21/rest/reference/repos#keys",
|
||||||
"/en/enterprise/2.21/v3/repos/merging": "/en/enterprise/2.21/user/rest/reference/repos#merging",
|
"/en/enterprise/2.21/v3/repos/merging": "/en/enterprise-server@2.21/rest/reference/repos#merging",
|
||||||
"/en/enterprise/2.21/v3/repos/pages": "/en/enterprise/2.21/user/rest/reference/repos#pages",
|
"/en/enterprise/2.21/v3/repos/pages": "/en/enterprise-server@2.21/rest/reference/repos#pages",
|
||||||
"/en/enterprise/2.21/v3/repos/pre_receive_hooks": "/en/enterprise/2.21/user/rest/reference/repos#pre-receive-hooks",
|
"/en/enterprise/2.21/v3/repos/pre_receive_hooks": "/en/enterprise-server@2.21/rest/reference/repos#pre-receive-hooks",
|
||||||
"/en/enterprise/2.21/v3/repos/releases": "/en/enterprise/2.21/user/rest/reference/repos#releases",
|
"/en/enterprise/2.21/v3/repos/releases": "/en/enterprise-server@2.21/rest/reference/repos#releases",
|
||||||
"/en/enterprise/2.21/v3/repos/statistics": "/en/enterprise/2.21/user/rest/reference/repos#statistics",
|
"/en/enterprise/2.21/v3/repos/statistics": "/en/enterprise-server@2.21/rest/reference/repos#statistics",
|
||||||
"/en/enterprise/2.21/v3/repos/statuses": "/en/enterprise/2.21/user/rest/reference/repos#statuses",
|
"/en/enterprise/2.21/v3/repos/statuses": "/en/enterprise-server@2.21/rest/reference/repos#statuses",
|
||||||
"/en/enterprise/2.21/v3/search": "/en/enterprise/2.21/user/rest/reference/search",
|
"/en/enterprise/2.21/v3/search": "/en/enterprise-server@2.21/rest/reference/search",
|
||||||
"/en/enterprise/2.21/v3/teams/discussion_comments": "/en/enterprise/2.21/user/rest/reference/teams#discussion-comments",
|
"/en/enterprise/2.21/v3/teams/discussion_comments": "/en/enterprise-server@2.21/rest/reference/teams#discussion-comments",
|
||||||
"/en/enterprise/2.21/v3/teams/discussions": "/en/enterprise/2.21/user/rest/reference/teams#discussions",
|
"/en/enterprise/2.21/v3/teams/discussions": "/en/enterprise-server@2.21/rest/reference/teams#discussions",
|
||||||
"/en/enterprise/2.21/v3/teams": "/en/enterprise/2.21/user/rest/reference/teams",
|
"/en/enterprise/2.21/v3/teams": "/en/enterprise-server@2.21/rest/reference/teams",
|
||||||
"/en/enterprise/2.21/v3/teams/members": "/en/enterprise/2.21/user/rest/reference/teams#members",
|
"/en/enterprise/2.21/v3/teams/members": "/en/enterprise-server@2.21/rest/reference/teams#members",
|
||||||
"/en/enterprise/2.21/v3/users/administration": "/en/enterprise/2.21/user/rest/reference/users#administration",
|
"/en/enterprise/2.21/v3/users/administration": "/en/enterprise-server@2.21/rest/reference/users#administration",
|
||||||
"/en/enterprise/2.21/v3/users/emails": "/en/enterprise/2.21/user/rest/reference/users#emails",
|
"/en/enterprise/2.21/v3/users/emails": "/en/enterprise-server@2.21/rest/reference/users#emails",
|
||||||
"/en/enterprise/2.21/v3/users/followers": "/en/enterprise/2.21/user/rest/reference/users#followers",
|
"/en/enterprise/2.21/v3/users/followers": "/en/enterprise-server@2.21/rest/reference/users#followers",
|
||||||
"/en/enterprise/2.21/v3/users/gpg_keys": "/en/enterprise/2.21/user/rest/reference/users#gpg-keys",
|
"/en/enterprise/2.21/v3/users/gpg_keys": "/en/enterprise-server@2.21/rest/reference/users#gpg-keys",
|
||||||
"/en/enterprise/2.21/v3/users": "/en/enterprise/2.21/user/rest/reference/users",
|
"/en/enterprise/2.21/v3/users": "/en/enterprise-server@2.21/rest/reference/users",
|
||||||
"/en/enterprise/2.21/v3/users/keys": "/en/enterprise/2.21/user/rest/reference/users#keys",
|
"/en/enterprise/2.21/v3/users/keys": "/en/enterprise-server@2.21/rest/reference/users#keys",
|
||||||
"/v3/actions/artifacts": "/en/rest/reference/actions#artifacts",
|
"/v3/actions/artifacts": "/en/free-pro-team@latest/rest/reference/actions#artifacts",
|
||||||
"/v3/actions": "/en/rest/reference/actions",
|
"/v3/actions": "/en/free-pro-team@latest/rest/reference/actions",
|
||||||
"/v3/actions/secrets": "/en/rest/reference/actions#secrets",
|
"/v3/actions/secrets": "/en/free-pro-team@latest/rest/reference/actions#secrets",
|
||||||
"/v3/actions/self-hosted-runners": "/en/rest/reference/actions#self-hosted-runners",
|
"/v3/actions/self-hosted-runners": "/en/free-pro-team@latest/rest/reference/actions#self-hosted-runners",
|
||||||
"/v3/actions/self_hosted_runners": "/en/rest/reference/actions#self-hosted-runners",
|
"/v3/actions/self_hosted_runners": "/en/free-pro-team@latest/rest/reference/actions#self-hosted-runners",
|
||||||
"/v3/actions/workflow-jobs": "/en/rest/reference/actions#workflow-jobs",
|
"/v3/actions/workflow-jobs": "/en/free-pro-team@latest/rest/reference/actions#workflow-jobs",
|
||||||
"/v3/actions/workflow-runs": "/en/rest/reference/actions#workflow-runs",
|
"/v3/actions/workflow-runs": "/en/free-pro-team@latest/rest/reference/actions#workflow-runs",
|
||||||
"/v3/actions/workflows": "/en/rest/reference/actions#workflows",
|
"/v3/actions/workflows": "/en/free-pro-team@latest/rest/reference/actions#workflows",
|
||||||
"/v3/activity/event_types": "/en/developers/webhooks-and-events/github-event-types",
|
"/v3/activity/event_types": "/en/free-pro-team@latest/developers/webhooks-and-events/github-event-types",
|
||||||
"/v3/activity/events/types": "/en/developers/webhooks-and-events/webhook-events-and-payloads",
|
"/v3/activity/events/types": "/en/free-pro-team@latest/developers/webhooks-and-events/webhook-events-and-payloads",
|
||||||
"/v3/activity/events": "/en/rest/reference/activity#events",
|
"/v3/activity/events": "/en/free-pro-team@latest/rest/reference/activity#events",
|
||||||
"/v3/activity/feeds": "/en/rest/reference/activity#feeds",
|
"/v3/activity/feeds": "/en/free-pro-team@latest/rest/reference/activity#feeds",
|
||||||
"/v3/activity": "/en/rest/reference/activity",
|
"/v3/activity": "/en/free-pro-team@latest/rest/reference/activity",
|
||||||
"/v3/activity/notifications": "/en/rest/reference/activity#notifications",
|
"/v3/activity/notifications": "/en/free-pro-team@latest/rest/reference/activity#notifications",
|
||||||
"/v3/activity/starring": "/en/rest/reference/activity#starring",
|
"/v3/activity/starring": "/en/free-pro-team@latest/rest/reference/activity#starring",
|
||||||
"/v3/activity/watching": "/en/rest/reference/activity#watching",
|
"/v3/activity/watching": "/en/free-pro-team@latest/rest/reference/activity#watching",
|
||||||
"/v3/apps/available-endpoints": "/en/rest/overview/endpoints-available-for-github-apps",
|
"/v3/apps/available-endpoints": "/en/free-pro-team@latest/rest/overview/endpoints-available-for-github-apps",
|
||||||
"/v3/apps": "/en/rest/reference/apps",
|
"/v3/apps": "/en/free-pro-team@latest/rest/reference/apps",
|
||||||
"/v3/apps/installations": "/en/rest/reference/apps#installations",
|
"/v3/apps/installations": "/en/free-pro-team@latest/rest/reference/apps#installations",
|
||||||
"/v3/apps/marketplace": "/en/rest/reference/apps#marketplace",
|
"/v3/apps/marketplace": "/en/free-pro-team@latest/rest/reference/apps#marketplace",
|
||||||
"/v3/apps/oauth_applications": "/en/rest/reference/apps#oauth-applications",
|
"/v3/apps/oauth_applications": "/en/free-pro-team@latest/rest/reference/apps#oauth-applications",
|
||||||
"/v3/apps/permissions": "/en/rest/reference/permissions-required-for-github-apps",
|
"/v3/apps/permissions": "/en/free-pro-team@latest/rest/reference/permissions-required-for-github-apps",
|
||||||
"/v3/checks": "/en/rest/reference/checks",
|
"/v3/checks": "/en/free-pro-team@latest/rest/reference/checks",
|
||||||
"/v3/checks/runs": "/en/rest/reference/checks#runs",
|
"/v3/checks/runs": "/en/free-pro-team@latest/rest/reference/checks#runs",
|
||||||
"/v3/checks/suites": "/en/rest/reference/checks#suites",
|
"/v3/checks/suites": "/en/free-pro-team@latest/rest/reference/checks#suites",
|
||||||
"/v3/code-scanning": "/en/rest/reference/code-scanning",
|
"/v3/code-scanning": "/en/free-pro-team@latest/rest/reference/code-scanning",
|
||||||
"/v3/codes_of_conduct": "/en/rest/reference/codes-of-conduct",
|
"/v3/codes_of_conduct": "/en/free-pro-team@latest/rest/reference/codes-of-conduct",
|
||||||
"/v3/emojis": "/en/rest/reference/emojis",
|
"/v3/emojis": "/en/free-pro-team@latest/rest/reference/emojis",
|
||||||
"/v3/enterprise-admin": "/en/rest/reference/enterprise-admin",
|
"/v3/enterprise-admin": "/en/free-pro-team@latest/rest/reference/enterprise-admin",
|
||||||
"/v3/enterprise-admin/admin_stats": "/en/enterprise/user/rest/reference/enterprise-admin#admin-stats",
|
"/v3/enterprise-admin/admin_stats": "/en/enterprise-server/rest/reference/enterprise-admin#admin-stats",
|
||||||
"/v3/enterprise-admin/global_webhooks": "/en/enterprise/user/rest/reference/enterprise-admin#global-webhooks",
|
"/v3/enterprise-admin/global_webhooks": "/en/enterprise-server/rest/reference/enterprise-admin#global-webhooks",
|
||||||
"/v3/enterprise-admin/ldap": "/en/enterprise/user/rest/reference/enterprise-admin#ldap",
|
"/v3/enterprise-admin/ldap": "/en/enterprise-server/rest/reference/enterprise-admin#ldap",
|
||||||
"/v3/enterprise-admin/license": "/en/enterprise/user/rest/reference/enterprise-admin#license",
|
"/v3/enterprise-admin/license": "/en/enterprise-server/rest/reference/enterprise-admin#license",
|
||||||
"/v3/enterprise-admin/management_console": "/en/enterprise/user/rest/reference/enterprise-admin#management-console",
|
"/v3/enterprise-admin/management_console": "/en/enterprise-server/rest/reference/enterprise-admin#management-console",
|
||||||
"/v3/enterprise-admin/orgs": "/en/enterprise/user/rest/reference/enterprise-admin#orgs",
|
"/v3/enterprise-admin/orgs": "/en/enterprise-server/rest/reference/enterprise-admin#orgs",
|
||||||
"/v3/enterprise-admin/pre_receive_environments": "/en/enterprise/user/rest/reference/enterprise-admin#pre-receive-environments",
|
"/v3/enterprise-admin/pre_receive_environments": "/en/enterprise-server/rest/reference/enterprise-admin#pre-receive-environments",
|
||||||
"/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise/user/rest/reference/enterprise-admin#pre-receive-hooks",
|
"/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise-server/rest/reference/enterprise-admin#pre-receive-hooks",
|
||||||
"/v3/enterprise-admin/search_indexing": "/en/enterprise/user/rest/reference/enterprise-admin#search-indexing",
|
"/v3/enterprise-admin/search_indexing": "/en/enterprise-server/rest/reference/enterprise-admin#search-indexing",
|
||||||
"/v3/enterprise-admin/users": "/en/enterprise/user/rest/reference/enterprise-admin#users",
|
"/v3/enterprise-admin/users": "/en/enterprise-server/rest/reference/enterprise-admin#users",
|
||||||
"/v3/gists/comments": "/en/rest/reference/gists#comments",
|
"/v3/gists/comments": "/en/free-pro-team@latest/rest/reference/gists#comments",
|
||||||
"/v3/gists": "/en/rest/reference/gists",
|
"/v3/gists": "/en/free-pro-team@latest/rest/reference/gists",
|
||||||
"/v3/git/blobs": "/en/rest/reference/git#blobs",
|
"/v3/git/blobs": "/en/free-pro-team@latest/rest/reference/git#blobs",
|
||||||
"/v3/git/commits": "/en/rest/reference/git#commits",
|
"/v3/git/commits": "/en/free-pro-team@latest/rest/reference/git#commits",
|
||||||
"/v3/git": "/en/rest/reference/git",
|
"/v3/git": "/en/free-pro-team@latest/rest/reference/git",
|
||||||
"/v3/git/refs": "/en/rest/reference/git#refs",
|
"/v3/git/refs": "/en/free-pro-team@latest/rest/reference/git#refs",
|
||||||
"/v3/git/tags": "/en/rest/reference/git#tags",
|
"/v3/git/tags": "/en/free-pro-team@latest/rest/reference/git#tags",
|
||||||
"/v3/git/trees": "/en/rest/reference/git#trees",
|
"/v3/git/trees": "/en/free-pro-team@latest/rest/reference/git#trees",
|
||||||
"/v3/gitignore": "/en/rest/reference/gitignore",
|
"/v3/gitignore": "/en/free-pro-team@latest/rest/reference/gitignore",
|
||||||
"/v3/interactions": "/en/rest/reference/interactions",
|
"/v3/interactions": "/en/free-pro-team@latest/rest/reference/interactions",
|
||||||
"/v3/interactions/orgs": "/en/rest/reference/interactions#orgs",
|
"/v3/interactions/orgs": "/en/free-pro-team@latest/rest/reference/interactions#orgs",
|
||||||
"/v3/interactions/repos": "/en/rest/reference/interactions#repos",
|
"/v3/interactions/repos": "/en/free-pro-team@latest/rest/reference/interactions#repos",
|
||||||
"/v3/issues/assignees": "/en/rest/reference/issues#assignees",
|
"/v3/issues/assignees": "/en/free-pro-team@latest/rest/reference/issues#assignees",
|
||||||
"/v3/issues/comments": "/en/rest/reference/issues#comments",
|
"/v3/issues/comments": "/en/free-pro-team@latest/rest/reference/issues#comments",
|
||||||
"/v3/issues/events": "/en/rest/reference/issues#events",
|
"/v3/issues/events": "/en/free-pro-team@latest/rest/reference/issues#events",
|
||||||
"/v3/issues": "/en/rest/reference/issues",
|
"/v3/issues": "/en/free-pro-team@latest/rest/reference/issues",
|
||||||
"/v3/issues/issue-event-types": "/en/developers/webhooks-and-events/issue-event-types",
|
"/v3/issues/issue-event-types": "/en/free-pro-team@latest/developers/webhooks-and-events/issue-event-types",
|
||||||
"/v3/issues/labels": "/en/rest/reference/issues#labels",
|
"/v3/issues/labels": "/en/free-pro-team@latest/rest/reference/issues#labels",
|
||||||
"/v3/issues/milestones": "/en/rest/reference/issues#milestones",
|
"/v3/issues/milestones": "/en/free-pro-team@latest/rest/reference/issues#milestones",
|
||||||
"/v3/issues/timeline": "/en/rest/reference/issues#timeline",
|
"/v3/issues/timeline": "/en/free-pro-team@latest/rest/reference/issues#timeline",
|
||||||
"/v3/licenses": "/en/rest/reference/licenses",
|
"/v3/licenses": "/en/free-pro-team@latest/rest/reference/licenses",
|
||||||
"/v3/markdown": "/en/rest/reference/markdown",
|
"/v3/markdown": "/en/free-pro-team@latest/rest/reference/markdown",
|
||||||
"/v3/meta": "/en/rest/reference/meta",
|
"/v3/meta": "/en/free-pro-team@latest/rest/reference/meta",
|
||||||
"/v3/migrations": "/en/rest/reference/migrations",
|
"/v3/migrations": "/en/free-pro-team@latest/rest/reference/migrations",
|
||||||
"/v3/migrations/orgs": "/en/rest/reference/migrations#orgs",
|
"/v3/migrations/orgs": "/en/free-pro-team@latest/rest/reference/migrations#orgs",
|
||||||
"/v3/migrations/source_imports": "/en/rest/reference/migrations#source-imports",
|
"/v3/migrations/source_imports": "/en/free-pro-team@latest/rest/reference/migrations#source-imports",
|
||||||
"/v3/migrations/users": "/en/rest/reference/migrations#users",
|
"/v3/migrations/users": "/en/free-pro-team@latest/rest/reference/migrations#users",
|
||||||
"/v3/oauth_authorizations": "/en/rest/reference/oauth-authorizations",
|
"/v3/oauth_authorizations": "/en/free-pro-team@latest/rest/reference/oauth-authorizations",
|
||||||
"/v3/orgs/blocking": "/en/rest/reference/orgs#blocking",
|
"/v3/orgs/blocking": "/en/free-pro-team@latest/rest/reference/orgs#blocking",
|
||||||
"/v3/orgs/hooks": "/en/rest/reference/orgs#hooks",
|
"/v3/orgs/hooks": "/en/free-pro-team@latest/rest/reference/orgs#hooks",
|
||||||
"/v3/orgs": "/en/rest/reference/orgs",
|
"/v3/orgs": "/en/free-pro-team@latest/rest/reference/orgs",
|
||||||
"/v3/orgs/members": "/en/rest/reference/orgs#members",
|
"/v3/orgs/members": "/en/free-pro-team@latest/rest/reference/orgs#members",
|
||||||
"/v3/orgs/migrations": "/en/rest/reference/orgs#migrations",
|
"/v3/orgs/migrations": "/en/free-pro-team@latest/rest/reference/orgs#migrations",
|
||||||
"/v3/orgs/outside_collaborators": "/en/rest/reference/orgs#outside-collaborators",
|
"/v3/orgs/outside_collaborators": "/en/free-pro-team@latest/rest/reference/orgs#outside-collaborators",
|
||||||
"/v3/orgs/pre_receive_hooks": "/en/enterprise/user/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
"/v3/orgs/pre_receive_hooks": "/en/enterprise-server/rest/reference/enterprise-admin#organization-pre-receive-hooks",
|
||||||
"/v3/orgs/teams": "/en/rest/reference/orgs#teams",
|
"/v3/orgs/teams": "/en/free-pro-team@latest/rest/reference/orgs#teams",
|
||||||
"/v3/projects/cards": "/en/rest/reference/projects#cards",
|
"/v3/projects/cards": "/en/free-pro-team@latest/rest/reference/projects#cards",
|
||||||
"/v3/projects/collaborators": "/en/rest/reference/projects#collaborators",
|
"/v3/projects/collaborators": "/en/free-pro-team@latest/rest/reference/projects#collaborators",
|
||||||
"/v3/projects/columns": "/en/rest/reference/projects#columns",
|
"/v3/projects/columns": "/en/free-pro-team@latest/rest/reference/projects#columns",
|
||||||
"/v3/projects": "/en/rest/reference/projects",
|
"/v3/projects": "/en/free-pro-team@latest/rest/reference/projects",
|
||||||
"/v3/pulls/comments": "/en/rest/reference/pulls#comments",
|
"/v3/pulls/comments": "/en/free-pro-team@latest/rest/reference/pulls#comments",
|
||||||
"/v3/pulls": "/en/rest/reference/pulls",
|
"/v3/pulls": "/en/free-pro-team@latest/rest/reference/pulls",
|
||||||
"/v3/pulls/review_requests": "/en/rest/reference/pulls#review-requests",
|
"/v3/pulls/review_requests": "/en/free-pro-team@latest/rest/reference/pulls#review-requests",
|
||||||
"/v3/pulls/reviews": "/en/rest/reference/pulls#reviews",
|
"/v3/pulls/reviews": "/en/free-pro-team@latest/rest/reference/pulls#reviews",
|
||||||
"/v3/rate_limit": "/en/rest/reference/rate-limit",
|
"/v3/rate_limit": "/en/free-pro-team@latest/rest/reference/rate-limit",
|
||||||
"/v3/reactions": "/en/rest/reference/reactions",
|
"/v3/reactions": "/en/free-pro-team@latest/rest/reference/reactions",
|
||||||
"/v3/repos/branches": "/en/rest/reference/repos#branches",
|
"/v3/repos/branches": "/en/free-pro-team@latest/rest/reference/repos#branches",
|
||||||
"/v3/repos/collaborators": "/en/rest/reference/repos#collaborators",
|
"/v3/repos/collaborators": "/en/free-pro-team@latest/rest/reference/repos#collaborators",
|
||||||
"/v3/repos/comments": "/en/rest/reference/repos#comments",
|
"/v3/repos/comments": "/en/free-pro-team@latest/rest/reference/repos#comments",
|
||||||
"/v3/repos/commits": "/en/rest/reference/repos#commits",
|
"/v3/repos/commits": "/en/free-pro-team@latest/rest/reference/repos#commits",
|
||||||
"/v3/repos/community": "/en/rest/reference/repos#community",
|
"/v3/repos/community": "/en/free-pro-team@latest/rest/reference/repos#community",
|
||||||
"/v3/repos/contents": "/en/rest/reference/repos#contents",
|
"/v3/repos/contents": "/en/free-pro-team@latest/rest/reference/repos#contents",
|
||||||
"/v3/repos/deployments": "/en/rest/reference/repos#deployments",
|
"/v3/repos/deployments": "/en/free-pro-team@latest/rest/reference/repos#deployments",
|
||||||
"/v3/repos/downloads": "/en/rest/reference/repos#downloads",
|
"/v3/repos/downloads": "/en/free-pro-team@latest/rest/reference/repos#downloads",
|
||||||
"/v3/repos/forks": "/en/rest/reference/repos#forks",
|
"/v3/repos/forks": "/en/free-pro-team@latest/rest/reference/repos#forks",
|
||||||
"/v3/repos/hooks": "/en/rest/reference/repos#hooks",
|
"/v3/repos/hooks": "/en/free-pro-team@latest/rest/reference/repos#hooks",
|
||||||
"/v3/repos": "/en/rest/reference/repos",
|
"/v3/repos": "/en/free-pro-team@latest/rest/reference/repos",
|
||||||
"/v3/repos/invitations": "/en/rest/reference/repos#invitations",
|
"/v3/repos/invitations": "/en/free-pro-team@latest/rest/reference/repos#invitations",
|
||||||
"/v3/repos/keys": "/en/rest/reference/repos#keys",
|
"/v3/repos/keys": "/en/free-pro-team@latest/rest/reference/repos#keys",
|
||||||
"/v3/repos/merging": "/en/rest/reference/repos#merging",
|
"/v3/repos/merging": "/en/free-pro-team@latest/rest/reference/repos#merging",
|
||||||
"/v3/repos/pages": "/en/rest/reference/repos#pages",
|
"/v3/repos/pages": "/en/free-pro-team@latest/rest/reference/repos#pages",
|
||||||
"/v3/repos/pre_receive_hooks": "/en/rest/reference/repos#pre-receive-hooks",
|
"/v3/repos/pre_receive_hooks": "/en/free-pro-team@latest/rest/reference/repos#pre-receive-hooks",
|
||||||
"/v3/repos/releases": "/en/rest/reference/repos#releases",
|
"/v3/repos/releases": "/en/free-pro-team@latest/rest/reference/repos#releases",
|
||||||
"/v3/repos/statistics": "/en/rest/reference/repos#statistics",
|
"/v3/repos/statistics": "/en/free-pro-team@latest/rest/reference/repos#statistics",
|
||||||
"/v3/repos/statuses": "/en/rest/reference/repos#statuses",
|
"/v3/repos/statuses": "/en/free-pro-team@latest/rest/reference/repos#statuses",
|
||||||
"/v3/repos/traffic": "/en/rest/reference/repos#traffic",
|
"/v3/repos/traffic": "/en/free-pro-team@latest/rest/reference/repos#traffic",
|
||||||
"/v3/scim": "/en/rest/reference/scim",
|
"/v3/scim": "/en/free-pro-team@latest/rest/reference/scim",
|
||||||
"/v3/search": "/en/rest/reference/search",
|
"/v3/search": "/en/free-pro-team@latest/rest/reference/search",
|
||||||
"/v3/teams/discussion_comments": "/en/rest/reference/teams#discussion-comments",
|
"/v3/teams/discussion_comments": "/en/free-pro-team@latest/rest/reference/teams#discussion-comments",
|
||||||
"/v3/teams/discussions": "/en/rest/reference/teams#discussions",
|
"/v3/teams/discussions": "/en/free-pro-team@latest/rest/reference/teams#discussions",
|
||||||
"/v3/teams": "/en/rest/reference/teams",
|
"/v3/teams": "/en/free-pro-team@latest/rest/reference/teams",
|
||||||
"/v3/teams/members": "/en/rest/reference/teams#members",
|
"/v3/teams/members": "/en/free-pro-team@latest/rest/reference/teams#members",
|
||||||
"/v3/teams/team_sync": "/en/rest/reference/teams#team-sync",
|
"/v3/teams/team_sync": "/en/free-pro-team@latest/rest/reference/teams#team-sync",
|
||||||
"/v3/users/blocking": "/en/rest/reference/users#blocking",
|
"/v3/users/blocking": "/en/free-pro-team@latest/rest/reference/users#blocking",
|
||||||
"/v3/users/emails": "/en/rest/reference/users#emails",
|
"/v3/users/emails": "/en/free-pro-team@latest/rest/reference/users#emails",
|
||||||
"/v3/users/followers": "/en/rest/reference/users#followers",
|
"/v3/users/followers": "/en/free-pro-team@latest/rest/reference/users#followers",
|
||||||
"/v3/users/gpg_keys": "/en/rest/reference/users#gpg-keys",
|
"/v3/users/gpg_keys": "/en/free-pro-team@latest/rest/reference/users#gpg-keys",
|
||||||
"/v3/users": "/en/rest/reference/users",
|
"/v3/users": "/en/free-pro-team@latest/rest/reference/users",
|
||||||
"/v3/users/keys": "/en/rest/reference/users#keys"
|
"/v3/users/keys": "/en/free-pro-team@latest/rest/reference/users#keys"
|
||||||
}
|
}
|
||||||
|
|||||||
5
tests/fixtures/sample-article.md
vendored
5
tests/fixtures/sample-article.md
vendored
@@ -1,5 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: A sample article
|
title: A sample article
|
||||||
productVersions:
|
versions:
|
||||||
dotcom: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
4
tests/fixtures/sample-toc-index.md
vendored
4
tests/fixtures/sample-toc-index.md
vendored
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: A sample TOC
|
title: A sample TOC
|
||||||
productVersions:
|
versions:
|
||||||
dotcom: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
{% link_in_list /sample-article %}
|
{% link_in_list /sample-article %}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Translated TOC
|
title: Translated TOC
|
||||||
productVersions:
|
versions:
|
||||||
dotcom: '*'
|
free-pro-team: '*'
|
||||||
---
|
---
|
||||||
|
|
||||||
### 目次
|
### 目次
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const flat = require('flat')
|
const flat = require('flat')
|
||||||
const { last } = require('lodash')
|
const { last } = require('lodash')
|
||||||
const cheerio = require('cheerio')
|
const cheerio = require('cheerio')
|
||||||
@@ -58,9 +57,7 @@ describe('page rendering', () => {
|
|||||||
const brokenLinksPerPage = {}
|
const brokenLinksPerPage = {}
|
||||||
|
|
||||||
// get an array of the pages product versions
|
// get an array of the pages product versions
|
||||||
const pageVersions = process.env.FEATURE_NEW_VERSIONS
|
const pageVersions = getApplicableVersions(page.versions, page.relativePath)
|
||||||
? getApplicableVersions(page.versions, page.relativePath)
|
|
||||||
: getApplicableVersions(page.productVersions, page.relativePath)
|
|
||||||
|
|
||||||
for (const pageVersion of pageVersions) {
|
for (const pageVersion of pageVersions) {
|
||||||
// attach page-specific properties to context
|
// attach page-specific properties to context
|
||||||
@@ -70,9 +67,7 @@ describe('page rendering', () => {
|
|||||||
|
|
||||||
const relevantPermalink = page.permalinks.find(permalink => permalink.pageVersion === pageVersion)
|
const relevantPermalink = page.permalinks.find(permalink => permalink.pageVersion === pageVersion)
|
||||||
|
|
||||||
const currentOldVersion = process.env.FEATURE_NEW_VERSIONS
|
const currentOldVersion = getOldVersionFromNewVersion(pageVersion)
|
||||||
? getOldVersionFromNewVersion(pageVersion)
|
|
||||||
: pageVersion
|
|
||||||
|
|
||||||
// borrowed from middleware/contextualizers/graphql.js
|
// borrowed from middleware/contextualizers/graphql.js
|
||||||
context.graphql = {
|
context.graphql = {
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const cheerio = require('cheerio')
|
const cheerio = require('cheerio')
|
||||||
const loadPages = require('../../lib/pages')
|
const loadPages = require('../../lib/pages')
|
||||||
const loadSiteData = require('../../lib/site-data')
|
const loadSiteData = require('../../lib/site-data')
|
||||||
@@ -50,9 +49,7 @@ describe('page rendering', () => {
|
|||||||
const brokenLinksPerPage = {}
|
const brokenLinksPerPage = {}
|
||||||
|
|
||||||
// get an array of the pages product versions
|
// get an array of the pages product versions
|
||||||
const pageVersions = process.env.FEATURE_NEW_VERSIONS
|
const pageVersions = getApplicableVersions(page.versions, page.relativePath)
|
||||||
? getApplicableVersions(page.versions, page.relativePath)
|
|
||||||
: getApplicableVersions(page.productVersions, page.relativePath)
|
|
||||||
|
|
||||||
for (const pageVersion of pageVersions) {
|
for (const pageVersion of pageVersions) {
|
||||||
// attach page-specific properties to context
|
// attach page-specific properties to context
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
const { getDOM, getJSON } = require('../helpers')
|
const { getDOM, getJSON } = require('../helpers')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('breadcrumbs', () => {
|
describe('breadcrumbs', () => {
|
||||||
jest.setTimeout(300 * 1000)
|
jest.setTimeout(300 * 1000)
|
||||||
|
|
||||||
@@ -24,7 +21,7 @@ describe('breadcrumbs', () => {
|
|||||||
expect($breadcrumbs.eq(3).attr('title')).toBe('article: Supported browsers')
|
expect($breadcrumbs.eq(3).attr('title')).toBe('article: Supported browsers')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('maptopic pages include their own grayed-out breadcrumb', async () => {
|
test('maptopic pages include their own grayed-out breadcrumb', async () => {
|
||||||
const $ = await getDOM('/github/getting-started-with-github/using-github')
|
const $ = await getDOM('/github/getting-started-with-github/using-github')
|
||||||
const $breadcrumbs = $('.breadcrumbs a')
|
const $breadcrumbs = $('.breadcrumbs a')
|
||||||
|
|
||||||
@@ -35,18 +32,7 @@ describe('breadcrumbs', () => {
|
|||||||
expect($breadcrumbs.eq(2).hasClass('text-gray-light')).toBe(true)
|
expect($breadcrumbs.eq(2).hasClass('text-gray-light')).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('maptopic pages include their own grayed-out breadcrumb', async () => {
|
test('works for enterprise user pages', async () => {
|
||||||
const $ = await getDOM('/github/getting-started-with-github/using-github')
|
|
||||||
const $breadcrumbs = $('.breadcrumbs a')
|
|
||||||
|
|
||||||
expect($breadcrumbs).toHaveLength(3)
|
|
||||||
expect($breadcrumbs.eq(0).attr('title')).toBe('product: GitHub.com')
|
|
||||||
expect($breadcrumbs.eq(1).attr('title')).toBe('category: Getting started')
|
|
||||||
expect($breadcrumbs.eq(2).attr('title')).toBe('maptopic: Using GitHub')
|
|
||||||
expect($breadcrumbs.eq(2).hasClass('text-gray-light')).toBe(true)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('works for enterprise user pages', async () => {
|
|
||||||
const $ = await getDOM('/en/enterprise/user/github/getting-started-with-github/supported-browsers')
|
const $ = await getDOM('/en/enterprise/user/github/getting-started-with-github/supported-browsers')
|
||||||
const $breadcrumbs = $('.breadcrumbs a')
|
const $breadcrumbs = $('.breadcrumbs a')
|
||||||
expect($breadcrumbs).toHaveLength(4)
|
expect($breadcrumbs).toHaveLength(4)
|
||||||
@@ -54,13 +40,6 @@ describe('breadcrumbs', () => {
|
|||||||
expect($breadcrumbs.eq(0).attr('title')).toBe('product: GitHub.com')
|
expect($breadcrumbs.eq(0).attr('title')).toBe('product: GitHub.com')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('works for enterprise user pages', async () => {
|
|
||||||
const $ = await getDOM('/en/enterprise/user/github/getting-started-with-github/supported-browsers')
|
|
||||||
const $breadcrumbs = $('.breadcrumbs a')
|
|
||||||
expect($breadcrumbs).toHaveLength(4)
|
|
||||||
expect($breadcrumbs.eq(0).attr('title')).toBe('product: GitHub Enterprise Server')
|
|
||||||
})
|
|
||||||
|
|
||||||
test('parses Liquid variables inside titles', async () => {
|
test('parses Liquid variables inside titles', async () => {
|
||||||
const $ = await getDOM('/en/enterprise/admin/enterprise-support')
|
const $ = await getDOM('/en/enterprise/admin/enterprise-support')
|
||||||
const $breadcrumbs = $('.breadcrumbs a')
|
const $breadcrumbs = $('.breadcrumbs a')
|
||||||
@@ -68,33 +47,21 @@ describe('breadcrumbs', () => {
|
|||||||
expect($breadcrumbs.eq(1).attr('title')).toBe('category: Working with GitHub Support')
|
expect($breadcrumbs.eq(1).attr('title')).toBe('category: Working with GitHub Support')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('English breadcrumbs link to English pages', async () => {
|
test('English breadcrumbs link to English pages', async () => {
|
||||||
const $ = await getDOM('/en/github/getting-started-with-github')
|
const $ = await getDOM('/en/github/getting-started-with-github')
|
||||||
const $breadcrumbs = $('.breadcrumbs a')
|
const $breadcrumbs = $('.breadcrumbs a')
|
||||||
expect($breadcrumbs.eq(0).attr('href')).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
expect($breadcrumbs.eq(0).attr('href')).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('English breadcrumbs link to English pages', async () => {
|
test('localized breadcrumbs link to localize pages', async () => {
|
||||||
const $ = await getDOM('/en/github/getting-started-with-github')
|
|
||||||
const $breadcrumbs = $('.breadcrumbs a')
|
|
||||||
expect($breadcrumbs.eq(0).attr('href')).toBe('/en/github')
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('localized breadcrumbs link to localize pages', async () => {
|
|
||||||
const $ = await getDOM('/ja/github/getting-started-with-github')
|
const $ = await getDOM('/ja/github/getting-started-with-github')
|
||||||
const $breadcrumbs = $('.breadcrumbs a')
|
const $breadcrumbs = $('.breadcrumbs a')
|
||||||
expect($breadcrumbs.eq(0).attr('href')).toBe(`/ja/${nonEnterpriseDefaultVersion}/github`)
|
expect($breadcrumbs.eq(0).attr('href')).toBe(`/ja/${nonEnterpriseDefaultVersion}/github`)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('localized breadcrumbs link to localize pages', async () => {
|
|
||||||
const $ = await getDOM('/ja/github/getting-started-with-github')
|
|
||||||
const $breadcrumbs = $('.breadcrumbs a')
|
|
||||||
expect($breadcrumbs.eq(0).attr('href')).toBe('/ja/github')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('context.breadcrumbs object', () => {
|
describe('context.breadcrumbs object', () => {
|
||||||
testFeatureNewVersions('works on product index pages', async () => {
|
test('works on product index pages', async () => {
|
||||||
const breadcrumbs = await getJSON('/en/github?json=breadcrumbs')
|
const breadcrumbs = await getJSON('/en/github?json=breadcrumbs')
|
||||||
const expected = {
|
const expected = {
|
||||||
product: {
|
product: {
|
||||||
@@ -105,18 +72,7 @@ describe('breadcrumbs', () => {
|
|||||||
expect(breadcrumbs).toEqual(expected)
|
expect(breadcrumbs).toEqual(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('works on product index pages', async () => {
|
test('works on category index pages', async () => {
|
||||||
const breadcrumbs = await getJSON('/en/github?json=breadcrumbs')
|
|
||||||
const expected = {
|
|
||||||
product: {
|
|
||||||
href: '/github',
|
|
||||||
title: 'GitHub.com'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
expect(breadcrumbs).toEqual(expected)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('works on category index pages', async () => {
|
|
||||||
const breadcrumbs = await getJSON('/en/github/authenticating-to-github?json=breadcrumbs')
|
const breadcrumbs = await getJSON('/en/github/authenticating-to-github?json=breadcrumbs')
|
||||||
const expected = {
|
const expected = {
|
||||||
product: {
|
product: {
|
||||||
@@ -131,22 +87,7 @@ describe('breadcrumbs', () => {
|
|||||||
expect(breadcrumbs).toEqual(expected)
|
expect(breadcrumbs).toEqual(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('works on category index pages', async () => {
|
test('works on maptopic pages', async () => {
|
||||||
const breadcrumbs = await getJSON('/en/github/authenticating-to-github?json=breadcrumbs')
|
|
||||||
const expected = {
|
|
||||||
product: {
|
|
||||||
href: '/github',
|
|
||||||
title: 'GitHub.com'
|
|
||||||
},
|
|
||||||
category: {
|
|
||||||
href: '/github/authenticating-to-github',
|
|
||||||
title: 'Authentication'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
expect(breadcrumbs).toEqual(expected)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('works on maptopic pages', async () => {
|
|
||||||
const breadcrumbs = await getJSON('/en/github/authenticating-to-github/keeping-your-account-and-data-secure?json=breadcrumbs')
|
const breadcrumbs = await getJSON('/en/github/authenticating-to-github/keeping-your-account-and-data-secure?json=breadcrumbs')
|
||||||
const expected = {
|
const expected = {
|
||||||
product: {
|
product: {
|
||||||
@@ -165,26 +106,7 @@ describe('breadcrumbs', () => {
|
|||||||
expect(breadcrumbs).toEqual(expected)
|
expect(breadcrumbs).toEqual(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('works on maptopic pages', async () => {
|
test('works on articles that DO have maptopics ', async () => {
|
||||||
const breadcrumbs = await getJSON('/en/github/authenticating-to-github/keeping-your-account-and-data-secure?json=breadcrumbs')
|
|
||||||
const expected = {
|
|
||||||
product: {
|
|
||||||
href: '/github',
|
|
||||||
title: 'GitHub.com'
|
|
||||||
},
|
|
||||||
category: {
|
|
||||||
href: '/github/authenticating-to-github',
|
|
||||||
title: 'Authentication'
|
|
||||||
},
|
|
||||||
maptopic: {
|
|
||||||
href: '/github/authenticating-to-github/keeping-your-account-and-data-secure',
|
|
||||||
title: 'Keeping your account and data secure'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
expect(breadcrumbs).toEqual(expected)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('works on articles that DO have maptopics ', async () => {
|
|
||||||
const breadcrumbs = await getJSON('/en/github/authenticating-to-github/creating-a-strong-password?json=breadcrumbs')
|
const breadcrumbs = await getJSON('/en/github/authenticating-to-github/creating-a-strong-password?json=breadcrumbs')
|
||||||
const expected = {
|
const expected = {
|
||||||
product: {
|
product: {
|
||||||
@@ -207,30 +129,7 @@ describe('breadcrumbs', () => {
|
|||||||
expect(breadcrumbs).toEqual(expected)
|
expect(breadcrumbs).toEqual(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('works on articles that DO have maptopics ', async () => {
|
test('works on articles that DO NOT have maptopics ', async () => {
|
||||||
const breadcrumbs = await getJSON('/en/github/authenticating-to-github/creating-a-strong-password?json=breadcrumbs')
|
|
||||||
const expected = {
|
|
||||||
product: {
|
|
||||||
href: '/github',
|
|
||||||
title: 'GitHub.com'
|
|
||||||
},
|
|
||||||
category: {
|
|
||||||
href: '/github/authenticating-to-github',
|
|
||||||
title: 'Authentication'
|
|
||||||
},
|
|
||||||
maptopic: {
|
|
||||||
href: '/github/authenticating-to-github/keeping-your-account-and-data-secure',
|
|
||||||
title: 'Keeping your account and data secure'
|
|
||||||
},
|
|
||||||
article: {
|
|
||||||
href: '/github/authenticating-to-github/creating-a-strong-password',
|
|
||||||
title: 'Creating a strong password'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
expect(breadcrumbs).toEqual(expected)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('works on articles that DO NOT have maptopics ', async () => {
|
|
||||||
const breadcrumbs = await getJSON('/github/site-policy/github-privacy-statement?json=breadcrumbs')
|
const breadcrumbs = await getJSON('/github/site-policy/github-privacy-statement?json=breadcrumbs')
|
||||||
const expected = {
|
const expected = {
|
||||||
product: {
|
product: {
|
||||||
@@ -249,25 +148,6 @@ describe('breadcrumbs', () => {
|
|||||||
expect(breadcrumbs).toEqual(expected)
|
expect(breadcrumbs).toEqual(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('works on articles that DO NOT have maptopics ', async () => {
|
|
||||||
const breadcrumbs = await getJSON('/github/site-policy/github-privacy-statement?json=breadcrumbs')
|
|
||||||
const expected = {
|
|
||||||
product: {
|
|
||||||
href: '/github',
|
|
||||||
title: 'GitHub.com'
|
|
||||||
},
|
|
||||||
category: {
|
|
||||||
href: '/github/site-policy',
|
|
||||||
title: 'Site policy'
|
|
||||||
},
|
|
||||||
article: {
|
|
||||||
href: '/github/site-policy/github-privacy-statement',
|
|
||||||
title: 'GitHub Privacy Statement'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
expect(breadcrumbs).toEqual(expected)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('returns an empty object on the landing page', async () => {
|
test('returns an empty object on the landing page', async () => {
|
||||||
const breadcrumbs = await getJSON('/en?json=breadcrumbs')
|
const breadcrumbs = await getJSON('/en?json=breadcrumbs')
|
||||||
expect(breadcrumbs).toEqual({})
|
expect(breadcrumbs).toEqual({})
|
||||||
|
|||||||
@@ -1,11 +1,7 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const { getDOM } = require('../helpers')
|
const { getDOM } = require('../helpers')
|
||||||
const { oldestSupported, latest } = require('../../lib/enterprise-server-releases')
|
const { oldestSupported, latest } = require('../../lib/enterprise-server-releases')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('header', () => {
|
describe('header', () => {
|
||||||
jest.setTimeout(5 * 60 * 1000)
|
jest.setTimeout(5 * 60 * 1000)
|
||||||
|
|
||||||
@@ -24,16 +20,11 @@ describe('header', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('language links', () => {
|
describe('language links', () => {
|
||||||
testFeatureNewVersions('lead to the same page in a different language', async () => {
|
test('lead to the same page in a different language', async () => {
|
||||||
const $ = await getDOM('/en/github/administering-a-repository/enabling-required-status-checks')
|
const $ = await getDOM('/en/github/administering-a-repository/enabling-required-status-checks')
|
||||||
expect($(`#languages-selector a[href="/ja/${nonEnterpriseDefaultVersion}/github/administering-a-repository/enabling-required-status-checks"]`).length).toBe(1)
|
expect($(`#languages-selector a[href="/ja/${nonEnterpriseDefaultVersion}/github/administering-a-repository/enabling-required-status-checks"]`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('lead to the same page in a different language', async () => {
|
|
||||||
const $ = await getDOM('/en/github/administering-a-repository/enabling-required-status-checks')
|
|
||||||
expect($('#languages-selector a[href="/ja/github/administering-a-repository/enabling-required-status-checks"]').length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('display the native name and the English name for each translated language', async () => {
|
test('display the native name and the English name for each translated language', async () => {
|
||||||
const $ = await getDOM('/en')
|
const $ = await getDOM('/en')
|
||||||
expect($('#languages-selector a[href="/en"]').text().trim()).toBe('English')
|
expect($('#languages-selector a[href="/en"]').text().trim()).toBe('English')
|
||||||
@@ -76,7 +67,7 @@ describe('header', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('mobile-only product dropdown links', () => {
|
describe('mobile-only product dropdown links', () => {
|
||||||
testFeatureNewVersions('include github and admin, and emphasize the current product', async () => {
|
test('include github and admin, and emphasize the current product', async () => {
|
||||||
const $ = await getDOM('/en/articles/enabling-required-status-checks')
|
const $ = await getDOM('/en/articles/enabling-required-status-checks')
|
||||||
|
|
||||||
const github = $(`#homepages a.active[href="/en/${nonEnterpriseDefaultVersion}/github"]`)
|
const github = $(`#homepages a.active[href="/en/${nonEnterpriseDefaultVersion}/github"]`)
|
||||||
@@ -90,46 +81,18 @@ describe('header', () => {
|
|||||||
expect(ghe.attr('class').includes('active')).toBe(false)
|
expect(ghe.attr('class').includes('active')).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('include dotcom and enterprise homepage, and emphasize the current product', async () => {
|
test('point to homepages in the current page\'s language', async () => {
|
||||||
const $ = await getDOM('/en/articles/enabling-required-status-checks')
|
|
||||||
|
|
||||||
const dotcom = $('#homepages a.active[href="/en/github"]')
|
|
||||||
expect(dotcom.length).toBe(1)
|
|
||||||
expect(dotcom.text().trim()).toBe('GitHub.com')
|
|
||||||
expect(dotcom.attr('class').includes('active')).toBe(true)
|
|
||||||
|
|
||||||
const ghe = $('#homepages a[href="/en/enterprise/admin"]')
|
|
||||||
expect(ghe.length).toBe(1)
|
|
||||||
expect(ghe.text().trim()).toBe('Enterprise Server')
|
|
||||||
expect(ghe.attr('class').includes('active')).toBe(false)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('point to homepages in the current page\'s language', async () => {
|
|
||||||
const $ = await getDOM('/ja/articles/enabling-required-status-checks')
|
const $ = await getDOM('/ja/articles/enabling-required-status-checks')
|
||||||
|
|
||||||
expect($(`#homepages a.active[href="/ja/${nonEnterpriseDefaultVersion}/github"]`).length).toBe(1)
|
expect($(`#homepages a.active[href="/ja/${nonEnterpriseDefaultVersion}/github"]`).length).toBe(1)
|
||||||
expect($(`#homepages a[href="/ja/enterprise-server@${latest}/admin"]`).length).toBe(1)
|
expect($(`#homepages a[href="/ja/enterprise-server@${latest}/admin"]`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('point to homepages in the current page\'s language', async () => {
|
test('emphasizes the product that corresponds to the current page', async () => {
|
||||||
const $ = await getDOM('/ja/articles/enabling-required-status-checks')
|
|
||||||
|
|
||||||
expect($('#homepages a.active[href="/ja/github"]').length).toBe(1)
|
|
||||||
expect($('#homepages a[href="/ja/enterprise/admin"]').length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('emphasizes the product that corresponds to the current page', async () => {
|
|
||||||
const $ = await getDOM(`/en/enterprise/${oldestSupported}/user/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address`)
|
const $ = await getDOM(`/en/enterprise/${oldestSupported}/user/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address`)
|
||||||
expect($(`#homepages a.active[href="/en/enterprise-server@${latest}/admin"]`).length).toBe(0)
|
expect($(`#homepages a.active[href="/en/enterprise-server@${latest}/admin"]`).length).toBe(0)
|
||||||
expect($(`#homepages a[href="/en/${nonEnterpriseDefaultVersion}/github"]`).length).toBe(1)
|
expect($(`#homepages a[href="/en/${nonEnterpriseDefaultVersion}/github"]`).length).toBe(1)
|
||||||
expect($(`#homepages a.active[href="/en/${nonEnterpriseDefaultVersion}/github"]`).length).toBe(1)
|
expect($(`#homepages a.active[href="/en/${nonEnterpriseDefaultVersion}/github"]`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('emphasizes the product that corresponds to the current page', async () => {
|
|
||||||
const $ = await getDOM(`/en/enterprise/${oldestSupported}/user/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address`)
|
|
||||||
expect($('#homepages a.active[href="/en/enterprise/admin"]').length).toBe(0)
|
|
||||||
expect($('#homepages a[href="/en/github"]').length).toBe(1)
|
|
||||||
expect($('#homepages a.active[href="/en/github"]').length).toBe(1)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const renderContent = require('../../lib/render-content')
|
const renderContent = require('../../lib/render-content')
|
||||||
|
|
||||||
describe('octicon tag', () => {
|
describe('octicon tag', () => {
|
||||||
|
|||||||
@@ -1,23 +1,14 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
||||||
const { getDOM } = require('../helpers')
|
const { getDOM } = require('../helpers')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('page titles', () => {
|
describe('page titles', () => {
|
||||||
jest.setTimeout(300 * 1000)
|
jest.setTimeout(300 * 1000)
|
||||||
|
|
||||||
testFeatureNewVersions('English homepage', async () => {
|
test('English homepage', async () => {
|
||||||
const $ = await getDOM('/en')
|
const $ = await getDOM('/en')
|
||||||
expect($('title').text()).toBe('GitHub Documentation')
|
expect($('title').text()).toBe('GitHub Documentation')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('dotcom English homepage', async () => {
|
|
||||||
const $ = await getDOM('/en')
|
|
||||||
expect($('title').text()).toBe('GitHub.com Help Documentation')
|
|
||||||
})
|
|
||||||
|
|
||||||
test('dotcom English article', async () => {
|
test('dotcom English article', async () => {
|
||||||
const $ = await getDOM('/en/articles/authorizing-oauth-apps')
|
const $ = await getDOM('/en/articles/authorizing-oauth-apps')
|
||||||
expect($('title').text()).toBe('Authorizing OAuth Apps - GitHub Docs')
|
expect($('title').text()).toBe('Authorizing OAuth Apps - GitHub Docs')
|
||||||
@@ -38,7 +29,7 @@ describe('page titles', () => {
|
|||||||
expect($('title').text()).toBe('Managing large files - GitHub Docs')
|
expect($('title').text()).toBe('Managing large files - GitHub Docs')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('dynamically parses liquid in page titles (even on subsequent requests)', async () => {
|
test('dynamically parses liquid in page titles (even on subsequent requests)', async () => {
|
||||||
let $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`)
|
let $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`)
|
||||||
expect($('title').text()).toBe('GitHub Enterprise Help Documentation - GitHub Docs')
|
expect($('title').text()).toBe('GitHub Enterprise Help Documentation - GitHub Docs')
|
||||||
|
|
||||||
@@ -49,20 +40,6 @@ describe('page titles', () => {
|
|||||||
expect($('title').text()).toBe('GitHub Enterprise Help Documentation - GitHub Docs')
|
expect($('title').text()).toBe('GitHub Enterprise Help Documentation - GitHub Docs')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('dynamically parses liquid in page titles (even on subsequent requests)', async () => {
|
|
||||||
let $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`)
|
|
||||||
expect($('h1').text()).toBe(`Enterprise Server ${enterpriseServerReleases.latest}`)
|
|
||||||
expect($('title').text()).toBe(`Enterprise Server ${enterpriseServerReleases.latest} - GitHub Docs`)
|
|
||||||
|
|
||||||
$ = await getDOM(`/en/enterprise/${enterpriseServerReleases.oldestSupported}`)
|
|
||||||
expect($('h1').text()).toBe(`Enterprise Server ${enterpriseServerReleases.oldestSupported}`)
|
|
||||||
expect($('title').text()).toBe(`Enterprise Server ${enterpriseServerReleases.oldestSupported} - GitHub Docs`)
|
|
||||||
|
|
||||||
$ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`)
|
|
||||||
expect($('h1').text()).toBe(`Enterprise Server ${enterpriseServerReleases.latest}`)
|
|
||||||
expect($('title').text()).toBe(`Enterprise Server ${enterpriseServerReleases.latest} - GitHub Docs`)
|
|
||||||
})
|
|
||||||
|
|
||||||
// TODO enable this once translated content has synced with the versioning changes
|
// TODO enable this once translated content has synced with the versioning changes
|
||||||
// Note the expected translations may need to be updated, since the English title changed
|
// Note the expected translations may need to be updated, since the English title changed
|
||||||
// from `GitHub.com Help Documentation` to `GitHub Documentation`
|
// from `GitHub.com Help Documentation` to `GitHub Documentation`
|
||||||
@@ -70,9 +47,4 @@ describe('page titles', () => {
|
|||||||
expect((await getDOM('/cn'))('title').text()).toBe('GitHub 帮助文档')
|
expect((await getDOM('/cn'))('title').text()).toBe('GitHub 帮助文档')
|
||||||
expect((await getDOM('/ja'))('title').text()).toBe('GitHub ヘルプドキュメント')
|
expect((await getDOM('/ja'))('title').text()).toBe('GitHub ヘルプドキュメント')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('displays only the site name on localized homepages', async () => {
|
|
||||||
expect((await getDOM('/cn'))('title').text()).toBe('GitHub.com 帮助文档')
|
|
||||||
expect((await getDOM('/ja'))('title').text()).toBe('GitHub.com ヘルプドキュメント')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const languages = require('../../lib/languages')
|
const languages = require('../../lib/languages')
|
||||||
const robotsParser = require('robots-parser')
|
const robotsParser = require('robots-parser')
|
||||||
const robotsMiddleware = require('../../middleware/robots')
|
const robotsMiddleware = require('../../middleware/robots')
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const lodash = require('lodash')
|
const lodash = require('lodash')
|
||||||
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
||||||
const { get, getDOM, head } = require('../helpers')
|
const { get, getDOM, head } = require('../helpers')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('server', () => {
|
describe('server', () => {
|
||||||
jest.setTimeout(60 * 1000)
|
jest.setTimeout(60 * 1000)
|
||||||
|
|
||||||
@@ -235,16 +231,11 @@ describe('server', () => {
|
|||||||
expect($.text().includes('{{ page.title }}')).toBe(true)
|
expect($.text().includes('{{ page.title }}')).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('displays links to categories on product TOCs', async () => {
|
test('displays links to categories on product TOCs', async () => {
|
||||||
const $ = await getDOM('/en/github')
|
const $ = await getDOM('/en/github')
|
||||||
expect($(`article a[href="/en/${nonEnterpriseDefaultVersion}/github/getting-started-with-github"]`)).toHaveLength(1)
|
expect($(`article a[href="/en/${nonEnterpriseDefaultVersion}/github/getting-started-with-github"]`)).toHaveLength(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('displays links to categories on product TOCs', async () => {
|
|
||||||
const $ = await getDOM('/en/github')
|
|
||||||
expect($('article a[href="/en/github/getting-started-with-github"]')).toHaveLength(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('autogenerated mini TOCs', () => {
|
describe('autogenerated mini TOCs', () => {
|
||||||
// TODO disable the mini TOC tests when we replace it with sticky TOC header
|
// TODO disable the mini TOC tests when we replace it with sticky TOC header
|
||||||
test('renders mini TOC in articles with more than one heading', async () => {
|
test('renders mini TOC in articles with more than one heading', async () => {
|
||||||
@@ -309,103 +300,56 @@ describe('server', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('English local links', () => {
|
describe('English local links', () => {
|
||||||
const latestEnterprisePath = process.env.FEATURE_NEW_VERSIONS
|
const latestEnterprisePath = `/en/enterprise-server@${enterpriseServerReleases.latest}`
|
||||||
? `/en/enterprise-server@${enterpriseServerReleases.latest}`
|
|
||||||
: `/en/enterprise/${enterpriseServerReleases.latest}`
|
|
||||||
|
|
||||||
testFeatureNewVersions('dotcom articles on dotcom have links that include "en"', async () => {
|
test('dotcom articles on dotcom have links that include "en"', async () => {
|
||||||
const $ = await getDOM('/en/articles/set-up-git')
|
const $ = await getDOM('/en/articles/set-up-git')
|
||||||
expect($(`a[href="/en/${nonEnterpriseDefaultVersion}/articles/managing-files-on-github"]`).length).toBe(1)
|
expect($(`a[href="/en/${nonEnterpriseDefaultVersion}/articles/managing-files-on-github"]`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('dotcom articles on dotcom have links that include "en"', async () => {
|
test('dotcom articles on dotcom have Enterprise Admin links with latest GHE version', async () => {
|
||||||
const $ = await getDOM('/en/articles/set-up-git')
|
|
||||||
expect($('a[href="/en/articles/managing-files-on-github"]').length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('dotcom articles on dotcom have Enterprise Admin links with latest GHE version', async () => {
|
|
||||||
const $ = await getDOM('/en/articles/setting-up-a-trial-of-github-enterprise-server')
|
const $ = await getDOM('/en/articles/setting-up-a-trial-of-github-enterprise-server')
|
||||||
expect($(`a[href="${latestEnterprisePath}/admin/installation/setting-up-a-github-enterprise-server-instance"]`).length).toBe(2)
|
expect($(`a[href="${latestEnterprisePath}/admin/installation/setting-up-a-github-enterprise-server-instance"]`).length).toBe(2)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('dotcom articles on dotcom have Enterprise Admin links with latest GHE version', async () => {
|
test('dotcom articles on GHE have Enterprise user links', async () => {
|
||||||
const $ = await getDOM('/en/articles/setting-up-a-trial-of-github-enterprise-server')
|
|
||||||
expect($(`a[href="${latestEnterprisePath}/admin/installation/setting-up-a-github-enterprise-server-instance"]`).length).toBe(2)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('dotcom articles on GHE have Enterprise user links', async () => {
|
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/github/getting-started-with-github/set-up-git`)
|
const $ = await getDOM(`${latestEnterprisePath}/github/getting-started-with-github/set-up-git`)
|
||||||
expect($(`a[href="${latestEnterprisePath}/articles/managing-files-on-github"]`).length).toBe(1)
|
expect($(`a[href="${latestEnterprisePath}/articles/managing-files-on-github"]`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('dotcom articles on GHE have Enterprise user links', async () => {
|
test('dotcom categories on GHE have Enterprise user links', async () => {
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/user/github/getting-started-with-github/set-up-git`)
|
|
||||||
expect($(`a[href="${latestEnterprisePath}/user/articles/managing-files-on-github"]`).length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('dotcom categories on GHE have Enterprise user links', async () => {
|
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/github/managing-large-files`)
|
const $ = await getDOM(`${latestEnterprisePath}/github/managing-large-files`)
|
||||||
expect($(`article a[href="${latestEnterprisePath}/github/managing-large-files/conditions-for-large-files"]`).length).toBe(1)
|
expect($(`article a[href="${latestEnterprisePath}/github/managing-large-files/conditions-for-large-files"]`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('dotcom categories on GHE have Enterprise user links', async () => {
|
test('dotcom-only links on GHE are dotcom-only', async () => {
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/user/github/managing-large-files`)
|
|
||||||
expect($(`article a[href="${latestEnterprisePath}/user/github/managing-large-files/conditions-for-large-files"]`).length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('dotcom-only links on GHE are dotcom-only', async () => {
|
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/github/setting-up-and-managing-your-github-profile/sending-your-github-enterprise-server-contributions-to-your-githubcom-profile`)
|
const $ = await getDOM(`${latestEnterprisePath}/github/setting-up-and-managing-your-github-profile/sending-your-github-enterprise-server-contributions-to-your-githubcom-profile`)
|
||||||
expect($(`article a[href="/en/${nonEnterpriseDefaultVersion}/articles/github-privacy-statement"]`).length).toBe(1)
|
expect($(`article a[href="/en/${nonEnterpriseDefaultVersion}/articles/github-privacy-statement"]`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('dotcom-only links on GHE are dotcom-only', async () => {
|
test('desktop links on GHE are dotcom-only', async () => {
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/user/github/setting-up-and-managing-your-github-profile/sending-your-github-enterprise-server-contributions-to-your-githubcom-profile`)
|
|
||||||
expect($('article a[href="/en/articles/github-privacy-statement"]').length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('desktop links on GHE are dotcom-only', async () => {
|
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/github/getting-started-with-github/set-up-git`)
|
const $ = await getDOM(`${latestEnterprisePath}/github/getting-started-with-github/set-up-git`)
|
||||||
expect($(`article a[href="/en/${nonEnterpriseDefaultVersion}/desktop/installing-and-configuring-github-desktop"]`).length).toBe(1)
|
expect($(`article a[href="/en/${nonEnterpriseDefaultVersion}/desktop/installing-and-configuring-github-desktop"]`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('desktop links on GHE are dotcom-only', async () => {
|
test('admin articles that link to non-admin articles have Enterprise user links', async () => {
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/user/github/getting-started-with-github/set-up-git`)
|
|
||||||
expect($('article a[href="/en/desktop/installing-and-configuring-github-desktop"]').length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('admin articles that link to non-admin articles have Enterprise user links', async () => {
|
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/admin/installation/configuring-the-default-visibility-of-new-repositories-on-your-appliance`)
|
const $ = await getDOM(`${latestEnterprisePath}/admin/installation/configuring-the-default-visibility-of-new-repositories-on-your-appliance`)
|
||||||
expect($(`article a[href="${latestEnterprisePath}/github/creating-cloning-and-archiving-repositories/about-repository-visibility"]`).length).toBeGreaterThan(0)
|
expect($(`article a[href="${latestEnterprisePath}/github/creating-cloning-and-archiving-repositories/about-repository-visibility"]`).length).toBeGreaterThan(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('admin articles that link to non-admin articles have Enterprise user links', async () => {
|
test('admin articles that link to Enterprise user articles have Enterprise user links', async () => {
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/admin/installation/configuring-the-default-visibility-of-new-repositories-on-your-appliance`)
|
|
||||||
expect($(`article a[href="${latestEnterprisePath}/user/github/creating-cloning-and-archiving-repositories/about-repository-visibility"]`).length).toBeGreaterThan(0)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('admin articles that link to Enterprise user articles have Enterprise user links', async () => {
|
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/admin/user-management/configuring-email-for-notifications`)
|
const $ = await getDOM(`${latestEnterprisePath}/admin/user-management/configuring-email-for-notifications`)
|
||||||
expect($('article a[href*="about-email-notifications-for-pushes-to-your-repository"]').length).toBe(1)
|
expect($('article a[href*="about-email-notifications-for-pushes-to-your-repository"]').length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('admin articles that link to Enterprise user articles have Enterprise user links', async () => {
|
test('articles that link to external links that contain /articles/ are not rewritten', async () => {
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/admin/user-management/configuring-email-for-notifications`)
|
|
||||||
expect($('article a[href*="about-email-notifications-for-pushes-to-your-repository"]').length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('articles that link to external links that contain /articles/ are not rewritten', async () => {
|
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/admin/installation/upgrading-github-enterprise-server`)
|
|
||||||
expect($('article a[href="https://azure.microsoft.com/en-us/documentation/articles/backup-azure-vms/"]').length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureOldVersions('articles that link to external links that contain /articles/ are not rewritten', async () => {
|
|
||||||
const $ = await getDOM(`${latestEnterprisePath}/admin/installation/upgrading-github-enterprise-server`)
|
const $ = await getDOM(`${latestEnterprisePath}/admin/installation/upgrading-github-enterprise-server`)
|
||||||
expect($('article a[href="https://azure.microsoft.com/en-us/documentation/articles/backup-azure-vms/"]').length).toBe(1)
|
expect($('article a[href="https://azure.microsoft.com/en-us/documentation/articles/backup-azure-vms/"]').length).toBe(1)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('article versions', () => {
|
describe('article versions', () => {
|
||||||
testFeatureNewVersions('includes links to all versions of each article', async () => {
|
test('includes links to all versions of each article', async () => {
|
||||||
const articlePath = 'github/setting-up-and-managing-your-github-user-account/about-your-personal-dashboard'
|
const articlePath = 'github/setting-up-and-managing-your-github-user-account/about-your-personal-dashboard'
|
||||||
const $ = await getDOM(`/en/enterprise-server@${enterpriseServerReleases.latest}/${articlePath}`)
|
const $ = await getDOM(`/en/enterprise-server@${enterpriseServerReleases.latest}/${articlePath}`)
|
||||||
expect($(`.article-versions a.active[href="/en/enterprise-server@${enterpriseServerReleases.latest}/${articlePath}"]`).length).toBe(2)
|
expect($(`.article-versions a.active[href="/en/enterprise-server@${enterpriseServerReleases.latest}/${articlePath}"]`).length).toBe(2)
|
||||||
@@ -415,16 +359,6 @@ describe('server', () => {
|
|||||||
expect($(`.article-versions a[href="/en/enterprise/2.13/user/${articlePath}"]`).length).toBe(0)
|
expect($(`.article-versions a[href="/en/enterprise/2.13/user/${articlePath}"]`).length).toBe(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('includes links to all versions of each article', async () => {
|
|
||||||
const articlePath = 'github/setting-up-and-managing-your-github-user-account/about-your-personal-dashboard'
|
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/${articlePath}`)
|
|
||||||
expect($(`.article-versions a.active[href="/en/enterprise/${enterpriseServerReleases.latest}/user/${articlePath}"]`).length).toBe(2)
|
|
||||||
expect($(`.article-versions a.active[href="/en/${articlePath}"]`).length).toBe(0)
|
|
||||||
|
|
||||||
// 2.13 predates this feature, so it should be excluded:
|
|
||||||
expect($(`.article-versions a[href="/en/enterprise/2.13/user/${articlePath}"]`).length).toBe(0)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('is not displayed if article has only one version', async () => {
|
test('is not displayed if article has only one version', async () => {
|
||||||
const $ = await getDOM('/en/articles/signing-up-for-a-new-github-account')
|
const $ = await getDOM('/en/articles/signing-up-for-a-new-github-account')
|
||||||
expect($('.article-versions').length).toBe(0)
|
expect($('.article-versions').length).toBe(0)
|
||||||
@@ -437,16 +371,11 @@ describe('server', () => {
|
|||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('redirects old articles to their slugified URL', async () => {
|
test('redirects old articles to their slugified URL', async () => {
|
||||||
const res = await get('/articles/about-github-s-ip-addresses')
|
const res = await get('/articles/about-github-s-ip-addresses')
|
||||||
expect(res.text).toBe(`Moved Permanently. Redirecting to /en/${nonEnterpriseDefaultVersion}/github/authenticating-to-github/about-githubs-ip-addresses`)
|
expect(res.text).toBe(`Moved Permanently. Redirecting to /en/${nonEnterpriseDefaultVersion}/github/authenticating-to-github/about-githubs-ip-addresses`)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('redirects old articles to their slugified URL', async () => {
|
|
||||||
const res = await get('/articles/about-github-s-ip-addresses')
|
|
||||||
expect(res.text).toBe('Moved Permanently. Redirecting to /en/github/authenticating-to-github/about-githubs-ip-addresses')
|
|
||||||
})
|
|
||||||
|
|
||||||
test('redirects / to /en', async () => {
|
test('redirects / to /en', async () => {
|
||||||
const res = await get('/')
|
const res = await get('/')
|
||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
@@ -465,18 +394,12 @@ describe('server', () => {
|
|||||||
expect(res.headers.location).toBe('https://desktop.github.com')
|
expect(res.headers.location).toBe('https://desktop.github.com')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('redirects /insights/foo paths to /enterprise/user/insights/foo', async () => {
|
test('redirects /insights/foo paths to /enterprise/user/insights/foo', async () => {
|
||||||
const res = await get('/en/insights/installing-and-configuring-github-insights/about-github-insights')
|
const res = await get('/en/insights/installing-and-configuring-github-insights/about-github-insights')
|
||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
expect(res.headers.location).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}/insights/installing-and-configuring-github-insights/about-github-insights`)
|
expect(res.headers.location).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}/insights/installing-and-configuring-github-insights/about-github-insights`)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('redirects /insights/foo paths to /enterprise/user/insights/foo', async () => {
|
|
||||||
const res = await get('/en/insights/installing-and-configuring-github-insights/about-github-insights')
|
|
||||||
expect(res.statusCode).toBe(301)
|
|
||||||
expect(res.headers.location).toBe(`/en/enterprise/${enterpriseServerReleases.latest}/user/insights/installing-and-configuring-github-insights/about-github-insights`)
|
|
||||||
})
|
|
||||||
|
|
||||||
// this oneoff redirect is temporarily disabled because it introduces too much complexity
|
// this oneoff redirect is temporarily disabled because it introduces too much complexity
|
||||||
// we can reenable it down the road if needed
|
// we can reenable it down the road if needed
|
||||||
test.skip('redirects versioned category page', async () => {
|
test.skip('redirects versioned category page', async () => {
|
||||||
@@ -487,45 +410,28 @@ describe('server', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('categories and map topics', () => {
|
describe('categories and map topics', () => {
|
||||||
testFeatureNewVersions('adds links to categories on the dotcom homepage', async () => {
|
test('adds links to categories on the dotcom homepage', async () => {
|
||||||
const $ = await getDOM('/en/github')
|
const $ = await getDOM('/en/github')
|
||||||
expect($(`article a[href="/en/${nonEnterpriseDefaultVersion}/github/managing-large-files"]`).length).toBe(1)
|
expect($(`article a[href="/en/${nonEnterpriseDefaultVersion}/github/managing-large-files"]`).length).toBe(1)
|
||||||
expect($('article a[href="#managing-large-files"]').length).toBe(0)
|
expect($('article a[href="#managing-large-files"]').length).toBe(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('adds links to categories on the dotcom homepage', async () => {
|
test('adds links to map topics on a category homepage', async () => {
|
||||||
const $ = await getDOM('/en/github')
|
|
||||||
expect($('article a[href="/en/github/managing-large-files"]').length).toBe(1)
|
|
||||||
expect($('article a[href="#managing-large-files"]').length).toBe(0)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('adds links to map topics on a category homepage', async () => {
|
|
||||||
const $ = await getDOM('/en/github/setting-up-and-managing-your-github-user-account')
|
const $ = await getDOM('/en/github/setting-up-and-managing-your-github-user-account')
|
||||||
expect($(`article a[href="/en/${nonEnterpriseDefaultVersion}/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings"]`).length).toBe(1)
|
expect($(`article a[href="/en/${nonEnterpriseDefaultVersion}/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings"]`).length).toBe(1)
|
||||||
expect($('article a[href="#managing-user-account-settings"]').length).toBe(0)
|
expect($('article a[href="#managing-user-account-settings"]').length).toBe(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('adds links to map topics on a category homepage', async () => {
|
|
||||||
const $ = await getDOM('/en/github/setting-up-and-managing-your-github-user-account')
|
|
||||||
expect($('article a[href="/en/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings"]').length).toBe(1)
|
|
||||||
expect($('article a[href="#managing-user-account-settings"]').length).toBe(0)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('category page renders with TOC', async () => {
|
test('category page renders with TOC', async () => {
|
||||||
const $ = await getDOM('/en/github/managing-large-files')
|
const $ = await getDOM('/en/github/managing-large-files')
|
||||||
expect($('.markdown-body ul li a').length).toBeGreaterThan(5)
|
expect($('.markdown-body ul li a').length).toBeGreaterThan(5)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('map topic renders with h4 links to articles', async () => {
|
test('map topic renders with h4 links to articles', async () => {
|
||||||
const $ = await getDOM('/en/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings')
|
const $ = await getDOM('/en/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings')
|
||||||
expect($(`a[href="/en/${nonEnterpriseDefaultVersion}/github/setting-up-and-managing-your-github-user-account/changing-your-github-username"] h4`).length).toBe(1)
|
expect($(`a[href="/en/${nonEnterpriseDefaultVersion}/github/setting-up-and-managing-your-github-user-account/changing-your-github-username"] h4`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('map topic renders with h4 links to articles', async () => {
|
|
||||||
const $ = await getDOM('/en/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings')
|
|
||||||
expect($('a[href="/en/github/setting-up-and-managing-your-github-user-account/changing-your-github-username"] h4').length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('map topic renders with one intro for every h4', async () => {
|
test('map topic renders with one intro for every h4', async () => {
|
||||||
const $ = await getDOM('/en/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings')
|
const $ = await getDOM('/en/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings')
|
||||||
const $h4s = $('article a.link-with-intro')
|
const $h4s = $('article a.link-with-intro')
|
||||||
@@ -555,197 +461,107 @@ describe('URLs by language', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('GitHub Enterprise URLs', () => {
|
describe('GitHub Enterprise URLs', () => {
|
||||||
testFeatureNewVersions('renders the GHE user docs homepage', async () => {
|
test('renders the GHE user docs homepage', async () => {
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/github`)
|
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/github`)
|
||||||
expect($(`article a[href="/en/enterprise-server@${enterpriseServerReleases.latest}/github/getting-started-with-github"]`).length).toBe(1)
|
expect($(`article a[href="/en/enterprise-server@${enterpriseServerReleases.latest}/github/getting-started-with-github"]`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders the GHE user docs homepage', async () => {
|
test('renders the Enterprise Server homepage with correct links', async () => {
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/github`)
|
|
||||||
expect($(`article a[href="/en/enterprise/${enterpriseServerReleases.latest}/user/github/getting-started-with-github"]`).length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders the Enterprise Server homepage with correct links', async () => {
|
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`)
|
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`)
|
||||||
expect($(`section.container-xl a[href="/en/enterprise-server@${enterpriseServerReleases.latest}/admin"]`).length).toBe(1)
|
expect($(`section.container-xl a[href="/en/enterprise-server@${enterpriseServerReleases.latest}/admin"]`).length).toBe(1)
|
||||||
expect($(`section.container-xl a[href="/en/enterprise-server@${enterpriseServerReleases.latest}/github"]`).length).toBe(1)
|
expect($(`section.container-xl a[href="/en/enterprise-server@${enterpriseServerReleases.latest}/github"]`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders the Enterprise homepage with correct links', async () => {
|
test('renders the Enterprise Admin category homepage', async () => {
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`)
|
|
||||||
expect($(`article a[href="/en/enterprise/${enterpriseServerReleases.latest}/admin"]`).length).toBe(1)
|
|
||||||
expect($(`article a[href="/en/enterprise/${enterpriseServerReleases.latest}/user/github"]`).length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders the Enterprise Admin category homepage', async () => {
|
|
||||||
const adminPath = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin`
|
const adminPath = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin`
|
||||||
const $ = await getDOM(adminPath)
|
const $ = await getDOM(adminPath)
|
||||||
expect($(`article a[href="${adminPath}/installation"]`).length).toBe(1)
|
expect($(`article a[href="${adminPath}/installation"]`).length).toBe(1)
|
||||||
expect($.text()).toContain('This guide describes')
|
expect($.text()).toContain('This guide describes')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders the Enterprise Admin category homepage', async () => {
|
test('renders an Enterprise Admin category with correct links', async () => {
|
||||||
const adminPath = `/en/enterprise/${enterpriseServerReleases.latest}/admin`
|
|
||||||
const $ = await getDOM(adminPath)
|
|
||||||
expect($(`article a[href="${adminPath}/installation"]`).length).toBe(1)
|
|
||||||
expect($.text()).toContain('This guide describes')
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders an Enterprise Admin category with correct links', async () => {
|
|
||||||
const installationCategoryHome = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin/installation`
|
const installationCategoryHome = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin/installation`
|
||||||
const $ = await getDOM(installationCategoryHome)
|
const $ = await getDOM(installationCategoryHome)
|
||||||
expect($(`article a[href^="${installationCategoryHome}/"]`).length).toBeGreaterThan(1)
|
expect($(`article a[href^="${installationCategoryHome}/"]`).length).toBeGreaterThan(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders an Enterprise Admin category with correct links', async () => {
|
test('renders a translated Enterprise Admin category with English links', async () => {
|
||||||
const installationCategoryHome = `/en/enterprise/${enterpriseServerReleases.latest}/admin/installation`
|
|
||||||
const $ = await getDOM(installationCategoryHome)
|
|
||||||
expect($(`article a[href^="${installationCategoryHome}/"]`).length).toBeGreaterThan(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders a translated Enterprise Admin category with English links', async () => {
|
|
||||||
const installationCategoryHome = `/ja/enterprise-server@${enterpriseServerReleases.latest}/admin/installation`
|
const installationCategoryHome = `/ja/enterprise-server@${enterpriseServerReleases.latest}/admin/installation`
|
||||||
const $ = await getDOM(installationCategoryHome)
|
const $ = await getDOM(installationCategoryHome)
|
||||||
expect($(`article a[href^="${installationCategoryHome}/"]`).length).toBeGreaterThan(1)
|
expect($(`article a[href^="${installationCategoryHome}/"]`).length).toBeGreaterThan(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders a translated Enterprise Admin category with English links', async () => {
|
|
||||||
const installationCategoryHome = `/ja/enterprise/${enterpriseServerReleases.latest}/admin/installation`
|
|
||||||
const $ = await getDOM(installationCategoryHome)
|
|
||||||
expect($(`article a[href^="${installationCategoryHome}/"]`).length).toBeGreaterThan(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('renders an Enterprise Admin category article', async () => {
|
test('renders an Enterprise Admin category article', async () => {
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/admin/installation/system-overview`)
|
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/admin/installation/system-overview`)
|
||||||
expect($.text()).toContain('your organization\'s private copy of GitHub')
|
expect($.text()).toContain('your organization\'s private copy of GitHub')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('renders an Enterprise Admin map topic', async () => {
|
test('renders an Enterprise Admin map topic', async () => {
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources`)
|
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources`)
|
||||||
expect($(`article a[href^="/en/enterprise-server@${enterpriseServerReleases.latest}/admin/enterprise-management/"]`).length).toBeGreaterThan(1)
|
expect($(`article a[href^="/en/enterprise-server@${enterpriseServerReleases.latest}/admin/enterprise-management/"]`).length).toBeGreaterThan(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders an Enterprise Admin map topic', async () => {
|
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources`)
|
|
||||||
expect($(`article a[href^="/en/enterprise/${enterpriseServerReleases.latest}/admin/enterprise-management/"]`).length).toBeGreaterThan(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('renders an Enterprise Admin category article within a map topic', async () => {
|
test('renders an Enterprise Admin category article within a map topic', async () => {
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/admin/installation/upgrade-requirements`)
|
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/admin/installation/upgrade-requirements`)
|
||||||
expect($.text()).toContain('Before upgrading GitHub Enterprise')
|
expect($.text()).toContain('Before upgrading GitHub Enterprise')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('renders Enterprise homepage in Japanese', async () => {
|
test('renders Enterprise homepage in Japanese', async () => {
|
||||||
const res = await get(`/ja/enterprise-server@${enterpriseServerReleases.latest}`)
|
const res = await get(`/ja/enterprise-server@${enterpriseServerReleases.latest}`)
|
||||||
expect(res.statusCode).toBe(200)
|
expect(res.statusCode).toBe(200)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders Enterprise homepage in Japanese', async () => {
|
test('renders Enterprise User homepage in Japanese', async () => {
|
||||||
const res = await get(`/ja/enterprise/${enterpriseServerReleases.latest}`)
|
|
||||||
expect(res.statusCode).toBe(200)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders Enterprise User homepage in Japanese', async () => {
|
|
||||||
const res = await get(`/ja/enterprise-server@${enterpriseServerReleases.latest}/github`)
|
const res = await get(`/ja/enterprise-server@${enterpriseServerReleases.latest}/github`)
|
||||||
expect(res.statusCode).toBe(200)
|
expect(res.statusCode).toBe(200)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders Enterprise User homepage in Japanese', async () => {
|
test('renders Enterprise Admin homepage in Japanese', async () => {
|
||||||
const res = await get(`/ja/enterprise/${enterpriseServerReleases.latest}/user/github`)
|
|
||||||
expect(res.statusCode).toBe(200)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders Enterprise Admin homepage in Japanese', async () => {
|
|
||||||
const res = await get(`/ja/enterprise-server@${enterpriseServerReleases.latest}/admin`)
|
const res = await get(`/ja/enterprise-server@${enterpriseServerReleases.latest}/admin`)
|
||||||
expect(res.statusCode).toBe(200)
|
expect(res.statusCode).toBe(200)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders Enterprise Admin homepage in Japanese', async () => {
|
test('renders Enterprise homepage in Chinese', async () => {
|
||||||
const res = await get(`/ja/enterprise/${enterpriseServerReleases.latest}/admin`)
|
|
||||||
expect(res.statusCode).toBe(200)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders Enterprise homepage in Chinese', async () => {
|
|
||||||
const res = await get(`/cn/enterprise-server@${enterpriseServerReleases.latest}`)
|
const res = await get(`/cn/enterprise-server@${enterpriseServerReleases.latest}`)
|
||||||
expect(res.statusCode).toBe(200)
|
expect(res.statusCode).toBe(200)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders Enterprise homepage in Chinese', async () => {
|
test('renders Enterprise User homepage in Chinese', async () => {
|
||||||
const res = await get(`/cn/enterprise/${enterpriseServerReleases.latest}`)
|
|
||||||
expect(res.statusCode).toBe(200)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders Enterprise User homepage in Chinese', async () => {
|
|
||||||
const res = await get(`/cn/enterprise-server@${enterpriseServerReleases.latest}/github`)
|
const res = await get(`/cn/enterprise-server@${enterpriseServerReleases.latest}/github`)
|
||||||
expect(res.statusCode).toBe(200)
|
expect(res.statusCode).toBe(200)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders Enterprise User homepage in Chinese', async () => {
|
test('renders Enterprise Admin homepage in Chinese', async () => {
|
||||||
const res = await get(`/cn/enterprise/${enterpriseServerReleases.latest}/user/github`)
|
|
||||||
expect(res.statusCode).toBe(200)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders Enterprise Admin homepage in Chinese', async () => {
|
|
||||||
const res = await get(`/cn/enterprise-server@${enterpriseServerReleases.latest}/admin`)
|
const res = await get(`/cn/enterprise-server@${enterpriseServerReleases.latest}/admin`)
|
||||||
expect(res.statusCode).toBe(200)
|
expect(res.statusCode).toBe(200)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders Enterprise Admin homepage in Chinese', async () => {
|
|
||||||
const res = await get(`/cn/enterprise/${enterpriseServerReleases.latest}/admin`)
|
|
||||||
expect(res.statusCode).toBe(200)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('GitHub Desktop URLs', () => {
|
describe('GitHub Desktop URLs', () => {
|
||||||
testFeatureNewVersions('renders the GitHub Desktop homepage with correct links', async () => {
|
test('renders the GitHub Desktop homepage with correct links', async () => {
|
||||||
const $ = await getDOM('/en/desktop')
|
const $ = await getDOM('/en/desktop')
|
||||||
expect($(`article a[href^="/en/${nonEnterpriseDefaultVersion}/desktop/"]`).length).toBeGreaterThan(1)
|
expect($(`article a[href^="/en/${nonEnterpriseDefaultVersion}/desktop/"]`).length).toBeGreaterThan(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders the GitHub Desktop homepage with correct links', async () => {
|
test('renders a Desktop category with expected links', async () => {
|
||||||
const $ = await getDOM('/en/desktop')
|
|
||||||
expect($('article a[href^="/en/desktop/"]').length).toBeGreaterThan(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders a Desktop category with expected links', async () => {
|
|
||||||
const $ = await getDOM('/en/desktop/installing-and-configuring-github-desktop')
|
const $ = await getDOM('/en/desktop/installing-and-configuring-github-desktop')
|
||||||
expect($(`article a[href^="/en/${nonEnterpriseDefaultVersion}/desktop/installing-and-configuring-github-desktop/"]`).length).toBeGreaterThan(1)
|
expect($(`article a[href^="/en/${nonEnterpriseDefaultVersion}/desktop/installing-and-configuring-github-desktop/"]`).length).toBeGreaterThan(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders a Desktop category with expected links', async () => {
|
test('renders a Desktop map topic', async () => {
|
||||||
const $ = await getDOM('/en/desktop/installing-and-configuring-github-desktop')
|
|
||||||
expect($('article a[href^="/en/desktop/installing-and-configuring-github-desktop/"]').length).toBeGreaterThan(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders a Desktop map topic', async () => {
|
|
||||||
const $ = await getDOM('/en/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop')
|
const $ = await getDOM('/en/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop')
|
||||||
expect($(`article a[href^="/en/${nonEnterpriseDefaultVersion}/desktop/installing-and-configuring-github-desktop/"]`).length).toBeGreaterThan(1)
|
expect($(`article a[href^="/en/${nonEnterpriseDefaultVersion}/desktop/installing-and-configuring-github-desktop/"]`).length).toBeGreaterThan(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders a Desktop map topic', async () => {
|
test('renders a Desktop article within a map topic', async () => {
|
||||||
const $ = await getDOM('/en/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop')
|
|
||||||
expect($('article a[href^="/en/desktop/installing-and-configuring-github-desktop/"]').length).toBeGreaterThan(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders a Desktop article within a map topic', async () => {
|
|
||||||
const res = await get(`/en/${nonEnterpriseDefaultVersion}/desktop/installing-and-configuring-github-desktop/installing-github-desktop`)
|
const res = await get(`/en/${nonEnterpriseDefaultVersion}/desktop/installing-and-configuring-github-desktop/installing-github-desktop`)
|
||||||
expect(res.statusCode).toBe(200)
|
expect(res.statusCode).toBe(200)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders a Desktop article within a map topic', async () => {
|
test('renders the Desktop homepage in Japanese', async () => {
|
||||||
const res = await get('/en/desktop/installing-and-configuring-github-desktop/installing-github-desktop')
|
|
||||||
expect(res.statusCode).toBe(200)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('renders the Desktop homepage in Japanese', async () => {
|
|
||||||
const res = await get(`/ja/${nonEnterpriseDefaultVersion}/desktop`)
|
const res = await get(`/ja/${nonEnterpriseDefaultVersion}/desktop`)
|
||||||
expect(res.statusCode).toBe(200)
|
expect(res.statusCode).toBe(200)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders the Desktop homepage in Japanese', async () => {
|
|
||||||
const res = await get('/ja/desktop')
|
|
||||||
expect(res.statusCode).toBe(200)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('static assets', () => {
|
describe('static assets', () => {
|
||||||
@@ -894,39 +710,21 @@ describe('static routes', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('index pages', () => {
|
describe('index pages', () => {
|
||||||
const nonEnterpriseOnlyPath = process.env.FEATURE_NEW_VERSIONS
|
const nonEnterpriseOnlyPath = `/en/${nonEnterpriseDefaultVersion}/github/getting-started-with-github/verifying-your-email-address`
|
||||||
? `/en/${nonEnterpriseDefaultVersion}/github/getting-started-with-github/verifying-your-email-address`
|
|
||||||
: '/en/github/getting-started-with-github/verifying-your-email-address'
|
|
||||||
|
|
||||||
testFeatureNewVersions('includes dotcom-only links in dotcom TOC', async () => {
|
test('includes dotcom-only links in dotcom TOC', async () => {
|
||||||
const $ = await getDOM('/en/github/getting-started-with-github')
|
const $ = await getDOM('/en/github/getting-started-with-github')
|
||||||
expect($(`article a[href="${nonEnterpriseOnlyPath}"]`).length).toBe(1)
|
expect($(`article a[href="${nonEnterpriseOnlyPath}"]`).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('includes dotcom-only links in dotcom TOC', async () => {
|
test('excludes dotcom-only from GHE TOC', async () => {
|
||||||
const $ = await getDOM('/en/github/getting-started-with-github')
|
|
||||||
expect($(`article a[href="${nonEnterpriseOnlyPath}"]`).length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('excludes dotcom-only from GHE TOC', async () => {
|
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/github/getting-started-with-github`)
|
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/github/getting-started-with-github`)
|
||||||
expect($(`a[href="${nonEnterpriseOnlyPath}"]`).length).toBe(0)
|
expect($(`a[href="${nonEnterpriseOnlyPath}"]`).length).toBe(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('excludes dotcom-only from GHE TOC', async () => {
|
test('includes correctly versioned links in GHE', async () => {
|
||||||
const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/user/github/getting-started-with-github`)
|
|
||||||
expect($(`a[href="${nonEnterpriseOnlyPath}"]`).length).toBe(0)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('includes correctly versioned links in GHE', async () => {
|
|
||||||
const installationLatest = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin/installation`
|
const installationLatest = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin/installation`
|
||||||
const $ = await getDOM(installationLatest)
|
const $ = await getDOM(installationLatest)
|
||||||
expect($(`article a[href^="${installationLatest}/"]`).length).toBeGreaterThan(0)
|
expect($(`article a[href^="${installationLatest}/"]`).length).toBeGreaterThan(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('includes correctly versioned links in GHE', async () => {
|
|
||||||
const installationLatest = `/en/enterprise/${enterpriseServerReleases.latest}/admin/installation`
|
|
||||||
const $ = await getDOM(installationLatest)
|
|
||||||
expect($(`article a[href^="${installationLatest}/"]`).length).toBeGreaterThan(0)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const { getDOM } = require('../helpers')
|
const { getDOM } = require('../helpers')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('sidebar', () => {
|
describe('sidebar', () => {
|
||||||
jest.setTimeout(3 * 60 * 1000)
|
jest.setTimeout(3 * 60 * 1000)
|
||||||
|
|
||||||
@@ -18,16 +14,11 @@ describe('sidebar', () => {
|
|||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('highlights active product on Enterprise pages', async () => {
|
test('highlights active product on Enterprise pages', async () => {
|
||||||
expect($enterprisePage('.sidebar li.sidebar-product').length).toBe(1)
|
expect($enterprisePage('.sidebar li.sidebar-product').length).toBe(1)
|
||||||
expect($enterprisePage('.sidebar li.sidebar-product > a').text().trim()).toBe('Enterprise Administrators')
|
expect($enterprisePage('.sidebar li.sidebar-product > a').text().trim()).toBe('Enterprise Administrators')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('highlights active product on Enterprise pages', async () => {
|
|
||||||
expect($enterprisePage('.sidebar li.sidebar-product').length).toBe(1)
|
|
||||||
expect($enterprisePage('.sidebar li.sidebar-product > a').text().trim()).toBe('Enterprise Server')
|
|
||||||
})
|
|
||||||
|
|
||||||
test('highlights active product on GitHub pages', async () => {
|
test('highlights active product on GitHub pages', async () => {
|
||||||
expect($githubPage('.sidebar li.sidebar-product').length).toBe(1)
|
expect($githubPage('.sidebar li.sidebar-product').length).toBe(1)
|
||||||
expect($githubPage('.sidebar li.sidebar-product > a').text().trim()).toBe('GitHub.com')
|
expect($githubPage('.sidebar li.sidebar-product > a').text().trim()).toBe('GitHub.com')
|
||||||
@@ -38,17 +29,10 @@ describe('sidebar', () => {
|
|||||||
expect($homePage('.sidebar a[href="https://electronjs.org/docs"]')).toHaveLength(1)
|
expect($homePage('.sidebar a[href="https://electronjs.org/docs"]')).toHaveLength(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('adds an `is-current-page` class to the sidebar link to the current page', async () => {
|
test('adds an `is-current-page` class to the sidebar link to the current page', async () => {
|
||||||
const url = `/en/${nonEnterpriseDefaultVersion}/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings`
|
const url = `/en/${nonEnterpriseDefaultVersion}/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings`
|
||||||
const $ = await getDOM(url)
|
const $ = await getDOM(url)
|
||||||
expect($('.sidebar .is-current-page').length).toBe(1)
|
expect($('.sidebar .is-current-page').length).toBe(1)
|
||||||
expect($('.sidebar .is-current-page a').attr('href')).toContain(url)
|
expect($('.sidebar .is-current-page a').attr('href')).toContain(url)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('adds an `is-current-page` class to the sidebar link to the current page', async () => {
|
|
||||||
const url = '/en/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings'
|
|
||||||
const $ = await getDOM(url)
|
|
||||||
expect($('.sidebar .is-current-page').length).toBe(1)
|
|
||||||
expect($('.sidebar .is-current-page a').attr('href')).toContain(url)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,18 +1,11 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const { eachOfLimit } = require('async')
|
const { eachOfLimit } = require('async')
|
||||||
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
||||||
const { get } = require('../helpers')
|
const { get } = require('../helpers')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
let restRedirectFixtures, graphqlRedirectFixtures, developerRedirectFixtures
|
const restRedirectFixtures = require('../fixtures/rest-redirects')
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
const graphqlRedirectFixtures = require('../fixtures/graphql-redirects')
|
||||||
restRedirectFixtures = require('../fixtures/new-versions/rest-redirects')
|
const developerRedirectFixtures = require('../fixtures/developer-redirects')
|
||||||
graphqlRedirectFixtures = require('../fixtures/new-versions/graphql-redirects')
|
|
||||||
developerRedirectFixtures = require('../fixtures/new-versions/developer-redirects')
|
|
||||||
} else {
|
|
||||||
restRedirectFixtures = require('../fixtures/rest-redirects')
|
|
||||||
graphqlRedirectFixtures = require('../fixtures/graphql-redirects')
|
|
||||||
developerRedirectFixtures = require('../fixtures/developer-redirects')
|
|
||||||
}
|
|
||||||
const MAX_CONCURRENT_REQUESTS = 50
|
const MAX_CONCURRENT_REQUESTS = 50
|
||||||
|
|
||||||
describe('developer redirects', () => {
|
describe('developer redirects', () => {
|
||||||
@@ -25,8 +18,7 @@ describe('developer redirects', () => {
|
|||||||
await get('/v4')
|
await get('/v4')
|
||||||
})
|
})
|
||||||
|
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
describe('redirects /v4 requests to /graphql', () => {
|
||||||
describe('redirects /v4 requests to /graphql with FEATURE_NEW_VERSIONS enabled', () => {
|
|
||||||
test('graphql homepage', async () => {
|
test('graphql homepage', async () => {
|
||||||
const res = await get('/v4')
|
const res = await get('/v4')
|
||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
@@ -68,79 +60,26 @@ describe('developer redirects', () => {
|
|||||||
expect(enumRes.headers.location).toBe(enumResFinalPath)
|
expect(enumRes.headers.location).toBe(enumResFinalPath)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
describe('redirects /v4 requests to /graphql', () => {
|
|
||||||
test('graphql homepage', async () => {
|
|
||||||
const res = await get('/v4')
|
|
||||||
expect(res.statusCode).toBe(301)
|
|
||||||
const expectedFinalPath = '/en/graphql'
|
|
||||||
expect(res.headers.location).toBe(expectedFinalPath)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('graphql enterprise homepage', async () => {
|
|
||||||
const res = await get('/enterprise/v4', { followAllRedirects: true })
|
|
||||||
expect(res.statusCode).toBe(200)
|
|
||||||
const finalPath = (new URL(res.request.url)).pathname
|
|
||||||
const expectedFinalPath = `/en/enterprise/${enterpriseServerReleases.latest}/user/graphql`
|
|
||||||
expect(finalPath).toBe(expectedFinalPath)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('graphql overview paths', async () => {
|
|
||||||
const oldPath = '/v4/breaking_changes'
|
|
||||||
const newPath = '/graphql/overview/breaking-changes'
|
|
||||||
const res = await get(oldPath)
|
|
||||||
expect(res.statusCode).toBe(301)
|
|
||||||
expect(res.headers.location).toBe(`/en${newPath}`)
|
|
||||||
|
|
||||||
const enterpriseRes = await get(`/enterprise${oldPath}`, { followAllRedirects: true })
|
|
||||||
expect(enterpriseRes.statusCode).toBe(200)
|
|
||||||
const finalPath = (new URL(enterpriseRes.request.url)).pathname
|
|
||||||
const expectedFinalPath = `/enterprise/${enterpriseServerReleases.latest}/user${newPath}`
|
|
||||||
expect(finalPath).toBe(`/en${expectedFinalPath}`)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('graphql reference paths with child pages', async () => {
|
|
||||||
const sclarRes = await get('/en/v4/scalar/boolean')
|
|
||||||
expect(sclarRes.statusCode).toBe(301)
|
|
||||||
const sclarResFinalPath = '/en/graphql/reference/scalars#boolean'
|
|
||||||
expect(sclarRes.headers.location).toBe(sclarResFinalPath)
|
|
||||||
|
|
||||||
const enumRes = await get('/en/v4/enum/searchtype')
|
|
||||||
expect(enumRes.statusCode).toBe(301)
|
|
||||||
const enumResFinalPath = '/en/graphql/reference/enums#searchtype'
|
|
||||||
expect(enumRes.headers.location).toBe(enumResFinalPath)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
test('redirects /v3 requests to /rest', async () => {
|
test('redirects /v3 requests to /rest', async () => {
|
||||||
let expectedFinalPath
|
let expectedFinalPath
|
||||||
let res = await get('/v3')
|
let res = await get('/v3')
|
||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
expectedFinalPath = process.env.FEATURE_NEW_VERSIONS
|
expectedFinalPath = `/en/${nonEnterpriseDefaultVersion}/rest`
|
||||||
? `/en/${nonEnterpriseDefaultVersion}/rest`
|
|
||||||
: '/en/rest'
|
|
||||||
expect(res.headers.location).toBe(expectedFinalPath)
|
expect(res.headers.location).toBe(expectedFinalPath)
|
||||||
|
|
||||||
// REST subresources like activity notifications don't have their own page
|
// REST subresources like activity notifications don't have their own page
|
||||||
// any more, so redirect to an anchor on the resource page
|
// any more, so redirect to an anchor on the resource page
|
||||||
res = await get('/en/v3/activity')
|
res = await get('/en/v3/activity')
|
||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
expectedFinalPath = process.env.FEATURE_NEW_VERSIONS
|
expectedFinalPath = `/en/${nonEnterpriseDefaultVersion}/rest/reference/activity`
|
||||||
? `/en/${nonEnterpriseDefaultVersion}/rest/reference/activity`
|
|
||||||
: '/en/rest/reference/activity'
|
|
||||||
expect(res.headers.location).toBe(expectedFinalPath)
|
expect(res.headers.location).toBe(expectedFinalPath)
|
||||||
|
|
||||||
// REST subresources like activity notifications don't have their own page
|
// REST subresources like activity notifications don't have their own page
|
||||||
// any more, so redirect to an anchor on the resource page
|
// any more, so redirect to an anchor on the resource page
|
||||||
res = await get('/en/v3/activity/notifications')
|
res = await get('/en/v3/activity/notifications')
|
||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
expectedFinalPath = process.env.FEATURE_NEW_VERSIONS
|
expectedFinalPath = `/en/${nonEnterpriseDefaultVersion}/rest/reference/activity#notifications`
|
||||||
? `/en/${nonEnterpriseDefaultVersion}/rest/reference/activity#notifications`
|
|
||||||
: '/en/rest/reference/activity#notifications'
|
|
||||||
expect(res.headers.location).toBe(expectedFinalPath)
|
expect(res.headers.location).toBe(expectedFinalPath)
|
||||||
|
|
||||||
// trailing slashes are handled separately by the `slashes` module;
|
// trailing slashes are handled separately by the `slashes` module;
|
||||||
@@ -152,56 +91,9 @@ describe('developer redirects', () => {
|
|||||||
// non-reference redirects (e.g. guides)
|
// non-reference redirects (e.g. guides)
|
||||||
res = await get('/en/v3/guides/basics-of-authentication')
|
res = await get('/en/v3/guides/basics-of-authentication')
|
||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
expectedFinalPath = process.env.FEATURE_NEW_VERSIONS
|
expectedFinalPath = `/en/${nonEnterpriseDefaultVersion}/rest/guides/basics-of-authentication`
|
||||||
? `/en/${nonEnterpriseDefaultVersion}/rest/guides/basics-of-authentication`
|
|
||||||
: '/en/rest/guides/basics-of-authentication'
|
|
||||||
expect(res.headers.location).toBe(expectedFinalPath)
|
expect(res.headers.location).toBe(expectedFinalPath)
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
test('redirects /v3 requests to /rest', async () => {
|
|
||||||
let expectedFinalPath
|
|
||||||
let res = await get('/v3')
|
|
||||||
expect(res.statusCode).toBe(301)
|
|
||||||
expectedFinalPath = process.env.FEATURE_NEW_VERSIONS
|
|
||||||
? `/en/${nonEnterpriseDefaultVersion}/rest`
|
|
||||||
: '/en/rest'
|
|
||||||
expect(res.headers.location).toBe(expectedFinalPath)
|
|
||||||
|
|
||||||
// REST subresources like activity notifications don't have their own page
|
|
||||||
// any more, so redirect to an anchor on the resource page
|
|
||||||
res = await get('/en/v3/activity')
|
|
||||||
expect(res.statusCode).toBe(301)
|
|
||||||
expectedFinalPath = process.env.FEATURE_NEW_VERSIONS
|
|
||||||
? `/en/${nonEnterpriseDefaultVersion}/rest/reference/activity`
|
|
||||||
: '/en/rest/reference/activity'
|
|
||||||
expect(res.headers.location).toBe(expectedFinalPath)
|
|
||||||
|
|
||||||
// REST subresources like activity notifications don't have their own page
|
|
||||||
// any more, so redirect to an anchor on the resource page
|
|
||||||
res = await get('/en/v3/activity/notifications')
|
|
||||||
expect(res.statusCode).toBe(301)
|
|
||||||
expectedFinalPath = process.env.FEATURE_NEW_VERSIONS
|
|
||||||
? `/en/${nonEnterpriseDefaultVersion}/rest/reference/activity#notifications`
|
|
||||||
: '/en/rest/reference/activity#notifications'
|
|
||||||
expect(res.headers.location).toBe(expectedFinalPath)
|
|
||||||
|
|
||||||
// trailing slashes are handled separately by the `slashes` module;
|
|
||||||
// any request to a /v3 URL with a trailing slash will be redirected twice
|
|
||||||
res = await get('/en/v3/activity/notifications/')
|
|
||||||
expect(res.statusCode).toBe(301)
|
|
||||||
expect(res.headers.location).toBe('/en/v3/activity/notifications')
|
|
||||||
|
|
||||||
// non-reference redirects (e.g. guides)
|
|
||||||
res = await get('/en/v3/guides/basics-of-authentication')
|
|
||||||
expect(res.statusCode).toBe(301)
|
|
||||||
expectedFinalPath = process.env.FEATURE_NEW_VERSIONS
|
|
||||||
? `/en/${nonEnterpriseDefaultVersion}/rest/guides/basics-of-authentication`
|
|
||||||
: '/en/rest/guides/basics-of-authentication'
|
|
||||||
expect(res.headers.location).toBe(expectedFinalPath)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
describe('fixtures', () => {
|
describe('fixtures', () => {
|
||||||
// this fixtures file includes paths like /apps and /webhooks, plus /enterprise paths
|
// this fixtures file includes paths like /apps and /webhooks, plus /enterprise paths
|
||||||
@@ -217,7 +109,6 @@ describe('developer redirects', () => {
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
// this fixtures file includes /v3 and /enterprise/v3 paths
|
// this fixtures file includes /v3 and /enterprise/v3 paths
|
||||||
test('rest reference redirects', async () => {
|
test('rest reference redirects', async () => {
|
||||||
await eachOfLimit(
|
await eachOfLimit(
|
||||||
@@ -233,27 +124,7 @@ describe('developer redirects', () => {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
// this fixtures file includes /v3 and /enterprise/v3 paths
|
|
||||||
test('rest reference redirects', async () => {
|
|
||||||
await eachOfLimit(
|
|
||||||
restRedirectFixtures,
|
|
||||||
MAX_CONCURRENT_REQUESTS,
|
|
||||||
async (newPath, oldPath) => {
|
|
||||||
// REST and GraphQL developer Enterprise paths with a version are only supported up to 2.21.
|
|
||||||
// We make an exception to always redirect versionless paths to the latest version.
|
|
||||||
newPath = newPath.replace('/enterprise/user', `/enterprise/${enterpriseServerReleases.latest}/user`)
|
|
||||||
const res = await get(oldPath)
|
|
||||||
expect(res.statusCode, `${oldPath} did not redirect to ${newPath}`).toBe(301)
|
|
||||||
expect(res.headers.location).toBe(newPath)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
// this fixtures file includes /v4 and /enterprise/v4 paths
|
// this fixtures file includes /v4 and /enterprise/v4 paths
|
||||||
test('graphql reference redirects', async () => {
|
test('graphql reference redirects', async () => {
|
||||||
await eachOfLimit(
|
await eachOfLimit(
|
||||||
@@ -269,24 +140,5 @@ describe('developer redirects', () => {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
|
||||||
if (!process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
// this fixtures file includes /v4 and /enterprise/v4 paths
|
|
||||||
test('graphql reference redirects', async () => {
|
|
||||||
await eachOfLimit(
|
|
||||||
graphqlRedirectFixtures,
|
|
||||||
MAX_CONCURRENT_REQUESTS,
|
|
||||||
async (newPath, oldPath) => {
|
|
||||||
// REST and GraphQL developer Enterprise paths with a version are only supported up to 2.21.
|
|
||||||
// We make an exception to always redirect versionless paths to the latest version.
|
|
||||||
newPath = newPath.replace('/enterprise/user', `/enterprise/${enterpriseServerReleases.latest}/user`)
|
|
||||||
const res = await get(oldPath)
|
|
||||||
expect(res.statusCode, `${oldPath} did not redirect to ${newPath}`).toBe(301)
|
|
||||||
expect(res.headers.location).toBe(newPath)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const { isPlainObject } = require('lodash')
|
const { isPlainObject } = require('lodash')
|
||||||
const supertest = require('supertest')
|
const supertest = require('supertest')
|
||||||
@@ -33,21 +32,12 @@ describe('redirects', () => {
|
|||||||
basePath: path.join(__dirname, '../../content'),
|
basePath: path.join(__dirname, '../../content'),
|
||||||
languageCode: 'en'
|
languageCode: 'en'
|
||||||
})
|
})
|
||||||
if (process.env.FEATURE_NEW_VERSIONS) {
|
|
||||||
expect(page.redirects['/articles']).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
expect(page.redirects['/articles']).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
||||||
expect(page.redirects['/en/articles']).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
expect(page.redirects['/en/articles']).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
||||||
expect(page.redirects['/common-issues-and-questions']).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
expect(page.redirects['/common-issues-and-questions']).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
||||||
expect(page.redirects['/en/common-issues-and-questions']).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
expect(page.redirects['/en/common-issues-and-questions']).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
||||||
expect(page.redirects[`/en/enterprise/${enterpriseServerReleases.latest}/user/articles`]).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}/github`)
|
expect(page.redirects[`/en/enterprise/${enterpriseServerReleases.latest}/user/articles`]).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}/github`)
|
||||||
expect(page.redirects[`/en/enterprise/${enterpriseServerReleases.latest}/user/common-issues-and-questions`]).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}/github`)
|
expect(page.redirects[`/en/enterprise/${enterpriseServerReleases.latest}/user/common-issues-and-questions`]).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}/github`)
|
||||||
} else {
|
|
||||||
expect(page.redirects['/articles']).toBe('/en/github')
|
|
||||||
expect(page.redirects['/en/articles']).toBe('/en/github')
|
|
||||||
expect(page.redirects['/common-issues-and-questions']).toBe('/en/github')
|
|
||||||
expect(page.redirects['/en/common-issues-and-questions']).toBe('/en/github')
|
|
||||||
expect(page.redirects[`/en/enterprise/${enterpriseServerReleases.latest}/user/articles`]).toBe(`/en/enterprise/${enterpriseServerReleases.latest}/user/github`)
|
|
||||||
expect(page.redirects[`/en/enterprise/${enterpriseServerReleases.latest}/user/common-issues-and-questions`]).toBe(`/en/enterprise/${enterpriseServerReleases.latest}/user/github`)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
test('converts single `redirect_from` strings values into arrays', async () => {
|
test('converts single `redirect_from` strings values into arrays', async () => {
|
||||||
@@ -56,9 +46,7 @@ describe('redirects', () => {
|
|||||||
basePath: path.join(__dirname, '../../content'),
|
basePath: path.join(__dirname, '../../content'),
|
||||||
languageCode: 'en'
|
languageCode: 'en'
|
||||||
})
|
})
|
||||||
const expected = process.env.FEATURE_NEW_VERSIONS
|
const expected = `/en/${nonEnterpriseDefaultVersion}/github/collaborating-with-issues-and-pull-requests/about-conversations-on-github`
|
||||||
? `/en/${nonEnterpriseDefaultVersion}/github/collaborating-with-issues-and-pull-requests/about-conversations-on-github`
|
|
||||||
: '/en/github/collaborating-with-issues-and-pull-requests/about-conversations-on-github'
|
|
||||||
expect(page.redirects['/en/articles/about-discussions-in-issues-and-pull-requests']).toBe(expected)
|
expect(page.redirects['/en/articles/about-discussions-in-issues-and-pull-requests']).toBe(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -66,34 +54,26 @@ describe('redirects', () => {
|
|||||||
test('are preserved in redirected URLs', async () => {
|
test('are preserved in redirected URLs', async () => {
|
||||||
const res = await get('/enterprise/admin?query=pulls')
|
const res = await get('/enterprise/admin?query=pulls')
|
||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
const expected = process.env.FEATURE_NEW_VERSIONS
|
const expected = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin?query=pulls`
|
||||||
? `/en/enterprise-server@${enterpriseServerReleases.latest}/admin?query=pulls`
|
|
||||||
: `/en/enterprise/${enterpriseServerReleases.latest}/admin?query=pulls`
|
|
||||||
expect(res.headers.location).toBe(expected)
|
expect(res.headers.location).toBe(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
test('have q= converted to query=', async () => {
|
test('have q= converted to query=', async () => {
|
||||||
const res = await get('/en/enterprise/admin?q=pulls')
|
const res = await get('/en/enterprise/admin?q=pulls')
|
||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
const expected = process.env.FEATURE_NEW_VERSIONS
|
const expected = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin?query=pulls`
|
||||||
? `/en/enterprise-server@${enterpriseServerReleases.latest}/admin?query=pulls`
|
|
||||||
: `/en/enterprise/${enterpriseServerReleases.latest}/admin?query=pulls`
|
|
||||||
expect(res.headers.location).toBe(expected)
|
expect(res.headers.location).toBe(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
test('work with redirected search paths', async () => {
|
test('work with redirected search paths', async () => {
|
||||||
const res = await get('/en/enterprise/admin/search?utf8=%E2%9C%93&query=pulls')
|
const res = await get('/en/enterprise/admin/search?utf8=%E2%9C%93&query=pulls')
|
||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
const expected = process.env.FEATURE_NEW_VERSIONS
|
const expected = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin?utf8=%E2%9C%93&query=pulls`
|
||||||
? `/en/enterprise-server@${enterpriseServerReleases.latest}/admin?utf8=%E2%9C%93&query=pulls`
|
|
||||||
: `/en/enterprise/${enterpriseServerReleases.latest}/admin?utf8=%E2%9C%93&query=pulls`
|
|
||||||
expect(res.headers.location).toBe(expected)
|
expect(res.headers.location).toBe(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
test('do not work on other paths that include "search"', async () => {
|
test('do not work on other paths that include "search"', async () => {
|
||||||
const reqPath = process.env.FEATURE_NEW_VERSIONS
|
const reqPath = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin/configuration/enabling-unified-search-between-github-enterprise-server-and-githubcom`
|
||||||
? `/en/enterprise-server@${enterpriseServerReleases.latest}/admin/configuration/enabling-unified-search-between-github-enterprise-server-and-githubcom`
|
|
||||||
: `/en/enterprise/${enterpriseServerReleases.latest}/admin/configuration/enabling-unified-search-between-github-enterprise-server-and-githubcom`
|
|
||||||
const res = await get(reqPath)
|
const res = await get(reqPath)
|
||||||
expect(res.statusCode).toBe(200)
|
expect(res.statusCode).toBe(200)
|
||||||
})
|
})
|
||||||
@@ -142,18 +122,13 @@ describe('redirects', () => {
|
|||||||
test('redirect_from for renamed pages', async () => {
|
test('redirect_from for renamed pages', async () => {
|
||||||
const { res } = await get('/ja/desktop/contributing-to-projects/changing-a-remote-s-url-from-github-desktop')
|
const { res } = await get('/ja/desktop/contributing-to-projects/changing-a-remote-s-url-from-github-desktop')
|
||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
const expected = process.env.FEATURE_NEW_VERSIONS
|
const expected = `/ja/${nonEnterpriseDefaultVersion}/desktop/contributing-and-collaborating-using-github-desktop/changing-a-remotes-url-from-github-desktop`
|
||||||
? `/ja/${nonEnterpriseDefaultVersion}/desktop/contributing-and-collaborating-using-github-desktop/changing-a-remotes-url-from-github-desktop`
|
|
||||||
: '/ja/desktop/contributing-and-collaborating-using-github-desktop/changing-a-remotes-url-from-github-desktop'
|
|
||||||
expect(res.headers.location).toBe(expected)
|
expect(res.headers.location).toBe(expected)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('enterprise home page', () => {
|
describe('enterprise home page', () => {
|
||||||
const enterpriseHome = process.env.FEATURE_NEW_VERSIONS
|
const enterpriseHome = `/en/enterprise-server@${enterpriseServerReleases.latest}`
|
||||||
? `/en/enterprise-server@${enterpriseServerReleases.latest}`
|
|
||||||
: `/en/enterprise/${enterpriseServerReleases.latest}`
|
|
||||||
|
|
||||||
const japaneseEnterpriseHome = enterpriseHome.replace('/en/', '/ja/')
|
const japaneseEnterpriseHome = enterpriseHome.replace('/en/', '/ja/')
|
||||||
|
|
||||||
test('/enterprise', async () => {
|
test('/enterprise', async () => {
|
||||||
@@ -210,10 +185,7 @@ describe('redirects', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('enterprise admin', () => {
|
describe('enterprise admin', () => {
|
||||||
const enterpriseAdmin = process.env.FEATURE_NEW_VERSIONS
|
const enterpriseAdmin = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin`
|
||||||
? `/en/enterprise-server@${enterpriseServerReleases.latest}/admin`
|
|
||||||
: `/en/enterprise/${enterpriseServerReleases.latest}/admin`
|
|
||||||
|
|
||||||
const japaneseEnterpriseAdmin = enterpriseAdmin.replace('/en/', '/ja/')
|
const japaneseEnterpriseAdmin = enterpriseAdmin.replace('/en/', '/ja/')
|
||||||
|
|
||||||
test('no language code redirects to english', async () => {
|
test('no language code redirects to english', async () => {
|
||||||
@@ -245,9 +217,7 @@ describe('redirects', () => {
|
|||||||
expect(res.statusCode).toBe(301)
|
expect(res.statusCode).toBe(301)
|
||||||
const redirectRes = await get(res.headers.location)
|
const redirectRes = await get(res.headers.location)
|
||||||
expect(redirectRes.statusCode).toBe(200)
|
expect(redirectRes.statusCode).toBe(200)
|
||||||
const expected = process.env.FEATURE_NEW_VERSIONS
|
const expected = `/en/enterprise-server@${enterpriseServerReleases.latest}/admin/enterprise-management/upgrading-github-enterprise-server`
|
||||||
? `/en/enterprise-server@${enterpriseServerReleases.latest}/admin/enterprise-management/upgrading-github-enterprise-server`
|
|
||||||
: `/en/enterprise/${enterpriseServerReleases.latest}/admin/enterprise-management/upgrading-github-enterprise-server`
|
|
||||||
expect(res.headers.location).toBe(expected)
|
expect(res.headers.location).toBe(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -265,10 +235,7 @@ describe('redirects', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('enterprise user homepage', () => {
|
describe('enterprise user homepage', () => {
|
||||||
const enterpriseUser = process.env.FEATURE_NEW_VERSIONS
|
const enterpriseUser = `/en/enterprise-server@${enterpriseServerReleases.latest}/github`
|
||||||
? `/en/enterprise-server@${enterpriseServerReleases.latest}/github`
|
|
||||||
: `/en/enterprise/${enterpriseServerReleases.latest}/user/github`
|
|
||||||
|
|
||||||
const japaneseEnterpriseUser = enterpriseUser.replace('/en/', '/ja/')
|
const japaneseEnterpriseUser = enterpriseUser.replace('/en/', '/ja/')
|
||||||
|
|
||||||
test('no product redirects to GitHub.com product', async () => {
|
test('no product redirects to GitHub.com product', async () => {
|
||||||
@@ -297,10 +264,7 @@ describe('redirects', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('enterprise user article', () => {
|
describe('enterprise user article', () => {
|
||||||
const userArticle = process.env.FEATURE_NEW_VERSIONS
|
const userArticle = `/en/enterprise-server@${enterpriseServerReleases.latest}/github/getting-started-with-github/set-up-git`
|
||||||
? `/en/enterprise-server@${enterpriseServerReleases.latest}/github/getting-started-with-github/set-up-git`
|
|
||||||
: `/en/enterprise/${enterpriseServerReleases.latest}/user/github/getting-started-with-github/set-up-git`
|
|
||||||
|
|
||||||
const japaneseUserArticle = userArticle.replace('/en/', '/ja/')
|
const japaneseUserArticle = userArticle.replace('/en/', '/ja/')
|
||||||
|
|
||||||
test('no product redirects to GitHub.com product on the latest version', async () => {
|
test('no product redirects to GitHub.com product on the latest version', async () => {
|
||||||
@@ -335,11 +299,8 @@ describe('redirects', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('enterprise user article with frontmatter redirect', () => {
|
describe('enterprise user article with frontmatter redirect', () => {
|
||||||
const userArticle = process.env.FEATURE_NEW_VERSIONS
|
const userArticle = `/en/enterprise-server@${enterpriseServerReleases.latest}/github/getting-started-with-github/access-permissions-on-github`
|
||||||
? `/en/enterprise-server@${enterpriseServerReleases.latest}/github/getting-started-with-github/access-permissions-on-github`
|
|
||||||
: `/en/enterprise/${enterpriseServerReleases.latest}/user/github/getting-started-with-github/access-permissions-on-github`
|
|
||||||
const redirectFromPath = '/articles/what-are-the-different-access-permissions'
|
const redirectFromPath = '/articles/what-are-the-different-access-permissions'
|
||||||
|
|
||||||
const japaneseUserArticle = userArticle.replace('/en/', '/ja/')
|
const japaneseUserArticle = userArticle.replace('/en/', '/ja/')
|
||||||
|
|
||||||
test('redirects to expected article', async () => {
|
test('redirects to expected article', async () => {
|
||||||
@@ -368,10 +329,7 @@ describe('redirects', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('desktop guide', () => {
|
describe('desktop guide', () => {
|
||||||
const desktopGuide = process.env.FEATURE_NEW_VERSIONS
|
const desktopGuide = `/en/${nonEnterpriseDefaultVersion}/desktop/contributing-and-collaborating-using-github-desktop/creating-an-issue-or-pull-request`
|
||||||
? `/en/${nonEnterpriseDefaultVersion}/desktop/contributing-and-collaborating-using-github-desktop/creating-an-issue-or-pull-request`
|
|
||||||
: '/en/desktop/contributing-and-collaborating-using-github-desktop/creating-an-issue-or-pull-request'
|
|
||||||
|
|
||||||
const japaneseDesktopGuides = desktopGuide.replace('/en/', '/ja/')
|
const japaneseDesktopGuides = desktopGuide.replace('/en/', '/ja/')
|
||||||
|
|
||||||
test('no language code redirects to english', async () => {
|
test('no language code redirects to english', async () => {
|
||||||
|
|||||||
@@ -1,20 +1,16 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const Page = require('../../lib/page')
|
const Page = require('../../lib/page')
|
||||||
const loadRedirects = require('../../lib/redirects/precompile')
|
const loadRedirects = require('../../lib/redirects/precompile')
|
||||||
const findPage = require('../../lib/find-page')
|
const findPage = require('../../lib/find-page')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('find page', () => {
|
describe('find page', () => {
|
||||||
jest.setTimeout(1000 * 1000)
|
jest.setTimeout(1000 * 1000)
|
||||||
|
|
||||||
testFeatureNewVersions('falls back to the English page if it can\'t find a localized page', async () => {
|
test('falls back to the English page if it can\'t find a localized page', async () => {
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'page-that-does-not-exist-in-translations-dir.md',
|
relativePath: 'page-that-does-not-exist-in-translations-dir.md',
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions'),
|
basePath: path.join(__dirname, '../fixtures'),
|
||||||
languageCode: 'en'
|
languageCode: 'en'
|
||||||
})
|
})
|
||||||
const pages = [page]
|
const pages = [page]
|
||||||
@@ -28,27 +24,10 @@ describe('find page', () => {
|
|||||||
expect(typeof localizedPage.title).toBe('string')
|
expect(typeof localizedPage.title).toBe('string')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('falls back to the English page if it can\'t find a localized page', async () => {
|
test('follows redirects', async () => {
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'page-that-does-not-exist-in-translations-dir.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
const pages = [page]
|
|
||||||
|
|
||||||
// add named keys
|
|
||||||
for (const page of pages) {
|
|
||||||
pages[`/en/${page.relativePath}`] = page
|
|
||||||
}
|
|
||||||
|
|
||||||
const localizedPage = findPage(page.relativePath, pages, {}, 'ja')
|
|
||||||
expect(typeof localizedPage.title).toBe('string')
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('follows redirects', async () => {
|
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'page-with-redirects.md',
|
relativePath: 'page-with-redirects.md',
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions'),
|
basePath: path.join(__dirname, '../fixtures'),
|
||||||
languageCode: 'en'
|
languageCode: 'en'
|
||||||
})
|
})
|
||||||
const pages = [page]
|
const pages = [page]
|
||||||
@@ -62,22 +41,4 @@ describe('find page', () => {
|
|||||||
const redirectedPage = findPage('some-old-path', pages, redirects, 'en')
|
const redirectedPage = findPage('some-old-path', pages, redirects, 'en')
|
||||||
expect(typeof redirectedPage.title).toBe('string')
|
expect(typeof redirectedPage.title).toBe('string')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('follows redirects', async () => {
|
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'page-with-redirects.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
const pages = [page]
|
|
||||||
|
|
||||||
// add named keys
|
|
||||||
for (const page of pages) {
|
|
||||||
pages[`/en/${page.relativePath.replace('.md', '')}`] = page
|
|
||||||
}
|
|
||||||
|
|
||||||
const redirects = await loadRedirects(pages)
|
|
||||||
const redirectedPage = findPage('some-old-path', pages, redirects, 'en')
|
|
||||||
expect(typeof redirectedPage.title).toBe('string')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,20 +1,16 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const { liquid } = require('../../lib/render-content')
|
const { liquid } = require('../../lib/render-content')
|
||||||
const loadPages = require('../../lib/pages')
|
const loadPages = require('../../lib/pages')
|
||||||
const entities = new (require('html-entities').XmlEntities)()
|
const entities = new (require('html-entities').XmlEntities)()
|
||||||
const { set } = require('lodash')
|
const { set } = require('lodash')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('liquid helper tags', () => {
|
describe('liquid helper tags', () => {
|
||||||
const context = {}
|
const context = {}
|
||||||
let pages
|
let pages
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
pages = await loadPages()
|
pages = await loadPages()
|
||||||
context.currentLanguage = 'en'
|
context.currentLanguage = 'en'
|
||||||
context.currentVersion = process.env.FEATURE_NEW_VERSIONS ? nonEnterpriseDefaultVersion : 'dotcom'
|
context.currentVersion = nonEnterpriseDefaultVersion
|
||||||
context.pages = pages
|
context.pages = pages
|
||||||
context.redirects = []
|
context.redirects = []
|
||||||
context.site = {}
|
context.site = {}
|
||||||
@@ -48,7 +44,7 @@ describe('liquid helper tags', () => {
|
|||||||
expect(output).toBe(expected)
|
expect(output).toBe(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('link_with_intro tag', async () => {
|
test('link_with_intro tag', async () => {
|
||||||
const template = '{% link_with_intro /contributing-and-collaborating-using-github-desktop %}'
|
const template = '{% link_with_intro /contributing-and-collaborating-using-github-desktop %}'
|
||||||
const page = pages[`/en/${nonEnterpriseDefaultVersion}/desktop/contributing-and-collaborating-using-github-desktop`]
|
const page = pages[`/en/${nonEnterpriseDefaultVersion}/desktop/contributing-and-collaborating-using-github-desktop`]
|
||||||
const expected = `<a class="link-with-intro Bump-link--hover no-underline" href="/en/desktop/contributing-and-collaborating-using-github-desktop">
|
const expected = `<a class="link-with-intro Bump-link--hover no-underline" href="/en/desktop/contributing-and-collaborating-using-github-desktop">
|
||||||
@@ -59,18 +55,7 @@ describe('liquid helper tags', () => {
|
|||||||
expect(output).toBe(expected)
|
expect(output).toBe(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('link_with_intro tag', async () => {
|
test('homepage_link_with_intro tag', async () => {
|
||||||
const template = '{% link_with_intro /contributing-and-collaborating-using-github-desktop %}'
|
|
||||||
const page = pages['/en/desktop/contributing-and-collaborating-using-github-desktop']
|
|
||||||
const expected = `<a class="link-with-intro Bump-link--hover no-underline" href="/en/desktop/contributing-and-collaborating-using-github-desktop">
|
|
||||||
<h4 class="link-with-intro-title">${page.title}<span class="Bump-link-symbol">→</span></h4>
|
|
||||||
</a>
|
|
||||||
<p class="link-with-intro-intro">${page.intro}</p>`
|
|
||||||
const output = entities.decode(await liquid.parseAndRender(template, context))
|
|
||||||
expect(output).toBe(expected)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('homepage_link_with_intro tag', async () => {
|
|
||||||
const template = '{% homepage_link_with_intro /github/writing-on-github/basic-writing-and-formatting-syntax %}'
|
const template = '{% homepage_link_with_intro /github/writing-on-github/basic-writing-and-formatting-syntax %}'
|
||||||
const page = pages[`/en/${nonEnterpriseDefaultVersion}/github/writing-on-github/basic-writing-and-formatting-syntax`]
|
const page = pages[`/en/${nonEnterpriseDefaultVersion}/github/writing-on-github/basic-writing-and-formatting-syntax`]
|
||||||
const expected = `<a class="link-with-intro Bump-link--hover no-underline d-block offset-lg-2 col-lg-8 mb-5" href="/en/github/writing-on-github/basic-writing-and-formatting-syntax">
|
const expected = `<a class="link-with-intro Bump-link--hover no-underline d-block offset-lg-2 col-lg-8 mb-5" href="/en/github/writing-on-github/basic-writing-and-formatting-syntax">
|
||||||
@@ -81,17 +66,6 @@ describe('liquid helper tags', () => {
|
|||||||
expect(output).toBe(expected)
|
expect(output).toBe(expected)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('homepage_link_with_intro tag', async () => {
|
|
||||||
const template = '{% homepage_link_with_intro /github/writing-on-github/basic-writing-and-formatting-syntax %}'
|
|
||||||
const page = pages['/en/github/writing-on-github/basic-writing-and-formatting-syntax']
|
|
||||||
const expected = `<a class="link-with-intro Bump-link--hover no-underline d-block offset-lg-2 col-lg-8 mb-5" href="/en/github/writing-on-github/basic-writing-and-formatting-syntax">
|
|
||||||
<h4 class="link-with-intro-title h4-mktg">${page.title}<span class="Bump-link-symbol">→</span></h4>
|
|
||||||
<p class="link-with-intro-intro f5">${page.intro}</p>
|
|
||||||
</a>`
|
|
||||||
const output = await liquid.parseAndRender(template, context)
|
|
||||||
expect(output).toBe(expected)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('link_in_list tag', async () => {
|
test('link_in_list tag', async () => {
|
||||||
const template = '{% link_in_list /contributing-and-collaborating-using-github-desktop %}'
|
const template = '{% link_in_list /contributing-and-collaborating-using-github-desktop %}'
|
||||||
const expected = '- <a class="article-link link Bump-link--hover no-underline" href="/en/desktop/contributing-and-collaborating-using-github-desktop">Contributing and collaborating using GitHub Desktop</a>'
|
const expected = '- <a class="article-link link Bump-link--hover no-underline" href="/en/desktop/contributing-and-collaborating-using-github-desktop">Contributing and collaborating using GitHub Desktop</a>'
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const { liquid } = require('../../lib/render-content')
|
const { liquid } = require('../../lib/render-content')
|
||||||
const template = `
|
const template = `
|
||||||
{% if page.version ver_gt "2.13" %}up to date{% endif %}
|
{% if page.version ver_gt "2.13" %}up to date{% endif %}
|
||||||
|
|||||||
@@ -1,16 +1,10 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const cheerio = require('cheerio')
|
const cheerio = require('cheerio')
|
||||||
const Page = require('../../lib/page')
|
const Page = require('../../lib/page')
|
||||||
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
// get the `free-pro-team` segment of `free-pro-team@latest`
|
// get the `free-pro-team` segment of `free-pro-team@latest`
|
||||||
const nonEnterpriseDefaultPlan = process.env.FEATURE_NEW_VERSIONS && nonEnterpriseDefaultVersion.split('@')[0]
|
const nonEnterpriseDefaultPlan = nonEnterpriseDefaultVersion.split('@')[0]
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
const describeFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? describe : describe.skip
|
|
||||||
const describeFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? describe.skip : describe
|
|
||||||
|
|
||||||
const opts = {
|
const opts = {
|
||||||
relativePath: 'github/collaborating-with-issues-and-pull-requests/about-branches.md',
|
relativePath: 'github/collaborating-with-issues-and-pull-requests/about-branches.md',
|
||||||
@@ -25,16 +19,7 @@ describe('Page class', () => {
|
|||||||
expect(page.fullPath.includes(page.relativePath)).toBe(true)
|
expect(page.fullPath.includes(page.relativePath)).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('does not error out on translated TOC with no links', () => {
|
test('does not error out on translated TOC with no links', () => {
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'translated-toc-with-no-links-index.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions'),
|
|
||||||
languageCode: 'ja'
|
|
||||||
})
|
|
||||||
expect(typeof page.title).toBe('string')
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureOldVersions('does not error out on translated TOC with no links', () => {
|
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'translated-toc-with-no-links-index.md',
|
relativePath: 'translated-toc-with-no-links-index.md',
|
||||||
basePath: path.join(__dirname, '../fixtures'),
|
basePath: path.join(__dirname, '../fixtures'),
|
||||||
@@ -43,51 +28,7 @@ describe('Page class', () => {
|
|||||||
expect(typeof page.title).toBe('string')
|
expect(typeof page.title).toBe('string')
|
||||||
})
|
})
|
||||||
|
|
||||||
describeFeatureNewVersions('showMiniToc page property', () => {
|
describe('showMiniToc page property', () => {
|
||||||
const article = new Page({
|
|
||||||
relativePath: 'sample-article.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
|
|
||||||
const articleWithFM = new Page({
|
|
||||||
showMiniToc: false,
|
|
||||||
relativePath: article.relativePath,
|
|
||||||
basePath: article.basePath,
|
|
||||||
languageCode: article.languageCode
|
|
||||||
})
|
|
||||||
|
|
||||||
const tocPage = new Page({
|
|
||||||
relativePath: 'sample-toc-index.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
|
|
||||||
const mapTopic = new Page({
|
|
||||||
mapTopic: true,
|
|
||||||
relativePath: article.relativePath,
|
|
||||||
basePath: article.basePath,
|
|
||||||
languageCode: article.languageCode
|
|
||||||
})
|
|
||||||
|
|
||||||
test('is true by default on articles', () => {
|
|
||||||
expect(article.showMiniToc).toBe(true)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('is false on articles when set in frontmatter', () => {
|
|
||||||
expect(articleWithFM.showMiniToc).toBe(false)
|
|
||||||
})
|
|
||||||
|
|
||||||
test('is undefined by default on index.md pages', () => {
|
|
||||||
expect(tocPage.showMiniToc).toBeUndefined()
|
|
||||||
})
|
|
||||||
|
|
||||||
test('is undefined by default on map topics', () => {
|
|
||||||
expect(mapTopic.showMiniToc).toBeUndefined()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describeFeatureOldVersions('showMiniToc page property', () => {
|
|
||||||
const article = new Page({
|
const article = new Page({
|
||||||
relativePath: 'sample-article.md',
|
relativePath: 'sample-article.md',
|
||||||
basePath: path.join(__dirname, '../fixtures'),
|
basePath: path.join(__dirname, '../fixtures'),
|
||||||
@@ -132,7 +73,7 @@ describe('Page class', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('page.render(context)', () => {
|
describe('page.render(context)', () => {
|
||||||
testFeatureNewVersions('rewrites links to include the current language prefix and version', async () => {
|
test('rewrites links to include the current language prefix and version', async () => {
|
||||||
const page = new Page(opts)
|
const page = new Page(opts)
|
||||||
const context = {
|
const context = {
|
||||||
page: { version: nonEnterpriseDefaultVersion },
|
page: { version: nonEnterpriseDefaultVersion },
|
||||||
@@ -148,23 +89,7 @@ describe('Page class', () => {
|
|||||||
expect($(`a[href="/en/${nonEnterpriseDefaultVersion}/articles/about-pull-requests"]`).length).toBeGreaterThan(0)
|
expect($(`a[href="/en/${nonEnterpriseDefaultVersion}/articles/about-pull-requests"]`).length).toBeGreaterThan(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('rewrites links to include the current language prefix', async () => {
|
test('does not rewrite links that include deprecated enterprise release numbers', async () => {
|
||||||
const page = new Page(opts)
|
|
||||||
const context = {
|
|
||||||
page: { version: 'dotcom' },
|
|
||||||
currentVersion: 'dotcom',
|
|
||||||
currentPath: '/en/github/collaborating-with-issues-and-pull-requests/about-branches',
|
|
||||||
currentLanguage: 'en'
|
|
||||||
}
|
|
||||||
const rendered = await page.render(context)
|
|
||||||
const $ = cheerio.load(rendered)
|
|
||||||
expect(page.markdown.includes('(/articles/about-pull-requests)')).toBe(true)
|
|
||||||
expect(page.markdown.includes('(/en/articles/about-pull-requests)')).toBe(false)
|
|
||||||
expect($('a[href="/articles/about-pull-requests"]').length).toBe(0)
|
|
||||||
expect($('a[href="/en/articles/about-pull-requests"]').length).toBeGreaterThan(0)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('does not rewrite links that include deprecated enterprise release numbers', async () => {
|
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'admin/enterprise-management/migrating-from-github-enterprise-1110x-to-2123.md',
|
relativePath: 'admin/enterprise-management/migrating-from-github-enterprise-1110x-to-2123.md',
|
||||||
basePath: path.join(__dirname, '../../content'),
|
basePath: path.join(__dirname, '../../content'),
|
||||||
@@ -183,26 +108,7 @@ describe('Page class', () => {
|
|||||||
expect($('a[href="/en/enterprise/11.10.340/admin/articles/upgrading-to-the-latest-release"]').length).toBeGreaterThan(0)
|
expect($('a[href="/en/enterprise/11.10.340/admin/articles/upgrading-to-the-latest-release"]').length).toBeGreaterThan(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('does not rewrite links that include deprecated enterprise release numbers', async () => {
|
test('does not rewrite links to external redirects', async () => {
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'enterprise/admin/enterprise-management/migrating-from-github-enterprise-1110x-to-2123.md',
|
|
||||||
basePath: path.join(__dirname, '../../content'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
const context = {
|
|
||||||
page: { version: enterpriseServerReleases.latest },
|
|
||||||
currentVersion: enterpriseServerReleases.latest,
|
|
||||||
currentPath: `/en/enterprise/${enterpriseServerReleases.latest}/admin/enterprise-management/migrating-from-github-enterprise-1110x-to-2123`,
|
|
||||||
currentLanguage: 'en'
|
|
||||||
}
|
|
||||||
const rendered = await page.render(context)
|
|
||||||
const $ = cheerio.load(rendered)
|
|
||||||
expect(page.markdown.includes('(/enterprise/11.10.340/admin/articles/upgrading-to-the-latest-release/)')).toBe(true)
|
|
||||||
expect($(`a[href="/en/enterprise/${enterpriseServerReleases.latest}/admin/articles/upgrading-to-the-latest-release"]`).length).toBe(0)
|
|
||||||
expect($('a[href="/en/enterprise/11.10.340/admin/articles/upgrading-to-the-latest-release"]').length).toBeGreaterThan(0)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('does not rewrite links to external redirects', async () => {
|
|
||||||
const page = new Page(opts)
|
const page = new Page(opts)
|
||||||
page.markdown = `${page.markdown}\n\nSee [Capistrano](/capistrano).`
|
page.markdown = `${page.markdown}\n\nSee [Capistrano](/capistrano).`
|
||||||
const context = {
|
const context = {
|
||||||
@@ -215,20 +121,6 @@ describe('Page class', () => {
|
|||||||
const $ = cheerio.load(rendered)
|
const $ = cheerio.load(rendered)
|
||||||
expect($('a[href="/capistrano"]').length).toBe(1)
|
expect($('a[href="/capistrano"]').length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('does not rewrite links to external redirects', async () => {
|
|
||||||
const page = new Page(opts)
|
|
||||||
page.markdown = `${page.markdown}\n\nSee [Capistrano](/capistrano).`
|
|
||||||
const context = {
|
|
||||||
page: { version: 'dotcom' },
|
|
||||||
currentVersion: 'dotcom',
|
|
||||||
currentPath: '/en/github/collaborating-with-issues-and-pull-requests/about-branches',
|
|
||||||
currentLanguage: 'en'
|
|
||||||
}
|
|
||||||
const rendered = await page.render(context)
|
|
||||||
const $ = cheerio.load(rendered)
|
|
||||||
expect($('a[href="/capistrano"]').length).toBe(1)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
test('preserves `languageCode`', () => {
|
test('preserves `languageCode`', () => {
|
||||||
@@ -236,85 +128,49 @@ describe('Page class', () => {
|
|||||||
expect(page.languageCode).toBe('en')
|
expect(page.languageCode).toBe('en')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('parentProductId getter', () => {
|
test('parentProductId getter', () => {
|
||||||
let page = new Page({
|
let page = new Page({
|
||||||
relativePath: 'github/some-category/some-article.md',
|
relativePath: 'github/some-category/some-article.md',
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions/products'),
|
basePath: path.join(__dirname, '../fixtures/products'),
|
||||||
languageCode: 'en'
|
languageCode: 'en'
|
||||||
})
|
})
|
||||||
expect(page.parentProductId).toBe('github')
|
expect(page.parentProductId).toBe('github')
|
||||||
|
|
||||||
page = new Page({
|
page = new Page({
|
||||||
relativePath: 'actions/some-category/some-article.md',
|
relativePath: 'actions/some-category/some-article.md',
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions/products'),
|
basePath: path.join(__dirname, '../fixtures/products'),
|
||||||
languageCode: 'en'
|
languageCode: 'en'
|
||||||
})
|
})
|
||||||
expect(page.parentProductId).toBe('actions')
|
expect(page.parentProductId).toBe('actions')
|
||||||
|
|
||||||
page = new Page({
|
page = new Page({
|
||||||
relativePath: 'admin/some-category/some-article.md',
|
relativePath: 'admin/some-category/some-article.md',
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions/products'),
|
basePath: path.join(__dirname, '../fixtures/products'),
|
||||||
languageCode: 'en'
|
languageCode: 'en'
|
||||||
})
|
})
|
||||||
expect(page.parentProductId).toBe('admin')
|
expect(page.parentProductId).toBe('admin')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('parentProductId getter', () => {
|
|
||||||
let page = new Page({
|
|
||||||
relativePath: 'github/some-category/some-article.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures/products'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
expect(page.parentProductId).toBe('github')
|
|
||||||
|
|
||||||
page = new Page({
|
|
||||||
relativePath: 'actions/some-category/some-article.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures/products'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
expect(page.parentProductId).toBe('actions')
|
|
||||||
|
|
||||||
page = new Page({
|
|
||||||
relativePath: 'enterprise/some-category/some-article.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures/products'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
expect(page.parentProductId).toBe('enterpriseServer')
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('permalinks', () => {
|
describe('permalinks', () => {
|
||||||
test('is an array', () => {
|
test('is an array', () => {
|
||||||
const page = new Page(opts)
|
const page = new Page(opts)
|
||||||
expect(Array.isArray(page.permalinks)).toBe(true)
|
expect(Array.isArray(page.permalinks)).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('has a key for every supported enterprise version (and no deprecated versions)', () => {
|
test('has a key for every supported enterprise version (and no deprecated versions)', () => {
|
||||||
const page = new Page(opts)
|
const page = new Page(opts)
|
||||||
const pageVersions = page.permalinks.map(permalink => permalink.pageVersion)
|
const pageVersions = page.permalinks.map(permalink => permalink.pageVersion)
|
||||||
expect(enterpriseServerReleases.supported.every(version => pageVersions.includes(`enterprise-server@${version}`))).toBe(true)
|
expect(enterpriseServerReleases.supported.every(version => pageVersions.includes(`enterprise-server@${version}`))).toBe(true)
|
||||||
expect(enterpriseServerReleases.deprecated.every(version => !pageVersions.includes(`enterprise-server@${version}`))).toBe(true)
|
expect(enterpriseServerReleases.deprecated.every(version => !pageVersions.includes(`enterprise-server@${version}`))).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('has a key for every supported enterprise version (and no deprecated versions)', () => {
|
test('sets versioned values', () => {
|
||||||
const page = new Page(opts)
|
|
||||||
const pageVersions = page.permalinks.map(permalink => permalink.pageVersion)
|
|
||||||
expect(enterpriseServerReleases.supported.every(version => pageVersions.includes(version))).toBe(true)
|
|
||||||
expect(enterpriseServerReleases.deprecated.every(version => !pageVersions.includes(version))).toBe(true)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('sets versioned values', () => {
|
|
||||||
const page = new Page(opts)
|
const page = new Page(opts)
|
||||||
expect(page.permalinks.find(permalink => permalink.pageVersion === nonEnterpriseDefaultVersion).href).toBe(`/en/${nonEnterpriseDefaultVersion}/github/collaborating-with-issues-and-pull-requests/about-branches`)
|
expect(page.permalinks.find(permalink => permalink.pageVersion === nonEnterpriseDefaultVersion).href).toBe(`/en/${nonEnterpriseDefaultVersion}/github/collaborating-with-issues-and-pull-requests/about-branches`)
|
||||||
expect(page.permalinks.find(permalink => permalink.pageVersion === `enterprise-server@${enterpriseServerReleases.oldestSupported}`).href).toBe(`/en/enterprise-server@${enterpriseServerReleases.oldestSupported}/github/collaborating-with-issues-and-pull-requests/about-branches`)
|
expect(page.permalinks.find(permalink => permalink.pageVersion === `enterprise-server@${enterpriseServerReleases.oldestSupported}`).href).toBe(`/en/enterprise-server@${enterpriseServerReleases.oldestSupported}/github/collaborating-with-issues-and-pull-requests/about-branches`)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('sets dotcom and enterprise values', () => {
|
test('homepage permalinks', () => {
|
||||||
const page = new Page(opts)
|
|
||||||
expect(page.permalinks.find(permalink => permalink.pageVersion === 'dotcom').href).toBe('/en/github/collaborating-with-issues-and-pull-requests/about-branches')
|
|
||||||
expect(page.permalinks.find(permalink => permalink.pageVersion === enterpriseServerReleases.oldestSupported).href).toBe(`/en/enterprise/${enterpriseServerReleases.oldestSupported}/user/github/collaborating-with-issues-and-pull-requests/about-branches`)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('homepage permalinks', () => {
|
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'index.md',
|
relativePath: 'index.md',
|
||||||
basePath: path.join(__dirname, '../../content'),
|
basePath: path.join(__dirname, '../../content'),
|
||||||
@@ -325,16 +181,7 @@ describe('Page class', () => {
|
|||||||
expect(page.permalinks.find(permalink => permalink.pageVersion === 'homepage').href).toBe('/en')
|
expect(page.permalinks.find(permalink => permalink.pageVersion === 'homepage').href).toBe('/en')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('homepage permalinks', () => {
|
test('permalinks for dotcom-only pages', () => {
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'index.md',
|
|
||||||
basePath: path.join(__dirname, '../../content'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
expect(page.permalinks[0].href).toBe('/en')
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('permalinks for dotcom-only pages', () => {
|
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'github/getting-started-with-github/signing-up-for-a-new-github-account.md',
|
relativePath: 'github/getting-started-with-github/signing-up-for-a-new-github-account.md',
|
||||||
basePath: path.join(__dirname, '../../content'),
|
basePath: path.join(__dirname, '../../content'),
|
||||||
@@ -344,20 +191,10 @@ describe('Page class', () => {
|
|||||||
expect(page.permalinks.length).toBe(1)
|
expect(page.permalinks.length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('permalinks for dotcom-only pages', () => {
|
test('permalinks for enterprise-only pages', () => {
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'github/getting-started-with-github/signing-up-for-a-new-github-account.md',
|
|
||||||
basePath: path.join(__dirname, '../../content'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
expect(page.permalinks.find(permalink => permalink.pageVersion === 'dotcom').href).toBe('/en/github/getting-started-with-github/signing-up-for-a-new-github-account')
|
|
||||||
expect(page.permalinks.length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('permalinks for enterprise-only pages', () => {
|
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'products/admin/some-category/some-article.md',
|
relativePath: 'products/admin/some-category/some-article.md',
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions'),
|
basePath: path.join(__dirname, '../fixtures'),
|
||||||
languageCode: 'en'
|
languageCode: 'en'
|
||||||
})
|
})
|
||||||
expect(page.permalinks.find(permalink => permalink.pageVersion === `enterprise-server@${enterpriseServerReleases.latest}`).href).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}/products/admin/some-category/some-article`)
|
expect(page.permalinks.find(permalink => permalink.pageVersion === `enterprise-server@${enterpriseServerReleases.latest}`).href).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}/products/admin/some-category/some-article`)
|
||||||
@@ -366,39 +203,17 @@ describe('Page class', () => {
|
|||||||
expect(pageVersions.includes(nonEnterpriseDefaultVersion)).toBe(false)
|
expect(pageVersions.includes(nonEnterpriseDefaultVersion)).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('permalinks for enterprise-only pages', () => {
|
test('permalinks for non-GitHub.com products without Enterprise versions', () => {
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'products/enterprise/some-category/some-article.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
expect(page.permalinks.find(permalink => permalink.pageVersion === enterpriseServerReleases.latest).href).toBe(`/en/enterprise/${enterpriseServerReleases.latest}/user/products/enterprise/some-category/some-article`)
|
|
||||||
const pageVersions = page.permalinks.map(permalink => permalink.pageVersion)
|
|
||||||
expect(pageVersions.length).toBeGreaterThan(1)
|
|
||||||
expect(pageVersions.includes('dotcom')).toBe(false)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('permalinks for non-GitHub.com products without Enterprise versions', () => {
|
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'products/actions/some-category/some-article.md',
|
relativePath: 'products/actions/some-category/some-article.md',
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions'),
|
basePath: path.join(__dirname, '../fixtures'),
|
||||||
languageCode: 'en'
|
languageCode: 'en'
|
||||||
})
|
})
|
||||||
expect(page.permalinks.find(permalink => permalink.pageVersion === nonEnterpriseDefaultVersion).href).toBe(`/en/${nonEnterpriseDefaultVersion}/products/actions/some-category/some-article`)
|
expect(page.permalinks.find(permalink => permalink.pageVersion === nonEnterpriseDefaultVersion).href).toBe(`/en/${nonEnterpriseDefaultVersion}/products/actions/some-category/some-article`)
|
||||||
expect(page.permalinks.length).toBe(1)
|
expect(page.permalinks.length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('permalinks for non-GitHub.com products without Enterprise versions', () => {
|
test('permalinks for non-GitHub.com products with Enterprise versions', () => {
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'products/actions/some-category/some-article.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
expect(page.permalinks.find(permalink => permalink.pageVersion === 'dotcom').href).toBe('/en/products/actions/some-category/some-article')
|
|
||||||
expect(page.permalinks.length).toBe(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('permalinks for non-GitHub.com products with Enterprise versions', () => {
|
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: '/insights/installing-and-configuring-github-insights/about-github-insights.md',
|
relativePath: '/insights/installing-and-configuring-github-insights/about-github-insights.md',
|
||||||
basePath: path.join(__dirname, '../../content'),
|
basePath: path.join(__dirname, '../../content'),
|
||||||
@@ -409,18 +224,6 @@ describe('Page class', () => {
|
|||||||
expect(pageVersions.length).toBeGreaterThan(1)
|
expect(pageVersions.length).toBeGreaterThan(1)
|
||||||
expect(pageVersions.includes(nonEnterpriseDefaultVersion)).toBe(false)
|
expect(pageVersions.includes(nonEnterpriseDefaultVersion)).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('permalinks for non-GitHub.com products with Enterprise versions', () => {
|
|
||||||
const page = new Page({
|
|
||||||
relativePath: '/insights/installing-and-configuring-github-insights/about-github-insights.md',
|
|
||||||
basePath: path.join(__dirname, '../../content'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
expect(page.permalinks.find(permalink => permalink.pageVersion === enterpriseServerReleases.latest).href).toBe(`/en/enterprise/${enterpriseServerReleases.latest}/user/insights/installing-and-configuring-github-insights/about-github-insights`)
|
|
||||||
const pageVersions = page.permalinks.map(permalink => permalink.pageVersion)
|
|
||||||
expect(pageVersions.length).toBeGreaterThan(1)
|
|
||||||
expect(pageVersions.includes('dotcom')).toBe(false)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('Page.parseFrontmatter()', () => {
|
describe('Page.parseFrontmatter()', () => {
|
||||||
@@ -453,16 +256,7 @@ describe('Page class', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('fixes translated frontmatter that includes verdadero', async () => {
|
test('fixes translated frontmatter that includes verdadero', async () => {
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'article-with-mislocalized-frontmatter.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions'),
|
|
||||||
languageCode: 'ja'
|
|
||||||
})
|
|
||||||
expect(page.mapTopic).toBe(true)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureOldVersions('fixes translated frontmatter that includes verdadero', async () => {
|
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'article-with-mislocalized-frontmatter.md',
|
relativePath: 'article-with-mislocalized-frontmatter.md',
|
||||||
basePath: path.join(__dirname, '../fixtures'),
|
basePath: path.join(__dirname, '../fixtures'),
|
||||||
@@ -476,7 +270,7 @@ describe('Page class', () => {
|
|||||||
// There are none of these in the content at this time!
|
// There are none of these in the content at this time!
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('pages that apply to newer enterprise versions', async () => {
|
test('pages that apply to newer enterprise versions', async () => {
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'github/administering-a-repository/managing-the-automatic-deletion-of-branches.md',
|
relativePath: 'github/administering-a-repository/managing-the-automatic-deletion-of-branches.md',
|
||||||
basePath: path.join(__dirname, '../../content'),
|
basePath: path.join(__dirname, '../../content'),
|
||||||
@@ -486,17 +280,7 @@ describe('Page class', () => {
|
|||||||
expect(page.versions['enterprise-server']).toBe('>=2.19')
|
expect(page.versions['enterprise-server']).toBe('>=2.19')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('pages that apply to newer enterprise versions', async () => {
|
test('index page', async () => {
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'github/administering-a-repository/managing-the-automatic-deletion-of-branches.md',
|
|
||||||
basePath: path.join(__dirname, '../../content'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
expect('dotcom' in page.productVersions).toBe(true)
|
|
||||||
expect(page.productVersions.enterprise).toBe('>=2.19')
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('index page', async () => {
|
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'index.md',
|
relativePath: 'index.md',
|
||||||
basePath: path.join(__dirname, '../../content'),
|
basePath: path.join(__dirname, '../../content'),
|
||||||
@@ -506,27 +290,7 @@ describe('Page class', () => {
|
|||||||
expect(page.versions['enterprise-server']).toBe('*')
|
expect(page.versions['enterprise-server']).toBe('*')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('index page', async () => {
|
test('enterprise admin index page', async () => {
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'index.md',
|
|
||||||
basePath: path.join(__dirname, '../../content'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
expect(page.productVersions.dotcom).toBe('*')
|
|
||||||
})
|
|
||||||
|
|
||||||
// Note there is no more enterprise/index.md page with the latest versioning changes
|
|
||||||
testFeatureOldVersions('enterprise index page', async () => {
|
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'enterprise/index.md',
|
|
||||||
basePath: path.join(__dirname, '../../content'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
expect('dotcom' in page.productVersions).toBe(false)
|
|
||||||
expect(page.productVersions.enterprise).toBe('*')
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('enterprise admin index page', async () => {
|
|
||||||
const page = new Page({
|
const page = new Page({
|
||||||
relativePath: 'admin/index.md',
|
relativePath: 'admin/index.md',
|
||||||
basePath: path.join(__dirname, '../../content'),
|
basePath: path.join(__dirname, '../../content'),
|
||||||
@@ -536,34 +300,11 @@ describe('Page class', () => {
|
|||||||
expect(nonEnterpriseDefaultPlan in page.versions).toBe(false)
|
expect(nonEnterpriseDefaultPlan in page.versions).toBe(false)
|
||||||
expect(page.versions['enterprise-server']).toBe('*')
|
expect(page.versions['enterprise-server']).toBe('*')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('enterprise admin index page', async () => {
|
|
||||||
const page = new Page({
|
|
||||||
relativePath: 'enterprise/admin/index.md',
|
|
||||||
basePath: path.join(__dirname, '../../content'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
|
|
||||||
expect('dotcom' in page.productVersions).toBe(false)
|
|
||||||
expect(page.productVersions.enterprise).toBe('*')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('catches errors thrown in Page class', () => {
|
describe('catches errors thrown in Page class', () => {
|
||||||
testFeatureNewVersions('frontmatter parsing error', () => {
|
test('frontmatter parsing error', () => {
|
||||||
function getPage () {
|
|
||||||
return new Page({
|
|
||||||
relativePath: 'page-with-frontmatter-error.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures/new-versions'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
expect(getPage).toThrowError('invalid frontmatter entry')
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureOldVersions('frontmatter parsing error', () => {
|
|
||||||
function getPage () {
|
function getPage () {
|
||||||
return new Page({
|
return new Page({
|
||||||
relativePath: 'page-with-frontmatter-error.md',
|
relativePath: 'page-with-frontmatter-error.md',
|
||||||
@@ -575,7 +316,7 @@ describe('catches errors thrown in Page class', () => {
|
|||||||
expect(getPage).toThrowError('invalid frontmatter entry')
|
expect(getPage).toThrowError('invalid frontmatter entry')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('missing versions frontmatter', () => {
|
test('missing versions frontmatter', () => {
|
||||||
function getPage () {
|
function getPage () {
|
||||||
return new Page({
|
return new Page({
|
||||||
relativePath: 'page-with-missing-product-versions.md',
|
relativePath: 'page-with-missing-product-versions.md',
|
||||||
@@ -586,16 +327,4 @@ describe('catches errors thrown in Page class', () => {
|
|||||||
|
|
||||||
expect(getPage).toThrowError('versions')
|
expect(getPage).toThrowError('versions')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('missing productVersions', () => {
|
|
||||||
function getPage () {
|
|
||||||
return new Page({
|
|
||||||
relativePath: 'page-with-missing-product-versions.md',
|
|
||||||
basePath: path.join(__dirname, '../fixtures'),
|
|
||||||
languageCode: 'en'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
expect(getPage).toThrowError('productVersions')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const loadPages = require('../../lib/pages')
|
const loadPages = require('../../lib/pages')
|
||||||
const languageCodes = Object.keys(require('../../lib/languages'))
|
const languageCodes = Object.keys(require('../../lib/languages'))
|
||||||
|
|||||||
@@ -1,17 +1,13 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const Permalink = require('../../lib/permalink')
|
const Permalink = require('../../lib/permalink')
|
||||||
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
// Permalink constructor requires: languageCode, pageVersion, relativePath, title
|
// Permalink constructor requires: languageCode, pageVersion, relativePath, title
|
||||||
// Permalink.derive requires: languageCode, relativePath, title, versions (<- FM prop)
|
// Permalink.derive requires: languageCode, relativePath, title, versions (<- FM prop)
|
||||||
|
|
||||||
describe('Permalink class', () => {
|
describe('Permalink class', () => {
|
||||||
// We can only use Permalink.derive to get the special 'homepage' permalink
|
// We can only use Permalink.derive to get the special 'homepage' permalink
|
||||||
testFeatureNewVersions('derives info for unversioned homepage', () => {
|
test('derives info for unversioned homepage', () => {
|
||||||
const versions = {
|
const versions = {
|
||||||
'free-pro-team': '*',
|
'free-pro-team': '*',
|
||||||
'enterprise-server': '*'
|
'enterprise-server': '*'
|
||||||
@@ -22,68 +18,35 @@ describe('Permalink class', () => {
|
|||||||
expect(homepagePermalink.href).toBe('/en')
|
expect(homepagePermalink.href).toBe('/en')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('derives info for homepage', () => {
|
test('derives info for non-enterprise versioned homepage', () => {
|
||||||
const permalink = new Permalink('en', 'dotcom', 'index.md', 'Hello World')
|
|
||||||
expect(permalink.pageVersionTitle).toBe('GitHub.com')
|
|
||||||
expect(permalink.href).toBe('/en')
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('derives info for non-enterprise versioned homepage', () => {
|
|
||||||
const permalink = new Permalink('en', nonEnterpriseDefaultVersion, 'index.md', 'Hello World')
|
const permalink = new Permalink('en', nonEnterpriseDefaultVersion, 'index.md', 'Hello World')
|
||||||
expect(permalink.pageVersionTitle).toBe('Free, Pro, and Team')
|
expect(permalink.pageVersionTitle).toBe('Free, Pro, and Team')
|
||||||
expect(permalink.href).toBe(`/en/${nonEnterpriseDefaultVersion}`)
|
expect(permalink.href).toBe(`/en/${nonEnterpriseDefaultVersion}`)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('derives info for enterprise server versioned homepage', () => {
|
test('derives info for enterprise server versioned homepage', () => {
|
||||||
const permalink = new Permalink('en', `enterprise-server@${enterpriseServerReleases.latest}`, 'index.md', 'Hello World')
|
const permalink = new Permalink('en', `enterprise-server@${enterpriseServerReleases.latest}`, 'index.md', 'Hello World')
|
||||||
expect(permalink.pageVersionTitle).toBe(`Enterprise Server ${enterpriseServerReleases.latest}`)
|
expect(permalink.pageVersionTitle).toBe(`Enterprise Server ${enterpriseServerReleases.latest}`)
|
||||||
expect(permalink.href).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}`)
|
expect(permalink.href).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}`)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('derives info for GitHub.com homepage', () => {
|
test('derives info for GitHub.com homepage', () => {
|
||||||
const permalink = new Permalink('en', nonEnterpriseDefaultVersion, 'github/index.md', 'Hello World')
|
const permalink = new Permalink('en', nonEnterpriseDefaultVersion, 'github/index.md', 'Hello World')
|
||||||
expect(permalink.pageVersionTitle).toBe('Free, Pro, and Team')
|
expect(permalink.pageVersionTitle).toBe('Free, Pro, and Team')
|
||||||
expect(permalink.href).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
expect(permalink.href).toBe(`/en/${nonEnterpriseDefaultVersion}/github`)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('derives info for GitHub.com homepage', () => {
|
test('derives info for enterprise version of GitHub.com homepage', () => {
|
||||||
const permalink = new Permalink('en', 'dotcom', 'github/index.md', 'Hello World')
|
|
||||||
expect(permalink.pageVersionTitle).toBe('GitHub.com')
|
|
||||||
expect(permalink.href).toBe('/en/github')
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('derives info for enterprise version of GitHub.com homepage', () => {
|
|
||||||
const permalink = new Permalink('en', `enterprise-server@${enterpriseServerReleases.latest}`, 'github/index.md', 'Hello World')
|
const permalink = new Permalink('en', `enterprise-server@${enterpriseServerReleases.latest}`, 'github/index.md', 'Hello World')
|
||||||
expect(permalink.pageVersionTitle).toBe(`Enterprise Server ${enterpriseServerReleases.latest}`)
|
expect(permalink.pageVersionTitle).toBe(`Enterprise Server ${enterpriseServerReleases.latest}`)
|
||||||
expect(permalink.href).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}/github`)
|
expect(permalink.href).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}/github`)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('derives info for enterprise version of GitHub.com homepage', () => {
|
test('preserves input properties', () => {
|
||||||
const permalink = new Permalink('en', enterpriseServerReleases.latest, 'github/index.md', 'Hello World')
|
|
||||||
expect(permalink.pageVersionTitle).toBe(`Enterprise Server ${enterpriseServerReleases.latest}`)
|
|
||||||
expect(permalink.href).toBe(`/en/enterprise/${enterpriseServerReleases.latest}/user/github`)
|
|
||||||
})
|
|
||||||
|
|
||||||
// Note enterprise/index.md no longer exists after the latest versioning changes
|
|
||||||
testFeatureOldVersions('derives info for enterprise homepage', () => {
|
|
||||||
const permalink = new Permalink('en', enterpriseServerReleases.latest, 'enterprise/index.md', 'Hello World')
|
|
||||||
expect(permalink.pageVersionTitle).toBe(`Enterprise Server ${enterpriseServerReleases.latest}`)
|
|
||||||
expect(permalink.href).toBe(`/en/enterprise/${enterpriseServerReleases.latest}`)
|
|
||||||
})
|
|
||||||
|
|
||||||
testFeatureNewVersions('preserves input properties', () => {
|
|
||||||
const permalink = new Permalink('en', nonEnterpriseDefaultVersion, 'index.md', 'Hello World')
|
const permalink = new Permalink('en', nonEnterpriseDefaultVersion, 'index.md', 'Hello World')
|
||||||
expect(permalink.languageCode).toBe('en')
|
expect(permalink.languageCode).toBe('en')
|
||||||
expect(permalink.pageVersion).toBe(nonEnterpriseDefaultVersion)
|
expect(permalink.pageVersion).toBe(nonEnterpriseDefaultVersion)
|
||||||
expect(permalink.relativePath).toBe('index.md')
|
expect(permalink.relativePath).toBe('index.md')
|
||||||
expect(permalink.title).toBe('Hello World')
|
expect(permalink.title).toBe('Hello World')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('preserves input properties', () => {
|
|
||||||
const permalink = new Permalink('en', 'dotcom', 'index.md', 'Hello World')
|
|
||||||
expect(permalink.languageCode).toBe('en')
|
|
||||||
expect(permalink.pageVersion).toBe('dotcom')
|
|
||||||
expect(permalink.relativePath).toBe('index.md')
|
|
||||||
expect(permalink.title).toBe('Hello World')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const revalidator = require('revalidator')
|
const revalidator = require('revalidator')
|
||||||
const products = require('../../lib/all-products')
|
const products = require('../../lib/all-products')
|
||||||
const schema = require('../../lib/products-schema')
|
const schema = require('../../lib/products-schema')
|
||||||
const { getDOM, getJSON } = require('../helpers')
|
const { getDOM, getJSON } = require('../helpers')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
|
|
||||||
const testFeatureNewVersions = process.env.FEATURE_NEW_VERSIONS ? test : test.skip
|
|
||||||
const testFeatureOldVersions = process.env.FEATURE_NEW_VERSIONS ? test.skip : test
|
|
||||||
|
|
||||||
describe('products module', () => {
|
describe('products module', () => {
|
||||||
test('is an object with product ids as keys', () => {
|
test('is an object with product ids as keys', () => {
|
||||||
expect('github' in products).toBe(true)
|
expect('github' in products).toBe(true)
|
||||||
@@ -26,7 +22,7 @@ describe('products module', () => {
|
|||||||
describe('mobile-only products nav', () => {
|
describe('mobile-only products nav', () => {
|
||||||
jest.setTimeout(5 * 60 * 1000)
|
jest.setTimeout(5 * 60 * 1000)
|
||||||
|
|
||||||
testFeatureNewVersions('renders current product on various product pages for each product', async () => {
|
test('renders current product on various product pages for each product', async () => {
|
||||||
// Note the unversioned homepage at `/` does not have a product selected in the mobile dropdown
|
// Note the unversioned homepage at `/` does not have a product selected in the mobile dropdown
|
||||||
expect((await getDOM('/github'))('#current-product').text().trim()).toBe('GitHub.com')
|
expect((await getDOM('/github'))('#current-product').text().trim()).toBe('GitHub.com')
|
||||||
|
|
||||||
@@ -41,22 +37,6 @@ describe('mobile-only products nav', () => {
|
|||||||
// localized
|
// localized
|
||||||
expect((await getDOM('/ja/desktop'))('#current-product').text().trim()).toBe('GitHub Desktop')
|
expect((await getDOM('/ja/desktop'))('#current-product').text().trim()).toBe('GitHub Desktop')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('renders current product on various product pages for each product', async () => {
|
|
||||||
expect((await getDOM('/'))('#current-product').text().trim()).toBe('GitHub.com')
|
|
||||||
expect((await getDOM('/github'))('#current-product').text().trim()).toBe('GitHub.com')
|
|
||||||
|
|
||||||
// Enterprise user and server
|
|
||||||
expect((await getDOM('/en/enterprise/admin'))('#current-product').text().trim()).toBe('Enterprise Server')
|
|
||||||
expect((await getDOM('/en/enterprise/user/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address'))('#current-product').text().trim()).toBe('GitHub.com')
|
|
||||||
|
|
||||||
expect((await getDOM('/desktop'))('#current-product').text().trim()).toBe('GitHub Desktop')
|
|
||||||
|
|
||||||
expect((await getDOM('/actions'))('#current-product').text().trim()).toBe('GitHub Actions')
|
|
||||||
|
|
||||||
// localized
|
|
||||||
expect((await getDOM('/ja/desktop'))('#current-product').text().trim()).toBe('GitHub Desktop')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('products middleware', () => {
|
describe('products middleware', () => {
|
||||||
@@ -67,20 +47,13 @@ describe('products middleware', () => {
|
|||||||
expect(Array.isArray(products)).toBe(true)
|
expect(Array.isArray(products)).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('adds res.context.currentProduct string on homepage', async () => {
|
test('adds res.context.currentProduct string on homepage', async () => {
|
||||||
const currentProduct = await getJSON('/en?json=currentProduct')
|
const currentProduct = await getJSON('/en?json=currentProduct')
|
||||||
expect(currentProduct).toBe('homepage')
|
expect(currentProduct).toBe('homepage')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureNewVersions('adds res.context.currentProduct object', async () => {
|
test('adds res.context.currentProduct object', async () => {
|
||||||
const currentProduct = await getJSON(`/en/${nonEnterpriseDefaultVersion}/github?json=currentProduct`)
|
const currentProduct = await getJSON(`/en/${nonEnterpriseDefaultVersion}/github?json=currentProduct`)
|
||||||
expect(currentProduct).toBe('github')
|
expect(currentProduct).toBe('github')
|
||||||
})
|
})
|
||||||
|
|
||||||
testFeatureOldVersions('adds res.context.currentProduct object', async () => {
|
|
||||||
const currentProduct = await getJSON('/en?json=currentProduct')
|
|
||||||
expect('id' in currentProduct).toBe(true)
|
|
||||||
expect('name' in currentProduct).toBe(true)
|
|
||||||
expect('dir' in currentProduct).toBe(true)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const loadPages = require('../../lib/pages')
|
const loadPages = require('../../lib/pages')
|
||||||
const renderContent = require('../../lib/render-content')
|
const renderContent = require('../../lib/render-content')
|
||||||
const allVersions = Object.keys(require('../../lib/all-versions'))
|
const allVersions = Object.keys(require('../../lib/all-versions'))
|
||||||
const { oldVersions } = require('../../lib/old-versions-utils')
|
|
||||||
|
|
||||||
const versions = process.env.FEATURE_NEW_VERSIONS ? allVersions : oldVersions
|
|
||||||
|
|
||||||
describe('toc links', () => {
|
describe('toc links', () => {
|
||||||
jest.setTimeout(3 * 60 * 1000)
|
jest.setTimeout(3 * 60 * 1000)
|
||||||
@@ -17,7 +13,7 @@ describe('toc links', () => {
|
|||||||
|
|
||||||
const issues = []
|
const issues = []
|
||||||
|
|
||||||
for (const pageVersion of versions) {
|
for (const pageVersion of allVersions) {
|
||||||
for (const page of englishIndexPages) {
|
for (const page of englishIndexPages) {
|
||||||
// skip page if it doesn't have a permalink for the current product version
|
// skip page if it doesn't have a permalink for the current product version
|
||||||
if (!page.permalinks.some(permalink => permalink.pageVersion === pageVersion)) continue
|
if (!page.permalinks.some(permalink => permalink.pageVersion === pageVersion)) continue
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
require('../../lib/feature-flags')
|
|
||||||
const revalidator = require('revalidator')
|
const revalidator = require('revalidator')
|
||||||
const allVersions = require('../../lib/all-versions')
|
const allVersions = require('../../lib/all-versions')
|
||||||
const { latest } = require('../../lib/enterprise-server-releases')
|
const { latest } = require('../../lib/enterprise-server-releases')
|
||||||
@@ -6,9 +5,7 @@ const schema = require('../../lib/versions-schema')
|
|||||||
const { getJSON } = require('../helpers')
|
const { getJSON } = require('../helpers')
|
||||||
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
|
||||||
|
|
||||||
const describeIf = process.env.FEATURE_NEW_VERSIONS ? describe : describe.skip
|
describe('versions module', () => {
|
||||||
|
|
||||||
describeIf('versions module', () => {
|
|
||||||
test('is an object with versions as keys', () => {
|
test('is an object with versions as keys', () => {
|
||||||
expect(nonEnterpriseDefaultVersion in allVersions).toBe(true)
|
expect(nonEnterpriseDefaultVersion in allVersions).toBe(true)
|
||||||
expect(`enterprise-server@${latest}` in allVersions).toBe(true)
|
expect(`enterprise-server@${latest}` in allVersions).toBe(true)
|
||||||
@@ -23,7 +20,7 @@ describeIf('versions module', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describeIf('versions middleware', () => {
|
describe('versions middleware', () => {
|
||||||
jest.setTimeout(5 * 60 * 1000)
|
jest.setTimeout(5 * 60 * 1000)
|
||||||
|
|
||||||
test('adds res.context.allVersions object', async () => {
|
test('adds res.context.allVersions object', async () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user