// Copyright 2025 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package actions import ( stdctx "context" "fmt" "code.gitea.io/tea/cmd/flags" "code.gitea.io/tea/modules/api" "code.gitea.io/tea/modules/context" "code.gitea.io/tea/modules/utils" "github.com/urfave/cli/v3" ) // CmdActionsLogs represents the actions logs command var CmdActionsLogs = cli.Command{ Name: "logs", Aliases: []string{"log"}, Usage: "Display logs for a job", Description: "Display logs for a specific job", ArgsUsage: "", Action: RunActionLogs, Flags: flags.AllDefaultFlags, } // RunActionLogs displays logs for a job func RunActionLogs(ctx stdctx.Context, cmd *cli.Command) error { c := context.InitCommand(cmd) c.Ensure(context.CtxRequirement{RemoteRepo: true}) if cmd.Args().Len() < 1 { return fmt.Errorf("Job ID is required") } jobID, err := utils.ArgToIndex(cmd.Args().First()) if err != nil { return fmt.Errorf("Invalid job ID: %w", err) } client := api.NewClient(c.Login) path := fmt.Sprintf("/repos/%s/%s/actions/jobs/%d/logs", c.Owner, c.Repo, jobID) logs, err := client.GetRaw(ctx, path) if err != nil { return err } fmt.Print(string(logs)) return nil }