Skip to content

Commit

Permalink
Merge pull request github#16775 from github/support-hardcoded-version…
Browse files Browse the repository at this point in the history
…s-in-links

Support hardcoded versions in links
  • Loading branch information
sarahs authored Dec 9, 2020
2 parents 9fef524 + 639e324 commit b807035
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
2 changes: 1 addition & 1 deletion content/rest/overview/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ curl -H 'Authorization: token my-oauth-token' https://api.github.com/user/repos

#### Calls to OAuth Authorizations API

If you're making [OAuth Authorization API](/enterprise-server@2.22/rest/reference/oauth-authorizations) calls to manage your OAuth app's authorizations or to generate access tokens, similar to this example:
If you're making [OAuth Authorization API](/enterprise-server/rest/reference/oauth-authorizations) calls to manage your OAuth app's authorizations or to generate access tokens, similar to this example:

```bash
curl -u my_username:my_password -X POST "https://api.github.com/authorizations" -d '{"scopes":["public_repo"], "note":"my token", "client_id":"my_client_id", "client_secret":"my_client_secret"}'
Expand Down
17 changes: 14 additions & 3 deletions lib/rewrite-local-links.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const externalRedirects = Object.keys(require('./redirects/external-sites'))
const pathUtils = require('./path-utils')
const assert = require('assert')
const nonEnterpriseDefaultVersion = require('./non-enterprise-default-version')
const supportedPlans = Object.values(require('./all-versions')).map(v => v.plan)

// Content authors write links like `/some/article/path`, but they need to be
// rewritten on the fly to match the current language and page version
Expand All @@ -24,11 +25,21 @@ function getNewHref (link, languageCode, version) {
// e.g. `/contact` should not be replaced with `/en/contact`
if (externalRedirects.includes(href)) return

let newHref

// If the link has a hardcoded plan name in it (e.g., /enterprise-server/rest/reference/oauth-authorizations),
// only rewrite it with a language code
if (supportedPlans.includes(href.split('/')[1])) {
newHref = pathUtils.getPathWithLanguage(href, languageCode)
}

// If link is dotcom-only, just get the language code
// Otherwise, get the versioned path with language code
const newHref = link.hasClass('dotcom-only')
? pathUtils.getVersionedPathWithLanguage(href, nonEnterpriseDefaultVersion, languageCode)
: pathUtils.getVersionedPathWithLanguage(href, version, languageCode)
if (!newHref) {
newHref = link.hasClass('dotcom-only')
? pathUtils.getVersionedPathWithLanguage(href, nonEnterpriseDefaultVersion, languageCode)
: pathUtils.getVersionedPathWithLanguage(href, version, languageCode)
}

if (href !== newHref) link.attr('href', newHref)
}

0 comments on commit b807035

Please sign in to comment.