go 1.12
require (
- code.gitea.io/sdk v0.0.0-20190510041517-9251befd3702
github.com/BurntSushi/toml v0.3.1 // indirect
github.com/PuerkitoBio/goquery v0.0.0-20170324135448-ed7d758e9a34
github.com/RoaringBitmap/roaring v0.4.7 // indirect
cloud.google.com/go v0.30.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-code.gitea.io/sdk v0.0.0-20190419065346-2858b80da5f7 h1:YggbbCVgggcOjKYmcB2wVOsEtJHgHUNFFJZDB6QcYTg=
-code.gitea.io/sdk v0.0.0-20190419065346-2858b80da5f7/go.mod h1:5bZt0dRznpn2JysytQnV0yCru3FwDv9O5G91jo+lDAk=
-code.gitea.io/sdk v0.0.0-20190510041517-9251befd3702 h1:MyOmF6QejeIZfsEQYoJVHOm1PGNyGZMAZmo6cO8Hq80=
-code.gitea.io/sdk v0.0.0-20190510041517-9251befd3702/go.mod h1:5bZt0dRznpn2JysytQnV0yCru3FwDv9O5G91jo+lDAk=
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/PuerkitoBio/goquery v0.0.0-20170324135448-ed7d758e9a34 h1:UsHpWO0Elp6NaWVARdZHjiYwkhrspHVEGsyIKPb9OI8=
"testing"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"net/http"
"testing"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"testing"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"net/http"
"testing"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
func TestCreateForkNoLogin(t *testing.T) {
"strconv"
"testing"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"net/http"
"testing"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"testing"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"testing"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"github.com/stretchr/testify/assert"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
func TestViewDeployKeysNoLogin(t *testing.T) {
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/auth"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/git"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
import (
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/repofiles"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
func createFileInBranch(user *models.User, repo *models.Repository, treePath, branchName string) (*api.FileResponse, error) {
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"testing"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"testing"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"testing"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"testing"
"code.gitea.io/gitea/models"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/routers/api/v1/convert"
- api "code.gitea.io/sdk/gitea"
"github.com/stretchr/testify/assert"
)
"testing"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// TestAPICreateAndDeleteToken tests that token that was just created can be deleted
"testing"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"net/http"
"testing"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"testing"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
func BenchmarkRepo(b *testing.B) {
"testing"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/test"
- api "code.gitea.io/sdk/gitea"
"github.com/stretchr/testify/assert"
)
"testing"
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"path"
"testing"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"time"
"code.gitea.io/gitea/modules/git"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"testing"
"code.gitea.io/gitea/modules/setting"
- "code.gitea.io/sdk/gitea"
+ "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
req := NewRequest(t, "GET", "/api/v1/version")
resp := MakeRequest(t, req, http.StatusOK)
- var version gitea.ServerVersion
+ var version structs.ServerVersion
DecodeJSON(t, resp, &version)
assert.Equal(t, setting.AppVer, string(version.Version))
}
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/Unknwon/com"
"github.com/go-xorm/builder"
"path"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/go-xorm/xorm"
gouuid "github.com/satori/go.uuid"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/Unknwon/com"
"github.com/go-xorm/builder"
"code.gitea.io/gitea/modules/log"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/go-xorm/xorm"
)
"github.com/go-xorm/builder"
"github.com/go-xorm/xorm"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/markup"
"github.com/go-xorm/xorm"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
var labelColorPattern = regexp.MustCompile("#([a-fA-F0-9]{6})")
"html/template"
"testing"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/go-xorm/xorm"
)
"testing"
"time"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/stretchr/testify/assert"
)
"time"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/go-xorm/builder"
"github.com/go-xorm/xorm"
"time"
"code.gitea.io/gitea/modules/log"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/go-xorm/xorm"
)
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/process"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/sync"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/Unknwon/com"
"github.com/go-xorm/xorm"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/process"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/go-xorm/builder"
)
"code.gitea.io/gitea/modules/options"
"code.gitea.io/gitea/modules/process"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/sync"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/Unknwon/cae/zip"
"github.com/Unknwon/com"
"fmt"
"code.gitea.io/gitea/modules/log"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/go-xorm/builder"
"github.com/go-xorm/core"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/go-xorm/xorm"
)
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/structs"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/Unknwon/com"
"github.com/go-xorm/builder"
"code.gitea.io/gitea/modules/httplib"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/sync"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/Unknwon/com"
gouuid "github.com/satori/go.uuid"
)
"strings"
"code.gitea.io/gitea/modules/git"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
dingtalk "github.com/lunny/dingtalk_webhook"
)
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
type (
"strings"
"code.gitea.io/gitea/modules/git"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
type (
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// SlackMeta contains the slack metadata
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/markup"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
type (
"encoding/json"
"testing"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
//checkIsValidRequest check if it a valid request in case of bad request it write the response to ctx.
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// GetBlobBySHA get the GitBlobResponse of a repository using a sha hash.
"testing"
"code.gitea.io/gitea/models"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/test"
- api "code.gitea.io/sdk/gitea"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/git"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// GetFileContents gets the meta data on a file's contents
"testing"
"code.gitea.io/gitea/models"
+ "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/test"
- "code.gitea.io/sdk/gitea"
"github.com/stretchr/testify/assert"
)
treePath := "README.md"
ref := ctx.Repo.Repository.DefaultBranch
- expectedFileContentResponse := &gitea.FileContentResponse{
+ expectedFileContentResponse := &structs.FileContentResponse{
Name: treePath,
Path: treePath,
SHA: "4b4851ad51df6a7d9f25c979345979eaeb5b349f",
GitURL: "https://try.gitea.io/api/v1/repos/user2/repo1/git/blobs/4b4851ad51df6a7d9f25c979345979eaeb5b349f",
DownloadURL: "https://try.gitea.io/user2/repo1/raw/branch/master/README.md",
Type: "blob",
- Links: &gitea.FileLinksResponse{
+ Links: &structs.FileLinksResponse{
Self: "https://try.gitea.io/api/v1/repos/user2/repo1/contents/README.md",
GitURL: "https://try.gitea.io/api/v1/repos/user2/repo1/git/blobs/4b4851ad51df6a7d9f25c979345979eaeb5b349f",
HTMLURL: "https://try.gitea.io/user2/repo1/blob/master/README.md",
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/git"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// DeleteRepoFileOptions holds the repository delete file options
"testing"
"code.gitea.io/gitea/models"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/test"
- api "code.gitea.io/sdk/gitea"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/git"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// GetFileResponseFromCommit Constructs a FileResponse from a Commit object
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/git"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/test"
- api "code.gitea.io/sdk/gitea"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// GetTreeBySHA get the GitTreeResponse of a repository using a sha hash.
"testing"
"code.gitea.io/gitea/models"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/test"
- api "code.gitea.io/sdk/gitea"
"github.com/stretchr/testify/assert"
)
"code.gitea.io/gitea/modules/lfs"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
- "code.gitea.io/sdk/gitea"
+ "code.gitea.io/gitea/modules/structs"
)
// IdentityOptions for a person's identity like an author or committer
}
// CreateOrUpdateRepoFile adds or updates a file in the given repository
-func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *UpdateRepoFileOptions) (*gitea.FileResponse, error) {
+func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *UpdateRepoFileOptions) (*structs.FileResponse, error) {
// If no branch name is set, assume master
if opts.OldBranch == "" {
opts.OldBranch = repo.DefaultBranch
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/git"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/test"
- api "code.gitea.io/sdk/gitea"
"github.com/stretchr/testify/assert"
)
import (
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/git"
- "code.gitea.io/sdk/gitea"
+ "code.gitea.io/gitea/modules/structs"
)
// GetPayloadCommitVerification returns the verification information of a commit
-func GetPayloadCommitVerification(commit *git.Commit) *gitea.PayloadCommitVerification {
- verification := &gitea.PayloadCommitVerification{}
+func GetPayloadCommitVerification(commit *git.Commit) *structs.PayloadCommitVerification {
+ verification := &structs.PayloadCommitVerification{}
commitVerification := models.ParseCommitWithSignature(commit)
if commit.Signature != nil {
verification.Signature = commit.Signature.Signature
--- /dev/null
+// Copyright 2015 The Gogs Authors. All rights reserved.
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// CreateUserOption create user options
+type CreateUserOption struct {
+ SourceID int64 `json:"source_id"`
+ LoginName string `json:"login_name"`
+ // required: true
+ Username string `json:"username" binding:"Required;AlphaDashDot;MaxSize(40)"`
+ FullName string `json:"full_name" binding:"MaxSize(100)"`
+ // required: true
+ // swagger:strfmt email
+ Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
+ // required: true
+ Password string `json:"password" binding:"Required;MaxSize(255)"`
+ MustChangePassword *bool `json:"must_change_password"`
+ SendNotify bool `json:"send_notify"`
+}
+
+// EditUserOption edit user options
+type EditUserOption struct {
+ SourceID int64 `json:"source_id"`
+ LoginName string `json:"login_name"`
+ FullName string `json:"full_name" binding:"MaxSize(100)"`
+ // required: true
+ // swagger:strfmt email
+ Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
+ Password string `json:"password" binding:"MaxSize(255)"`
+ MustChangePassword *bool `json:"must_change_password"`
+ Website string `json:"website" binding:"MaxSize(50)"`
+ Location string `json:"location" binding:"MaxSize(50)"`
+ Active *bool `json:"active"`
+ Admin *bool `json:"admin"`
+ AllowGitHook *bool `json:"allow_git_hook"`
+ AllowImportLocal *bool `json:"allow_import_local"`
+ MaxRepoCreation *int `json:"max_repo_creation"`
+ ProhibitLogin *bool `json:"prohibit_login"`
+ AllowCreateOrganization *bool `json:"allow_create_organization"`
+}
--- /dev/null
+// Copyright 2017 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs // import "code.gitea.io/gitea/modules/structs"
+import (
+ "time"
+)
+
+// Attachment a generic attachment
+// swagger:model
+type Attachment struct {
+ ID int64 `json:"id"`
+ Name string `json:"name"`
+ Size int64 `json:"size"`
+ DownloadCount int64 `json:"download_count"`
+ // swagger:strfmt date-time
+ Created time.Time `json:"created_at"`
+ UUID string `json:"uuid"`
+ DownloadURL string `json:"browser_download_url"`
+}
+
+// EditAttachmentOptions options for editing attachments
+// swagger:model
+type EditAttachmentOptions struct {
+ Name string `json:"name"`
+}
--- /dev/null
+// Copyright 2016 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
--- /dev/null
+// Copyright 2016 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// CreateForkOption options for creating a fork
+type CreateForkOption struct {
+ // organization name, if forking into an organization
+ Organization *string `json:"organization"`
+}
--- /dev/null
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// GitBlobResponse represents a git blob
+type GitBlobResponse struct {
+ Content string `json:"content"`
+ Encoding string `json:"encoding"`
+ URL string `json:"url"`
+ SHA string `json:"sha"`
+ Size int64 `json:"size"`
+}
--- /dev/null
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// GitHook represents a Git repository hook
+type GitHook struct {
+ Name string `json:"name"`
+ IsActive bool `json:"is_active"`
+ Content string `json:"content,omitempty"`
+}
+
+// GitHookList represents a list of Git hooks
+type GitHookList []*GitHook
+
+// EditGitHookOption options when modifying one Git hook
+type EditGitHookOption struct {
+ Content string `json:"content"`
+}
--- /dev/null
+// Copyright 2014 The Gogs Authors. All rights reserved.
+// Copyright 2017 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "encoding/json"
+ "errors"
+ "strings"
+ "time"
+)
+
+var (
+ // ErrInvalidReceiveHook FIXME
+ ErrInvalidReceiveHook = errors.New("Invalid JSON payload received over webhook")
+)
+
+// Hook a hook is a web hook when one repository changed
+type Hook struct {
+ ID int64 `json:"id"`
+ Type string `json:"type"`
+ URL string `json:"-"`
+ Config map[string]string `json:"config"`
+ Events []string `json:"events"`
+ Active bool `json:"active"`
+ // swagger:strfmt date-time
+ Updated time.Time `json:"updated_at"`
+ // swagger:strfmt date-time
+ Created time.Time `json:"created_at"`
+}
+
+// HookList represents a list of API hook.
+type HookList []*Hook
+
+// CreateHookOption options when create a hook
+type CreateHookOption struct {
+ // required: true
+ // enum: gitea,gogs,slack,discord
+ Type string `json:"type" binding:"Required"`
+ // required: true
+ Config map[string]string `json:"config" binding:"Required"`
+ Events []string `json:"events"`
+ // default: false
+ Active bool `json:"active"`
+}
+
+// EditHookOption options when modify one hook
+type EditHookOption struct {
+ Config map[string]string `json:"config"`
+ Events []string `json:"events"`
+ Active *bool `json:"active"`
+}
+
+// Payloader payload is some part of one hook
+type Payloader interface {
+ SetSecret(string)
+ JSONPayload() ([]byte, error)
+}
+
+// PayloadUser represents the author or committer of a commit
+type PayloadUser struct {
+ // Full name of the commit author
+ Name string `json:"name"`
+ // swagger:strfmt email
+ Email string `json:"email"`
+ UserName string `json:"username"`
+}
+
+// FIXME: consider using same format as API when commits API are added.
+// applies to PayloadCommit and PayloadCommitVerification
+
+// PayloadCommit represents a commit
+type PayloadCommit struct {
+ // sha1 hash of the commit
+ ID string `json:"id"`
+ Message string `json:"message"`
+ URL string `json:"url"`
+ Author *PayloadUser `json:"author"`
+ Committer *PayloadUser `json:"committer"`
+ Verification *PayloadCommitVerification `json:"verification"`
+ // swagger:strfmt date-time
+ Timestamp time.Time `json:"timestamp"`
+ Added []string `json:"added"`
+ Removed []string `json:"removed"`
+ Modified []string `json:"modified"`
+}
+
+// PayloadCommitVerification represents the GPG verification of a commit
+type PayloadCommitVerification struct {
+ Verified bool `json:"verified"`
+ Reason string `json:"reason"`
+ Signature string `json:"signature"`
+ Payload string `json:"payload"`
+}
+
+var (
+ _ Payloader = &CreatePayload{}
+ _ Payloader = &DeletePayload{}
+ _ Payloader = &ForkPayload{}
+ _ Payloader = &PushPayload{}
+ _ Payloader = &IssuePayload{}
+ _ Payloader = &IssueCommentPayload{}
+ _ Payloader = &PullRequestPayload{}
+ _ Payloader = &RepositoryPayload{}
+ _ Payloader = &ReleasePayload{}
+)
+
+// _________ __
+// \_ ___ \_______ ____ _____ _/ |_ ____
+// / \ \/\_ __ \_/ __ \\__ \\ __\/ __ \
+// \ \____| | \/\ ___/ / __ \| | \ ___/
+// \______ /|__| \___ >____ /__| \___ >
+// \/ \/ \/ \/
+
+// CreatePayload FIXME
+type CreatePayload struct {
+ Secret string `json:"secret"`
+ Sha string `json:"sha"`
+ Ref string `json:"ref"`
+ RefType string `json:"ref_type"`
+ Repo *Repository `json:"repository"`
+ Sender *User `json:"sender"`
+}
+
+// SetSecret modifies the secret of the CreatePayload
+func (p *CreatePayload) SetSecret(secret string) {
+ p.Secret = secret
+}
+
+// JSONPayload return payload information
+func (p *CreatePayload) JSONPayload() ([]byte, error) {
+ return json.MarshalIndent(p, "", " ")
+}
+
+// ParseCreateHook parses create event hook content.
+func ParseCreateHook(raw []byte) (*CreatePayload, error) {
+ hook := new(CreatePayload)
+ if err := json.Unmarshal(raw, hook); err != nil {
+ return nil, err
+ }
+
+ // it is possible the JSON was parsed, however,
+ // was not from Gogs (maybe was from Bitbucket)
+ // So we'll check to be sure certain key fields
+ // were populated
+ switch {
+ case hook.Repo == nil:
+ return nil, ErrInvalidReceiveHook
+ case len(hook.Ref) == 0:
+ return nil, ErrInvalidReceiveHook
+ }
+ return hook, nil
+}
+
+// ________ .__ __
+// \______ \ ____ | | _____/ |_ ____
+// | | \_/ __ \| | _/ __ \ __\/ __ \
+// | ` \ ___/| |_\ ___/| | \ ___/
+// /_______ /\___ >____/\___ >__| \___ >
+// \/ \/ \/ \/
+
+// PusherType define the type to push
+type PusherType string
+
+// describe all the PusherTypes
+const (
+ PusherTypeUser PusherType = "user"
+)
+
+// DeletePayload represents delete payload
+type DeletePayload struct {
+ Secret string `json:"secret"`
+ Ref string `json:"ref"`
+ RefType string `json:"ref_type"`
+ PusherType PusherType `json:"pusher_type"`
+ Repo *Repository `json:"repository"`
+ Sender *User `json:"sender"`
+}
+
+// SetSecret modifies the secret of the DeletePayload
+func (p *DeletePayload) SetSecret(secret string) {
+ p.Secret = secret
+}
+
+// JSONPayload implements Payload
+func (p *DeletePayload) JSONPayload() ([]byte, error) {
+ return json.MarshalIndent(p, "", " ")
+}
+
+// ___________ __
+// \_ _____/__________| | __
+// | __)/ _ \_ __ \ |/ /
+// | \( <_> ) | \/ <
+// \___ / \____/|__| |__|_ \
+// \/ \/
+
+// ForkPayload represents fork payload
+type ForkPayload struct {
+ Secret string `json:"secret"`
+ Forkee *Repository `json:"forkee"`
+ Repo *Repository `json:"repository"`
+ Sender *User `json:"sender"`
+}
+
+// SetSecret modifies the secret of the ForkPayload
+func (p *ForkPayload) SetSecret(secret string) {
+ p.Secret = secret
+}
+
+// JSONPayload implements Payload
+func (p *ForkPayload) JSONPayload() ([]byte, error) {
+ return json.MarshalIndent(p, "", " ")
+}
+
+// HookIssueCommentAction defines hook issue comment action
+type HookIssueCommentAction string
+
+// all issue comment actions
+const (
+ HookIssueCommentCreated HookIssueCommentAction = "created"
+ HookIssueCommentEdited HookIssueCommentAction = "edited"
+ HookIssueCommentDeleted HookIssueCommentAction = "deleted"
+)
+
+// IssueCommentPayload represents a payload information of issue comment event.
+type IssueCommentPayload struct {
+ Secret string `json:"secret"`
+ Action HookIssueCommentAction `json:"action"`
+ Issue *Issue `json:"issue"`
+ Comment *Comment `json:"comment"`
+ Changes *ChangesPayload `json:"changes,omitempty"`
+ Repository *Repository `json:"repository"`
+ Sender *User `json:"sender"`
+}
+
+// SetSecret modifies the secret of the IssueCommentPayload
+func (p *IssueCommentPayload) SetSecret(secret string) {
+ p.Secret = secret
+}
+
+// JSONPayload implements Payload
+func (p *IssueCommentPayload) JSONPayload() ([]byte, error) {
+ return json.MarshalIndent(p, "", " ")
+}
+
+// __________ .__
+// \______ \ ____ | | ____ _____ ______ ____
+// | _// __ \| | _/ __ \\__ \ / ___// __ \
+// | | \ ___/| |_\ ___/ / __ \_\___ \\ ___/
+// |____|_ /\___ >____/\___ >____ /____ >\___ >
+// \/ \/ \/ \/ \/ \/
+
+// HookReleaseAction defines hook release action type
+type HookReleaseAction string
+
+// all release actions
+const (
+ HookReleasePublished HookReleaseAction = "published"
+ HookReleaseUpdated HookReleaseAction = "updated"
+ HookReleaseDeleted HookReleaseAction = "deleted"
+)
+
+// ReleasePayload represents a payload information of release event.
+type ReleasePayload struct {
+ Secret string `json:"secret"`
+ Action HookReleaseAction `json:"action"`
+ Release *Release `json:"release"`
+ Repository *Repository `json:"repository"`
+ Sender *User `json:"sender"`
+}
+
+// SetSecret modifies the secret of the ReleasePayload
+func (p *ReleasePayload) SetSecret(secret string) {
+ p.Secret = secret
+}
+
+// JSONPayload implements Payload
+func (p *ReleasePayload) JSONPayload() ([]byte, error) {
+ return json.MarshalIndent(p, "", " ")
+}
+
+// __________ .__
+// \______ \__ __ _____| |__
+// | ___/ | \/ ___/ | \
+// | | | | /\___ \| Y \
+// |____| |____//____ >___| /
+// \/ \/
+
+// PushPayload represents a payload information of push event.
+type PushPayload struct {
+ Secret string `json:"secret"`
+ Ref string `json:"ref"`
+ Before string `json:"before"`
+ After string `json:"after"`
+ CompareURL string `json:"compare_url"`
+ Commits []*PayloadCommit `json:"commits"`
+ HeadCommit *PayloadCommit `json:"head_commit"`
+ Repo *Repository `json:"repository"`
+ Pusher *User `json:"pusher"`
+ Sender *User `json:"sender"`
+}
+
+// SetSecret modifies the secret of the PushPayload
+func (p *PushPayload) SetSecret(secret string) {
+ p.Secret = secret
+}
+
+// JSONPayload FIXME
+func (p *PushPayload) JSONPayload() ([]byte, error) {
+ return json.MarshalIndent(p, "", " ")
+}
+
+// ParsePushHook parses push event hook content.
+func ParsePushHook(raw []byte) (*PushPayload, error) {
+ hook := new(PushPayload)
+ if err := json.Unmarshal(raw, hook); err != nil {
+ return nil, err
+ }
+
+ switch {
+ case hook.Repo == nil:
+ return nil, ErrInvalidReceiveHook
+ case len(hook.Ref) == 0:
+ return nil, ErrInvalidReceiveHook
+ }
+ return hook, nil
+}
+
+// Branch returns branch name from a payload
+func (p *PushPayload) Branch() string {
+ return strings.Replace(p.Ref, "refs/heads/", "", -1)
+}
+
+// .___
+// | | ______ ________ __ ____
+// | |/ ___// ___/ | \_/ __ \
+// | |\___ \ \___ \| | /\ ___/
+// |___/____ >____ >____/ \___ >
+// \/ \/ \/
+
+// HookIssueAction FIXME
+type HookIssueAction string
+
+const (
+ // HookIssueOpened opened
+ HookIssueOpened HookIssueAction = "opened"
+ // HookIssueClosed closed
+ HookIssueClosed HookIssueAction = "closed"
+ // HookIssueReOpened reopened
+ HookIssueReOpened HookIssueAction = "reopened"
+ // HookIssueEdited edited
+ HookIssueEdited HookIssueAction = "edited"
+ // HookIssueAssigned assigned
+ HookIssueAssigned HookIssueAction = "assigned"
+ // HookIssueUnassigned unassigned
+ HookIssueUnassigned HookIssueAction = "unassigned"
+ // HookIssueLabelUpdated label_updated
+ HookIssueLabelUpdated HookIssueAction = "label_updated"
+ // HookIssueLabelCleared label_cleared
+ HookIssueLabelCleared HookIssueAction = "label_cleared"
+ // HookIssueSynchronized synchronized
+ HookIssueSynchronized HookIssueAction = "synchronized"
+ // HookIssueMilestoned is an issue action for when a milestone is set on an issue.
+ HookIssueMilestoned HookIssueAction = "milestoned"
+ // HookIssueDemilestoned is an issue action for when a milestone is cleared on an issue.
+ HookIssueDemilestoned HookIssueAction = "demilestoned"
+)
+
+// IssuePayload represents the payload information that is sent along with an issue event.
+type IssuePayload struct {
+ Secret string `json:"secret"`
+ Action HookIssueAction `json:"action"`
+ Index int64 `json:"number"`
+ Changes *ChangesPayload `json:"changes,omitempty"`
+ Issue *Issue `json:"issue"`
+ Repository *Repository `json:"repository"`
+ Sender *User `json:"sender"`
+}
+
+// SetSecret modifies the secret of the IssuePayload.
+func (p *IssuePayload) SetSecret(secret string) {
+ p.Secret = secret
+}
+
+// JSONPayload encodes the IssuePayload to JSON, with an indentation of two spaces.
+func (p *IssuePayload) JSONPayload() ([]byte, error) {
+ return json.MarshalIndent(p, "", " ")
+}
+
+// ChangesFromPayload FIXME
+type ChangesFromPayload struct {
+ From string `json:"from"`
+}
+
+// ChangesPayload FIXME
+type ChangesPayload struct {
+ Title *ChangesFromPayload `json:"title,omitempty"`
+ Body *ChangesFromPayload `json:"body,omitempty"`
+}
+
+// __________ .__ .__ __________ __
+// \______ \__ __| | | | \______ \ ____ ________ __ ____ _______/ |_
+// | ___/ | \ | | | | _// __ \/ ____/ | \_/ __ \ / ___/\ __\
+// | | | | / |_| |__ | | \ ___< <_| | | /\ ___/ \___ \ | |
+// |____| |____/|____/____/ |____|_ /\___ >__ |____/ \___ >____ > |__|
+// \/ \/ |__| \/ \/
+
+// PullRequestPayload represents a payload information of pull request event.
+type PullRequestPayload struct {
+ Secret string `json:"secret"`
+ Action HookIssueAction `json:"action"`
+ Index int64 `json:"number"`
+ Changes *ChangesPayload `json:"changes,omitempty"`
+ PullRequest *PullRequest `json:"pull_request"`
+ Repository *Repository `json:"repository"`
+ Sender *User `json:"sender"`
+}
+
+// SetSecret modifies the secret of the PullRequestPayload.
+func (p *PullRequestPayload) SetSecret(secret string) {
+ p.Secret = secret
+}
+
+// JSONPayload FIXME
+func (p *PullRequestPayload) JSONPayload() ([]byte, error) {
+ return json.MarshalIndent(p, "", " ")
+}
+
+//__________ .__ __
+//\______ \ ____ ______ ____ _____|__|/ |_ ___________ ___.__.
+// | _// __ \\____ \ / _ \/ ___/ \ __\/ _ \_ __ < | |
+// | | \ ___/| |_> > <_> )___ \| || | ( <_> ) | \/\___ |
+// |____|_ /\___ > __/ \____/____ >__||__| \____/|__| / ____|
+// \/ \/|__| \/ \/
+
+// HookRepoAction an action that happens to a repo
+type HookRepoAction string
+
+const (
+ // HookRepoCreated created
+ HookRepoCreated HookRepoAction = "created"
+ // HookRepoDeleted deleted
+ HookRepoDeleted HookRepoAction = "deleted"
+)
+
+// RepositoryPayload payload for repository webhooks
+type RepositoryPayload struct {
+ Secret string `json:"secret"`
+ Action HookRepoAction `json:"action"`
+ Repository *Repository `json:"repository"`
+ Organization *User `json:"organization"`
+ Sender *User `json:"sender"`
+}
+
+// SetSecret modifies the secret of the RepositoryPayload
+func (p *RepositoryPayload) SetSecret(secret string) {
+ p.Secret = secret
+}
+
+// JSONPayload JSON representation of the payload
+func (p *RepositoryPayload) JSONPayload() ([]byte, error) {
+ return json.MarshalIndent(p, "", " ")
+}
--- /dev/null
+// Copyright 2016 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// StateType issue state type
+type StateType string
+
+const (
+ // StateOpen pr is opend
+ StateOpen StateType = "open"
+ // StateClosed pr is closed
+ StateClosed StateType = "closed"
+)
+
+// PullRequestMeta PR info if an issue is a PR
+type PullRequestMeta struct {
+ HasMerged bool `json:"merged"`
+ Merged *time.Time `json:"merged_at"`
+}
+
+// Issue represents an issue in a repository
+// swagger:model
+type Issue struct {
+ ID int64 `json:"id"`
+ URL string `json:"url"`
+ Index int64 `json:"number"`
+ Poster *User `json:"user"`
+ Title string `json:"title"`
+ Body string `json:"body"`
+ Labels []*Label `json:"labels"`
+ Milestone *Milestone `json:"milestone"`
+ Assignee *User `json:"assignee"`
+ Assignees []*User `json:"assignees"`
+ // Whether the issue is open or closed
+ //
+ // type: string
+ // enum: open,closed
+ State StateType `json:"state"`
+ Comments int `json:"comments"`
+ // swagger:strfmt date-time
+ Created time.Time `json:"created_at"`
+ // swagger:strfmt date-time
+ Updated time.Time `json:"updated_at"`
+ // swagger:strfmt date-time
+ Closed *time.Time `json:"closed_at"`
+ // swagger:strfmt date-time
+ Deadline *time.Time `json:"due_date"`
+
+ PullRequest *PullRequestMeta `json:"pull_request"`
+}
+
+// ListIssueOption list issue options
+type ListIssueOption struct {
+ Page int
+ State string
+}
+
+// CreateIssueOption options to create one issue
+type CreateIssueOption struct {
+ // required:true
+ Title string `json:"title" binding:"Required"`
+ Body string `json:"body"`
+ // username of assignee
+ Assignee string `json:"assignee"`
+ Assignees []string `json:"assignees"`
+ // swagger:strfmt date-time
+ Deadline *time.Time `json:"due_date"`
+ // milestone id
+ Milestone int64 `json:"milestone"`
+ // list of label ids
+ Labels []int64 `json:"labels"`
+ Closed bool `json:"closed"`
+}
+
+// EditIssueOption options for editing an issue
+type EditIssueOption struct {
+ Title string `json:"title"`
+ Body *string `json:"body"`
+ Assignee *string `json:"assignee"`
+ Assignees []string `json:"assignees"`
+ Milestone *int64 `json:"milestone"`
+ State *string `json:"state"`
+ // swagger:strfmt date-time
+ Deadline *time.Time `json:"due_date"`
+}
+
+// EditDeadlineOption options for creating a deadline
+type EditDeadlineOption struct {
+ // required:true
+ // swagger:strfmt date-time
+ Deadline *time.Time `json:"due_date"`
+}
+
+// IssueDeadline represents an issue deadline
+// swagger:model
+type IssueDeadline struct {
+ // swagger:strfmt date-time
+ Deadline *time.Time `json:"due_date"`
+}
+
+// EditPriorityOption options for updating priority
+type EditPriorityOption struct {
+ // required:true
+ Priority int `json:"priority"`
+}
--- /dev/null
+// Copyright 2016 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// Comment represents a comment on a commit or issue
+type Comment struct {
+ ID int64 `json:"id"`
+ HTMLURL string `json:"html_url"`
+ PRURL string `json:"pull_request_url"`
+ IssueURL string `json:"issue_url"`
+ Poster *User `json:"user"`
+ Body string `json:"body"`
+ // swagger:strfmt date-time
+ Created time.Time `json:"created_at"`
+ // swagger:strfmt date-time
+ Updated time.Time `json:"updated_at"`
+}
+
+// CreateIssueCommentOption options for creating a comment on an issue
+type CreateIssueCommentOption struct {
+ // required:true
+ Body string `json:"body" binding:"Required"`
+}
+
+// EditIssueCommentOption options for editing a comment
+type EditIssueCommentOption struct {
+ // required: true
+ Body string `json:"body" binding:"Required"`
+}
--- /dev/null
+// Copyright 2016 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// Label a label to an issue or a pr
+// swagger:model
+type Label struct {
+ ID int64 `json:"id"`
+ Name string `json:"name"`
+ // example: 00aabb
+ Color string `json:"color"`
+ URL string `json:"url"`
+}
+
+// CreateLabelOption options for creating a label
+type CreateLabelOption struct {
+ // required:true
+ Name string `json:"name" binding:"Required"`
+ // required:true
+ // example: #00aabb
+ Color string `json:"color" binding:"Required;Size(7)"`
+}
+
+// EditLabelOption options for editing a label
+type EditLabelOption struct {
+ Name *string `json:"name"`
+ Color *string `json:"color"`
+}
+
+// IssueLabelsOption a collection of labels
+type IssueLabelsOption struct {
+ // list of label IDs
+ Labels []int64 `json:"labels"`
+}
--- /dev/null
+// Copyright 2016 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// Milestone milestone is a collection of issues on one repository
+type Milestone struct {
+ ID int64 `json:"id"`
+ Title string `json:"title"`
+ Description string `json:"description"`
+ State StateType `json:"state"`
+ OpenIssues int `json:"open_issues"`
+ ClosedIssues int `json:"closed_issues"`
+ // swagger:strfmt date-time
+ Closed *time.Time `json:"closed_at"`
+ // swagger:strfmt date-time
+ Deadline *time.Time `json:"due_on"`
+}
+
+// CreateMilestoneOption options for creating a milestone
+type CreateMilestoneOption struct {
+ Title string `json:"title"`
+ Description string `json:"description"`
+ // swagger:strfmt date-time
+ Deadline *time.Time `json:"due_on"`
+}
+
+// EditMilestoneOption options for editing a milestone
+type EditMilestoneOption struct {
+ Title string `json:"title"`
+ Description *string `json:"description"`
+ State *string `json:"state"`
+ Deadline *time.Time `json:"due_on"`
+}
--- /dev/null
+// Copyright 2017 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// TrackedTime worked time for an issue / pr
+type TrackedTime struct {
+ ID int64 `json:"id"`
+ // swagger:strfmt date-time
+ Created time.Time `json:"created"`
+ // Time in seconds
+ Time int64 `json:"time"`
+ UserID int64 `json:"user_id"`
+ IssueID int64 `json:"issue_id"`
+}
+
+// TrackedTimes represent a list of tracked times
+type TrackedTimes []*TrackedTime
+
+// AddTimeOption options for adding time to an issue
+type AddTimeOption struct {
+ // time in seconds
+ // required: true
+ Time int64 `json:"time" binding:"Required"`
+}
--- /dev/null
+// Copyright 2017 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// LFSLock represent a lock
+// for use with the locks API.
+type LFSLock struct {
+ ID string `json:"id"`
+ Path string `json:"path"`
+ LockedAt time.Time `json:"locked_at"`
+ Owner *LFSLockOwner `json:"owner"`
+}
+
+// LFSLockOwner represent a lock owner
+// for use with the locks API.
+type LFSLockOwner struct {
+ Name string `json:"name"`
+}
+
+// LFSLockRequest contains the path of the lock to create
+// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#create-lock
+type LFSLockRequest struct {
+ Path string `json:"path"`
+}
+
+// LFSLockResponse represent a lock created
+// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#create-lock
+type LFSLockResponse struct {
+ Lock *LFSLock `json:"lock"`
+}
+
+// LFSLockList represent a list of lock requested
+// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#list-locks
+type LFSLockList struct {
+ Locks []*LFSLock `json:"locks"`
+ Next string `json:"next_cursor,omitempty"`
+}
+
+// LFSLockListVerify represent a list of lock verification requested
+// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#list-locks-for-verification
+type LFSLockListVerify struct {
+ Ours []*LFSLock `json:"ours"`
+ Theirs []*LFSLock `json:"theirs"`
+ Next string `json:"next_cursor,omitempty"`
+}
+
+// LFSLockError contains information on the error that occurs
+type LFSLockError struct {
+ Message string `json:"message"`
+ Lock *LFSLock `json:"lock,omitempty"`
+ Documentation string `json:"documentation_url,omitempty"`
+ RequestID string `json:"request_id,omitempty"`
+}
+
+// LFSLockDeleteRequest contains params of a delete request
+// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#delete-lock
+type LFSLockDeleteRequest struct {
+ Force bool `json:"force"`
+}
--- /dev/null
+// Copyright 2015 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// SearchResults results of a successful search
+type SearchResults struct {
+ OK bool `json:"ok"`
+ Data []*Repository `json:"data"`
+}
+
+// SearchError error of a failed search
+type SearchError struct {
+ OK bool `json:"ok"`
+ Error string `json:"error"`
+}
+
+// MarkdownOption markdown options
+type MarkdownOption struct {
+ // Text markdown to render
+ //
+ // in: body
+ Text string
+ // Mode to render
+ //
+ // in: body
+ Mode string
+ // Context to render
+ //
+ // in: body
+ Context string
+ // Is it a wiki page ?
+ //
+ // in: body
+ Wiki bool
+}
+
+// MarkdownRender is a rendered markdown document
+// swagger:response MarkdownRender
+type MarkdownRender string
+
+// ServerVersion wraps the version of the server
+type ServerVersion struct {
+ Version string `json:"version"`
+}
--- /dev/null
+// Copyright 2015 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// Organization represents an organization
+type Organization struct {
+ ID int64 `json:"id"`
+ UserName string `json:"username"`
+ FullName string `json:"full_name"`
+ AvatarURL string `json:"avatar_url"`
+ Description string `json:"description"`
+ Website string `json:"website"`
+ Location string `json:"location"`
+ Visibility VisibleType `json:"visibility"`
+}
+
+// CreateOrgOption options for creating an organization
+type CreateOrgOption struct {
+ // required: true
+ UserName string `json:"username" binding:"Required"`
+ FullName string `json:"full_name"`
+ Description string `json:"description"`
+ Website string `json:"website"`
+ Location string `json:"location"`
+ Visibility VisibleType `json:"visibility"`
+}
+
+// EditOrgOption options for editing an organization
+type EditOrgOption struct {
+ FullName string `json:"full_name"`
+ Description string `json:"description"`
+ Website string `json:"website"`
+ Location string `json:"location"`
+}
--- /dev/null
+// Copyright 2016 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// AddOrgMembershipOption add user to organization options
+type AddOrgMembershipOption struct {
+ Role string `json:"role" binding:"Required"`
+}
--- /dev/null
+// Copyright 2016 The Gogs Authors. All rights reserved.
+// Copyright 2018 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// Team represents a team in an organization
+type Team struct {
+ ID int64 `json:"id"`
+ Name string `json:"name"`
+ Description string `json:"description"`
+ Organization *Organization `json:"organization"`
+ // enum: none,read,write,admin,owner
+ Permission string `json:"permission"`
+ // enum: repo.code,repo.issues,repo.ext_issues,repo.wiki,repo.pulls,repo.releases,repo.ext_wiki
+ Units []string `json:"units"`
+}
+
+// CreateTeamOption options for creating a team
+type CreateTeamOption struct {
+ // required: true
+ Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(30)"`
+ Description string `json:"description" binding:"MaxSize(255)"`
+ // enum: read,write,admin
+ Permission string `json:"permission"`
+ // enum: repo.code,repo.issues,repo.ext_issues,repo.wiki,repo.pulls,repo.releases,repo.ext_wiki
+ Units []string `json:"units"`
+}
+
+// EditTeamOption options for editing a team
+type EditTeamOption struct {
+ // required: true
+ Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(30)"`
+ Description string `json:"description" binding:"MaxSize(255)"`
+ // enum: read,write,admin
+ Permission string `json:"permission"`
+ // enum: repo.code,repo.issues,repo.ext_issues,repo.wiki,repo.pulls,repo.releases,repo.ext_wiki
+ Units []string `json:"units"`
+}
--- /dev/null
+// Copyright 2016 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// PullRequest represents a pull request
+type PullRequest struct {
+ ID int64 `json:"id"`
+ URL string `json:"url"`
+ Index int64 `json:"number"`
+ Poster *User `json:"user"`
+ Title string `json:"title"`
+ Body string `json:"body"`
+ Labels []*Label `json:"labels"`
+ Milestone *Milestone `json:"milestone"`
+ Assignee *User `json:"assignee"`
+ Assignees []*User `json:"assignees"`
+ State StateType `json:"state"`
+ Comments int `json:"comments"`
+
+ HTMLURL string `json:"html_url"`
+ DiffURL string `json:"diff_url"`
+ PatchURL string `json:"patch_url"`
+
+ Mergeable bool `json:"mergeable"`
+ HasMerged bool `json:"merged"`
+ // swagger:strfmt date-time
+ Merged *time.Time `json:"merged_at"`
+ MergedCommitID *string `json:"merge_commit_sha"`
+ MergedBy *User `json:"merged_by"`
+
+ Base *PRBranchInfo `json:"base"`
+ Head *PRBranchInfo `json:"head"`
+ MergeBase string `json:"merge_base"`
+
+ // swagger:strfmt date-time
+ Deadline *time.Time `json:"due_date"`
+
+ // swagger:strfmt date-time
+ Created *time.Time `json:"created_at"`
+ // swagger:strfmt date-time
+ Updated *time.Time `json:"updated_at"`
+ // swagger:strfmt date-time
+ Closed *time.Time `json:"closed_at"`
+}
+
+// PRBranchInfo information about a branch
+type PRBranchInfo struct {
+ Name string `json:"label"`
+ Ref string `json:"ref"`
+ Sha string `json:"sha"`
+ RepoID int64 `json:"repo_id"`
+ Repository *Repository `json:"repo"`
+}
+
+// ListPullRequestsOptions options for listing pull requests
+type ListPullRequestsOptions struct {
+ Page int `json:"page"`
+ State string `json:"state"`
+}
+
+// CreatePullRequestOption options when creating a pull request
+type CreatePullRequestOption struct {
+ Head string `json:"head" binding:"Required"`
+ Base string `json:"base" binding:"Required"`
+ Title string `json:"title" binding:"Required"`
+ Body string `json:"body"`
+ Assignee string `json:"assignee"`
+ Assignees []string `json:"assignees"`
+ Milestone int64 `json:"milestone"`
+ Labels []int64 `json:"labels"`
+ // swagger:strfmt date-time
+ Deadline *time.Time `json:"due_date"`
+}
+
+// EditPullRequestOption options when modify pull request
+type EditPullRequestOption struct {
+ Title string `json:"title"`
+ Body string `json:"body"`
+ Assignee string `json:"assignee"`
+ Assignees []string `json:"assignees"`
+ Milestone int64 `json:"milestone"`
+ Labels []int64 `json:"labels"`
+ State *string `json:"state"`
+ // swagger:strfmt date-time
+ Deadline *time.Time `json:"due_date"`
+}
--- /dev/null
+// Copyright 2016 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// Release represents a repository release
+type Release struct {
+ ID int64 `json:"id"`
+ TagName string `json:"tag_name"`
+ Target string `json:"target_commitish"`
+ Title string `json:"name"`
+ Note string `json:"body"`
+ URL string `json:"url"`
+ TarURL string `json:"tarball_url"`
+ ZipURL string `json:"zipball_url"`
+ IsDraft bool `json:"draft"`
+ IsPrerelease bool `json:"prerelease"`
+ // swagger:strfmt date-time
+ CreatedAt time.Time `json:"created_at"`
+ // swagger:strfmt date-time
+ PublishedAt time.Time `json:"published_at"`
+ Publisher *User `json:"author"`
+ Attachments []*Attachment `json:"assets"`
+}
+
+// CreateReleaseOption options when creating a release
+type CreateReleaseOption struct {
+ // required: true
+ TagName string `json:"tag_name" binding:"Required"`
+ Target string `json:"target_commitish"`
+ Title string `json:"name"`
+ Note string `json:"body"`
+ IsDraft bool `json:"draft"`
+ IsPrerelease bool `json:"prerelease"`
+}
+
+// EditReleaseOption options when editing a release
+type EditReleaseOption struct {
+ TagName string `json:"tag_name"`
+ Target string `json:"target_commitish"`
+ Title string `json:"name"`
+ Note string `json:"body"`
+ IsDraft *bool `json:"draft"`
+ IsPrerelease *bool `json:"prerelease"`
+}
--- /dev/null
+// Copyright 2014 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// Permission represents a set of permissions
+type Permission struct {
+ Admin bool `json:"admin"`
+ Push bool `json:"push"`
+ Pull bool `json:"pull"`
+}
+
+// Repository represents a repository
+type Repository struct {
+ ID int64 `json:"id"`
+ Owner *User `json:"owner"`
+ Name string `json:"name"`
+ FullName string `json:"full_name"`
+ Description string `json:"description"`
+ Empty bool `json:"empty"`
+ Private bool `json:"private"`
+ Fork bool `json:"fork"`
+ Parent *Repository `json:"parent"`
+ Mirror bool `json:"mirror"`
+ Size int `json:"size"`
+ HTMLURL string `json:"html_url"`
+ SSHURL string `json:"ssh_url"`
+ CloneURL string `json:"clone_url"`
+ Website string `json:"website"`
+ Stars int `json:"stars_count"`
+ Forks int `json:"forks_count"`
+ Watchers int `json:"watchers_count"`
+ OpenIssues int `json:"open_issues_count"`
+ DefaultBranch string `json:"default_branch"`
+ Archived bool `json:"archived"`
+ // swagger:strfmt date-time
+ Created time.Time `json:"created_at"`
+ // swagger:strfmt date-time
+ Updated time.Time `json:"updated_at"`
+ Permissions *Permission `json:"permissions,omitempty"`
+}
+
+// CreateRepoOption options when creating repository
+// swagger:model
+type CreateRepoOption struct {
+ // Name of the repository to create
+ //
+ // required: true
+ // unique: true
+ Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(100)"`
+ // Description of the repository to create
+ Description string `json:"description" binding:"MaxSize(255)"`
+ // Whether the repository is private
+ Private bool `json:"private"`
+ // Whether the repository should be auto-intialized?
+ AutoInit bool `json:"auto_init"`
+ // Gitignores to use
+ Gitignores string `json:"gitignores"`
+ // License to use
+ License string `json:"license"`
+ // Readme of the repository to create
+ Readme string `json:"readme"`
+}
+
+// EditRepoOption options when editing a repository's properties
+// swagger:model
+type EditRepoOption struct {
+ // Name of the repository
+ //
+ // required: true
+ // unique: true
+ Name *string `json:"name" binding:"Required;AlphaDashDot;MaxSize(100)"`
+ // A short description of the repository.
+ Description *string `json:"description,omitempty" binding:"MaxSize(255)"`
+ // A URL with more information about the repository.
+ Website *string `json:"website,omitempty" binding:"MaxSize(255)"`
+ // Either `true` to make the repository private or `false` to make it public.
+ // Note: You will get a 422 error if the organization restricts changing repository visibility to organization
+ // owners and a non-owner tries to change the value of private.
+ Private *bool `json:"private,omitempty"`
+ // Either `true` to enable issues for this repository or `false` to disable them.
+ EnableIssues *bool `json:"enable_issues,omitempty"`
+ // Either `true` to enable the wiki for this repository or `false` to disable it.
+ EnableWiki *bool `json:"enable_wiki,omitempty"`
+ // Updates the default branch for this repository.
+ DefaultBranch *string `json:"default_branch,omitempty"`
+ // Either `true` to allow pull requests, or `false` to prevent pull request.
+ EnablePullRequests *bool `json:"enable_pull_requests,omitempty"`
+ // Either `true` to ignore whitepace for conflicts, or `false` to not ignore whitespace. `enabled_pull_requests` must be `true`.
+ IgnoreWhitespaceConflicts *bool `json:"ignore_whitespace,omitempty"`
+ // Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. `enabled_pull_requests` must be `true`.
+ AllowMerge *bool `json:"allow_merge_commits,omitempty"`
+ // Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. `enabled_pull_requests` must be `true`.
+ AllowRebase *bool `json:"allow_rebase,omitempty"`
+ // Either `true` to allow rebase with explicit merge commits (--no-ff), or `false` to prevent rebase with explicit merge commits. `enabled_pull_requests` must be `true`.
+ AllowRebaseMerge *bool `json:"allow_rebase_explicit,omitempty"`
+ // Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. `enabled_pull_requests` must be `true`.
+ AllowSquashMerge *bool `json:"allow_squash_merge,omitempty"`
+ // `true` to archive this repository. Note: You cannot unarchive repositories through the API.
+ Archived *bool `json:"archived,omitempty"`
+}
+
+// MigrateRepoOption options for migrating a repository from an external service
+type MigrateRepoOption struct {
+ // required: true
+ CloneAddr string `json:"clone_addr" binding:"Required"`
+ AuthUsername string `json:"auth_username"`
+ AuthPassword string `json:"auth_password"`
+ // required: true
+ UID int `json:"uid" binding:"Required"`
+ // required: true
+ RepoName string `json:"repo_name" binding:"Required"`
+ Mirror bool `json:"mirror"`
+ Private bool `json:"private"`
+ Description string `json:"description"`
+}
--- /dev/null
+// Copyright 2016 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// Branch represents a repository branch
+type Branch struct {
+ Name string `json:"name"`
+ Commit *PayloadCommit `json:"commit"`
+}
--- /dev/null
+// Copyright 2016 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// AddCollaboratorOption options when adding a user as a collaborator of a repository
+type AddCollaboratorOption struct {
+ Permission *string `json:"permission"`
+}
--- /dev/null
+// Copyright 2018 The Gogs Authors. All rights reserved.
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// Identity for a person's identity like an author or committer
+type Identity struct {
+ Name string `json:"name" binding:"MaxSize(100)"`
+ // swagger:strfmt email
+ Email string `json:"email" binding:"MaxSize(254)"`
+}
+
+// CommitMeta contains meta information of a commit in terms of API.
+type CommitMeta struct {
+ URL string `json:"url"`
+ SHA string `json:"sha"`
+}
+
+// CommitUser contains information of a user in the context of a commit.
+type CommitUser struct {
+ Identity
+ Date string `json:"date"`
+}
+
+// RepoCommit contains information of a commit in the context of a repository.
+type RepoCommit struct {
+ URL string `json:"url"`
+ Author *CommitUser `json:"author"`
+ Committer *CommitUser `json:"committer"`
+ Message string `json:"message"`
+ Tree *CommitMeta `json:"tree"`
+}
+
+// Commit contains information generated from a Git commit.
+type Commit struct {
+ *CommitMeta
+ HTMLURL string `json:"html_url"`
+ RepoCommit *RepoCommit `json:"commit"`
+ Author *User `json:"author"`
+ Committer *User `json:"committer"`
+ Parents []*CommitMeta `json:"parents"`
+}
--- /dev/null
+// Copyright 2014 The Gogs Authors. All rights reserved.
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// FileOptions options for all file APIs
+type FileOptions struct {
+ Message string `json:"message" binding:"Required"`
+ BranchName string `json:"branch"`
+ NewBranchName string `json:"new_branch"`
+ Author Identity `json:"author"`
+ Committer Identity `json:"committer"`
+}
+
+// CreateFileOptions options for creating files
+type CreateFileOptions struct {
+ FileOptions
+ Content string `json:"content"`
+}
+
+// DeleteFileOptions options for deleting files (used for other File structs below)
+type DeleteFileOptions struct {
+ FileOptions
+ SHA string `json:"sha" binding:"Required"`
+}
+
+// UpdateFileOptions options for updating files
+type UpdateFileOptions struct {
+ DeleteFileOptions
+ Content string `json:"content"`
+ FromPath string `json:"from_path" binding:"MaxSize(500)"`
+}
+
+// FileLinksResponse contains the links for a repo's file
+type FileLinksResponse struct {
+ Self string `json:"url"`
+ GitURL string `json:"git_url"`
+ HTMLURL string `json:"html_url"`
+}
+
+// FileContentResponse contains information about a repo's file stats and content
+type FileContentResponse struct {
+ Name string `json:"name"`
+ Path string `json:"path"`
+ SHA string `json:"sha"`
+ Size int64 `json:"size"`
+ URL string `json:"url"`
+ HTMLURL string `json:"html_url"`
+ GitURL string `json:"git_url"`
+ DownloadURL string `json:"download_url"`
+ Type string `json:"type"`
+ Links *FileLinksResponse `json:"_links"`
+}
+
+// FileCommitResponse contains information generated from a Git commit for a repo's file.
+type FileCommitResponse struct {
+ CommitMeta
+ HTMLURL string `json:"html_url"`
+ Author *CommitUser `json:"author"`
+ Committer *CommitUser `json:"committer"`
+ Parents []*CommitMeta `json:"parents"`
+ Message string `json:"message"`
+ Tree *CommitMeta `json:"tree"`
+}
+
+// FileResponse contains information about a repo's file
+type FileResponse struct {
+ Content *FileContentResponse `json:"content"`
+ Commit *FileCommitResponse `json:"commit"`
+ Verification *PayloadCommitVerification `json:"verification"`
+}
+
+// FileDeleteResponse contains information about a repo's file that was deleted
+type FileDeleteResponse struct {
+ Content interface{} `json:"content"` // to be set to nil
+ Commit *FileCommitResponse `json:"commit"`
+ Verification *PayloadCommitVerification `json:"verification"`
+}
--- /dev/null
+// Copyright 2015 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// DeployKey a deploy key
+type DeployKey struct {
+ ID int64 `json:"id"`
+ KeyID int64 `json:"key_id"`
+ Key string `json:"key"`
+ URL string `json:"url"`
+ Title string `json:"title"`
+ Fingerprint string `json:"fingerprint"`
+ // swagger:strfmt date-time
+ Created time.Time `json:"created_at"`
+ ReadOnly bool `json:"read_only"`
+ Repository *Repository `json:"repository,omitempty"`
+}
+
+// CreateKeyOption options when creating a key
+type CreateKeyOption struct {
+ // Title of the key to add
+ //
+ // required: true
+ // unique: true
+ Title string `json:"title" binding:"Required"`
+ // An armored SSH key to add
+ //
+ // required: true
+ // unique: true
+ Key string `json:"key" binding:"Required"`
+ // Describe if the key has only read access or read/write
+ //
+ // required: false
+ ReadOnly bool `json:"read_only"`
+}
--- /dev/null
+// Copyright 2018 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// Reference represents a Git reference.
+type Reference struct {
+ Ref string `json:"ref"`
+ URL string `json:"url"`
+ Object *GitObject `json:"object"`
+}
+
+// GitObject represents a Git object.
+type GitObject struct {
+ Type string `json:"type"`
+ SHA string `json:"sha"`
+ URL string `json:"url"`
+}
--- /dev/null
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// Tag represents a repository tag
+type Tag struct {
+ Name string `json:"name"`
+ Commit struct {
+ SHA string `json:"sha"`
+ URL string `json:"url"`
+ } `json:"commit"`
+ ZipballURL string `json:"zipball_url"`
+ TarballURL string `json:"tarball_url"`
+}
--- /dev/null
+// Copyright 2018 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// GitEntry represents a git tree
+type GitEntry struct {
+ Path string `json:"path"`
+ Mode string `json:"mode"`
+ Type string `json:"type"`
+ Size int64 `json:"size"`
+ SHA string `json:"sha"`
+ URL string `json:"url"`
+}
+
+// GitTreeResponse returns a git tree
+type GitTreeResponse struct {
+ SHA string `json:"sha"`
+ URL string `json:"url"`
+ Entries []GitEntry `json:"tree"`
+ Truncated bool `json:"truncated"`
+ Page int `json:"page"`
+ TotalCount int `json:"total_count"`
+}
--- /dev/null
+// Copyright 2017 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// WatchInfo represents an API watch status of one repository
+type WatchInfo struct {
+ Subscribed bool `json:"subscribed"`
+ Ignored bool `json:"ignored"`
+ Reason interface{} `json:"reason"`
+ CreatedAt time.Time `json:"created_at"`
+ URL string `json:"url"`
+ RepositoryURL string `json:"repository_url"`
+}
--- /dev/null
+// Copyright 2017 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// StatusState holds the state of a Status
+// It can be "pending", "success", "error", "failure", and "warning"
+type StatusState string
+
+const (
+ // StatusPending is for when the Status is Pending
+ StatusPending StatusState = "pending"
+ // StatusSuccess is for when the Status is Success
+ StatusSuccess StatusState = "success"
+ // StatusError is for when the Status is Error
+ StatusError StatusState = "error"
+ // StatusFailure is for when the Status is Failure
+ StatusFailure StatusState = "failure"
+ // StatusWarning is for when the Status is Warning
+ StatusWarning StatusState = "warning"
+)
+
+// Status holds a single Status of a single Commit
+type Status struct {
+ ID int64 `json:"id"`
+ State StatusState `json:"status"`
+ TargetURL string `json:"target_url"`
+ Description string `json:"description"`
+ URL string `json:"url"`
+ Context string `json:"context"`
+ Creator *User `json:"creator"`
+ // swagger:strfmt date-time
+ Created time.Time `json:"created_at"`
+ // swagger:strfmt date-time
+ Updated time.Time `json:"updated_at"`
+}
+
+// CombinedStatus holds the combined state of several statuses for a single commit
+type CombinedStatus struct {
+ State StatusState `json:"state"`
+ SHA string `json:"sha"`
+ TotalCount int `json:"total_count"`
+ Statuses []*Status `json:"statuses"`
+ Repository *Repository `json:"repository"`
+ CommitURL string `json:"commit_url"`
+ URL string `json:"url"`
+}
+
+// CreateStatusOption holds the information needed to create a new Status for a Commit
+type CreateStatusOption struct {
+ State StatusState `json:"state"`
+ TargetURL string `json:"target_url"`
+ Description string `json:"description"`
+ Context string `json:"context"`
+}
+
+// ListStatusesOption holds pagination information
+type ListStatusesOption struct {
+ Page int
+}
--- /dev/null
+// Copyright 2014 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "encoding/json"
+)
+
+// User represents a user
+// swagger:model
+type User struct {
+ // the user's id
+ ID int64 `json:"id"`
+ // the user's username
+ UserName string `json:"login"`
+ // the user's full name
+ FullName string `json:"full_name"`
+ // swagger:strfmt email
+ Email string `json:"email"`
+ // URL to the user's avatar
+ AvatarURL string `json:"avatar_url"`
+ // User locale
+ Language string `json:"language"`
+ // Is the user an administrator
+ IsAdmin bool `json:"is_admin"`
+}
+
+// MarshalJSON implements the json.Marshaler interface for User, adding field(s) for backward compatibility
+func (u User) MarshalJSON() ([]byte, error) {
+ // Re-declaring User to avoid recursion
+ type shadow User
+ return json.Marshal(struct {
+ shadow
+ CompatUserName string `json:"username"`
+ }{shadow(u), u.UserName})
+}
--- /dev/null
+// Copyright 2014 The Gogs Authors. All rights reserved.
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "encoding/base64"
+)
+
+// BasicAuthEncode generate base64 of basic auth head
+func BasicAuthEncode(user, pass string) string {
+ return base64.StdEncoding.EncodeToString([]byte(user + ":" + pass))
+}
+
+// AccessToken represents an API access token.
+// swagger:response AccessToken
+type AccessToken struct {
+ ID int64 `json:"id"`
+ Name string `json:"name"`
+ Token string `json:"sha1"`
+ TokenLastEight string `json:"token_last_eight"`
+}
+
+// AccessTokenList represents a list of API access token.
+// swagger:response AccessTokenList
+type AccessTokenList []*AccessToken
+
+// CreateAccessTokenOption options when create access token
+// swagger:parameters userCreateToken
+type CreateAccessTokenOption struct {
+ Name string `json:"name" binding:"Required"`
+}
--- /dev/null
+// Copyright 2015 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+// Email an email address belonging to a user
+type Email struct {
+ // swagger:strfmt email
+ Email string `json:"email"`
+ Verified bool `json:"verified"`
+ Primary bool `json:"primary"`
+}
+
+// CreateEmailOption options when creating email addresses
+type CreateEmailOption struct {
+ // email addresses to add
+ Emails []string `json:"emails"`
+}
+
+// DeleteEmailOption options when deleting email addresses
+type DeleteEmailOption struct {
+ // email addresses to delete
+ Emails []string `json:"emails"`
+}
--- /dev/null
+// Copyright 2017 Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// GPGKey a user GPG key to sign commit and tag in repository
+type GPGKey struct {
+ ID int64 `json:"id"`
+ PrimaryKeyID string `json:"primary_key_id"`
+ KeyID string `json:"key_id"`
+ PublicKey string `json:"public_key"`
+ Emails []*GPGKeyEmail `json:"emails"`
+ SubsKey []*GPGKey `json:"subkeys"`
+ CanSign bool `json:"can_sign"`
+ CanEncryptComms bool `json:"can_encrypt_comms"`
+ CanEncryptStorage bool `json:"can_encrypt_storage"`
+ CanCertify bool `json:"can_certify"`
+ // swagger:strfmt date-time
+ Created time.Time `json:"created_at,omitempty"`
+ // swagger:strfmt date-time
+ Expires time.Time `json:"expires_at,omitempty"`
+}
+
+// GPGKeyEmail an email attached to a GPGKey
+// swagger:model GPGKeyEmail
+type GPGKeyEmail struct {
+ Email string `json:"email"`
+ Verified bool `json:"verified"`
+}
+
+// CreateGPGKeyOption options create user GPG key
+type CreateGPGKeyOption struct {
+ // An armored GPG key to add
+ //
+ // required: true
+ // unique: true
+ ArmoredKey string `json:"armored_public_key" binding:"Required"`
+}
--- /dev/null
+// Copyright 2015 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "time"
+)
+
+// PublicKey publickey is a user key to push code to repository
+type PublicKey struct {
+ ID int64 `json:"id"`
+ Key string `json:"key"`
+ URL string `json:"url,omitempty"`
+ Title string `json:"title,omitempty"`
+ Fingerprint string `json:"fingerprint,omitempty"`
+ // swagger:strfmt date-time
+ Created time.Time `json:"created_at,omitempty"`
+ Owner *User `json:"user,omitempty"`
+ ReadOnly bool `json:"read_only,omitempty"`
+ KeyType string `json:"key_type,omitempty"`
+}
--- /dev/null
+package structs
+
+type searchUsersResponse struct {
+ Users []*User `json:"data"`
+}
--- /dev/null
+// Copyright 2015 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "net/http"
+)
+
+var jsonHeader = http.Header{"content-type": []string{"application/json"}}
+
+// Bool return address of bool value
+func Bool(v bool) *bool {
+ return &v
+}
+
+// String return address of string value
+func String(v string) *string {
+ return &v
+}
+
+// Int64 return address of int64 value
+func Int64(v int64) *int64 {
+ return &v
+}
package admin
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
package admin
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/routers/api/v1/repo"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/routers/api/v1/convert"
"code.gitea.io/gitea/routers/api/v1/user"
- api "code.gitea.io/sdk/gitea"
)
func parseLoginSource(ctx *context.APIContext, u *models.User, sourceID int64, loginName string) {
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/routers/api/v1/admin"
"code.gitea.io/gitea/routers/api/v1/misc"
"code.gitea.io/gitea/routers/api/v1/org"
"code.gitea.io/gitea/routers/api/v1/repo"
_ "code.gitea.io/gitea/routers/api/v1/swagger" // for swagger generation
"code.gitea.io/gitea/routers/api/v1/user"
- api "code.gitea.io/sdk/gitea"
"github.com/go-macaron/binding"
"gopkg.in/macaron.v1"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/markup"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/Unknwon/com"
)
import (
"strings"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/markup/markdown"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
"github.com/go-macaron/inject"
"github.com/stretchr/testify/assert"
import (
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting"
- "code.gitea.io/sdk/gitea"
+ "code.gitea.io/gitea/modules/structs"
)
// Version shows the version of the Gitea server
// responses:
// "200":
// "$ref": "#/responses/ServerVersion"
- ctx.JSON(200, &gitea.ServerVersion{Version: setting.AppVer})
+ ctx.JSON(200, &structs.ServerVersion{Version: setting.AppVer})
}
package org
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
import (
"fmt"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
package org
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
package org
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/routers/api/v1/convert"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// GetBranch get a branch of a repository
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// ListCollaborators list a repository's collaborators
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// GetSingleCommit get a commit via
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/repofiles"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/routers/repo"
- api "code.gitea.io/sdk/gitea"
)
// GetRawFile get a file by path on a repository
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// ListForks list a repository's forks
import (
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/git"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/routers/api/v1/convert"
- api "code.gitea.io/sdk/gitea"
)
// ListGitHooks list all Git hooks of a repository
import (
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/git"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// GetGitAllRefs get ref or an list all the refs of a repository
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/git"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/routers/api/v1/convert"
"code.gitea.io/gitea/routers/api/v1/utils"
- api "code.gitea.io/sdk/gitea"
)
// ListHooks list all hooks of a repository
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// ListIssues list the issues of a repository
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/notification"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// ListIssueComments list all the comments of an issue
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// ListIssueLabels list all the labels of an issue
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
func trackedTimesToAPIFormat(trackedTimes []*models.TrackedTime) []*api.TrackedTime {
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/routers/api/v1/convert"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// appendPrivateInformation appends the owner and key type information to api.PublicKey
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// ListLabels list all the labels of a repository
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// ListMilestones list all the opened milestones for a repository
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/notification"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/util"
- api "code.gitea.io/sdk/gitea"
)
// ListPullRequests returns a list of all PRs
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// GetRelease get a single release of a repository
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// GetReleaseAttachment gets a single attachment of the release
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/routers/api/v1/convert"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
var searchOrderByMap = map[string]map[string]models.SearchOrderBy{
import (
"code.gitea.io/gitea/modules/context"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// ListStargazers list a repository's stargazers
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// NewCommitStatus creates a new CommitStatus
import (
"code.gitea.io/gitea/modules/context"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// ListSubscribers list a repo's subscribers (i.e. watchers)
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/routers/api/v1/convert"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// ListTags list all the tags of a repository
package swagger
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// Issue
package swagger
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// PublicKey
package swagger
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// ServerVersion
import (
"code.gitea.io/gitea/modules/auth"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// not actually a response, just a hack to get go-swagger to include definitions
package swagger
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// Organization
package swagger
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// Repository
import (
"code.gitea.io/gitea/models"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// User
package user
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
package user
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
package user
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
package user
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
package user
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
import (
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
)
// listUserRepos - List the repositories owned by the given user.
package user
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/routers/api/v1/convert"
- api "code.gitea.io/sdk/gitea"
"github.com/Unknwon/com"
)
package user
import (
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
+ api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/routers/api/v1/convert"
"code.gitea.io/gitea/routers/utils"
- api "code.gitea.io/sdk/gitea"
"github.com/Unknwon/com"
)
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/setting"
- api "code.gitea.io/sdk/gitea"
+ api "code.gitea.io/gitea/modules/structs"
"github.com/Unknwon/com"
)
"x-go-name": "Permission"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"AddTimeOption": {
"description": "AddTimeOption options for adding time to an issue",
"x-go-name": "Time"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Attachment": {
"description": "Attachment a generic attachment",
"x-go-name": "UUID"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Branch": {
"description": "Branch represents a repository branch",
"x-go-name": "Name"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Comment": {
"description": "Comment represents a comment on a commit or issue",
"$ref": "#/definitions/User"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Commit": {
"type": "object",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CommitMeta": {
"type": "object",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CommitUser": {
"type": "object",
"x-go-name": "Name"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateEmailOption": {
"description": "CreateEmailOption options when creating email addresses",
"x-go-name": "Emails"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateFileOptions": {
"description": "CreateFileOptions options for creating files",
"x-go-name": "NewBranchName"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateForkOption": {
"description": "CreateForkOption options for creating a fork",
"x-go-name": "Organization"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateGPGKeyOption": {
"description": "CreateGPGKeyOption options create user GPG key",
"x-go-name": "ArmoredKey"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateHookOption": {
"description": "CreateHookOption options when create a hook",
"x-go-name": "Type"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateIssueCommentOption": {
"description": "CreateIssueCommentOption options for creating a comment on an issue",
"x-go-name": "Body"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateIssueOption": {
"description": "CreateIssueOption options to create one issue",
"x-go-name": "Title"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateKeyOption": {
"description": "CreateKeyOption options when creating a key",
"x-go-name": "Title"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateLabelOption": {
"description": "CreateLabelOption options for creating a label",
"x-go-name": "Name"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateMilestoneOption": {
"description": "CreateMilestoneOption options for creating a milestone",
"x-go-name": "Title"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateOrgOption": {
"description": "CreateOrgOption options for creating an organization",
"x-go-name": "Website"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreatePullRequestOption": {
"description": "CreatePullRequestOption options when creating a pull request",
"x-go-name": "Title"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateReleaseOption": {
"description": "CreateReleaseOption options when creating a release",
"x-go-name": "Target"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateRepoOption": {
"description": "CreateRepoOption options when creating repository",
"x-go-name": "Readme"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateStatusOption": {
"description": "CreateStatusOption holds the information needed to create a new Status for a Commit",
"x-go-name": "TargetURL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateTeamOption": {
"description": "CreateTeamOption options for creating a team",
"x-go-name": "Units"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"CreateUserOption": {
"description": "CreateUserOption create user options",
"x-go-name": "Username"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"DeleteEmailOption": {
"description": "DeleteEmailOption options when deleting email addresses",
"x-go-name": "Emails"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"DeleteFileOptions": {
"description": "DeleteFileOptions options for deleting files (used for other File structs below)",
"x-go-name": "SHA"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"DeployKey": {
"description": "DeployKey a deploy key",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditAttachmentOptions": {
"description": "EditAttachmentOptions options for editing attachments",
"x-go-name": "Name"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditDeadlineOption": {
"description": "EditDeadlineOption options for creating a deadline",
"x-go-name": "Deadline"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditGitHookOption": {
"description": "EditGitHookOption options when modifying one Git hook",
"x-go-name": "Content"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditHookOption": {
"description": "EditHookOption options when modify one hook",
"x-go-name": "Events"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditIssueCommentOption": {
"description": "EditIssueCommentOption options for editing a comment",
"x-go-name": "Body"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditIssueOption": {
"description": "EditIssueOption options for editing an issue",
"x-go-name": "Title"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditLabelOption": {
"description": "EditLabelOption options for editing a label",
"x-go-name": "Name"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditMilestoneOption": {
"description": "EditMilestoneOption options for editing a milestone",
"x-go-name": "Title"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditOrgOption": {
"description": "EditOrgOption options for editing an organization",
"x-go-name": "Website"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditPullRequestOption": {
"description": "EditPullRequestOption options when modify pull request",
"x-go-name": "Title"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditReleaseOption": {
"description": "EditReleaseOption options when editing a release",
"x-go-name": "Target"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditTeamOption": {
"description": "EditTeamOption options for editing a team",
"x-go-name": "Units"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"EditUserOption": {
"description": "EditUserOption edit user options",
"x-go-name": "Website"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Email": {
"description": "Email an email address belonging to a user",
"x-go-name": "Verified"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"FileCommitResponse": {
"type": "object",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"FileContentResponse": {
"description": "FileContentResponse contains information about a repo's file stats and content",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"FileDeleteResponse": {
"description": "FileDeleteResponse contains information about a repo's file that was deleted",
"$ref": "#/definitions/PayloadCommitVerification"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"FileLinksResponse": {
"description": "FileLinksResponse contains the links for a repo's file",
"x-go-name": "Self"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"FileResponse": {
"description": "FileResponse contains information about a repo's file",
"$ref": "#/definitions/PayloadCommitVerification"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"GPGKey": {
"description": "GPGKey a user GPG key to sign commit and tag in repository",
"x-go-name": "SubsKey"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"GPGKeyEmail": {
"description": "GPGKeyEmail an email attached to a GPGKey",
"x-go-name": "Verified"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"GitBlobResponse": {
"description": "GitBlobResponse represents a git blob",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"GitEntry": {
"description": "GitEntry represents a git tree",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"GitHook": {
"description": "GitHook represents a Git repository hook",
"x-go-name": "Name"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"GitObject": {
"type": "object",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"GitTreeResponse": {
"description": "GitTreeResponse returns a git tree",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Hook": {
"description": "Hook a hook is a web hook when one repository changed",
"x-go-name": "Updated"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Identity": {
"description": "Identity for a person's identity like an author or committer",
"x-go-name": "Name"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Issue": {
"description": "Issue represents an issue in a repository",
"$ref": "#/definitions/User"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"IssueDeadline": {
"description": "IssueDeadline represents an issue deadline",
"x-go-name": "Deadline"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"IssueLabelsOption": {
"description": "IssueLabelsOption a collection of labels",
"x-go-name": "Labels"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Label": {
"description": "Label a label to an issue or a pr",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"MarkdownOption": {
"description": "MarkdownOption markdown options",
"type": "boolean"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"MergePullRequestOption": {
"description": "MergePullRequestForm form for merging Pull Request",
"x-go-name": "Title"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Organization": {
"description": "Organization represents an organization",
"x-go-name": "Website"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"PRBranchInfo": {
"description": "PRBranchInfo information about a branch",
"x-go-name": "Sha"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"PayloadCommit": {
"description": "PayloadCommit represents a commit",
"$ref": "#/definitions/PayloadCommitVerification"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"PayloadCommitVerification": {
"description": "PayloadCommitVerification represents the GPG verification of a commit",
"x-go-name": "Verified"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"PayloadUser": {
"description": "PayloadUser represents the author or committer of a commit",
"x-go-name": "UserName"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Permission": {
"description": "Permission represents a set of permissions",
"x-go-name": "Push"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"PublicKey": {
"description": "PublicKey publickey is a user key to push code to repository",
"$ref": "#/definitions/User"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"PullRequest": {
"description": "PullRequest represents a pull request",
"$ref": "#/definitions/User"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"PullRequestMeta": {
"description": "PullRequestMeta PR info if an issue is a PR",
"x-go-name": "Merged"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Reference": {
"type": "object",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Release": {
"description": "Release represents a repository release",
"x-go-name": "ZipURL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"RepoCommit": {
"type": "object",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Repository": {
"description": "Repository represents a repository",
"x-go-name": "Website"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"SearchResults": {
"description": "SearchResults results of a successful search",
"x-go-name": "OK"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"ServerVersion": {
"description": "ServerVersion wraps the version of the server",
"x-go-name": "Version"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"StateType": {
"description": "StateType issue state type",
"type": "string",
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Status": {
"description": "Status holds a single Status of a single Commit",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"StatusState": {
"description": "StatusState holds the state of a Status\nIt can be \"pending\", \"success\", \"error\", \"failure\", and \"warning\"",
"type": "string",
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Tag": {
"description": "Tag represents a repository tag",
"x-go-name": "ZipballURL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"Team": {
"description": "Team represents a team in an organization",
"x-go-name": "Units"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"TimeStamp": {
"description": "TimeStamp defines a timestamp",
"x-go-name": "UserID"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"UpdateFileOptions": {
"description": "UpdateFileOptions options for updating files",
"x-go-name": "SHA"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"User": {
"description": "User represents a user",
"x-go-name": "UserName"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"UserHeatmapData": {
"description": "UserHeatmapData represents the data needed to create a heatmap",
"description": "VisibleType defines the visibility (Organization only)",
"type": "integer",
"format": "int64",
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
},
"WatchInfo": {
"description": "WatchInfo represents an API watch status of one repository",
"x-go-name": "URL"
}
},
- "x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
+ "x-go-package": "code.gitea.io/gitea/modules/structs"
}
},
"responses": {
+++ /dev/null
-Copyright (c) 2016 The Gitea Authors
-Copyright (c) 2014 The Gogs Authors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+++ /dev/null
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
-)
-
-// AdminCreateOrg create an organization
-func (c *Client) AdminCreateOrg(user string, opt CreateOrgOption) (*Organization, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- org := new(Organization)
- return org, c.getParsedResponse("POST", fmt.Sprintf("/admin/users/%s/orgs", user),
- jsonHeader, bytes.NewReader(body), org)
-}
+++ /dev/null
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
-)
-
-// AdminCreateRepo create a repo
-func (c *Client) AdminCreateRepo(user string, opt CreateRepoOption) (*Repository, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- repo := new(Repository)
- return repo, c.getParsedResponse("POST", fmt.Sprintf("/admin/users/%s/repos", user),
- jsonHeader, bytes.NewReader(body), repo)
-}
+++ /dev/null
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Copyright 2019 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
-)
-
-// CreateUserOption create user options
-type CreateUserOption struct {
- SourceID int64 `json:"source_id"`
- LoginName string `json:"login_name"`
- // required: true
- Username string `json:"username" binding:"Required;AlphaDashDot;MaxSize(40)"`
- FullName string `json:"full_name" binding:"MaxSize(100)"`
- // required: true
- // swagger:strfmt email
- Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
- // required: true
- Password string `json:"password" binding:"Required;MaxSize(255)"`
- MustChangePassword *bool `json:"must_change_password"`
- SendNotify bool `json:"send_notify"`
-}
-
-// AdminCreateUser create a user
-func (c *Client) AdminCreateUser(opt CreateUserOption) (*User, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- user := new(User)
- return user, c.getParsedResponse("POST", "/admin/users", jsonHeader, bytes.NewReader(body), user)
-}
-
-// EditUserOption edit user options
-type EditUserOption struct {
- SourceID int64 `json:"source_id"`
- LoginName string `json:"login_name"`
- FullName string `json:"full_name" binding:"MaxSize(100)"`
- // required: true
- // swagger:strfmt email
- Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
- Password string `json:"password" binding:"MaxSize(255)"`
- MustChangePassword *bool `json:"must_change_password"`
- Website string `json:"website" binding:"MaxSize(50)"`
- Location string `json:"location" binding:"MaxSize(50)"`
- Active *bool `json:"active"`
- Admin *bool `json:"admin"`
- AllowGitHook *bool `json:"allow_git_hook"`
- AllowImportLocal *bool `json:"allow_import_local"`
- MaxRepoCreation *int `json:"max_repo_creation"`
- ProhibitLogin *bool `json:"prohibit_login"`
- AllowCreateOrganization *bool `json:"allow_create_organization"`
-}
-
-// AdminEditUser modify user informations
-func (c *Client) AdminEditUser(user string, opt EditUserOption) error {
- body, err := json.Marshal(&opt)
- if err != nil {
- return err
- }
- _, err = c.getResponse("PATCH", fmt.Sprintf("/admin/users/%s", user), jsonHeader, bytes.NewReader(body))
- return err
-}
-
-// AdminDeleteUser delete one user according name
-func (c *Client) AdminDeleteUser(user string) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/admin/users/%s", user), nil, nil)
- return err
-}
-
-// AdminCreateUserPublicKey create one user with options
-func (c *Client) AdminCreateUserPublicKey(user string, opt CreateKeyOption) (*PublicKey, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- key := new(PublicKey)
- return key, c.getParsedResponse("POST", fmt.Sprintf("/admin/users/%s/keys", user), jsonHeader, bytes.NewReader(body), key)
-}
+++ /dev/null
-// Copyright 2017 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea // import "code.gitea.io/sdk/gitea"
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "io"
- "mime/multipart"
- "net/http"
- "time"
-)
-
-// Attachment a generic attachment
-// swagger:model
-type Attachment struct {
- ID int64 `json:"id"`
- Name string `json:"name"`
- Size int64 `json:"size"`
- DownloadCount int64 `json:"download_count"`
- // swagger:strfmt date-time
- Created time.Time `json:"created_at"`
- UUID string `json:"uuid"`
- DownloadURL string `json:"browser_download_url"`
-}
-
-// ListReleaseAttachments list release's attachments
-func (c *Client) ListReleaseAttachments(user, repo string, release int64) ([]*Attachment, error) {
- attachments := make([]*Attachment, 0, 10)
- err := c.getParsedResponse("GET",
- fmt.Sprintf("/repos/%s/%s/releases/%d/assets", user, repo, release),
- nil, nil, &attachments)
- return attachments, err
-}
-
-// GetReleaseAttachment returns the requested attachment
-func (c *Client) GetReleaseAttachment(user, repo string, release int64, id int64) (*Attachment, error) {
- a := new(Attachment)
- err := c.getParsedResponse("GET",
- fmt.Sprintf("/repos/%s/%s/releases/%d/assets/%d", user, repo, release, id),
- nil, nil, &a)
- return a, err
-}
-
-// CreateReleaseAttachment creates an attachment for the given release
-func (c *Client) CreateReleaseAttachment(user, repo string, release int64, file io.Reader, filename string) (*Attachment, error) {
- // Write file to body
- body := new(bytes.Buffer)
- writer := multipart.NewWriter(body)
- part, err := writer.CreateFormFile("attachment", filename)
- if err != nil {
- return nil, err
- }
-
- if _, err = io.Copy(part, file); err != nil {
- return nil, err
- }
- if err = writer.Close(); err != nil {
- return nil, err
- }
-
- // Send request
- attachment := new(Attachment)
- err = c.getParsedResponse("POST",
- fmt.Sprintf("/repos/%s/%s/releases/%d/assets", user, repo, release),
- http.Header{"Content-Type": {writer.FormDataContentType()}}, body, &attachment)
- return attachment, err
-}
-
-// EditReleaseAttachment updates the given attachment with the given options
-func (c *Client) EditReleaseAttachment(user, repo string, release int64, attachment int64, form EditAttachmentOptions) (*Attachment, error) {
- body, err := json.Marshal(&form)
- if err != nil {
- return nil, err
- }
- attach := new(Attachment)
- return attach, c.getParsedResponse("PATCH", fmt.Sprintf("/repos/%s/%s/releases/%d/assets/%d", user, repo, release, attachment), jsonHeader, bytes.NewReader(body), attach)
-}
-
-// DeleteReleaseAttachment deletes the given attachment including the uploaded file
-func (c *Client) DeleteReleaseAttachment(user, repo string, release int64, id int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/releases/%d/assets/%d", user, repo, release, id), nil, nil)
- return err
-}
-
-// EditAttachmentOptions options for editing attachments
-// swagger:model
-type EditAttachmentOptions struct {
- Name string `json:"name"`
-}
+++ /dev/null
-// Copyright 2016 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea // import "code.gitea.io/sdk/gitea"
+++ /dev/null
-// Copyright 2016 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
-)
-
-// ListForks list a repository's forks
-func (c *Client) ListForks(user, repo string) ([]*Repository, error) {
- forks := make([]*Repository, 10)
- err := c.getParsedResponse("GET",
- fmt.Sprintf("/repos/%s/%s/forks", user, repo),
- nil, nil, &forks)
- return forks, err
-}
-
-// CreateForkOption options for creating a fork
-type CreateForkOption struct {
- // organization name, if forking into an organization
- Organization *string `json:"organization"`
-}
-
-// CreateFork create a fork of a repository
-func (c *Client) CreateFork(user, repo string, form CreateForkOption) (*Repository, error) {
- body, err := json.Marshal(form)
- if err != nil {
- return nil, err
- }
- fork := new(Repository)
- err = c.getParsedResponse("POST",
- fmt.Sprintf("/repos/%s/%s/forks", user, repo),
- jsonHeader, bytes.NewReader(body), &fork)
- return fork, err
-}
+++ /dev/null
-// Copyright 2019 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-// GitBlobResponse represents a git blob
-type GitBlobResponse struct {
- Content string `json:"content"`
- Encoding string `json:"encoding"`
- URL string `json:"url"`
- SHA string `json:"sha"`
- Size int64 `json:"size"`
-}
+++ /dev/null
-// Copyright 2019 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
-)
-
-// GitHook represents a Git repository hook
-type GitHook struct {
- Name string `json:"name"`
- IsActive bool `json:"is_active"`
- Content string `json:"content,omitempty"`
-}
-
-// GitHookList represents a list of Git hooks
-type GitHookList []*GitHook
-
-// ListRepoGitHooks list all the Git hooks of one repository
-func (c *Client) ListRepoGitHooks(user, repo string) (GitHookList, error) {
- hooks := make([]*GitHook, 0, 10)
- return hooks, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/hooks/git", user, repo), nil, nil, &hooks)
-}
-
-// GetRepoGitHook get a Git hook of a repository
-func (c *Client) GetRepoGitHook(user, repo, id string) (*GitHook, error) {
- h := new(GitHook)
- return h, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/hooks/git/%s", user, repo, id), nil, nil, h)
-}
-
-// EditGitHookOption options when modifying one Git hook
-type EditGitHookOption struct {
- Content string `json:"content"`
-}
-
-// EditRepoGitHook modify one Git hook of a repository
-func (c *Client) EditRepoGitHook(user, repo, id string, opt EditGitHookOption) error {
- body, err := json.Marshal(&opt)
- if err != nil {
- return err
- }
- _, err = c.getResponse("PATCH", fmt.Sprintf("/repos/%s/%s/hooks/git/%s", user, repo, id), jsonHeader, bytes.NewReader(body))
- return err
-}
-
-// DeleteRepoGitHook delete one Git hook from a repository
-func (c *Client) DeleteRepoGitHook(user, repo, id string) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/hooks/git/%s", user, repo, id), nil, nil)
- return err
-}
+++ /dev/null
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "encoding/json"
- "errors"
- "fmt"
- "io"
- "io/ioutil"
- "net/http"
- "strings"
-)
-
-// Version return the library version
-func Version() string {
- return "0.12.3"
-}
-
-// Client represents a Gogs API client.
-type Client struct {
- url string
- accessToken string
- sudo string
- client *http.Client
-}
-
-// NewClient initializes and returns a API client.
-func NewClient(url, token string) *Client {
- return &Client{
- url: strings.TrimSuffix(url, "/"),
- accessToken: token,
- client: &http.Client{},
- }
-}
-
-// NewClientWithHTTP creates an API client with a custom http client
-func NewClientWithHTTP(url string, httpClient *http.Client) {
- client := NewClient(url, "")
- client.client = httpClient
-}
-
-// SetHTTPClient replaces default http.Client with user given one.
-func (c *Client) SetHTTPClient(client *http.Client) {
- c.client = client
-}
-
-// SetSudo sets username to impersonate.
-func (c *Client) SetSudo(sudo string) {
- c.sudo = sudo
-}
-
-func (c *Client) doRequest(method, path string, header http.Header, body io.Reader) (*http.Response, error) {
- req, err := http.NewRequest(method, c.url+"/api/v1"+path, body)
- if err != nil {
- return nil, err
- }
- if len(c.accessToken) != 0 {
- req.Header.Set("Authorization", "token "+c.accessToken)
- }
- if c.sudo != "" {
- req.Header.Set("Sudo", c.sudo)
- }
- for k, v := range header {
- req.Header[k] = v
- }
-
- return c.client.Do(req)
-}
-
-func (c *Client) getResponse(method, path string, header http.Header, body io.Reader) ([]byte, error) {
- resp, err := c.doRequest(method, path, header, body)
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
-
- data, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- return nil, err
- }
-
- switch resp.StatusCode {
- case 403:
- return nil, errors.New("403 Forbidden")
- case 404:
- return nil, errors.New("404 Not Found")
- case 409:
- return nil, errors.New("409 Conflict")
- case 422:
- return nil, fmt.Errorf("422 Unprocessable Entity: %s", string(data))
- }
-
- if resp.StatusCode/100 != 2 {
- errMap := make(map[string]interface{})
- if err = json.Unmarshal(data, &errMap); err != nil {
- // when the JSON can't be parsed, data was probably empty or a plain string,
- // so we try to return a helpful error anyway
- return nil, fmt.Errorf("Unknown API Error: %d %s", resp.StatusCode, string(data))
- }
- return nil, errors.New(errMap["message"].(string))
- }
-
- return data, nil
-}
-
-func (c *Client) getParsedResponse(method, path string, header http.Header, body io.Reader, obj interface{}) error {
- data, err := c.getResponse(method, path, header, body)
- if err != nil {
- return err
- }
- return json.Unmarshal(data, obj)
-}
-
-func (c *Client) getStatusCode(method, path string, header http.Header, body io.Reader) (int, error) {
- resp, err := c.doRequest(method, path, header, body)
- if err != nil {
- return -1, err
- }
- defer resp.Body.Close()
-
- return resp.StatusCode, nil
-}
+++ /dev/null
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Copyright 2017 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "errors"
- "fmt"
- "strings"
- "time"
-)
-
-var (
- // ErrInvalidReceiveHook FIXME
- ErrInvalidReceiveHook = errors.New("Invalid JSON payload received over webhook")
-)
-
-// Hook a hook is a web hook when one repository changed
-type Hook struct {
- ID int64 `json:"id"`
- Type string `json:"type"`
- URL string `json:"-"`
- Config map[string]string `json:"config"`
- Events []string `json:"events"`
- Active bool `json:"active"`
- // swagger:strfmt date-time
- Updated time.Time `json:"updated_at"`
- // swagger:strfmt date-time
- Created time.Time `json:"created_at"`
-}
-
-// HookList represents a list of API hook.
-type HookList []*Hook
-
-// ListOrgHooks list all the hooks of one organization
-func (c *Client) ListOrgHooks(org string) (HookList, error) {
- hooks := make([]*Hook, 0, 10)
- return hooks, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s/hooks", org), nil, nil, &hooks)
-}
-
-// ListRepoHooks list all the hooks of one repository
-func (c *Client) ListRepoHooks(user, repo string) (HookList, error) {
- hooks := make([]*Hook, 0, 10)
- return hooks, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/hooks", user, repo), nil, nil, &hooks)
-}
-
-// GetOrgHook get a hook of an organization
-func (c *Client) GetOrgHook(org string, id int64) (*Hook, error) {
- h := new(Hook)
- return h, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s/hooks/%d", org, id), nil, nil, h)
-}
-
-// GetRepoHook get a hook of a repository
-func (c *Client) GetRepoHook(user, repo string, id int64) (*Hook, error) {
- h := new(Hook)
- return h, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/hooks/%d", user, repo, id), nil, nil, h)
-}
-
-// CreateHookOption options when create a hook
-type CreateHookOption struct {
- // required: true
- // enum: gitea,gogs,slack,discord
- Type string `json:"type" binding:"Required"`
- // required: true
- Config map[string]string `json:"config" binding:"Required"`
- Events []string `json:"events"`
- // default: false
- Active bool `json:"active"`
-}
-
-// CreateOrgHook create one hook for an organization, with options
-func (c *Client) CreateOrgHook(org string, opt CreateHookOption) (*Hook, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- h := new(Hook)
- return h, c.getParsedResponse("POST", fmt.Sprintf("/orgs/%s/hooks", org), jsonHeader, bytes.NewReader(body), h)
-}
-
-// CreateRepoHook create one hook for a repository, with options
-func (c *Client) CreateRepoHook(user, repo string, opt CreateHookOption) (*Hook, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- h := new(Hook)
- return h, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/hooks", user, repo), jsonHeader, bytes.NewReader(body), h)
-}
-
-// EditHookOption options when modify one hook
-type EditHookOption struct {
- Config map[string]string `json:"config"`
- Events []string `json:"events"`
- Active *bool `json:"active"`
-}
-
-// EditOrgHook modify one hook of an organization, with hook id and options
-func (c *Client) EditOrgHook(org string, id int64, opt EditHookOption) error {
- body, err := json.Marshal(&opt)
- if err != nil {
- return err
- }
- _, err = c.getResponse("PATCH", fmt.Sprintf("/orgs/%s/hooks/%d", org, id), jsonHeader, bytes.NewReader(body))
- return err
-}
-
-// EditRepoHook modify one hook of a repository, with hook id and options
-func (c *Client) EditRepoHook(user, repo string, id int64, opt EditHookOption) error {
- body, err := json.Marshal(&opt)
- if err != nil {
- return err
- }
- _, err = c.getResponse("PATCH", fmt.Sprintf("/repos/%s/%s/hooks/%d", user, repo, id), jsonHeader, bytes.NewReader(body))
- return err
-}
-
-// DeleteOrgHook delete one hook from an organization, with hook id
-func (c *Client) DeleteOrgHook(org string, id int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/org/%s/hooks/%d", org, id), nil, nil)
- return err
-}
-
-// DeleteRepoHook delete one hook from a repository, with hook id
-func (c *Client) DeleteRepoHook(user, repo string, id int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/hooks/%d", user, repo, id), nil, nil)
- return err
-}
-
-// Payloader payload is some part of one hook
-type Payloader interface {
- SetSecret(string)
- JSONPayload() ([]byte, error)
-}
-
-// PayloadUser represents the author or committer of a commit
-type PayloadUser struct {
- // Full name of the commit author
- Name string `json:"name"`
- // swagger:strfmt email
- Email string `json:"email"`
- UserName string `json:"username"`
-}
-
-// FIXME: consider using same format as API when commits API are added.
-// applies to PayloadCommit and PayloadCommitVerification
-
-// PayloadCommit represents a commit
-type PayloadCommit struct {
- // sha1 hash of the commit
- ID string `json:"id"`
- Message string `json:"message"`
- URL string `json:"url"`
- Author *PayloadUser `json:"author"`
- Committer *PayloadUser `json:"committer"`
- Verification *PayloadCommitVerification `json:"verification"`
- // swagger:strfmt date-time
- Timestamp time.Time `json:"timestamp"`
- Added []string `json:"added"`
- Removed []string `json:"removed"`
- Modified []string `json:"modified"`
-}
-
-// PayloadCommitVerification represents the GPG verification of a commit
-type PayloadCommitVerification struct {
- Verified bool `json:"verified"`
- Reason string `json:"reason"`
- Signature string `json:"signature"`
- Payload string `json:"payload"`
-}
-
-var (
- _ Payloader = &CreatePayload{}
- _ Payloader = &DeletePayload{}
- _ Payloader = &ForkPayload{}
- _ Payloader = &PushPayload{}
- _ Payloader = &IssuePayload{}
- _ Payloader = &IssueCommentPayload{}
- _ Payloader = &PullRequestPayload{}
- _ Payloader = &RepositoryPayload{}
- _ Payloader = &ReleasePayload{}
-)
-
-// _________ __
-// \_ ___ \_______ ____ _____ _/ |_ ____
-// / \ \/\_ __ \_/ __ \\__ \\ __\/ __ \
-// \ \____| | \/\ ___/ / __ \| | \ ___/
-// \______ /|__| \___ >____ /__| \___ >
-// \/ \/ \/ \/
-
-// CreatePayload FIXME
-type CreatePayload struct {
- Secret string `json:"secret"`
- Sha string `json:"sha"`
- Ref string `json:"ref"`
- RefType string `json:"ref_type"`
- Repo *Repository `json:"repository"`
- Sender *User `json:"sender"`
-}
-
-// SetSecret modifies the secret of the CreatePayload
-func (p *CreatePayload) SetSecret(secret string) {
- p.Secret = secret
-}
-
-// JSONPayload return payload information
-func (p *CreatePayload) JSONPayload() ([]byte, error) {
- return json.MarshalIndent(p, "", " ")
-}
-
-// ParseCreateHook parses create event hook content.
-func ParseCreateHook(raw []byte) (*CreatePayload, error) {
- hook := new(CreatePayload)
- if err := json.Unmarshal(raw, hook); err != nil {
- return nil, err
- }
-
- // it is possible the JSON was parsed, however,
- // was not from Gogs (maybe was from Bitbucket)
- // So we'll check to be sure certain key fields
- // were populated
- switch {
- case hook.Repo == nil:
- return nil, ErrInvalidReceiveHook
- case len(hook.Ref) == 0:
- return nil, ErrInvalidReceiveHook
- }
- return hook, nil
-}
-
-// ________ .__ __
-// \______ \ ____ | | _____/ |_ ____
-// | | \_/ __ \| | _/ __ \ __\/ __ \
-// | ` \ ___/| |_\ ___/| | \ ___/
-// /_______ /\___ >____/\___ >__| \___ >
-// \/ \/ \/ \/
-
-// PusherType define the type to push
-type PusherType string
-
-// describe all the PusherTypes
-const (
- PusherTypeUser PusherType = "user"
-)
-
-// DeletePayload represents delete payload
-type DeletePayload struct {
- Secret string `json:"secret"`
- Ref string `json:"ref"`
- RefType string `json:"ref_type"`
- PusherType PusherType `json:"pusher_type"`
- Repo *Repository `json:"repository"`
- Sender *User `json:"sender"`
-}
-
-// SetSecret modifies the secret of the DeletePayload
-func (p *DeletePayload) SetSecret(secret string) {
- p.Secret = secret
-}
-
-// JSONPayload implements Payload
-func (p *DeletePayload) JSONPayload() ([]byte, error) {
- return json.MarshalIndent(p, "", " ")
-}
-
-// ___________ __
-// \_ _____/__________| | __
-// | __)/ _ \_ __ \ |/ /
-// | \( <_> ) | \/ <
-// \___ / \____/|__| |__|_ \
-// \/ \/
-
-// ForkPayload represents fork payload
-type ForkPayload struct {
- Secret string `json:"secret"`
- Forkee *Repository `json:"forkee"`
- Repo *Repository `json:"repository"`
- Sender *User `json:"sender"`
-}
-
-// SetSecret modifies the secret of the ForkPayload
-func (p *ForkPayload) SetSecret(secret string) {
- p.Secret = secret
-}
-
-// JSONPayload implements Payload
-func (p *ForkPayload) JSONPayload() ([]byte, error) {
- return json.MarshalIndent(p, "", " ")
-}
-
-// HookIssueCommentAction defines hook issue comment action
-type HookIssueCommentAction string
-
-// all issue comment actions
-const (
- HookIssueCommentCreated HookIssueCommentAction = "created"
- HookIssueCommentEdited HookIssueCommentAction = "edited"
- HookIssueCommentDeleted HookIssueCommentAction = "deleted"
-)
-
-// IssueCommentPayload represents a payload information of issue comment event.
-type IssueCommentPayload struct {
- Secret string `json:"secret"`
- Action HookIssueCommentAction `json:"action"`
- Issue *Issue `json:"issue"`
- Comment *Comment `json:"comment"`
- Changes *ChangesPayload `json:"changes,omitempty"`
- Repository *Repository `json:"repository"`
- Sender *User `json:"sender"`
-}
-
-// SetSecret modifies the secret of the IssueCommentPayload
-func (p *IssueCommentPayload) SetSecret(secret string) {
- p.Secret = secret
-}
-
-// JSONPayload implements Payload
-func (p *IssueCommentPayload) JSONPayload() ([]byte, error) {
- return json.MarshalIndent(p, "", " ")
-}
-
-// __________ .__
-// \______ \ ____ | | ____ _____ ______ ____
-// | _// __ \| | _/ __ \\__ \ / ___// __ \
-// | | \ ___/| |_\ ___/ / __ \_\___ \\ ___/
-// |____|_ /\___ >____/\___ >____ /____ >\___ >
-// \/ \/ \/ \/ \/ \/
-
-// HookReleaseAction defines hook release action type
-type HookReleaseAction string
-
-// all release actions
-const (
- HookReleasePublished HookReleaseAction = "published"
- HookReleaseUpdated HookReleaseAction = "updated"
- HookReleaseDeleted HookReleaseAction = "deleted"
-)
-
-// ReleasePayload represents a payload information of release event.
-type ReleasePayload struct {
- Secret string `json:"secret"`
- Action HookReleaseAction `json:"action"`
- Release *Release `json:"release"`
- Repository *Repository `json:"repository"`
- Sender *User `json:"sender"`
-}
-
-// SetSecret modifies the secret of the ReleasePayload
-func (p *ReleasePayload) SetSecret(secret string) {
- p.Secret = secret
-}
-
-// JSONPayload implements Payload
-func (p *ReleasePayload) JSONPayload() ([]byte, error) {
- return json.MarshalIndent(p, "", " ")
-}
-
-// __________ .__
-// \______ \__ __ _____| |__
-// | ___/ | \/ ___/ | \
-// | | | | /\___ \| Y \
-// |____| |____//____ >___| /
-// \/ \/
-
-// PushPayload represents a payload information of push event.
-type PushPayload struct {
- Secret string `json:"secret"`
- Ref string `json:"ref"`
- Before string `json:"before"`
- After string `json:"after"`
- CompareURL string `json:"compare_url"`
- Commits []*PayloadCommit `json:"commits"`
- HeadCommit *PayloadCommit `json:"head_commit"`
- Repo *Repository `json:"repository"`
- Pusher *User `json:"pusher"`
- Sender *User `json:"sender"`
-}
-
-// SetSecret modifies the secret of the PushPayload
-func (p *PushPayload) SetSecret(secret string) {
- p.Secret = secret
-}
-
-// JSONPayload FIXME
-func (p *PushPayload) JSONPayload() ([]byte, error) {
- return json.MarshalIndent(p, "", " ")
-}
-
-// ParsePushHook parses push event hook content.
-func ParsePushHook(raw []byte) (*PushPayload, error) {
- hook := new(PushPayload)
- if err := json.Unmarshal(raw, hook); err != nil {
- return nil, err
- }
-
- switch {
- case hook.Repo == nil:
- return nil, ErrInvalidReceiveHook
- case len(hook.Ref) == 0:
- return nil, ErrInvalidReceiveHook
- }
- return hook, nil
-}
-
-// Branch returns branch name from a payload
-func (p *PushPayload) Branch() string {
- return strings.Replace(p.Ref, "refs/heads/", "", -1)
-}
-
-// .___
-// | | ______ ________ __ ____
-// | |/ ___// ___/ | \_/ __ \
-// | |\___ \ \___ \| | /\ ___/
-// |___/____ >____ >____/ \___ >
-// \/ \/ \/
-
-// HookIssueAction FIXME
-type HookIssueAction string
-
-const (
- // HookIssueOpened opened
- HookIssueOpened HookIssueAction = "opened"
- // HookIssueClosed closed
- HookIssueClosed HookIssueAction = "closed"
- // HookIssueReOpened reopened
- HookIssueReOpened HookIssueAction = "reopened"
- // HookIssueEdited edited
- HookIssueEdited HookIssueAction = "edited"
- // HookIssueAssigned assigned
- HookIssueAssigned HookIssueAction = "assigned"
- // HookIssueUnassigned unassigned
- HookIssueUnassigned HookIssueAction = "unassigned"
- // HookIssueLabelUpdated label_updated
- HookIssueLabelUpdated HookIssueAction = "label_updated"
- // HookIssueLabelCleared label_cleared
- HookIssueLabelCleared HookIssueAction = "label_cleared"
- // HookIssueSynchronized synchronized
- HookIssueSynchronized HookIssueAction = "synchronized"
- // HookIssueMilestoned is an issue action for when a milestone is set on an issue.
- HookIssueMilestoned HookIssueAction = "milestoned"
- // HookIssueDemilestoned is an issue action for when a milestone is cleared on an issue.
- HookIssueDemilestoned HookIssueAction = "demilestoned"
-)
-
-// IssuePayload represents the payload information that is sent along with an issue event.
-type IssuePayload struct {
- Secret string `json:"secret"`
- Action HookIssueAction `json:"action"`
- Index int64 `json:"number"`
- Changes *ChangesPayload `json:"changes,omitempty"`
- Issue *Issue `json:"issue"`
- Repository *Repository `json:"repository"`
- Sender *User `json:"sender"`
-}
-
-// SetSecret modifies the secret of the IssuePayload.
-func (p *IssuePayload) SetSecret(secret string) {
- p.Secret = secret
-}
-
-// JSONPayload encodes the IssuePayload to JSON, with an indentation of two spaces.
-func (p *IssuePayload) JSONPayload() ([]byte, error) {
- return json.MarshalIndent(p, "", " ")
-}
-
-// ChangesFromPayload FIXME
-type ChangesFromPayload struct {
- From string `json:"from"`
-}
-
-// ChangesPayload FIXME
-type ChangesPayload struct {
- Title *ChangesFromPayload `json:"title,omitempty"`
- Body *ChangesFromPayload `json:"body,omitempty"`
-}
-
-// __________ .__ .__ __________ __
-// \______ \__ __| | | | \______ \ ____ ________ __ ____ _______/ |_
-// | ___/ | \ | | | | _// __ \/ ____/ | \_/ __ \ / ___/\ __\
-// | | | | / |_| |__ | | \ ___< <_| | | /\ ___/ \___ \ | |
-// |____| |____/|____/____/ |____|_ /\___ >__ |____/ \___ >____ > |__|
-// \/ \/ |__| \/ \/
-
-// PullRequestPayload represents a payload information of pull request event.
-type PullRequestPayload struct {
- Secret string `json:"secret"`
- Action HookIssueAction `json:"action"`
- Index int64 `json:"number"`
- Changes *ChangesPayload `json:"changes,omitempty"`
- PullRequest *PullRequest `json:"pull_request"`
- Repository *Repository `json:"repository"`
- Sender *User `json:"sender"`
-}
-
-// SetSecret modifies the secret of the PullRequestPayload.
-func (p *PullRequestPayload) SetSecret(secret string) {
- p.Secret = secret
-}
-
-// JSONPayload FIXME
-func (p *PullRequestPayload) JSONPayload() ([]byte, error) {
- return json.MarshalIndent(p, "", " ")
-}
-
-//__________ .__ __
-//\______ \ ____ ______ ____ _____|__|/ |_ ___________ ___.__.
-// | _// __ \\____ \ / _ \/ ___/ \ __\/ _ \_ __ < | |
-// | | \ ___/| |_> > <_> )___ \| || | ( <_> ) | \/\___ |
-// |____|_ /\___ > __/ \____/____ >__||__| \____/|__| / ____|
-// \/ \/|__| \/ \/
-
-// HookRepoAction an action that happens to a repo
-type HookRepoAction string
-
-const (
- // HookRepoCreated created
- HookRepoCreated HookRepoAction = "created"
- // HookRepoDeleted deleted
- HookRepoDeleted HookRepoAction = "deleted"
-)
-
-// RepositoryPayload payload for repository webhooks
-type RepositoryPayload struct {
- Secret string `json:"secret"`
- Action HookRepoAction `json:"action"`
- Repository *Repository `json:"repository"`
- Organization *User `json:"organization"`
- Sender *User `json:"sender"`
-}
-
-// SetSecret modifies the secret of the RepositoryPayload
-func (p *RepositoryPayload) SetSecret(secret string) {
- p.Secret = secret
-}
-
-// JSONPayload JSON representation of the payload
-func (p *RepositoryPayload) JSONPayload() ([]byte, error) {
- return json.MarshalIndent(p, "", " ")
-}
+++ /dev/null
-// Copyright 2016 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "time"
-)
-
-// StateType issue state type
-type StateType string
-
-const (
- // StateOpen pr is opend
- StateOpen StateType = "open"
- // StateClosed pr is closed
- StateClosed StateType = "closed"
-)
-
-// PullRequestMeta PR info if an issue is a PR
-type PullRequestMeta struct {
- HasMerged bool `json:"merged"`
- Merged *time.Time `json:"merged_at"`
-}
-
-// Issue represents an issue in a repository
-// swagger:model
-type Issue struct {
- ID int64 `json:"id"`
- URL string `json:"url"`
- Index int64 `json:"number"`
- Poster *User `json:"user"`
- Title string `json:"title"`
- Body string `json:"body"`
- Labels []*Label `json:"labels"`
- Milestone *Milestone `json:"milestone"`
- Assignee *User `json:"assignee"`
- Assignees []*User `json:"assignees"`
- // Whether the issue is open or closed
- //
- // type: string
- // enum: open,closed
- State StateType `json:"state"`
- Comments int `json:"comments"`
- // swagger:strfmt date-time
- Created time.Time `json:"created_at"`
- // swagger:strfmt date-time
- Updated time.Time `json:"updated_at"`
- // swagger:strfmt date-time
- Closed *time.Time `json:"closed_at"`
- // swagger:strfmt date-time
- Deadline *time.Time `json:"due_date"`
-
- PullRequest *PullRequestMeta `json:"pull_request"`
-}
-
-// ListIssueOption list issue options
-type ListIssueOption struct {
- Page int
- State string
-}
-
-// ListIssues returns all issues assigned the authenticated user
-func (c *Client) ListIssues(opt ListIssueOption) ([]*Issue, error) {
- issues := make([]*Issue, 0, 10)
- return issues, c.getParsedResponse("GET", fmt.Sprintf("/issues?page=%d", opt.Page), nil, nil, &issues)
-}
-
-// ListUserIssues returns all issues assigned to the authenticated user
-func (c *Client) ListUserIssues(opt ListIssueOption) ([]*Issue, error) {
- issues := make([]*Issue, 0, 10)
- return issues, c.getParsedResponse("GET", fmt.Sprintf("/user/issues?page=%d", opt.Page), nil, nil, &issues)
-}
-
-// ListRepoIssues returns all issues for a given repository
-func (c *Client) ListRepoIssues(owner, repo string, opt ListIssueOption) ([]*Issue, error) {
- issues := make([]*Issue, 0, 10)
- return issues, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues?page=%d", owner, repo, opt.Page), nil, nil, &issues)
-}
-
-// GetIssue returns a single issue for a given repository
-func (c *Client) GetIssue(owner, repo string, index int64) (*Issue, error) {
- issue := new(Issue)
- return issue, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d", owner, repo, index), nil, nil, issue)
-}
-
-// CreateIssueOption options to create one issue
-type CreateIssueOption struct {
- // required:true
- Title string `json:"title" binding:"Required"`
- Body string `json:"body"`
- // username of assignee
- Assignee string `json:"assignee"`
- Assignees []string `json:"assignees"`
- // swagger:strfmt date-time
- Deadline *time.Time `json:"due_date"`
- // milestone id
- Milestone int64 `json:"milestone"`
- // list of label ids
- Labels []int64 `json:"labels"`
- Closed bool `json:"closed"`
-}
-
-// CreateIssue create a new issue for a given repository
-func (c *Client) CreateIssue(owner, repo string, opt CreateIssueOption) (*Issue, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- issue := new(Issue)
- return issue, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/issues", owner, repo),
- jsonHeader, bytes.NewReader(body), issue)
-}
-
-// EditIssueOption options for editing an issue
-type EditIssueOption struct {
- Title string `json:"title"`
- Body *string `json:"body"`
- Assignee *string `json:"assignee"`
- Assignees []string `json:"assignees"`
- Milestone *int64 `json:"milestone"`
- State *string `json:"state"`
- // swagger:strfmt date-time
- Deadline *time.Time `json:"due_date"`
-}
-
-// EditIssue modify an existing issue for a given repository
-func (c *Client) EditIssue(owner, repo string, index int64, opt EditIssueOption) (*Issue, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- issue := new(Issue)
- return issue, c.getParsedResponse("PATCH", fmt.Sprintf("/repos/%s/%s/issues/%d", owner, repo, index),
- jsonHeader, bytes.NewReader(body), issue)
-}
-
-// StartIssueStopWatch starts a stopwatch for an existing issue for a given
-// repository
-func (c *Client) StartIssueStopWatch(owner, repo string, index int64) error {
- _, err := c.getResponse("POST", fmt.Sprintf("/repos/%s/%s/issues/%d/stopwatch/start", owner, repo, index),
- jsonHeader, nil)
- return err
-}
-
-// StopIssueStopWatch stops an existing stopwatch for an issue in a given
-// repository
-func (c *Client) StopIssueStopWatch(owner, repo string, index int64) error {
- _, err := c.getResponse("POST", fmt.Sprintf("/repos/%s/%s/issues/%d/stopwatch/stop", owner, repo, index),
- jsonHeader, nil)
- return err
-}
-
-// EditDeadlineOption options for creating a deadline
-type EditDeadlineOption struct {
- // required:true
- // swagger:strfmt date-time
- Deadline *time.Time `json:"due_date"`
-}
-
-// IssueDeadline represents an issue deadline
-// swagger:model
-type IssueDeadline struct {
- // swagger:strfmt date-time
- Deadline *time.Time `json:"due_date"`
-}
-
-// EditPriorityOption options for updating priority
-type EditPriorityOption struct {
- // required:true
- Priority int `json:"priority"`
-}
+++ /dev/null
-// Copyright 2016 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "time"
-)
-
-// Comment represents a comment on a commit or issue
-type Comment struct {
- ID int64 `json:"id"`
- HTMLURL string `json:"html_url"`
- PRURL string `json:"pull_request_url"`
- IssueURL string `json:"issue_url"`
- Poster *User `json:"user"`
- Body string `json:"body"`
- // swagger:strfmt date-time
- Created time.Time `json:"created_at"`
- // swagger:strfmt date-time
- Updated time.Time `json:"updated_at"`
-}
-
-// ListIssueComments list comments on an issue.
-func (c *Client) ListIssueComments(owner, repo string, index int64) ([]*Comment, error) {
- comments := make([]*Comment, 0, 10)
- return comments, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d/comments", owner, repo, index), nil, nil, &comments)
-}
-
-// ListRepoIssueComments list comments for a given repo.
-func (c *Client) ListRepoIssueComments(owner, repo string) ([]*Comment, error) {
- comments := make([]*Comment, 0, 10)
- return comments, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/comments", owner, repo), nil, nil, &comments)
-}
-
-// CreateIssueCommentOption options for creating a comment on an issue
-type CreateIssueCommentOption struct {
- // required:true
- Body string `json:"body" binding:"Required"`
-}
-
-// CreateIssueComment create comment on an issue.
-func (c *Client) CreateIssueComment(owner, repo string, index int64, opt CreateIssueCommentOption) (*Comment, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- comment := new(Comment)
- return comment, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/issues/%d/comments", owner, repo, index), jsonHeader, bytes.NewReader(body), comment)
-}
-
-// EditIssueCommentOption options for editing a comment
-type EditIssueCommentOption struct {
- // required: true
- Body string `json:"body" binding:"Required"`
-}
-
-// EditIssueComment edits an issue comment.
-func (c *Client) EditIssueComment(owner, repo string, index, commentID int64, opt EditIssueCommentOption) (*Comment, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- comment := new(Comment)
- return comment, c.getParsedResponse("PATCH", fmt.Sprintf("/repos/:%s/:%s/issues/%d/comments/%d", owner, repo, index, commentID), jsonHeader, bytes.NewReader(body), comment)
-}
-
-// DeleteIssueComment deletes an issue comment.
-func (c *Client) DeleteIssueComment(owner, repo string, index, commentID int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/comments/%d", owner, repo, index, commentID), nil, nil)
- return err
-}
+++ /dev/null
-// Copyright 2016 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
-)
-
-// Label a label to an issue or a pr
-// swagger:model
-type Label struct {
- ID int64 `json:"id"`
- Name string `json:"name"`
- // example: 00aabb
- Color string `json:"color"`
- URL string `json:"url"`
-}
-
-// ListRepoLabels list labels of one repository
-func (c *Client) ListRepoLabels(owner, repo string) ([]*Label, error) {
- labels := make([]*Label, 0, 10)
- return labels, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/labels", owner, repo), nil, nil, &labels)
-}
-
-// GetRepoLabel get one label of repository by repo it
-// TODO: maybe we need get a label by name
-func (c *Client) GetRepoLabel(owner, repo string, id int64) (*Label, error) {
- label := new(Label)
- return label, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/labels/%d", owner, repo, id), nil, nil, label)
-}
-
-// CreateLabelOption options for creating a label
-type CreateLabelOption struct {
- // required:true
- Name string `json:"name" binding:"Required"`
- // required:true
- // example: #00aabb
- Color string `json:"color" binding:"Required;Size(7)"`
-}
-
-// CreateLabel create one label of repository
-func (c *Client) CreateLabel(owner, repo string, opt CreateLabelOption) (*Label, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- label := new(Label)
- return label, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/labels", owner, repo),
- jsonHeader, bytes.NewReader(body), label)
-}
-
-// EditLabelOption options for editing a label
-type EditLabelOption struct {
- Name *string `json:"name"`
- Color *string `json:"color"`
-}
-
-// EditLabel modify one label with options
-func (c *Client) EditLabel(owner, repo string, id int64, opt EditLabelOption) (*Label, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- label := new(Label)
- return label, c.getParsedResponse("PATCH", fmt.Sprintf("/repos/%s/%s/labels/%d", owner, repo, id), jsonHeader, bytes.NewReader(body), label)
-}
-
-// DeleteLabel delete one label of repository by id
-// TODO: maybe we need delete by name
-func (c *Client) DeleteLabel(owner, repo string, id int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/labels/%d", owner, repo, id), nil, nil)
- return err
-}
-
-// IssueLabelsOption a collection of labels
-type IssueLabelsOption struct {
- // list of label IDs
- Labels []int64 `json:"labels"`
-}
-
-// GetIssueLabels get labels of one issue via issue id
-func (c *Client) GetIssueLabels(owner, repo string, index int64) ([]*Label, error) {
- labels := make([]*Label, 0, 5)
- return labels, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d/labels", owner, repo, index), nil, nil, &labels)
-}
-
-// AddIssueLabels add one or more labels to one issue
-func (c *Client) AddIssueLabels(owner, repo string, index int64, opt IssueLabelsOption) ([]*Label, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- var labels []*Label
- return labels, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/issues/%d/labels", owner, repo, index), jsonHeader, bytes.NewReader(body), &labels)
-}
-
-// ReplaceIssueLabels replace old labels of issue with new labels
-func (c *Client) ReplaceIssueLabels(owner, repo string, index int64, opt IssueLabelsOption) ([]*Label, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- var labels []*Label
- return labels, c.getParsedResponse("PUT", fmt.Sprintf("/repos/%s/%s/issues/%d/labels", owner, repo, index), jsonHeader, bytes.NewReader(body), &labels)
-}
-
-// DeleteIssueLabel delete one label of one issue by issue id and label id
-// TODO: maybe we need delete by label name and issue id
-func (c *Client) DeleteIssueLabel(owner, repo string, index, label int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/labels/%d", owner, repo, index, label), nil, nil)
- return err
-}
-
-// ClearIssueLabels delete all the labels of one issue.
-func (c *Client) ClearIssueLabels(owner, repo string, index int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/labels", owner, repo, index), nil, nil)
- return err
-}
+++ /dev/null
-// Copyright 2016 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "time"
-)
-
-// Milestone milestone is a collection of issues on one repository
-type Milestone struct {
- ID int64 `json:"id"`
- Title string `json:"title"`
- Description string `json:"description"`
- State StateType `json:"state"`
- OpenIssues int `json:"open_issues"`
- ClosedIssues int `json:"closed_issues"`
- // swagger:strfmt date-time
- Closed *time.Time `json:"closed_at"`
- // swagger:strfmt date-time
- Deadline *time.Time `json:"due_on"`
-}
-
-// ListRepoMilestones list all the milestones of one repository
-func (c *Client) ListRepoMilestones(owner, repo string) ([]*Milestone, error) {
- milestones := make([]*Milestone, 0, 10)
- return milestones, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/milestones", owner, repo), nil, nil, &milestones)
-}
-
-// GetMilestone get one milestone by repo name and milestone id
-func (c *Client) GetMilestone(owner, repo string, id int64) (*Milestone, error) {
- milestone := new(Milestone)
- return milestone, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/milestones/%d", owner, repo, id), nil, nil, milestone)
-}
-
-// CreateMilestoneOption options for creating a milestone
-type CreateMilestoneOption struct {
- Title string `json:"title"`
- Description string `json:"description"`
- // swagger:strfmt date-time
- Deadline *time.Time `json:"due_on"`
-}
-
-// CreateMilestone create one milestone with options
-func (c *Client) CreateMilestone(owner, repo string, opt CreateMilestoneOption) (*Milestone, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- milestone := new(Milestone)
- return milestone, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/milestones", owner, repo), jsonHeader, bytes.NewReader(body), milestone)
-}
-
-// EditMilestoneOption options for editing a milestone
-type EditMilestoneOption struct {
- Title string `json:"title"`
- Description *string `json:"description"`
- State *string `json:"state"`
- Deadline *time.Time `json:"due_on"`
-}
-
-// EditMilestone modify milestone with options
-func (c *Client) EditMilestone(owner, repo string, id int64, opt EditMilestoneOption) (*Milestone, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- milestone := new(Milestone)
- return milestone, c.getParsedResponse("PATCH", fmt.Sprintf("/repos/%s/%s/milestones/%d", owner, repo, id), jsonHeader, bytes.NewReader(body), milestone)
-}
-
-// DeleteMilestone delete one milestone by milestone id
-func (c *Client) DeleteMilestone(owner, repo string, id int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/milestones/%d", owner, repo, id), nil, nil)
- return err
-}
+++ /dev/null
-// Copyright 2017 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "time"
-)
-
-// TrackedTime worked time for an issue / pr
-type TrackedTime struct {
- ID int64 `json:"id"`
- // swagger:strfmt date-time
- Created time.Time `json:"created"`
- // Time in seconds
- Time int64 `json:"time"`
- UserID int64 `json:"user_id"`
- IssueID int64 `json:"issue_id"`
-}
-
-// TrackedTimes represent a list of tracked times
-type TrackedTimes []*TrackedTime
-
-// GetUserTrackedTimes list tracked times of a user
-func (c *Client) GetUserTrackedTimes(owner, repo, user string) (TrackedTimes, error) {
- times := make(TrackedTimes, 0, 10)
- return times, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/times/%s", owner, repo, user), nil, nil, ×)
-}
-
-// GetRepoTrackedTimes list tracked times of a repository
-func (c *Client) GetRepoTrackedTimes(owner, repo string) (TrackedTimes, error) {
- times := make(TrackedTimes, 0, 10)
- return times, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/times", owner, repo), nil, nil, ×)
-}
-
-// GetMyTrackedTimes list tracked times of the current user
-func (c *Client) GetMyTrackedTimes() (TrackedTimes, error) {
- times := make(TrackedTimes, 0, 10)
- return times, c.getParsedResponse("GET", "/user/times", nil, nil, ×)
-}
-
-// AddTimeOption options for adding time to an issue
-type AddTimeOption struct {
- // time in seconds
- // required: true
- Time int64 `json:"time" binding:"Required"`
-}
-
-// AddTime adds time to issue with the given index
-func (c *Client) AddTime(owner, repo string, index int64, opt AddTimeOption) (*TrackedTime, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- t := new(TrackedTime)
- return t, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/issues/%d/times", owner, repo, index),
- jsonHeader, bytes.NewReader(body), t)
-}
-
-// ListTrackedTimes get tracked times of one issue via issue id
-func (c *Client) ListTrackedTimes(owner, repo string, index int64) (TrackedTimes, error) {
- times := make(TrackedTimes, 0, 5)
- return times, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d/times", owner, repo, index), nil, nil, ×)
-}
+++ /dev/null
-// Copyright 2017 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "time"
-)
-
-// LFSLock represent a lock
-// for use with the locks API.
-type LFSLock struct {
- ID string `json:"id"`
- Path string `json:"path"`
- LockedAt time.Time `json:"locked_at"`
- Owner *LFSLockOwner `json:"owner"`
-}
-
-// LFSLockOwner represent a lock owner
-// for use with the locks API.
-type LFSLockOwner struct {
- Name string `json:"name"`
-}
-
-// LFSLockRequest contains the path of the lock to create
-// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#create-lock
-type LFSLockRequest struct {
- Path string `json:"path"`
-}
-
-// LFSLockResponse represent a lock created
-// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#create-lock
-type LFSLockResponse struct {
- Lock *LFSLock `json:"lock"`
-}
-
-// LFSLockList represent a list of lock requested
-// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#list-locks
-type LFSLockList struct {
- Locks []*LFSLock `json:"locks"`
- Next string `json:"next_cursor,omitempty"`
-}
-
-// LFSLockListVerify represent a list of lock verification requested
-// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#list-locks-for-verification
-type LFSLockListVerify struct {
- Ours []*LFSLock `json:"ours"`
- Theirs []*LFSLock `json:"theirs"`
- Next string `json:"next_cursor,omitempty"`
-}
-
-// LFSLockError contains information on the error that occurs
-type LFSLockError struct {
- Message string `json:"message"`
- Lock *LFSLock `json:"lock,omitempty"`
- Documentation string `json:"documentation_url,omitempty"`
- RequestID string `json:"request_id,omitempty"`
-}
-
-// LFSLockDeleteRequest contains params of a delete request
-// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#delete-lock
-type LFSLockDeleteRequest struct {
- Force bool `json:"force"`
-}
+++ /dev/null
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-// SearchResults results of a successful search
-type SearchResults struct {
- OK bool `json:"ok"`
- Data []*Repository `json:"data"`
-}
-
-// SearchError error of a failed search
-type SearchError struct {
- OK bool `json:"ok"`
- Error string `json:"error"`
-}
-
-// MarkdownOption markdown options
-type MarkdownOption struct {
- // Text markdown to render
- //
- // in: body
- Text string
- // Mode to render
- //
- // in: body
- Mode string
- // Context to render
- //
- // in: body
- Context string
- // Is it a wiki page ?
- //
- // in: body
- Wiki bool
-}
-
-// MarkdownRender is a rendered markdown document
-// swagger:response MarkdownRender
-type MarkdownRender string
-
-// ServerVersion wraps the version of the server
-type ServerVersion struct {
- Version string `json:"version"`
-}
-
-// ServerVersion returns the version of the server
-func (c *Client) ServerVersion() (string, error) {
- v := ServerVersion{}
- return v.Version, c.getParsedResponse("GET", "/api/v1/version", nil, nil, &v)
-}
+++ /dev/null
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
-)
-
-// Organization represents an organization
-type Organization struct {
- ID int64 `json:"id"`
- UserName string `json:"username"`
- FullName string `json:"full_name"`
- AvatarURL string `json:"avatar_url"`
- Description string `json:"description"`
- Website string `json:"website"`
- Location string `json:"location"`
- Visibility VisibleType `json:"visibility"`
-}
-
-// ListMyOrgs list all of current user's organizations
-func (c *Client) ListMyOrgs() ([]*Organization, error) {
- orgs := make([]*Organization, 0, 5)
- return orgs, c.getParsedResponse("GET", "/user/orgs", nil, nil, &orgs)
-}
-
-// ListUserOrgs list all of some user's organizations
-func (c *Client) ListUserOrgs(user string) ([]*Organization, error) {
- orgs := make([]*Organization, 0, 5)
- return orgs, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/orgs", user), nil, nil, &orgs)
-}
-
-// GetOrg get one organization by name
-func (c *Client) GetOrg(orgname string) (*Organization, error) {
- org := new(Organization)
- return org, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s", orgname), nil, nil, org)
-}
-
-// CreateOrgOption options for creating an organization
-type CreateOrgOption struct {
- // required: true
- UserName string `json:"username" binding:"Required"`
- FullName string `json:"full_name"`
- Description string `json:"description"`
- Website string `json:"website"`
- Location string `json:"location"`
- Visibility VisibleType `json:"visibility"`
-}
-
-// EditOrgOption options for editing an organization
-type EditOrgOption struct {
- FullName string `json:"full_name"`
- Description string `json:"description"`
- Website string `json:"website"`
- Location string `json:"location"`
-}
-
-// EditOrg modify one organization via options
-func (c *Client) EditOrg(orgname string, opt EditOrgOption) error {
- body, err := json.Marshal(&opt)
- if err != nil {
- return err
- }
- _, err = c.getResponse("PATCH", fmt.Sprintf("/orgs/%s", orgname), jsonHeader, bytes.NewReader(body))
- return err
-}
+++ /dev/null
-// Copyright 2016 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
-)
-
-// AddOrgMembershipOption add user to organization options
-type AddOrgMembershipOption struct {
- Role string `json:"role" binding:"Required"`
-}
-
-// AddOrgMembership add some one to an organization's member
-func (c *Client) AddOrgMembership(org, user string, opt AddOrgMembershipOption) error {
- body, err := json.Marshal(&opt)
- if err != nil {
- return err
- }
- _, err = c.getResponse("PUT", fmt.Sprintf("/orgs/%s/membership/%s", org, user), jsonHeader, bytes.NewReader(body))
- return err
-}
+++ /dev/null
-// Copyright 2016 The Gogs Authors. All rights reserved.
-// Copyright 2018 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-// Team represents a team in an organization
-type Team struct {
- ID int64 `json:"id"`
- Name string `json:"name"`
- Description string `json:"description"`
- Organization *Organization `json:"organization"`
- // enum: none,read,write,admin,owner
- Permission string `json:"permission"`
- // enum: repo.code,repo.issues,repo.ext_issues,repo.wiki,repo.pulls,repo.releases,repo.ext_wiki
- Units []string `json:"units"`
-}
-
-// CreateTeamOption options for creating a team
-type CreateTeamOption struct {
- // required: true
- Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(30)"`
- Description string `json:"description" binding:"MaxSize(255)"`
- // enum: read,write,admin
- Permission string `json:"permission"`
- // enum: repo.code,repo.issues,repo.ext_issues,repo.wiki,repo.pulls,repo.releases,repo.ext_wiki
- Units []string `json:"units"`
-}
-
-// EditTeamOption options for editing a team
-type EditTeamOption struct {
- // required: true
- Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(30)"`
- Description string `json:"description" binding:"MaxSize(255)"`
- // enum: read,write,admin
- Permission string `json:"permission"`
- // enum: repo.code,repo.issues,repo.ext_issues,repo.wiki,repo.pulls,repo.releases,repo.ext_wiki
- Units []string `json:"units"`
-}
+++ /dev/null
-// Copyright 2019 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-// VisibleType defines the visibility (Organization only)
-type VisibleType int
-
-const (
- // VisibleTypePublic Visible for everyone
- VisibleTypePublic VisibleType = iota
-
- // VisibleTypeLimited Visible for every connected user
- VisibleTypeLimited
-
- // VisibleTypePrivate Visible only for organization's members
- VisibleTypePrivate
-)
-
-// VisibilityModes is a map of org Visibility types
-var VisibilityModes = map[string]VisibleType{
- "public": VisibleTypePublic,
- "limited": VisibleTypeLimited,
- "private": VisibleTypePrivate,
-}
-
-// IsPublic returns true if VisibleType is public
-func (vt VisibleType) IsPublic() bool {
- return vt == VisibleTypePublic
-}
-
-// IsLimited returns true if VisibleType is limited
-func (vt VisibleType) IsLimited() bool {
- return vt == VisibleTypeLimited
-}
-
-// IsPrivate returns true if VisibleType is private
-func (vt VisibleType) IsPrivate() bool {
- return vt == VisibleTypePrivate
-}
-
-// ExtractKeysFromMapString provides a slice of keys from map
-func ExtractKeysFromMapString(in map[string]VisibleType) (keys []string) {
- for k := range in {
- keys = append(keys, k)
- }
- return
-}
+++ /dev/null
-// Copyright 2016 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "time"
-)
-
-// PullRequest represents a pull request
-type PullRequest struct {
- ID int64 `json:"id"`
- URL string `json:"url"`
- Index int64 `json:"number"`
- Poster *User `json:"user"`
- Title string `json:"title"`
- Body string `json:"body"`
- Labels []*Label `json:"labels"`
- Milestone *Milestone `json:"milestone"`
- Assignee *User `json:"assignee"`
- Assignees []*User `json:"assignees"`
- State StateType `json:"state"`
- Comments int `json:"comments"`
-
- HTMLURL string `json:"html_url"`
- DiffURL string `json:"diff_url"`
- PatchURL string `json:"patch_url"`
-
- Mergeable bool `json:"mergeable"`
- HasMerged bool `json:"merged"`
- // swagger:strfmt date-time
- Merged *time.Time `json:"merged_at"`
- MergedCommitID *string `json:"merge_commit_sha"`
- MergedBy *User `json:"merged_by"`
-
- Base *PRBranchInfo `json:"base"`
- Head *PRBranchInfo `json:"head"`
- MergeBase string `json:"merge_base"`
-
- // swagger:strfmt date-time
- Deadline *time.Time `json:"due_date"`
-
- // swagger:strfmt date-time
- Created *time.Time `json:"created_at"`
- // swagger:strfmt date-time
- Updated *time.Time `json:"updated_at"`
- // swagger:strfmt date-time
- Closed *time.Time `json:"closed_at"`
-}
-
-// PRBranchInfo information about a branch
-type PRBranchInfo struct {
- Name string `json:"label"`
- Ref string `json:"ref"`
- Sha string `json:"sha"`
- RepoID int64 `json:"repo_id"`
- Repository *Repository `json:"repo"`
-}
-
-// ListPullRequestsOptions options for listing pull requests
-type ListPullRequestsOptions struct {
- Page int `json:"page"`
- State string `json:"state"`
-}
-
-// ListRepoPullRequests list PRs of one repository
-func (c *Client) ListRepoPullRequests(owner, repo string, opt ListPullRequestsOptions) ([]*PullRequest, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- prs := make([]*PullRequest, 0, 10)
- return prs, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/pulls", owner, repo), jsonHeader, bytes.NewReader(body), &prs)
-}
-
-// GetPullRequest get information of one PR
-func (c *Client) GetPullRequest(owner, repo string, index int64) (*PullRequest, error) {
- pr := new(PullRequest)
- return pr, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/pulls/%d", owner, repo, index), nil, nil, pr)
-}
-
-// CreatePullRequestOption options when creating a pull request
-type CreatePullRequestOption struct {
- Head string `json:"head" binding:"Required"`
- Base string `json:"base" binding:"Required"`
- Title string `json:"title" binding:"Required"`
- Body string `json:"body"`
- Assignee string `json:"assignee"`
- Assignees []string `json:"assignees"`
- Milestone int64 `json:"milestone"`
- Labels []int64 `json:"labels"`
- // swagger:strfmt date-time
- Deadline *time.Time `json:"due_date"`
-}
-
-// CreatePullRequest create pull request with options
-func (c *Client) CreatePullRequest(owner, repo string, opt CreatePullRequestOption) (*PullRequest, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- pr := new(PullRequest)
- return pr, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/pulls", owner, repo),
- jsonHeader, bytes.NewReader(body), pr)
-}
-
-// EditPullRequestOption options when modify pull request
-type EditPullRequestOption struct {
- Title string `json:"title"`
- Body string `json:"body"`
- Assignee string `json:"assignee"`
- Assignees []string `json:"assignees"`
- Milestone int64 `json:"milestone"`
- Labels []int64 `json:"labels"`
- State *string `json:"state"`
- // swagger:strfmt date-time
- Deadline *time.Time `json:"due_date"`
-}
-
-// EditPullRequest modify pull request with PR id and options
-func (c *Client) EditPullRequest(owner, repo string, index int64, opt EditPullRequestOption) (*PullRequest, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- pr := new(PullRequest)
- return pr, c.getParsedResponse("PATCH", fmt.Sprintf("/repos/%s/%s/issues/%d", owner, repo, index),
- jsonHeader, bytes.NewReader(body), pr)
-}
-
-// MergePullRequest merge a PR to repository by PR id
-func (c *Client) MergePullRequest(owner, repo string, index int64) error {
- _, err := c.getResponse("POST", fmt.Sprintf("/repos/%s/%s/pulls/%d/merge", owner, repo, index), nil, nil)
- return err
-}
-
-// IsPullRequestMerged test if one PR is merged to one repository
-func (c *Client) IsPullRequestMerged(owner, repo string, index int64) (bool, error) {
- statusCode, err := c.getStatusCode("GET", fmt.Sprintf("/repos/%s/%s/pulls/%d/merge", owner, repo, index), nil, nil)
-
- if err != nil {
- return false, err
- }
-
- return statusCode == 204, nil
-
-}
+++ /dev/null
-// Copyright 2016 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "time"
-)
-
-// Release represents a repository release
-type Release struct {
- ID int64 `json:"id"`
- TagName string `json:"tag_name"`
- Target string `json:"target_commitish"`
- Title string `json:"name"`
- Note string `json:"body"`
- URL string `json:"url"`
- TarURL string `json:"tarball_url"`
- ZipURL string `json:"zipball_url"`
- IsDraft bool `json:"draft"`
- IsPrerelease bool `json:"prerelease"`
- // swagger:strfmt date-time
- CreatedAt time.Time `json:"created_at"`
- // swagger:strfmt date-time
- PublishedAt time.Time `json:"published_at"`
- Publisher *User `json:"author"`
- Attachments []*Attachment `json:"assets"`
-}
-
-// ListReleases list releases of a repository
-func (c *Client) ListReleases(user, repo string) ([]*Release, error) {
- releases := make([]*Release, 0, 10)
- err := c.getParsedResponse("GET",
- fmt.Sprintf("/repos/%s/%s/releases", user, repo),
- nil, nil, &releases)
- return releases, err
-}
-
-// GetRelease get a release of a repository
-func (c *Client) GetRelease(user, repo string, id int64) (*Release, error) {
- r := new(Release)
- err := c.getParsedResponse("GET",
- fmt.Sprintf("/repos/%s/%s/releases/%d", user, repo, id),
- nil, nil, &r)
- return r, err
-}
-
-// CreateReleaseOption options when creating a release
-type CreateReleaseOption struct {
- // required: true
- TagName string `json:"tag_name" binding:"Required"`
- Target string `json:"target_commitish"`
- Title string `json:"name"`
- Note string `json:"body"`
- IsDraft bool `json:"draft"`
- IsPrerelease bool `json:"prerelease"`
-}
-
-// CreateRelease create a release
-func (c *Client) CreateRelease(user, repo string, form CreateReleaseOption) (*Release, error) {
- body, err := json.Marshal(form)
- if err != nil {
- return nil, err
- }
- r := new(Release)
- err = c.getParsedResponse("POST",
- fmt.Sprintf("/repos/%s/%s/releases", user, repo),
- jsonHeader, bytes.NewReader(body), r)
- return r, err
-}
-
-// EditReleaseOption options when editing a release
-type EditReleaseOption struct {
- TagName string `json:"tag_name"`
- Target string `json:"target_commitish"`
- Title string `json:"name"`
- Note string `json:"body"`
- IsDraft *bool `json:"draft"`
- IsPrerelease *bool `json:"prerelease"`
-}
-
-// EditRelease edit a release
-func (c *Client) EditRelease(user, repo string, id int64, form EditReleaseOption) (*Release, error) {
- body, err := json.Marshal(form)
- if err != nil {
- return nil, err
- }
- r := new(Release)
- err = c.getParsedResponse("PATCH",
- fmt.Sprintf("/repos/%s/%s/releases/%d", user, repo, id),
- jsonHeader, bytes.NewReader(body), r)
- return r, err
-}
-
-// DeleteRelease delete a release from a repository
-func (c *Client) DeleteRelease(user, repo string, id int64) error {
- _, err := c.getResponse("DELETE",
- fmt.Sprintf("/repos/%s/%s/releases/%d", user, repo, id),
- nil, nil)
- return err
-}
+++ /dev/null
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "time"
-)
-
-// Permission represents a set of permissions
-type Permission struct {
- Admin bool `json:"admin"`
- Push bool `json:"push"`
- Pull bool `json:"pull"`
-}
-
-// Repository represents a repository
-type Repository struct {
- ID int64 `json:"id"`
- Owner *User `json:"owner"`
- Name string `json:"name"`
- FullName string `json:"full_name"`
- Description string `json:"description"`
- Empty bool `json:"empty"`
- Private bool `json:"private"`
- Fork bool `json:"fork"`
- Parent *Repository `json:"parent"`
- Mirror bool `json:"mirror"`
- Size int `json:"size"`
- HTMLURL string `json:"html_url"`
- SSHURL string `json:"ssh_url"`
- CloneURL string `json:"clone_url"`
- Website string `json:"website"`
- Stars int `json:"stars_count"`
- Forks int `json:"forks_count"`
- Watchers int `json:"watchers_count"`
- OpenIssues int `json:"open_issues_count"`
- DefaultBranch string `json:"default_branch"`
- Archived bool `json:"archived"`
- // swagger:strfmt date-time
- Created time.Time `json:"created_at"`
- // swagger:strfmt date-time
- Updated time.Time `json:"updated_at"`
- Permissions *Permission `json:"permissions,omitempty"`
-}
-
-// ListMyRepos lists all repositories for the authenticated user that has access to.
-func (c *Client) ListMyRepos() ([]*Repository, error) {
- repos := make([]*Repository, 0, 10)
- return repos, c.getParsedResponse("GET", "/user/repos", nil, nil, &repos)
-}
-
-// ListUserRepos list all repositories of one user by user's name
-func (c *Client) ListUserRepos(user string) ([]*Repository, error) {
- repos := make([]*Repository, 0, 10)
- return repos, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/repos", user), nil, nil, &repos)
-}
-
-// ListOrgRepos list all repositories of one organization by organization's name
-func (c *Client) ListOrgRepos(org string) ([]*Repository, error) {
- repos := make([]*Repository, 0, 10)
- return repos, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s/repos", org), nil, nil, &repos)
-}
-
-// CreateRepoOption options when creating repository
-// swagger:model
-type CreateRepoOption struct {
- // Name of the repository to create
- //
- // required: true
- // unique: true
- Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(100)"`
- // Description of the repository to create
- Description string `json:"description" binding:"MaxSize(255)"`
- // Whether the repository is private
- Private bool `json:"private"`
- // Whether the repository should be auto-intialized?
- AutoInit bool `json:"auto_init"`
- // Gitignores to use
- Gitignores string `json:"gitignores"`
- // License to use
- License string `json:"license"`
- // Readme of the repository to create
- Readme string `json:"readme"`
-}
-
-// CreateRepo creates a repository for authenticated user.
-func (c *Client) CreateRepo(opt CreateRepoOption) (*Repository, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- repo := new(Repository)
- return repo, c.getParsedResponse("POST", "/user/repos", jsonHeader, bytes.NewReader(body), repo)
-}
-
-// CreateOrgRepo creates an organization repository for authenticated user.
-func (c *Client) CreateOrgRepo(org string, opt CreateRepoOption) (*Repository, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- repo := new(Repository)
- return repo, c.getParsedResponse("POST", fmt.Sprintf("/org/%s/repos", org), jsonHeader, bytes.NewReader(body), repo)
-}
-
-// GetRepo returns information of a repository of given owner.
-func (c *Client) GetRepo(owner, reponame string) (*Repository, error) {
- repo := new(Repository)
- return repo, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s", owner, reponame), nil, nil, repo)
-}
-
-// DeleteRepo deletes a repository of user or organization.
-func (c *Client) DeleteRepo(owner, repo string) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s", owner, repo), nil, nil)
- return err
-}
-
-// MigrateRepoOption options for migrating a repository from an external service
-type MigrateRepoOption struct {
- // required: true
- CloneAddr string `json:"clone_addr" binding:"Required"`
- AuthUsername string `json:"auth_username"`
- AuthPassword string `json:"auth_password"`
- // required: true
- UID int `json:"uid" binding:"Required"`
- // required: true
- RepoName string `json:"repo_name" binding:"Required"`
- Mirror bool `json:"mirror"`
- Private bool `json:"private"`
- Description string `json:"description"`
-}
-
-// MigrateRepo migrates a repository from other Git hosting sources for the
-// authenticated user.
-//
-// To migrate a repository for a organization, the authenticated user must be a
-// owner of the specified organization.
-func (c *Client) MigrateRepo(opt MigrateRepoOption) (*Repository, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- repo := new(Repository)
- return repo, c.getParsedResponse("POST", "/repos/migrate", jsonHeader, bytes.NewReader(body), repo)
-}
-
-// MirrorSync adds a mirrored repository to the mirror sync queue.
-func (c *Client) MirrorSync(owner, repo string) error {
- _, err := c.getResponse("POST", fmt.Sprintf("/repos/%s/%s/mirror-sync", owner, repo), nil, nil)
- return err
-}
+++ /dev/null
-// Copyright 2016 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "fmt"
-)
-
-// Branch represents a repository branch
-type Branch struct {
- Name string `json:"name"`
- Commit *PayloadCommit `json:"commit"`
-}
-
-// ListRepoBranches list all the branches of one repository
-func (c *Client) ListRepoBranches(user, repo string) ([]*Branch, error) {
- branches := make([]*Branch, 0, 10)
- return branches, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/branches", user, repo), nil, nil, &branches)
-}
-
-// GetRepoBranch get one branch's information of one repository
-func (c *Client) GetRepoBranch(user, repo, branch string) (*Branch, error) {
- b := new(Branch)
- return b, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/branches/%s", user, repo, branch), nil, nil, &b)
-}
+++ /dev/null
-// Copyright 2016 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
-)
-
-// ListCollaborators list a repository's collaborators
-func (c *Client) ListCollaborators(user, repo string) ([]*User, error) {
- collaborators := make([]*User, 0, 10)
- err := c.getParsedResponse("GET",
- fmt.Sprintf("/repos/%s/%s/collaborators", user, repo),
- nil, nil, &collaborators)
- return collaborators, err
-}
-
-// IsCollaborator check if a user is a collaborator of a repository
-func (c *Client) IsCollaborator(user, repo, collaborator string) (bool, error) {
- status, err := c.getStatusCode("GET",
- fmt.Sprintf("/repos/%s/%s/collaborators/%s", user, repo, collaborator),
- nil, nil)
- if err != nil {
- return false, err
- }
- if status == 204 {
- return true, nil
- }
- return false, nil
-}
-
-// AddCollaboratorOption options when adding a user as a collaborator of a repository
-type AddCollaboratorOption struct {
- Permission *string `json:"permission"`
-}
-
-// AddCollaborator add some user as a collaborator of a repository
-func (c *Client) AddCollaborator(user, repo, collaborator string, opt AddCollaboratorOption) error {
- body, err := json.Marshal(&opt)
- if err != nil {
- return err
- }
- _, err = c.getResponse("PUT", fmt.Sprintf("/repos/%s/%s/collaborators/%s", user, repo, collaborator), nil, bytes.NewReader(body))
- return err
-}
-
-// DeleteCollaborator remove a collaborator from a repository
-func (c *Client) DeleteCollaborator(user, repo, collaborator string) error {
- _, err := c.getResponse("DELETE",
- fmt.Sprintf("/repos/%s/%s/collaborators/%s", user, repo, collaborator),
- nil, nil)
- return err
-}
+++ /dev/null
-// Copyright 2018 The Gogs Authors. All rights reserved.
-// Copyright 2019 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "fmt"
-)
-
-// Identity for a person's identity like an author or committer
-type Identity struct {
- Name string `json:"name" binding:"MaxSize(100)"`
- // swagger:strfmt email
- Email string `json:"email" binding:"MaxSize(254)"`
-}
-
-// CommitMeta contains meta information of a commit in terms of API.
-type CommitMeta struct {
- URL string `json:"url"`
- SHA string `json:"sha"`
-}
-
-// CommitUser contains information of a user in the context of a commit.
-type CommitUser struct {
- Identity
- Date string `json:"date"`
-}
-
-// RepoCommit contains information of a commit in the context of a repository.
-type RepoCommit struct {
- URL string `json:"url"`
- Author *CommitUser `json:"author"`
- Committer *CommitUser `json:"committer"`
- Message string `json:"message"`
- Tree *CommitMeta `json:"tree"`
-}
-
-// Commit contains information generated from a Git commit.
-type Commit struct {
- *CommitMeta
- HTMLURL string `json:"html_url"`
- RepoCommit *RepoCommit `json:"commit"`
- Author *User `json:"author"`
- Committer *User `json:"committer"`
- Parents []*CommitMeta `json:"parents"`
-}
-
-// GetSingleCommit returns a single commit
-func (c *Client) GetSingleCommit(user, repo, commitID string) (*Commit, error) {
- commit := new(Commit)
- return commit, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/git/commits/%s", user, repo, commitID), nil, nil, &commit)
-}
+++ /dev/null
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Copyright 2019 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "fmt"
-)
-
-// GetFile downloads a file of repository, ref can be branch/tag/commit.
-// e.g.: ref -> master, tree -> macaron.go(no leading slash)
-func (c *Client) GetFile(user, repo, ref, tree string) ([]byte, error) {
- return c.getResponse("GET", fmt.Sprintf("/repos/%s/%s/raw/%s/%s", user, repo, ref, tree), nil, nil)
-}
-
-// FileOptions options for all file APIs
-type FileOptions struct {
- Message string `json:"message" binding:"Required"`
- BranchName string `json:"branch"`
- NewBranchName string `json:"new_branch"`
- Author Identity `json:"author"`
- Committer Identity `json:"committer"`
-}
-
-// CreateFileOptions options for creating files
-type CreateFileOptions struct {
- FileOptions
- Content string `json:"content"`
-}
-
-// DeleteFileOptions options for deleting files (used for other File structs below)
-type DeleteFileOptions struct {
- FileOptions
- SHA string `json:"sha" binding:"Required"`
-}
-
-// UpdateFileOptions options for updating files
-type UpdateFileOptions struct {
- DeleteFileOptions
- Content string `json:"content"`
- FromPath string `json:"from_path" binding:"MaxSize(500)"`
-}
-
-// FileLinksResponse contains the links for a repo's file
-type FileLinksResponse struct {
- Self string `json:"url"`
- GitURL string `json:"git_url"`
- HTMLURL string `json:"html_url"`
-}
-
-// FileContentResponse contains information about a repo's file stats and content
-type FileContentResponse struct {
- Name string `json:"name"`
- Path string `json:"path"`
- SHA string `json:"sha"`
- Size int64 `json:"size"`
- URL string `json:"url"`
- HTMLURL string `json:"html_url"`
- GitURL string `json:"git_url"`
- DownloadURL string `json:"download_url"`
- Type string `json:"type"`
- Links *FileLinksResponse `json:"_links"`
-}
-
-// FileCommitResponse contains information generated from a Git commit for a repo's file.
-type FileCommitResponse struct {
- CommitMeta
- HTMLURL string `json:"html_url"`
- Author *CommitUser `json:"author"`
- Committer *CommitUser `json:"committer"`
- Parents []*CommitMeta `json:"parents"`
- Message string `json:"message"`
- Tree *CommitMeta `json:"tree"`
-}
-
-// FileResponse contains information about a repo's file
-type FileResponse struct {
- Content *FileContentResponse `json:"content"`
- Commit *FileCommitResponse `json:"commit"`
- Verification *PayloadCommitVerification `json:"verification"`
-}
-
-// FileDeleteResponse contains information about a repo's file that was deleted
-type FileDeleteResponse struct {
- Content interface{} `json:"content"` // to be set to nil
- Commit *FileCommitResponse `json:"commit"`
- Verification *PayloadCommitVerification `json:"verification"`
-}
+++ /dev/null
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "time"
-)
-
-// DeployKey a deploy key
-type DeployKey struct {
- ID int64 `json:"id"`
- KeyID int64 `json:"key_id"`
- Key string `json:"key"`
- URL string `json:"url"`
- Title string `json:"title"`
- Fingerprint string `json:"fingerprint"`
- // swagger:strfmt date-time
- Created time.Time `json:"created_at"`
- ReadOnly bool `json:"read_only"`
- Repository *Repository `json:"repository,omitempty"`
-}
-
-// ListDeployKeys list all the deploy keys of one repository
-func (c *Client) ListDeployKeys(user, repo string) ([]*DeployKey, error) {
- keys := make([]*DeployKey, 0, 10)
- return keys, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/keys", user, repo), nil, nil, &keys)
-}
-
-// GetDeployKey get one deploy key with key id
-func (c *Client) GetDeployKey(user, repo string, keyID int64) (*DeployKey, error) {
- key := new(DeployKey)
- return key, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/keys/%d", user, repo, keyID), nil, nil, &key)
-}
-
-// CreateKeyOption options when creating a key
-type CreateKeyOption struct {
- // Title of the key to add
- //
- // required: true
- // unique: true
- Title string `json:"title" binding:"Required"`
- // An armored SSH key to add
- //
- // required: true
- // unique: true
- Key string `json:"key" binding:"Required"`
- // Describe if the key has only read access or read/write
- //
- // required: false
- ReadOnly bool `json:"read_only"`
-}
-
-// CreateDeployKey options when create one deploy key
-func (c *Client) CreateDeployKey(user, repo string, opt CreateKeyOption) (*DeployKey, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- key := new(DeployKey)
- return key, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/keys", user, repo), jsonHeader, bytes.NewReader(body), key)
-}
-
-// DeleteDeployKey delete deploy key with key id
-func (c *Client) DeleteDeployKey(owner, repo string, keyID int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/keys/%d", owner, repo, keyID), nil, nil)
- return err
-}
+++ /dev/null
-// Copyright 2018 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "encoding/json"
- "errors"
- "fmt"
- "strings"
-)
-
-// Reference represents a Git reference.
-type Reference struct {
- Ref string `json:"ref"`
- URL string `json:"url"`
- Object *GitObject `json:"object"`
-}
-
-// GitObject represents a Git object.
-type GitObject struct {
- Type string `json:"type"`
- SHA string `json:"sha"`
- URL string `json:"url"`
-}
-
-// GetRepoRef get one ref's information of one repository
-func (c *Client) GetRepoRef(user, repo, ref string) (*Reference, error) {
- ref = strings.TrimPrefix(ref, "refs/")
- r := new(Reference)
- err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/git/refs/%s", user, repo, ref), nil, nil, &r)
- if _, ok := err.(*json.UnmarshalTypeError); ok {
- // Multiple refs
- return nil, errors.New("no exact match found for this ref")
- } else if err != nil {
- return nil, err
- }
-
- return r, nil
-}
-
-// GetRepoRefs get list of ref's information of one repository
-func (c *Client) GetRepoRefs(user, repo, ref string) ([]*Reference, error) {
- ref = strings.TrimPrefix(ref, "refs/")
- resp, err := c.getResponse("GET", fmt.Sprintf("/repos/%s/%s/git/refs/%s", user, repo, ref), nil, nil)
- if err != nil {
- return nil, err
- }
-
- // Attempt to unmarshal single returned ref.
- r := new(Reference)
- refErr := json.Unmarshal(resp, r)
- if refErr == nil {
- return []*Reference{r}, nil
- }
-
- // Attempt to unmarshal multiple refs.
- var rs []*Reference
- refsErr := json.Unmarshal(resp, &rs)
- if refsErr == nil {
- if len(rs) == 0 {
- return nil, errors.New("unexpected response: an array of refs with length 0")
- }
- return rs, nil
- }
-
- return nil, fmt.Errorf("unmarshalling failed for both single and multiple refs: %s and %s", refErr, refsErr)
-}
+++ /dev/null
-// Copyright 2019 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "fmt"
-)
-
-// Tag represents a repository tag
-type Tag struct {
- Name string `json:"name"`
- Commit struct {
- SHA string `json:"sha"`
- URL string `json:"url"`
- } `json:"commit"`
- ZipballURL string `json:"zipball_url"`
- TarballURL string `json:"tarball_url"`
-}
-
-// ListRepoTags list all the branches of one repository
-func (c *Client) ListRepoTags(user, repo string) ([]*Tag, error) {
- tags := make([]*Tag, 0, 10)
- return tags, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/tags", user, repo), nil, nil, &tags)
-}
+++ /dev/null
-// Copyright 2018 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "fmt"
-)
-
-// GitEntry represents a git tree
-type GitEntry struct {
- Path string `json:"path"`
- Mode string `json:"mode"`
- Type string `json:"type"`
- Size int64 `json:"size"`
- SHA string `json:"sha"`
- URL string `json:"url"`
-}
-
-// GitTreeResponse returns a git tree
-type GitTreeResponse struct {
- SHA string `json:"sha"`
- URL string `json:"url"`
- Entries []GitEntry `json:"tree"`
- Truncated bool `json:"truncated"`
- Page int `json:"page"`
- TotalCount int `json:"total_count"`
-}
-
-// GetTrees downloads a file of repository, ref can be branch/tag/commit.
-// e.g.: ref -> master, tree -> macaron.go(no leading slash)
-func (c *Client) GetTrees(user, repo, ref string, recursive bool) (*GitTreeResponse, error) {
- var trees GitTreeResponse
- var path = fmt.Sprintf("/repos/%s/%s/git/trees/%s", user, repo, ref)
- if recursive {
- path += "?recursive=1"
- }
- err := c.getParsedResponse("GET", path, nil, nil, &trees)
- return &trees, err
-}
+++ /dev/null
-// Copyright 2017 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "fmt"
- "net/http"
- "time"
-)
-
-// WatchInfo represents an API watch status of one repository
-type WatchInfo struct {
- Subscribed bool `json:"subscribed"`
- Ignored bool `json:"ignored"`
- Reason interface{} `json:"reason"`
- CreatedAt time.Time `json:"created_at"`
- URL string `json:"url"`
- RepositoryURL string `json:"repository_url"`
-}
-
-// GetWatchedRepos list all the watched repos of user
-func (c *Client) GetWatchedRepos(user, pass string) ([]*Repository, error) {
- repos := make([]*Repository, 0, 10)
- return repos, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/subscriptions", user),
- http.Header{"Authorization": []string{"Basic " + BasicAuthEncode(user, pass)}}, nil, &repos)
-}
-
-// WatchRepo start to watch a repository
-func (c *Client) WatchRepo(user, pass, repoUser, repoName string) (*WatchInfo, error) {
- i := new(WatchInfo)
- return i, c.getParsedResponse("PUT", fmt.Sprintf("/repos/%s/%s/subscription", repoUser, repoName),
- http.Header{"Authorization": []string{"Basic " + BasicAuthEncode(user, pass)}}, nil, i)
-}
-
-// UnWatchRepo start to watch a repository
-func (c *Client) UnWatchRepo(user, pass, repoUser, repoName string) (int, error) {
- return c.getStatusCode("DELETE", fmt.Sprintf("/repos/%s/%s/subscription", repoUser, repoName),
- http.Header{"Authorization": []string{"Basic " + BasicAuthEncode(user, pass)}}, nil)
-}
+++ /dev/null
-// Copyright 2017 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "time"
-)
-
-// StatusState holds the state of a Status
-// It can be "pending", "success", "error", "failure", and "warning"
-type StatusState string
-
-const (
- // StatusPending is for when the Status is Pending
- StatusPending StatusState = "pending"
- // StatusSuccess is for when the Status is Success
- StatusSuccess StatusState = "success"
- // StatusError is for when the Status is Error
- StatusError StatusState = "error"
- // StatusFailure is for when the Status is Failure
- StatusFailure StatusState = "failure"
- // StatusWarning is for when the Status is Warning
- StatusWarning StatusState = "warning"
-)
-
-// Status holds a single Status of a single Commit
-type Status struct {
- ID int64 `json:"id"`
- State StatusState `json:"status"`
- TargetURL string `json:"target_url"`
- Description string `json:"description"`
- URL string `json:"url"`
- Context string `json:"context"`
- Creator *User `json:"creator"`
- // swagger:strfmt date-time
- Created time.Time `json:"created_at"`
- // swagger:strfmt date-time
- Updated time.Time `json:"updated_at"`
-}
-
-// CombinedStatus holds the combined state of several statuses for a single commit
-type CombinedStatus struct {
- State StatusState `json:"state"`
- SHA string `json:"sha"`
- TotalCount int `json:"total_count"`
- Statuses []*Status `json:"statuses"`
- Repository *Repository `json:"repository"`
- CommitURL string `json:"commit_url"`
- URL string `json:"url"`
-}
-
-// CreateStatusOption holds the information needed to create a new Status for a Commit
-type CreateStatusOption struct {
- State StatusState `json:"state"`
- TargetURL string `json:"target_url"`
- Description string `json:"description"`
- Context string `json:"context"`
-}
-
-// ListStatusesOption holds pagination information
-type ListStatusesOption struct {
- Page int
-}
-
-// CreateStatus creates a new Status for a given Commit
-//
-// POST /repos/:owner/:repo/statuses/:sha
-func (c *Client) CreateStatus(owner, repo, sha string, opts CreateStatusOption) (*Status, error) {
- body, err := json.Marshal(&opts)
- if err != nil {
- return nil, err
- }
- status := &Status{}
- return status, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/statuses/%s", owner, repo, sha),
- jsonHeader, bytes.NewReader(body), status)
-}
-
-// ListStatuses returns all statuses for a given Commit
-//
-// GET /repos/:owner/:repo/commits/:ref/statuses
-func (c *Client) ListStatuses(owner, repo, sha string, opts ListStatusesOption) ([]*Status, error) {
- statuses := make([]*Status, 0, 10)
- return statuses, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/commits/%s/statuses?page=%d", owner, repo, sha, opts.Page), nil, nil, &statuses)
-}
-
-// GetCombinedStatus returns the CombinedStatus for a given Commit
-//
-// GET /repos/:owner/:repo/commits/:ref/status
-func (c *Client) GetCombinedStatus(owner, repo, sha string) (*CombinedStatus, error) {
- status := &CombinedStatus{}
- return status, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/commits/%s/status", owner, repo, sha), nil, nil, status)
-}
+++ /dev/null
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "encoding/json"
- "fmt"
-)
-
-// User represents a user
-// swagger:model
-type User struct {
- // the user's id
- ID int64 `json:"id"`
- // the user's username
- UserName string `json:"login"`
- // the user's full name
- FullName string `json:"full_name"`
- // swagger:strfmt email
- Email string `json:"email"`
- // URL to the user's avatar
- AvatarURL string `json:"avatar_url"`
- // User locale
- Language string `json:"language"`
- // Is the user an administrator
- IsAdmin bool `json:"is_admin"`
-}
-
-// MarshalJSON implements the json.Marshaler interface for User, adding field(s) for backward compatibility
-func (u User) MarshalJSON() ([]byte, error) {
- // Re-declaring User to avoid recursion
- type shadow User
- return json.Marshal(struct {
- shadow
- CompatUserName string `json:"username"`
- }{shadow(u), u.UserName})
-}
-
-// GetUserInfo get user info by user's name
-func (c *Client) GetUserInfo(user string) (*User, error) {
- u := new(User)
- err := c.getParsedResponse("GET", fmt.Sprintf("/users/%s", user), nil, nil, u)
- return u, err
-}
-
-// GetMyUserInfo get user info of current user
-func (c *Client) GetMyUserInfo() (*User, error) {
- u := new(User)
- err := c.getParsedResponse("GET", "/user", nil, nil, u)
- return u, err
-}
+++ /dev/null
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Copyright 2019 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/base64"
- "encoding/json"
- "fmt"
- "net/http"
-)
-
-// BasicAuthEncode generate base64 of basic auth head
-func BasicAuthEncode(user, pass string) string {
- return base64.StdEncoding.EncodeToString([]byte(user + ":" + pass))
-}
-
-// AccessToken represents an API access token.
-// swagger:response AccessToken
-type AccessToken struct {
- ID int64 `json:"id"`
- Name string `json:"name"`
- Token string `json:"sha1"`
- TokenLastEight string `json:"token_last_eight"`
-}
-
-// AccessTokenList represents a list of API access token.
-// swagger:response AccessTokenList
-type AccessTokenList []*AccessToken
-
-// ListAccessTokens lista all the access tokens of user
-func (c *Client) ListAccessTokens(user, pass string) ([]*AccessToken, error) {
- tokens := make([]*AccessToken, 0, 10)
- return tokens, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/tokens", user),
- http.Header{"Authorization": []string{"Basic " + BasicAuthEncode(user, pass)}}, nil, &tokens)
-}
-
-// CreateAccessTokenOption options when create access token
-// swagger:parameters userCreateToken
-type CreateAccessTokenOption struct {
- Name string `json:"name" binding:"Required"`
-}
-
-// CreateAccessToken create one access token with options
-func (c *Client) CreateAccessToken(user, pass string, opt CreateAccessTokenOption) (*AccessToken, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- t := new(AccessToken)
- return t, c.getParsedResponse("POST", fmt.Sprintf("/users/%s/tokens", user),
- http.Header{
- "content-type": []string{"application/json"},
- "Authorization": []string{"Basic " + BasicAuthEncode(user, pass)}},
- bytes.NewReader(body), t)
-}
-
-// DeleteAccessToken delete token with key id
-func (c *Client) DeleteAccessToken(user string, keyID int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/user/%s/tokens/%d", user, keyID), nil, nil)
- return err
-}
+++ /dev/null
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
-)
-
-// Email an email address belonging to a user
-type Email struct {
- // swagger:strfmt email
- Email string `json:"email"`
- Verified bool `json:"verified"`
- Primary bool `json:"primary"`
-}
-
-// ListEmails all the email addresses of user
-func (c *Client) ListEmails() ([]*Email, error) {
- emails := make([]*Email, 0, 3)
- return emails, c.getParsedResponse("GET", "/user/emails", nil, nil, &emails)
-}
-
-// CreateEmailOption options when creating email addresses
-type CreateEmailOption struct {
- // email addresses to add
- Emails []string `json:"emails"`
-}
-
-// AddEmail add one email to current user with options
-func (c *Client) AddEmail(opt CreateEmailOption) ([]*Email, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- emails := make([]*Email, 0, 3)
- return emails, c.getParsedResponse("POST", "/user/emails", jsonHeader, bytes.NewReader(body), emails)
-}
-
-// DeleteEmailOption options when deleting email addresses
-type DeleteEmailOption struct {
- // email addresses to delete
- Emails []string `json:"emails"`
-}
-
-// DeleteEmail delete one email of current users'
-func (c *Client) DeleteEmail(opt DeleteEmailOption) error {
- body, err := json.Marshal(&opt)
- if err != nil {
- return err
- }
- _, err = c.getResponse("DELETE", "/user/emails", jsonHeader, bytes.NewReader(body))
- return err
-}
+++ /dev/null
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import "fmt"
-
-// ListMyFollowers list all the followers of current user
-func (c *Client) ListMyFollowers(page int) ([]*User, error) {
- users := make([]*User, 0, 10)
- return users, c.getParsedResponse("GET", fmt.Sprintf("/user/followers?page=%d", page), nil, nil, &users)
-}
-
-// ListFollowers list all the followers of one user
-func (c *Client) ListFollowers(user string, page int) ([]*User, error) {
- users := make([]*User, 0, 10)
- return users, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/followers?page=%d", user, page), nil, nil, &users)
-}
-
-// ListMyFollowing list all the users current user followed
-func (c *Client) ListMyFollowing(page int) ([]*User, error) {
- users := make([]*User, 0, 10)
- return users, c.getParsedResponse("GET", fmt.Sprintf("/user/following?page=%d", page), nil, nil, &users)
-}
-
-// ListFollowing list all the users the user followed
-func (c *Client) ListFollowing(user string, page int) ([]*User, error) {
- users := make([]*User, 0, 10)
- return users, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/following?page=%d", user, page), nil, nil, &users)
-}
-
-// IsFollowing if current user followed the target
-func (c *Client) IsFollowing(target string) bool {
- _, err := c.getResponse("GET", fmt.Sprintf("/user/following/%s", target), nil, nil)
- return err == nil
-}
-
-// IsUserFollowing if the user followed the target
-func (c *Client) IsUserFollowing(user, target string) bool {
- _, err := c.getResponse("GET", fmt.Sprintf("/users/%s/following/%s", user, target), nil, nil)
- return err == nil
-}
-
-// Follow set current user follow the target
-func (c *Client) Follow(target string) error {
- _, err := c.getResponse("PUT", fmt.Sprintf("/user/following/%s", target), nil, nil)
- return err
-}
-
-// Unfollow set current user unfollow the target
-func (c *Client) Unfollow(target string) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/user/following/%s", target), nil, nil)
- return err
-}
+++ /dev/null
-// Copyright 2017 Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "time"
-)
-
-// GPGKey a user GPG key to sign commit and tag in repository
-type GPGKey struct {
- ID int64 `json:"id"`
- PrimaryKeyID string `json:"primary_key_id"`
- KeyID string `json:"key_id"`
- PublicKey string `json:"public_key"`
- Emails []*GPGKeyEmail `json:"emails"`
- SubsKey []*GPGKey `json:"subkeys"`
- CanSign bool `json:"can_sign"`
- CanEncryptComms bool `json:"can_encrypt_comms"`
- CanEncryptStorage bool `json:"can_encrypt_storage"`
- CanCertify bool `json:"can_certify"`
- // swagger:strfmt date-time
- Created time.Time `json:"created_at,omitempty"`
- // swagger:strfmt date-time
- Expires time.Time `json:"expires_at,omitempty"`
-}
-
-// GPGKeyEmail an email attached to a GPGKey
-// swagger:model GPGKeyEmail
-type GPGKeyEmail struct {
- Email string `json:"email"`
- Verified bool `json:"verified"`
-}
-
-// CreateGPGKeyOption options create user GPG key
-type CreateGPGKeyOption struct {
- // An armored GPG key to add
- //
- // required: true
- // unique: true
- ArmoredKey string `json:"armored_public_key" binding:"Required"`
-}
-
-// ListGPGKeys list all the GPG keys of the user
-func (c *Client) ListGPGKeys(user string) ([]*GPGKey, error) {
- keys := make([]*GPGKey, 0, 10)
- return keys, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/gpg_keys", user), nil, nil, &keys)
-}
-
-// ListMyGPGKeys list all the GPG keys of current user
-func (c *Client) ListMyGPGKeys() ([]*GPGKey, error) {
- keys := make([]*GPGKey, 0, 10)
- return keys, c.getParsedResponse("GET", "/user/gpg_keys", nil, nil, &keys)
-}
-
-// GetGPGKey get current user's GPG key by key id
-func (c *Client) GetGPGKey(keyID int64) (*GPGKey, error) {
- key := new(GPGKey)
- return key, c.getParsedResponse("GET", fmt.Sprintf("/user/gpg_keys/%d", keyID), nil, nil, &key)
-}
-
-// CreateGPGKey create GPG key with options
-func (c *Client) CreateGPGKey(opt CreateGPGKeyOption) (*GPGKey, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- key := new(GPGKey)
- return key, c.getParsedResponse("POST", "/user/gpg_keys", jsonHeader, bytes.NewReader(body), key)
-}
-
-// DeleteGPGKey delete GPG key with key id
-func (c *Client) DeleteGPGKey(keyID int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/user/gpg_keys/%d", keyID), nil, nil)
- return err
-}
+++ /dev/null
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "time"
-)
-
-// PublicKey publickey is a user key to push code to repository
-type PublicKey struct {
- ID int64 `json:"id"`
- Key string `json:"key"`
- URL string `json:"url,omitempty"`
- Title string `json:"title,omitempty"`
- Fingerprint string `json:"fingerprint,omitempty"`
- // swagger:strfmt date-time
- Created time.Time `json:"created_at,omitempty"`
- Owner *User `json:"user,omitempty"`
- ReadOnly bool `json:"read_only,omitempty"`
- KeyType string `json:"key_type,omitempty"`
-}
-
-// ListPublicKeys list all the public keys of the user
-func (c *Client) ListPublicKeys(user string) ([]*PublicKey, error) {
- keys := make([]*PublicKey, 0, 10)
- return keys, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/keys", user), nil, nil, &keys)
-}
-
-// ListMyPublicKeys list all the public keys of current user
-func (c *Client) ListMyPublicKeys() ([]*PublicKey, error) {
- keys := make([]*PublicKey, 0, 10)
- return keys, c.getParsedResponse("GET", "/user/keys", nil, nil, &keys)
-}
-
-// GetPublicKey get current user's public key by key id
-func (c *Client) GetPublicKey(keyID int64) (*PublicKey, error) {
- key := new(PublicKey)
- return key, c.getParsedResponse("GET", fmt.Sprintf("/user/keys/%d", keyID), nil, nil, &key)
-}
-
-// CreatePublicKey create public key with options
-func (c *Client) CreatePublicKey(opt CreateKeyOption) (*PublicKey, error) {
- body, err := json.Marshal(&opt)
- if err != nil {
- return nil, err
- }
- key := new(PublicKey)
- return key, c.getParsedResponse("POST", "/user/keys", jsonHeader, bytes.NewReader(body), key)
-}
-
-// DeletePublicKey delete public key with key id
-func (c *Client) DeletePublicKey(keyID int64) error {
- _, err := c.getResponse("DELETE", fmt.Sprintf("/user/keys/%d", keyID), nil, nil)
- return err
-}
+++ /dev/null
-package gitea
-
-import "fmt"
-
-type searchUsersResponse struct {
- Users []*User `json:"data"`
-}
-
-// SearchUsers finds users by query
-func (c *Client) SearchUsers(query string, limit int) ([]*User, error) {
- resp := new(searchUsersResponse)
- err := c.getParsedResponse("GET", fmt.Sprintf("/users/search?q=%s&limit=%d", query, limit), nil, nil, &resp)
- return resp.Users, err
-}
+++ /dev/null
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package gitea
-
-import (
- "net/http"
-)
-
-var jsonHeader = http.Header{"content-type": []string{"application/json"}}
-
-// Bool return address of bool value
-func Bool(v bool) *bool {
- return &v
-}
-
-// String return address of string value
-func String(v string) *string {
- return &v
-}
-
-// Int64 return address of int64 value
-func Int64(v int64) *int64 {
- return &v
-}
-# code.gitea.io/sdk v0.0.0-20190510041517-9251befd3702
-code.gitea.io/sdk/gitea
# github.com/BurntSushi/toml v0.3.1
github.com/BurntSushi/toml
# github.com/PuerkitoBio/goquery v0.0.0-20170324135448-ed7d758e9a34