// 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/print" "code.gitea.io/tea/modules/utils" "github.com/urfave/cli/v3" ) // CmdActionsJobs represents the actions jobs command var CmdActionsJobs = cli.Command{ Name: "jobs", Aliases: []string{"job"}, Usage: "List jobs for a workflow run", Description: "List jobs for a specific workflow run", ArgsUsage: "", Action: RunActionJobs, Flags: flags.AllDefaultFlags, } // RunActionJobs lists jobs for a workflow run func RunActionJobs(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("Run ID is required") } runID, err := utils.ArgToIndex(cmd.Args().First()) if err != nil { return fmt.Errorf("Invalid run ID: %w", err) } client := api.NewClient(c.Login) path := fmt.Sprintf("/repos/%s/%s/actions/runs/%d/jobs", c.Owner, c.Repo, runID) var jobs api.ActionJobList if _, err := client.Get(ctx, path, &jobs); err != nil { return err } print.ActionJobsList(jobs.Jobs, c.Output) return nil }