package gitea import ( "context" "encoding/json" "fmt" ) type FileContents struct { Path string `json:"path"` Sha string `json:"sha"` Size int64 `json:"size"` Content string `json:"content"` Encoding string `json:"encoding"` } func (c *Client) GetFileContents(ctx context.Context, owner, repo, path, ref string) (*FileContents, error) { p := fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", owner, repo, path) if ref != "" { p += "?ref=" + ref } body, status, err := c.GetJSON(ctx, p) if err != nil { return nil, err } if err := MapStatus(status, body); err != nil { return nil, err } var fc FileContents if err := json.Unmarshal(body, &fc); err != nil { return nil, err } return &fc, nil }