Skip to content

Commit f359cfa

Browse files
committed
feat: add_oidc
1 parent 5c441a7 commit f359cfa

File tree

6 files changed

+78
-17
lines changed

6 files changed

+78
-17
lines changed

dist/index.js

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32148,6 +32148,16 @@ const getCommand = (filename, generalArgs, command) => {
3214832148

3214932149
;// CONCATENATED MODULE: ./src/buildExec.ts
3215032150
/* eslint-disable @typescript-eslint/no-explicit-any */
32151+
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
32152+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
32153+
return new (P || (P = Promise))(function (resolve, reject) {
32154+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32155+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
32156+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
32157+
step((generator = generator.apply(thisArg, _arguments || [])).next());
32158+
});
32159+
};
32160+
3215132161

3215232162

3215332163

@@ -32320,15 +32330,33 @@ const buildExecutionEnvironment = (token, envVars) => {
3232032330
}
3232132331
return uploadOptions;
3232232332
};
32323-
const buildExecutionOptions = (failCi, verbose) => {
32324-
const token = core.getInput('token');
32333+
const getToken = () => __awaiter(void 0, void 0, void 0, function* () {
32334+
let token = core.getInput('token');
32335+
let url = core.getInput('url');
32336+
const useOIDC = isTrue(core.getInput('use_oidc'));
32337+
if (useOIDC) {
32338+
if (!url) {
32339+
url = 'https://codecov.io';
32340+
}
32341+
try {
32342+
token = yield core.getIDToken(url);
32343+
return Promise.resolve(token);
32344+
}
32345+
catch (err) {
32346+
setFailure(`Codecov: Failed to get OIDC token with url: ${url}. ${err.message}`, true);
32347+
}
32348+
}
32349+
return token;
32350+
});
32351+
const buildExecutionOptions = (failCi, verbose) => __awaiter(void 0, void 0, void 0, function* () {
32352+
const token = yield getToken();
3232532353
const envVars = core.getInput('env_vars');
3232632354
const cleanedEnvVars = cleanEnvVars(envVars);
3232732355
const generalArgs = buildGeneralArgs(verbose);
3232832356
const { uploadExecArgs, uploadCommand } = buildUploadArgs(token, cleanedEnvVars, failCi);
3232932357
const executionEnvironment = buildExecutionEnvironment(token, cleanedEnvVars);
3233032358
return { generalArgs, uploadCommand, uploadExecArgs, executionEnvironment };
32331-
};
32359+
});
3233232360

3233332361

3233432362
;// CONCATENATED MODULE: external "node:child_process"
@@ -32342,7 +32370,7 @@ const external_node_path_namespaceObject = require("node:path");
3234232370
// EXTERNAL MODULE: ./node_modules/undici/index.js
3234332371
var undici = __nccwpck_require__(1773);
3234432372
;// CONCATENATED MODULE: ./src/validate.ts
32345-
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
32373+
var validate_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
3234632374
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3234732375
return new (P || (P = Promise))(function (resolve, reject) {
3234832376
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -32358,7 +32386,7 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
3235832386

3235932387

3236032388

32361-
const verify = (filename, platform, version, verbose, failCi) => __awaiter(void 0, void 0, void 0, function* () {
32389+
const verify = (filename, platform, version, verbose, failCi) => validate_awaiter(void 0, void 0, void 0, function* () {
3236232390
try {
3236332391
const uploaderName = getUploaderName(platform);
3236432392
// Get SHASUM and SHASUM signature files
@@ -32375,8 +32403,8 @@ const verify = (filename, platform, version, verbose, failCi) => __awaiter(void
3237532403
console.log(`Received SHA256SUM signature ${shaSig}`);
3237632404
}
3237732405
yield external_node_fs_namespaceObject.writeFileSync(external_node_path_namespaceObject.join(__dirname, `${uploaderName}.SHA256SUM.sig`), shaSig);
32378-
const validateSha = () => __awaiter(void 0, void 0, void 0, function* () {
32379-
const calculateHash = (filename) => __awaiter(void 0, void 0, void 0, function* () {
32406+
const validateSha = () => validate_awaiter(void 0, void 0, void 0, function* () {
32407+
const calculateHash = (filename) => validate_awaiter(void 0, void 0, void 0, function* () {
3238032408
const stream = external_node_fs_namespaceObject.createReadStream(filename);
3238132409
const uploaderSha = external_node_crypto_namespaceObject.createHash(`sha256`);
3238232410
stream.pipe(uploaderSha);
@@ -32394,7 +32422,7 @@ const verify = (filename, platform, version, verbose, failCi) => __awaiter(void
3239432422
`uploader hash: ${hash}, public hash: ${shasum}`, failCi);
3239532423
}
3239632424
});
32397-
const verifySignature = () => __awaiter(void 0, void 0, void 0, function* () {
32425+
const verifySignature = () => validate_awaiter(void 0, void 0, void 0, function* () {
3239832426
const args = [
3239932427
'--logger-fd',
3240032428
'1',
@@ -32409,7 +32437,7 @@ const verify = (filename, platform, version, verbose, failCi) => __awaiter(void
3240932437
setFailure(`Codecov: Error verifying gpg signature: ${err.message}`, failCi);
3241032438
}
3241132439
});
32412-
const importKey = () => __awaiter(void 0, void 0, void 0, function* () {
32440+
const importKey = () => validate_awaiter(void 0, void 0, void 0, function* () {
3241332441
const args = [
3241432442
'--logger-fd',
3241532443
'1',
@@ -32484,7 +32512,7 @@ var src_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argu
3248432512

3248532513
let failCi;
3248632514
const invokeCLI = (filename, failCi, verbose) => src_awaiter(void 0, void 0, void 0, function* () {
32487-
const { generalArgs, uploadCommand, uploadExecArgs, executionEnvironment } = buildExecutionOptions(failCi, verbose);
32515+
const { generalArgs, uploadCommand, uploadExecArgs, executionEnvironment } = yield buildExecutionOptions(failCi, verbose);
3248832516
const doUploadTestResults = () => src_awaiter(void 0, void 0, void 0, function* () {
3248932517
yield exec.exec(getCommand(filename, generalArgs, uploadCommand).join(' '), uploadExecArgs, executionEnvironment);
3249032518
});

dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

junit.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<testsuites name="jest tests" tests="2" failures="0" errors="0" time="1.051">
3+
<testsuite name="undefined" errors="0" failures="0" skipped="0" timestamp="2025-03-04T16:01:29" time="1.009" tests="2">
4+
<testcase classname=" test uncovered if" name=" test uncovered if" time="0.001">
5+
</testcase>
6+
<testcase classname=" fully covered" name=" fully covered" time="0">
7+
</testcase>
8+
</testsuite>
9+
</testsuites>

src/buildExec.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ describe('setting up cli invocation', () => {
6262
expect(uploaderVersion).toEqual('0.1.2');
6363
});
6464

65-
test('execution options', () => {
65+
test('execution options', async () => {
6666
const failCi = true;
6767
const verbose = false;
6868
const {generalArgs, uploadCommand, uploadExecArgs, executionEnvironment} =
69-
buildExecutionOptions(failCi, verbose);
69+
await buildExecutionOptions(failCi, verbose);
7070

7171
expect(uploadCommand).toEqual('do-upload');
7272

src/buildExec.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ import {
88
getPlatform,
99
getUploaderName,
1010
} from './helpers';
11+
import {
12+
setFailure,
13+
} from './helpers';
1114

1215

1316
const context = github.context;
@@ -203,14 +206,35 @@ const buildExecutionEnvironment = (token: string, envVars) => {
203206
return uploadOptions;
204207
};
205208

206-
const buildExecutionOptions = (failCi: boolean, verbose: boolean) => {
207-
const token = core.getInput('token');
209+
const getToken = async (): Promise<string> => {
210+
let token = core.getInput('token');
211+
let url = core.getInput('url');
212+
const useOIDC = isTrue(core.getInput('use_oidc'));
213+
if (useOIDC) {
214+
if (!url) {
215+
url = 'https://codecov.io';
216+
}
217+
try {
218+
token = await core.getIDToken(url);
219+
return Promise.resolve(token);
220+
} catch (err) {
221+
setFailure(
222+
`Codecov: Failed to get OIDC token with url: ${url}. ${err.message}`,
223+
true,
224+
);
225+
}
226+
}
227+
return token;
228+
};
229+
230+
const buildExecutionOptions = async (failCi: boolean, verbose: boolean) => {
231+
const token = await getToken();
208232
const envVars = core.getInput('env_vars');
209233
const cleanedEnvVars = cleanEnvVars(envVars);
210234

211235
const generalArgs = buildGeneralArgs(verbose);
212236
const {uploadExecArgs, uploadCommand} =
213-
buildUploadArgs(token, cleanedEnvVars, failCi);
237+
buildUploadArgs(token, cleanedEnvVars, failCi);
214238
const executionEnvironment = buildExecutionEnvironment(token, cleanedEnvVars);
215239

216240
return {generalArgs, uploadCommand, uploadExecArgs, executionEnvironment};

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const invokeCLI = async (
2727
verbose: boolean,
2828
) => {
2929
const {generalArgs, uploadCommand, uploadExecArgs, executionEnvironment} =
30-
buildExecutionOptions(failCi, verbose);
30+
await buildExecutionOptions(failCi, verbose);
3131

3232
const doUploadTestResults = async () => {
3333
await exec.exec(

0 commit comments

Comments
 (0)