From 4103893460a83ba021185179943de05c12d79fbe Mon Sep 17 00:00:00 2001 From: Grace Park Date: Mon, 5 Dec 2022 13:38:29 -0800 Subject: [PATCH] Add x-github-api-version header to curl code examples (#33203) --- components/lib/get-rest-code-samples.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/components/lib/get-rest-code-samples.ts b/components/lib/get-rest-code-samples.ts index fdbab790dc..7cd4473fb0 100644 --- a/components/lib/get-rest-code-samples.ts +++ b/components/lib/get-rest-code-samples.ts @@ -2,6 +2,8 @@ import { parseTemplate } from 'url-template' import { stringify } from 'javascript-stringify' import type { CodeSample, Operation } from '../rest/types' +import { useVersion } from 'components/hooks/useVersion' +import { useMainContext } from 'components/context/MainContext' type CodeExamples = Record /* @@ -15,6 +17,8 @@ type CodeExamples = Record -d '{"ref":"topic-branch","payload":"{ \"deploy\": \"migrate\" }","description":"Deploy request from hubot"}' */ export function getShellExample(operation: Operation, codeSample: CodeSample) { + const { currentVersion } = useVersion() + const { allVersions } = useMainContext() // This allows us to display custom media types like application/sarif+json const defaultAcceptHeader = codeSample?.response?.contentType?.includes('+json') ? codeSample.response.contentType @@ -52,9 +56,15 @@ export function getShellExample(operation: Operation, codeSample: CodeSample) { authHeader = '-u "api_key:your-password"' } + const apiVersionHeader = + allVersions[currentVersion].apiVersions.length > 0 && + allVersions[currentVersion].latestApiVersion + ? `\\\n -H "X-GitHub-Api-Version: ${allVersions[currentVersion].latestApiVersion}"` + : '' + const args = [ operation.verb !== 'get' && `-X ${operation.verb.toUpperCase()}`, - `-H "Accept: ${defaultAcceptHeader}" \\\n ${authHeader}`, + `-H "Accept: ${defaultAcceptHeader}" \\\n ${authHeader}${apiVersionHeader}`, `${operation.serverUrl}${requestPath}`, requestBodyParams, ].filter(Boolean)