Skip to content

Commit 4103893

Browse files
authored
Add x-github-api-version header to curl code examples (#33203)
1 parent 9613805 commit 4103893

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

components/lib/get-rest-code-samples.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import { parseTemplate } from 'url-template'
22
import { stringify } from 'javascript-stringify'
33

44
import type { CodeSample, Operation } from '../rest/types'
5+
import { useVersion } from 'components/hooks/useVersion'
6+
import { useMainContext } from 'components/context/MainContext'
57

68
type CodeExamples = Record<string, any>
79
/*
@@ -15,6 +17,8 @@ type CodeExamples = Record<string, any>
1517
-d '{"ref":"topic-branch","payload":"{ \"deploy\": \"migrate\" }","description":"Deploy request from hubot"}'
1618
*/
1719
export function getShellExample(operation: Operation, codeSample: CodeSample) {
20+
const { currentVersion } = useVersion()
21+
const { allVersions } = useMainContext()
1822
// This allows us to display custom media types like application/sarif+json
1923
const defaultAcceptHeader = codeSample?.response?.contentType?.includes('+json')
2024
? codeSample.response.contentType
@@ -52,9 +56,15 @@ export function getShellExample(operation: Operation, codeSample: CodeSample) {
5256
authHeader = '-u "api_key:your-password"'
5357
}
5458

59+
const apiVersionHeader =
60+
allVersions[currentVersion].apiVersions.length > 0 &&
61+
allVersions[currentVersion].latestApiVersion
62+
? `\\\n -H "X-GitHub-Api-Version: ${allVersions[currentVersion].latestApiVersion}"`
63+
: ''
64+
5565
const args = [
5666
operation.verb !== 'get' && `-X ${operation.verb.toUpperCase()}`,
57-
`-H "Accept: ${defaultAcceptHeader}" \\\n ${authHeader}`,
67+
`-H "Accept: ${defaultAcceptHeader}" \\\n ${authHeader}${apiVersionHeader}`,
5868
`${operation.serverUrl}${requestPath}`,
5969
requestBodyParams,
6070
].filter(Boolean)

0 commit comments

Comments
 (0)