feat(actions): Add artifact preview in Actions run view (#36754)

Closes https://github.com/go-gitea/gitea/issues/33579.

Adds browser previews for Actions artifacts. Selecting an artifact opens
its file browser; selecting a file renders it in the same tab. The ZIP
download remains available separately.

Previews require sign-in and read access to the run. Text, image and PDF
files are supported; rendered HTML and JavaScript run in a sandboxed
frame and are labeled as automatically generated. The frame loads files
from a signed link that expires after an hour, because its requests
carry no session cookie. `[actions] ARTIFACT_PREVIEW_MAX_SIZE` limits
total previewable artifact size (`0` disables previews; `-1` removes the
limit); individual files also follow `[ui] MAX_DISPLAY_FILE_SIZE`.

<img width="1803" height="913" alt="image"
src="https://github.com/user-attachments/assets/a38fd704-2244-44fa-9181-c695ecbe0276"
/>

Docs: https://gitea.com/gitea/docs/pulls/533

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Zettat123 <zettat123@gmail.com>
This commit is contained in:
authored and GitHub committed 2026-09-26 07:42:36 +00:00
1 parent 857d3d3df3
commit 5a56e118e4
22 files changed
+971 -68

No files matched your search

+6
View File
@@ -3928,6 +3928,12 @@
"actions.workflow.from_ref": "Use workflow from",
"actions.workflow.has_workflow_dispatch": "This workflow has a workflow_dispatch event trigger.",
"actions.workflow.has_no_workflow_dispatch": "Workflow '%s' has no workflow_dispatch event trigger.",
"actions.artifacts.preview_file_not_found": "The requested file is not present in this artifact.",
"actions.artifacts.preview_artifact_too_large": "This artifact is too large to preview. Please download it to view its contents.",
"actions.artifacts.preview_file_list_truncated": "This artifact contains many files, so only the first files are shown.",
"actions.artifacts.preview_no_files": "This artifact contains no files to preview.",
"actions.artifacts.back_to_run": "Back to action run #%d",
"actions.artifacts.back_to_run_attempt": "Back to action run #%d (attempt %d)",
"actions.need_approval_desc": "Need approval to run workflows for fork pull request.",
"actions.approve_all_success": "All workflow runs are approved successfully.",
"actions.variables": "Variables",