@@ -2,6 +2,8 @@ import { parseTemplate } from 'url-template'
2
2
import { stringify } from 'javascript-stringify'
3
3
4
4
import type { CodeSample , Operation } from '../rest/types'
5
+ import { useVersion } from 'components/hooks/useVersion'
6
+ import { useMainContext } from 'components/context/MainContext'
5
7
6
8
type CodeExamples = Record < string , any >
7
9
/*
@@ -15,6 +17,8 @@ type CodeExamples = Record<string, any>
15
17
-d '{"ref":"topic-branch","payload":"{ \"deploy\": \"migrate\" }","description":"Deploy request from hubot" }'
16
18
*/
17
19
export function getShellExample ( operation : Operation , codeSample : CodeSample ) {
20
+ const { currentVersion } = useVersion ( )
21
+ const { allVersions } = useMainContext ( )
18
22
// This allows us to display custom media types like application/sarif+json
19
23
const defaultAcceptHeader = codeSample ?. response ?. contentType ?. includes ( '+json' )
20
24
? codeSample . response . contentType
@@ -52,9 +56,15 @@ export function getShellExample(operation: Operation, codeSample: CodeSample) {
52
56
authHeader = '-u "api_key:your-password"'
53
57
}
54
58
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
+
55
65
const args = [
56
66
operation . verb !== 'get' && `-X ${ operation . verb . toUpperCase ( ) } ` ,
57
- `-H "Accept: ${ defaultAcceptHeader } " \\\n ${ authHeader } ` ,
67
+ `-H "Accept: ${ defaultAcceptHeader } " \\\n ${ authHeader } ${ apiVersionHeader } ` ,
58
68
`${ operation . serverUrl } ${ requestPath } ` ,
59
69
requestBodyParams ,
60
70
] . filter ( Boolean )
0 commit comments