@actions/core 1.5.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -142,6 +142,11 @@ export interface AnnotationProperties {
142
142
  */
143
143
  title?: string
144
144
 
145
+ /**
146
+ * The name of the file for which the annotation should be created.
147
+ */
148
+ file?: string
149
+
145
150
  /**
146
151
  * The start line for the annotation.
147
152
  */
@@ -257,3 +262,51 @@ var pid = core.getState("pidToKill");
257
262
 
258
263
  process.kill(pid);
259
264
  ```
265
+
266
+ #### OIDC Token
267
+
268
+ You can use these methods to interact with the GitHub OIDC provider and get a JWT ID token which would help to get access token from third party cloud providers.
269
+
270
+ **Method Name**: getIDToken()
271
+
272
+ **Inputs**
273
+
274
+ audience : optional
275
+
276
+ **Outputs**
277
+
278
+ A [JWT](https://jwt.io/) ID Token
279
+
280
+ In action's `main.ts`:
281
+ ```js
282
+ const core = require('@actions/core');
283
+ async function getIDTokenAction(): Promise<void> {
284
+
285
+ const audience = core.getInput('audience', {required: false})
286
+
287
+ const id_token1 = await core.getIDToken() // ID Token with default audience
288
+ const id_token2 = await core.getIDToken(audience) // ID token with custom audience
289
+
290
+ // this id_token can be used to get access token from third party cloud providers
291
+ }
292
+ getIDTokenAction()
293
+ ```
294
+
295
+ In action's `actions.yml`:
296
+
297
+ ```yaml
298
+ name: 'GetIDToken'
299
+ description: 'Get ID token from Github OIDC provider'
300
+ inputs:
301
+ audience:
302
+ description: 'Audience for which the ID token is intended for'
303
+ required: false
304
+ outputs:
305
+ id_token1:
306
+ description: 'ID token obtained from OIDC provider'
307
+ id_token2:
308
+ description: 'ID token obtained from OIDC provider'
309
+ runs:
310
+ using: 'node12'
311
+ main: 'dist/index.js'
312
+ ```
package/lib/core.d.ts CHANGED
@@ -29,6 +29,10 @@ export interface AnnotationProperties {
29
29
  * A title for the annotation.
30
30
  */
31
31
  title?: string;
32
+ /**
33
+ * The path of the file for which the annotation should be created.
34
+ */
35
+ file?: string;
32
36
  /**
33
37
  * The start line for the annotation.
34
38
  */
@@ -179,3 +183,8 @@ export declare function saveState(name: string, value: any): void;
179
183
  * @returns string
180
184
  */
181
185
  export declare function getState(name: string): string;
186
+ export declare function getIDToken(aud?: string): Promise<string>;
187
+ /**
188
+ * Markdown summary exports
189
+ */
190
+ export { markdownSummary } from './markdown-summary';
package/lib/core.js CHANGED
@@ -28,12 +28,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
28
28
  });
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;
31
+ exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;
32
32
  const command_1 = require("./command");
33
33
  const file_command_1 = require("./file-command");
34
34
  const utils_1 = require("./utils");
35
35
  const os = __importStar(require("os"));
36
36
  const path = __importStar(require("path"));
37
+ const oidc_utils_1 = require("./oidc-utils");
37
38
  /**
38
39
  * The code to exit an action
39
40
  */
@@ -302,4 +303,15 @@ function getState(name) {
302
303
  return process.env[`STATE_${name}`] || '';
303
304
  }
304
305
  exports.getState = getState;
306
+ function getIDToken(aud) {
307
+ return __awaiter(this, void 0, void 0, function* () {
308
+ return yield oidc_utils_1.OidcClient.getIDToken(aud);
309
+ });
310
+ }
311
+ exports.getIDToken = getIDToken;
312
+ /**
313
+ * Markdown summary exports
314
+ */
315
+ var markdown_summary_1 = require("./markdown-summary");
316
+ Object.defineProperty(exports, "markdownSummary", { enumerable: true, get: function () { return markdown_summary_1.markdownSummary; } });
305
317
  //# sourceMappingURL=core.js.map
package/lib/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,198 @@
1
+ export declare const SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY";
2
+ export declare const SUMMARY_DOCS_URL = "https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-markdown-summary";
3
+ export declare type SummaryTableRow = (SummaryTableCell | string)[];
4
+ export interface SummaryTableCell {
5
+ /**
6
+ * Cell content
7
+ */
8
+ data: string;
9
+ /**
10
+ * Render cell as header
11
+ * (optional) default: false
12
+ */
13
+ header?: boolean;
14
+ /**
15
+ * Number of columns the cell extends
16
+ * (optional) default: '1'
17
+ */
18
+ colspan?: string;
19
+ /**
20
+ * Number of rows the cell extends
21
+ * (optional) default: '1'
22
+ */
23
+ rowspan?: string;
24
+ }
25
+ export interface SummaryImageOptions {
26
+ /**
27
+ * The width of the image in pixels. Must be an integer without a unit.
28
+ * (optional)
29
+ */
30
+ width?: string;
31
+ /**
32
+ * The height of the image in pixels. Must be an integer without a unit.
33
+ * (optional)
34
+ */
35
+ height?: string;
36
+ }
37
+ export interface SummaryWriteOptions {
38
+ /**
39
+ * Replace all existing content in summary file with buffer contents
40
+ * (optional) default: false
41
+ */
42
+ overwrite?: boolean;
43
+ }
44
+ declare class MarkdownSummary {
45
+ private _buffer;
46
+ private _filePath?;
47
+ constructor();
48
+ /**
49
+ * Finds the summary file path from the environment, rejects if env var is not found or file does not exist
50
+ * Also checks r/w permissions.
51
+ *
52
+ * @returns step summary file path
53
+ */
54
+ private filePath;
55
+ /**
56
+ * Wraps content in an HTML tag, adding any HTML attributes
57
+ *
58
+ * @param {string} tag HTML tag to wrap
59
+ * @param {string | null} content content within the tag
60
+ * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add
61
+ *
62
+ * @returns {string} content wrapped in HTML element
63
+ */
64
+ private wrap;
65
+ /**
66
+ * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.
67
+ *
68
+ * @param {SummaryWriteOptions} [options] (optional) options for write operation
69
+ *
70
+ * @returns {Promise<MarkdownSummary>} markdown summary instance
71
+ */
72
+ write(options?: SummaryWriteOptions): Promise<MarkdownSummary>;
73
+ /**
74
+ * Clears the summary buffer and wipes the summary file
75
+ *
76
+ * @returns {MarkdownSummary} markdown summary instance
77
+ */
78
+ clear(): Promise<MarkdownSummary>;
79
+ /**
80
+ * Returns the current summary buffer as a string
81
+ *
82
+ * @returns {string} string of summary buffer
83
+ */
84
+ stringify(): string;
85
+ /**
86
+ * If the summary buffer is empty
87
+ *
88
+ * @returns {boolen} true if the buffer is empty
89
+ */
90
+ isEmptyBuffer(): boolean;
91
+ /**
92
+ * Resets the summary buffer without writing to summary file
93
+ *
94
+ * @returns {MarkdownSummary} markdown summary instance
95
+ */
96
+ emptyBuffer(): MarkdownSummary;
97
+ /**
98
+ * Adds raw text to the summary buffer
99
+ *
100
+ * @param {string} text content to add
101
+ * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)
102
+ *
103
+ * @returns {MarkdownSummary} markdown summary instance
104
+ */
105
+ addRaw(text: string, addEOL?: boolean): MarkdownSummary;
106
+ /**
107
+ * Adds the operating system-specific end-of-line marker to the buffer
108
+ *
109
+ * @returns {MarkdownSummary} markdown summary instance
110
+ */
111
+ addEOL(): MarkdownSummary;
112
+ /**
113
+ * Adds an HTML codeblock to the summary buffer
114
+ *
115
+ * @param {string} code content to render within fenced code block
116
+ * @param {string} lang (optional) language to syntax highlight code
117
+ *
118
+ * @returns {MarkdownSummary} markdown summary instance
119
+ */
120
+ addCodeBlock(code: string, lang?: string): MarkdownSummary;
121
+ /**
122
+ * Adds an HTML list to the summary buffer
123
+ *
124
+ * @param {string[]} items list of items to render
125
+ * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)
126
+ *
127
+ * @returns {MarkdownSummary} markdown summary instance
128
+ */
129
+ addList(items: string[], ordered?: boolean): MarkdownSummary;
130
+ /**
131
+ * Adds an HTML table to the summary buffer
132
+ *
133
+ * @param {SummaryTableCell[]} rows table rows
134
+ *
135
+ * @returns {MarkdownSummary} markdown summary instance
136
+ */
137
+ addTable(rows: SummaryTableRow[]): MarkdownSummary;
138
+ /**
139
+ * Adds a collapsable HTML details element to the summary buffer
140
+ *
141
+ * @param {string} label text for the closed state
142
+ * @param {string} content collapsable content
143
+ *
144
+ * @returns {MarkdownSummary} markdown summary instance
145
+ */
146
+ addDetails(label: string, content: string): MarkdownSummary;
147
+ /**
148
+ * Adds an HTML image tag to the summary buffer
149
+ *
150
+ * @param {string} src path to the image you to embed
151
+ * @param {string} alt text description of the image
152
+ * @param {SummaryImageOptions} options (optional) addition image attributes
153
+ *
154
+ * @returns {MarkdownSummary} markdown summary instance
155
+ */
156
+ addImage(src: string, alt: string, options?: SummaryImageOptions): MarkdownSummary;
157
+ /**
158
+ * Adds an HTML section heading element
159
+ *
160
+ * @param {string} text heading text
161
+ * @param {number | string} [level=1] (optional) the heading level, default: 1
162
+ *
163
+ * @returns {MarkdownSummary} markdown summary instance
164
+ */
165
+ addHeading(text: string, level?: number | string): MarkdownSummary;
166
+ /**
167
+ * Adds an HTML thematic break (<hr>) to the summary buffer
168
+ *
169
+ * @returns {MarkdownSummary} markdown summary instance
170
+ */
171
+ addSeparator(): MarkdownSummary;
172
+ /**
173
+ * Adds an HTML line break (<br>) to the summary buffer
174
+ *
175
+ * @returns {MarkdownSummary} markdown summary instance
176
+ */
177
+ addBreak(): MarkdownSummary;
178
+ /**
179
+ * Adds an HTML blockquote to the summary buffer
180
+ *
181
+ * @param {string} text quote text
182
+ * @param {string} cite (optional) citation url
183
+ *
184
+ * @returns {MarkdownSummary} markdown summary instance
185
+ */
186
+ addQuote(text: string, cite?: string): MarkdownSummary;
187
+ /**
188
+ * Adds an HTML anchor tag to the summary buffer
189
+ *
190
+ * @param {string} text link text/content
191
+ * @param {string} href hyperlink
192
+ *
193
+ * @returns {MarkdownSummary} markdown summary instance
194
+ */
195
+ addLink(text: string, href: string): MarkdownSummary;
196
+ }
197
+ export declare const markdownSummary: MarkdownSummary;
198
+ export {};
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;
13
+ const os_1 = require("os");
14
+ const fs_1 = require("fs");
15
+ const { access, appendFile, writeFile } = fs_1.promises;
16
+ exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';
17
+ exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-markdown-summary';
18
+ class MarkdownSummary {
19
+ constructor() {
20
+ this._buffer = '';
21
+ }
22
+ /**
23
+ * Finds the summary file path from the environment, rejects if env var is not found or file does not exist
24
+ * Also checks r/w permissions.
25
+ *
26
+ * @returns step summary file path
27
+ */
28
+ filePath() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ if (this._filePath) {
31
+ return this._filePath;
32
+ }
33
+ const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];
34
+ if (!pathFromEnv) {
35
+ throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports markdown summaries.`);
36
+ }
37
+ try {
38
+ yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);
39
+ }
40
+ catch (_a) {
41
+ throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);
42
+ }
43
+ this._filePath = pathFromEnv;
44
+ return this._filePath;
45
+ });
46
+ }
47
+ /**
48
+ * Wraps content in an HTML tag, adding any HTML attributes
49
+ *
50
+ * @param {string} tag HTML tag to wrap
51
+ * @param {string | null} content content within the tag
52
+ * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add
53
+ *
54
+ * @returns {string} content wrapped in HTML element
55
+ */
56
+ wrap(tag, content, attrs = {}) {
57
+ const htmlAttrs = Object.entries(attrs)
58
+ .map(([key, value]) => ` ${key}="${value}"`)
59
+ .join('');
60
+ if (!content) {
61
+ return `<${tag}${htmlAttrs}>`;
62
+ }
63
+ return `<${tag}${htmlAttrs}>${content}</${tag}>`;
64
+ }
65
+ /**
66
+ * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.
67
+ *
68
+ * @param {SummaryWriteOptions} [options] (optional) options for write operation
69
+ *
70
+ * @returns {Promise<MarkdownSummary>} markdown summary instance
71
+ */
72
+ write(options) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);
75
+ const filePath = yield this.filePath();
76
+ const writeFunc = overwrite ? writeFile : appendFile;
77
+ yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });
78
+ return this.emptyBuffer();
79
+ });
80
+ }
81
+ /**
82
+ * Clears the summary buffer and wipes the summary file
83
+ *
84
+ * @returns {MarkdownSummary} markdown summary instance
85
+ */
86
+ clear() {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ return this.emptyBuffer().write({ overwrite: true });
89
+ });
90
+ }
91
+ /**
92
+ * Returns the current summary buffer as a string
93
+ *
94
+ * @returns {string} string of summary buffer
95
+ */
96
+ stringify() {
97
+ return this._buffer;
98
+ }
99
+ /**
100
+ * If the summary buffer is empty
101
+ *
102
+ * @returns {boolen} true if the buffer is empty
103
+ */
104
+ isEmptyBuffer() {
105
+ return this._buffer.length === 0;
106
+ }
107
+ /**
108
+ * Resets the summary buffer without writing to summary file
109
+ *
110
+ * @returns {MarkdownSummary} markdown summary instance
111
+ */
112
+ emptyBuffer() {
113
+ this._buffer = '';
114
+ return this;
115
+ }
116
+ /**
117
+ * Adds raw text to the summary buffer
118
+ *
119
+ * @param {string} text content to add
120
+ * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)
121
+ *
122
+ * @returns {MarkdownSummary} markdown summary instance
123
+ */
124
+ addRaw(text, addEOL = false) {
125
+ this._buffer += text;
126
+ return addEOL ? this.addEOL() : this;
127
+ }
128
+ /**
129
+ * Adds the operating system-specific end-of-line marker to the buffer
130
+ *
131
+ * @returns {MarkdownSummary} markdown summary instance
132
+ */
133
+ addEOL() {
134
+ return this.addRaw(os_1.EOL);
135
+ }
136
+ /**
137
+ * Adds an HTML codeblock to the summary buffer
138
+ *
139
+ * @param {string} code content to render within fenced code block
140
+ * @param {string} lang (optional) language to syntax highlight code
141
+ *
142
+ * @returns {MarkdownSummary} markdown summary instance
143
+ */
144
+ addCodeBlock(code, lang) {
145
+ const attrs = Object.assign({}, (lang && { lang }));
146
+ const element = this.wrap('pre', this.wrap('code', code), attrs);
147
+ return this.addRaw(element).addEOL();
148
+ }
149
+ /**
150
+ * Adds an HTML list to the summary buffer
151
+ *
152
+ * @param {string[]} items list of items to render
153
+ * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)
154
+ *
155
+ * @returns {MarkdownSummary} markdown summary instance
156
+ */
157
+ addList(items, ordered = false) {
158
+ const tag = ordered ? 'ol' : 'ul';
159
+ const listItems = items.map(item => this.wrap('li', item)).join('');
160
+ const element = this.wrap(tag, listItems);
161
+ return this.addRaw(element).addEOL();
162
+ }
163
+ /**
164
+ * Adds an HTML table to the summary buffer
165
+ *
166
+ * @param {SummaryTableCell[]} rows table rows
167
+ *
168
+ * @returns {MarkdownSummary} markdown summary instance
169
+ */
170
+ addTable(rows) {
171
+ const tableBody = rows
172
+ .map(row => {
173
+ const cells = row
174
+ .map(cell => {
175
+ if (typeof cell === 'string') {
176
+ return this.wrap('td', cell);
177
+ }
178
+ const { header, data, colspan, rowspan } = cell;
179
+ const tag = header ? 'th' : 'td';
180
+ const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));
181
+ return this.wrap(tag, data, attrs);
182
+ })
183
+ .join('');
184
+ return this.wrap('tr', cells);
185
+ })
186
+ .join('');
187
+ const element = this.wrap('table', tableBody);
188
+ return this.addRaw(element).addEOL();
189
+ }
190
+ /**
191
+ * Adds a collapsable HTML details element to the summary buffer
192
+ *
193
+ * @param {string} label text for the closed state
194
+ * @param {string} content collapsable content
195
+ *
196
+ * @returns {MarkdownSummary} markdown summary instance
197
+ */
198
+ addDetails(label, content) {
199
+ const element = this.wrap('details', this.wrap('summary', label) + content);
200
+ return this.addRaw(element).addEOL();
201
+ }
202
+ /**
203
+ * Adds an HTML image tag to the summary buffer
204
+ *
205
+ * @param {string} src path to the image you to embed
206
+ * @param {string} alt text description of the image
207
+ * @param {SummaryImageOptions} options (optional) addition image attributes
208
+ *
209
+ * @returns {MarkdownSummary} markdown summary instance
210
+ */
211
+ addImage(src, alt, options) {
212
+ const { width, height } = options || {};
213
+ const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));
214
+ const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));
215
+ return this.addRaw(element).addEOL();
216
+ }
217
+ /**
218
+ * Adds an HTML section heading element
219
+ *
220
+ * @param {string} text heading text
221
+ * @param {number | string} [level=1] (optional) the heading level, default: 1
222
+ *
223
+ * @returns {MarkdownSummary} markdown summary instance
224
+ */
225
+ addHeading(text, level) {
226
+ const tag = `h${level}`;
227
+ const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)
228
+ ? tag
229
+ : 'h1';
230
+ const element = this.wrap(allowedTag, text);
231
+ return this.addRaw(element).addEOL();
232
+ }
233
+ /**
234
+ * Adds an HTML thematic break (<hr>) to the summary buffer
235
+ *
236
+ * @returns {MarkdownSummary} markdown summary instance
237
+ */
238
+ addSeparator() {
239
+ const element = this.wrap('hr', null);
240
+ return this.addRaw(element).addEOL();
241
+ }
242
+ /**
243
+ * Adds an HTML line break (<br>) to the summary buffer
244
+ *
245
+ * @returns {MarkdownSummary} markdown summary instance
246
+ */
247
+ addBreak() {
248
+ const element = this.wrap('br', null);
249
+ return this.addRaw(element).addEOL();
250
+ }
251
+ /**
252
+ * Adds an HTML blockquote to the summary buffer
253
+ *
254
+ * @param {string} text quote text
255
+ * @param {string} cite (optional) citation url
256
+ *
257
+ * @returns {MarkdownSummary} markdown summary instance
258
+ */
259
+ addQuote(text, cite) {
260
+ const attrs = Object.assign({}, (cite && { cite }));
261
+ const element = this.wrap('blockquote', text, attrs);
262
+ return this.addRaw(element).addEOL();
263
+ }
264
+ /**
265
+ * Adds an HTML anchor tag to the summary buffer
266
+ *
267
+ * @param {string} text link text/content
268
+ * @param {string} href hyperlink
269
+ *
270
+ * @returns {MarkdownSummary} markdown summary instance
271
+ */
272
+ addLink(text, href) {
273
+ const element = this.wrap('a', text, { href });
274
+ return this.addRaw(element).addEOL();
275
+ }
276
+ }
277
+ // singleton export
278
+ exports.markdownSummary = new MarkdownSummary();
279
+ //# sourceMappingURL=markdown-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-summary.js","sourceRoot":"","sources":["../src/markdown-summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class OidcClient {
2
+ private static createHttpClient;
3
+ private static getRequestToken;
4
+ private static getIDTokenUrl;
5
+ private static getCall;
6
+ static getIDToken(audience?: string): Promise<string>;
7
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.OidcClient = void 0;
13
+ const http_client_1 = require("@actions/http-client");
14
+ const auth_1 = require("@actions/http-client/auth");
15
+ const core_1 = require("./core");
16
+ class OidcClient {
17
+ static createHttpClient(allowRetry = true, maxRetry = 10) {
18
+ const requestOptions = {
19
+ allowRetries: allowRetry,
20
+ maxRetries: maxRetry
21
+ };
22
+ return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);
23
+ }
24
+ static getRequestToken() {
25
+ const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];
26
+ if (!token) {
27
+ throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');
28
+ }
29
+ return token;
30
+ }
31
+ static getIDTokenUrl() {
32
+ const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];
33
+ if (!runtimeUrl) {
34
+ throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');
35
+ }
36
+ return runtimeUrl;
37
+ }
38
+ static getCall(id_token_url) {
39
+ var _a;
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const httpclient = OidcClient.createHttpClient();
42
+ const res = yield httpclient
43
+ .getJson(id_token_url)
44
+ .catch(error => {
45
+ throw new Error(`Failed to get ID Token. \n
46
+ Error Code : ${error.statusCode}\n
47
+ Error Message: ${error.result.message}`);
48
+ });
49
+ const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;
50
+ if (!id_token) {
51
+ throw new Error('Response json body do not have ID Token field');
52
+ }
53
+ return id_token;
54
+ });
55
+ }
56
+ static getIDToken(audience) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ try {
59
+ // New ID Token is requested from action service
60
+ let id_token_url = OidcClient.getIDTokenUrl();
61
+ if (audience) {
62
+ const encodedAudience = encodeURIComponent(audience);
63
+ id_token_url = `${id_token_url}&audience=${encodedAudience}`;
64
+ }
65
+ core_1.debug(`ID token url is ${id_token_url}`);
66
+ const id_token = yield OidcClient.getCall(id_token_url);
67
+ core_1.setSecret(id_token);
68
+ return id_token;
69
+ }
70
+ catch (error) {
71
+ throw new Error(`Error message: ${error.message}`);
72
+ }
73
+ });
74
+ }
75
+ }
76
+ exports.OidcClient = OidcClient;
77
+ //# sourceMappingURL=oidc-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc-utils.js","sourceRoot":"","sources":["../src/oidc-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,sDAA+C;AAC/C,oDAAiE;AACjE,iCAAuC;AAKvC,MAAa,UAAU;IACb,MAAM,CAAC,gBAAgB,CAC7B,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,EAAE;QAEb,MAAM,cAAc,GAAoB;YACtC,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,QAAQ;SACrB,CAAA;QAED,OAAO,IAAI,wBAAU,CACnB,qBAAqB,EACrB,CAAC,IAAI,8BAAuB,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,EAC3D,cAAc,CACf,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,eAAe;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;QAC3D,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAA;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,MAAM,CAAC,aAAa;QAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC9D,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,MAAM,CAAO,OAAO,CAAC,YAAoB;;;YAC/C,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAA;YAEhD,MAAM,GAAG,GAAG,MAAM,UAAU;iBACzB,OAAO,CAAgB,YAAY,CAAC;iBACpC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,MAAM,IAAI,KAAK,CACb;uBACa,KAAK,CAAC,UAAU;yBACd,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CACtC,CAAA;YACH,CAAC,CAAC,CAAA;YAEJ,MAAM,QAAQ,SAAG,GAAG,CAAC,MAAM,0CAAE,KAAK,CAAA;YAClC,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;aACjE;YACD,OAAO,QAAQ,CAAA;;KAChB;IAED,MAAM,CAAO,UAAU,CAAC,QAAiB;;YACvC,IAAI;gBACF,gDAAgD;gBAChD,IAAI,YAAY,GAAW,UAAU,CAAC,aAAa,EAAE,CAAA;gBACrD,IAAI,QAAQ,EAAE;oBACZ,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;oBACpD,YAAY,GAAG,GAAG,YAAY,aAAa,eAAe,EAAE,CAAA;iBAC7D;gBAED,YAAK,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAA;gBAExC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;gBACvD,gBAAS,CAAC,QAAQ,CAAC,CAAA;gBACnB,OAAO,QAAQ,CAAA;aAChB;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;aACnD;QACH,CAAC;KAAA;CACF;AAzED,gCAyEC"}
package/lib/utils.js CHANGED
@@ -29,6 +29,7 @@ function toCommandProperties(annotationProperties) {
29
29
  }
30
30
  return {
31
31
  title: annotationProperties.title,
32
+ file: annotationProperties.file,
32
33
  line: annotationProperties.startLine,
33
34
  endLine: annotationProperties.endLine,
34
35
  col: annotationProperties.startColumn,
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,uDAAuD;;;AAKvD;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAU;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACzC,OAAO,EAAE,CAAA;KACV;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE;QAC/D,OAAO,KAAe,CAAA;KACvB;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAPD,wCAOC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,oBAA0C;IAE1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE;QAC7C,OAAO,EAAE,CAAA;KACV;IAED,OAAO;QACL,KAAK,EAAE,oBAAoB,CAAC,KAAK;QACjC,IAAI,EAAE,oBAAoB,CAAC,SAAS;QACpC,OAAO,EAAE,oBAAoB,CAAC,OAAO;QACrC,GAAG,EAAE,oBAAoB,CAAC,WAAW;QACrC,SAAS,EAAE,oBAAoB,CAAC,SAAS;KAC1C,CAAA;AACH,CAAC;AAdD,kDAcC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,uDAAuD;;;AAKvD;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAU;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACzC,OAAO,EAAE,CAAA;KACV;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE;QAC/D,OAAO,KAAe,CAAA;KACvB;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAPD,wCAOC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,oBAA0C;IAE1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE;QAC7C,OAAO,EAAE,CAAA;KACV;IAED,OAAO;QACL,KAAK,EAAE,oBAAoB,CAAC,KAAK;QACjC,IAAI,EAAE,oBAAoB,CAAC,IAAI;QAC/B,IAAI,EAAE,oBAAoB,CAAC,SAAS;QACpC,OAAO,EAAE,oBAAoB,CAAC,OAAO;QACrC,GAAG,EAAE,oBAAoB,CAAC,WAAW;QACrC,SAAS,EAAE,oBAAoB,CAAC,SAAS;KAC1C,CAAA;AACH,CAAC;AAfD,kDAeC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actions/core",
3
- "version": "1.5.0",
3
+ "version": "1.7.0",
4
4
  "description": "Actions core lib",
5
5
  "keywords": [
6
6
  "github",
@@ -35,6 +35,9 @@
35
35
  "bugs": {
36
36
  "url": "https://github.com/actions/toolkit/issues"
37
37
  },
38
+ "dependencies": {
39
+ "@actions/http-client": "^1.0.11"
40
+ },
38
41
  "devDependencies": {
39
42
  "@types/node": "^12.0.2"
40
43
  }