Uh oh!
There was an error while loading. Please reload this page.
feat: @actions/core extensions for markdown summary - #1014
Conversation
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| * | ||
| * @returns {Promise<MarkdownSummary>} markdown summary instance | ||
| */ | ||
| async write(overwrite = false): Promise<MarkdownSummary> { |
There was a problem hiding this comment.
question: Is the write(overwrite: boolean) pattern used elsewhere in the toolkit? Did you consider write(options: { overwrite: boolean }) to leave room for future options?
There was a problem hiding this comment.
I don't believe it's an existing pattern. I do like the idea of having an options object for extensibility. And I think it'll improve readability as well, ie: write(true) vs write({overwrite: true}). I'll make the changes, thanks for the suggestion!
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) ([source](https://github.com/actions/toolkit/tree/HEAD/packages/core)) | [`1.10.0` → `1.11.1`](https://renovatebot.com/diffs/npm/@actions%2fcore/1.10.0/1.11.1) |  |  | --- ### Release Notes <details> <summary>actions/toolkit (@​actions/core)</summary> ### [`v1.11.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1111) - Fix uses of `crypto.randomUUID` on Node 18 and earlier [#​1842](actions/toolkit#1842) ##### 1.11.0 - Add platform info utilities [#​1551](actions/toolkit#1551) - Remove dependency on `uuid` package [#​1824](actions/toolkit#1824) ##### 1.10.1 - Fix error message reference in oidc utils [#​1511](actions/toolkit#1511) ##### 1.10.0 - `saveState` and `setOutput` now use environment files if available [#​1178](actions/toolkit#1178) - `getMultilineInput` now correctly trims whitespace by default [#​1185](actions/toolkit#1185) ##### 1.9.1 - Randomize delimiter when calling `core.exportVariable` ##### 1.9.0 - Added `toPosixPath`, `toWin32Path` and `toPlatformPath` utilities [#​1102](actions/toolkit#1102) ##### 1.8.2 - Update to v2.0.1 of `@actions/http-client` [#​1087](actions/toolkit#1087) ##### 1.8.1 - Update to v2.0.0 of `@actions/http-client` ##### 1.8.0 - Deprecate `markdownSummary` extension export in favor of `summary` - [#​1072](actions/toolkit#1072) - [#​1073](actions/toolkit#1073) ##### 1.7.0 - [Added `markdownSummary` extension](actions/toolkit#1014) ##### 1.6.0 - [Added OIDC Client function `getIDToken`](actions/toolkit#919) - [Added `file` parameter to `AnnotationProperties`](actions/toolkit#896) ##### 1.5.0 - [Added support for notice annotations and more annotation fields](actions/toolkit#855) ##### 1.4.0 - [Added the `getMultilineInput` function](actions/toolkit#829) ##### 1.3.0 - [Added the trimWhitespace option to getInput](actions/toolkit#802) - [Added the getBooleanInput function](actions/toolkit#725) ##### 1.2.7 - [Prepend newline for set-output](actions/toolkit#772) ##### 1.2.6 - [Update `exportVariable` and `addPath` to use environment files](actions/toolkit#571) ##### 1.2.5 - [Correctly bundle License File with package](actions/toolkit#548) ##### 1.2.4 - [Be more lenient in accepting non-string command inputs](actions/toolkit#405) - [Add Echo commands](actions/toolkit#411) ##### 1.2.3 - [IsDebug logging](README.md#logging) ##### 1.2.2 - [Fix escaping for runner commands](actions/toolkit#302) ##### 1.2.1 - [Remove trailing comma from commands](actions/toolkit#263) - [Add "types" to package.json](actions/toolkit#221) ##### 1.2.0 - saveState and getState functions for wrapper tasks (on finally entry points that run post job) ##### 1.1.3 - setSecret added to register a secret with the runner to be masked from the logs - exportSecret which was not implemented and never worked was removed after clarification from product. ##### 1.1.1 - Add support for action input variables with multiple spaces [#​127](actions/toolkit#127) - Switched ## commands to :: commands (should have no noticeable impact) \[[#​110](https://github.com/actions/toolkit/issues/110))([#​110](https://github.com/actions/toolkit/pull/110)) ##### 1.1.0 - Added helpers for `group` and `endgroup` [#​98](actions/toolkit#98) ##### 1.0.0 - Initial release ### [`v1.11.0`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1110) - Add platform info utilities [#​1551](actions/toolkit#1551) - Remove dependency on `uuid` package [#​1824](actions/toolkit#1824) ### [`v1.10.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1101) - Fix error message reference in oidc utils [#​1511](actions/toolkit#1511) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Reviewed-on: https://gitea.com/gitea/runner/pulls/880 Reviewed-by: Nicolas <bircni@icloud.com> Co-authored-by: Renovate Bot <renovate-bot@gitea.com> Co-committed-by: Renovate Bot <renovate-bot@gitea.com>
Closes: https://github.com/github/c2c-actions-checks/issues/280
This exposes a new class instance to
@actions/core,core.markdownSummary. It's a singleton that has an internal buffer with utility methods to facilitate the creation of HTML elements in a markdown summary for a job.The API is designed to be chainable, like the following:
Would result in:
👉 HTML 👈
👉 Rendered markdown 👈
Test Results
📚 View raw output
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Or, since a buffer is built internally it can be used like so:
Would result in:
👉 HTML 👈
👉 Rendered markdown 👈
one
two
three
four
five
six
Any
markdownSummary.add*method first adds to an internal buffer. It is not until the final.write()that it gets append to the$GITHUB_STEP_SUMMARYfile or.write(true)to completely overwrite the$GITHUB_STEP_SUMMARYfile.If the users requires custom markup, the
.add()method allows for raw text to be added to the buffer. Utility methods likeemptyBuffer()to empty a buffer without writing andisBufferEmpty()are included as well.Since all the actual rendering gets passed through dotcom's HTML rendering pipeline we don't need to worry about sanitizing any of the data.