Skip to content

Commit 9426b8a

Browse files
renovate[bot]renovate-botfelixfbecker
authored
fix(deps): update dependency got to v10 (#89)
* fix(deps): update dependency got to v10 * chore: migrate Co-authored-by: Renovate Bot <[email protected]> Co-authored-by: Felix Becker <[email protected]>
1 parent e62372f commit 9426b8a

File tree

7 files changed

+230
-158
lines changed

7 files changed

+230
-158
lines changed

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848
"chalk": "^2.4.1",
4949
"delay": "^4.3.0",
5050
"execa": "^4.0.0",
51-
"got": "^9.6.0",
5251
"inquirer": "^7.1.0",
52+
"got": "^10.7.0",
5353
"js-yaml": "^3.13.1",
5454
"mkdirp-promise": "^5.0.1",
5555
"mz": "^2.7.0",
@@ -63,7 +63,6 @@
6363
"@sourcegraph/prettierrc": "^3.0.3",
6464
"@sourcegraph/tsconfig": "^4.0.1",
6565
"@types/execa": "0.9.0",
66-
"@types/got": "9.6.9",
6766
"@types/inquirer": "6.5.0",
6867
"@types/js-yaml": "3.12.2",
6968
"@types/mkdirp-promise": "5.0.0",

src/buildkite.ts

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
1-
import got, { GotInstance, GotJSONFn } from 'got'
1+
import got, { Got, HTTPError } from 'got'
22
import * as yaml from 'js-yaml'
33
import { exists, writeFile } from 'mz/fs'
44
import { GitHubClient } from './github'
55

6-
export type BuildkiteClient = GotInstance<GotJSONFn>
6+
export type BuildkiteClient = Got
77

88
export const createBuildkiteClient = ({ token }: { token: string }): BuildkiteClient =>
99
got.extend({
10-
baseUrl: 'https://api.buildkite.com/v2/',
11-
json: true,
10+
prefixUrl: 'https://api.buildkite.com/v2/',
1211
headers: {
1312
Authorization: 'Bearer ' + token,
1413
},
1514
})
1615

16+
interface BuildkitePipeline {
17+
provider: { webhook_url: string }
18+
badge_url: string
19+
web_url: string
20+
}
21+
1722
export async function initBuildkite({
1823
hasTests,
1924
repoName,
@@ -73,24 +78,25 @@ export async function initBuildkite({
7378
},
7479
}
7580

76-
let pipeline: { provider: { webhook_url: string }; badge_url: string; web_url: string }
81+
let pipeline: BuildkitePipeline
7782
try {
78-
pipeline = (
79-
await buildkiteClient.post('organizations/sourcegraph/pipelines', {
80-
body: buildkitePipeline,
81-
json: true,
82-
})
83-
).body
83+
pipeline = await buildkiteClient.post<BuildkitePipeline>('organizations/sourcegraph/pipelines', {
84+
json: buildkitePipeline,
85+
responseType: 'json',
86+
resolveBodyOnly: true,
87+
})
8488
} catch (err) {
8589
if (
86-
err.error &&
87-
err.error.errors &&
88-
err.error.errors[0] &&
89-
err.error.errors[0].field === 'name' &&
90-
err.error.errors[0].code === 'already_exists'
90+
err instanceof HTTPError &&
91+
(err.response.body as any)?.errors?.some?.(
92+
(err: any) => err?.field === 'name' && err?.code === 'already_exists'
93+
)
9194
) {
9295
console.log(`Buildkite pipeline "${repoName}" already exists, skipping creation`)
93-
pipeline = (await buildkiteClient.get(`organizations/sourcegraph/pipelines/${repoName}`)).body
96+
pipeline = await buildkiteClient.get<BuildkitePipeline>(`organizations/sourcegraph/pipelines/${repoName}`, {
97+
responseType: 'json',
98+
resolveBodyOnly: true,
99+
})
94100
} else {
95101
throw err
96102
}
@@ -99,7 +105,7 @@ export async function initBuildkite({
99105
console.log('🔗 Creating GitHub webhook for pipeline')
100106
try {
101107
await githubClient.post(`/repos/sourcegraph/${repoName}/hooks`, {
102-
body: {
108+
json: {
103109
name: 'web',
104110
events: ['push', 'pull_request', 'deployment'],
105111
config: {
@@ -110,9 +116,10 @@ export async function initBuildkite({
110116
})
111117
} catch (err) {
112118
if (
113-
err.error &&
114-
Array.isArray(err.error.errors) &&
115-
err.error.errors.some((err: any) => /hook already exists/i.test(err.message))
119+
err instanceof HTTPError &&
120+
(err.response.body as any)?.errors?.some?.(
121+
(err: any) => typeof err?.message === 'string' && /hook already exists/i.test(err.message)
122+
)
116123
) {
117124
console.log('Webhook already exists')
118125
} else {
@@ -123,7 +130,7 @@ export async function initBuildkite({
123130
console.log('🔐 Granting Buildkite team pull access to repo')
124131
// buildkite team, see https://api.github.com/orgs/sourcegraph/teams
125132
await githubClient.put(`/teams/2444623/repos/sourcegraph/${repoName}`, {
126-
body: {
133+
json: {
127134
permission: 'pull',
128135
},
129136
})

src/cli.ts

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { createTravisClient, initTravis } from './travis'
1515
import { JsonSchemaForTheTypeScriptCompilersConfigurationFile } from './tsconfig-schema'
1616
import { JSONSchemaForESLintConfigurationFiles } from './eslintrc-schema'
1717
import mkdirp from 'mkdirp-promise'
18+
import { HTTPError } from 'got'
1819

1920
const createCLIError = (message: string): Error => Object.assign(new Error(message), { showStack: false })
2021

@@ -99,7 +100,7 @@ async function main(): Promise<void> {
99100
repoName = await prompt.input({ message: 'Repository name', default: repoName })
100101
try {
101102
await githubClient.post('orgs/sourcegraph/repos', {
102-
body: {
103+
json: {
103104
name: repoName,
104105
private: visibility === Visibility.Private,
105106
description,
@@ -111,11 +112,13 @@ async function main(): Promise<void> {
111112
console.log(`📘 Created https://github.com/sourcegraph/${repoName}`)
112113
} catch (err) {
113114
if (
114-
err.error &&
115-
Array.isArray(err.error.errors) &&
116-
err.error.errors.some(
115+
err instanceof HTTPError &&
116+
(err.response.body as any)?.errors?.some?.(
117117
(err: any) =>
118-
err.resource === 'Repository' && err.field === 'name' && /already exists/i.test(err.message)
118+
err?.resource === 'Repository' &&
119+
err?.field === 'name' &&
120+
typeof err?.message === 'string' &&
121+
/already exists/i.test(err.message)
119122
)
120123
) {
121124
console.log(
@@ -132,7 +135,7 @@ async function main(): Promise<void> {
132135
console.log('🔑 Giving all FTTs admin access')
133136
// FTTs, see https://api.github.com/orgs/sourcegraph/teams
134137
await githubClient.put(`/teams/626894/repos/sourcegraph/${repoName}`, {
135-
body: {
138+
json: {
136139
permission: 'admin',
137140
},
138141
})
@@ -148,9 +151,12 @@ async function main(): Promise<void> {
148151
})
149152
if (licenseName !== 'UNLICENSED') {
150153
console.log('📄 Adding LICENSE')
151-
const license = (await githubClient.get(`licenses/${licenseName}`)).body
154+
const license = await githubClient.get<{ body: string }>(`licenses/${licenseName}`, {
155+
responseType: 'json',
156+
resolveBodyOnly: true,
157+
})
152158
const licenseText = license.body
153-
.replace(/\[year\]/g, new Date().getFullYear())
159+
.replace(/\[year\]/g, new Date().getFullYear().toString())
154160
.replace(/\[fullname\]/g, 'Sourcegraph')
155161
await writeFile('LICENSE', licenseText)
156162
}
@@ -352,7 +358,10 @@ async function main(): Promise<void> {
352358
}
353359
354360
console.log('🔑 Fetching Codecov repository tokens')
355-
const codecovRepo: { repo: CodecovRepo } = (await codecovClient.get(`gh/sourcegraph/${repoName}`)).body
361+
const codecovRepo = await codecovClient.get<{ repo: CodecovRepo }>(`gh/sourcegraph/${repoName}`, {
362+
responseType: 'json',
363+
resolveBodyOnly: true,
364+
})
356365
if (!codecovRepo.repo || !codecovRepo.repo.upload_token) {
357366
throw Object.assign(
358367
new Error(`No Codecov upload token returned by Codecov for https://codecov.io/gh/sourcegraph/${repoName}`),

src/codecov.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import got, { GotInstance, GotJSONFn } from 'got'
1+
import got, { Got } from 'got'
22

3-
export type CodecovClient = GotInstance<GotJSONFn>
3+
export type CodecovClient = Got
44

55
export interface CodecovRepo {
66
upload_token: string
@@ -9,11 +9,12 @@ export interface CodecovRepo {
99

1010
export const createCodecovClient = ({ token }: { token: string }): CodecovClient =>
1111
got.extend({
12-
baseUrl: 'https://codecov.io/api/',
13-
json: true,
12+
prefixUrl: 'https://codecov.io/api/',
1413
headers: {
1514
Authorization: 'token ' + token,
1615
},
16+
responseType: 'json',
17+
resolveBodyOnly: true,
1718
})
1819

1920
export const getCodecovBadge = ({

src/github.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1-
import got, { GotInstance, GotJSONFn } from 'got'
1+
import got, { Got } from 'got'
22
import * as prompt from './prompt'
33

4-
export type GitHubClient = GotInstance<GotJSONFn>
4+
export type GitHubClient = Got
55

66
export const createGitHubClient = ({ token }: { token: string }): GitHubClient =>
77
got.extend({
8-
baseUrl: 'https://api.github.com/',
9-
json: true,
8+
prefixUrl: 'https://api.github.com/',
109
headers: {
1110
Authorization: 'Bearer ' + token,
1211
'User-Agent': 'NodeJS',
1312
},
13+
responseType: 'json',
14+
resolveBodyOnly: true,
1415
})
1516

1617
export async function createSourcegraphBotGitHubToken({
@@ -26,17 +27,18 @@ export async function createSourcegraphBotGitHubToken({
2627
const password = await prompt.password('@sourcegraph-bot GitHub password')
2728
const otp = await prompt.input('@sourcegraph-bot GitHub 2FA code')
2829

29-
const response = await githubClient.post('authorizations', {
30+
const response = await githubClient.post<{ token: string }>('authorizations', {
3031
headers: {
3132
Authorization: 'Basic ' + Buffer.from('sourcegraph-bot:' + password).toString('base64'),
3233
'X-GitHub-OTP': otp,
3334
},
34-
json: true,
35-
body: {
35+
json: {
3636
note: `semantic-release Travis CI for repo ${repoName}`,
3737
scopes: ['repo', 'read:org', 'user:email', 'repo_deployment', 'repo:status', 'write:repo_hook'],
3838
},
39+
responseType: 'json',
40+
resolveBodyOnly: true,
3941
})
4042
console.log('🔑 Created GitHub token for @sourcegraph-bot')
41-
return response.body.token
43+
return response.token
4244
}

src/travis.ts

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
import delay from 'delay'
2-
import got, { GotInstance, GotJSONFn } from 'got'
2+
import got, { Got, HTTPError } from 'got'
33
import * as yaml from 'js-yaml'
44
import { exists, writeFile } from 'mz/fs'
55
import { createSourcegraphBotGitHubToken, GitHubClient } from './github'
66
import { createSourcegraphBotNpmToken } from './npm'
77
import { JsonSchemaForTravisCiConfigurationFiles } from './travis-schema'
88

9-
export type TravisClient = GotInstance<GotJSONFn>
9+
export type TravisClient = Got
1010

1111
export const createTravisClient = ({ token }: { token: string }): TravisClient =>
1212
got.extend({
13-
baseUrl: 'https://api.travis-ci.org/',
14-
json: true,
13+
prefixUrl: 'https://api.travis-ci.org/',
1514
headers: {
1615
Authorization: 'token ' + token,
1716
'Travis-API-Version': '3',
@@ -32,8 +31,7 @@ const createTravisEnvVar = async ({
3231
travisClient: TravisClient
3332
}): Promise<void> => {
3433
await travisClient.post(`/repo/sourcegraph%2F${repoName}/env_vars`, {
35-
json: true,
36-
body: {
34+
json: {
3735
'env_var.name': name,
3836
'env_var.value': value,
3937
'env_var.public': false,
@@ -53,8 +51,14 @@ interface TravisUser {
5351
synced_at: string
5452
}
5553

54+
interface TravisEnvVarsResult {
55+
env_vars: {
56+
name: string
57+
}[]
58+
}
59+
5660
const getCurrentTravisUser = async ({ travisClient }: { travisClient: TravisClient }): Promise<TravisUser> =>
57-
(await travisClient.get('user')).body
61+
travisClient.get<TravisUser>('user', { responseType: 'json', resolveBodyOnly: true })
5862

5963
export async function initTravis({
6064
hasTests,
@@ -128,22 +132,25 @@ export async function initTravis({
128132
await travisClient.post(`/repo/sourcegraph%2F${repoName}/activate`)
129133
break
130134
} catch (err) {
131-
if (err.status !== 404) {
135+
if (!(err instanceof HTTPError) || err.response.statusCode !== 404) {
132136
throw err
133137
}
134138
}
135139
}
136140

137-
const envVars = (await travisClient.get(`/repo/sourcegraph%2F${repoName}/env_vars`)).body
138-
if (envVars.env_vars.some((envVar: any) => envVar.name === 'NPM_TOKEN')) {
141+
const envVars = await travisClient.get<TravisEnvVarsResult>(`/repo/sourcegraph%2F${repoName}/env_vars`, {
142+
responseType: 'json',
143+
resolveBodyOnly: true,
144+
})
145+
if (envVars.env_vars.some(envVar => envVar.name === 'NPM_TOKEN')) {
139146
console.log('🔑 NPM_TOKEN already set in Travis, skipping creation')
140147
} else {
141148
const npmToken = await createSourcegraphBotNpmToken()
142149
console.log('🔑 Setting NPM_TOKEN env var in Travis')
143150
await createTravisEnvVar({ repoName, name: 'NPM_TOKEN', value: npmToken, branch: 'master', travisClient })
144151
}
145152

146-
if (envVars.env_vars.some((envVar: any) => envVar.name === 'GITHUB_TOKEN')) {
153+
if (envVars.env_vars.some(envVar => envVar.name === 'GITHUB_TOKEN')) {
147154
console.log('🔑 GITHUB_TOKEN already set in Travis, skipping creation')
148155
} else {
149156
const githubToken = await createSourcegraphBotGitHubToken({ repoName, githubClient })

0 commit comments

Comments
 (0)