modelscope.cn

go-sdk

Use when writing Go code to interact with Gitea API - automation, bots, integrations, migrations, or programmatic git forge operations

Installation

$ npx skills add https://modelscope.cn

Also in this package

Other skills from modelscope.cn · top by installs.

npx skills add https://modelscope.cn

Browse all from modelscope.cn

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,375 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Gitea Go SDK

Overview

The official Go SDK for Gitea provides 332+ API methods with full type safety. Use it for bots, automation, integrations, and complex workflows. For quick CLI operations, use gitea:tea-cli instead.

Quick Setup

import "code.gitea.io/sdk/gitea"

// Create client
client, err := gitea.NewClient(
    "https://gitea.example.com",
    gitea.SetToken("your-token"),
)
go get code.gitea.io/sdk/gitea

See references/authentication.md in tea-cli for token creation.

Quick Reference

Task Method
Repos
List my repos client.ListMyRepos(ListReposOptions{})
Get repo client.GetRepo(owner, repo)
Create repo client.CreateRepo(CreateRepoOption{})
Issues
List issues client.ListRepoIssues(owner, repo, ListIssueOption{})
Create issue client.CreateIssue(owner, repo, CreateIssueOption{})
Edit issue client.EditIssue(owner, repo, index, EditIssueOption{})
PRs
List PRs client.ListRepoPullRequests(owner, repo, ListPullRequestsOptions{})
Create PR client.CreatePullRequest(owner, repo, CreatePullRequestOption{})
Merge PR client.MergePullRequest(owner, repo, index, MergePullRequestOption{})
Releases
List releases client.ListReleases(owner, repo, ListReleasesOptions{})
Create release client.CreateRelease(owner, repo, CreateReleaseOption{})

API Categories

See references/api-reference.md for complete method list:

  • Repositories (70+ methods)
  • Issues & comments (50+ methods)
  • Pull requests & reviews (40+ methods)
  • Releases & attachments
  • Organizations & teams
  • Users, webhooks, actions

Common Types

See references/types.md for struct definitions:

  • Repository, Issue, PullRequest, Release
  • User, Organization, Team
  • ListOptions for pagination
  • Option structs for create/edit

Patterns

See references/examples.md for idiomatic patterns:

  • Error handling
  • Pagination
  • Context usage
  • Webhook handlers

Authentication Options

// Token auth (recommended)
client, _ := gitea.NewClient(url, gitea.SetToken(token))

// Basic auth
client, _ := gitea.NewClient(url, gitea.SetBasicAuth(user, pass))

// With 2FA
client, _ := gitea.NewClient(url,
    gitea.SetBasicAuth(user, pass),
    gitea.SetOTP(otp),
)

// SSH key
client, _ := gitea.NewClient(url,
    gitea.UseSSHPubkey(fingerprint, keyPath, passphrase),
)

Common Patterns

// Pagination
opts := gitea.ListOptions{Page: 1, PageSize: 50}
for {
    repos, resp, _ := client.ListMyRepos(gitea.ListReposOptions{ListOptions: opts})
    // process repos...
    if resp.NextPage == 0 {
        break
    }
    opts.Page = resp.NextPage
}

// Context support
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
client.SetContext(ctx)

Common Mistakes

Problem Solution
Nil pointer panic Always check error before using result
Missing pagination Use resp.NextPage to get all results
Context timeout Set appropriate timeout for bulk operations
Rate limiting Check resp.Header for rate limit info