woodpecker/server/forge/bitbucket/internal/types.go

261 lines
5.7 KiB
Go
Raw Normal View History

2018-02-19 22:24:10 +00:00
// Copyright 2018 Drone.IO Inc.
2018-03-21 13:02:17 +00:00
//
2018-02-19 22:24:10 +00:00
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
2018-03-21 13:02:17 +00:00
//
2018-02-19 22:24:10 +00:00
// http://www.apache.org/licenses/LICENSE-2.0
2018-03-21 13:02:17 +00:00
//
2018-02-19 22:24:10 +00:00
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
2016-04-29 19:39:56 +00:00
package internal
import (
"net/url"
"strconv"
"time"
)
type Account struct {
Login string `json:"username"`
Name string `json:"display_name"`
Type string `json:"type"`
Links Links `json:"links"`
}
type Workspace struct {
UUID string `json:"uuid"`
Slug string `json:"slug"`
Name string `json:"name"`
Type string `json:"type"`
Links Links `json:"links"`
}
type WorkspacesResp struct {
Page int `json:"page"`
Pages int `json:"pagelen"`
Size int `json:"size"`
Next string `json:"next"`
Values []*Workspace `json:"values"`
}
type PipelineStatus struct {
2016-03-27 00:24:09 +00:00
State string `json:"state"`
Key string `json:"key"`
Name string `json:"name,omitempty"`
URL string `json:"url"`
2016-03-27 00:24:09 +00:00
Desc string `json:"description,omitempty"`
2015-11-21 05:22:28 +00:00
}
type Email struct {
Email string `json:"email"`
IsConfirmed bool `json:"is_confirmed"`
IsPrimary bool `json:"is_primary"`
}
type EmailResp struct {
Page int `json:"page"`
Pages int `json:"pagelen"`
Size int `json:"size"`
Next string `json:"next"`
Values []*Email `json:"values"`
}
type Hook struct {
UUID string `json:"uuid,omitempty"`
Desc string `json:"description"`
URL string `json:"url"`
Events []string `json:"events"`
Active bool `json:"active"`
}
type HookResp struct {
Page int `json:"page"`
Pages int `json:"pagelen"`
Size int `json:"size"`
Next string `json:"next"`
Values []*Hook `json:"values"`
}
type Links struct {
Self Link `json:"self"`
Avatar Link `json:"avatar"`
HTML Link `json:"html"`
Clone []Link `json:"clone"`
}
type Link struct {
Href string `json:"href"`
Name string `json:"name"`
}
type LinkClone struct {
Link
}
type Repo struct {
UUID string `json:"uuid"`
Owner Account `json:"owner"`
Name string `json:"name"`
FullName string `json:"full_name"`
Language string `json:"language"`
IsPrivate bool `json:"is_private"`
Scm string `json:"scm"`
Desc string `json:"desc"`
Links Links `json:"links"`
}
type RepoResp struct {
Page int `json:"page"`
Pages int `json:"pagelen"`
Size int `json:"size"`
Next string `json:"next"`
Values []*Repo `json:"values"`
}
type Change struct {
New struct {
Type string `json:"type"`
Name string `json:"name"`
Target struct {
Type string `json:"type"`
Hash string `json:"hash"`
Message string `json:"message"`
Date time.Time `json:"date"`
Links Links `json:"links"`
Author struct {
Raw string `json:"raw"`
User Account `json:"user"`
} `json:"author"`
} `json:"target"`
} `json:"new"`
}
type PushHook struct {
Actor Account `json:"actor"`
Repo Repo `json:"repository"`
Push struct {
Changes []Change `json:"changes"`
} `json:"push"`
}
2015-10-05 01:34:06 +00:00
type PullRequestHook struct {
Actor Account `json:"actor"`
Repo Repo `json:"repository"`
PullRequest struct {
ID int `json:"id"`
Type string `json:"type"`
Reason string `json:"reason"`
Desc string `json:"description"`
Title string `json:"title"`
State string `json:"state"`
Links Links `json:"links"`
Created time.Time `json:"created_on"`
Updated time.Time `json:"updated_on"`
Source struct {
Repo Repo `json:"repsoitory"`
Commit struct {
Hash string `json:"hash"`
Links Links `json:"links"`
} `json:"commit"`
Branch struct {
Name string `json:"name"`
} `json:"branch"`
} `json:"source"`
Dest struct {
Repo Repo `json:"repsoitory"`
Commit struct {
Hash string `json:"hash"`
Links Links `json:"links"`
} `json:"commit"`
Branch struct {
Name string `json:"name"`
} `json:"branch"`
} `json:"destination"`
} `json:"pullrequest"`
}
type WorkspaceMembershipResp struct {
Page int `json:"page"`
Pages int `json:"pagelen"`
Size int `json:"size"`
Next string `json:"next"`
Values []struct {
Permission string `json:"permission"`
User struct {
Nickname string `json:"nickname"`
}
} `json:"values"`
}
type ListOpts struct {
Page int
PageLen int
}
func (o *ListOpts) Encode() string {
2015-10-05 01:34:06 +00:00
params := url.Values{}
if o.Page != 0 {
params.Set("page", strconv.Itoa(o.Page))
}
if o.PageLen != 0 {
params.Set("pagelen", strconv.Itoa(o.PageLen))
}
return params.Encode()
}
type ListWorkspacesOpts struct {
Page int
PageLen int
Role string
}
func (o *ListWorkspacesOpts) Encode() string {
2015-10-05 01:34:06 +00:00
params := url.Values{}
if o.Page != 0 {
params.Set("page", strconv.Itoa(o.Page))
}
if o.PageLen != 0 {
params.Set("pagelen", strconv.Itoa(o.PageLen))
}
if len(o.Role) != 0 {
params.Set("role", o.Role)
}
return params.Encode()
}
type Error struct {
Status int
Body struct {
Message string `json:"message"`
} `json:"error"`
}
func (e Error) Error() string {
return e.Body.Message
}
type RepoPermResp struct {
Page int `json:"page"`
Pages int `json:"pagelen"`
Values []*RepoPerm `json:"values"`
}
type RepoPerm struct {
Permission string `json:"permission"`
}
type BranchResp struct {
Values []*Branch `json:"values"`
}
type Branch struct {
Name string `json:"name"`
}