mirror of
https://github.com/go-gitea/gitea.git
synced 2026-09-27 18:24:21 +00:00
5a56e118e4
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>
93 lines
2.0 KiB
TypeScript
93 lines
2.0 KiB
TypeScript
// see "models/actions/status.go", if it needs to be used somewhere else, move it to a shared file like "types/actions.ts"
|
|
export type ActionsStatus = 'unknown' | 'waiting' | 'running' | 'cancelling' | 'success' | 'failure' | 'cancelled' | 'skipped' | 'blocked';
|
|
export type ActionsArtifactStatus = 'expired' | 'completed';
|
|
|
|
export type ActionsRun = {
|
|
repoId: number,
|
|
index: number,
|
|
link: string,
|
|
viewLink: string,
|
|
title: string,
|
|
titleHTML: string,
|
|
status: ActionsStatus,
|
|
canCancel: boolean,
|
|
canApprove: boolean,
|
|
canRerun: boolean,
|
|
canRerunFailed: boolean,
|
|
canDeleteArtifact: boolean,
|
|
done: boolean,
|
|
workflowID: string,
|
|
workflowLink: string,
|
|
canViewWorkflowFile: boolean,
|
|
isSchedule: boolean,
|
|
runAttempt: number,
|
|
attempts: Array<ActionsRunAttempt>,
|
|
duration: string,
|
|
triggeredAt: number,
|
|
triggerEvent: string,
|
|
pullRequest?: {
|
|
index: string,
|
|
link: string,
|
|
} | null,
|
|
jobs: Array<ActionsJob>,
|
|
jobSummaries?: Array<ActionsJobSummary>,
|
|
commit: {
|
|
localeCommit: string,
|
|
localePushedBy: string,
|
|
shortSHA: string,
|
|
link: string,
|
|
pusher: {
|
|
displayName: string,
|
|
link: string,
|
|
avatarLink: string,
|
|
},
|
|
branch: {
|
|
name: string,
|
|
link: string,
|
|
isDeleted: boolean,
|
|
},
|
|
},
|
|
};
|
|
|
|
export type ActionsJobSummary = {
|
|
jobId: number,
|
|
jobName: string,
|
|
summaryHTML: string,
|
|
};
|
|
|
|
export type ActionsRunAttempt = {
|
|
attempt: number;
|
|
status: ActionsStatus;
|
|
done: boolean;
|
|
link: string;
|
|
current: boolean;
|
|
latest: boolean;
|
|
triggeredAt: number;
|
|
triggerUserName: string;
|
|
triggerUserLink: string;
|
|
triggerUserAvatar: string;
|
|
};
|
|
|
|
export type ActionsJob = {
|
|
id: number;
|
|
link: string;
|
|
jobId: string;
|
|
name: string;
|
|
status: ActionsStatus;
|
|
canRerun: boolean;
|
|
needs?: string[];
|
|
duration: string;
|
|
|
|
isReusableCaller: boolean;
|
|
parentJobID: number; // 0 for top-level jobs.
|
|
callUses?: string;
|
|
};
|
|
|
|
export type ActionsArtifact = {
|
|
name: string;
|
|
size: number;
|
|
status: ActionsArtifactStatus;
|
|
expiresUnix: number;
|
|
previewLink?: string;
|
|
};
|