Files
tea/cmd/actions/logs.go
Hugo Nijhuis-Mekkelholt 7aa00e6f54
Some checks failed
check-and-test / check-and-test (pull_request) Failing after 1m38s
check-and-test / Run govulncheck (pull_request) Successful in 1m55s
fix: address code review feedback
- Fix GetRaw() error handling to check status before reading body
- Add context.Context support to all HTTP requests
- Use consistent capitalized error messages
- Update copyright year from 2024 to 2025
- Add unit tests for modules/api/client.go
- Add tests for runs, jobs, logs commands

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 19:51:52 +01:00

56 lines
1.2 KiB
Go

// 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: "<job-id>",
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
}