diff --git a/__tests__/github.test.ts b/__tests__/github.test.ts index b98b6f7..900a7ed 100644 --- a/__tests__/github.test.ts +++ b/__tests__/github.test.ts @@ -17,6 +17,7 @@ import {describe, expect, jest, it, beforeEach, afterEach} from '@jest/globals'; import * as fs from 'fs'; import * as path from 'path'; +import * as core from '@actions/core'; import {GitHub} from '../src/github'; import {GitHubRepo} from '../src/types/github'; @@ -110,3 +111,33 @@ describe('actionsRuntimeToken', () => { expect(runtimeToken.iss).toEqual('vstoken.actions.githubusercontent.com'); }); }); + +describe('printActionsRuntimeToken', () => { + const originalEnv = process.env; + beforeEach(() => { + jest.resetModules(); + process.env = { + ...originalEnv + }; + }); + afterEach(() => { + process.env = originalEnv; + }); + it('empty', async () => { + const execSpy = jest.spyOn(core, 'info'); + process.env.ACTIONS_RUNTIME_TOKEN = ''; + GitHub.printActionsRuntimeToken(); + expect(execSpy).toHaveBeenCalledWith(`ACTIONS_RUNTIME_TOKEN not set`); + }); + it('prints ac', () => { + const execSpy = jest.spyOn(core, 'info'); + process.env.ACTIONS_RUNTIME_TOKEN = fs.readFileSync(path.join(__dirname, 'fixtures', 'runtimeToken.txt')).toString().trim(); + GitHub.printActionsRuntimeToken(); + expect(execSpy).toHaveBeenCalledWith(`[ + { + "Scope": "refs/heads/master", + "Permission": 3 + } +]`); + }); +}); diff --git a/src/github.ts b/src/github.ts index 232f6f4..5fa840a 100644 --- a/src/github.ts +++ b/src/github.ts @@ -15,6 +15,7 @@ */ import {GitHub as Octokit} from '@actions/github/lib/utils'; +import * as core from '@actions/core'; import * as github from '@actions/github'; import {Context} from '@actions/github/lib/context'; import jwt_decode from 'jwt-decode'; @@ -52,4 +53,13 @@ export class GitHub { const token = process.env['ACTIONS_RUNTIME_TOKEN'] || ''; return token ? jwt_decode(token) : {}; } + + public static async printActionsRuntimeToken() { + const actionsRuntimeToken = process.env['ACTIONS_RUNTIME_TOKEN']; + if (actionsRuntimeToken) { + core.info(JSON.stringify(JSON.parse(GitHub.actionsRuntimeToken.ac as string), undefined, 2)); + } else { + core.info(`ACTIONS_RUNTIME_TOKEN not set`); + } + } }