diff --git a/.gitea/workflows/release-nightly.yml b/.gitea/workflows/release-nightly.yml index 49e3a281..be23e74d 100644 --- a/.gitea/workflows/release-nightly.yml +++ b/.gitea/workflows/release-nightly.yml @@ -23,7 +23,7 @@ jobs: passphrase: ${{ secrets.GPGSIGN_PASSPHRASE }} - name: get SDK version id: sdk_version - run: echo "version=$(go list -f '{{.Version}}' -m code.gitea.io/sdk/gitea)" >> "$GITHUB_OUTPUT" + run: echo "version=$(go list -f '{{.Version}}' -m gitea.dev/sdk)" >> "$GITHUB_OUTPUT" - name: goreleaser uses: goreleaser/goreleaser-action@v7 with: diff --git a/.gitea/workflows/release-tag.yml b/.gitea/workflows/release-tag.yml index 49d9f2b4..6e0b731f 100644 --- a/.gitea/workflows/release-tag.yml +++ b/.gitea/workflows/release-tag.yml @@ -24,7 +24,7 @@ jobs: passphrase: ${{ secrets.GPGSIGN_PASSPHRASE }} - name: get SDK version id: sdk_version - run: echo "version=$(go list -f '{{.Version}}' -m code.gitea.io/sdk/gitea)" >> "$GITHUB_OUTPUT" + run: echo "version=$(go list -f '{{.Version}}' -m gitea.dev/sdk)" >> "$GITHUB_OUTPUT" - name: goreleaser uses: goreleaser/goreleaser-action@v7 with: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3705272c..a762dd2a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -124,7 +124,7 @@ import ( // local packages "code.gitea.io/gitea/models" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" // external packages "github.com/foo/bar" diff --git a/Makefile b/Makefile index afa5d16f..6eaa2ae2 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ endif TEA_VERSION_TAG ?= $(shell sed 's/+/_/' <<< $(TEA_VERSION)) TAGS ?= -SDK ?= $(shell $(GO) list -f '{{.Version}}' -m code.gitea.io/sdk/gitea) +SDK ?= $(shell $(GO) list -f '{{.Version}}' -m gitea.dev/sdk) LDFLAGS := -X "gitea.dev/tea/modules/version.Version=$(TEA_VERSION)" -X "gitea.dev/tea/modules/version.Tags=$(TAGS)" -X "gitea.dev/tea/modules/version.SDK=$(SDK)" -s -w # override to allow passing additional goflags via make CLI diff --git a/README.md b/README.md index ad6379af..2293b841 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ ABOUT More info about Gitea itself on https://about.gitea.com. ``` -- tea uses [code.gitea.io/sdk](https://code.gitea.io/sdk) and interacts with the Gitea API. +- tea uses [gitea.dev/sdk](https://gitea.dev/sdk) and interacts with the Gitea API. ## Installation diff --git a/cmd/actions/runs/delete.go b/cmd/actions/runs/delete.go index 88e311a9..310afedd 100644 --- a/cmd/actions/runs/delete.go +++ b/cmd/actions/runs/delete.go @@ -61,7 +61,7 @@ func runRunsDelete(ctx stdctx.Context, cmd *cli.Command) error { } } - _, err = client.DeleteRepoActionRun(c.Owner, c.Repo, runID) + _, err = client.Actions.DeleteRepoRun(ctx, c.Owner, c.Repo, runID) if err != nil { return fmt.Errorf("failed to delete run: %w", err) } diff --git a/cmd/actions/runs/list.go b/cmd/actions/runs/list.go index 17d31976..40f6fc1c 100644 --- a/cmd/actions/runs/list.go +++ b/cmd/actions/runs/list.go @@ -8,7 +8,7 @@ import ( "fmt" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -106,7 +106,7 @@ func RunRunsList(ctx stdctx.Context, cmd *cli.Command) error { // Build list options listOpts := flags.GetListOptions(cmd) - runs, _, err := client.ListRepoActionRuns(c.Owner, c.Repo, gitea.ListRepoActionRunsOptions{ + runs, _, err := client.Actions.ListRepoRuns(ctx, c.Owner, c.Repo, gitea.ListRepoActionRunsOptions{ ListOptions: listOpts, Status: cmd.String("status"), Branch: cmd.String("branch"), diff --git a/cmd/actions/runs/list_test.go b/cmd/actions/runs/list_test.go index c7d02705..82258996 100644 --- a/cmd/actions/runs/list_test.go +++ b/cmd/actions/runs/list_test.go @@ -4,12 +4,11 @@ package runs import ( - stdctx "context" "os" "testing" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/stretchr/testify/require" "github.com/urfave/cli/v3" @@ -107,6 +106,6 @@ func TestRunRunsListRequiresRepoContext(t *testing.T) { } require.NoError(t, cmd.Set("login", "test")) - err = RunRunsList(stdctx.Background(), cmd) + err = RunRunsList(t.Context(), cmd) require.ErrorContains(t, err, "remote repository required") } diff --git a/cmd/actions/runs/logs.go b/cmd/actions/runs/logs.go index a7e93163..f6b4735b 100644 --- a/cmd/actions/runs/logs.go +++ b/cmd/actions/runs/logs.go @@ -9,7 +9,7 @@ import ( "strconv" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -69,10 +69,10 @@ func runRunsLogs(ctx stdctx.Context, cmd *cli.Command) error { } if follow { - return followJobLogs(client, c, jobID, "") + return followJobLogs(ctx, client, c, jobID, "") } - logs, _, err := client.GetRepoActionJobLogs(c.Owner, c.Repo, jobID) + logs, _, err := client.Actions.GetRepoRunJobLogs(ctx, c.Owner, c.Repo, jobID) if err != nil { return fmt.Errorf("failed to get logs for job %d: %w", jobID, err) } @@ -83,7 +83,7 @@ func runRunsLogs(ctx stdctx.Context, cmd *cli.Command) error { } // Otherwise, fetch all jobs and their logs - jobs, _, err := client.ListRepoActionRunJobs(c.Owner, c.Repo, runID, gitea.ListRepoActionJobsOptions{ + jobs, _, err := client.Actions.ListRepoJobsByRun(ctx, c.Owner, c.Repo, runID, gitea.ListRepoActionJobsOptions{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { @@ -102,7 +102,7 @@ func runRunsLogs(ctx stdctx.Context, cmd *cli.Command) error { // If following with single job, follow it if follow && len(jobs.Jobs) == 1 { - return followJobLogs(client, c, jobs.Jobs[0].ID, jobs.Jobs[0].Name) + return followJobLogs(ctx, client, c, jobs.Jobs[0].ID, jobs.Jobs[0].Name) } // Fetch logs for each job @@ -115,7 +115,7 @@ func runRunsLogs(ctx stdctx.Context, cmd *cli.Command) error { fmt.Printf("Status: %s\n", job.Status) fmt.Println("---") - logs, _, err := client.GetRepoActionJobLogs(c.Owner, c.Repo, job.ID) + logs, _, err := client.Actions.GetRepoRunJobLogs(ctx, c.Owner, c.Repo, job.ID) if err != nil { fmt.Printf("Error fetching logs: %v\n", err) continue @@ -128,7 +128,7 @@ func runRunsLogs(ctx stdctx.Context, cmd *cli.Command) error { } // followJobLogs continuously fetches and displays logs for a running job -func followJobLogs(client *gitea.Client, c *context.TeaContext, jobID int64, jobName string) error { +func followJobLogs(requestCtx stdctx.Context, client *gitea.Client, c *context.TeaContext, jobID int64, jobName string) error { var lastLogLength int if jobName != "" { @@ -140,7 +140,7 @@ func followJobLogs(client *gitea.Client, c *context.TeaContext, jobID int64, job for { // Fetch job status - job, _, err := client.GetRepoActionJob(c.Owner, c.Repo, jobID) + job, _, err := client.Actions.GetRepoRunJob(requestCtx, c.Owner, c.Repo, jobID) if err != nil { return fmt.Errorf("failed to get job: %w", err) } @@ -149,7 +149,7 @@ func followJobLogs(client *gitea.Client, c *context.TeaContext, jobID int64, job isRunning := job.Status == "in_progress" || job.Status == "queued" || job.Status == "pending" // Fetch logs - logs, _, err := client.GetRepoActionJobLogs(c.Owner, c.Repo, jobID) + logs, _, err := client.Actions.GetRepoRunJobLogs(requestCtx, c.Owner, c.Repo, jobID) if err != nil { return fmt.Errorf("failed to get logs: %w", err) } diff --git a/cmd/actions/runs/view.go b/cmd/actions/runs/view.go index d9c9387e..efd4dfa6 100644 --- a/cmd/actions/runs/view.go +++ b/cmd/actions/runs/view.go @@ -8,8 +8,7 @@ import ( "fmt" "strconv" - "code.gitea.io/sdk/gitea" - + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" "gitea.dev/tea/modules/print" @@ -54,7 +53,7 @@ func runRunsView(ctx stdctx.Context, cmd *cli.Command) error { } // Fetch run details - run, _, err := client.GetRepoActionRun(c.Owner, c.Repo, runID) + run, _, err := client.Actions.GetRepoRun(ctx, c.Owner, c.Repo, runID) if err != nil { return fmt.Errorf("failed to get run: %w", err) } @@ -64,7 +63,7 @@ func runRunsView(ctx stdctx.Context, cmd *cli.Command) error { // Fetch and print jobs if requested if cmd.Bool("jobs") { - jobs, _, err := client.ListRepoActionRunJobs(c.Owner, c.Repo, runID, gitea.ListRepoActionJobsOptions{ + jobs, _, err := client.Actions.ListRepoJobsByRun(ctx, c.Owner, c.Repo, runID, gitea.ListRepoActionJobsOptions{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { diff --git a/cmd/actions/secrets/create.go b/cmd/actions/secrets/create.go index 37270233..1f070844 100644 --- a/cmd/actions/secrets/create.go +++ b/cmd/actions/secrets/create.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -62,7 +62,7 @@ func runSecretsCreate(ctx stdctx.Context, cmd *cli.Command) error { return err } - _, err = client.CreateRepoActionSecret(c.Owner, c.Repo, secretName, gitea.CreateOrUpdateSecretOption{ + _, err = client.Actions.CreateRepoSecret(ctx, c.Owner, c.Repo, secretName, gitea.CreateOrUpdateSecretOption{ Data: secretValue, }) if err != nil { diff --git a/cmd/actions/secrets/delete.go b/cmd/actions/secrets/delete.go index 3f2de7ee..2bd555a1 100644 --- a/cmd/actions/secrets/delete.go +++ b/cmd/actions/secrets/delete.go @@ -56,7 +56,7 @@ func runSecretsDelete(ctx stdctx.Context, cmd *cli.Command) error { } } - _, err = client.DeleteRepoActionSecret(c.Owner, c.Repo, secretName) + _, err = client.Actions.DeleteRepoSecret(ctx, c.Owner, c.Repo, secretName) if err != nil { return err } diff --git a/cmd/actions/secrets/list.go b/cmd/actions/secrets/list.go index 59ae1f0d..0a698ba7 100644 --- a/cmd/actions/secrets/list.go +++ b/cmd/actions/secrets/list.go @@ -6,7 +6,7 @@ package secrets import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -38,7 +38,7 @@ func RunSecretsList(ctx stdctx.Context, cmd *cli.Command) error { } client := c.Login.Client() - secrets, _, err := client.ListRepoActionSecret(c.Owner, c.Repo, gitea.ListRepoActionSecretOption{ + secrets, _, err := client.Actions.ListRepoSecrets(ctx, c.Owner, c.Repo, gitea.ListRepoActionSecretOption{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { diff --git a/cmd/actions/secrets/list_test.go b/cmd/actions/secrets/list_test.go index 3868b26d..063229b2 100644 --- a/cmd/actions/secrets/list_test.go +++ b/cmd/actions/secrets/list_test.go @@ -4,7 +4,6 @@ package secrets import ( - stdctx "context" "os" "testing" @@ -94,6 +93,6 @@ func TestRunSecretsListRequiresRepoContext(t *testing.T) { } require.NoError(t, cmd.Set("login", "test")) - err = RunSecretsList(stdctx.Background(), cmd) + err = RunSecretsList(t.Context(), cmd) require.ErrorContains(t, err, "remote repository required") } diff --git a/cmd/actions/variables/delete.go b/cmd/actions/variables/delete.go index ae2ffd2a..0db6e0c8 100644 --- a/cmd/actions/variables/delete.go +++ b/cmd/actions/variables/delete.go @@ -56,7 +56,7 @@ func runVariablesDelete(ctx stdctx.Context, cmd *cli.Command) error { } } - _, err = client.DeleteRepoActionVariable(c.Owner, c.Repo, variableName) + _, err = client.Actions.DeleteRepoVariable(ctx, c.Owner, c.Repo, variableName) if err != nil { return err } diff --git a/cmd/actions/variables/list.go b/cmd/actions/variables/list.go index aba2b4c5..d3b2c96c 100644 --- a/cmd/actions/variables/list.go +++ b/cmd/actions/variables/list.go @@ -42,7 +42,7 @@ func RunVariablesList(ctx stdctx.Context, cmd *cli.Command) error { if name := cmd.String("name"); name != "" { // Get specific variable - variable, _, err := client.GetRepoActionVariable(c.Owner, c.Repo, name) + variable, _, err := client.Actions.GetRepoVariable(ctx, c.Owner, c.Repo, name) if err != nil { return err } diff --git a/cmd/actions/variables/list_test.go b/cmd/actions/variables/list_test.go index 9a3ad0a1..6d018574 100644 --- a/cmd/actions/variables/list_test.go +++ b/cmd/actions/variables/list_test.go @@ -4,7 +4,6 @@ package variables import ( - stdctx "context" "os" "testing" @@ -94,6 +93,6 @@ func TestRunVariablesListRequiresRepoContext(t *testing.T) { } require.NoError(t, cmd.Set("login", "test")) - err = RunVariablesList(stdctx.Background(), cmd) + err = RunVariablesList(t.Context(), cmd) require.ErrorContains(t, err, "remote repository required") } diff --git a/cmd/actions/variables/set.go b/cmd/actions/variables/set.go index 738c97bd..d808771d 100644 --- a/cmd/actions/variables/set.go +++ b/cmd/actions/variables/set.go @@ -69,7 +69,7 @@ func runVariablesSet(ctx stdctx.Context, cmd *cli.Command) error { return err } - _, err = client.CreateRepoActionVariable(c.Owner, c.Repo, variableName, variableValue) + _, err = client.Actions.CreateRepoVariable(ctx, c.Owner, c.Repo, variableName, variableValue) if err != nil { return err } diff --git a/cmd/actions/workflows/disable.go b/cmd/actions/workflows/disable.go index 84ba1217..8ed5b0d3 100644 --- a/cmd/actions/workflows/disable.go +++ b/cmd/actions/workflows/disable.go @@ -55,7 +55,7 @@ func runWorkflowsDisable(ctx stdctx.Context, cmd *cli.Command) error { } } - _, err = client.DisableRepoActionWorkflow(c.Owner, c.Repo, workflowID) + _, err = client.Actions.DisableRepoWorkflow(ctx, c.Owner, c.Repo, workflowID) if err != nil { return fmt.Errorf("failed to disable workflow: %w", err) } diff --git a/cmd/actions/workflows/dispatch.go b/cmd/actions/workflows/dispatch.go index 41321373..7d28b235 100644 --- a/cmd/actions/workflows/dispatch.go +++ b/cmd/actions/workflows/dispatch.go @@ -9,7 +9,7 @@ import ( "strings" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -87,7 +87,7 @@ func runWorkflowsDispatch(ctx stdctx.Context, cmd *cli.Command) error { Inputs: inputs, } - details, _, err := client.DispatchRepoActionWorkflow(c.Owner, c.Repo, workflowID, opt, true) + details, _, err := client.Actions.DispatchRepoWorkflow(ctx, c.Owner, c.Repo, workflowID, opt, true) if err != nil { return fmt.Errorf("failed to dispatch workflow: %w", err) } @@ -95,7 +95,7 @@ func runWorkflowsDispatch(ctx stdctx.Context, cmd *cli.Command) error { print.ActionWorkflowDispatchResult(details) if cmd.Bool("follow") && details != nil && details.WorkflowRunID > 0 { - return followDispatchedRun(client, c, details.WorkflowRunID) + return followDispatchedRun(ctx, client, c, details.WorkflowRunID) } return nil @@ -107,7 +107,7 @@ const ( ) // followDispatchedRun waits for the dispatched run to start, then follows its logs -func followDispatchedRun(client *gitea.Client, c *context.TeaContext, runID int64) error { +func followDispatchedRun(ctx stdctx.Context, client *gitea.Client, c *context.TeaContext, runID int64) error { fmt.Printf("\nWaiting for run %d to start...\n", runID) var jobs *gitea.ActionWorkflowJobsResponse @@ -115,7 +115,7 @@ func followDispatchedRun(client *gitea.Client, c *context.TeaContext, runID int6 time.Sleep(followPollInterval) var err error - jobs, _, err = client.ListRepoActionRunJobs(c.Owner, c.Repo, runID, gitea.ListRepoActionJobsOptions{}) + jobs, _, err = client.Actions.ListRepoJobsByRun(ctx, c.Owner, c.Repo, runID, gitea.ListRepoActionJobsOptions{}) if err != nil { return fmt.Errorf("failed to get jobs: %w", err) } @@ -136,14 +136,14 @@ func followDispatchedRun(client *gitea.Client, c *context.TeaContext, runID int6 deadline := time.Now().Add(followMaxDuration) var lastLogLength int for time.Now().Before(deadline) { - job, _, err := client.GetRepoActionJob(c.Owner, c.Repo, jobID) + job, _, err := client.Actions.GetRepoRunJob(ctx, c.Owner, c.Repo, jobID) if err != nil { return fmt.Errorf("failed to get job: %w", err) } isRunning := job.Status == "in_progress" || job.Status == "queued" || job.Status == "pending" - logs, _, logErr := client.GetRepoActionJobLogs(c.Owner, c.Repo, jobID) + logs, _, logErr := client.Actions.GetRepoRunJobLogs(ctx, c.Owner, c.Repo, jobID) if logErr != nil && isRunning { time.Sleep(followPollInterval) continue diff --git a/cmd/actions/workflows/enable.go b/cmd/actions/workflows/enable.go index 83ae5c3c..dbe2e1e4 100644 --- a/cmd/actions/workflows/enable.go +++ b/cmd/actions/workflows/enable.go @@ -38,7 +38,7 @@ func runWorkflowsEnable(ctx stdctx.Context, cmd *cli.Command) error { client := c.Login.Client() workflowID := cmd.Args().First() - _, err = client.EnableRepoActionWorkflow(c.Owner, c.Repo, workflowID) + _, err = client.Actions.EnableRepoWorkflow(ctx, c.Owner, c.Repo, workflowID) if err != nil { return fmt.Errorf("failed to enable workflow: %w", err) } diff --git a/cmd/actions/workflows/list.go b/cmd/actions/workflows/list.go index 70e78339..31a88646 100644 --- a/cmd/actions/workflows/list.go +++ b/cmd/actions/workflows/list.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -36,7 +36,7 @@ func RunWorkflowsList(ctx stdctx.Context, cmd *cli.Command) error { } client := c.Login.Client() - resp, _, err := client.ListRepoActionWorkflows(c.Owner, c.Repo) + resp, _, err := client.Actions.ListRepoWorkflows(ctx, c.Owner, c.Repo) if err != nil { return fmt.Errorf("failed to list workflows: %w", err) } diff --git a/cmd/actions/workflows/view.go b/cmd/actions/workflows/view.go index d99a1467..0d86de47 100644 --- a/cmd/actions/workflows/view.go +++ b/cmd/actions/workflows/view.go @@ -40,7 +40,7 @@ func runWorkflowsView(ctx stdctx.Context, cmd *cli.Command) error { client := c.Login.Client() workflowID := cmd.Args().First() - wf, _, err := client.GetRepoActionWorkflow(c.Owner, c.Repo, workflowID) + wf, _, err := client.Actions.GetRepoWorkflow(ctx, c.Owner, c.Repo, workflowID) if err != nil { return fmt.Errorf("failed to get workflow: %w", err) } diff --git a/cmd/admin.go b/cmd/admin.go index 65f7b375..306226be 100644 --- a/cmd/admin.go +++ b/cmd/admin.go @@ -20,7 +20,7 @@ var CmdAdmin = cli.Command{ Usage: "Operations requiring admin access on the Gitea instance", Aliases: []string{"a"}, Category: catMisc, - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { return cli.ShowSubcommandHelp(cmd) }, Commands: []*cli.Command{ @@ -47,13 +47,13 @@ var cmdAdminUsers = cli.Command{ Flags: users.CmdUserList.Flags, } -func runAdminUserDetail(_ stdctx.Context, cmd *cli.Command, u string) error { +func runAdminUserDetail(requestCtx stdctx.Context, cmd *cli.Command, u string) error { ctx, err := context.InitCommand(cmd) if err != nil { return err } client := ctx.Login.Client() - user, _, err := client.GetUserInfo(u) + user, _, err := client.Users.GetUserInfo(requestCtx, u) if err != nil { return err } diff --git a/cmd/admin/users/create.go b/cmd/admin/users/create.go index 5c34ad6b..f685639e 100644 --- a/cmd/admin/users/create.go +++ b/cmd/admin/users/create.go @@ -11,7 +11,7 @@ import ( "strings" "syscall" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -83,7 +83,7 @@ var CmdUserCreate = cli.Command{ } // RunUserCreate creates a new user -func RunUserCreate(_ stdctx.Context, cmd *cli.Command) error { +func RunUserCreate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -177,7 +177,7 @@ func RunUserCreate(_ stdctx.Context, cmd *cli.Command) error { createOpts.Visibility = vis // Create the user - user, _, err := client.AdminCreateUser(createOpts) + user, _, err := client.Admin.CreateUser(requestCtx, createOpts) if err != nil { return err } @@ -202,13 +202,13 @@ func RunUserCreate(_ stdctx.Context, cmd *cli.Command) error { } // Update user with admin/restricted/prohibit-login settings - _, err = client.AdminEditUser(username, editOpts) + _, err = client.Admin.EditUser(requestCtx, username, editOpts) if err != nil { return fmt.Errorf("user created but failed to update admin/restricted/prohibit-login status: %w", err) } // Refresh user info to reflect the changes - user, _, err = client.GetUserInfo(username) + user, _, err = client.Users.GetUserInfo(requestCtx, username) if err != nil { return fmt.Errorf("user updated but failed to retrieve updated user info: %w", err) } diff --git a/cmd/admin/users/delete.go b/cmd/admin/users/delete.go index ae477cdb..f0dcc90a 100644 --- a/cmd/admin/users/delete.go +++ b/cmd/admin/users/delete.go @@ -31,7 +31,7 @@ var CmdUserDelete = cli.Command{ } // RunUserDelete deletes a user -func RunUserDelete(_ stdctx.Context, cmd *cli.Command) error { +func RunUserDelete(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -45,7 +45,7 @@ func RunUserDelete(_ stdctx.Context, cmd *cli.Command) error { username := ctx.Args().First() // Get user details first to show what we're deleting - user, _, err := client.GetUserInfo(username) + user, _, err := client.Users.GetUserInfo(requestCtx, username) if err != nil { return fmt.Errorf("failed to get user info: %w", err) } @@ -67,7 +67,7 @@ func RunUserDelete(_ stdctx.Context, cmd *cli.Command) error { } } - _, err = client.AdminDeleteUser(username) + _, err = client.Admin.DeleteUser(requestCtx, username) if err != nil { return fmt.Errorf("failed to delete user: %w", err) } diff --git a/cmd/admin/users/edit.go b/cmd/admin/users/edit.go index d165e194..fa1475ee 100644 --- a/cmd/admin/users/edit.go +++ b/cmd/admin/users/edit.go @@ -11,8 +11,7 @@ import ( "strings" "syscall" - "code.gitea.io/sdk/gitea" - + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" "gitea.dev/tea/modules/print" @@ -135,7 +134,7 @@ var CmdUserEdit = cli.Command{ } // RunUserEdit edits an existing user -func RunUserEdit(_ stdctx.Context, cmd *cli.Command) error { +func RunUserEdit(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -149,7 +148,7 @@ func RunUserEdit(_ stdctx.Context, cmd *cli.Command) error { username := ctx.Args().First() // Verify the user exists before attempting an update. - _, _, err = client.GetUserInfo(username) + _, _, err = client.Users.GetUserInfo(requestCtx, username) if err != nil { return fmt.Errorf("failed to get user info: %w", err) } @@ -358,13 +357,13 @@ func RunUserEdit(_ stdctx.Context, cmd *cli.Command) error { } // Update the user - _, err = client.AdminEditUser(username, editOpts) + _, err = client.Admin.EditUser(requestCtx, username, editOpts) if err != nil { return fmt.Errorf("failed to update user: %w", err) } // Refresh user info to reflect the changes - updatedUser, _, err := client.GetUserInfo(username) + updatedUser, _, err := client.Users.GetUserInfo(requestCtx, username) if err != nil { return fmt.Errorf("user updated but failed to retrieve updated user info: %w", err) } diff --git a/cmd/admin/users/list.go b/cmd/admin/users/list.go index e955302f..715d25af 100644 --- a/cmd/admin/users/list.go +++ b/cmd/admin/users/list.go @@ -6,7 +6,7 @@ package users import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -33,7 +33,7 @@ var CmdUserList = cli.Command{ } // RunUserList list users -func RunUserList(_ stdctx.Context, cmd *cli.Command) error { +func RunUserList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -45,7 +45,7 @@ func RunUserList(_ stdctx.Context, cmd *cli.Command) error { } client := ctx.Login.Client() - users, _, err := client.AdminListUsers(gitea.AdminListUsersOptions{ + users, _, err := client.Admin.ListUsers(requestCtx, gitea.AdminListUsersOptions{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { diff --git a/cmd/admin/users/shared.go b/cmd/admin/users/shared.go index e03f89bf..5abbaec5 100644 --- a/cmd/admin/users/shared.go +++ b/cmd/admin/users/shared.go @@ -7,7 +7,7 @@ import ( "fmt" "strings" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) func parseUserVisibility(visibility string) (*gitea.VisibleType, error) { diff --git a/cmd/api.go b/cmd/api.go index 6f528dbb..6c5c22a5 100644 --- a/cmd/api.go +++ b/cmd/api.go @@ -104,7 +104,7 @@ type preparedAPIRequest struct { Body []byte } -func runApi(_ stdctx.Context, cmd *cli.Command) error { +func runApi(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err diff --git a/cmd/api_test.go b/cmd/api_test.go index 44d03006..8e92b5e0 100644 --- a/cmd/api_test.go +++ b/cmd/api_test.go @@ -296,7 +296,7 @@ func runApiWithArgs(t *testing.T, args []string) (method string, body []byte, er } fullArgs := append([]string{"api", "--login", "testLogin"}, args...) - runErr := cmd.Run(stdctx.Background(), fullArgs) + runErr := cmd.Run(t.Context(), fullArgs) return capturedMethod, capturedBody, runErr } diff --git a/cmd/attachments/create.go b/cmd/attachments/create.go index 8e601e86..d35c5646 100644 --- a/cmd/attachments/create.go +++ b/cmd/attachments/create.go @@ -27,7 +27,7 @@ var CmdReleaseAttachmentCreate = cli.Command{ Flags: flags.AllDefaultFlags, } -func runReleaseAttachmentCreate(_ stdctx.Context, cmd *cli.Command) error { +func runReleaseAttachmentCreate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -46,7 +46,7 @@ func runReleaseAttachmentCreate(_ stdctx.Context, cmd *cli.Command) error { return fmt.Errorf("release tag needed to create attachment") } - release, err := releases.GetReleaseByTag(ctx.Owner, ctx.Repo, tag, client) + release, err := releases.GetReleaseByTag(requestCtx, ctx.Owner, ctx.Repo, tag, client) if err != nil { return err } @@ -59,7 +59,7 @@ func runReleaseAttachmentCreate(_ stdctx.Context, cmd *cli.Command) error { filePath := filepath.Base(asset) - if _, _, err = ctx.Login.Client().CreateReleaseAttachment(ctx.Owner, ctx.Repo, release.ID, file, filePath); err != nil { + if _, _, err = ctx.Login.Client().Releases.CreateReleaseAttachment(requestCtx, ctx.Owner, ctx.Repo, release.ID, file, filePath); err != nil { file.Close() return err } diff --git a/cmd/attachments/delete.go b/cmd/attachments/delete.go index 211650e8..7a806a15 100644 --- a/cmd/attachments/delete.go +++ b/cmd/attachments/delete.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/cmd/releases" @@ -32,7 +32,7 @@ var CmdReleaseAttachmentDelete = cli.Command{ }, flags.AllDefaultFlags...), } -func runReleaseAttachmentDelete(_ stdctx.Context, cmd *cli.Command) error { +func runReleaseAttachmentDelete(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -56,14 +56,14 @@ func runReleaseAttachmentDelete(_ stdctx.Context, cmd *cli.Command) error { return nil } - release, err := releases.GetReleaseByTag(ctx.Owner, ctx.Repo, tag, client) + release, err := releases.GetReleaseByTag(requestCtx, ctx.Owner, ctx.Repo, tag, client) if err != nil { return err } var existing []*gitea.Attachment for page := 1; ; { - page_attachments, resp, err := client.ListReleaseAttachments(ctx.Owner, ctx.Repo, release.ID, gitea.ListReleaseAttachmentsOptions{ + page_attachments, resp, err := client.Releases.ListReleaseAttachments(requestCtx, ctx.Owner, ctx.Repo, release.ID, gitea.ListReleaseAttachmentsOptions{ ListOptions: gitea.ListOptions{Page: page, PageSize: 50}, }) if err != nil { @@ -87,7 +87,7 @@ func runReleaseAttachmentDelete(_ stdctx.Context, cmd *cli.Command) error { return fmt.Errorf("release does not have attachment named '%s'", name) } - _, err = client.DeleteReleaseAttachment(ctx.Owner, ctx.Repo, release.ID, attachment.ID) + _, err = client.Releases.DeleteReleaseAttachment(requestCtx, ctx.Owner, ctx.Repo, release.ID, attachment.ID) if err != nil { return err } diff --git a/cmd/attachments/list.go b/cmd/attachments/list.go index ac613fea..4b512915 100644 --- a/cmd/attachments/list.go +++ b/cmd/attachments/list.go @@ -7,8 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" - + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/cmd/releases" "gitea.dev/tea/modules/context" @@ -31,7 +30,7 @@ var CmdReleaseAttachmentList = cli.Command{ } // RunReleaseAttachmentList list release attachments -func RunReleaseAttachmentList(_ stdctx.Context, cmd *cli.Command) error { +func RunReleaseAttachmentList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -46,12 +45,12 @@ func RunReleaseAttachmentList(_ stdctx.Context, cmd *cli.Command) error { return fmt.Errorf("release tag needed to list attachments") } - release, err := releases.GetReleaseByTag(ctx.Owner, ctx.Repo, tag, client) + release, err := releases.GetReleaseByTag(requestCtx, ctx.Owner, ctx.Repo, tag, client) if err != nil { return err } - attachments, _, err := ctx.Login.Client().ListReleaseAttachments(ctx.Owner, ctx.Repo, release.ID, gitea.ListReleaseAttachmentsOptions{ + attachments, _, err := ctx.Login.Client().Releases.ListReleaseAttachments(requestCtx, ctx.Owner, ctx.Repo, release.ID, gitea.ListReleaseAttachmentsOptions{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { diff --git a/cmd/branches/list.go b/cmd/branches/list.go index f1774e5a..6c559616 100644 --- a/cmd/branches/list.go +++ b/cmd/branches/list.go @@ -6,7 +6,7 @@ package branches import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -37,7 +37,7 @@ var CmdBranchesList = cli.Command{ } // RunBranchesList list branches -func RunBranchesList(_ stdctx.Context, cmd *cli.Command) error { +func RunBranchesList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -53,14 +53,14 @@ func RunBranchesList(_ stdctx.Context, cmd *cli.Command) error { var branches []*gitea.Branch var protections []*gitea.BranchProtection - branches, _, err = ctx.Login.Client().ListRepoBranches(owner, ctx.Repo, gitea.ListRepoBranchesOptions{ + branches, _, err = ctx.Login.Client().Repositories.ListRepoBranches(requestCtx, owner, ctx.Repo, gitea.ListRepoBranchesOptions{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { return err } - protections, _, err = ctx.Login.Client().ListBranchProtections(owner, ctx.Repo, gitea.ListBranchProtectionsOptions{ + protections, _, err = ctx.Login.Client().Repositories.ListBranchProtections(requestCtx, owner, ctx.Repo, gitea.ListBranchProtectionsOptions{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { diff --git a/cmd/branches/protect.go b/cmd/branches/protect.go index 68156663..84417fe4 100644 --- a/cmd/branches/protect.go +++ b/cmd/branches/protect.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -44,7 +44,7 @@ var CmdBranchesUnprotect = cli.Command{ } // RunBranchesProtect function to protect/unprotect a list of branches -func RunBranchesProtect(_ stdctx.Context, cmd *cli.Command) error { +func RunBranchesProtect(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -67,7 +67,7 @@ func RunBranchesProtect(_ stdctx.Context, cmd *cli.Command) error { var err error command := ctx.Command.Name if command == "protect" { - _, _, err = ctx.Login.Client().CreateBranchProtection(owner, ctx.Repo, gitea.CreateBranchProtectionOption{ + _, _, err = ctx.Login.Client().Repositories.CreateBranchProtection(requestCtx, owner, ctx.Repo, gitea.CreateBranchProtectionOption{ BranchName: branch, RuleName: "", EnablePush: false, @@ -93,7 +93,7 @@ func RunBranchesProtect(_ stdctx.Context, cmd *cli.Command) error { UnprotectedFilePatterns: "", }) } else if command == "unprotect" { - _, err = ctx.Login.Client().DeleteBranchProtection(owner, ctx.Repo, branch) + _, err = ctx.Login.Client().Repositories.DeleteBranchProtection(requestCtx, owner, ctx.Repo, branch) } else { return fmt.Errorf("command %s is not supported", command) } diff --git a/cmd/branches/rename.go b/cmd/branches/rename.go index 215dd80f..85a0935c 100644 --- a/cmd/branches/rename.go +++ b/cmd/branches/rename.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -33,7 +33,7 @@ var CmdBranchesRename = cli.Command{ } // RunBranchesRename function to rename a branch -func RunBranchesRename(_ stdctx.Context, cmd *cli.Command) error { +func RunBranchesRename(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -54,7 +54,7 @@ func RunBranchesRename(_ stdctx.Context, cmd *cli.Command) error { owner = ctx.String("owner") } - successful, _, err := ctx.Login.Client().RenameRepoBranch(owner, ctx.Repo, oldBranchName, gitea.RenameRepoBranchOption{ + successful, _, err := ctx.Login.Client().Repositories.RenameRepoBranch(requestCtx, owner, ctx.Repo, oldBranchName, gitea.RenameRepoBranchOption{ Name: newBranchName, }) if err != nil { diff --git a/cmd/clone.go b/cmd/clone.go index 6ec584a7..c636a39f 100644 --- a/cmd/clone.go +++ b/cmd/clone.go @@ -88,6 +88,7 @@ func runRepoClone(ctx stdctx.Context, cmd *cli.Command) error { } _, err = task.RepoClone( + ctx, dir, login, owner, diff --git a/cmd/comment.go b/cmd/comment.go index 9e99db23..cbd6f8d7 100644 --- a/cmd/comment.go +++ b/cmd/comment.go @@ -10,7 +10,7 @@ import ( "io" "strings" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/config" @@ -36,7 +36,7 @@ var CmdAddComment = cli.Command{ Flags: flags.AllDefaultFlags, } -func runAddComment(_ stdctx.Context, cmd *cli.Command) error { +func runAddComment(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -83,7 +83,7 @@ func runAddComment(_ stdctx.Context, cmd *cli.Command) error { } client := ctx.Login.Client() - comment, _, err := client.CreateIssueComment(ctx.Owner, ctx.Repo, idx, gitea.CreateIssueCommentOption{ + comment, _, err := client.Issues.CreateIssueComment(requestCtx, ctx.Owner, ctx.Repo, idx, gitea.CreateIssueCommentOption{ Body: body, }) if err != nil { diff --git a/cmd/detail_json.go b/cmd/detail_json.go index 7db03e0e..cde3c3fd 100644 --- a/cmd/detail_json.go +++ b/cmd/detail_json.go @@ -8,7 +8,7 @@ import ( "io" "time" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) type detailLabelData struct { diff --git a/cmd/flags/generic.go b/cmd/flags/generic.go index ee1362ff..adffd395 100644 --- a/cmd/flags/generic.go +++ b/cmd/flags/generic.go @@ -7,7 +7,7 @@ import ( "errors" "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/urfave/cli/v3" ) diff --git a/cmd/flags/generic_test.go b/cmd/flags/generic_test.go index 37d4a7f4..f98cc8c8 100644 --- a/cmd/flags/generic_test.go +++ b/cmd/flags/generic_test.go @@ -8,7 +8,7 @@ import ( "io" "testing" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/urfave/cli/v3" @@ -75,7 +75,7 @@ func TestPaginationFlags(t *testing.T) { }, Flags: PaginationFlags, } - err := cmd.Run(context.Background(), tc.args) + err := cmd.Run(t.Context(), tc.args) require.NoError(t, err) }) } @@ -118,7 +118,7 @@ func TestPaginationFailures(t *testing.T) { ErrWriter: io.Discard, } t.Run(tc.name, func(t *testing.T) { - err := cmd.Run(context.Background(), tc.args) + err := cmd.Run(t.Context(), tc.args) require.ErrorContains(t, err, tc.expectedError.Error()) // require.ErrorIs(t, err, tc.expectedError) }) @@ -140,7 +140,7 @@ func TestGetListOptionsDoesNotLeakBetweenCommands(t *testing.T) { Flags: PaginationFlags, } - require.NoError(t, cmd.Run(context.Background(), args)) + require.NoError(t, cmd.Run(t.Context(), args)) } run([]string{"test", "--page", "5", "--limit", "10"}) diff --git a/cmd/flags/issue_pr.go b/cmd/flags/issue_pr.go index 2a8b41a4..31a65c65 100644 --- a/cmd/flags/issue_pr.go +++ b/cmd/flags/issue_pr.go @@ -4,11 +4,12 @@ package flags import ( + stdctx "context" "fmt" "strings" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/context" "gitea.dev/tea/modules/task" @@ -131,7 +132,7 @@ var IssuePRCreateFlags = append([]cli.Flag{ }, issuePRFlags...) // GetIssuePRCreateFlags parses all IssuePREditFlags -func GetIssuePRCreateFlags(ctx *context.TeaContext) (*gitea.CreateIssueOption, error) { +func GetIssuePRCreateFlags(requestCtx stdctx.Context, ctx *context.TeaContext) (*gitea.CreateIssueOption, error) { opts := gitea.CreateIssueOption{ Title: ctx.String("title"), Body: ctx.String("description"), @@ -155,7 +156,7 @@ func GetIssuePRCreateFlags(ctx *context.TeaContext) (*gitea.CreateIssueOption, e if client == nil { client = ctx.Login.Client() } - if opts.Labels, err = task.ResolveLabelNames(client, ctx.Owner, ctx.Repo, labelNames); err != nil { + if opts.Labels, err = task.ResolveLabelNames(requestCtx, client, ctx.Owner, ctx.Repo, labelNames); err != nil { return nil, err } } @@ -164,7 +165,7 @@ func GetIssuePRCreateFlags(ctx *context.TeaContext) (*gitea.CreateIssueOption, e if client == nil { client = ctx.Login.Client() } - ms, _, err := client.GetMilestoneByName(ctx.Owner, ctx.Repo, milestoneName) + ms, _, err := client.Repositories.GetMilestoneByName(requestCtx, ctx.Owner, ctx.Repo, milestoneName) if err != nil { return nil, fmt.Errorf("milestone '%s' not found", milestoneName) } diff --git a/cmd/issues.go b/cmd/issues.go index fd7228e5..7f3f4bea 100644 --- a/cmd/issues.go +++ b/cmd/issues.go @@ -8,7 +8,7 @@ import ( "fmt" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/cmd/issues" @@ -38,12 +38,12 @@ type issueData struct { } type issueDetailClient interface { - GetIssue(owner, repo string, index int64) (*gitea.Issue, *gitea.Response, error) - GetIssueReactions(owner, repo string, index int64) ([]*gitea.Reaction, *gitea.Response, error) + GetIssue(ctx stdctx.Context, owner, repo string, index int64) (*gitea.Issue, *gitea.Response, error) + ListIssueReactions(ctx stdctx.Context, owner, repo string, index int64, opt gitea.ListIssueReactionsOptions) ([]*gitea.Reaction, *gitea.Response, error) } type issueCommentClient interface { - ListIssueComments(owner, repo string, index int64, opt gitea.ListIssueCommentOptions) ([]*gitea.Comment, *gitea.Response, error) + ListIssueComments(ctx stdctx.Context, owner, repo string, index int64, opt gitea.ListIssueCommentOptions) ([]*gitea.Comment, *gitea.Response, error) } type commentData = detailCommentData @@ -79,13 +79,13 @@ func runIssues(ctx stdctx.Context, cmd *cli.Command) error { return issues.RunIssuesList(ctx, cmd) } -func runIssueDetail(_ stdctx.Context, cmd *cli.Command, index string) error { +func runIssueDetail(requestCtx stdctx.Context, cmd *cli.Command, index string) error { ctx, idx, err := resolveIssueDetailContext(cmd, index) if err != nil { return err } - return runIssueDetailWithClient(ctx, idx, ctx.Login.Client()) + return runIssueDetailWithClient(requestCtx, ctx, idx, ctx.Login.Client().Issues) } func resolveIssueDetailContext(cmd *cli.Command, index string) (*context.TeaContext, int64, error) { @@ -108,12 +108,12 @@ func resolveIssueDetailContext(cmd *cli.Command, index string) (*context.TeaCont return ctx, idx, nil } -func runIssueDetailWithClient(ctx *context.TeaContext, idx int64, client issueDetailClient) error { - issue, _, err := client.GetIssue(ctx.Owner, ctx.Repo, idx) +func runIssueDetailWithClient(requestCtx stdctx.Context, ctx *context.TeaContext, idx int64, client issueDetailClient) error { + issue, _, err := client.GetIssue(requestCtx, ctx.Owner, ctx.Repo, idx) if err != nil { return err } - reactions, _, err := client.GetIssueReactions(ctx.Owner, ctx.Repo, idx) + reactions, _, err := client.ListIssueReactions(requestCtx, ctx.Owner, ctx.Repo, idx, gitea.ListIssueReactionsOptions{}) if err != nil { return err } @@ -121,14 +121,14 @@ func runIssueDetailWithClient(ctx *context.TeaContext, idx int64, client issueDe if ctx.IsSet("output") { switch ctx.String("output") { case "json": - return runIssueDetailAsJSON(ctx, issue) + return runIssueDetailAsJSON(requestCtx, ctx, issue) } } print.IssueDetails(issue, reactions) if issue.Comments > 0 { - err = interact.ShowCommentsMaybeInteractive(ctx, idx, issue.Comments) + err = interact.ShowCommentsMaybeInteractive(requestCtx, ctx, idx, issue.Comments) if err != nil { return fmt.Errorf("error loading comments: %v", err) } @@ -137,17 +137,17 @@ func runIssueDetailWithClient(ctx *context.TeaContext, idx int64, client issueDe return nil } -func runIssueDetailAsJSON(ctx *context.TeaContext, issue *gitea.Issue) error { - return runIssueDetailAsJSONWithClient(ctx, issue, ctx.Login.Client()) +func runIssueDetailAsJSON(requestCtx stdctx.Context, ctx *context.TeaContext, issue *gitea.Issue) error { + return runIssueDetailAsJSONWithClient(requestCtx, ctx, issue, ctx.Login.Client().Issues) } -func runIssueDetailAsJSONWithClient(ctx *context.TeaContext, issue *gitea.Issue, c issueCommentClient) error { +func runIssueDetailAsJSONWithClient(requestCtx stdctx.Context, ctx *context.TeaContext, issue *gitea.Issue, c issueCommentClient) error { opts := gitea.ListIssueCommentOptions{ListOptions: flags.GetListOptions(ctx.Command)} comments := []*gitea.Comment{} if ctx.Bool("comments") { var err error - comments, _, err = c.ListIssueComments(ctx.Owner, ctx.Repo, issue.Index, opts) + comments, _, err = c.ListIssueComments(requestCtx, ctx.Owner, ctx.Repo, issue.Index, opts) if err != nil { return err } diff --git a/cmd/issues/close.go b/cmd/issues/close.go index 8605307f..3b24d668 100644 --- a/cmd/issues/close.go +++ b/cmd/issues/close.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -30,7 +30,7 @@ var CmdIssuesClose = cli.Command{ } // editIssueState abstracts the arg parsing to edit the given issue -func editIssueState(_ stdctx.Context, cmd *cli.Command, opts gitea.EditIssueOption) error { +func editIssueState(requestCtx stdctx.Context, cmd *cli.Command, opts gitea.EditIssueOption) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -49,7 +49,7 @@ func editIssueState(_ stdctx.Context, cmd *cli.Command, opts gitea.EditIssueOpti client := ctx.Login.Client() for _, index := range indices { - issue, _, err := client.EditIssue(ctx.Owner, ctx.Repo, index, opts) + issue, _, err := client.Issues.EditIssue(requestCtx, ctx.Owner, ctx.Repo, index, opts) if err != nil { return err } diff --git a/cmd/issues/create.go b/cmd/issues/create.go index e5c40de8..8b0d7d53 100644 --- a/cmd/issues/create.go +++ b/cmd/issues/create.go @@ -25,7 +25,7 @@ var CmdIssuesCreate = cli.Command{ Flags: flags.IssuePRCreateFlags, } -func runIssuesCreate(_ stdctx.Context, cmd *cli.Command) error { +func runIssuesCreate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -35,20 +35,19 @@ func runIssuesCreate(_ stdctx.Context, cmd *cli.Command) error { } if ctx.IsInteractiveMode() { - err := interact.CreateIssue(ctx.Login, ctx.Owner, ctx.Repo) + err := interact.CreateIssue(requestCtx, ctx.Login, ctx.Owner, ctx.Repo) if err != nil && !interact.IsQuitting(err) { return err } return nil } - opts, err := flags.GetIssuePRCreateFlags(ctx) + opts, err := flags.GetIssuePRCreateFlags(requestCtx, ctx) if err != nil { return err } - return task.CreateIssue( - ctx.Login, + return task.CreateIssue(requestCtx, ctx.Login, ctx.Owner, ctx.Repo, *opts, diff --git a/cmd/issues/edit.go b/cmd/issues/edit.go index 588b8d2b..3635afa3 100644 --- a/cmd/issues/edit.go +++ b/cmd/issues/edit.go @@ -30,7 +30,7 @@ use an empty string (eg. --milestone "").`, Flags: flags.IssuePREditFlags, } -func runIssuesEdit(_ stdctx.Context, cmd *cli.Command) error { +func runIssuesEdit(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -57,7 +57,7 @@ func runIssuesEdit(_ stdctx.Context, cmd *cli.Command) error { for _, opts.Index = range indices { if ctx.IsInteractiveMode() { var err error - opts, err = interact.EditIssue(*ctx, opts.Index) + opts, err = interact.EditIssue(requestCtx, *ctx, opts.Index) if err != nil { if interact.IsQuitting(err) { return nil // user quit @@ -66,7 +66,7 @@ func runIssuesEdit(_ stdctx.Context, cmd *cli.Command) error { } } - issue, err := task.EditIssue(ctx, client, *opts) + issue, err := task.EditIssue(requestCtx, ctx, client, *opts) if err != nil { return err } diff --git a/cmd/issues/list.go b/cmd/issues/list.go index fd53d614..184c2fc6 100644 --- a/cmd/issues/list.go +++ b/cmd/issues/list.go @@ -8,7 +8,7 @@ import ( "errors" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -33,7 +33,7 @@ var CmdIssuesList = cli.Command{ } // RunIssuesList list issues -func RunIssuesList(_ stdctx.Context, cmd *cli.Command) error { +func RunIssuesList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -72,7 +72,7 @@ func RunIssuesList(_ stdctx.Context, cmd *cli.Command) error { milestones, _ := flags.MilestoneFilterFlag.GetValues(cmd) var issues []*gitea.Issue if ctx.Repo != "" { - issues, _, err = ctx.Login.Client().ListRepoIssues(owner, ctx.Repo, gitea.ListIssueOption{ + issues, _, err = ctx.Login.Client().Issues.ListRepoIssues(requestCtx, owner, ctx.Repo, gitea.ListIssueOption{ ListOptions: flags.GetListOptions(cmd), State: state, Type: kind, @@ -92,7 +92,7 @@ func RunIssuesList(_ stdctx.Context, cmd *cli.Command) error { if ctx.IsSet("assignee") { return errors.New("--assignee requires --repo (global issue search does not support assignee filter)") } - issues, _, err = ctx.Login.Client().ListIssues(gitea.ListIssueOption{ + issues, _, err = ctx.Login.Client().Issues.ListIssues(requestCtx, gitea.ListIssueOption{ ListOptions: flags.GetListOptions(cmd), State: state, Type: kind, diff --git a/cmd/issues/reopen.go b/cmd/issues/reopen.go index ef5aed35..30ba85fd 100644 --- a/cmd/issues/reopen.go +++ b/cmd/issues/reopen.go @@ -6,7 +6,7 @@ package issues import ( "context" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "github.com/urfave/cli/v3" diff --git a/cmd/issues_test.go b/cmd/issues_test.go index 22dd188a..5a11acb8 100644 --- a/cmd/issues_test.go +++ b/cmd/issues_test.go @@ -5,12 +5,13 @@ package cmd import ( "bytes" + stdctx "context" "encoding/json" "fmt" "testing" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/urfave/cli/v3" @@ -32,7 +33,7 @@ type fakeIssueCommentClient struct { comments []*gitea.Comment } -func (f *fakeIssueCommentClient) ListIssueComments(owner, repo string, index int64, _ gitea.ListIssueCommentOptions) ([]*gitea.Comment, *gitea.Response, error) { +func (f *fakeIssueCommentClient) ListIssueComments(_ stdctx.Context, owner, repo string, index int64, _ gitea.ListIssueCommentOptions) ([]*gitea.Comment, *gitea.Response, error) { f.owner = owner f.repo = repo f.index = index @@ -47,14 +48,14 @@ type fakeIssueDetailClient struct { reactions []*gitea.Reaction } -func (f *fakeIssueDetailClient) GetIssue(owner, repo string, index int64) (*gitea.Issue, *gitea.Response, error) { +func (f *fakeIssueDetailClient) GetIssue(_ stdctx.Context, owner, repo string, index int64) (*gitea.Issue, *gitea.Response, error) { f.owner = owner f.repo = repo f.index = index return f.issue, nil, nil } -func (f *fakeIssueDetailClient) GetIssueReactions(owner, repo string, index int64) ([]*gitea.Reaction, *gitea.Response, error) { +func (f *fakeIssueDetailClient) ListIssueReactions(_ stdctx.Context, owner, repo string, index int64, _ gitea.ListIssueReactionsOptions) ([]*gitea.Reaction, *gitea.Response, error) { f.owner = owner f.repo = repo f.index = index @@ -221,7 +222,7 @@ func TestRunIssueDetailAsJSON(t *testing.T) { require.NoError(t, testContext.Set("comments", "false")) } - err := runIssueDetailAsJSONWithClient(&testContext, &testCase.issue, client) + err := runIssueDetailAsJSONWithClient(t.Context(), &testContext, &testCase.issue, client) require.NoError(t, err, "Failed to run issue detail as JSON") if testCase.flagComments { @@ -351,7 +352,7 @@ func TestRunIssueDetailUsesOwnerFlag(t *testing.T) { reactions: []*gitea.Reaction{}, } - err = runIssueDetailWithClient(teaCtx, idx, client) + err = runIssueDetailWithClient(t.Context(), teaCtx, idx, client) require.NoError(t, err, "Expected runIssueDetail to succeed") assert.Equal(t, expectedOwner, client.owner) assert.Equal(t, expectedRepo, client.repo) diff --git a/cmd/labels/create.go b/cmd/labels/create.go index 1049170d..aaea9a5c 100644 --- a/cmd/labels/create.go +++ b/cmd/labels/create.go @@ -10,7 +10,7 @@ import ( "os" "strings" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -45,7 +45,7 @@ var CmdLabelCreate = cli.Command{ }, flags.AllDefaultFlags...), } -func runLabelCreate(_ stdctx.Context, cmd *cli.Command) error { +func runLabelCreate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -56,7 +56,7 @@ func runLabelCreate(_ stdctx.Context, cmd *cli.Command) error { labelFile := ctx.String("file") if len(labelFile) == 0 { - _, _, err := ctx.Login.Client().CreateLabel(ctx.Owner, ctx.Repo, gitea.CreateLabelOption{ + _, _, err := ctx.Login.Client().Repositories.CreateLabel(requestCtx, ctx.Owner, ctx.Repo, gitea.CreateLabelOption{ Name: ctx.String("name"), Color: ctx.String("color"), Description: ctx.String("description"), @@ -78,7 +78,7 @@ func runLabelCreate(_ stdctx.Context, cmd *cli.Command) error { if color == "" || name == "" { log.Printf("Line %d ignored because lack of enough fields: %s\n", i, line) } else { - _, _, err = ctx.Login.Client().CreateLabel(ctx.Owner, ctx.Repo, gitea.CreateLabelOption{ + _, _, err = ctx.Login.Client().Repositories.CreateLabel(requestCtx, ctx.Owner, ctx.Repo, gitea.CreateLabelOption{ Name: name, Color: color, Description: description, diff --git a/cmd/labels/delete.go b/cmd/labels/delete.go index d85c772d..b7b2a7ad 100644 --- a/cmd/labels/delete.go +++ b/cmd/labels/delete.go @@ -30,7 +30,7 @@ var CmdLabelDelete = cli.Command{ }, flags.AllDefaultFlags...), } -func runLabelDelete(_ stdctx.Context, cmd *cli.Command) error { +func runLabelDelete(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -43,12 +43,12 @@ func runLabelDelete(_ stdctx.Context, cmd *cli.Command) error { client := ctx.Login.Client() // Verify the label exists first - label, _, err := client.GetRepoLabel(ctx.Owner, ctx.Repo, labelID) + label, _, err := client.Repositories.GetRepoLabel(requestCtx, ctx.Owner, ctx.Repo, labelID) if err != nil { return fmt.Errorf("failed to get label %d: %w", labelID, err) } - _, err = client.DeleteLabel(ctx.Owner, ctx.Repo, labelID) + _, err = client.Repositories.DeleteLabel(requestCtx, ctx.Owner, ctx.Repo, labelID) if err != nil { return fmt.Errorf("failed to delete label '%s' (id: %d): %w", label.Name, labelID, err) } diff --git a/cmd/labels/list.go b/cmd/labels/list.go index 7a84668f..22a1bffe 100644 --- a/cmd/labels/list.go +++ b/cmd/labels/list.go @@ -6,7 +6,7 @@ package labels import ( stdctx "context" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -35,7 +35,7 @@ var CmdLabelsList = cli.Command{ } // RunLabelsList list labels. -func RunLabelsList(_ stdctx.Context, cmd *cli.Command) error { +func RunLabelsList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -45,7 +45,7 @@ func RunLabelsList(_ stdctx.Context, cmd *cli.Command) error { } client := ctx.Login.Client() - labels, _, err := client.ListRepoLabels(ctx.Owner, ctx.Repo, gitea.ListLabelsOptions{ + labels, _, err := client.Repositories.ListRepoLabels(requestCtx, ctx.Owner, ctx.Repo, gitea.ListLabelsOptions{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { diff --git a/cmd/labels/update.go b/cmd/labels/update.go index bba2e68c..640d1acd 100644 --- a/cmd/labels/update.go +++ b/cmd/labels/update.go @@ -6,7 +6,7 @@ package labels import ( stdctx "context" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -40,7 +40,7 @@ var CmdLabelUpdate = cli.Command{ }, flags.AllDefaultFlags...), } -func runLabelUpdate(_ stdctx.Context, cmd *cli.Command) error { +func runLabelUpdate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -66,7 +66,7 @@ func runLabelUpdate(_ stdctx.Context, cmd *cli.Command) error { pDescription = &description } - _, _, err = ctx.Login.Client().EditLabel(ctx.Owner, ctx.Repo, id, gitea.EditLabelOption{ + _, _, err = ctx.Login.Client().Repositories.EditLabel(requestCtx, ctx.Owner, ctx.Repo, id, gitea.EditLabelOption{ Name: pName, Color: pColor, Description: pDescription, diff --git a/cmd/login/add.go b/cmd/login/add.go index d3996a99..9a821f28 100644 --- a/cmd/login/add.go +++ b/cmd/login/add.go @@ -110,10 +110,10 @@ var CmdLoginAdd = cli.Command{ Action: runLoginAdd, } -func runLoginAdd(_ context.Context, cmd *cli.Command) error { +func runLoginAdd(requestCtx context.Context, cmd *cli.Command) error { // if no args create login interactive if cmd.NumFlags() == 0 { - if err := interact.CreateLogin(); err != nil && !interact.IsQuitting(err) { + if err := interact.CreateLogin(requestCtx); err != nil && !interact.IsQuitting(err) { return fmt.Errorf("error adding login: %w", err) } return nil @@ -137,7 +137,7 @@ func runLoginAdd(_ context.Context, cmd *cli.Command) error { opts.RedirectURL = cmd.String("redirect-url") } - return auth.OAuthLoginWithFullOptions(opts) + return auth.OAuthLoginWithFullOptions(requestCtx, opts) } sshAgent := false @@ -147,6 +147,7 @@ func runLoginAdd(_ context.Context, cmd *cli.Command) error { // else use args to add login return task.CreateLogin( + requestCtx, cmd.String("name"), cmd.String("token"), cmd.String("user"), diff --git a/cmd/login/default.go b/cmd/login/default.go index ecb8c35c..76c0c1e8 100644 --- a/cmd/login/default.go +++ b/cmd/login/default.go @@ -23,7 +23,7 @@ var CmdLoginSetDefault = cli.Command{ Flags: []cli.Flag{&flags.OutputFlag}, } -func runLoginSetDefault(_ context.Context, cmd *cli.Command) error { +func runLoginSetDefault(requestCtx context.Context, cmd *cli.Command) error { if cmd.Args().Len() == 0 { l, err := config.GetDefaultLogin() if err != nil { diff --git a/cmd/login/delete.go b/cmd/login/delete.go index ec95295c..835c7247 100644 --- a/cmd/login/delete.go +++ b/cmd/login/delete.go @@ -23,7 +23,7 @@ var CmdLoginDelete = cli.Command{ } // RunLoginDelete runs the action of a login delete command -func RunLoginDelete(_ context.Context, cmd *cli.Command) error { +func RunLoginDelete(requestCtx context.Context, cmd *cli.Command) error { logins, err := config.GetLogins() if err != nil { return err diff --git a/cmd/login/edit.go b/cmd/login/edit.go index ad605a56..03683255 100644 --- a/cmd/login/edit.go +++ b/cmd/login/edit.go @@ -28,7 +28,7 @@ var CmdLoginEdit = cli.Command{ Flags: []cli.Flag{&flags.OutputFlag}, } -func runLoginEdit(_ context.Context, _ *cli.Command) error { +func runLoginEdit(requestCtx context.Context, _ *cli.Command) error { ymlPath := config.GetConfigPath() if e, ok := os.LookupEnv("EDITOR"); ok && e != "" { cmd := exec.Command(e, ymlPath) diff --git a/cmd/login/helper.go b/cmd/login/helper.go index 106786bb..67402bf6 100644 --- a/cmd/login/helper.go +++ b/cmd/login/helper.go @@ -29,14 +29,14 @@ var CmdLoginHelper = cli.Command{ Name: "store", Description: "Command drops", Aliases: []string{"erase"}, - Action: func(_ context.Context, _ *cli.Command) error { + Action: func(requestCtx context.Context, _ *cli.Command) error { return nil }, }, { Name: "setup", Description: "Setup helper to tea authenticate", - Action: func(_ context.Context, _ *cli.Command) error { + Action: func(requestCtx context.Context, _ *cli.Command) error { logins, err := config.GetLogins() if err != nil { return err @@ -64,7 +64,7 @@ var CmdLoginHelper = cli.Command{ Usage: "Use a specific login", }, }, - Action: func(_ context.Context, cmd *cli.Command) error { + Action: func(requestCtx context.Context, cmd *cli.Command) error { wants := map[string]string{} s := bufio.NewScanner(os.Stdin) for s.Scan() { diff --git a/cmd/login/list.go b/cmd/login/list.go index 7765889f..d17ccc3b 100644 --- a/cmd/login/list.go +++ b/cmd/login/list.go @@ -25,7 +25,7 @@ var CmdLoginList = cli.Command{ } // RunLoginList list all logins -func RunLoginList(_ context.Context, cmd *cli.Command) error { +func RunLoginList(requestCtx context.Context, cmd *cli.Command) error { logins, err := config.GetLogins() if err != nil { return err diff --git a/cmd/login/oauth_refresh.go b/cmd/login/oauth_refresh.go index 6eaa4bd8..969e47f2 100644 --- a/cmd/login/oauth_refresh.go +++ b/cmd/login/oauth_refresh.go @@ -22,7 +22,7 @@ var CmdLoginOAuthRefresh = cli.Command{ Action: runLoginOAuthRefresh, } -func runLoginOAuthRefresh(_ context.Context, cmd *cli.Command) error { +func runLoginOAuthRefresh(requestCtx context.Context, cmd *cli.Command) error { var loginName string // Get login name from args or use default @@ -62,7 +62,7 @@ func runLoginOAuthRefresh(_ context.Context, cmd *cli.Command) error { fmt.Printf("Token refresh failed: %s\n", err) fmt.Println("Opening browser for re-authentication...") - if err := auth.ReauthenticateLogin(login); err != nil { + if err := auth.ReauthenticateLogin(requestCtx, login); err != nil { return fmt.Errorf("re-authentication failed: %s", err) } diff --git a/cmd/milestones.go b/cmd/milestones.go index 3a4b7d5c..4250c52e 100644 --- a/cmd/milestones.go +++ b/cmd/milestones.go @@ -40,7 +40,7 @@ func runMilestones(ctx stdctx.Context, cmd *cli.Command) error { return milestones.RunMilestonesList(ctx, cmd) } -func runMilestoneDetail(_ stdctx.Context, cmd *cli.Command, name string) error { +func runMilestoneDetail(requestCtx stdctx.Context, cmd *cli.Command, name string) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -50,7 +50,7 @@ func runMilestoneDetail(_ stdctx.Context, cmd *cli.Command, name string) error { } client := ctx.Login.Client() - milestone, _, err := client.GetMilestoneByName(ctx.Owner, ctx.Repo, name) + milestone, _, err := client.Repositories.GetMilestoneByName(requestCtx, ctx.Owner, ctx.Repo, name) if err != nil { return err } diff --git a/cmd/milestones/create.go b/cmd/milestones/create.go index b06c7030..1c8c1dfc 100644 --- a/cmd/milestones/create.go +++ b/cmd/milestones/create.go @@ -8,7 +8,7 @@ import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/araddon/dateparse" "github.com/urfave/cli/v3" @@ -50,7 +50,7 @@ var CmdMilestonesCreate = cli.Command{ }, flags.AllDefaultFlags...), } -func runMilestonesCreate(_ stdctx.Context, cmd *cli.Command) error { +func runMilestonesCreate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -72,14 +72,13 @@ func runMilestonesCreate(_ stdctx.Context, cmd *cli.Command) error { } if ctx.IsInteractiveMode() { - if err := interact.CreateMilestone(ctx.Login, ctx.Owner, ctx.Repo); err != nil && !interact.IsQuitting(err) { + if err := interact.CreateMilestone(requestCtx, ctx.Login, ctx.Owner, ctx.Repo); err != nil && !interact.IsQuitting(err) { return err } return nil } - return task.CreateMilestone( - ctx.Login, + return task.CreateMilestone(requestCtx, ctx.Login, ctx.Owner, ctx.Repo, ctx.String("title"), diff --git a/cmd/milestones/delete.go b/cmd/milestones/delete.go index 29308da0..d4ef1646 100644 --- a/cmd/milestones/delete.go +++ b/cmd/milestones/delete.go @@ -23,7 +23,7 @@ var CmdMilestonesDelete = cli.Command{ Flags: flags.AllDefaultFlags, } -func deleteMilestone(_ stdctx.Context, cmd *cli.Command) error { +func deleteMilestone(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -33,6 +33,6 @@ func deleteMilestone(_ stdctx.Context, cmd *cli.Command) error { } client := ctx.Login.Client() - _, err = client.DeleteMilestoneByName(ctx.Owner, ctx.Repo, ctx.Args().First()) + _, err = client.Repositories.DeleteMilestoneByName(requestCtx, ctx.Owner, ctx.Repo, ctx.Args().First()) return err } diff --git a/cmd/milestones/issues.go b/cmd/milestones/issues.go index 5d913d63..2f7c18b7 100644 --- a/cmd/milestones/issues.go +++ b/cmd/milestones/issues.go @@ -8,7 +8,7 @@ import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/urfave/cli/v3" "gitea.dev/tea/cmd/flags" @@ -71,7 +71,7 @@ var CmdMilestoneRemoveIssue = cli.Command{ Flags: flags.AllDefaultFlags, } -func runMilestoneIssueList(_ stdctx.Context, cmd *cli.Command) error { +func runMilestoneIssueList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -97,12 +97,12 @@ func runMilestoneIssueList(_ stdctx.Context, cmd *cli.Command) error { milestone := ctx.Args().First() // make sure milestone exist - _, _, err = client.GetMilestoneByName(ctx.Owner, ctx.Repo, milestone) + _, _, err = client.Repositories.GetMilestoneByName(requestCtx, ctx.Owner, ctx.Repo, milestone) if err != nil { return err } - issues, _, err := client.ListRepoIssues(ctx.Owner, ctx.Repo, gitea.ListIssueOption{ + issues, _, err := client.Issues.ListRepoIssues(requestCtx, ctx.Owner, ctx.Repo, gitea.ListIssueOption{ ListOptions: flags.GetListOptions(cmd), Milestones: []string{milestone}, Type: kind, @@ -119,7 +119,7 @@ func runMilestoneIssueList(_ stdctx.Context, cmd *cli.Command) error { return print.IssuesPullsList(issues, ctx.Output, fields) } -func runMilestoneIssueAdd(_ stdctx.Context, cmd *cli.Command) error { +func runMilestoneIssueAdd(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -140,12 +140,12 @@ func runMilestoneIssueAdd(_ stdctx.Context, cmd *cli.Command) error { } // make sure milestone exist - mile, _, err := client.GetMilestoneByName(ctx.Owner, ctx.Repo, mileName) + mile, _, err := client.Repositories.GetMilestoneByName(requestCtx, ctx.Owner, ctx.Repo, mileName) if err != nil { return fmt.Errorf("failed to get milestone '%s': %w", mileName, err) } - _, _, err = client.EditIssue(ctx.Owner, ctx.Repo, idx, gitea.EditIssueOption{ + _, _, err = client.Issues.EditIssue(requestCtx, ctx.Owner, ctx.Repo, idx, gitea.EditIssueOption{ Milestone: &mile.ID, }) if err != nil { @@ -154,7 +154,7 @@ func runMilestoneIssueAdd(_ stdctx.Context, cmd *cli.Command) error { return nil } -func runMilestoneIssueRemove(_ stdctx.Context, cmd *cli.Command) error { +func runMilestoneIssueRemove(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -174,7 +174,7 @@ func runMilestoneIssueRemove(_ stdctx.Context, cmd *cli.Command) error { return fmt.Errorf("invalid issue index '%s': %w", issueIndex, err) } - issue, _, err := client.GetIssue(ctx.Owner, ctx.Repo, idx) + issue, _, err := client.Issues.GetIssue(requestCtx, ctx.Owner, ctx.Repo, idx) if err != nil { return fmt.Errorf("failed to get issue #%d: %w", idx, err) } @@ -188,7 +188,7 @@ func runMilestoneIssueRemove(_ stdctx.Context, cmd *cli.Command) error { } zero := int64(0) - _, _, err = client.EditIssue(ctx.Owner, ctx.Repo, idx, gitea.EditIssueOption{ + _, _, err = client.Issues.EditIssue(requestCtx, ctx.Owner, ctx.Repo, idx, gitea.EditIssueOption{ Milestone: &zero, }) if err != nil { diff --git a/cmd/milestones/list.go b/cmd/milestones/list.go index 939829ee..7db0998f 100644 --- a/cmd/milestones/list.go +++ b/cmd/milestones/list.go @@ -6,7 +6,7 @@ package milestones import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -39,7 +39,7 @@ var CmdMilestonesList = cli.Command{ } // RunMilestonesList list milestones -func RunMilestonesList(_ stdctx.Context, cmd *cli.Command) error { +func RunMilestonesList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -62,7 +62,7 @@ func RunMilestonesList(_ stdctx.Context, cmd *cli.Command) error { } client := ctx.Login.Client() - milestones, _, err := client.ListRepoMilestones(ctx.Owner, ctx.Repo, gitea.ListMilestoneOption{ + milestones, _, err := client.Repositories.ListMilestones(requestCtx, ctx.Owner, ctx.Repo, gitea.ListMilestoneOption{ ListOptions: flags.GetListOptions(cmd), State: state, }) diff --git a/cmd/milestones/reopen.go b/cmd/milestones/reopen.go index 4553d3a9..f79ac966 100644 --- a/cmd/milestones/reopen.go +++ b/cmd/milestones/reopen.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -28,7 +28,7 @@ var CmdMilestonesReopen = cli.Command{ Flags: flags.AllDefaultFlags, } -func editMilestoneStatus(_ stdctx.Context, cmd *cli.Command, close bool) error { +func editMilestoneStatus(requestCtx stdctx.Context, cmd *cli.Command, close bool) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -58,7 +58,7 @@ func editMilestoneStatus(_ stdctx.Context, cmd *cli.Command, close bool) error { State: &state, Title: ms, } - milestone, _, err := client.EditMilestoneByName(ctx.Owner, ctx.Repo, ms, opts) + milestone, _, err := client.Repositories.EditMilestoneByName(requestCtx, ctx.Owner, ctx.Repo, ms, opts) if err != nil { return err } diff --git a/cmd/notifications/list.go b/cmd/notifications/list.go index 5c9f2123..9daf021f 100644 --- a/cmd/notifications/list.go +++ b/cmd/notifications/list.go @@ -6,7 +6,7 @@ package notifications import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -59,7 +59,7 @@ func RunNotificationsList(ctx stdctx.Context, cmd *cli.Command) error { } // listNotifications will get the notifications based on status and subject type -func listNotifications(_ stdctx.Context, cmd *cli.Command, status []gitea.NotifyStatus, subjects []gitea.NotifySubjectType) error { +func listNotifications(requestCtx stdctx.Context, cmd *cli.Command, status []gitea.NotifyStatus, subjects []gitea.NotifySubjectType) error { var news []*gitea.NotificationThread var err error @@ -87,7 +87,7 @@ func listNotifications(_ stdctx.Context, cmd *cli.Command, status []gitea.Notify fields = append(fields, "repository") } - news, _, err = client.ListNotifications(gitea.ListNotificationOptions{ + news, _, err = client.Notifications.List(requestCtx, gitea.ListNotificationOptions{ ListOptions: listOpts, Status: status, SubjectTypes: subjects, @@ -96,7 +96,7 @@ func listNotifications(_ stdctx.Context, cmd *cli.Command, status []gitea.Notify if err := ctx.Ensure(context.CtxRequirement{RemoteRepo: true}); err != nil { return err } - news, _, err = client.ListRepoNotifications(ctx.Owner, ctx.Repo, gitea.ListNotificationOptions{ + news, _, err = client.Notifications.ListByRepo(requestCtx, ctx.Owner, ctx.Repo, gitea.ListNotificationOptions{ ListOptions: listOpts, Status: status, SubjectTypes: subjects, diff --git a/cmd/notifications/mark_as.go b/cmd/notifications/mark_as.go index 19cee30c..7d436bbb 100644 --- a/cmd/notifications/mark_as.go +++ b/cmd/notifications/mark_as.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/urfave/cli/v3" "gitea.dev/tea/cmd/flags" @@ -23,7 +23,7 @@ var CmdNotificationsMarkRead = cli.Command{ Description: "Mark all filtered or a specific notification as read", ArgsUsage: "[all | ]", Flags: flags.NotificationFlags, - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -35,7 +35,7 @@ var CmdNotificationsMarkRead = cli.Command{ if !ctx.IsSet(flags.NotificationStateFlag.Name) { filter = []string{string(gitea.NotifyStatusUnread)} } - return markNotificationAs(ctx, filter, gitea.NotifyStatusRead) + return markNotificationAs(requestCtx, ctx, filter, gitea.NotifyStatusRead) }, } @@ -47,7 +47,7 @@ var CmdNotificationsMarkUnread = cli.Command{ Description: "Mark all filtered or a specific notification as unread", ArgsUsage: "[all | ]", Flags: flags.NotificationFlags, - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -59,7 +59,7 @@ var CmdNotificationsMarkUnread = cli.Command{ if !ctx.IsSet(flags.NotificationStateFlag.Name) { filter = []string{string(gitea.NotifyStatusRead)} } - return markNotificationAs(ctx, filter, gitea.NotifyStatusUnread) + return markNotificationAs(requestCtx, ctx, filter, gitea.NotifyStatusUnread) }, } @@ -71,7 +71,7 @@ var CmdNotificationsMarkPinned = cli.Command{ Description: "Mark all filtered or a specific notification as pinned", ArgsUsage: "[all | ]", Flags: flags.NotificationFlags, - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -83,7 +83,7 @@ var CmdNotificationsMarkPinned = cli.Command{ if !ctx.IsSet(flags.NotificationStateFlag.Name) { filter = []string{string(gitea.NotifyStatusUnread)} } - return markNotificationAs(ctx, filter, gitea.NotifyStatusPinned) + return markNotificationAs(requestCtx, ctx, filter, gitea.NotifyStatusPinned) }, } @@ -94,18 +94,18 @@ var CmdNotificationsUnpin = cli.Command{ Description: "Marks all pinned or a specific notification as read", ArgsUsage: "[all | ]", Flags: flags.NotificationFlags, - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err } filter := []string{string(gitea.NotifyStatusPinned)} // NOTE: we implicitly mark it as read, to match web UI semantics. marking as unread might be more useful? - return markNotificationAs(ctx, filter, gitea.NotifyStatusRead) + return markNotificationAs(requestCtx, ctx, filter, gitea.NotifyStatusRead) }, } -func markNotificationAs(cmd *context.TeaContext, filterStates []string, targetState gitea.NotifyStatus) (err error) { +func markNotificationAs(ctx stdctx.Context, cmd *context.TeaContext, filterStates []string, targetState gitea.NotifyStatus) (err error) { client := cmd.Login.Client() subject := cmd.Args().First() allRepos := cmd.Bool("mine") @@ -120,12 +120,12 @@ func markNotificationAs(cmd *context.TeaContext, filterStates []string, targetSt opts := gitea.MarkNotificationOptions{Status: states, ToStatus: targetState} if allRepos { - _, _, err = client.ReadNotifications(opts) + _, _, err = client.Notifications.MarkRead(ctx, opts) } else { if err := cmd.Ensure(context.CtxRequirement{RemoteRepo: true}); err != nil { return err } - _, _, err = client.ReadRepoNotifications(cmd.Owner, cmd.Repo, opts) + _, _, err = client.Notifications.MarkReadByRepo(ctx, cmd.Owner, cmd.Repo, opts) } // TODO: print all affected notification subject URLs @@ -136,12 +136,12 @@ func markNotificationAs(cmd *context.TeaContext, filterStates []string, targetSt if err != nil { return err } - _, _, err = client.ReadNotification(id, targetState) + _, _, err = client.Notifications.MarkReadByID(ctx, id, targetState) if err != nil { return err } - n, _, err := client.GetNotification(id) + n, _, err := client.Notifications.GetByID(ctx, id) if err != nil { return err } diff --git a/cmd/open.go b/cmd/open.go index 4669bbed..c69f94bf 100644 --- a/cmd/open.go +++ b/cmd/open.go @@ -27,7 +27,7 @@ var CmdOpen = cli.Command{ Flags: append([]cli.Flag{}, flags.LoginRepoFlags...), } -func runOpen(_ stdctx.Context, cmd *cli.Command) error { +func runOpen(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err diff --git a/cmd/organizations.go b/cmd/organizations.go index 7b11c1c4..86315528 100644 --- a/cmd/organizations.go +++ b/cmd/organizations.go @@ -36,17 +36,13 @@ func runOrganizations(ctx stdctx.Context, cmd *cli.Command) error { return err } if teaCtx.Args().Len() == 1 { - return runOrganizationDetail(teaCtx) + org, _, err := teaCtx.Login.Client().Organizations.GetOrg(ctx, teaCtx.Args().First()) + if err != nil { + return err + } + + print.OrganizationDetails(org) + return nil } return organizations.RunOrganizationList(ctx, cmd) } - -func runOrganizationDetail(ctx *context.TeaContext) error { - org, _, err := ctx.Login.Client().GetOrg(ctx.Args().First()) - if err != nil { - return err - } - - print.OrganizationDetails(org) - return nil -} diff --git a/cmd/organizations/create.go b/cmd/organizations/create.go index e85dcbe7..ff1cfce9 100644 --- a/cmd/organizations/create.go +++ b/cmd/organizations/create.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -53,7 +53,7 @@ var CmdOrganizationCreate = cli.Command{ } // RunOrganizationCreate sets up a new organization -func RunOrganizationCreate(_ stdctx.Context, cmd *cli.Command) error { +func RunOrganizationCreate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -75,7 +75,7 @@ func RunOrganizationCreate(_ stdctx.Context, cmd *cli.Command) error { return fmt.Errorf("unknown visibility '%s'", ctx.String("visibility")) } - org, _, err := ctx.Login.Client().CreateOrg(gitea.CreateOrgOption{ + org, _, err := ctx.Login.Client().Organizations.CreateOrg(requestCtx, gitea.CreateOrgOption{ Name: ctx.Args().First(), FullName: ctx.String("full-name"), Description: ctx.String("description"), diff --git a/cmd/organizations/delete.go b/cmd/organizations/delete.go index a29e345f..c70740a6 100644 --- a/cmd/organizations/delete.go +++ b/cmd/organizations/delete.go @@ -28,7 +28,7 @@ var CmdOrganizationDelete = cli.Command{ } // RunOrganizationDelete delete user organization -func RunOrganizationDelete(_ stdctx.Context, cmd *cli.Command) error { +func RunOrganizationDelete(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -40,7 +40,7 @@ func RunOrganizationDelete(_ stdctx.Context, cmd *cli.Command) error { return fmt.Errorf("organization name is required") } - response, err := client.DeleteOrg(ctx.Args().First()) + response, err := client.Organizations.DeleteOrg(requestCtx, ctx.Args().First()) if response != nil && response.StatusCode == 404 { return fmt.Errorf("organization not found: %s", ctx.Args().First()) } diff --git a/cmd/organizations/list.go b/cmd/organizations/list.go index dc75b45e..e1951aef 100644 --- a/cmd/organizations/list.go +++ b/cmd/organizations/list.go @@ -6,7 +6,7 @@ package organizations import ( stdctx "context" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/urfave/cli/v3" "gitea.dev/tea/cmd/flags" @@ -29,14 +29,14 @@ var CmdOrganizationList = cli.Command{ } // RunOrganizationList list user organizations -func RunOrganizationList(_ stdctx.Context, cmd *cli.Command) error { +func RunOrganizationList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err } client := ctx.Login.Client() - userOrganizations, _, err := client.ListUserOrgs(ctx.Login.User, gitea.ListOrgsOptions{ + userOrganizations, _, err := client.Organizations.ListUserOrgs(requestCtx, ctx.Login.User, gitea.ListOrgsOptions{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { diff --git a/cmd/pulls.go b/cmd/pulls.go index 735b4a33..678b9dd7 100644 --- a/cmd/pulls.go +++ b/cmd/pulls.go @@ -8,7 +8,7 @@ import ( "fmt" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/cmd/pulls" @@ -91,7 +91,7 @@ func runPulls(ctx stdctx.Context, cmd *cli.Command) error { return pulls.RunPullsList(ctx, cmd) } -func runPullDetail(_ stdctx.Context, cmd *cli.Command, index string) error { +func runPullDetail(requestCtx stdctx.Context, cmd *cli.Command, index string) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -105,14 +105,14 @@ func runPullDetail(_ stdctx.Context, cmd *cli.Command, index string) error { } client := ctx.Login.Client() - pr, _, err := client.GetPullRequest(ctx.Owner, ctx.Repo, idx) + pr, _, err := client.PullRequests.GetPullRequest(requestCtx, ctx.Owner, ctx.Repo, idx) if err != nil { return err } var reviews []*gitea.PullReview for page := 1; ; { - page_reviews, resp, err := client.ListPullReviews(ctx.Owner, ctx.Repo, idx, gitea.ListPullReviewsOptions{ + page_reviews, resp, err := client.PullRequests.ListPullReviews(requestCtx, ctx.Owner, ctx.Repo, idx, gitea.ListPullReviewsOptions{ ListOptions: gitea.ListOptions{Page: page, PageSize: 50}, }) if err != nil { @@ -129,11 +129,11 @@ func runPullDetail(_ stdctx.Context, cmd *cli.Command, index string) error { if ctx.IsSet("output") { switch ctx.String("output") { case "json": - return runPullDetailAsJSON(ctx, pr, reviews) + return runPullDetailAsJSON(requestCtx, ctx, pr, reviews) } } - ci, _, err := client.GetCombinedStatus(ctx.Owner, ctx.Repo, pr.Head.Sha) + ci, _, err := client.Repositories.GetCombinedStatus(requestCtx, ctx.Owner, ctx.Repo, pr.Head.Sha) if err != nil { fmt.Printf("error while loading CI: %v\n", err) } @@ -141,7 +141,7 @@ func runPullDetail(_ stdctx.Context, cmd *cli.Command, index string) error { print.PullDetails(pr, reviews, ci) if pr.Comments > 0 { - err = interact.ShowCommentsMaybeInteractive(ctx, idx, pr.Comments) + err = interact.ShowCommentsMaybeInteractive(requestCtx, ctx, idx, pr.Comments) if err != nil { fmt.Printf("error loading comments: %v\n", err) } @@ -150,7 +150,7 @@ func runPullDetail(_ stdctx.Context, cmd *cli.Command, index string) error { return nil } -func runPullDetailAsJSON(ctx *context.TeaContext, pr *gitea.PullRequest, reviews []*gitea.PullReview) error { +func runPullDetailAsJSON(requestCtx stdctx.Context, ctx *context.TeaContext, pr *gitea.PullRequest, reviews []*gitea.PullReview) error { c := ctx.Login.Client() opts := gitea.ListIssueCommentOptions{ListOptions: flags.GetListOptions(ctx.Command)} @@ -185,7 +185,7 @@ func runPullDetailAsJSON(ctx *context.TeaContext, pr *gitea.PullRequest, reviews } if ctx.Bool("comments") { - comments, _, err := c.ListIssueComments(ctx.Owner, ctx.Repo, pr.Index, opts) + comments, _, err := c.Issues.ListIssueComments(requestCtx, ctx.Owner, ctx.Repo, pr.Index, opts) if err != nil { return err } diff --git a/cmd/pulls/approve.go b/cmd/pulls/approve.go index f76a7248..84d5b259 100644 --- a/cmd/pulls/approve.go +++ b/cmd/pulls/approve.go @@ -6,7 +6,7 @@ package pulls import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/urfave/cli/v3" "gitea.dev/tea/cmd/flags" @@ -20,12 +20,12 @@ var CmdPullsApprove = cli.Command{ Usage: "Approve a pull request", Description: "Approve a pull request", ArgsUsage: " []", - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err } - return runPullReview(ctx, gitea.ReviewStateApproved, false) + return runPullReview(requestCtx, ctx, gitea.ReviewStateApproved, false) }, Flags: flags.AllDefaultFlags, } diff --git a/cmd/pulls/checkout.go b/cmd/pulls/checkout.go index cd1c21bd..90c74c3d 100644 --- a/cmd/pulls/checkout.go +++ b/cmd/pulls/checkout.go @@ -33,7 +33,7 @@ var CmdPullsCheckout = cli.Command{ }, flags.AllDefaultFlags...), } -func runPullsCheckout(_ stdctx.Context, cmd *cli.Command) error { +func runPullsCheckout(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -52,7 +52,7 @@ func runPullsCheckout(_ stdctx.Context, cmd *cli.Command) error { return err } - if err := task.PullCheckout(ctx.Login, ctx.Owner, ctx.Repo, ctx.Bool("branch"), idx, interact.PromptPassword); err != nil && !interact.IsQuitting(err) { + if err := task.PullCheckout(requestCtx, ctx.Login, ctx.Owner, ctx.Repo, ctx.Bool("branch"), idx, interact.PromptPassword); err != nil && !interact.IsQuitting(err) { return err } return nil diff --git a/cmd/pulls/clean.go b/cmd/pulls/clean.go index 2f8550bc..5bee1b66 100644 --- a/cmd/pulls/clean.go +++ b/cmd/pulls/clean.go @@ -32,7 +32,7 @@ var CmdPullsClean = cli.Command{ }, flags.AllDefaultFlags...), } -func runPullsClean(_ stdctx.Context, cmd *cli.Command) error { +func runPullsClean(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -49,7 +49,7 @@ func runPullsClean(_ stdctx.Context, cmd *cli.Command) error { return err } - if err := task.PullClean(ctx.Login, ctx.Owner, ctx.Repo, idx, ctx.Bool("ignore-sha"), interact.PromptPassword); err != nil && !interact.IsQuitting(err) { + if err := task.PullClean(requestCtx, ctx.Login, ctx.Owner, ctx.Repo, idx, ctx.Bool("ignore-sha"), interact.PromptPassword); err != nil && !interact.IsQuitting(err) { return err } return nil diff --git a/cmd/pulls/close.go b/cmd/pulls/close.go index 94331e21..766f564c 100644 --- a/cmd/pulls/close.go +++ b/cmd/pulls/close.go @@ -6,7 +6,7 @@ package pulls import ( "context" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "github.com/urfave/cli/v3" diff --git a/cmd/pulls/create.go b/cmd/pulls/create.go index 1352076d..fb1abb34 100644 --- a/cmd/pulls/create.go +++ b/cmd/pulls/create.go @@ -6,7 +6,7 @@ package pulls import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/urfave/cli/v3" "gitea.dev/tea/cmd/flags" @@ -49,7 +49,7 @@ var CmdPullsCreate = cli.Command{ }, flags.IssuePRCreateFlags...), } -func runPullsCreate(_ stdctx.Context, cmd *cli.Command) error { +func runPullsCreate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -63,20 +63,21 @@ func runPullsCreate(_ stdctx.Context, cmd *cli.Command) error { // no args -> interactive mode if ctx.IsInteractiveMode() { - if err := interact.CreatePull(ctx); err != nil && !interact.IsQuitting(err) { + if err := interact.CreatePull(requestCtx, ctx); err != nil && !interact.IsQuitting(err) { return err } return nil } // else use args to create PR - opts, err := flags.GetIssuePRCreateFlags(ctx) + opts, err := flags.GetIssuePRCreateFlags(requestCtx, ctx) if err != nil { return err } if ctx.Bool("agit") { return task.CreateAgitFlowPull( + requestCtx, ctx, ctx.String("remote"), ctx.String("head"), @@ -93,6 +94,7 @@ func runPullsCreate(_ stdctx.Context, cmd *cli.Command) error { } return task.CreatePull( + requestCtx, ctx, ctx.String("base"), ctx.String("head"), diff --git a/cmd/pulls/edit.go b/cmd/pulls/edit.go index 22855390..272646e2 100644 --- a/cmd/pulls/edit.go +++ b/cmd/pulls/edit.go @@ -8,7 +8,7 @@ import ( "fmt" "strings" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -40,7 +40,7 @@ use an empty string (eg. --milestone "").`, ), } -func runPullsEdit(_ stdctx.Context, cmd *cli.Command) error { +func runPullsEdit(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -72,7 +72,7 @@ func runPullsEdit(_ stdctx.Context, cmd *cli.Command) error { client := ctx.Login.Client() for _, opts.Index = range indices { - pr, err := task.EditPull(ctx, client, *opts) + pr, err := task.EditPull(requestCtx, ctx, client, *opts) if err != nil { return err } @@ -87,7 +87,7 @@ func runPullsEdit(_ stdctx.Context, cmd *cli.Command) error { } // editPullState abstracts the arg parsing to edit the given pull request -func editPullState(_ stdctx.Context, cmd *cli.Command, opts gitea.EditPullRequestOption) error { +func editPullState(requestCtx stdctx.Context, cmd *cli.Command, opts gitea.EditPullRequestOption) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -106,7 +106,7 @@ func editPullState(_ stdctx.Context, cmd *cli.Command, opts gitea.EditPullReques client := ctx.Login.Client() for _, index := range indices { - pr, _, err := client.EditPullRequest(ctx.Owner, ctx.Repo, index, opts) + pr, _, err := client.PullRequests.EditPullRequest(requestCtx, ctx.Owner, ctx.Repo, index, opts) if err != nil { return err } diff --git a/cmd/pulls/list.go b/cmd/pulls/list.go index a63d914e..f772e0f8 100644 --- a/cmd/pulls/list.go +++ b/cmd/pulls/list.go @@ -8,7 +8,7 @@ import ( "fmt" "slices" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/urfave/cli/v3" "gitea.dev/tea/cmd/flags" @@ -32,7 +32,7 @@ var CmdPullsList = cli.Command{ } // RunPullsList return list of pulls -func RunPullsList(_ stdctx.Context, cmd *cli.Command) error { +func RunPullsList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -47,7 +47,7 @@ func RunPullsList(_ stdctx.Context, cmd *cli.Command) error { } client := ctx.Login.Client() - prs, _, err := client.ListRepoPullRequests(ctx.Owner, ctx.Repo, gitea.ListPullRequestsOptions{ + prs, _, err := client.PullRequests.ListRepoPullRequests(requestCtx, ctx.Owner, ctx.Repo, gitea.ListPullRequestsOptions{ ListOptions: flags.GetListOptions(cmd), State: state, }) @@ -67,7 +67,7 @@ func RunPullsList(_ stdctx.Context, cmd *cli.Command) error { if pr.Head == nil || pr.Head.Sha == "" { continue } - ci, _, err := client.GetCombinedStatus(ctx.Owner, ctx.Repo, pr.Head.Sha) + ci, _, err := client.Repositories.GetCombinedStatus(requestCtx, ctx.Owner, ctx.Repo, pr.Head.Sha) if err != nil { fmt.Printf("error fetching CI status for PR #%d: %v\n", pr.Index, err) continue diff --git a/cmd/pulls/merge.go b/cmd/pulls/merge.go index 80f06bf8..a08d0606 100644 --- a/cmd/pulls/merge.go +++ b/cmd/pulls/merge.go @@ -6,7 +6,7 @@ package pulls import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/urfave/cli/v3" "gitea.dev/tea/cmd/flags" @@ -41,7 +41,7 @@ var CmdPullsMerge = cli.Command{ Usage: "Merge commit message", }, }, flags.AllDefaultFlags...), - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -52,7 +52,7 @@ var CmdPullsMerge = cli.Command{ if ctx.Args().Len() != 1 { // If no PR index is provided, try interactive mode - if err := interact.MergePull(ctx); err != nil && !interact.IsQuitting(err) { + if err := interact.MergePull(requestCtx, ctx); err != nil && !interact.IsQuitting(err) { return err } return nil @@ -63,7 +63,7 @@ var CmdPullsMerge = cli.Command{ return err } - return task.PullMerge(ctx.Login, ctx.Owner, ctx.Repo, idx, gitea.MergePullRequestOption{ + return task.PullMerge(requestCtx, ctx.Login, ctx.Owner, ctx.Repo, idx, gitea.MergePullRequestOption{ Style: gitea.MergeStyle(ctx.String("style")), Title: ctx.String("title"), Message: ctx.String("message"), diff --git a/cmd/pulls/reject.go b/cmd/pulls/reject.go index 8185ca23..1b44ca81 100644 --- a/cmd/pulls/reject.go +++ b/cmd/pulls/reject.go @@ -6,7 +6,7 @@ package pulls import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/urfave/cli/v3" "gitea.dev/tea/cmd/flags" @@ -19,12 +19,12 @@ var CmdPullsReject = cli.Command{ Usage: "Request changes to a pull request", Description: "Request changes to a pull request", ArgsUsage: " ", - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err } - return runPullReview(ctx, gitea.ReviewStateRequestChanges, true) + return runPullReview(requestCtx, ctx, gitea.ReviewStateRequestChanges, true) }, Flags: flags.AllDefaultFlags, } diff --git a/cmd/pulls/reopen.go b/cmd/pulls/reopen.go index 02a64634..68790e29 100644 --- a/cmd/pulls/reopen.go +++ b/cmd/pulls/reopen.go @@ -6,7 +6,7 @@ package pulls import ( "context" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "github.com/urfave/cli/v3" diff --git a/cmd/pulls/resolve.go b/cmd/pulls/resolve.go index d37b984a..a6e3bb73 100644 --- a/cmd/pulls/resolve.go +++ b/cmd/pulls/resolve.go @@ -19,12 +19,12 @@ var CmdPullsResolve = cli.Command{ Usage: "Resolve a review comment on a pull request", Description: "Resolve a review comment on a pull request", ArgsUsage: "", - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err } - return runResolveComment(ctx, task.ResolvePullReviewComment) + return runResolveComment(requestCtx, ctx, task.ResolvePullReviewComment) }, Flags: flags.AllDefaultFlags, } diff --git a/cmd/pulls/review.go b/cmd/pulls/review.go index 77fe48df..c9b5b063 100644 --- a/cmd/pulls/review.go +++ b/cmd/pulls/review.go @@ -23,7 +23,7 @@ var CmdPullsReview = cli.Command{ Usage: "Interactively review a pull request", Description: "Interactively review a pull request", ArgsUsage: "", - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -48,7 +48,7 @@ var CmdPullsReview = cli.Command{ return err } - if err := interact.ReviewPull(ctx, idx); err != nil && !interact.IsQuitting(err) { + if err := interact.ReviewPull(requestCtx, ctx, idx); err != nil && !interact.IsQuitting(err) { return err } } diff --git a/cmd/pulls/review_comments.go b/cmd/pulls/review_comments.go index 8e0c11f0..7bc0c39f 100644 --- a/cmd/pulls/review_comments.go +++ b/cmd/pulls/review_comments.go @@ -31,7 +31,7 @@ var CmdPullsReviewComments = cli.Command{ Flags: append([]cli.Flag{reviewCommentFieldsFlag}, flags.AllDefaultFlags...), } -func runPullsReviewComments(_ stdctx.Context, cmd *cli.Command) error { +func runPullsReviewComments(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -49,7 +49,7 @@ func runPullsReviewComments(_ stdctx.Context, cmd *cli.Command) error { return err } - comments, err := task.ListPullReviewComments(ctx, idx) + comments, err := task.ListPullReviewComments(requestCtx, ctx, idx) if err != nil { return err } diff --git a/cmd/pulls/review_helpers.go b/cmd/pulls/review_helpers.go index 9719eaa8..8477e0d1 100644 --- a/cmd/pulls/review_helpers.go +++ b/cmd/pulls/review_helpers.go @@ -4,10 +4,11 @@ package pulls import ( + stdctx "context" "fmt" "strings" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/context" "gitea.dev/tea/modules/task" @@ -15,7 +16,7 @@ import ( ) // runPullReview handles the common logic for approving/rejecting pull requests -func runPullReview(ctx *context.TeaContext, state gitea.ReviewStateType, requireComment bool) error { +func runPullReview(requestCtx stdctx.Context, ctx *context.TeaContext, state gitea.ReviewStateType, requireComment bool) error { if err := ctx.Ensure(context.CtxRequirement{RemoteRepo: true}); err != nil { return err } @@ -39,11 +40,11 @@ func runPullReview(ctx *context.TeaContext, state gitea.ReviewStateType, require comment := strings.Join(ctx.Args().Tail(), " ") - return task.CreatePullReview(ctx, idx, state, comment, nil) + return task.CreatePullReview(requestCtx, ctx, idx, state, comment, nil) } // runResolveComment handles the common logic for resolving/unresolving review comments -func runResolveComment(ctx *context.TeaContext, action func(*context.TeaContext, int64) error) error { +func runResolveComment(requestCtx stdctx.Context, ctx *context.TeaContext, action func(stdctx.Context, *context.TeaContext, int64) error) error { if err := ctx.Ensure(context.CtxRequirement{RemoteRepo: true}); err != nil { return err } @@ -57,5 +58,5 @@ func runResolveComment(ctx *context.TeaContext, action func(*context.TeaContext, return err } - return action(ctx, commentID) + return action(requestCtx, ctx, commentID) } diff --git a/cmd/pulls/review_test.go b/cmd/pulls/review_test.go index 566d692f..83d65eeb 100644 --- a/cmd/pulls/review_test.go +++ b/cmd/pulls/review_test.go @@ -4,7 +4,6 @@ package pulls import ( - "context" "os" "testing" @@ -44,7 +43,7 @@ func TestReview(t *testing.T) { t.Run(tt.name, func(t *testing.T) { cmd := CmdPullsReview args := append(tt.args, "--repo", "user/repo") - err := cmd.Run(context.Background(), args) + err := cmd.Run(t.Context(), args) if tt.wantErr { assert.Error(t, err) if tt.errContains != "" { diff --git a/cmd/pulls/unresolve.go b/cmd/pulls/unresolve.go index e9e9b49a..55f72e1b 100644 --- a/cmd/pulls/unresolve.go +++ b/cmd/pulls/unresolve.go @@ -19,12 +19,12 @@ var CmdPullsUnresolve = cli.Command{ Usage: "Unresolve a review comment on a pull request", Description: "Unresolve a review comment on a pull request", ArgsUsage: "", - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err } - return runResolveComment(ctx, task.UnresolvePullReviewComment) + return runResolveComment(requestCtx, ctx, task.UnresolvePullReviewComment) }, Flags: flags.AllDefaultFlags, } diff --git a/cmd/releases/create.go b/cmd/releases/create.go index 8b20f65b..74f7ebc3 100644 --- a/cmd/releases/create.go +++ b/cmd/releases/create.go @@ -10,7 +10,7 @@ import ( "os" "path/filepath" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -67,7 +67,7 @@ var CmdReleaseCreate = cli.Command{ }, flags.AllDefaultFlags...), } -func runReleaseCreate(_ stdctx.Context, cmd *cli.Command) error { +func runReleaseCreate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -94,7 +94,7 @@ func runReleaseCreate(_ stdctx.Context, cmd *cli.Command) error { notestring = string(notebytes) } - release, resp, err := ctx.Login.Client().CreateRelease(ctx.Owner, ctx.Repo, gitea.CreateReleaseOption{ + release, resp, err := ctx.Login.Client().Releases.CreateRelease(requestCtx, ctx.Owner, ctx.Repo, gitea.CreateReleaseOption{ TagName: tag, Target: ctx.String("target"), Title: ctx.String("title"), @@ -118,7 +118,7 @@ func runReleaseCreate(_ stdctx.Context, cmd *cli.Command) error { filePath := filepath.Base(asset) - if _, _, err = ctx.Login.Client().CreateReleaseAttachment(ctx.Owner, ctx.Repo, release.ID, file, filePath); err != nil { + if _, _, err = ctx.Login.Client().Releases.CreateReleaseAttachment(requestCtx, ctx.Owner, ctx.Repo, release.ID, file, filePath); err != nil { file.Close() return err } diff --git a/cmd/releases/delete.go b/cmd/releases/delete.go index 890f0c4f..5deb41c5 100644 --- a/cmd/releases/delete.go +++ b/cmd/releases/delete.go @@ -34,7 +34,7 @@ var CmdReleaseDelete = cli.Command{ }, flags.AllDefaultFlags...), } -func runReleaseDelete(_ stdctx.Context, cmd *cli.Command) error { +func runReleaseDelete(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -55,17 +55,17 @@ func runReleaseDelete(_ stdctx.Context, cmd *cli.Command) error { } for _, tag := range ctx.Args().Slice() { - release, err := GetReleaseByTag(ctx.Owner, ctx.Repo, tag, client) + release, err := GetReleaseByTag(requestCtx, ctx.Owner, ctx.Repo, tag, client) if err != nil { return err } - _, err = client.DeleteRelease(ctx.Owner, ctx.Repo, release.ID) + _, err = client.Releases.DeleteRelease(requestCtx, ctx.Owner, ctx.Repo, release.ID) if err != nil { return err } if ctx.Bool("delete-tag") { - _, err = client.DeleteTag(ctx.Owner, ctx.Repo, tag) + _, err = client.Repositories.DeleteTag(requestCtx, ctx.Owner, ctx.Repo, tag) return err } } diff --git a/cmd/releases/edit.go b/cmd/releases/edit.go index ad255f04..76fb3b49 100644 --- a/cmd/releases/edit.go +++ b/cmd/releases/edit.go @@ -9,7 +9,7 @@ import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/urfave/cli/v3" "gitea.dev/tea/cmd/flags" @@ -58,7 +58,7 @@ var CmdReleaseEdit = cli.Command{ }, flags.AllDefaultFlags...), } -func runReleaseEdit(_ stdctx.Context, cmd *cli.Command) error { +func runReleaseEdit(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -82,12 +82,12 @@ func runReleaseEdit(_ stdctx.Context, cmd *cli.Command) error { } for _, tag := range ctx.Args().Slice() { - release, err := GetReleaseByTag(ctx.Owner, ctx.Repo, tag, client) + release, err := GetReleaseByTag(requestCtx, ctx.Owner, ctx.Repo, tag, client) if err != nil { return err } - _, _, err = client.EditRelease(ctx.Owner, ctx.Repo, release.ID, gitea.EditReleaseOption{ + _, _, err = client.Releases.EditRelease(requestCtx, ctx.Owner, ctx.Repo, release.ID, gitea.EditReleaseOption{ TagName: ctx.String("tag"), Target: ctx.String("target"), Title: ctx.String("title"), diff --git a/cmd/releases/list.go b/cmd/releases/list.go index 8d1af3fc..4fa950d0 100644 --- a/cmd/releases/list.go +++ b/cmd/releases/list.go @@ -6,7 +6,7 @@ package releases import ( stdctx "context" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -29,7 +29,7 @@ var CmdReleaseList = cli.Command{ } // RunReleasesList list releases -func RunReleasesList(_ stdctx.Context, cmd *cli.Command) error { +func RunReleasesList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -38,7 +38,7 @@ func RunReleasesList(_ stdctx.Context, cmd *cli.Command) error { return err } - releases, _, err := ctx.Login.Client().ListReleases(ctx.Owner, ctx.Repo, gitea.ListReleasesOptions{ + releases, _, err := ctx.Login.Client().Releases.ListReleases(requestCtx, ctx.Owner, ctx.Repo, gitea.ListReleasesOptions{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { diff --git a/cmd/releases/utils.go b/cmd/releases/utils.go index c27618c4..6230ee46 100644 --- a/cmd/releases/utils.go +++ b/cmd/releases/utils.go @@ -4,15 +4,16 @@ package releases import ( + stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" ) // GetReleaseByTag finds a release by its tag name. -func GetReleaseByTag(owner, repo, tag string, client *gitea.Client) (*gitea.Release, error) { +func GetReleaseByTag(ctx stdctx.Context, owner, repo, tag string, client *gitea.Client) (*gitea.Release, error) { for page := 1; ; { - rl, resp, err := client.ListReleases(owner, repo, gitea.ListReleasesOptions{ + rl, resp, err := client.Releases.ListReleases(ctx, owner, repo, gitea.ListReleasesOptions{ ListOptions: gitea.ListOptions{Page: page, PageSize: 50}, }) if err != nil { diff --git a/cmd/repos.go b/cmd/repos.go index d87ec29b..47b54e94 100644 --- a/cmd/repos.go +++ b/cmd/repos.go @@ -6,7 +6,7 @@ package cmd import ( stdctx "context" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/repos" "gitea.dev/tea/modules/context" @@ -44,18 +44,18 @@ func runRepos(ctx stdctx.Context, cmd *cli.Command) error { return repos.RunReposList(ctx, cmd) } -func runRepoDetail(_ stdctx.Context, cmd *cli.Command, path string) error { +func runRepoDetail(requestCtx stdctx.Context, cmd *cli.Command, path string) error { ctx, err := context.InitCommand(cmd) if err != nil { return err } client := ctx.Login.Client() repoOwner, repoName := utils.GetOwnerAndRepo(path, ctx.Owner) - repo, _, err := client.GetRepo(repoOwner, repoName) + repo, _, err := client.Repositories.GetRepo(requestCtx, repoOwner, repoName) if err != nil { return err } - topics, _, err := client.ListRepoTopics(repoOwner, repoName, gitea.ListRepoTopicsOptions{}) + topics, _, err := client.Repositories.ListRepoTopics(requestCtx, repoOwner, repoName, gitea.ListRepoTopicsOptions{}) if err != nil { return err } diff --git a/cmd/repos/create.go b/cmd/repos/create.go index 389e806d..ef7b324d 100644 --- a/cmd/repos/create.go +++ b/cmd/repos/create.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -102,7 +102,7 @@ var CmdRepoCreate = cli.Command{ }, flags.LoginOutputFlags...), } -func runRepoCreate(_ stdctx.Context, cmd *cli.Command) error { +func runRepoCreate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -141,15 +141,15 @@ func runRepoCreate(_ stdctx.Context, cmd *cli.Command) error { ObjectFormatName: ctx.String("object-format"), } if len(ctx.String("owner")) != 0 { - repo, _, err = client.CreateOrgRepo(ctx.String("owner"), opts) + repo, _, err = client.Repositories.CreateOrgRepo(requestCtx, ctx.String("owner"), opts) } else { - repo, _, err = client.CreateRepo(opts) + repo, _, err = client.Repositories.CreateRepo(requestCtx, opts) } if err != nil { return err } - topics, _, err := client.ListRepoTopics(repo.Owner.UserName, repo.Name, gitea.ListRepoTopicsOptions{}) + topics, _, err := client.Repositories.ListRepoTopics(requestCtx, repo.Owner.UserName, repo.Name, gitea.ListRepoTopicsOptions{}) if err != nil { return err } diff --git a/cmd/repos/create_from_template.go b/cmd/repos/create_from_template.go index 3774a3d1..8bbc8912 100644 --- a/cmd/repos/create_from_template.go +++ b/cmd/repos/create_from_template.go @@ -8,7 +8,7 @@ import ( stdctx "context" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/urfave/cli/v3" "gitea.dev/tea/cmd/flags" @@ -83,7 +83,7 @@ var CmdRepoCreateFromTemplate = cli.Command{ }, flags.LoginOutputFlags...), } -func runRepoCreateFromTemplate(_ stdctx.Context, cmd *cli.Command) error { +func runRepoCreateFromTemplate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -109,12 +109,12 @@ func runRepoCreateFromTemplate(_ stdctx.Context, cmd *cli.Command) error { Webhooks: ctx.Bool("webhooks"), } - repo, _, err := client.CreateRepoFromTemplate(templateOwner, templateRepo, opts) + repo, _, err := client.Repositories.CreateRepoFromTemplate(requestCtx, templateOwner, templateRepo, opts) if err != nil { return err } - topics, _, err := client.ListRepoTopics(repo.Owner.UserName, repo.Name, gitea.ListRepoTopicsOptions{}) + topics, _, err := client.Repositories.ListRepoTopics(requestCtx, repo.Owner.UserName, repo.Name, gitea.ListRepoTopicsOptions{}) if err != nil { return err } diff --git a/cmd/repos/delete.go b/cmd/repos/delete.go index 65acf617..46e2871d 100644 --- a/cmd/repos/delete.go +++ b/cmd/repos/delete.go @@ -45,7 +45,7 @@ var CmdRepoRm = cli.Command{ }, flags.LoginOutputFlags...), } -func runRepoDelete(_ stdctx.Context, cmd *cli.Command) error { +func runRepoDelete(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -79,7 +79,7 @@ func runRepoDelete(_ stdctx.Context, cmd *cli.Command) error { } } - _, err = client.DeleteRepo(owner, repoName) + _, err = client.Repositories.DeleteRepo(requestCtx, owner, repoName) if err != nil { return err } diff --git a/cmd/repos/edit.go b/cmd/repos/edit.go index 7159a3d6..635ad2f2 100644 --- a/cmd/repos/edit.go +++ b/cmd/repos/edit.go @@ -7,7 +7,7 @@ import ( stdctx "context" "strings" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -59,7 +59,7 @@ var CmdRepoEdit = cli.Command{ }, flags.AllDefaultFlags...), } -func runRepoEdit(_ stdctx.Context, cmd *cli.Command) error { +func runRepoEdit(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -97,12 +97,12 @@ func runRepoEdit(_ stdctx.Context, cmd *cli.Command) error { opts.Archived = gitea.OptionalBool(strings.ToLower(ctx.String("archived"))[:1] == "t") } - repo, _, err := client.EditRepo(ctx.Owner, ctx.Repo, opts) + repo, _, err := client.Repositories.EditRepo(requestCtx, ctx.Owner, ctx.Repo, opts) if err != nil { return err } - topics, _, err := client.ListRepoTopics(repo.Owner.UserName, repo.Name, gitea.ListRepoTopicsOptions{}) + topics, _, err := client.Repositories.ListRepoTopics(requestCtx, repo.Owner.UserName, repo.Name, gitea.ListRepoTopicsOptions{}) if err != nil { return err } diff --git a/cmd/repos/flags.go b/cmd/repos/flags.go index b91e489f..180a4c0b 100644 --- a/cmd/repos/flags.go +++ b/cmd/repos/flags.go @@ -6,7 +6,7 @@ package repos import ( "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/urfave/cli/v3" ) diff --git a/cmd/repos/fork.go b/cmd/repos/fork.go index d940abbe..9cbc4a72 100644 --- a/cmd/repos/fork.go +++ b/cmd/repos/fork.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -32,7 +32,7 @@ var CmdRepoFork = cli.Command{ }, flags.LoginRepoFlags...), } -func runRepoFork(_ stdctx.Context, cmd *cli.Command) error { +func runRepoFork(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -48,12 +48,12 @@ func runRepoFork(_ stdctx.Context, cmd *cli.Command) error { opts.Organization = &owner } - repo, _, err := client.CreateFork(ctx.Owner, ctx.Repo, opts) + repo, _, err := client.Repositories.CreateFork(requestCtx, ctx.Owner, ctx.Repo, opts) if err != nil { return err } - topics, _, err := client.ListRepoTopics(repo.Owner.UserName, repo.Name, gitea.ListRepoTopicsOptions{}) + topics, _, err := client.Repositories.ListRepoTopics(requestCtx, repo.Owner.UserName, repo.Name, gitea.ListRepoTopicsOptions{}) if err != nil { return err } diff --git a/cmd/repos/list.go b/cmd/repos/list.go index 70b48063..0f4a33c7 100644 --- a/cmd/repos/list.go +++ b/cmd/repos/list.go @@ -8,7 +8,7 @@ import ( "fmt" "net/http" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -57,7 +57,7 @@ var CmdReposList = cli.Command{ } // RunReposList list repositories -func RunReposList(_ stdctx.Context, cmd *cli.Command) error { +func RunReposList(requestCtx stdctx.Context, cmd *cli.Command) error { teaCmd, err := context.InitCommand(cmd) if err != nil { return err @@ -72,17 +72,17 @@ func RunReposList(_ stdctx.Context, cmd *cli.Command) error { var rps []*gitea.Repository if owner := teaCmd.String("owner"); owner != "" { var err error - _, resp, orgErr := client.GetOrg(owner) + _, resp, orgErr := client.Organizations.GetOrg(requestCtx, owner) if orgErr != nil { if resp == nil || resp.StatusCode != http.StatusNotFound { return fmt.Errorf("could not find owner: %w", orgErr) } // not an org, treat as user - rps, _, err = client.ListUserRepos(owner, gitea.ListReposOptions{ + rps, _, err = client.Repositories.ListUserRepos(requestCtx, owner, gitea.ListReposOptions{ ListOptions: flags.GetListOptions(cmd), }) } else { - rps, _, err = client.ListOrgRepos(owner, gitea.ListOrgReposOptions{ + rps, _, err = client.Repositories.ListOrgRepos(requestCtx, owner, gitea.ListOrgReposOptions{ ListOptions: flags.GetListOptions(cmd), }) } @@ -90,11 +90,11 @@ func RunReposList(_ stdctx.Context, cmd *cli.Command) error { return err } } else if teaCmd.Bool("starred") { - user, _, err := client.GetMyUserInfo() + user, _, err := client.Users.GetMyUserInfo(requestCtx) if err != nil { return err } - rps, _, err = client.SearchRepos(gitea.SearchRepoOptions{ + rps, _, err = client.Repositories.SearchRepos(requestCtx, gitea.SearchRepoOptions{ ListOptions: flags.GetListOptions(cmd), StarredByUserID: user.ID, }) @@ -104,14 +104,14 @@ func RunReposList(_ stdctx.Context, cmd *cli.Command) error { } else if teaCmd.Bool("watched") { // GetMyWatchedRepos doesn't expose server-side pagination, // so we implement client-side pagination as a workaround - allRepos, _, err := client.GetMyWatchedRepos() + allRepos, _, err := client.Repositories.GetMyWatchedRepos(requestCtx) if err != nil { return err } rps = paginateRepos(allRepos, flags.GetListOptions(cmd)) } else { var err error - rps, _, err = client.ListMyRepos(gitea.ListReposOptions{ + rps, _, err = client.Repositories.ListMyRepos(requestCtx, gitea.ListReposOptions{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { diff --git a/cmd/repos/migrate.go b/cmd/repos/migrate.go index afb2741f..a241d0b8 100644 --- a/cmd/repos/migrate.go +++ b/cmd/repos/migrate.go @@ -8,7 +8,7 @@ import ( stdctx "context" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/urfave/cli/v3" "gitea.dev/tea/cmd/flags" @@ -109,7 +109,7 @@ var CmdRepoMigrate = cli.Command{ }, flags.LoginOutputFlags...), } -func runRepoMigrate(_ stdctx.Context, cmd *cli.Command) error { +func runRepoMigrate(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -159,12 +159,12 @@ func runRepoMigrate(_ stdctx.Context, cmd *cli.Command) error { LFSEndpoint: ctx.String("lfs-endpoint"), } - repo, _, err = client.MigrateRepo(opts) + repo, _, err = client.Repositories.MigrateRepo(requestCtx, opts) if err != nil { return err } - topics, _, err := client.ListRepoTopics(repo.Owner.UserName, repo.Name, gitea.ListRepoTopicsOptions{}) + topics, _, err := client.Repositories.ListRepoTopics(requestCtx, repo.Owner.UserName, repo.Name, gitea.ListRepoTopicsOptions{}) if err != nil { return err } diff --git a/cmd/repos/search.go b/cmd/repos/search.go index a21b5ec6..4efde401 100644 --- a/cmd/repos/search.go +++ b/cmd/repos/search.go @@ -9,7 +9,7 @@ import ( "net/http" "strings" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -57,7 +57,7 @@ var CmdReposSearch = cli.Command{ }, flags.LoginOutputFlags...), } -func runReposSearch(_ stdctx.Context, cmd *cli.Command) error { +func runReposSearch(requestCtx stdctx.Context, cmd *cli.Command) error { teaCmd, err := context.InitCommand(cmd) if err != nil { return err @@ -67,14 +67,14 @@ func runReposSearch(_ stdctx.Context, cmd *cli.Command) error { var ownerID int64 if teaCmd.IsSet("owner") { // test if owner is an organization - org, resp, err := client.GetOrg(teaCmd.String("owner")) + org, resp, err := client.Organizations.GetOrg(requestCtx, teaCmd.String("owner")) if err != nil { if resp == nil || resp.StatusCode != http.StatusNotFound { return fmt.Errorf("could not find owner: %w", err) } // if owner is no org, its a user - user, _, err := client.GetUserInfo(teaCmd.String("owner")) + user, _, err := client.Users.GetUserInfo(requestCtx, teaCmd.String("owner")) if err != nil { return err } @@ -106,12 +106,12 @@ func runReposSearch(_ stdctx.Context, cmd *cli.Command) error { keyword = strings.Join(teaCmd.Args().Slice(), " ") } - user, _, err := client.GetMyUserInfo() + user, _, err := client.Users.GetMyUserInfo(requestCtx) if err != nil { return err } - rps, _, err := client.SearchRepos(gitea.SearchRepoOptions{ + rps, _, err := client.Repositories.SearchRepos(requestCtx, gitea.SearchRepoOptions{ ListOptions: flags.GetListOptions(cmd), OwnerID: ownerID, IsPrivate: isPrivate, diff --git a/cmd/sshkeys/add.go b/cmd/sshkeys/add.go index 94ed028f..1a930b5c 100644 --- a/cmd/sshkeys/add.go +++ b/cmd/sshkeys/add.go @@ -10,7 +10,7 @@ import ( "path/filepath" "strings" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -35,7 +35,7 @@ var CmdSSHKeyAdd = cli.Command{ } // RunSSHKeyAdd reads a public key file and registers it with the Gitea instance -func RunSSHKeyAdd(_ stdctx.Context, cmd *cli.Command) error { +func RunSSHKeyAdd(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -62,7 +62,7 @@ func RunSSHKeyAdd(_ stdctx.Context, cmd *cli.Command) error { title = strings.TrimSuffix(base, filepath.Ext(base)) } - key, _, err := ctx.Login.Client().CreatePublicKey(gitea.CreateKeyOption{ + key, _, err := ctx.Login.Client().Users.CreatePublicKey(requestCtx, gitea.CreateKeyOption{ Title: title, Key: keyContent, }) diff --git a/cmd/sshkeys/delete.go b/cmd/sshkeys/delete.go index ff82ebf5..d9df0d93 100644 --- a/cmd/sshkeys/delete.go +++ b/cmd/sshkeys/delete.go @@ -32,7 +32,7 @@ var CmdSSHKeyDelete = cli.Command{ } // RunSSHKeyDelete removes an SSH key by its numeric ID -func RunSSHKeyDelete(_ stdctx.Context, cmd *cli.Command) error { +func RunSSHKeyDelete(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -49,7 +49,7 @@ func RunSSHKeyDelete(_ stdctx.Context, cmd *cli.Command) error { client := ctx.Login.Client() - key, resp, err := client.GetPublicKey(keyID) + key, resp, err := client.Users.GetPublicKey(requestCtx, keyID) if err != nil { if resp != nil && resp.StatusCode == 404 { return fmt.Errorf("SSH key with ID %d not found", keyID) @@ -67,7 +67,7 @@ func RunSSHKeyDelete(_ stdctx.Context, cmd *cli.Command) error { } } - if _, err = client.DeletePublicKey(keyID); err != nil { + if _, err = client.Users.DeletePublicKey(requestCtx, keyID); err != nil { return err } diff --git a/cmd/sshkeys/list.go b/cmd/sshkeys/list.go index 283280e9..269b876a 100644 --- a/cmd/sshkeys/list.go +++ b/cmd/sshkeys/list.go @@ -6,7 +6,7 @@ package sshkeys import ( stdctx "context" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -30,14 +30,14 @@ var CmdSSHKeyList = cli.Command{ } // RunSSHKeyList lists SSH keys for the current user -func RunSSHKeyList(_ stdctx.Context, cmd *cli.Command) error { +func RunSSHKeyList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err } client := ctx.Login.Client() - keys, _, err := client.ListMyPublicKeys(gitea.ListPublicKeysOptions{ + keys, _, err := client.Users.ListMyPublicKeys(requestCtx, gitea.ListPublicKeysOptions{ ListOptions: flags.GetListOptions(cmd), }) if err != nil { diff --git a/cmd/times/add.go b/cmd/times/add.go index a8bb7a8d..26f7781e 100644 --- a/cmd/times/add.go +++ b/cmd/times/add.go @@ -9,7 +9,7 @@ import ( "strings" "time" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -31,7 +31,7 @@ var CmdTrackedTimesAdd = cli.Command{ Flags: flags.LoginRepoFlags, } -func runTrackedTimesAdd(_ stdctx.Context, cmd *cli.Command) error { +func runTrackedTimesAdd(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -54,7 +54,7 @@ func runTrackedTimesAdd(_ stdctx.Context, cmd *cli.Command) error { return err } - _, _, err = ctx.Login.Client().AddTime(ctx.Owner, ctx.Repo, issue, gitea.AddTimeOption{ + _, _, err = ctx.Login.Client().Issues.AddTime(requestCtx, ctx.Owner, ctx.Repo, issue, gitea.AddTimeOption{ Time: int64(duration.Seconds()), }) return err diff --git a/cmd/times/delete.go b/cmd/times/delete.go index b4413436..58a2e2c0 100644 --- a/cmd/times/delete.go +++ b/cmd/times/delete.go @@ -25,7 +25,7 @@ var CmdTrackedTimesDelete = cli.Command{ Flags: flags.LoginRepoFlags, } -func runTrackedTimesDelete(_ stdctx.Context, cmd *cli.Command) error { +func runTrackedTimesDelete(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -49,6 +49,6 @@ func runTrackedTimesDelete(_ stdctx.Context, cmd *cli.Command) error { return err } - _, err = client.DeleteTime(ctx.Owner, ctx.Repo, issue, timeID) + _, err = client.Issues.DeleteTime(requestCtx, ctx.Owner, ctx.Repo, issue, timeID) return err } diff --git a/cmd/times/list.go b/cmd/times/list.go index 62a509dd..c6974edd 100644 --- a/cmd/times/list.go +++ b/cmd/times/list.go @@ -9,7 +9,7 @@ import ( "strings" "time" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -71,7 +71,7 @@ Depending on your permissions on the repository, only your own tracked times mig } // RunTimesList list repositories -func RunTimesList(_ stdctx.Context, cmd *cli.Command) error { +func RunTimesList(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -106,11 +106,11 @@ func RunTimesList(_ stdctx.Context, cmd *cli.Command) error { user := ctx.Args().First() if ctx.Bool("mine") { - times, _, err = client.ListMyTrackedTimes(opts) + times, _, err = client.Issues.ListMyTrackedTimes(requestCtx, opts) fields = []string{"created", "repo", "issue", "duration"} } else if user == "" { // get all tracked times on the repo - times, _, err = client.ListRepoTrackedTimes(ctx.Owner, ctx.Repo, opts) + times, _, err = client.Issues.ListRepoTrackedTimes(requestCtx, ctx.Owner, ctx.Repo, opts) fields = []string{"created", "issue", "user", "duration"} } else if strings.HasPrefix(user, "#") { // get all tracked times on the specified issue @@ -118,12 +118,12 @@ func RunTimesList(_ stdctx.Context, cmd *cli.Command) error { if parseErr != nil { return parseErr } - times, _, err = client.ListIssueTrackedTimes(ctx.Owner, ctx.Repo, issue, opts) + times, _, err = client.Issues.ListIssueTrackedTimes(requestCtx, ctx.Owner, ctx.Repo, issue, opts) fields = []string{"created", "user", "duration"} } else { // get all tracked times by the specified user opts.User = user - times, _, err = client.ListRepoTrackedTimes(ctx.Owner, ctx.Repo, opts) + times, _, err = client.Issues.ListRepoTrackedTimes(requestCtx, ctx.Owner, ctx.Repo, opts) fields = []string{"created", "issue", "duration"} } diff --git a/cmd/times/reset.go b/cmd/times/reset.go index 5d8bf877..9ce78ce0 100644 --- a/cmd/times/reset.go +++ b/cmd/times/reset.go @@ -24,7 +24,7 @@ var CmdTrackedTimesReset = cli.Command{ Flags: flags.LoginRepoFlags, } -func runTrackedTimesReset(_ stdctx.Context, cmd *cli.Command) error { +func runTrackedTimesReset(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -43,6 +43,6 @@ func runTrackedTimesReset(_ stdctx.Context, cmd *cli.Command) error { return err } - _, err = client.ResetIssueTime(ctx.Owner, ctx.Repo, issue) + _, err = client.Issues.ResetIssueTime(requestCtx, ctx.Owner, ctx.Repo, issue) return err } diff --git a/cmd/webhooks.go b/cmd/webhooks.go index 033740fd..1ddab25c 100644 --- a/cmd/webhooks.go +++ b/cmd/webhooks.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/webhooks" "gitea.dev/tea/modules/context" @@ -63,7 +63,7 @@ func runWebhooksDefault(ctx stdctx.Context, cmd *cli.Command) error { return webhooks.RunWebhooksList(ctx, cmd) } -func runWebhookDetail(_ stdctx.Context, cmd *cli.Command) error { +func runWebhookDetail(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err @@ -79,9 +79,9 @@ func runWebhookDetail(_ stdctx.Context, cmd *cli.Command) error { if ctx.IsGlobal { return fmt.Errorf("global webhooks not yet supported in this version") } else if len(ctx.Org) > 0 { - hook, _, err = client.GetOrgHook(ctx.Org, int64(webhookID)) + hook, _, err = client.Hooks.GetOrgHook(requestCtx, ctx.Org, int64(webhookID)) } else { - hook, _, err = client.GetRepoHook(ctx.Owner, ctx.Repo, int64(webhookID)) + hook, _, err = client.Hooks.GetRepoHook(requestCtx, ctx.Owner, ctx.Repo, int64(webhookID)) } if err != nil { return err diff --git a/cmd/webhooks/create.go b/cmd/webhooks/create.go index 783efdfd..90109482 100644 --- a/cmd/webhooks/create.go +++ b/cmd/webhooks/create.go @@ -8,7 +8,7 @@ import ( "fmt" "strings" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -93,7 +93,7 @@ func runWebhooksCreate(ctx stdctx.Context, cmd *cli.Command) error { if c.IsGlobal { return fmt.Errorf("global webhooks not yet supported in this version") } else if len(c.Org) > 0 { - hook, _, err = client.CreateOrgHook(c.Org, gitea.CreateHookOption{ + hook, _, err = client.Hooks.CreateOrgHook(ctx, c.Org, gitea.CreateHookOption{ Type: webhookType, Config: config, Events: events, @@ -102,7 +102,7 @@ func runWebhooksCreate(ctx stdctx.Context, cmd *cli.Command) error { AuthorizationHeader: authHeader, }) } else { - hook, _, err = client.CreateRepoHook(c.Owner, c.Repo, gitea.CreateHookOption{ + hook, _, err = client.Hooks.CreateRepoHook(ctx, c.Owner, c.Repo, gitea.CreateHookOption{ Type: webhookType, Config: config, Events: events, diff --git a/cmd/webhooks/create_test.go b/cmd/webhooks/create_test.go index c5c9d91a..05751580 100644 --- a/cmd/webhooks/create_test.go +++ b/cmd/webhooks/create_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/stretchr/testify/assert" "github.com/urfave/cli/v3" ) diff --git a/cmd/webhooks/delete.go b/cmd/webhooks/delete.go index e5e126b2..62e04eeb 100644 --- a/cmd/webhooks/delete.go +++ b/cmd/webhooks/delete.go @@ -7,8 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" - + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" "gitea.dev/tea/modules/utils" @@ -53,9 +52,9 @@ func runWebhooksDelete(ctx stdctx.Context, cmd *cli.Command) error { if c.IsGlobal { return fmt.Errorf("global webhooks not yet supported in this version") } else if len(c.Org) > 0 { - hook, _, err = client.GetOrgHook(c.Org, int64(webhookID)) + hook, _, err = client.Hooks.GetOrgHook(ctx, c.Org, int64(webhookID)) } else { - hook, _, err = client.GetRepoHook(c.Owner, c.Repo, int64(webhookID)) + hook, _, err = client.Hooks.GetRepoHook(ctx, c.Owner, c.Repo, int64(webhookID)) } if err != nil { return err @@ -74,9 +73,9 @@ func runWebhooksDelete(ctx stdctx.Context, cmd *cli.Command) error { if c.IsGlobal { return fmt.Errorf("global webhooks not yet supported in this version") } else if len(c.Org) > 0 { - _, err = client.DeleteOrgHook(c.Org, int64(webhookID)) + _, err = client.Hooks.DeleteOrgHook(ctx, c.Org, int64(webhookID)) } else { - _, err = client.DeleteRepoHook(c.Owner, c.Repo, int64(webhookID)) + _, err = client.Hooks.DeleteRepoHook(ctx, c.Owner, c.Repo, int64(webhookID)) } if err != nil { return err diff --git a/cmd/webhooks/delete_test.go b/cmd/webhooks/delete_test.go index 6d1a1a81..c938be33 100644 --- a/cmd/webhooks/delete_test.go +++ b/cmd/webhooks/delete_test.go @@ -6,7 +6,7 @@ package webhooks import ( "testing" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/stretchr/testify/assert" "github.com/urfave/cli/v3" ) diff --git a/cmd/webhooks/list.go b/cmd/webhooks/list.go index 671fe0d4..c7aa8a80 100644 --- a/cmd/webhooks/list.go +++ b/cmd/webhooks/list.go @@ -7,7 +7,7 @@ import ( stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -40,11 +40,11 @@ func RunWebhooksList(ctx stdctx.Context, cmd *cli.Command) error { if c.IsGlobal { return fmt.Errorf("global webhooks not yet supported in this version") } else if len(c.Org) > 0 { - hooks, _, err = client.ListOrgHooks(c.Org, gitea.ListHooksOptions{ + hooks, _, err = client.Hooks.ListOrgHooks(ctx, c.Org, gitea.ListHooksOptions{ ListOptions: flags.GetListOptions(cmd), }) } else { - hooks, _, err = client.ListRepoHooks(c.Owner, c.Repo, gitea.ListHooksOptions{ + hooks, _, err = client.Hooks.ListRepoHooks(ctx, c.Owner, c.Repo, gitea.ListHooksOptions{ ListOptions: flags.GetListOptions(cmd), }) } diff --git a/cmd/webhooks/update.go b/cmd/webhooks/update.go index e5000ac1..7c1b39e6 100644 --- a/cmd/webhooks/update.go +++ b/cmd/webhooks/update.go @@ -8,7 +8,7 @@ import ( "fmt" "strings" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -77,9 +77,9 @@ func runWebhooksUpdate(ctx stdctx.Context, cmd *cli.Command) error { if c.IsGlobal { return fmt.Errorf("global webhooks not yet supported in this version") } else if len(c.Org) > 0 { - hook, _, err = client.GetOrgHook(c.Org, int64(webhookID)) + hook, _, err = client.Hooks.GetOrgHook(ctx, c.Org, int64(webhookID)) } else { - hook, _, err = client.GetRepoHook(c.Owner, c.Repo, int64(webhookID)) + hook, _, err = client.Hooks.GetRepoHook(ctx, c.Owner, c.Repo, int64(webhookID)) } if err != nil { return err @@ -128,7 +128,7 @@ func runWebhooksUpdate(ctx stdctx.Context, cmd *cli.Command) error { if c.IsGlobal { return fmt.Errorf("global webhooks not yet supported in this version") } else if len(c.Org) > 0 { - _, err = client.EditOrgHook(c.Org, int64(webhookID), gitea.EditHookOption{ + _, err = client.Hooks.EditOrgHook(ctx, c.Org, int64(webhookID), gitea.EditHookOption{ Config: config, Events: events, Active: &active, @@ -136,7 +136,7 @@ func runWebhooksUpdate(ctx stdctx.Context, cmd *cli.Command) error { AuthorizationHeader: authHeader, }) } else { - _, err = client.EditRepoHook(c.Owner, c.Repo, int64(webhookID), gitea.EditHookOption{ + _, err = client.Hooks.EditRepoHook(ctx, c.Owner, c.Repo, int64(webhookID), gitea.EditHookOption{ Config: config, Events: events, Active: &active, diff --git a/cmd/webhooks/update_test.go b/cmd/webhooks/update_test.go index 70df1e0d..882d905b 100644 --- a/cmd/webhooks/update_test.go +++ b/cmd/webhooks/update_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/stretchr/testify/assert" "github.com/urfave/cli/v3" ) diff --git a/cmd/whoami.go b/cmd/whoami.go index 2de6b590..a6ccea39 100644 --- a/cmd/whoami.go +++ b/cmd/whoami.go @@ -19,13 +19,13 @@ var CmdWhoami = cli.Command{ Description: `For debugging purposes, show the user that is currently logged in.`, Usage: "Show current logged in user", ArgsUsage: " ", // command does not accept arguments - Action: func(_ stdctx.Context, cmd *cli.Command) error { + Action: func(requestCtx stdctx.Context, cmd *cli.Command) error { ctx, err := context.InitCommand(cmd) if err != nil { return err } client := ctx.Login.Client() - user, _, _ := client.GetMyUserInfo() + user, _, _ := client.Users.GetMyUserInfo(requestCtx) print.UserDetails(user) return nil }, diff --git a/go.mod b/go.mod index 29bdbd50..b3c9d250 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,8 @@ require ( charm.land/huh/v2 v2.0.3 charm.land/lipgloss/v2 v2.0.3 code.gitea.io/gitea-vet v0.2.3 - code.gitea.io/sdk/gitea v0.25.1 gitea.com/noerw/unidiff-comments v0.0.0-20220822113322-50f4daa0e35c + gitea.dev/sdk v1.0.1 github.com/adrg/xdg v0.5.3 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de github.com/enescakir/emoji v1.0.0 diff --git a/go.sum b/go.sum index 81687a2a..2ce2dd76 100644 --- a/go.sum +++ b/go.sum @@ -10,10 +10,16 @@ charm.land/lipgloss/v2 v2.0.3 h1:yM2zJ4Cf5Y51b7RHIwioil4ApI/aypFXXVHSwlM6RzU= charm.land/lipgloss/v2 v2.0.3/go.mod h1:7myLU9iG/3xluAWzpY/fSxYYHCgoKTie7laxk6ATwXA= code.gitea.io/gitea-vet v0.2.3 h1:gdFmm6WOTM65rE8FUBTRzeQZYzXePKSSB1+r574hWwI= code.gitea.io/gitea-vet v0.2.3/go.mod h1:zcNbT/aJEmivCAhfmkHOlT645KNOf9W2KnkLgFjGGfE= -code.gitea.io/sdk/gitea v0.25.1 h1:yywxWwoV+SdjHtbC6unBiXojWdZOtoHuGhEazEXeWuE= -code.gitea.io/sdk/gitea v0.25.1/go.mod h1:uDFWYBU8dgZsgOHwe6C/6olxvf8FHguNB3wW1i83fgg= gitea.com/noerw/unidiff-comments v0.0.0-20220822113322-50f4daa0e35c h1:8fTkq2UaVkLHZCF+iB4wTxINmVAToe2geZGayk9LMbA= gitea.com/noerw/unidiff-comments v0.0.0-20220822113322-50f4daa0e35c/go.mod h1:Fc8iyPm4NINRWujeIk2bTfcbGc4ZYY29/oMAAGcr4qI= +gitea.dev/sdk v0.0.0-20260525162228-ffb5234862e0 h1:ZqpFhspucP2OpkgxWdrXEulp5RLKpIXKqb1aHdewtIg= +gitea.dev/sdk v0.0.0-20260525162228-ffb5234862e0/go.mod h1:jCf5Uzz0Jkb61jxNgMxLOCWwle1J1B2nKdcRtxuK9rY= +gitea.dev/sdk v1.0.0 h1:S7FDAeRnvOwOgWKoEGKsTsjf9jg/b6tcDIzxFY9AiEo= +gitea.dev/sdk v1.0.0/go.mod h1:jCf5Uzz0Jkb61jxNgMxLOCWwle1J1B2nKdcRtxuK9rY= +gitea.dev/sdk v1.0.1-0.20260526041347-23be5b0596e7 h1:06cYUmiIO2X4fsxKmCmkRXKxitaF7s1ZultK5YZvqKU= +gitea.dev/sdk v1.0.1-0.20260526041347-23be5b0596e7/go.mod h1:jCf5Uzz0Jkb61jxNgMxLOCWwle1J1B2nKdcRtxuK9rY= +gitea.dev/sdk v1.0.1 h1:CWXQUQvp2I6YKOWkhYo1Flx2sRNfMK1X9Op4oR2awXs= +gitea.dev/sdk v1.0.1/go.mod h1:jCf5Uzz0Jkb61jxNgMxLOCWwle1J1B2nKdcRtxuK9rY= github.com/42wim/httpsig v1.2.4 h1:mI5bH0nm4xn7K18fo1K3okNDRq8CCJ0KbBYWyA6r8lU= github.com/42wim/httpsig v1.2.4/go.mod h1:yKsYfSyTBEohkPik224QPFylmzEBtda/kjyIAJjh3ps= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= diff --git a/modules/auth/oauth.go b/modules/auth/oauth.go index a730e064..48bff99d 100644 --- a/modules/auth/oauth.go +++ b/modules/auth/oauth.go @@ -53,12 +53,12 @@ type OAuthOptions struct { } // OAuthLogin performs an OAuth2 PKCE login flow to authorize the CLI -func OAuthLogin(name, giteaURL string) error { - return OAuthLoginWithOptions(name, giteaURL, false) +func OAuthLogin(ctx context.Context, name, giteaURL string) error { + return OAuthLoginWithOptions(ctx, name, giteaURL, false) } // OAuthLoginWithOptions performs an OAuth2 PKCE login flow with additional options -func OAuthLoginWithOptions(name, giteaURL string, insecure bool) error { +func OAuthLoginWithOptions(ctx context.Context, name, giteaURL string, insecure bool) error { opts := OAuthOptions{ Name: name, URL: giteaURL, @@ -67,22 +67,22 @@ func OAuthLoginWithOptions(name, giteaURL string, insecure bool) error { RedirectURL: fmt.Sprintf("http://%s:%d", redirectHost, redirectPort), Port: redirectPort, } - return OAuthLoginWithFullOptions(opts) + return OAuthLoginWithFullOptions(ctx, opts) } // OAuthLoginWithFullOptions performs an OAuth2 PKCE login flow with full options control -func OAuthLoginWithFullOptions(opts OAuthOptions) error { - serverURL, token, err := performBrowserOAuthFlow(opts) +func OAuthLoginWithFullOptions(ctx context.Context, opts OAuthOptions) error { + serverURL, token, err := performBrowserOAuthFlow(ctx, opts) if err != nil { return err } - return createLoginFromToken(opts.Name, serverURL, token, opts.Insecure) + return createLoginFromToken(ctx, opts.Name, serverURL, token, opts.Insecure) } // performBrowserOAuthFlow performs the browser-based OAuth2 PKCE flow and returns the token. // This is the shared implementation used by both new logins and re-authentication. -func performBrowserOAuthFlow(opts OAuthOptions) (serverURL string, token *oauth2.Token, err error) { +func performBrowserOAuthFlow(ctx context.Context, opts OAuthOptions) (serverURL string, token *oauth2.Token, err error) { // Normalize URL normalizedURL, err := utils.NormalizeURL(opts.URL) if err != nil { @@ -127,7 +127,6 @@ func performBrowserOAuthFlow(opts OAuthOptions) (serverURL string, token *oauth2 codeChallenge := generateCodeChallenge(codeVerifier) // Set up the OAuth2 config - ctx := context.Background() ctx = context.WithValue(ctx, oauth2.HTTPClient, createHTTPClient(opts.Insecure)) // Configure the OAuth2 endpoints @@ -366,7 +365,7 @@ func openBrowser(url string) error { } // createLoginFromToken creates a login entry using the obtained access token -func createLoginFromToken(name, serverURL string, token *oauth2.Token, insecure bool) error { +func createLoginFromToken(ctx context.Context, name, serverURL string, token *oauth2.Token, insecure bool) error { if name == "" { var err error name, err = task.GenerateLoginName(serverURL, "") @@ -388,7 +387,7 @@ func createLoginFromToken(name, serverURL string, token *oauth2.Token, insecure // Validate token by getting user info client := login.Client() - u, _, err := client.GetMyUserInfo() + u, _, err := client.Users.GetMyUserInfo(ctx) if err != nil { return fmt.Errorf("failed to validate token: %s", err) } @@ -429,7 +428,7 @@ func RefreshAccessToken(login *config.Login) error { // ReauthenticateLogin performs a full browser-based OAuth flow to get new tokens // for an existing login. This is used when the refresh token is expired or invalid. -func ReauthenticateLogin(login *config.Login) error { +func ReauthenticateLogin(ctx context.Context, login *config.Login) error { opts := OAuthOptions{ Name: login.Name, URL: login.URL, @@ -439,7 +438,7 @@ func ReauthenticateLogin(login *config.Login) error { Port: redirectPort, } - _, token, err := performBrowserOAuthFlow(opts) + _, token, err := performBrowserOAuthFlow(ctx, opts) if err != nil { return err } diff --git a/modules/config/login.go b/modules/config/login.go index b4a5d84b..8ca55188 100644 --- a/modules/config/login.go +++ b/modules/config/login.go @@ -15,7 +15,7 @@ import ( "strings" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/debug" "gitea.dev/tea/modules/httputil" @@ -342,7 +342,7 @@ func (l *Login) RefreshOAuthToken() error { } // Still need to refresh - proceed with OAuth call - newToken, err := doOAuthRefresh(l) + newToken, err := doOAuthRefresh(context.Background(), l) if err != nil { return err } @@ -370,7 +370,7 @@ func (l *Login) RefreshOAuthToken() error { } // doOAuthRefresh performs the actual OAuth token refresh API call. -func doOAuthRefresh(l *Login) (*oauth2.Token, error) { +func doOAuthRefresh(ctx context.Context, l *Login) (*oauth2.Token, error) { // Build current token from credstore (single load) or YAML fields var accessToken, refreshToken string var expiry time.Time @@ -389,8 +389,6 @@ func doOAuthRefresh(l *Login) (*oauth2.Token, error) { Expiry: expiry, } - ctx := context.Background() - httpClient := &http.Client{ Transport: httputil.WrapTransport(&http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: l.Insecure}, diff --git a/modules/interact/comments.go b/modules/interact/comments.go index e337d809..def856f6 100644 --- a/modules/interact/comments.go +++ b/modules/interact/comments.go @@ -4,10 +4,11 @@ package interact import ( + stdctx "context" "fmt" "os" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -20,18 +21,18 @@ import ( // ShowCommentsMaybeInteractive fetches & prints comments, depending on the --comments flag. // If that flag is unset, and output is not piped, prompts the user first. -func ShowCommentsMaybeInteractive(ctx *context.TeaContext, idx int64, totalComments int) error { +func ShowCommentsMaybeInteractive(requestCtx stdctx.Context, ctx *context.TeaContext, idx int64, totalComments int) error { if ctx.Bool("comments") { opts := gitea.ListIssueCommentOptions{ListOptions: flags.GetListOptions(ctx.Command)} c := ctx.Login.Client() - comments, _, err := c.ListIssueComments(ctx.Owner, ctx.Repo, idx, opts) + comments, _, err := c.Issues.ListIssueComments(requestCtx, ctx.Owner, ctx.Repo, idx, opts) if err != nil { return err } print.Comments(comments) } else if print.IsInteractive() && !ctx.IsSet("comments") { // if we're interactive, but --comments hasn't been explicitly set to false - if err := ShowCommentsPaginated(ctx, idx, totalComments); err != nil { + if err := ShowCommentsPaginated(requestCtx, ctx, idx, totalComments); err != nil { fmt.Printf("error while loading comments: %v\n", err) } } @@ -39,7 +40,7 @@ func ShowCommentsMaybeInteractive(ctx *context.TeaContext, idx int64, totalComme } // ShowCommentsPaginated prompts if issue/pr comments should be shown and continues to do so. -func ShowCommentsPaginated(ctx *context.TeaContext, idx int64, totalComments int) error { +func ShowCommentsPaginated(requestCtx stdctx.Context, ctx *context.TeaContext, idx int64, totalComments int) error { c := ctx.Login.Client() opts := gitea.ListIssueCommentOptions{ListOptions: flags.GetListOptions(ctx.Command)} prompt := "show comments?" @@ -59,7 +60,7 @@ func ShowCommentsPaginated(ctx *context.TeaContext, idx int64, totalComments int } else if !loadComments { break } else { - if comments, _, err := c.ListIssueComments(ctx.Owner, ctx.Repo, idx, opts); err != nil { + if comments, _, err := c.Issues.ListIssueComments(requestCtx, ctx.Owner, ctx.Repo, idx, opts); err != nil { return err } else if len(comments) != 0 { print.Comments(comments) diff --git a/modules/interact/issue_create.go b/modules/interact/issue_create.go index 262b9d2b..3dee358e 100644 --- a/modules/interact/issue_create.go +++ b/modules/interact/issue_create.go @@ -4,9 +4,10 @@ package interact import ( + "context" "strings" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/config" "gitea.dev/tea/modules/task" @@ -21,7 +22,7 @@ func IsQuitting(err error) bool { } // CreateIssue interactively creates an issue -func CreateIssue(login *config.Login, owner, repo string) error { +func CreateIssue(ctx context.Context, login *config.Login, owner, repo string) error { owner, repo, err := promptRepoSlug(owner, repo) if err != nil { return err @@ -29,19 +30,19 @@ func CreateIssue(login *config.Login, owner, repo string) error { printTitleAndContent("Target repo:", owner+"/"+repo) var opts gitea.CreateIssueOption - if err := promptIssueProperties(login, owner, repo, &opts); err != nil { + if err := promptIssueProperties(ctx, login, owner, repo, &opts); err != nil { return err } - return task.CreateIssue(login, owner, repo, opts) + return task.CreateIssue(ctx, login, owner, repo, opts) } -func promptIssueProperties(login *config.Login, owner, repo string, o *gitea.CreateIssueOption) error { +func promptIssueProperties(ctx context.Context, login *config.Login, owner, repo string, o *gitea.CreateIssueOption) error { var milestoneName string var err error selectableChan := make(chan (issueSelectables), 1) - go fetchIssueSelectables(login, owner, repo, selectableChan) + go fetchIssueSelectables(ctx, login, owner, repo, selectableChan) // title if err := huh.NewInput(). @@ -140,12 +141,12 @@ type issueSelectables struct { Err error } -func fetchIssueSelectables(login *config.Login, owner, repo string, done chan issueSelectables) { +func fetchIssueSelectables(ctx context.Context, login *config.Login, owner, repo string, done chan issueSelectables) { // TODO PERF make these calls concurrent r := issueSelectables{} c := login.Client() - r.Repo, _, r.Err = c.GetRepo(owner, repo) + r.Repo, _, r.Err = c.Repositories.GetRepo(ctx, owner, repo) if r.Err != nil { done <- r return @@ -157,7 +158,7 @@ func fetchIssueSelectables(login *config.Login, owner, repo string, done chan is return } - assignees, _, err := c.GetAssignees(owner, repo) + assignees, _, err := c.Repositories.GetAssignees(ctx, owner, repo) if err != nil { r.Err = err done <- r @@ -168,7 +169,7 @@ func fetchIssueSelectables(login *config.Login, owner, repo string, done chan is r.Assignees[i] = u.UserName } - milestones, _, err := c.ListRepoMilestones(owner, repo, gitea.ListMilestoneOption{}) + milestones, _, err := c.Repositories.ListMilestones(ctx, owner, repo, gitea.ListMilestoneOption{}) if err != nil { r.Err = err done <- r @@ -184,7 +185,7 @@ func fetchIssueSelectables(login *config.Login, owner, repo string, done chan is r.LabelMap = make(map[string]int64) r.LabelList = make([]string, 0) for page := 1; ; { - labels, resp, err := c.ListRepoLabels(owner, repo, gitea.ListLabelsOptions{ + labels, resp, err := c.Repositories.ListRepoLabels(ctx, owner, repo, gitea.ListLabelsOptions{ ListOptions: gitea.ListOptions{Page: page, PageSize: 50}, }) if err != nil { diff --git a/modules/interact/issue_edit.go b/modules/interact/issue_edit.go index 30d5a834..3e61e9c6 100644 --- a/modules/interact/issue_edit.go +++ b/modules/interact/issue_edit.go @@ -4,6 +4,7 @@ package interact import ( + stdctx "context" "slices" "strings" @@ -16,7 +17,7 @@ import ( ) // EditIssue interactively edits an issue -func EditIssue(ctx context.TeaContext, index int64) (*task.EditIssueOption, error) { +func EditIssue(requestCtx stdctx.Context, ctx context.TeaContext, index int64) (*task.EditIssueOption, error) { opts := task.EditIssueOption{} var err error @@ -27,7 +28,7 @@ func EditIssue(ctx context.TeaContext, index int64) (*task.EditIssueOption, erro printTitleAndContent("Target repo:", ctx.Owner+"/"+ctx.Repo) c := ctx.Login.Client() - i, _, err := c.GetIssue(ctx.Owner, ctx.Repo, index) + i, _, err := c.Issues.GetIssue(requestCtx, ctx.Owner, ctx.Repo, index) if err != nil { return &opts, err } @@ -55,20 +56,20 @@ func EditIssue(ctx context.TeaContext, index int64) (*task.EditIssueOption, erro opts.Milestone = &i.Milestone.Title } - if err := promptIssueEditProperties(&ctx, &opts); err != nil { + if err := promptIssueEditProperties(requestCtx, &ctx, &opts); err != nil { return &opts, err } return &opts, err } -func promptIssueEditProperties(ctx *context.TeaContext, o *task.EditIssueOption) error { +func promptIssueEditProperties(requestCtx stdctx.Context, ctx *context.TeaContext, o *task.EditIssueOption) error { var milestoneName string var labelsSelected []string var err error selectableChan := make(chan (issueSelectables), 1) - go fetchIssueSelectables(ctx.Login, ctx.Owner, ctx.Repo, selectableChan) + go fetchIssueSelectables(requestCtx, ctx.Login, ctx.Owner, ctx.Repo, selectableChan) // title if err := huh.NewInput(). diff --git a/modules/interact/login.go b/modules/interact/login.go index 16de851c..b59d24b9 100644 --- a/modules/interact/login.go +++ b/modules/interact/login.go @@ -4,6 +4,7 @@ package interact import ( + "context" "errors" "fmt" "net/url" @@ -11,7 +12,7 @@ import ( "strconv" "strings" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/auth" "gitea.dev/tea/modules/config" @@ -22,7 +23,7 @@ import ( ) // CreateLogin create an login interactive -func CreateLogin() error { +func CreateLogin(ctx context.Context) error { var ( name, token, user, passwd, otp, scopes, sshKey, sshCertPrincipal, sshKeyFingerprint string insecure, sshAgent, versionCheck, helper bool @@ -104,7 +105,7 @@ func CreateLogin() error { } printTitleAndContent("Allow Insecure connections:", strconv.FormatBool(insecure)) - return auth.OAuthLoginWithOptions(name, giteaURL, insecure) + return auth.OAuthLoginWithOptions(ctx, name, giteaURL, insecure) default: // token var hasToken bool if err := huh.NewConfirm(). @@ -270,7 +271,7 @@ func CreateLogin() error { printTitleAndContent("Check version of Gitea instance:", strconv.FormatBool(versionCheck)) } - return task.CreateLogin(name, token, user, passwd, otp, scopes, sshKey, giteaURL, sshCertPrincipal, sshKeyFingerprint, insecure, sshAgent, versionCheck, helper) + return task.CreateLogin(ctx, name, token, user, passwd, otp, scopes, sshKey, giteaURL, sshCertPrincipal, sshKeyFingerprint, insecure, sshAgent, versionCheck, helper) } var tokenScopeOpts = []string{ diff --git a/modules/interact/milestone_create.go b/modules/interact/milestone_create.go index 4f2f85f9..97064346 100644 --- a/modules/interact/milestone_create.go +++ b/modules/interact/milestone_create.go @@ -4,11 +4,11 @@ package interact import ( + stdctx "context" "fmt" "time" - "code.gitea.io/sdk/gitea" - + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/config" "gitea.dev/tea/modules/task" "gitea.dev/tea/modules/theme" @@ -17,7 +17,7 @@ import ( ) // CreateMilestone interactively creates a milestone -func CreateMilestone(login *config.Login, owner, repo string) error { +func CreateMilestone(requestCtx stdctx.Context, login *config.Login, owner, repo string) error { var title, description, deadline string // owner, repo @@ -60,8 +60,7 @@ func CreateMilestone(login *config.Login, owner, repo string) error { deadlineTM = &tm } - return task.CreateMilestone( - login, + return task.CreateMilestone(requestCtx, login, owner, repo, title, diff --git a/modules/interact/pull_create.go b/modules/interact/pull_create.go index 9d75672a..0d8a1f3b 100644 --- a/modules/interact/pull_create.go +++ b/modules/interact/pull_create.go @@ -4,8 +4,9 @@ package interact import ( - "code.gitea.io/sdk/gitea" + stdctx "context" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/context" "gitea.dev/tea/modules/task" "gitea.dev/tea/modules/theme" @@ -14,7 +15,7 @@ import ( ) // CreatePull interactively creates a PR -func CreatePull(ctx *context.TeaContext) (err error) { +func CreatePull(requestCtx stdctx.Context, ctx *context.TeaContext) (err error) { var ( base, head string allowMaintainerEdits = true @@ -28,7 +29,7 @@ func CreatePull(ctx *context.TeaContext) (err error) { } // base - if base, err = task.GetDefaultPRBase(ctx.Login, ctx.Owner, ctx.Repo); err != nil { + if base, err = task.GetDefaultPRBase(requestCtx, ctx.Login, ctx.Owner, ctx.Repo); err != nil { return err } @@ -86,11 +87,12 @@ func CreatePull(ctx *context.TeaContext) (err error) { } opts := gitea.CreateIssueOption{Title: task.GetDefaultPRTitle(head)} - if err = promptIssueProperties(ctx.Login, ctx.Owner, ctx.Repo, &opts); err != nil { + if err = promptIssueProperties(requestCtx, ctx.Login, ctx.Owner, ctx.Repo, &opts); err != nil { return err } return task.CreateAgitFlowPull( + requestCtx, ctx, baseRemote, head, @@ -128,11 +130,12 @@ func CreatePull(ctx *context.TeaContext) (err error) { head = task.GetHeadSpec(headOwner, headBranch, ctx.Owner) opts := gitea.CreateIssueOption{Title: task.GetDefaultPRTitle(head)} - if err = promptIssueProperties(ctx.Login, ctx.Owner, ctx.Repo, &opts); err != nil { + if err = promptIssueProperties(requestCtx, ctx.Login, ctx.Owner, ctx.Repo, &opts); err != nil { return err } return task.CreatePull( + requestCtx, ctx, base, head, diff --git a/modules/interact/pull_merge.go b/modules/interact/pull_merge.go index 3329c9f8..2cbd4a06 100644 --- a/modules/interact/pull_merge.go +++ b/modules/interact/pull_merge.go @@ -4,10 +4,11 @@ package interact import ( + stdctx "context" "fmt" "strings" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/cmd/flags" "gitea.dev/tea/modules/context" @@ -18,7 +19,7 @@ import ( ) // MergePull interactively creates a PR -func MergePull(ctx *context.TeaContext) error { +func MergePull(requestCtx stdctx.Context, ctx *context.TeaContext) error { if ctx.LocalRepo == nil { return fmt.Errorf("pull request index is required") } @@ -28,12 +29,12 @@ func MergePull(ctx *context.TeaContext) error { return err } - idx, err := getPullIndex(ctx, branch) + idx, err := getPullIndex(requestCtx, ctx, branch) if err != nil { return err } - return task.PullMerge(ctx.Login, ctx.Owner, ctx.Repo, idx, gitea.MergePullRequestOption{ + return task.PullMerge(requestCtx, ctx.Login, ctx.Owner, ctx.Repo, idx, gitea.MergePullRequestOption{ Style: gitea.MergeStyle(ctx.String("style")), Title: ctx.String("title"), Message: ctx.String("message"), @@ -41,7 +42,7 @@ func MergePull(ctx *context.TeaContext) error { } // getPullIndex interactively determines the PR index -func getPullIndex(ctx *context.TeaContext, branch string) (int64, error) { +func getPullIndex(requestCtx stdctx.Context, ctx *context.TeaContext, branch string) (int64, error) { c := ctx.Login.Client() opts := gitea.ListPullRequestsOptions{ State: gitea.StateOpen, @@ -54,7 +55,7 @@ func getPullIndex(ctx *context.TeaContext, branch string) (int64, error) { var prs []*gitea.PullRequest for { var err error - prs, _, err = c.ListRepoPullRequests(ctx.Owner, ctx.Repo, opts) + prs, _, err = c.PullRequests.ListRepoPullRequests(requestCtx, ctx.Owner, ctx.Repo, opts) if err != nil { return 0, err } diff --git a/modules/interact/pull_review.go b/modules/interact/pull_review.go index 36d5570f..d7110c66 100644 --- a/modules/interact/pull_review.go +++ b/modules/interact/pull_review.go @@ -4,11 +4,12 @@ package interact import ( + stdctx "context" "fmt" "os" "strconv" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/config" "gitea.dev/tea/modules/context" @@ -26,7 +27,7 @@ var reviewStates = map[string]gitea.ReviewStateType{ var reviewStateOptions = []string{"comment", "request changes", "approve"} // ReviewPull interactively reviews a PR -func ReviewPull(ctx *context.TeaContext, idx int64) error { +func ReviewPull(requestCtx stdctx.Context, ctx *context.TeaContext, idx int64) error { var state gitea.ReviewStateType var comment string var codeComments []gitea.CreatePullReviewComment @@ -44,7 +45,7 @@ func ReviewPull(ctx *context.TeaContext, idx int64) error { printTitleAndContent("Review / comment the diff?", strconv.FormatBool(reviewDiff)) if reviewDiff { - if codeComments, err = DoDiffReview(ctx, idx); err != nil { + if codeComments, err = DoDiffReview(requestCtx, ctx, idx); err != nil { fmt.Printf("Error during diff review: %s\n", err) } fmt.Printf("Found %d code comments in your review\n", len(codeComments)) @@ -78,14 +79,14 @@ func ReviewPull(ctx *context.TeaContext, idx int64) error { } printTitleAndContent("Concluding comment(markdown):", comment) - return task.CreatePullReview(ctx, idx, state, comment, codeComments) + return task.CreatePullReview(requestCtx, ctx, idx, state, comment, codeComments) } // DoDiffReview (1) fetches & saves diff in tempfile, (2) starts $VISUAL or $EDITOR to comment on diff, // (3) parses resulting file into code comments. // It doesn't really make sense to use survey.Editor() here, as we'd read the file content at least twice. -func DoDiffReview(ctx *context.TeaContext, idx int64) ([]gitea.CreatePullReviewComment, error) { - tmpFile, err := task.SavePullDiff(ctx, idx) +func DoDiffReview(requestCtx stdctx.Context, ctx *context.TeaContext, idx int64) ([]gitea.CreatePullReviewComment, error) { + tmpFile, err := task.SavePullDiff(requestCtx, ctx, idx) if err != nil { return nil, err } diff --git a/modules/print/actions.go b/modules/print/actions.go index d2bb232d..27d4bbe4 100644 --- a/modules/print/actions.go +++ b/modules/print/actions.go @@ -6,7 +6,7 @@ package print import ( "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // ActionSecretsList prints a list of action secrets diff --git a/modules/print/actions_runs.go b/modules/print/actions_runs.go index aaf37995..7e0809c4 100644 --- a/modules/print/actions_runs.go +++ b/modules/print/actions_runs.go @@ -7,7 +7,7 @@ import ( "fmt" "time" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // formatDurationMinutes formats duration in a human-readable way diff --git a/modules/print/actions_runs_test.go b/modules/print/actions_runs_test.go index 5a3a2630..fe9dff2d 100644 --- a/modules/print/actions_runs_test.go +++ b/modules/print/actions_runs_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/stretchr/testify/require" ) diff --git a/modules/print/actions_test.go b/modules/print/actions_test.go index 129e55c2..4cdfb753 100644 --- a/modules/print/actions_test.go +++ b/modules/print/actions_test.go @@ -10,7 +10,7 @@ import ( "testing" "time" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/stretchr/testify/require" ) diff --git a/modules/print/attachment.go b/modules/print/attachment.go index 074b85cb..fd04122e 100644 --- a/modules/print/attachment.go +++ b/modules/print/attachment.go @@ -6,7 +6,7 @@ package print import ( "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) func formatByteSize(size int64) string { diff --git a/modules/print/branch.go b/modules/print/branch.go index b5d91507..9b751c87 100644 --- a/modules/print/branch.go +++ b/modules/print/branch.go @@ -6,7 +6,7 @@ package print import ( "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // BranchesList prints a listing of the branches diff --git a/modules/print/branch_test.go b/modules/print/branch_test.go index d6db9d89..74f01e4c 100644 --- a/modules/print/branch_test.go +++ b/modules/print/branch_test.go @@ -6,7 +6,7 @@ package print import ( "testing" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/stretchr/testify/assert" ) diff --git a/modules/print/comment.go b/modules/print/comment.go index a1856b54..0f42e295 100644 --- a/modules/print/comment.go +++ b/modules/print/comment.go @@ -7,7 +7,7 @@ import ( "fmt" "strings" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // Comments renders a list of comments to stdout diff --git a/modules/print/formatters.go b/modules/print/formatters.go index 512cf536..ce05b313 100644 --- a/modules/print/formatters.go +++ b/modules/print/formatters.go @@ -9,7 +9,7 @@ import ( "regexp" "time" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/muesli/termenv" "golang.org/x/term" ) diff --git a/modules/print/issue.go b/modules/print/issue.go index ca4fc5aa..86110422 100644 --- a/modules/print/issue.go +++ b/modules/print/issue.go @@ -7,7 +7,7 @@ import ( "fmt" "strings" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/enescakir/emoji" ) diff --git a/modules/print/label.go b/modules/print/label.go index 4be87531..3c2a5b2e 100644 --- a/modules/print/label.go +++ b/modules/print/label.go @@ -6,7 +6,7 @@ package print import ( "strconv" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // LabelsList prints a listing of labels diff --git a/modules/print/milestone.go b/modules/print/milestone.go index e53a63cb..840a3c72 100644 --- a/modules/print/milestone.go +++ b/modules/print/milestone.go @@ -6,7 +6,7 @@ package print import ( "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // MilestoneDetails print an milestone formatted to stdout diff --git a/modules/print/notification.go b/modules/print/notification.go index d0e0c1dd..419ed05b 100644 --- a/modules/print/notification.go +++ b/modules/print/notification.go @@ -7,7 +7,7 @@ import ( "fmt" "strings" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // NotificationsList prints a listing of notification threads diff --git a/modules/print/organization.go b/modules/print/organization.go index 9b627a12..885bd6fd 100644 --- a/modules/print/organization.go +++ b/modules/print/organization.go @@ -6,7 +6,7 @@ package print import ( "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // OrganizationDetails prints details of an org with formatting diff --git a/modules/print/pull.go b/modules/print/pull.go index 09d6cd6f..5e415836 100644 --- a/modules/print/pull.go +++ b/modules/print/pull.go @@ -7,7 +7,7 @@ import ( "fmt" "strings" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) var ciStatusSymbols = map[gitea.StatusState]string{ diff --git a/modules/print/pull_review_comment.go b/modules/print/pull_review_comment.go index 738d7eeb..f7a1da22 100644 --- a/modules/print/pull_review_comment.go +++ b/modules/print/pull_review_comment.go @@ -6,7 +6,7 @@ package print import ( "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // PullReviewCommentFields are all available fields to print with PullReviewCommentsList() diff --git a/modules/print/pull_test.go b/modules/print/pull_test.go index 7ce2147d..d771ff82 100644 --- a/modules/print/pull_test.go +++ b/modules/print/pull_test.go @@ -10,7 +10,7 @@ import ( "testing" "time" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/modules/print/release.go b/modules/print/release.go index 07ab1419..03791223 100644 --- a/modules/print/release.go +++ b/modules/print/release.go @@ -4,7 +4,7 @@ package print import ( - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // ReleasesList prints a listing of releases diff --git a/modules/print/repo.go b/modules/print/repo.go index 353bc8b7..abf429cb 100644 --- a/modules/print/repo.go +++ b/modules/print/repo.go @@ -8,7 +8,7 @@ import ( "strings" "time" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // ReposList prints a listing of the repos diff --git a/modules/print/repo_test.go b/modules/print/repo_test.go index 767d7a01..101b7cc5 100644 --- a/modules/print/repo_test.go +++ b/modules/print/repo_test.go @@ -8,7 +8,7 @@ import ( "encoding/json" "testing" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/stretchr/testify/require" ) diff --git a/modules/print/sshkey.go b/modules/print/sshkey.go index f08376bb..3d582219 100644 --- a/modules/print/sshkey.go +++ b/modules/print/sshkey.go @@ -6,7 +6,7 @@ package print import ( "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // SSHKeysList prints a table of SSH public keys diff --git a/modules/print/times.go b/modules/print/times.go index cb3b1185..5a025d4b 100644 --- a/modules/print/times.go +++ b/modules/print/times.go @@ -6,7 +6,7 @@ package print import ( "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // TrackedTimesList print list of tracked times to stdout diff --git a/modules/print/user.go b/modules/print/user.go index a60c0ad1..a0b98a4f 100644 --- a/modules/print/user.go +++ b/modules/print/user.go @@ -6,7 +6,7 @@ package print import ( "fmt" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // UserDetails print a formatted user to stdout diff --git a/modules/print/webhook.go b/modules/print/webhook.go index 577bddce..275f33c7 100644 --- a/modules/print/webhook.go +++ b/modules/print/webhook.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // WebhooksList prints a listing of webhooks diff --git a/modules/print/webhook_test.go b/modules/print/webhook_test.go index 017379cd..18deadac 100644 --- a/modules/print/webhook_test.go +++ b/modules/print/webhook_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "github.com/stretchr/testify/assert" ) diff --git a/modules/task/issue_create.go b/modules/task/issue_create.go index fb62086c..35b9c245 100644 --- a/modules/task/issue_create.go +++ b/modules/task/issue_create.go @@ -4,22 +4,23 @@ package task import ( + stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/config" "gitea.dev/tea/modules/print" ) // CreateIssue creates an issue in the given repo and prints the result -func CreateIssue(login *config.Login, repoOwner, repoName string, opts gitea.CreateIssueOption) error { +func CreateIssue(requestCtx stdctx.Context, rlogin *config.Login, repoOwner, repoName string, opts gitea.CreateIssueOption) error { // title is required if len(opts.Title) == 0 { return fmt.Errorf("title is required") } - issue, _, err := login.Client().CreateIssue(repoOwner, repoName, opts) + issue, _, err := rlogin.Client().Issues.CreateIssue(requestCtx, repoOwner, repoName, opts) if err != nil { return fmt.Errorf("could not create issue: %s", err) } diff --git a/modules/task/issue_edit.go b/modules/task/issue_edit.go index 1b7d8b61..51711720 100644 --- a/modules/task/issue_edit.go +++ b/modules/task/issue_edit.go @@ -4,10 +4,11 @@ package task import ( + stdctx "context" "fmt" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/context" ) @@ -30,12 +31,12 @@ type EditIssueOption struct { // Normalizes the options into parameters that can be passed to the sdk. // the returned value will be nil, when no change to this part of the issue is requested. -func (o EditIssueOption) toSdkOptions(ctx *context.TeaContext, client *gitea.Client) (*gitea.EditIssueOption, *gitea.IssueLabelsOption, *gitea.IssueLabelsOption, error) { - addLabelOpts, err := ResolveLabelOpts(client, ctx.Owner, ctx.Repo, o.AddLabels) +func (o EditIssueOption) toSdkOptions(requestCtx stdctx.Context, ctx *context.TeaContext, client *gitea.Client) (*gitea.EditIssueOption, *gitea.IssueLabelsOption, *gitea.IssueLabelsOption, error) { + addLabelOpts, err := ResolveLabelOpts(requestCtx, client, ctx.Owner, ctx.Repo, o.AddLabels) if err != nil { return nil, nil, nil, err } - rmLabelOpts, err := ResolveLabelOpts(client, ctx.Owner, ctx.Repo, o.RemoveLabels) + rmLabelOpts, err := ResolveLabelOpts(requestCtx, client, ctx.Owner, ctx.Repo, o.RemoveLabels) if err != nil { return nil, nil, nil, err } @@ -55,7 +56,7 @@ func (o EditIssueOption) toSdkOptions(ctx *context.TeaContext, client *gitea.Cli issueOptsDirty = true } if o.Milestone != nil { - id, err := ResolveMilestoneID(client, ctx.Owner, ctx.Repo, *o.Milestone) + id, err := ResolveMilestoneID(requestCtx, client, ctx.Owner, ctx.Repo, *o.Milestone) if err != nil { return nil, nil, nil, err } @@ -81,28 +82,28 @@ func (o EditIssueOption) toSdkOptions(ctx *context.TeaContext, client *gitea.Cli } // EditIssue edits an issue and returns the updated issue. -func EditIssue(ctx *context.TeaContext, client *gitea.Client, opts EditIssueOption) (*gitea.Issue, error) { +func EditIssue(requestCtx stdctx.Context, ctx *context.TeaContext, client *gitea.Client, opts EditIssueOption) (*gitea.Issue, error) { if client == nil { client = ctx.Login.Client() } - issueOpts, addLabelOpts, rmLabelOpts, err := opts.toSdkOptions(ctx, client) + issueOpts, addLabelOpts, rmLabelOpts, err := opts.toSdkOptions(requestCtx, ctx, client) if err != nil { return nil, err } - if err := ApplyLabelChanges(client, ctx.Owner, ctx.Repo, opts.Index, addLabelOpts, rmLabelOpts); err != nil { + if err := ApplyLabelChanges(requestCtx, client, ctx.Owner, ctx.Repo, opts.Index, addLabelOpts, rmLabelOpts); err != nil { return nil, err } var issue *gitea.Issue if issueOpts != nil { - issue, _, err = client.EditIssue(ctx.Owner, ctx.Repo, opts.Index, *issueOpts) + issue, _, err = client.Issues.EditIssue(requestCtx, ctx.Owner, ctx.Repo, opts.Index, *issueOpts) if err != nil { return nil, fmt.Errorf("could not edit issue: %s", err) } } else { - issue, _, err = client.GetIssue(ctx.Owner, ctx.Repo, opts.Index) + issue, _, err = client.Issues.GetIssue(requestCtx, ctx.Owner, ctx.Repo, opts.Index) if err != nil { return nil, fmt.Errorf("could not get issue: %s", err) } diff --git a/modules/task/labels.go b/modules/task/labels.go index 7bbfb059..e34608e3 100644 --- a/modules/task/labels.go +++ b/modules/task/labels.go @@ -4,19 +4,20 @@ package task import ( + stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/utils" ) // ResolveLabelNames returns a list of label IDs for a given list of label names -func ResolveLabelNames(client *gitea.Client, owner, repo string, labelNames []string) ([]int64, error) { +func ResolveLabelNames(requestCtx stdctx.Context, client *gitea.Client, owner, repo string, labelNames []string) ([]int64, error) { labelIDs := make([]int64, 0, len(labelNames)) page := 1 for { - labels, resp, err := client.ListRepoLabels(owner, repo, gitea.ListLabelsOptions{ + labels, resp, err := client.Repositories.ListRepoLabels(requestCtx, owner, repo, gitea.ListLabelsOptions{ ListOptions: gitea.ListOptions{Page: page, PageSize: 50}, }) if err != nil { @@ -36,11 +37,11 @@ func ResolveLabelNames(client *gitea.Client, owner, repo string, labelNames []st } // ResolveLabelOpts resolves label names to IssueLabelsOption. Returns nil if names is empty. -func ResolveLabelOpts(client *gitea.Client, owner, repo string, names []string) (*gitea.IssueLabelsOption, error) { +func ResolveLabelOpts(requestCtx stdctx.Context, client *gitea.Client, owner, repo string, names []string) (*gitea.IssueLabelsOption, error) { if len(names) == 0 { return nil, nil } - ids, err := ResolveLabelNames(client, owner, repo, names) + ids, err := ResolveLabelNames(requestCtx, client, owner, repo, names) if err != nil { return nil, err } @@ -48,18 +49,18 @@ func ResolveLabelOpts(client *gitea.Client, owner, repo string, names []string) } // ApplyLabelChanges adds and removes labels on an issue or pull request. -func ApplyLabelChanges(client *gitea.Client, owner, repo string, index int64, add, rm *gitea.IssueLabelsOption) error { +func ApplyLabelChanges(requestCtx stdctx.Context, client *gitea.Client, owner, repo string, index int64, add, rm *gitea.IssueLabelsOption) error { if rm != nil { // NOTE: as of 1.17, there is no API to remove multiple labels at once. for _, id := range rm.Labels { - _, err := client.DeleteIssueLabel(owner, repo, index, id) + _, err := client.Issues.DeleteIssueLabel(requestCtx, owner, repo, index, id) if err != nil { return fmt.Errorf("could not remove labels: %s", err) } } } if add != nil { - _, _, err := client.AddIssueLabels(owner, repo, index, *add) + _, _, err := client.Issues.AddIssueLabels(requestCtx, owner, repo, index, *add) if err != nil { return fmt.Errorf("could not add labels: %s", err) } @@ -68,9 +69,9 @@ func ApplyLabelChanges(client *gitea.Client, owner, repo string, index int64, ad } // ApplyReviewerChanges adds and removes reviewers on a pull request. -func ApplyReviewerChanges(client *gitea.Client, owner, repo string, index int64, add, rm []string) error { +func ApplyReviewerChanges(requestCtx stdctx.Context, client *gitea.Client, owner, repo string, index int64, add, rm []string) error { if len(rm) != 0 { - _, err := client.DeleteReviewRequests(owner, repo, index, gitea.PullReviewRequestOptions{ + _, err := client.PullRequests.DeleteReviewRequests(requestCtx, owner, repo, index, gitea.PullReviewRequestOptions{ Reviewers: rm, }) if err != nil { @@ -78,7 +79,7 @@ func ApplyReviewerChanges(client *gitea.Client, owner, repo string, index int64, } } if len(add) != 0 { - _, err := client.CreateReviewRequests(owner, repo, index, gitea.PullReviewRequestOptions{ + _, err := client.PullRequests.CreateReviewRequests(requestCtx, owner, repo, index, gitea.PullReviewRequestOptions{ Reviewers: add, }) if err != nil { @@ -89,11 +90,11 @@ func ApplyReviewerChanges(client *gitea.Client, owner, repo string, index int64, } // ResolveMilestoneID resolves a milestone name to its ID. Returns 0 for empty name. -func ResolveMilestoneID(client *gitea.Client, owner, repo, name string) (int64, error) { +func ResolveMilestoneID(requestCtx stdctx.Context, client *gitea.Client, owner, repo, name string) (int64, error) { if name == "" { return 0, nil } - ms, _, err := client.GetMilestoneByName(owner, repo, name) + ms, _, err := client.Repositories.GetMilestoneByName(requestCtx, owner, repo, name) if err != nil { return 0, fmt.Errorf("could not resolve milestone '%s': %w", name, err) } diff --git a/modules/task/labels_export.go b/modules/task/labels_export.go index b4d9dbc5..7beb8031 100644 --- a/modules/task/labels_export.go +++ b/modules/task/labels_export.go @@ -7,7 +7,7 @@ import ( "fmt" "os" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" ) // LabelsExport save list of labels to disc diff --git a/modules/task/login_create.go b/modules/task/login_create.go index df748695..1db94f8c 100644 --- a/modules/task/login_create.go +++ b/modules/task/login_create.go @@ -4,13 +4,14 @@ package task import ( + stdctx "context" "fmt" "os" "os/exec" "strings" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/config" "gitea.dev/tea/modules/utils" @@ -48,7 +49,7 @@ func SetupHelper(login config.Login) (ok bool, err error) { } // CreateLogin create a login to be stored in config -func CreateLogin(name, token, user, passwd, otp, scopes, sshKey, giteaURL, sshCertPrincipal, sshKeyFingerprint string, insecure, sshAgent, versionCheck, addHelper bool) error { +func CreateLogin(ctx stdctx.Context, name, token, user, passwd, otp, scopes, sshKey, giteaURL, sshCertPrincipal, sshKeyFingerprint string, insecure, sshAgent, versionCheck, addHelper bool) error { // checks ... // ... if we have a url if len(giteaURL) == 0 { @@ -105,7 +106,7 @@ func CreateLogin(name, token, user, passwd, otp, scopes, sshKey, giteaURL, sshCe } if len(token) == 0 && sshCertPrincipal == "" && !sshAgent && sshKey == "" { - if login.Token, err = generateToken(login, user, passwd, otp, scopes); err != nil { + if login.Token, err = generateToken(ctx, login, user, passwd, otp, scopes); err != nil { return err } } @@ -113,7 +114,7 @@ func CreateLogin(name, token, user, passwd, otp, scopes, sshKey, giteaURL, sshCe client := login.Client() // Verify if authentication works and get user info - u, _, err := client.GetMyUserInfo() + u, _, err := client.Users.GetMyUserInfo(ctx) if err != nil { return err } @@ -130,7 +131,7 @@ func CreateLogin(name, token, user, passwd, otp, scopes, sshKey, giteaURL, sshCe login.SSHHost = serverURL.Host if len(sshKey) == 0 { - login.SSHKey, err = findSSHKey(client) + login.SSHKey, err = findSSHKey(ctx, client) if err != nil { fmt.Printf("Warning: problem while finding a SSH key: %s\n", err) } @@ -159,7 +160,7 @@ func shouldCheckTokenUniqueness(token string, sshAgent bool, sshKey, sshCertPrin } // generateToken creates a new token when given BasicAuth credentials -func generateToken(login config.Login, user, pass, otp, scopes string) (string, error) { +func generateToken(ctx stdctx.Context, login config.Login, user, pass, otp, scopes string) (string, error) { opts := []gitea.ClientOption{gitea.SetBasicAuth(user, pass)} if otp != "" { opts = append(opts, gitea.SetOTP(otp)) @@ -168,7 +169,7 @@ func generateToken(login config.Login, user, pass, otp, scopes string) (string, var tl []*gitea.AccessToken for page := 1; ; { - page_tokens, resp, err := client.ListAccessTokens(gitea.ListAccessTokensOptions{ + page_tokens, resp, err := client.Users.ListAccessTokens(ctx, gitea.ListAccessTokensOptions{ ListOptions: gitea.ListOptions{Page: page, PageSize: 50}, }) if err != nil { @@ -200,7 +201,7 @@ func generateToken(login config.Login, user, pass, otp, scopes string) (string, } } - t, _, err := client.CreateAccessToken(gitea.CreateAccessTokenOption{ + t, _, err := client.Users.CreateAccessToken(ctx, gitea.CreateAccessTokenOption{ Name: tokenName, Scopes: tokenScopes, }) diff --git a/modules/task/login_httpsign.go b/modules/task/login_httpsign.go index 2479ffdf..1e4a9b69 100644 --- a/modules/task/login_httpsign.go +++ b/modules/task/login_httpsign.go @@ -8,7 +8,7 @@ import ( "path/filepath" "strings" - "code.gitea.io/sdk/gitea" + "gitea.dev/sdk" "golang.org/x/crypto/ssh" "gitea.dev/tea/modules/utils" diff --git a/modules/task/login_ssh.go b/modules/task/login_ssh.go index 26de6bd2..4bcfcbbc 100644 --- a/modules/task/login_ssh.go +++ b/modules/task/login_ssh.go @@ -4,12 +4,13 @@ package task import ( + stdctx "context" "encoding/base64" "os" "path/filepath" "strings" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/utils" "golang.org/x/crypto/ssh" @@ -17,11 +18,11 @@ import ( // findSSHKey retrieves the ssh keys registered in gitea, and tries to find // a matching private key in ~/.ssh/. If no match is found, path is empty. -func findSSHKey(client *gitea.Client) (string, error) { +func findSSHKey(ctx stdctx.Context, client *gitea.Client) (string, error) { // get keys registered on gitea instance var keys []*gitea.PublicKey for page := 1; ; { - page_keys, resp, err := client.ListMyPublicKeys(gitea.ListPublicKeysOptions{ + page_keys, resp, err := client.Users.ListMyPublicKeys(ctx, gitea.ListPublicKeysOptions{ ListOptions: gitea.ListOptions{Page: page, PageSize: 50}, }) if err != nil { diff --git a/modules/task/milestone_create.go b/modules/task/milestone_create.go index 28cfd983..8eaf0699 100644 --- a/modules/task/milestone_create.go +++ b/modules/task/milestone_create.go @@ -4,23 +4,24 @@ package task import ( + stdctx "context" "fmt" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/config" "gitea.dev/tea/modules/print" ) // CreateMilestone creates a milestone in the given repo and prints the result -func CreateMilestone(login *config.Login, repoOwner, repoName, title, description string, deadline *time.Time, state gitea.StateType) error { +func CreateMilestone(ctx stdctx.Context, login *config.Login, repoOwner, repoName, title, description string, deadline *time.Time, state gitea.StateType) error { // title is required if len(title) == 0 { return fmt.Errorf("title is required") } - mile, _, err := login.Client().CreateMilestone(repoOwner, repoName, gitea.CreateMilestoneOption{ + mile, _, err := login.Client().Repositories.CreateMilestone(ctx, repoOwner, repoName, gitea.CreateMilestoneOption{ Title: title, Description: description, Deadline: deadline, diff --git a/modules/task/pull_checkout.go b/modules/task/pull_checkout.go index cd954368..78b3b2c3 100644 --- a/modules/task/pull_checkout.go +++ b/modules/task/pull_checkout.go @@ -4,9 +4,10 @@ package task import ( + stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/config" local_git "gitea.dev/tea/modules/git" @@ -14,6 +15,7 @@ import ( // PullCheckout checkout current workdir to the head branch of specified pull request func PullCheckout( + ctx stdctx.Context, login *config.Login, repoOwner, repoName string, forceCreateBranch bool, @@ -21,7 +23,7 @@ func PullCheckout( callback func(string) (string, error), ) error { client := login.Client() - pr, _, err := client.GetPullRequest(repoOwner, repoName, index) + pr, _, err := client.PullRequests.GetPullRequest(ctx, repoOwner, repoName, index) if err != nil { return fmt.Errorf("couldn't fetch PR: %s", err) } diff --git a/modules/task/pull_clean.go b/modules/task/pull_clean.go index 7561f355..d96dab0b 100644 --- a/modules/task/pull_clean.go +++ b/modules/task/pull_clean.go @@ -4,19 +4,20 @@ package task import ( + stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/config" local_git "gitea.dev/tea/modules/git" ) // PullClean deletes local & remote feature-branches for a closed pull -func PullClean(login *config.Login, repoOwner, repoName string, index int64, ignoreSHA bool, callback func(string) (string, error)) error { +func PullClean(ctx stdctx.Context, login *config.Login, repoOwner, repoName string, index int64, ignoreSHA bool, callback func(string) (string, error)) error { client := login.Client() - repo, _, err := client.GetRepo(repoOwner, repoName) + repo, _, err := client.Repositories.GetRepo(ctx, repoOwner, repoName) if err != nil { return err } @@ -26,7 +27,7 @@ func PullClean(login *config.Login, repoOwner, repoName string, index int64, ign } // fetch PR source-repo & -branch from gitea - pr, _, err := client.GetPullRequest(repoOwner, repoName, index) + pr, _, err := client.PullRequests.GetPullRequest(ctx, repoOwner, repoName, index) if err != nil { return err } diff --git a/modules/task/pull_create.go b/modules/task/pull_create.go index 80c24683..9bd2f597 100644 --- a/modules/task/pull_create.go +++ b/modules/task/pull_create.go @@ -4,11 +4,12 @@ package task import ( + stdctx "context" "fmt" "regexp" "strings" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/config" "gitea.dev/tea/modules/context" @@ -24,10 +25,10 @@ var ( ) // CreatePull creates a PR in the given repo and prints the result -func CreatePull(ctx *context.TeaContext, base, head string, allowMaintainerEdits *bool, opts *gitea.CreateIssueOption) (err error) { +func CreatePull(requestCtx stdctx.Context, ctx *context.TeaContext, base, head string, allowMaintainerEdits *bool, opts *gitea.CreateIssueOption) (err error) { // default is default branch if len(base) == 0 { - base, err = GetDefaultPRBase(ctx.Login, ctx.Owner, ctx.Repo) + base, err = GetDefaultPRBase(requestCtx, ctx.Login, ctx.Owner, ctx.Repo) if err != nil { return err } @@ -62,7 +63,7 @@ func CreatePull(ctx *context.TeaContext, base, head string, allowMaintainerEdits client := ctx.Login.Client() - pr, _, err := client.CreatePullRequest(ctx.Owner, ctx.Repo, gitea.CreatePullRequestOption{ + pr, _, err := client.PullRequests.CreatePullRequest(requestCtx, ctx.Owner, ctx.Repo, gitea.CreatePullRequestOption{ Head: head, Base: base, Title: opts.Title, @@ -77,7 +78,7 @@ func CreatePull(ctx *context.TeaContext, base, head string, allowMaintainerEdits } if allowMaintainerEdits != nil && pr.AllowMaintainerEdit != *allowMaintainerEdits { - pr, _, err = client.EditPullRequest(ctx.Owner, ctx.Repo, pr.Index, gitea.EditPullRequestOption{ + pr, _, err = client.PullRequests.EditPullRequest(requestCtx, ctx.Owner, ctx.Repo, pr.Index, gitea.EditPullRequestOption{ AllowMaintainerEdit: allowMaintainerEdits, }) if err != nil { @@ -93,8 +94,8 @@ func CreatePull(ctx *context.TeaContext, base, head string, allowMaintainerEdits } // GetDefaultPRBase retrieves the default base branch for the given repo -func GetDefaultPRBase(login *config.Login, owner, repo string) (string, error) { - meta, _, err := login.Client().GetRepo(owner, repo) +func GetDefaultPRBase(requestCtx stdctx.Context, login *config.Login, owner, repo string) (string, error) { + meta, _, err := login.Client().Repositories.GetRepo(requestCtx, owner, repo) if err != nil { return "", fmt.Errorf("could not fetch repo meta: %s", err) } @@ -156,13 +157,13 @@ func GetDefaultPRTitle(header string) string { } // CreateAgitFlowPull creates a agit flow PR in the given repo and prints the result -func CreateAgitFlowPull(ctx *context.TeaContext, remote, head, base, topic string, +func CreateAgitFlowPull(requestCtx stdctx.Context, ctx *context.TeaContext, remote, head, base, topic string, opts *gitea.CreateIssueOption, callback func(string) (string, error), ) (err error) { // default is default branch if len(base) == 0 { - base, err = GetDefaultPRBase(ctx.Login, ctx.Owner, ctx.Repo) + base, err = GetDefaultPRBase(requestCtx, ctx.Login, ctx.Owner, ctx.Repo) if err != nil { return err } diff --git a/modules/task/pull_edit.go b/modules/task/pull_edit.go index df15a221..c53dc39f 100644 --- a/modules/task/pull_edit.go +++ b/modules/task/pull_edit.go @@ -4,24 +4,24 @@ package task import ( + stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" - + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/context" ) // EditPull edits a pull request and returns the updated pull request. -func EditPull(ctx *context.TeaContext, client *gitea.Client, opts EditIssueOption) (*gitea.PullRequest, error) { +func EditPull(requestCtx stdctx.Context, ctx *context.TeaContext, client *gitea.Client, opts EditIssueOption) (*gitea.PullRequest, error) { if client == nil { client = ctx.Login.Client() } - addLabelOpts, err := ResolveLabelOpts(client, ctx.Owner, ctx.Repo, opts.AddLabels) + addLabelOpts, err := ResolveLabelOpts(requestCtx, client, ctx.Owner, ctx.Repo, opts.AddLabels) if err != nil { return nil, err } - rmLabelOpts, err := ResolveLabelOpts(client, ctx.Owner, ctx.Repo, opts.RemoveLabels) + rmLabelOpts, err := ResolveLabelOpts(requestCtx, client, ctx.Owner, ctx.Repo, opts.RemoveLabels) if err != nil { return nil, err } @@ -37,7 +37,7 @@ func EditPull(ctx *context.TeaContext, client *gitea.Client, opts EditIssueOptio prOptsDirty = true } if opts.Milestone != nil { - id, err := ResolveMilestoneID(client, ctx.Owner, ctx.Repo, *opts.Milestone) + id, err := ResolveMilestoneID(requestCtx, client, ctx.Owner, ctx.Repo, *opts.Milestone) if err != nil { return nil, err } @@ -56,22 +56,22 @@ func EditPull(ctx *context.TeaContext, client *gitea.Client, opts EditIssueOptio prOptsDirty = true } - if err := ApplyLabelChanges(client, ctx.Owner, ctx.Repo, opts.Index, addLabelOpts, rmLabelOpts); err != nil { + if err := ApplyLabelChanges(requestCtx, client, ctx.Owner, ctx.Repo, opts.Index, addLabelOpts, rmLabelOpts); err != nil { return nil, err } - if err := ApplyReviewerChanges(client, ctx.Owner, ctx.Repo, opts.Index, opts.AddReviewers, opts.RemoveReviewers); err != nil { + if err := ApplyReviewerChanges(requestCtx, client, ctx.Owner, ctx.Repo, opts.Index, opts.AddReviewers, opts.RemoveReviewers); err != nil { return nil, err } var pr *gitea.PullRequest if prOptsDirty { - pr, _, err = client.EditPullRequest(ctx.Owner, ctx.Repo, opts.Index, prOpts) + pr, _, err = client.PullRequests.EditPullRequest(requestCtx, ctx.Owner, ctx.Repo, opts.Index, prOpts) if err != nil { return nil, fmt.Errorf("could not edit pull request: %s", err) } } else { - pr, _, err = client.GetPullRequest(ctx.Owner, ctx.Repo, opts.Index) + pr, _, err = client.PullRequests.GetPullRequest(requestCtx, ctx.Owner, ctx.Repo, opts.Index) if err != nil { return nil, fmt.Errorf("could not get pull request: %s", err) } diff --git a/modules/task/pull_merge.go b/modules/task/pull_merge.go index 9357b75d..171f5d2b 100644 --- a/modules/task/pull_merge.go +++ b/modules/task/pull_merge.go @@ -4,17 +4,18 @@ package task import ( + stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/config" ) // PullMerge merges a PR -func PullMerge(login *config.Login, repoOwner, repoName string, index int64, opt gitea.MergePullRequestOption) error { +func PullMerge(requestCtx stdctx.Context, login *config.Login, repoOwner, repoName string, index int64, opt gitea.MergePullRequestOption) error { client := login.Client() - success, _, err := client.MergePullRequest(repoOwner, repoName, index, opt) + success, _, err := client.PullRequests.MergePullRequest(requestCtx, repoOwner, repoName, index, opt) if err != nil { return err } diff --git a/modules/task/pull_review.go b/modules/task/pull_review.go index 62b8b704..2c650129 100644 --- a/modules/task/pull_review.go +++ b/modules/task/pull_review.go @@ -4,12 +4,13 @@ package task import ( + stdctx "context" "fmt" "os" "os/exec" "strings" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" unidiff "gitea.com/noerw/unidiff-comments" "gitea.dev/tea/modules/context" @@ -28,10 +29,10 @@ var diffReviewHelp = `# This is the current diff of PR #%d on %s. ` // CreatePullReview submits a review for a PR -func CreatePullReview(ctx *context.TeaContext, idx int64, status gitea.ReviewStateType, comment string, codeComments []gitea.CreatePullReviewComment) error { +func CreatePullReview(requestCtx stdctx.Context, ctx *context.TeaContext, idx int64, status gitea.ReviewStateType, comment string, codeComments []gitea.CreatePullReviewComment) error { c := ctx.Login.Client() - review, _, err := c.CreatePullReview(ctx.Owner, ctx.Repo, idx, gitea.CreatePullReviewOptions{ + review, _, err := c.PullRequests.CreatePullReview(requestCtx, ctx.Owner, ctx.Repo, idx, gitea.CreatePullReviewOptions{ State: status, Body: comment, Comments: codeComments, @@ -46,8 +47,8 @@ func CreatePullReview(ctx *context.TeaContext, idx int64, status gitea.ReviewSta // SavePullDiff fetches the diff of a pull request and stores it as a temporary file. // The path to the file is returned. -func SavePullDiff(ctx *context.TeaContext, idx int64) (string, error) { - diff, _, err := ctx.Login.Client().GetPullRequestDiff(ctx.Owner, ctx.Repo, idx, gitea.PullRequestDiffOptions{}) +func SavePullDiff(requestCtx stdctx.Context, ctx *context.TeaContext, idx int64) (string, error) { + diff, _, err := ctx.Login.Client().PullRequests.GetPullRequestDiff(requestCtx, ctx.Owner, ctx.Repo, idx, gitea.PullRequestDiffOptions{}) if err != nil { return "", err } diff --git a/modules/task/pull_review_comment.go b/modules/task/pull_review_comment.go index bdf9e9fa..c4565211 100644 --- a/modules/task/pull_review_comment.go +++ b/modules/task/pull_review_comment.go @@ -4,20 +4,21 @@ package task import ( + stdctx "context" "fmt" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/context" ) // ListPullReviewComments lists all review comments across all reviews for a PR -func ListPullReviewComments(ctx *context.TeaContext, idx int64) ([]*gitea.PullReviewComment, error) { +func ListPullReviewComments(requestCtx stdctx.Context, ctx *context.TeaContext, idx int64) ([]*gitea.PullReviewComment, error) { c := ctx.Login.Client() var reviews []*gitea.PullReview for page := 1; ; { - page_reviews, resp, err := c.ListPullReviews(ctx.Owner, ctx.Repo, idx, gitea.ListPullReviewsOptions{ + page_reviews, resp, err := c.PullRequests.ListPullReviews(requestCtx, ctx.Owner, ctx.Repo, idx, gitea.ListPullReviewsOptions{ ListOptions: gitea.ListOptions{Page: page, PageSize: 50}, }) if err != nil { @@ -32,7 +33,7 @@ func ListPullReviewComments(ctx *context.TeaContext, idx int64) ([]*gitea.PullRe var allComments []*gitea.PullReviewComment for _, review := range reviews { - comments, _, err := c.ListPullReviewComments(ctx.Owner, ctx.Repo, idx, review.ID) + comments, _, err := c.PullRequests.ListPullReviewComments(requestCtx, ctx.Owner, ctx.Repo, idx, review.ID) if err != nil { return nil, err } @@ -43,10 +44,10 @@ func ListPullReviewComments(ctx *context.TeaContext, idx int64) ([]*gitea.PullRe } // ResolvePullReviewComment resolves a review comment -func ResolvePullReviewComment(ctx *context.TeaContext, commentID int64) error { +func ResolvePullReviewComment(requestCtx stdctx.Context, ctx *context.TeaContext, commentID int64) error { c := ctx.Login.Client() - _, err := c.ResolvePullReviewComment(ctx.Owner, ctx.Repo, commentID) + _, err := c.PullRequests.ResolvePullReviewComment(requestCtx, ctx.Owner, ctx.Repo, commentID) if err != nil { return err } @@ -56,10 +57,10 @@ func ResolvePullReviewComment(ctx *context.TeaContext, commentID int64) error { } // UnresolvePullReviewComment unresolves a review comment -func UnresolvePullReviewComment(ctx *context.TeaContext, commentID int64) error { +func UnresolvePullReviewComment(requestCtx stdctx.Context, ctx *context.TeaContext, commentID int64) error { c := ctx.Login.Client() - _, err := c.UnresolvePullReviewComment(ctx.Owner, ctx.Repo, commentID) + _, err := c.PullRequests.UnresolvePullReviewComment(requestCtx, ctx.Owner, ctx.Repo, commentID) if err != nil { return err } diff --git a/modules/task/repo_clone.go b/modules/task/repo_clone.go index c940446f..185c6bf2 100644 --- a/modules/task/repo_clone.go +++ b/modules/task/repo_clone.go @@ -4,9 +4,10 @@ package task import ( + stdctx "context" "net/url" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "gitea.dev/tea/modules/config" local_git "gitea.dev/tea/modules/git" @@ -15,13 +16,14 @@ import ( // RepoClone creates a local git clone in the given path, and sets up upstream remote // for fork repos, for good usability with tea. func RepoClone( + ctx stdctx.Context, path string, login *config.Login, repoOwner, repoName string, callback func(string) (string, error), depth int, ) (*local_git.TeaRepo, error) { - repoMeta, _, err := login.Client().GetRepo(repoOwner, repoName) + repoMeta, _, err := login.Client().Repositories.GetRepo(ctx, repoOwner, repoName) if err != nil { return nil, err } diff --git a/tests/integration/admin_users_test.go b/tests/integration/admin_users_test.go index f830cba4..586aff84 100644 --- a/tests/integration/admin_users_test.go +++ b/tests/integration/admin_users_test.go @@ -4,14 +4,13 @@ package integration import ( - "context" "fmt" "os" "path/filepath" "testing" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -22,14 +21,14 @@ func runAdminCommand(t *testing.T, args []string) error { t.Helper() adminCmd := teacmd.CmdAdmin - return adminCmd.Run(context.Background(), args) + return adminCmd.Run(t.Context(), args) } func createAdminTestUser(t *testing.T, client *gitea.Client, username, password string) { t.Helper() mustChangePassword := false - user, _, err := client.AdminCreateUser(gitea.CreateUserOption{ + user, _, err := client.Admin.CreateUser(t.Context(), gitea.CreateUserOption{ LoginName: username, Username: username, Email: username + "@example.com", @@ -40,7 +39,7 @@ func createAdminTestUser(t *testing.T, client *gitea.Client, username, password require.Equal(t, username, user.UserName) t.Cleanup(func() { - if _, err := client.AdminDeleteUser(username); err != nil { + if _, err := client.Admin.DeleteUser(t.Context(), username); err != nil { t.Logf("failed to delete integration test user %q: %v", username, err) } }) @@ -76,7 +75,7 @@ func TestAdminUsersCreateAndDelete(t *testing.T) { }) require.NoError(t, err) - createdUser, _, err := client.GetUserInfo(username) + createdUser, _, err := client.Users.GetUserInfo(t.Context(), username) require.NoError(t, err) assert.Equal(t, username, createdUser.UserName) assert.Equal(t, username+"@example.com", createdUser.Email) @@ -91,7 +90,7 @@ func TestAdminUsersCreateAndDelete(t *testing.T) { }) require.NoError(t, err) - _, _, err = client.GetUserInfo(username) + _, _, err = client.Users.GetUserInfo(t.Context(), username) require.Error(t, err) } @@ -118,7 +117,7 @@ func TestAdminUsersEdit(t *testing.T) { }) require.NoError(t, err) - updatedUser, _, err := client.GetUserInfo(username) + updatedUser, _, err := client.Users.GetUserInfo(t.Context(), username) require.NoError(t, err) assert.Equal(t, username+"+new@example.com", updatedUser.Email) assert.Equal(t, "Tea Integration", updatedUser.FullName) @@ -134,7 +133,7 @@ func TestAdminUsersEdit(t *testing.T) { ) require.NoError(t, err) - me, _, err := passwordClient.GetMyUserInfo() + me, _, err := passwordClient.Users.GetMyUserInfo(t.Context()) require.NoError(t, err) assert.Equal(t, username, me.UserName) } diff --git a/tests/integration/helpers_test.go b/tests/integration/helpers_test.go index 369afb3e..2f131aae 100644 --- a/tests/integration/helpers_test.go +++ b/tests/integration/helpers_test.go @@ -4,13 +4,14 @@ package integration import ( + stdctx "context" "fmt" "os" "path/filepath" "testing" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/stretchr/testify/require" "gitea.dev/tea/modules/config" @@ -44,7 +45,7 @@ func TestMain(m *testing.M) { if integrationSetupErr == nil { tokenName := fmt.Sprintf("tea-integration-%d", time.Now().UnixNano()) var token *gitea.AccessToken - token, _, integrationSetupErr = integrationClient.CreateAccessToken(gitea.CreateAccessTokenOption{ + token, _, integrationSetupErr = integrationClient.Users.CreateAccessToken(stdctx.Background(), gitea.CreateAccessTokenOption{ Name: tokenName, Scopes: []gitea.AccessTokenScope{gitea.AccessTokenScopeAll}, }) @@ -59,7 +60,7 @@ func TestMain(m *testing.M) { exitCode := m.Run() if integrationClient != nil && integrationTokenID != 0 { - if _, err := integrationClient.DeleteAccessToken(integrationTokenID); err != nil { + if _, err := integrationClient.Users.DeleteAccessToken(stdctx.Background(), integrationTokenID); err != nil { fmt.Fprintf(os.Stderr, "failed to delete integration token %d: %v\n", integrationTokenID, err) if exitCode == 0 { exitCode = 1 @@ -95,7 +96,7 @@ func createIntegrationLogin(t *testing.T) *config.Login { require.NotEmpty(t, integrationToken, "integration token setup failed") - require.NoError(t, task.CreateLogin("integration", integrationToken, "", "", "", "", "", integrationGiteaURL, "", "", true, false, false, false)) + require.NoError(t, task.CreateLogin(t.Context(), "integration", integrationToken, "", "", "", "", "", integrationGiteaURL, "", "", true, false, false, false)) login, err := config.GetLoginByName("integration") require.NoError(t, err) diff --git a/tests/integration/repos_create_test.go b/tests/integration/repos_create_test.go index f0dfb3e4..20dbcf9e 100644 --- a/tests/integration/repos_create_test.go +++ b/tests/integration/repos_create_test.go @@ -4,12 +4,11 @@ package integration import ( - "context" "fmt" "testing" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/urfave/cli/v3" @@ -65,7 +64,7 @@ func TestCreateRepoObjectFormat(t *testing.T) { args := append([]string{"repos", "create"}, tt.args...) args = append(args, "--login", login.Name) - err := reposCmd.Run(context.Background(), args) + err := reposCmd.Run(t.Context(), args) if tt.wantErr { assert.Error(t, err) if tt.errContains != "" { @@ -76,7 +75,7 @@ func TestCreateRepoObjectFormat(t *testing.T) { require.NoError(t, err) t.Cleanup(func() { - if _, delErr := client.DeleteRepo(login.User, tt.wantOpts.Name); delErr != nil { + if _, delErr := client.Repositories.DeleteRepo(t.Context(), login.User, tt.wantOpts.Name); delErr != nil { t.Logf("failed to delete integration test repo %q: %v", tt.wantOpts.Name, delErr) } }) diff --git a/tests/integration/sshkeys_test.go b/tests/integration/sshkeys_test.go index c83c5cec..c59112fa 100644 --- a/tests/integration/sshkeys_test.go +++ b/tests/integration/sshkeys_test.go @@ -4,7 +4,6 @@ package integration import ( - "context" "crypto/ed25519" "crypto/rand" "encoding/base64" @@ -14,7 +13,7 @@ import ( "testing" "time" - "code.gitea.io/sdk/gitea" + gitea "gitea.dev/sdk" sshkeyscmd "gitea.dev/tea/cmd/sshkeys" @@ -65,14 +64,14 @@ func TestSSHKeyAddAndDelete(t *testing.T) { cmd := sshKeysCmd() client := login.Client() - err := cmd.Run(context.Background(), []string{ + err := cmd.Run(t.Context(), []string{ "ssh-keys", "add", pubKeyFile, "--title", keyTitle, "--login", login.Name, }) require.NoError(t, err) - keys, _, err := client.ListMyPublicKeys(gitea.ListPublicKeysOptions{ + keys, _, err := client.Users.ListMyPublicKeys(t.Context(), gitea.ListPublicKeysOptions{ ListOptions: gitea.ListOptions{Page: -1}, }) require.NoError(t, err) @@ -87,17 +86,17 @@ func TestSSHKeyAddAndDelete(t *testing.T) { require.NotNil(t, addedKey, "added key not found in key list") t.Cleanup(func() { - client.DeletePublicKey(addedKey.ID) //nolint:errcheck + client.Users.DeletePublicKey(t.Context(), addedKey.ID) //nolint:errcheck }) - err = cmd.Run(context.Background(), []string{ + err = cmd.Run(t.Context(), []string{ "ssh-keys", "delete", strconv.FormatInt(addedKey.ID, 10), "--confirm", "--login", login.Name, }) assert.NoError(t, err) - _, resp, err := client.GetPublicKey(addedKey.ID) + _, resp, err := client.Users.GetPublicKey(t.Context(), addedKey.ID) assert.Error(t, err) if assert.NotNil(t, resp) { assert.Equal(t, 404, resp.StatusCode) @@ -108,7 +107,7 @@ func TestSSHKeyList(t *testing.T) { login := createIntegrationLogin(t) cmd := sshKeysCmd() - err := cmd.Run(context.Background(), []string{ + err := cmd.Run(t.Context(), []string{ "ssh-keys", "list", "--login", login.Name, })