gitforge/web_src/js/components
Dax Kelson 4fe694fef7 feat: render OSC 8 sequences safely (#13085)
Job logs now render OSC 8 hyperlink escape sequences as clickable links in the Actions log viewer, so the Forgejo log has clickable links. A workflow step opts in by emitting the OSC 8 sequence (`ESC ] 8 ; ; <url> ESC \ <text> ESC ] 8 ; ; ESC \`), which is the same escape code terminals already use for links.

Hardens the anchors `ansi_up` emits: adds `rel="noopener noreferrer nofollow"` and `target="_blank"`, and drops any link whose scheme is not http or https.

## Checklist

### Tests for JavaScript changes

- I added test coverage for JavaScript changes...
  - [x] in `web_src/js/*.test.js` if it can be unit tested.
  - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server.

### Documentation

- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [x] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [x] This change will be noticed by a Forgejo user or admin (feature, bug fix, performance, etc.). I suggest to include a release note for this change.
- [ ] This change is not visible to a Forgejo user or admin (refactor, dependency upgrade, etc.). I think there is no need to add a release note for this change.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/13085
Reviewed-by: Andreas Ahlenstorf <aahlenst@noreply.codeberg.org>
Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org>
2026-07-06 05:20:09 +02:00
..
ActionJobStep.test.js feat: render OSC 8 sequences safely (#13085) 2026-07-06 05:20:09 +02:00
ActionJobStep.vue feat: render OSC 8 sequences safely (#13085) 2026-07-06 05:20:09 +02:00
ActionJobStepList.test.js refactor: split ActionJobStepList out of RepoActionView (#10537) 2025-12-22 04:14:11 +01:00
ActionJobStepList.vue refactor: split ActionJobStepList out of RepoActionView (#10537) 2025-12-22 04:14:11 +01:00
ActionRunStatus.vue
ActivityHeatmap.vue
ContextPopup.test.js
ContextPopup.vue
DashboardRepoList.vue feat: mark skipped checks as skipped (#12606) 2026-05-17 18:00:49 +02:00
DiffCommitSelector.vue chore: enforce RTL-friendly logical CSS properties with a linter (#12491) 2026-05-11 00:20:45 +02:00
DiffFileTree.vue chore: enforce RTL-friendly logical CSS properties with a linter (#12491) 2026-05-11 00:20:45 +02:00
DiffFileTreeItem.vue chore: enforce RTL-friendly logical CSS properties with a linter (#12491) 2026-05-11 00:20:45 +02:00
PullRequestMergeForm.test.js feat: show automerge if only one merge strategy is available (#12524) 2026-05-16 13:42:30 +02:00
PullRequestMergeForm.vue feat: show automerge if only one merge strategy is available (#12524) 2026-05-16 13:42:30 +02:00
RepoActionView.test.js feat: add warnings for usage of unsupported permissions: in Actions workflows (#13164) 2026-06-23 21:30:19 +02:00
RepoActionView.vue feat: add warnings for usage of unsupported permissions: in Actions workflows (#13164) 2026-06-23 21:30:19 +02:00
RepoActivityTopAuthors.test.js fix: don't stretch activity top author image (#10556) 2025-12-29 20:04:47 +01:00
RepoActivityTopAuthors.vue fix: don't stretch activity top author image (#10556) 2025-12-29 20:04:47 +01:00
RepoBranchTagSelector.vue chore: enforce RTL-friendly logical CSS properties with a linter (#12491) 2026-05-11 00:20:45 +02:00
RepoCodeFrequency.vue fix(i18n): hardcoded strings in repository activity graphs (#11735) 2026-03-19 15:41:33 +01:00
RepoContributors.test.js
RepoContributors.vue
RepoRecentCommits.vue fix(i18n): hardcoded strings in repository activity graphs (#11735) 2026-03-19 15:41:33 +01:00