/
auth.ts
34 lines (33 loc) · 1.09 KB
/
auth.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import {
PLATFORM_TYPE_GITEA,
PLATFORM_TYPE_GITHUB,
PLATFORM_TYPE_GITLAB,
} from '../../constants/platforms';
import { logger } from '../../logger';
import { create } from './util';
export default create({
options: {},
handler: (options, next) => {
if (options.auth || options.headers.authorization) {
return next(options);
}
if (options.token) {
logger.trace(
{ hostname: options.hostname },
'Converting token to Bearer auth'
);
if (
options.hostType === PLATFORM_TYPE_GITHUB ||
options.hostType === PLATFORM_TYPE_GITEA
) {
options.headers.authorization = `token ${options.token}`; // eslint-disable-line no-param-reassign
} else if (options.hostType === PLATFORM_TYPE_GITLAB) {
options.headers['Private-token'] = options.token; // eslint-disable-line no-param-reassign
} else {
options.headers.authorization = `Bearer ${options.token}`; // eslint-disable-line no-param-reassign
}
delete options.token; // eslint-disable-line no-param-reassign
}
return next(options);
},
});