mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Update dependencies
This commit is contained in:
parent
1bfd26a55c
commit
93ef3ea429
46
go.mod
46
go.mod
@ -7,7 +7,6 @@ replace github.com/yfronto/newrelic => ./vendor/github.com/yfronto/newrelic
|
|||||||
require (
|
require (
|
||||||
cloud.google.com/go v0.45.1 // indirect
|
cloud.google.com/go v0.45.1 // indirect
|
||||||
code.cloudfoundry.org/bytefmt v0.0.0-20180906201452-2aa6f33b730c
|
code.cloudfoundry.org/bytefmt v0.0.0-20180906201452-2aa6f33b730c
|
||||||
github.com/BurntSushi/xgb v0.0.0-20160522221800-27f122750802 // indirect
|
|
||||||
github.com/Microsoft/go-winio v0.4.14 // indirect
|
github.com/Microsoft/go-winio v0.4.14 // indirect
|
||||||
github.com/PagerDuty/go-pagerduty v0.0.0-20190503230806-cf1437c7c8d6
|
github.com/PagerDuty/go-pagerduty v0.0.0-20190503230806-cf1437c7c8d6
|
||||||
github.com/StackExchange/wmi v0.0.0-20190523213609-cbe66965904d // indirect
|
github.com/StackExchange/wmi v0.0.0-20190523213609-cbe66965904d // indirect
|
||||||
@ -17,96 +16,57 @@ require (
|
|||||||
github.com/andygrunwald/go-gerrit v0.0.0-20190625080919-64931d233c2d
|
github.com/andygrunwald/go-gerrit v0.0.0-20190625080919-64931d233c2d
|
||||||
github.com/briandowns/openweathermap v0.0.0-20180804155945-5f41b7c9d92d
|
github.com/briandowns/openweathermap v0.0.0-20180804155945-5f41b7c9d92d
|
||||||
github.com/cenkalti/backoff v2.2.0+incompatible // indirect
|
github.com/cenkalti/backoff v2.2.0+incompatible // indirect
|
||||||
github.com/coreos/bbolt v1.3.3 // indirect
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
|
||||||
github.com/coreos/etcd v3.3.15+incompatible // indirect
|
|
||||||
github.com/coreos/go-semver v0.3.0 // indirect
|
|
||||||
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f // indirect
|
|
||||||
github.com/cosiner/argv v0.0.1 // indirect
|
|
||||||
github.com/docker/distribution v2.7.1+incompatible // indirect
|
github.com/docker/distribution v2.7.1+incompatible // indirect
|
||||||
github.com/docker/docker v1.13.1
|
github.com/docker/docker v1.13.1
|
||||||
github.com/docker/go-connections v0.4.0 // indirect
|
github.com/docker/go-connections v0.4.0 // indirect
|
||||||
github.com/docker/go-units v0.4.0 // indirect
|
github.com/docker/go-units v0.4.0 // indirect
|
||||||
github.com/dustin/go-humanize v1.0.0
|
github.com/dustin/go-humanize v1.0.0
|
||||||
github.com/gdamore/tcell v1.2.0
|
github.com/gdamore/tcell v1.2.0
|
||||||
github.com/go-delve/delve v1.3.0 // indirect
|
|
||||||
github.com/go-kit/kit v0.9.0 // indirect
|
|
||||||
github.com/go-ole/go-ole v1.2.4 // indirect
|
github.com/go-ole/go-ole v1.2.4 // indirect
|
||||||
github.com/godbus/dbus v5.0.1+incompatible // indirect
|
github.com/godbus/dbus v5.0.1+incompatible // indirect
|
||||||
github.com/gogo/protobuf v1.3.0 // indirect
|
github.com/gogo/protobuf v1.3.0 // indirect
|
||||||
|
github.com/google/btree v1.0.0 // indirect
|
||||||
github.com/google/go-cmp v0.3.1 // indirect
|
github.com/google/go-cmp v0.3.1 // indirect
|
||||||
github.com/google/go-github/v26 v26.0.9
|
github.com/google/go-github/v26 v26.0.9
|
||||||
github.com/google/pprof v0.0.0-20190723021845-34ac40c74b70 // indirect
|
|
||||||
github.com/gorilla/websocket v1.4.1 // indirect
|
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.11.1 // indirect
|
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.1 // indirect
|
github.com/hashicorp/go-cleanhttp v0.5.1 // indirect
|
||||||
github.com/hashicorp/golang-lru v0.5.3 // indirect
|
|
||||||
github.com/hekmon/cunits v2.0.1+incompatible // indirect
|
github.com/hekmon/cunits v2.0.1+incompatible // indirect
|
||||||
github.com/hekmon/transmissionrpc v0.0.0-20190525133028-1d589625bacd
|
github.com/hekmon/transmissionrpc v0.0.0-20190525133028-1d589625bacd
|
||||||
github.com/jessevdk/go-flags v1.4.0
|
github.com/jessevdk/go-flags v1.4.0
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
|
github.com/json-iterator/go v1.1.7 // indirect
|
||||||
github.com/kr/pty v1.1.8 // indirect
|
|
||||||
github.com/logrusorgru/aurora v0.0.0-20190428105938-cea283e61946
|
github.com/logrusorgru/aurora v0.0.0-20190428105938-cea283e61946
|
||||||
github.com/magiconair/properties v1.8.1 // indirect
|
|
||||||
github.com/mattn/go-colorable v0.1.2 // indirect
|
|
||||||
github.com/mattn/go-isatty v0.0.9 // indirect
|
github.com/mattn/go-isatty v0.0.9 // indirect
|
||||||
github.com/microsoft/azure-devops-go-api v0.0.0-20190912142452-3207b4a469d3 // indirect
|
|
||||||
github.com/microsoft/azure-devops-go-api/azuredevops v0.0.0-20190912142452-3207b4a469d3
|
github.com/microsoft/azure-devops-go-api/azuredevops v0.0.0-20190912142452-3207b4a469d3
|
||||||
github.com/mmcdole/gofeed v1.0.0-beta2.0.20190420154928-0e68beaf6fdf
|
github.com/mmcdole/gofeed v1.0.0-beta2.0.20190420154928-0e68beaf6fdf
|
||||||
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
|
|
||||||
github.com/olebedev/config v0.0.0-20190528211619-364964f3a8e4
|
github.com/olebedev/config v0.0.0-20190528211619-364964f3a8e4
|
||||||
github.com/onsi/ginkgo v1.10.1 // indirect
|
github.com/onsi/ginkgo v1.10.1 // indirect
|
||||||
github.com/onsi/gomega v1.7.0 // indirect
|
github.com/onsi/gomega v1.7.0 // indirect
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1 // indirect
|
github.com/opencontainers/go-digest v1.0.0-rc1 // indirect
|
||||||
github.com/pelletier/go-toml v1.4.0 // indirect
|
|
||||||
github.com/peterh/liner v1.1.0 // indirect
|
|
||||||
github.com/pkg/errors v0.8.1
|
github.com/pkg/errors v0.8.1
|
||||||
github.com/pkg/profile v1.3.0
|
github.com/pkg/profile v1.3.0
|
||||||
github.com/prometheus/client_golang v1.1.0 // indirect
|
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 // indirect
|
|
||||||
github.com/prometheus/procfs v0.0.4 // indirect
|
|
||||||
github.com/radovskyb/watcher v1.0.6
|
github.com/radovskyb/watcher v1.0.6
|
||||||
github.com/rivo/tview v0.0.0-20190829161255-f8bc69b90341
|
github.com/rivo/tview v0.0.0-20190829161255-f8bc69b90341
|
||||||
github.com/rivo/uniseg v0.1.0 // indirect
|
github.com/rivo/uniseg v0.1.0 // indirect
|
||||||
github.com/rogpeppe/fastuuid v1.2.0 // indirect
|
|
||||||
github.com/rogpeppe/go-internal v1.3.1 // indirect
|
|
||||||
github.com/russross/blackfriday v2.0.0+incompatible // indirect
|
|
||||||
github.com/shirou/gopsutil v2.18.12+incompatible
|
github.com/shirou/gopsutil v2.18.12+incompatible
|
||||||
github.com/sirupsen/logrus v1.4.2 // indirect
|
|
||||||
github.com/spf13/afero v1.2.2 // indirect
|
|
||||||
github.com/spf13/cobra v0.0.5 // indirect
|
|
||||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
|
||||||
github.com/spf13/viper v1.4.0 // indirect
|
|
||||||
github.com/sticreations/spotigopher v0.0.0-20181009182052-98632f6f94b0
|
github.com/sticreations/spotigopher v0.0.0-20181009182052-98632f6f94b0
|
||||||
github.com/stretchr/objx v0.2.0 // indirect
|
|
||||||
github.com/stretchr/testify v1.4.0
|
github.com/stretchr/testify v1.4.0
|
||||||
github.com/ugorji/go v1.1.7 // indirect
|
|
||||||
github.com/wtfutil/todoist v0.0.0-20180625015933-97395e581a76
|
github.com/wtfutil/todoist v0.0.0-20180625015933-97395e581a76
|
||||||
github.com/xanzy/go-gitlab v0.18.0
|
github.com/xanzy/go-gitlab v0.18.0
|
||||||
github.com/yfronto/newrelic v0.0.0-20180622232530-7c9c2852e8f9
|
github.com/yfronto/newrelic v0.0.0-20180622232530-7c9c2852e8f9
|
||||||
github.com/zmb3/spotify v0.0.0-20190520155326-158b1863f5b5
|
github.com/zmb3/spotify v0.0.0-20190520155326-158b1863f5b5
|
||||||
github.com/zorkian/go-datadog-api v2.21.0+incompatible
|
github.com/zorkian/go-datadog-api v2.21.0+incompatible
|
||||||
go.etcd.io/bbolt v1.3.3 // indirect
|
|
||||||
go.opencensus.io v0.22.1 // indirect
|
go.opencensus.io v0.22.1 // indirect
|
||||||
go.starlark.net v0.0.0-20190820173200-988906f77f65 // indirect
|
|
||||||
golang.org/x/arch v0.0.0-20190815191158-8a70ba74b3a1 // indirect
|
|
||||||
golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472 // indirect
|
golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472 // indirect
|
||||||
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979 // indirect
|
|
||||||
golang.org/x/image v0.0.0-20190902063713-cb417be4ba39 // indirect
|
|
||||||
golang.org/x/lint v0.0.0-20190511005446-959b441ac422 // indirect
|
|
||||||
golang.org/x/mobile v0.0.0-20190830201351-c6da95954960 // indirect
|
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect
|
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect
|
||||||
golang.org/x/oauth2 v0.0.0-20190614102709-0f29369cfe45
|
golang.org/x/oauth2 v0.0.0-20190614102709-0f29369cfe45
|
||||||
golang.org/x/sync v0.0.0-20190427212804-112230192c58 // indirect
|
|
||||||
golang.org/x/sys v0.0.0-20190902133755-9109b7679e13 // indirect
|
golang.org/x/sys v0.0.0-20190902133755-9109b7679e13 // indirect
|
||||||
golang.org/x/time v0.0.0-20190513212739-9d24e82272b4 // indirect
|
golang.org/x/time v0.0.0-20190513212739-9d24e82272b4 // indirect
|
||||||
golang.org/x/tools v0.0.0-20190903025054-afe7f8212f0d // indirect
|
|
||||||
google.golang.org/api v0.9.0
|
google.golang.org/api v0.9.0
|
||||||
google.golang.org/appengine v1.6.2 // indirect
|
google.golang.org/appengine v1.6.2 // indirect
|
||||||
google.golang.org/grpc v1.23.0 // indirect
|
google.golang.org/grpc v1.23.0 // indirect
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
|
||||||
gopkg.in/jarcoal/httpmock.v1 v1.0.0-20190314184232-a8ac0a50d0b5 // indirect
|
gopkg.in/jarcoal/httpmock.v1 v1.0.0-20190314184232-a8ac0a50d0b5 // indirect
|
||||||
gopkg.in/yaml.v2 v2.2.2
|
gopkg.in/yaml.v2 v2.2.2
|
||||||
honnef.co/go/tools v0.0.1-2019.2.3 // indirect
|
|
||||||
k8s.io/apimachinery v0.0.0-20190802060556-6fa4771c83b3
|
k8s.io/apimachinery v0.0.0-20190802060556-6fa4771c83b3
|
||||||
k8s.io/client-go v12.0.0+incompatible
|
k8s.io/client-go v12.0.0+incompatible
|
||||||
)
|
)
|
||||||
|
190
go.sum
190
go.sum
@ -13,12 +13,11 @@ github.com/Azure/go-autorest v11.1.2+incompatible h1:viZ3tV5l4gE2Sw0xrasFHytCGtz
|
|||||||
github.com/Azure/go-autorest v11.1.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
|
github.com/Azure/go-autorest v11.1.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/BurntSushi/xgb v0.0.0-20160522221800-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
github.com/DATA-DOG/go-sqlmock v1.3.3 h1:CWUqKXe0s8A2z6qCgkP4Kru7wC11YoAnoupUKFDnH08=
|
||||||
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
|
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
|
||||||
github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=
|
github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=
|
||||||
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
|
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
|
||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
|
||||||
github.com/PagerDuty/go-pagerduty v0.0.0-20190503230806-cf1437c7c8d6 h1:JucouG/P7B+i18/RJbFpbqJyaserYaQzFMlfK/eIEY8=
|
github.com/PagerDuty/go-pagerduty v0.0.0-20190503230806-cf1437c7c8d6 h1:JucouG/P7B+i18/RJbFpbqJyaserYaQzFMlfK/eIEY8=
|
||||||
github.com/PagerDuty/go-pagerduty v0.0.0-20190503230806-cf1437c7c8d6/go.mod h1:6hH58nzwYc9mw+TPyM1anW0ivbI0ti4lYc+ZBaKmWts=
|
github.com/PagerDuty/go-pagerduty v0.0.0-20190503230806-cf1437c7c8d6/go.mod h1:6hH58nzwYc9mw+TPyM1anW0ivbI0ti4lYc+ZBaKmWts=
|
||||||
github.com/PuerkitoBio/goquery v1.5.0 h1:uGvmFXOA73IKluu/F84Xd1tt/z07GYm8X49XKHP7EJk=
|
github.com/PuerkitoBio/goquery v1.5.0 h1:uGvmFXOA73IKluu/F84Xd1tt/z07GYm8X49XKHP7EJk=
|
||||||
@ -29,49 +28,28 @@ github.com/StackExchange/wmi v0.0.0-20190523213609-cbe66965904d h1:VWP4o43LuzNby
|
|||||||
github.com/StackExchange/wmi v0.0.0-20190523213609-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
|
github.com/StackExchange/wmi v0.0.0-20190523213609-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
|
||||||
github.com/adlio/trello v1.0.0 h1:7Mp6DnNXBHBAdhfcutftFDnX7K/G9yEtScAEplJzu+0=
|
github.com/adlio/trello v1.0.0 h1:7Mp6DnNXBHBAdhfcutftFDnX7K/G9yEtScAEplJzu+0=
|
||||||
github.com/adlio/trello v1.0.0/go.mod h1:l2068AhUuUuQ9Vsb95ECMueHThYyAj4e85lWPmr2/LE=
|
github.com/adlio/trello v1.0.0/go.mod h1:l2068AhUuUuQ9Vsb95ECMueHThYyAj4e85lWPmr2/LE=
|
||||||
|
github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 h1:smF2tmSOzy2Mm+0dGI2AIUHY+w0BUc+4tn40djz7+6U=
|
||||||
github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI=
|
github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI=
|
||||||
github.com/alecthomas/chroma v0.6.3 h1:8H1D0yddf0mvgvO4JDBKnzLd9ERmzzAijBxnZXGV/FA=
|
github.com/alecthomas/chroma v0.6.3 h1:8H1D0yddf0mvgvO4JDBKnzLd9ERmzzAijBxnZXGV/FA=
|
||||||
github.com/alecthomas/chroma v0.6.3/go.mod h1:quT2EpvJNqkuPi6DmBHB+E33FXBgBBPzyH5++Dn1LPc=
|
github.com/alecthomas/chroma v0.6.3/go.mod h1:quT2EpvJNqkuPi6DmBHB+E33FXBgBBPzyH5++Dn1LPc=
|
||||||
|
github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 h1:JHZL0hZKJ1VENNfmXvHbgYlbUOvpzYzvy2aZU5gXVeo=
|
||||||
github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0=
|
github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0=
|
||||||
github.com/alecthomas/kong v0.1.15/go.mod h1:0m2VYms8rH0qbCqVB2gvGHk74bqLIq0HXjCs5bNbNQU=
|
github.com/alecthomas/kong v0.1.15/go.mod h1:0m2VYms8rH0qbCqVB2gvGHk74bqLIq0HXjCs5bNbNQU=
|
||||||
github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ=
|
github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ=
|
||||||
|
github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1 h1:GDQdwm/gAcJcLAKQQZGOJ4knlw+7rfEQQcmwTbt4p5E=
|
||||||
github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ=
|
github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ=
|
||||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
|
||||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
|
||||||
github.com/andybalholm/cascadia v1.0.0 h1:hOCXnnZ5A+3eVDX8pvgl4kofXv2ELss0bKcqRySc45o=
|
github.com/andybalholm/cascadia v1.0.0 h1:hOCXnnZ5A+3eVDX8pvgl4kofXv2ELss0bKcqRySc45o=
|
||||||
github.com/andybalholm/cascadia v1.0.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
|
github.com/andybalholm/cascadia v1.0.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
|
||||||
github.com/andygrunwald/go-gerrit v0.0.0-20190625080919-64931d233c2d h1:VqtwQ/1Q39dznaTGQXmPzwdTbqKd2jdlfNgawTVM6YU=
|
github.com/andygrunwald/go-gerrit v0.0.0-20190625080919-64931d233c2d h1:VqtwQ/1Q39dznaTGQXmPzwdTbqKd2jdlfNgawTVM6YU=
|
||||||
github.com/andygrunwald/go-gerrit v0.0.0-20190625080919-64931d233c2d/go.mod h1:0iuRQp6WJ44ts+iihy5E/WlPqfg5RNeQxOmzRkxCdtk=
|
github.com/andygrunwald/go-gerrit v0.0.0-20190625080919-64931d233c2d/go.mod h1:0iuRQp6WJ44ts+iihy5E/WlPqfg5RNeQxOmzRkxCdtk=
|
||||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
|
||||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
|
||||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
|
||||||
github.com/briandowns/openweathermap v0.0.0-20180804155945-5f41b7c9d92d h1:28xWzPQ9bdGxKAAwQpZipZZ9Xz8kQcgMPF9cZnvMeuI=
|
github.com/briandowns/openweathermap v0.0.0-20180804155945-5f41b7c9d92d h1:28xWzPQ9bdGxKAAwQpZipZZ9Xz8kQcgMPF9cZnvMeuI=
|
||||||
github.com/briandowns/openweathermap v0.0.0-20180804155945-5f41b7c9d92d/go.mod h1:8g1Bgq9PbPpXIA3sdlWmWf2JpiWGJee/O4Q+ddYO6+k=
|
github.com/briandowns/openweathermap v0.0.0-20180804155945-5f41b7c9d92d/go.mod h1:8g1Bgq9PbPpXIA3sdlWmWf2JpiWGJee/O4Q+ddYO6+k=
|
||||||
github.com/cenkalti/backoff v2.2.0+incompatible h1:8qVbEY6GLhoLlLi1Ac2ZkVhedNwlhQXc39qivKp9+GI=
|
github.com/cenkalti/backoff v2.2.0+incompatible h1:8qVbEY6GLhoLlLi1Ac2ZkVhedNwlhQXc39qivKp9+GI=
|
||||||
github.com/cenkalti/backoff v2.2.0+incompatible/go.mod h1:b6Nc7NRH5C4aCISLry0tLnTjcuTEvoiqcWDdsU0sOGM=
|
github.com/cenkalti/backoff v2.2.0+incompatible/go.mod h1:b6Nc7NRH5C4aCISLry0tLnTjcuTEvoiqcWDdsU0sOGM=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/codegangsta/cli v1.20.0/go.mod h1:/qJNoX69yVSKu5o4jLyXAENLRyk1uhi7zkbQ3slBdOA=
|
github.com/codegangsta/cli v1.20.0/go.mod h1:/qJNoX69yVSKu5o4jLyXAENLRyk1uhi7zkbQ3slBdOA=
|
||||||
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
|
||||||
github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
|
||||||
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
|
||||||
github.com/coreos/etcd v3.3.15+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
|
||||||
github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
|
|
||||||
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
|
||||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
|
||||||
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
|
||||||
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
|
||||||
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
|
||||||
github.com/cosiner/argv v0.0.0-20170225145430-13bacc38a0a5/go.mod h1:p/NrK5tF6ICIly4qwEDsf6VDirFiWWz0FenfYBwJaKQ=
|
|
||||||
github.com/cosiner/argv v0.0.1/go.mod h1:p/NrK5tF6ICIly4qwEDsf6VDirFiWWz0FenfYBwJaKQ=
|
|
||||||
github.com/cpuguy83/go-md2man v1.0.8/go.mod h1:N6JayAiVKtlHSnuTCeuLSQVs75hb8q+dYQLjr7cDsKY=
|
|
||||||
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
|
|
||||||
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
|
|
||||||
github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ=
|
github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ=
|
||||||
github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk=
|
github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk=
|
||||||
github.com/darkSasori/todoist v0.0.0-20180703032645-ec6b38b374ab h1:T9EEtA6FSJMVypkNlKjrRo04u1j5Tk+gghymflyivDw=
|
|
||||||
github.com/darkSasori/todoist v0.0.0-20180703032645-ec6b38b374ab/go.mod h1:dD/81kphWGY78UVdEu2sqkrUMYfvtdKAMaACFYHGkfU=
|
|
||||||
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
@ -80,7 +58,6 @@ github.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda h1:NyywMz59neOoVR
|
|||||||
github.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
|
||||||
github.com/dlclark/regexp2 v1.1.6 h1:CqB4MjHw0MFCDj+PHHjiESmHX+N7t0tJzKvC6M97BRg=
|
github.com/dlclark/regexp2 v1.1.6 h1:CqB4MjHw0MFCDj+PHHjiESmHX+N7t0tJzKvC6M97BRg=
|
||||||
github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
|
github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
|
||||||
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
|
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
|
||||||
@ -98,6 +75,7 @@ github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkg
|
|||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
github.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
|
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
||||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||||
github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko=
|
github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko=
|
||||||
github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
|
github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
|
||||||
@ -105,30 +83,21 @@ github.com/gdamore/tcell v1.1.2/go.mod h1:h3kq4HO9l2On+V9ed8w8ewqQEmGCSSHOgQ+2h8
|
|||||||
github.com/gdamore/tcell v1.2.0 h1:ikixzsxc8K8o3V2/CEmyoEW8mJZaNYQQ3NP3VIQdUe4=
|
github.com/gdamore/tcell v1.2.0 h1:ikixzsxc8K8o3V2/CEmyoEW8mJZaNYQQ3NP3VIQdUe4=
|
||||||
github.com/gdamore/tcell v1.2.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM=
|
github.com/gdamore/tcell v1.2.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM=
|
||||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
|
||||||
github.com/go-delve/delve v1.3.0/go.mod h1:LLw6qJfIsRK9WcwV2IRRqsdlgrqzOeuGrQOCOIhDpt8=
|
|
||||||
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
|
||||||
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
|
||||||
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
|
|
||||||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
|
||||||
github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI=
|
github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI=
|
||||||
github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
|
github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
|
||||||
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
|
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
|
||||||
github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
|
github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
|
||||||
github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
|
github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
|
||||||
github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
|
github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
|
||||||
github.com/godbus/dbus v5.0.1+incompatible h1:fsDsnr/6MFSIm3kl6JJpq5pH+vO/rA5jUunalLnzSc8=
|
github.com/godbus/dbus v5.0.1+incompatible h1:fsDsnr/6MFSIm3kl6JJpq5pH+vO/rA5jUunalLnzSc8=
|
||||||
github.com/godbus/dbus v5.0.1+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
|
github.com/godbus/dbus v5.0.1+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
|
||||||
github.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
|
||||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
|
||||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
||||||
github.com/gogo/protobuf v1.3.0 h1:G8O7TerXerS4F6sx9OV7/nRfJdnXgHZu/S/7F2SN+UE=
|
github.com/gogo/protobuf v1.3.0 h1:G8O7TerXerS4F6sx9OV7/nRfJdnXgHZu/S/7F2SN+UE=
|
||||||
github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
||||||
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
|
||||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 h1:ZgQEtGgCBiWRM39fZuwSd1LwSqqSW0hOdXCYYDX0R3I=
|
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 h1:ZgQEtGgCBiWRM39fZuwSd1LwSqqSW0hOdXCYYDX0R3I=
|
||||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||||
@ -144,6 +113,7 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z
|
|||||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
|
github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
|
||||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
github.com/google/go-github/v26 v26.0.9 h1:RDv6xjhoFvGuAeYJwsIOC69nCfRna8cdoGw9hvX/Pc0=
|
github.com/google/go-github/v26 v26.0.9 h1:RDv6xjhoFvGuAeYJwsIOC69nCfRna8cdoGw9hvX/Pc0=
|
||||||
github.com/google/go-github/v26 v26.0.9/go.mod h1:v6/FmX9au22j4CtYxnMhJJkP+JfOQDXALk7hI+MPDNM=
|
github.com/google/go-github/v26 v26.0.9/go.mod h1:v6/FmX9au22j4CtYxnMhJJkP+JfOQDXALk7hI+MPDNM=
|
||||||
@ -156,8 +126,6 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/
|
|||||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||||
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||||
github.com/google/pprof v0.0.0-20190723021845-34ac40c74b70/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
|
||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
|
||||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
@ -169,71 +137,48 @@ github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d h1:7XGaL1e6bYS1
|
|||||||
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
||||||
github.com/gophercloud/gophercloud v0.0.0-20190126172459-c818fa66e4c8 h1:L9JPKrtsHMQ4VCRQfHvbbHBfB2Urn8xf6QZeXZ+OrN4=
|
github.com/gophercloud/gophercloud v0.0.0-20190126172459-c818fa66e4c8 h1:L9JPKrtsHMQ4VCRQfHvbbHBfB2Urn8xf6QZeXZ+OrN4=
|
||||||
github.com/gophercloud/gophercloud v0.0.0-20190126172459-c818fa66e4c8/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4=
|
github.com/gophercloud/gophercloud v0.0.0-20190126172459-c818fa66e4c8/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4=
|
||||||
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
|
||||||
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
|
||||||
github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
|
github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
|
||||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.11.1/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
|
github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
||||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||||
github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
|
||||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
|
||||||
github.com/hekmon/cunits v2.0.1+incompatible h1:yy/Wq5YvNtrweqfeRjvrvMdBMH6axBrlL8t7arLlm5A=
|
github.com/hekmon/cunits v2.0.1+incompatible h1:yy/Wq5YvNtrweqfeRjvrvMdBMH6axBrlL8t7arLlm5A=
|
||||||
github.com/hekmon/cunits v2.0.1+incompatible/go.mod h1:0QdfIGGkucx1VgStMNiHOYn84t/Ru65b+D3z1QszVPc=
|
github.com/hekmon/cunits v2.0.1+incompatible/go.mod h1:0QdfIGGkucx1VgStMNiHOYn84t/Ru65b+D3z1QszVPc=
|
||||||
github.com/hekmon/transmissionrpc v0.0.0-20190525133028-1d589625bacd h1:bZZYKxyrUV8EsKB5AjsPsJiWE7n0FDURijlSzYZVqAM=
|
github.com/hekmon/transmissionrpc v0.0.0-20190525133028-1d589625bacd h1:bZZYKxyrUV8EsKB5AjsPsJiWE7n0FDURijlSzYZVqAM=
|
||||||
github.com/hekmon/transmissionrpc v0.0.0-20190525133028-1d589625bacd/go.mod h1:b1R6hlzo+gEUNWGh53mw9mPWyYyODdZu/qlVqT+W+PU=
|
github.com/hekmon/transmissionrpc v0.0.0-20190525133028-1d589625bacd/go.mod h1:b1R6hlzo+gEUNWGh53mw9mPWyYyODdZu/qlVqT+W+PU=
|
||||||
|
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
||||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||||
github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q=
|
github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q=
|
||||||
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
|
||||||
github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=
|
github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=
|
||||||
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||||
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
|
||||||
github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||||
github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||||
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||||
github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo=
|
github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo=
|
||||||
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
|
||||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
|
||||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
|
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/logrusorgru/aurora v0.0.0-20190428105938-cea283e61946 h1:z+WaKrgu3kCpcdnbK9YG+JThpOCd1nU5jO5ToVmSlR4=
|
github.com/logrusorgru/aurora v0.0.0-20190428105938-cea283e61946 h1:z+WaKrgu3kCpcdnbK9YG+JThpOCd1nU5jO5ToVmSlR4=
|
||||||
github.com/logrusorgru/aurora v0.0.0-20190428105938-cea283e61946/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
|
github.com/logrusorgru/aurora v0.0.0-20190428105938-cea283e61946/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
|
||||||
github.com/lucasb-eyer/go-colorful v1.0.2 h1:mCMFu6PgSozg9tDNMMK3g18oJBX7oYGrC09mS6CXfO4=
|
github.com/lucasb-eyer/go-colorful v1.0.2 h1:mCMFu6PgSozg9tDNMMK3g18oJBX7oYGrC09mS6CXfO4=
|
||||||
github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s=
|
github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s=
|
||||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
|
||||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mattn/go-colorable v0.0.0-20170327083344-ded68f7a9561/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
|
||||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||||
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
|
||||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
|
||||||
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||||
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
github.com/mattn/go-isatty v0.0.9 h1:d5US/mDsogSGW37IV293h//ZFaeajb69h+EHFsv2xGg=
|
||||||
github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
|
github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
|
||||||
github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
|
||||||
github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y=
|
github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y=
|
||||||
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
|
||||||
github.com/microsoft/azure-devops-go-api v0.0.0-20190912142452-3207b4a469d3 h1:FhI3QJOcd1CaXz2+DeFHUNEsS47+gxDERzVhexlTGvg=
|
|
||||||
github.com/microsoft/azure-devops-go-api v0.0.0-20190912142452-3207b4a469d3/go.mod h1:HfrxIH2ObkhL6NepJKAuEwUYY8kNvspOWDp6HDRIRQs=
|
|
||||||
github.com/microsoft/azure-devops-go-api/azuredevops v0.0.0-20190912142452-3207b4a469d3 h1:Q42uNxLRytr5ynbRkqspq37TjcfnuXwKmrS9APJv/Bw=
|
github.com/microsoft/azure-devops-go-api/azuredevops v0.0.0-20190912142452-3207b4a469d3 h1:Q42uNxLRytr5ynbRkqspq37TjcfnuXwKmrS9APJv/Bw=
|
||||||
github.com/microsoft/azure-devops-go-api/azuredevops v0.0.0-20190912142452-3207b4a469d3/go.mod h1:PoGiBqKSQK1vIfQ+yVaFcGjDySHvym6FM1cNYnwzbrY=
|
github.com/microsoft/azure-devops-go-api/azuredevops v0.0.0-20190912142452-3207b4a469d3/go.mod h1:PoGiBqKSQK1vIfQ+yVaFcGjDySHvym6FM1cNYnwzbrY=
|
||||||
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
|
||||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
|
||||||
github.com/mmcdole/gofeed v1.0.0-beta2.0.20190420154928-0e68beaf6fdf h1:poo3e5STwUVGyyUX0e3fHQUwT1tV8IYEFUUpYd/7LuA=
|
github.com/mmcdole/gofeed v1.0.0-beta2.0.20190420154928-0e68beaf6fdf h1:poo3e5STwUVGyyUX0e3fHQUwT1tV8IYEFUUpYd/7LuA=
|
||||||
github.com/mmcdole/gofeed v1.0.0-beta2.0.20190420154928-0e68beaf6fdf/go.mod h1:tkVcyzS3qVMlQrQxJoEH1hkTiuo9a8emDzkMi7TZBu0=
|
github.com/mmcdole/gofeed v1.0.0-beta2.0.20190420154928-0e68beaf6fdf/go.mod h1:tkVcyzS3qVMlQrQxJoEH1hkTiuo9a8emDzkMi7TZBu0=
|
||||||
github.com/mmcdole/goxpp v0.0.0-20181012175147-0068e33feabf h1:sWGE2v+hO0Nd4yFU/S/mDBM5plIU8v/Qhfz41hkDIAI=
|
github.com/mmcdole/goxpp v0.0.0-20181012175147-0068e33feabf h1:sWGE2v+hO0Nd4yFU/S/mDBM5plIU8v/Qhfz41hkDIAI=
|
||||||
@ -246,53 +191,29 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN
|
|||||||
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
|
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
|
||||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||||
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
|
||||||
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
|
||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
||||||
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
|
|
||||||
github.com/olebedev/config v0.0.0-20190528211619-364964f3a8e4 h1:JnVsYEQzhEcOspy6ngIYNF2u0h2mjkXZptzX0IzZQ4g=
|
github.com/olebedev/config v0.0.0-20190528211619-364964f3a8e4 h1:JnVsYEQzhEcOspy6ngIYNF2u0h2mjkXZptzX0IzZQ4g=
|
||||||
github.com/olebedev/config v0.0.0-20190528211619-364964f3a8e4/go.mod h1:RL5+WRxWTAXqqCi9i+eZlHrUtO7AQujUqWi+xMohmc4=
|
github.com/olebedev/config v0.0.0-20190528211619-364964f3a8e4/go.mod h1:RL5+WRxWTAXqqCi9i+eZlHrUtO7AQujUqWi+xMohmc4=
|
||||||
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
|
github.com/onsi/ginkgo v1.10.1 h1:q/mM8GF/n0shIN8SaAZ0V+jnLPzen6WIVZdiwrRlMlo=
|
||||||
github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
|
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
|
||||||
github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||||
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||||
|
github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
|
||||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
|
github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
|
||||||
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
|
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||||
github.com/peterh/liner v0.0.0-20170317030525-88609521dc4b/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
|
|
||||||
github.com/peterh/liner v1.1.0/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0=
|
|
||||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/profile v0.0.0-20170413231811-06b906832ed0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
|
|
||||||
github.com/pkg/profile v1.3.0 h1:OQIvuDgm00gWVWGTf4m4mCt6W1/0YqU7Ntg0mySWgaI=
|
github.com/pkg/profile v1.3.0 h1:OQIvuDgm00gWVWGTf4m4mCt6W1/0YqU7Ntg0mySWgaI=
|
||||||
github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
|
github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
|
||||||
github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
|
||||||
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
|
|
||||||
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
|
|
||||||
github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g=
|
|
||||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
|
||||||
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
|
||||||
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
|
|
||||||
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
|
||||||
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
|
||||||
github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc=
|
|
||||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
|
||||||
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
|
||||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
|
||||||
github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
|
|
||||||
github.com/prometheus/procfs v0.0.4/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
|
|
||||||
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
|
|
||||||
github.com/radovskyb/watcher v1.0.6 h1:8WIQ9UxEYMZjem1OwU7dVH94DXXk9mAIE1i8eqHD+IY=
|
github.com/radovskyb/watcher v1.0.6 h1:8WIQ9UxEYMZjem1OwU7dVH94DXXk9mAIE1i8eqHD+IY=
|
||||||
github.com/radovskyb/watcher v1.0.6/go.mod h1:78okwvY5wPdzcb1UYnip1pvrZNIVEIh/Cm+ZuvsUYIg=
|
github.com/radovskyb/watcher v1.0.6/go.mod h1:78okwvY5wPdzcb1UYnip1pvrZNIVEIh/Cm+ZuvsUYIg=
|
||||||
github.com/rivo/tview v0.0.0-20190829161255-f8bc69b90341 h1:d2Z5U4d3fenPRFFweaMCogbXiRywM5kgYtu20/hol3M=
|
github.com/rivo/tview v0.0.0-20190829161255-f8bc69b90341 h1:d2Z5U4d3fenPRFFweaMCogbXiRywM5kgYtu20/hol3M=
|
||||||
@ -300,106 +221,52 @@ github.com/rivo/tview v0.0.0-20190829161255-f8bc69b90341/go.mod h1:+rKjP5+h9HMwW
|
|||||||
github.com/rivo/uniseg v0.0.0-20190513083848-b9f5b9457d44/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
github.com/rivo/uniseg v0.0.0-20190513083848-b9f5b9457d44/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY=
|
github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY=
|
||||||
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
|
||||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
|
||||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
|
||||||
github.com/rogpeppe/go-internal v1.3.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
|
||||||
github.com/russross/blackfriday v0.0.0-20180428102519-11635eb403ff/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
|
||||||
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
|
||||||
github.com/russross/blackfriday v2.0.0+incompatible/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
|
||||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
||||||
github.com/shirou/gopsutil v2.18.12+incompatible h1:1eaJvGomDnH74/5cF4CTmTbLHAriGFsTZppLXDX93OM=
|
github.com/shirou/gopsutil v2.18.12+incompatible h1:1eaJvGomDnH74/5cF4CTmTbLHAriGFsTZppLXDX93OM=
|
||||||
github.com/shirou/gopsutil v2.18.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
|
github.com/shirou/gopsutil v2.18.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
|
||||||
github.com/sirupsen/logrus v0.0.0-20180523074243-ea8897e79973/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
|
|
||||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
|
||||||
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
|
||||||
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
|
||||||
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
|
||||||
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
|
||||||
github.com/spf13/cobra v0.0.0-20170417170307-b6cb39589372/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
|
||||||
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
|
|
||||||
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
|
||||||
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
|
|
||||||
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/pflag v0.0.0-20170417173400-9e4c21054fa1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
|
||||||
github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
|
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
|
||||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
|
|
||||||
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
|
|
||||||
github.com/sticreations/spotigopher v0.0.0-20181009182052-98632f6f94b0 h1:WWyBZL7bRdl7Do39EvkJmBFXT11uXLACy0cJHHOZ7IE=
|
github.com/sticreations/spotigopher v0.0.0-20181009182052-98632f6f94b0 h1:WWyBZL7bRdl7Do39EvkJmBFXT11uXLACy0cJHHOZ7IE=
|
||||||
github.com/sticreations/spotigopher v0.0.0-20181009182052-98632f6f94b0/go.mod h1:DjuRbAVIoxD4Lv7aE12Km2XYYYKrtXXNbpivYwXv2HE=
|
github.com/sticreations/spotigopher v0.0.0-20181009182052-98632f6f94b0/go.mod h1:DjuRbAVIoxD4Lv7aE12Km2XYYYKrtXXNbpivYwXv2HE=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
|
||||||
github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
|
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
|
||||||
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
|
||||||
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
|
|
||||||
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
|
|
||||||
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
|
|
||||||
github.com/wtfutil/todoist v0.0.0-20180625015933-97395e581a76 h1:8pVwscQmyw1Dcca9R8QuHvLFTHr4h6MDlgbLM1A+WLA=
|
github.com/wtfutil/todoist v0.0.0-20180625015933-97395e581a76 h1:8pVwscQmyw1Dcca9R8QuHvLFTHr4h6MDlgbLM1A+WLA=
|
||||||
github.com/wtfutil/todoist v0.0.0-20180625015933-97395e581a76/go.mod h1:YuuGLJSsTK6DGBD5Zaf3J8LSMfpEC2WtzYPey3XVOdI=
|
github.com/wtfutil/todoist v0.0.0-20180625015933-97395e581a76/go.mod h1:YuuGLJSsTK6DGBD5Zaf3J8LSMfpEC2WtzYPey3XVOdI=
|
||||||
github.com/wtfutil/todoist v0.0.0-20180625015933-ab3a9f0b9d55 h1:vgdZK2w+IZiv18PsEuFeGwaGwVL76Nh4cWOqk10jZ+I=
|
|
||||||
github.com/wtfutil/todoist v0.0.0-20180625015933-ab3a9f0b9d55/go.mod h1:YuuGLJSsTK6DGBD5Zaf3J8LSMfpEC2WtzYPey3XVOdI=
|
|
||||||
github.com/xanzy/go-gitlab v0.18.0 h1:LybNSWSIw8BK+GnxuETAhUXEzzh5rHsHjopqVkGJXRE=
|
github.com/xanzy/go-gitlab v0.18.0 h1:LybNSWSIw8BK+GnxuETAhUXEzzh5rHsHjopqVkGJXRE=
|
||||||
github.com/xanzy/go-gitlab v0.18.0/go.mod h1:LSfUQ9OPDnwRqulJk2HcWaAiFfCzaknyeGvjQI67MbE=
|
github.com/xanzy/go-gitlab v0.18.0/go.mod h1:LSfUQ9OPDnwRqulJk2HcWaAiFfCzaknyeGvjQI67MbE=
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
|
||||||
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
|
||||||
github.com/yfronto/newrelic v0.0.0-20180622232530-7c9c2852e8f9 h1:MYjp+3xEmdmEs41pec7vbPtMg4Fe+za4FFA1lXV6RLo=
|
github.com/yfronto/newrelic v0.0.0-20180622232530-7c9c2852e8f9 h1:MYjp+3xEmdmEs41pec7vbPtMg4Fe+za4FFA1lXV6RLo=
|
||||||
github.com/yfronto/newrelic v0.0.0-20180622232530-7c9c2852e8f9/go.mod h1:0AAHfU8E7myJ9nLrWxqgrUDCCqNjTQ4/7cRLvYTHBnw=
|
github.com/yfronto/newrelic v0.0.0-20180622232530-7c9c2852e8f9/go.mod h1:0AAHfU8E7myJ9nLrWxqgrUDCCqNjTQ4/7cRLvYTHBnw=
|
||||||
github.com/zmb3/spotify v0.0.0-20190520155326-158b1863f5b5 h1:UagwVflTu8e//SSwujymFEz0G9MUP5/fJJLCzdQy3as=
|
github.com/zmb3/spotify v0.0.0-20190520155326-158b1863f5b5 h1:UagwVflTu8e//SSwujymFEz0G9MUP5/fJJLCzdQy3as=
|
||||||
github.com/zmb3/spotify v0.0.0-20190520155326-158b1863f5b5/go.mod h1:pHsWAmY9PfX7i/uwPZkmWrebc8JbK8FppKbvyevwzSU=
|
github.com/zmb3/spotify v0.0.0-20190520155326-158b1863f5b5/go.mod h1:pHsWAmY9PfX7i/uwPZkmWrebc8JbK8FppKbvyevwzSU=
|
||||||
github.com/zorkian/go-datadog-api v2.21.0+incompatible h1:0VoM99qhHpD3FusaEaeD3C6HikYgesr8cSSknq1vmTY=
|
github.com/zorkian/go-datadog-api v2.21.0+incompatible h1:0VoM99qhHpD3FusaEaeD3C6HikYgesr8cSSknq1vmTY=
|
||||||
github.com/zorkian/go-datadog-api v2.21.0+incompatible/go.mod h1:PkXwHX9CUQa/FpB9ZwAD45N1uhCW4MT/Wj7m36PbKss=
|
github.com/zorkian/go-datadog-api v2.21.0+incompatible/go.mod h1:PkXwHX9CUQa/FpB9ZwAD45N1uhCW4MT/Wj7m36PbKss=
|
||||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
|
||||||
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
|
||||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||||
go.opencensus.io v0.22.1 h1:8dP3SGL7MPB94crU3bEPplMPe83FI4EouesJUeFHv50=
|
go.opencensus.io v0.22.1 h1:8dP3SGL7MPB94crU3bEPplMPe83FI4EouesJUeFHv50=
|
||||||
go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA=
|
go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA=
|
||||||
go.starlark.net v0.0.0-20190702223751-32f345186213/go.mod h1:c1/X6cHgvdXj6pUlmWKMkuqRnW4K8x2vwt6JAaaircg=
|
|
||||||
go.starlark.net v0.0.0-20190820173200-988906f77f65/go.mod h1:c1/X6cHgvdXj6pUlmWKMkuqRnW4K8x2vwt6JAaaircg=
|
|
||||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
|
||||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
|
||||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
|
||||||
golang.org/x/arch v0.0.0-20171004143515-077ac972c2e4/go.mod h1:cYlCBUl1MsqxdiKgmc4uh7TxZfWSFLOGSRR090WDxt8=
|
|
||||||
golang.org/x/arch v0.0.0-20190815191158-8a70ba74b3a1/go.mod h1:flIaEI6LNU6xOCD5PaJvn9wGP0agmIOqjrtsKGRguv4=
|
|
||||||
golang.org/x/crypto v0.0.0-20180614174826-fd5f17ee7299/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
|
||||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
|
||||||
golang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
|
||||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472 h1:Gv7RPwsi3eZ2Fgewe3CBsuOebPwO27PoXzRpJPsvSSM=
|
golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472 h1:Gv7RPwsi3eZ2Fgewe3CBsuOebPwO27PoXzRpJPsvSSM=
|
||||||
golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
|
||||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||||
golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4=
|
|
||||||
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
|
|
||||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
|
||||||
golang.org/x/image v0.0.0-20190902063713-cb417be4ba39/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
golang.org/x/lint v0.0.0-20190511005446-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||||
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
|
|
||||||
golang.org/x/mobile v0.0.0-20190830201351-c6da95954960/go.mod h1:mJOp/i0LXPxJZ9weeIadcPqKVfS05Ai7m6/t9z1Hs/Y=
|
|
||||||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
|
||||||
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
|
|
||||||
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -415,7 +282,6 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn
|
|||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
@ -433,28 +299,20 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20190427212804-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190902133755-9109b7679e13 h1:tdsQdquKbTNMsSZLqnLELJGzCANp9oXhu6zFBW6ODx4=
|
golang.org/x/sys v0.0.0-20190902133755-9109b7679e13 h1:tdsQdquKbTNMsSZLqnLELJGzCANp9oXhu6zFBW6ODx4=
|
||||||
golang.org/x/sys v0.0.0-20190902133755-9109b7679e13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190902133755-9109b7679e13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@ -469,11 +327,9 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb
|
|||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20190513212739-9d24e82272b4 h1:RMGusaKverhgGR5KBERIKiTyWoWHRd84GCtsNlvLvIo=
|
golang.org/x/time v0.0.0-20190513212739-9d24e82272b4 h1:RMGusaKverhgGR5KBERIKiTyWoWHRd84GCtsNlvLvIo=
|
||||||
golang.org/x/time v0.0.0-20190513212739-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20190513212739-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20181120060634-fc4f04983f62/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
@ -483,11 +339,7 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBn
|
|||||||
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20190903025054-afe7f8212f0d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
|
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
|
||||||
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
|
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
|
||||||
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
|
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
|
||||||
@ -510,26 +362,21 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2El
|
|||||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
google.golang.org/grpc v1.23.0 h1:AzbTB6ux+okLTzP8Ru1Xs41C303zdcfEht7MQnYJt5A=
|
google.golang.org/grpc v1.23.0 h1:AzbTB6ux+okLTzP8Ru1Xs41C303zdcfEht7MQnYJt5A=
|
||||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||||
gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
|
|
||||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
|
||||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||||
gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=
|
|
||||||
gopkg.in/inf.v0 v0.9.0 h1:3zYtXIO92bvsdS3ggAdA8Gb4Azj0YU+TVY1uGYNFA8o=
|
gopkg.in/inf.v0 v0.9.0 h1:3zYtXIO92bvsdS3ggAdA8Gb4Azj0YU+TVY1uGYNFA8o=
|
||||||
gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||||
gopkg.in/jarcoal/httpmock.v1 v1.0.0-20180615191036-16f9a43967d6/go.mod h1:d3R+NllX3X5e0zlG1Rful3uLvsGC/Q3OHut5464DEQw=
|
|
||||||
gopkg.in/jarcoal/httpmock.v1 v1.0.0-20190314184232-a8ac0a50d0b5 h1:G5L6mi3mG1Ms5pQfIiUJEMNV64fqgQlpxlPf+4phLmw=
|
gopkg.in/jarcoal/httpmock.v1 v1.0.0-20190314184232-a8ac0a50d0b5 h1:G5L6mi3mG1Ms5pQfIiUJEMNV64fqgQlpxlPf+4phLmw=
|
||||||
gopkg.in/jarcoal/httpmock.v1 v1.0.0-20190314184232-a8ac0a50d0b5/go.mod h1:d3R+NllX3X5e0zlG1Rful3uLvsGC/Q3OHut5464DEQw=
|
gopkg.in/jarcoal/httpmock.v1 v1.0.0-20190314184232-a8ac0a50d0b5/go.mod h1:d3R+NllX3X5e0zlG1Rful3uLvsGC/Q3OHut5464DEQw=
|
||||||
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||||
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
|
|
||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
@ -537,13 +384,11 @@ honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWh
|
|||||||
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
|
||||||
k8s.io/api v0.0.0-20190620084959-7cf5895f2711 h1:BblVYz/wE5WtBsD/Gvu54KyBUTJMflolzc5I2DTvh50=
|
k8s.io/api v0.0.0-20190620084959-7cf5895f2711 h1:BblVYz/wE5WtBsD/Gvu54KyBUTJMflolzc5I2DTvh50=
|
||||||
k8s.io/api v0.0.0-20190620084959-7cf5895f2711/go.mod h1:TBhBqb1AWbBQbW3XRusr7n7E4v2+5ZY8r8sAMnyFC5A=
|
k8s.io/api v0.0.0-20190620084959-7cf5895f2711/go.mod h1:TBhBqb1AWbBQbW3XRusr7n7E4v2+5ZY8r8sAMnyFC5A=
|
||||||
k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719/go.mod h1:I4A+glKBHiTgiEjQiCCQfCAIcIMFGt291SmsvcrFzJA=
|
k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719/go.mod h1:I4A+glKBHiTgiEjQiCCQfCAIcIMFGt291SmsvcrFzJA=
|
||||||
k8s.io/apimachinery v0.0.0-20190802060556-6fa4771c83b3 h1:ov3gR/oGSdOkfEetREkvyrTMbEUDAADeF9WMoihPv0w=
|
k8s.io/apimachinery v0.0.0-20190802060556-6fa4771c83b3 h1:ov3gR/oGSdOkfEetREkvyrTMbEUDAADeF9WMoihPv0w=
|
||||||
k8s.io/apimachinery v0.0.0-20190802060556-6fa4771c83b3/go.mod h1:+ntn62igV2hyNj7/0brOvXSMONE2KxcePkSxK7/9FFQ=
|
k8s.io/apimachinery v0.0.0-20190802060556-6fa4771c83b3/go.mod h1:+ntn62igV2hyNj7/0brOvXSMONE2KxcePkSxK7/9FFQ=
|
||||||
k8s.io/client-go v11.0.0+incompatible h1:LBbX2+lOwY9flffWlJM7f1Ct8V2SRNiMRDFeiwnJo9o=
|
|
||||||
k8s.io/client-go v12.0.0+incompatible h1:YlJxncpeVUC98/WMZKC3JZGk/OXQWCZjAB4Xr3B17RY=
|
k8s.io/client-go v12.0.0+incompatible h1:YlJxncpeVUC98/WMZKC3JZGk/OXQWCZjAB4Xr3B17RY=
|
||||||
k8s.io/client-go v12.0.0+incompatible/go.mod h1:E95RaSlHr79aHaX0aGSwcPNfygDiPKOVXdmivCIZT0k=
|
k8s.io/client-go v12.0.0+incompatible/go.mod h1:E95RaSlHr79aHaX0aGSwcPNfygDiPKOVXdmivCIZT0k=
|
||||||
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||||
@ -555,7 +400,6 @@ k8s.io/kube-openapi v0.0.0-20190709113604-33be087ad058/go.mod h1:nfDlWeOsu3pUf4y
|
|||||||
k8s.io/utils v0.0.0-20190221042446-c2654d5206da h1:ElyM7RPonbKnQqOcw7dG2IK5uvQQn3b/WPHqD5mBvP4=
|
k8s.io/utils v0.0.0-20190221042446-c2654d5206da h1:ElyM7RPonbKnQqOcw7dG2IK5uvQQn3b/WPHqD5mBvP4=
|
||||||
k8s.io/utils v0.0.0-20190221042446-c2654d5206da/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=
|
k8s.io/utils v0.0.0-20190221042446-c2654d5206da/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=
|
||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
|
|
||||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
|
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
|
||||||
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
|
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
|
||||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
||||||
|
21
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/LICENSE
generated
vendored
Normal file
21
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
|
||||||
|
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
|
3234
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/build/client.go
generated
vendored
Normal file
3234
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/build/client.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2301
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/build/models.go
generated
vendored
Normal file
2301
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/build/models.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
417
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/client.go
generated
vendored
Normal file
417
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/client.go
generated
vendored
Normal file
@ -0,0 +1,417 @@
|
|||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
|
package azuredevops
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"io"
|
||||||
|
"io/ioutil"
|
||||||
|
"net/http"
|
||||||
|
"net/url"
|
||||||
|
"regexp"
|
||||||
|
"runtime"
|
||||||
|
"strings"
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// header keys
|
||||||
|
headerKeyAccept = "Accept"
|
||||||
|
headerKeyAuthorization = "Authorization"
|
||||||
|
headerKeyContentType = "Content-Type"
|
||||||
|
HeaderKeyContinuationToken = "X-MS-ContinuationToken"
|
||||||
|
headerKeyFedAuthRedirect = "X-TFS-FedAuthRedirect"
|
||||||
|
headerKeyForceMsaPassThrough = "X-VSS-ForceMsaPassThrough"
|
||||||
|
headerKeySession = "X-TFS-Session"
|
||||||
|
headerUserAgent = "User-Agent"
|
||||||
|
|
||||||
|
// media types
|
||||||
|
MediaTypeTextPlain = "text/plain"
|
||||||
|
MediaTypeApplicationJson = "application/json"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Unique session id to be used by all requests of this session.
|
||||||
|
var SessionId = uuid.New().String()
|
||||||
|
|
||||||
|
// ApiResourceLocation Cache by Url
|
||||||
|
var apiResourceLocationCache = make(map[string]*map[uuid.UUID]ApiResourceLocation)
|
||||||
|
var apiResourceLocationCacheLock = sync.RWMutex{}
|
||||||
|
|
||||||
|
// Base user agent string. The UserAgent set on the connection will be appended to this.
|
||||||
|
var baseUserAgent = "go/" + runtime.Version() + " (" + runtime.GOOS + " " + runtime.GOARCH + ") azure-devops-go-api/0.0.0" // todo: get real version
|
||||||
|
|
||||||
|
func NewClient(connection *Connection, baseUrl string) *Client {
|
||||||
|
client := &http.Client{}
|
||||||
|
if connection.Timeout != nil {
|
||||||
|
client.Timeout = *connection.Timeout
|
||||||
|
}
|
||||||
|
return &Client{
|
||||||
|
baseUrl: baseUrl,
|
||||||
|
client: client,
|
||||||
|
authorization: connection.AuthorizationString,
|
||||||
|
suppressFedAuthRedirect: connection.SuppressFedAuthRedirect,
|
||||||
|
forceMsaPassThrough: connection.ForceMsaPassThrough,
|
||||||
|
userAgent: connection.UserAgent,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
baseUrl string
|
||||||
|
client *http.Client
|
||||||
|
authorization string
|
||||||
|
suppressFedAuthRedirect bool
|
||||||
|
forceMsaPassThrough bool
|
||||||
|
userAgent string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) SendRequest(request *http.Request) (response *http.Response, err error) {
|
||||||
|
resp, err := client.client.Do(request) // todo: add retry logic
|
||||||
|
if resp != nil && (resp.StatusCode < 200 || resp.StatusCode >= 300) {
|
||||||
|
err = client.UnwrapError(resp)
|
||||||
|
}
|
||||||
|
return resp, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) Send(ctx context.Context,
|
||||||
|
httpMethod string,
|
||||||
|
locationId uuid.UUID,
|
||||||
|
apiVersion string,
|
||||||
|
routeValues map[string]string,
|
||||||
|
queryParameters url.Values,
|
||||||
|
body io.Reader,
|
||||||
|
mediaType string,
|
||||||
|
acceptMediaType string,
|
||||||
|
additionalHeaders map[string]string) (response *http.Response, err error) {
|
||||||
|
location, err := client.getResourceLocation(ctx, locationId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
generatedUrl := client.GenerateUrl(location, routeValues, queryParameters)
|
||||||
|
fullUrl := combineUrl(client.baseUrl, generatedUrl)
|
||||||
|
negotiatedVersion, err := negotiateRequestVersion(location, apiVersion)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
req, err := client.CreateRequestMessage(ctx, httpMethod, fullUrl, negotiatedVersion, body, mediaType, acceptMediaType, additionalHeaders)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
resp, err := client.SendRequest(req)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set session if one was supplied in the response.
|
||||||
|
session, ok := resp.Header[headerKeySession]
|
||||||
|
if ok && len(session) > 0 {
|
||||||
|
SessionId = session[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
return resp, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) GenerateUrl(apiResourceLocation *ApiResourceLocation, routeValues map[string]string, queryParameters url.Values) (request string) {
|
||||||
|
builtUrl := *apiResourceLocation.RouteTemplate
|
||||||
|
if routeValues == nil {
|
||||||
|
routeValues = make(map[string]string)
|
||||||
|
}
|
||||||
|
routeValues["area"] = *apiResourceLocation.Area
|
||||||
|
routeValues["resource"] = *apiResourceLocation.ResourceName
|
||||||
|
builtUrl = transformRouteTemplate(builtUrl, routeValues)
|
||||||
|
if queryParameters != nil && len(queryParameters) > 0 {
|
||||||
|
builtUrl += "?" + queryParameters.Encode()
|
||||||
|
}
|
||||||
|
return builtUrl
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) CreateRequestMessage(ctx context.Context,
|
||||||
|
httpMethod string,
|
||||||
|
url string,
|
||||||
|
apiVersion string,
|
||||||
|
body io.Reader,
|
||||||
|
mediaType string,
|
||||||
|
acceptMediaType string,
|
||||||
|
additionalHeaders map[string]string) (request *http.Request, err error) {
|
||||||
|
req, err := http.NewRequest(httpMethod, url, body)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if ctx != nil {
|
||||||
|
req = req.WithContext(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
if client.authorization != "" {
|
||||||
|
req.Header.Add(headerKeyAuthorization, client.authorization)
|
||||||
|
}
|
||||||
|
accept := acceptMediaType
|
||||||
|
if apiVersion != "" {
|
||||||
|
accept += ";api-version=" + apiVersion
|
||||||
|
}
|
||||||
|
req.Header.Add(headerKeyAccept, accept)
|
||||||
|
if mediaType != "" {
|
||||||
|
req.Header.Add(headerKeyContentType, mediaType+";charset=utf-8")
|
||||||
|
}
|
||||||
|
if client.suppressFedAuthRedirect {
|
||||||
|
req.Header.Add(headerKeyFedAuthRedirect, "Suppress")
|
||||||
|
}
|
||||||
|
if client.forceMsaPassThrough {
|
||||||
|
req.Header.Add(headerKeyForceMsaPassThrough, "true")
|
||||||
|
}
|
||||||
|
|
||||||
|
// set session if it has not already been set
|
||||||
|
_, ok := req.Header[headerKeySession]
|
||||||
|
if !ok {
|
||||||
|
req.Header.Add(headerKeySession, SessionId)
|
||||||
|
}
|
||||||
|
|
||||||
|
userAgent := baseUserAgent
|
||||||
|
if client.userAgent != "" {
|
||||||
|
userAgent += " " + client.userAgent
|
||||||
|
}
|
||||||
|
req.Header.Add(headerUserAgent, userAgent)
|
||||||
|
|
||||||
|
for key, value := range additionalHeaders {
|
||||||
|
req.Header.Add(key, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
return req, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) getResourceLocation(ctx context.Context, locationId uuid.UUID) (*ApiResourceLocation, error) {
|
||||||
|
locationsMap, ok := getApiResourceLocationCache(client.baseUrl)
|
||||||
|
if !ok {
|
||||||
|
locations, err := client.getResourceLocationsFromServer(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
newMap := make(map[uuid.UUID]ApiResourceLocation)
|
||||||
|
locationsMap = &newMap
|
||||||
|
for _, locationEntry := range locations {
|
||||||
|
(*locationsMap)[*locationEntry.Id] = locationEntry
|
||||||
|
}
|
||||||
|
|
||||||
|
setApiResourceLocationCache(client.baseUrl, locationsMap)
|
||||||
|
}
|
||||||
|
|
||||||
|
location, ok := (*locationsMap)[locationId]
|
||||||
|
if ok {
|
||||||
|
return &location, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, &LocationIdNotRegisteredError{locationId, client.baseUrl}
|
||||||
|
}
|
||||||
|
|
||||||
|
func getApiResourceLocationCache(url string) (*map[uuid.UUID]ApiResourceLocation, bool) {
|
||||||
|
apiResourceLocationCacheLock.RLock()
|
||||||
|
defer apiResourceLocationCacheLock.RUnlock()
|
||||||
|
locationsMap, ok := apiResourceLocationCache[url]
|
||||||
|
return locationsMap, ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func setApiResourceLocationCache(url string, locationsMap *map[uuid.UUID]ApiResourceLocation) {
|
||||||
|
apiResourceLocationCacheLock.Lock()
|
||||||
|
defer apiResourceLocationCacheLock.Unlock()
|
||||||
|
apiResourceLocationCache[url] = locationsMap
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) getResourceLocationsFromServer(ctx context.Context) ([]ApiResourceLocation, error) {
|
||||||
|
optionsUri := combineUrl(client.baseUrl, "_apis")
|
||||||
|
request, err := client.CreateRequestMessage(ctx, http.MethodOptions, optionsUri, "", nil, "", MediaTypeApplicationJson, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
resp, err := client.SendRequest(request)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set session if one was supplied in the response.
|
||||||
|
session, ok := resp.Header[headerKeySession]
|
||||||
|
if ok && len(session) > 0 {
|
||||||
|
SessionId = session[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
if resp != nil && (resp.StatusCode < 200 || resp.StatusCode >= 300) {
|
||||||
|
return nil, client.UnwrapError(resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
var locations []ApiResourceLocation
|
||||||
|
err = client.UnmarshalCollectionBody(resp, &locations)
|
||||||
|
|
||||||
|
return locations, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Examples of api-version: 5.1, 5.1-preview, 5.1-preview.1
|
||||||
|
var apiVersionRegEx = regexp.MustCompile(`(\d+(\.\d)?)(-preview(.(\d+))?)?`)
|
||||||
|
|
||||||
|
func combineUrl(part1 string, part2 string) string {
|
||||||
|
return strings.TrimRight(part1, "/") + "/" + strings.TrimLeft(part2, "/")
|
||||||
|
}
|
||||||
|
|
||||||
|
func transformRouteTemplate(routeTemplate string, routeValues map[string]string) string {
|
||||||
|
newTemplate := ""
|
||||||
|
routeTemplate = strings.Replace(routeTemplate, "{*", "{", -1)
|
||||||
|
segments := strings.Split(routeTemplate, "/")
|
||||||
|
for _, segment := range segments {
|
||||||
|
length := len(segment)
|
||||||
|
if length <= 2 || segment[0] != '{' || segment[length-1] != '}' {
|
||||||
|
newTemplate += "/" + segment
|
||||||
|
} else {
|
||||||
|
value, ok := routeValues[segment[1:length-1]]
|
||||||
|
if ok {
|
||||||
|
newTemplate += "/" + url.PathEscape(value)
|
||||||
|
}
|
||||||
|
// else this is an optional parameter that has not been supplied, so don't add it back
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// following covers oddball templates with segments that include the token and additional constants
|
||||||
|
for key, value := range routeValues {
|
||||||
|
newTemplate = strings.Replace(newTemplate, "{"+key+"}", value, -1)
|
||||||
|
}
|
||||||
|
return newTemplate
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) UnmarshalBody(response *http.Response, v interface{}) (err error) {
|
||||||
|
if response != nil && response.Body != nil {
|
||||||
|
var err error
|
||||||
|
defer func() {
|
||||||
|
if closeError := response.Body.Close(); closeError != nil {
|
||||||
|
err = closeError
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
body, err := ioutil.ReadAll(response.Body)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
body = trimByteOrderMark(body)
|
||||||
|
return json.Unmarshal(body, &v)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) UnmarshalCollectionBody(response *http.Response, v interface{}) (err error) {
|
||||||
|
if response != nil && response.Body != nil {
|
||||||
|
var err error
|
||||||
|
defer func() {
|
||||||
|
if closeError := response.Body.Close(); closeError != nil {
|
||||||
|
err = closeError
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
body, err := ioutil.ReadAll(response.Body)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
body = trimByteOrderMark(body)
|
||||||
|
err = client.UnmarshalCollectionJson(body, v)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) UnmarshalCollectionJson(jsonValue []byte, v interface{}) (err error) {
|
||||||
|
var wrappedResponse VssJsonCollectionWrapper
|
||||||
|
err = json.Unmarshal(jsonValue, &wrappedResponse)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
value, err := json.Marshal(wrappedResponse.Value) // todo: investigate better way to do this.
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return json.Unmarshal(value, &v)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns slice of body without utf-8 byte order mark.
|
||||||
|
// If BOM does not exist body is returned unchanged.
|
||||||
|
func trimByteOrderMark(body []byte) []byte {
|
||||||
|
return bytes.TrimPrefix(body, []byte("\xef\xbb\xbf"))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) UnwrapError(response *http.Response) (err error) {
|
||||||
|
if response.ContentLength == 0 {
|
||||||
|
message := "Request returned status: " + response.Status
|
||||||
|
return &WrappedError{
|
||||||
|
Message: &message,
|
||||||
|
StatusCode: &response.StatusCode,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
if closeError := response.Body.Close(); closeError != nil {
|
||||||
|
err = closeError
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
body, err := ioutil.ReadAll(response.Body)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
body = trimByteOrderMark(body)
|
||||||
|
|
||||||
|
contentType, ok := response.Header[headerKeyContentType]
|
||||||
|
if ok && len(contentType) > 0 && strings.Index(contentType[0], MediaTypeTextPlain) >= 0 {
|
||||||
|
message := string(body)
|
||||||
|
statusCode := response.StatusCode
|
||||||
|
return WrappedError{Message: &message, StatusCode: &statusCode}
|
||||||
|
}
|
||||||
|
|
||||||
|
var wrappedError WrappedError
|
||||||
|
err = json.Unmarshal(body, &wrappedError)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if wrappedError.Message == nil {
|
||||||
|
var wrappedImproperError WrappedImproperError
|
||||||
|
err = json.Unmarshal(body, &wrappedImproperError)
|
||||||
|
if err == nil && wrappedImproperError.Value != nil && wrappedImproperError.Value.Message != nil {
|
||||||
|
statusCode := response.StatusCode
|
||||||
|
return &WrappedError{
|
||||||
|
Message: wrappedImproperError.Value.Message,
|
||||||
|
StatusCode: &statusCode,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return wrappedError
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) GetResourceAreas(ctx context.Context) (*[]ResourceAreaInfo, error) {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
locationId, _ := uuid.Parse("e81700f7-3be2-46de-8624-2eb35882fcaa")
|
||||||
|
resp, err := client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []ResourceAreaInfo
|
||||||
|
err = client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
type LocationIdNotRegisteredError struct {
|
||||||
|
LocationId uuid.UUID
|
||||||
|
Url string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e LocationIdNotRegisteredError) Error() string {
|
||||||
|
return "API resource location " + e.LocationId.String() + " is not registered on " + e.Url + "."
|
||||||
|
}
|
||||||
|
|
||||||
|
type InvalidApiVersion struct {
|
||||||
|
ApiVersion string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e InvalidApiVersion) Error() string {
|
||||||
|
return "The requested api-version is not in a valid format: " + e.ApiVersion
|
||||||
|
}
|
154
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/connection.go
generated
vendored
Normal file
154
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/connection.go
generated
vendored
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
|
package azuredevops
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/base64"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"strings"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Creates a new Azure DevOps connection instance using a personal access token.
|
||||||
|
func NewPatConnection(organizationUrl string, personalAccessToken string) *Connection {
|
||||||
|
authorizationString := CreateBasicAuthHeaderValue("", personalAccessToken)
|
||||||
|
organizationUrl = normalizeUrl(organizationUrl)
|
||||||
|
return &Connection{
|
||||||
|
AuthorizationString: authorizationString,
|
||||||
|
BaseUrl: organizationUrl,
|
||||||
|
SuppressFedAuthRedirect: true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewAnonymousConnection(organizationUrl string) *Connection {
|
||||||
|
organizationUrl = normalizeUrl(organizationUrl)
|
||||||
|
return &Connection{
|
||||||
|
BaseUrl: organizationUrl,
|
||||||
|
SuppressFedAuthRedirect: true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Connection struct {
|
||||||
|
AuthorizationString string
|
||||||
|
BaseUrl string
|
||||||
|
UserAgent string
|
||||||
|
SuppressFedAuthRedirect bool
|
||||||
|
ForceMsaPassThrough bool
|
||||||
|
Timeout *time.Duration
|
||||||
|
clientCache map[string]Client
|
||||||
|
clientCacheLock sync.RWMutex
|
||||||
|
resourceAreaCache map[uuid.UUID]ResourceAreaInfo
|
||||||
|
resourceAreaCacheLock sync.RWMutex
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateBasicAuthHeaderValue(username, password string) string {
|
||||||
|
auth := username + ":" + password
|
||||||
|
return "Basic " + base64.StdEncoding.EncodeToString([]byte(auth))
|
||||||
|
}
|
||||||
|
|
||||||
|
func normalizeUrl(url string) string {
|
||||||
|
return strings.ToLower(strings.TrimRight(url, "/"))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (connection *Connection) GetClientByResourceAreaId(ctx context.Context, resourceAreaID uuid.UUID) (*Client, error) {
|
||||||
|
resourceAreaInfo, err := connection.getResourceAreaInfo(ctx, resourceAreaID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
var client *Client
|
||||||
|
if resourceAreaInfo != nil {
|
||||||
|
client = connection.GetClientByUrl(*resourceAreaInfo.LocationUrl)
|
||||||
|
} else {
|
||||||
|
// resourceAreaInfo will be nil for on prem servers
|
||||||
|
client = connection.GetClientByUrl(connection.BaseUrl)
|
||||||
|
}
|
||||||
|
return client, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (connection *Connection) GetClientByUrl(baseUrl string) *Client {
|
||||||
|
normalizedUrl := normalizeUrl(baseUrl)
|
||||||
|
azureDevOpsClient, ok := connection.getClientCacheEntry(normalizedUrl)
|
||||||
|
if !ok {
|
||||||
|
azureDevOpsClient = NewClient(connection, normalizedUrl)
|
||||||
|
connection.setClientCacheEntry(normalizedUrl, azureDevOpsClient)
|
||||||
|
}
|
||||||
|
return azureDevOpsClient
|
||||||
|
}
|
||||||
|
|
||||||
|
func (connection *Connection) getResourceAreaInfo(ctx context.Context, resourceAreaId uuid.UUID) (*ResourceAreaInfo, error) {
|
||||||
|
resourceAreaInfo, ok := connection.getResourceAreaCacheEntry(resourceAreaId)
|
||||||
|
if !ok {
|
||||||
|
client := connection.GetClientByUrl(connection.BaseUrl)
|
||||||
|
resourceAreaInfos, err := client.GetResourceAreas(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(*resourceAreaInfos) > 0 {
|
||||||
|
for _, resourceEntry := range *resourceAreaInfos {
|
||||||
|
connection.setResourceAreaCacheEntry(*resourceEntry.Id, &resourceEntry)
|
||||||
|
}
|
||||||
|
resourceAreaInfo, ok = connection.getResourceAreaCacheEntry(resourceAreaId)
|
||||||
|
} else {
|
||||||
|
// on prem servers return an empty list
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ok {
|
||||||
|
return resourceAreaInfo, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, &ResourceAreaIdNotRegisteredError{resourceAreaId, connection.BaseUrl}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Client Cache by Url
|
||||||
|
func (connection *Connection) getClientCacheEntry(url string) (*Client, bool) {
|
||||||
|
if connection.clientCache == nil {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
connection.clientCacheLock.RLock()
|
||||||
|
defer connection.clientCacheLock.RUnlock()
|
||||||
|
client, ok := connection.clientCache[url]
|
||||||
|
return &client, ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (connection *Connection) setClientCacheEntry(url string, client *Client) {
|
||||||
|
connection.clientCacheLock.Lock()
|
||||||
|
defer connection.clientCacheLock.Unlock()
|
||||||
|
if connection.clientCache == nil {
|
||||||
|
connection.clientCache = make(map[string]Client)
|
||||||
|
}
|
||||||
|
connection.clientCache[url] = *client
|
||||||
|
}
|
||||||
|
|
||||||
|
func (connection *Connection) getResourceAreaCacheEntry(resourceAreaId uuid.UUID) (*ResourceAreaInfo, bool) {
|
||||||
|
if connection.resourceAreaCache == nil {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
connection.resourceAreaCacheLock.RLock()
|
||||||
|
defer connection.resourceAreaCacheLock.RUnlock()
|
||||||
|
resourceAreaInfo, ok := connection.resourceAreaCache[resourceAreaId]
|
||||||
|
return &resourceAreaInfo, ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (connection *Connection) setResourceAreaCacheEntry(resourceAreaId uuid.UUID, resourceAreaInfo *ResourceAreaInfo) {
|
||||||
|
connection.resourceAreaCacheLock.Lock()
|
||||||
|
defer connection.resourceAreaCacheLock.Unlock()
|
||||||
|
if connection.resourceAreaCache == nil {
|
||||||
|
connection.resourceAreaCache = make(map[uuid.UUID]ResourceAreaInfo)
|
||||||
|
}
|
||||||
|
connection.resourceAreaCache[resourceAreaId] = *resourceAreaInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
type ResourceAreaIdNotRegisteredError struct {
|
||||||
|
ResourceAreaId uuid.UUID
|
||||||
|
Url string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e ResourceAreaIdNotRegisteredError) Error() string {
|
||||||
|
return "API resource area Id " + e.ResourceAreaId.String() + " is not registered on " + e.Url + "."
|
||||||
|
}
|
863
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/core/client.go
generated
vendored
Normal file
863
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/core/client.go
generated
vendored
Normal file
@ -0,0 +1,863 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops/operations"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops/webapi"
|
||||||
|
"net/http"
|
||||||
|
"net/url"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
var ResourceAreaId, _ = uuid.Parse("79134c72-4a58-4b42-976c-04e7115f32bf")
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
Client azuredevops.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClient(ctx context.Context, connection *azuredevops.Connection) (*Client, error) {
|
||||||
|
client, err := connection.GetClientByResourceAreaId(ctx, ResourceAreaId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &Client{
|
||||||
|
Client: *client,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API] Removes the avatar for the project.
|
||||||
|
func (client *Client) RemoveProjectAvatar(ctx context.Context, args RemoveProjectAvatarArgs) error {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("54b2a2a0-859b-4d05-827c-ec4c862f641a")
|
||||||
|
_, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1-preview.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the RemoveProjectAvatar function
|
||||||
|
type RemoveProjectAvatarArgs struct {
|
||||||
|
// (required) The ID or name of the project.
|
||||||
|
ProjectId *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API] Sets the avatar for the project.
|
||||||
|
func (client *Client) SetProjectAvatar(ctx context.Context, args SetProjectAvatarArgs) error {
|
||||||
|
if args.AvatarBlob == nil {
|
||||||
|
return &azuredevops.ArgumentNilError{ArgumentName: "args.AvatarBlob"}
|
||||||
|
}
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
|
||||||
|
body, marshalErr := json.Marshal(*args.AvatarBlob)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("54b2a2a0-859b-4d05-827c-ec4c862f641a")
|
||||||
|
_, err := client.Client.Send(ctx, http.MethodPut, locationId, "5.1-preview.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the SetProjectAvatar function
|
||||||
|
type SetProjectAvatarArgs struct {
|
||||||
|
// (required) The avatar blob data object to upload.
|
||||||
|
AvatarBlob *ProjectAvatar
|
||||||
|
// (required) The ID or name of the project.
|
||||||
|
ProjectId *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) CreateConnectedService(ctx context.Context, args CreateConnectedServiceArgs) (*WebApiConnectedService, error) {
|
||||||
|
if args.ConnectedServiceCreationData == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ConnectedServiceCreationData"}
|
||||||
|
}
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
|
||||||
|
body, marshalErr := json.Marshal(*args.ConnectedServiceCreationData)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("b4f70219-e18b-42c5-abe3-98b07d35525e")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1-preview.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue WebApiConnectedService
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the CreateConnectedService function
|
||||||
|
type CreateConnectedServiceArgs struct {
|
||||||
|
// (required)
|
||||||
|
ConnectedServiceCreationData *WebApiConnectedServiceDetails
|
||||||
|
// (required)
|
||||||
|
ProjectId *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) GetConnectedServiceDetails(ctx context.Context, args GetConnectedServiceDetailsArgs) (*WebApiConnectedServiceDetails, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
if args.Name == nil || *args.Name == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Name"}
|
||||||
|
}
|
||||||
|
routeValues["name"] = *args.Name
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("b4f70219-e18b-42c5-abe3-98b07d35525e")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue WebApiConnectedServiceDetails
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetConnectedServiceDetails function
|
||||||
|
type GetConnectedServiceDetailsArgs struct {
|
||||||
|
// (required)
|
||||||
|
ProjectId *string
|
||||||
|
// (required)
|
||||||
|
Name *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) GetConnectedServices(ctx context.Context, args GetConnectedServicesArgs) (*[]WebApiConnectedService, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.Kind != nil {
|
||||||
|
queryParams.Add("kind", string(*args.Kind))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("b4f70219-e18b-42c5-abe3-98b07d35525e")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []WebApiConnectedService
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetConnectedServices function
|
||||||
|
type GetConnectedServicesArgs struct {
|
||||||
|
// (required)
|
||||||
|
ProjectId *string
|
||||||
|
// (optional)
|
||||||
|
Kind *ConnectedServiceKind
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get a list of members for a specific team.
|
||||||
|
func (client *Client) GetTeamMembersWithExtendedProperties(ctx context.Context, args GetTeamMembersWithExtendedPropertiesArgs) (*[]webapi.TeamMember, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
if args.TeamId == nil || *args.TeamId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.TeamId"}
|
||||||
|
}
|
||||||
|
routeValues["teamId"] = *args.TeamId
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.Top != nil {
|
||||||
|
queryParams.Add("$top", strconv.Itoa(*args.Top))
|
||||||
|
}
|
||||||
|
if args.Skip != nil {
|
||||||
|
queryParams.Add("$skip", strconv.Itoa(*args.Skip))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("294c494c-2600-4d7e-b76c-3dd50c3c95be")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []webapi.TeamMember
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetTeamMembersWithExtendedProperties function
|
||||||
|
type GetTeamMembersWithExtendedPropertiesArgs struct {
|
||||||
|
// (required) The name or ID (GUID) of the team project the team belongs to.
|
||||||
|
ProjectId *string
|
||||||
|
// (required) The name or ID (GUID) of the team .
|
||||||
|
TeamId *string
|
||||||
|
// (optional)
|
||||||
|
Top *int
|
||||||
|
// (optional)
|
||||||
|
Skip *int
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get a process by ID.
|
||||||
|
func (client *Client) GetProcessById(ctx context.Context, args GetProcessByIdArgs) (*Process, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProcessId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ProcessId"}
|
||||||
|
}
|
||||||
|
routeValues["processId"] = (*args.ProcessId).String()
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("93878975-88c5-4e6a-8abb-7ddd77a8a7d8")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue Process
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetProcessById function
|
||||||
|
type GetProcessByIdArgs struct {
|
||||||
|
// (required) ID for a process.
|
||||||
|
ProcessId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get a list of processes.
|
||||||
|
func (client *Client) GetProcesses(ctx context.Context, args GetProcessesArgs) (*[]Process, error) {
|
||||||
|
locationId, _ := uuid.Parse("93878975-88c5-4e6a-8abb-7ddd77a8a7d8")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []Process
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetProcesses function
|
||||||
|
type GetProcessesArgs struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get project collection with the specified id or name.
|
||||||
|
func (client *Client) GetProjectCollection(ctx context.Context, args GetProjectCollectionArgs) (*TeamProjectCollection, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.CollectionId == nil || *args.CollectionId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.CollectionId"}
|
||||||
|
}
|
||||||
|
routeValues["collectionId"] = *args.CollectionId
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("8031090f-ef1d-4af6-85fc-698cd75d42bf")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue TeamProjectCollection
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetProjectCollection function
|
||||||
|
type GetProjectCollectionArgs struct {
|
||||||
|
// (required)
|
||||||
|
CollectionId *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get project collection references for this application.
|
||||||
|
func (client *Client) GetProjectCollections(ctx context.Context, args GetProjectCollectionsArgs) (*[]TeamProjectCollectionReference, error) {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.Top != nil {
|
||||||
|
queryParams.Add("$top", strconv.Itoa(*args.Top))
|
||||||
|
}
|
||||||
|
if args.Skip != nil {
|
||||||
|
queryParams.Add("$skip", strconv.Itoa(*args.Skip))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("8031090f-ef1d-4af6-85fc-698cd75d42bf")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []TeamProjectCollectionReference
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetProjectCollections function
|
||||||
|
type GetProjectCollectionsArgs struct {
|
||||||
|
// (optional)
|
||||||
|
Top *int
|
||||||
|
// (optional)
|
||||||
|
Skip *int
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get project with the specified id or name, optionally including capabilities.
|
||||||
|
func (client *Client) GetProject(ctx context.Context, args GetProjectArgs) (*TeamProject, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.IncludeCapabilities != nil {
|
||||||
|
queryParams.Add("includeCapabilities", strconv.FormatBool(*args.IncludeCapabilities))
|
||||||
|
}
|
||||||
|
if args.IncludeHistory != nil {
|
||||||
|
queryParams.Add("includeHistory", strconv.FormatBool(*args.IncludeHistory))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("603fe2ac-9723-48b9-88ad-09305aa6c6e1")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue TeamProject
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetProject function
|
||||||
|
type GetProjectArgs struct {
|
||||||
|
// (required)
|
||||||
|
ProjectId *string
|
||||||
|
// (optional) Include capabilities (such as source control) in the team project result (default: false).
|
||||||
|
IncludeCapabilities *bool
|
||||||
|
// (optional) Search within renamed projects (that had such name in the past).
|
||||||
|
IncludeHistory *bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get all projects in the organization that the authenticated user has access to.
|
||||||
|
func (client *Client) GetProjects(ctx context.Context, args GetProjectsArgs) (*GetProjectsResponseValue, error) {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.StateFilter != nil {
|
||||||
|
queryParams.Add("stateFilter", string(*args.StateFilter))
|
||||||
|
}
|
||||||
|
if args.Top != nil {
|
||||||
|
queryParams.Add("$top", strconv.Itoa(*args.Top))
|
||||||
|
}
|
||||||
|
if args.Skip != nil {
|
||||||
|
queryParams.Add("$skip", strconv.Itoa(*args.Skip))
|
||||||
|
}
|
||||||
|
if args.ContinuationToken != nil {
|
||||||
|
queryParams.Add("continuationToken", *args.ContinuationToken)
|
||||||
|
}
|
||||||
|
if args.GetDefaultTeamImageUrl != nil {
|
||||||
|
queryParams.Add("getDefaultTeamImageUrl", strconv.FormatBool(*args.GetDefaultTeamImageUrl))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("603fe2ac-9723-48b9-88ad-09305aa6c6e1")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue GetProjectsResponseValue
|
||||||
|
responseValue.ContinuationToken = resp.Header.Get(azuredevops.HeaderKeyContinuationToken)
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue.Value)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetProjects function
|
||||||
|
type GetProjectsArgs struct {
|
||||||
|
// (optional) Filter on team projects in a specific team project state (default: WellFormed).
|
||||||
|
StateFilter *ProjectState
|
||||||
|
// (optional)
|
||||||
|
Top *int
|
||||||
|
// (optional)
|
||||||
|
Skip *int
|
||||||
|
// (optional)
|
||||||
|
ContinuationToken *string
|
||||||
|
// (optional)
|
||||||
|
GetDefaultTeamImageUrl *bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return type for the GetProjects function
|
||||||
|
type GetProjectsResponseValue struct {
|
||||||
|
Value []TeamProjectReference
|
||||||
|
// The continuation token to be used to get the next page of results.
|
||||||
|
ContinuationToken string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Queues a project to be created. Use the [GetOperation](../../operations/operations/get) to periodically check for create project status.
|
||||||
|
func (client *Client) QueueCreateProject(ctx context.Context, args QueueCreateProjectArgs) (*operations.OperationReference, error) {
|
||||||
|
if args.ProjectToCreate == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ProjectToCreate"}
|
||||||
|
}
|
||||||
|
body, marshalErr := json.Marshal(*args.ProjectToCreate)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("603fe2ac-9723-48b9-88ad-09305aa6c6e1")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1", nil, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue operations.OperationReference
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the QueueCreateProject function
|
||||||
|
type QueueCreateProjectArgs struct {
|
||||||
|
// (required) The project to create.
|
||||||
|
ProjectToCreate *TeamProject
|
||||||
|
}
|
||||||
|
|
||||||
|
// Queues a project to be deleted. Use the [GetOperation](../../operations/operations/get) to periodically check for delete project status.
|
||||||
|
func (client *Client) QueueDeleteProject(ctx context.Context, args QueueDeleteProjectArgs) (*operations.OperationReference, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = (*args.ProjectId).String()
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("603fe2ac-9723-48b9-88ad-09305aa6c6e1")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue operations.OperationReference
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the QueueDeleteProject function
|
||||||
|
type QueueDeleteProjectArgs struct {
|
||||||
|
// (required) The project id of the project to delete.
|
||||||
|
ProjectId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update an existing project's name, abbreviation, description, or restore a project.
|
||||||
|
func (client *Client) UpdateProject(ctx context.Context, args UpdateProjectArgs) (*operations.OperationReference, error) {
|
||||||
|
if args.ProjectUpdate == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ProjectUpdate"}
|
||||||
|
}
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = (*args.ProjectId).String()
|
||||||
|
|
||||||
|
body, marshalErr := json.Marshal(*args.ProjectUpdate)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("603fe2ac-9723-48b9-88ad-09305aa6c6e1")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPatch, locationId, "5.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue operations.OperationReference
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the UpdateProject function
|
||||||
|
type UpdateProjectArgs struct {
|
||||||
|
// (required) The updates for the project. The state must be set to wellFormed to restore the project.
|
||||||
|
ProjectUpdate *TeamProject
|
||||||
|
// (required) The project id of the project to update.
|
||||||
|
ProjectId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API] Get a collection of team project properties.
|
||||||
|
func (client *Client) GetProjectProperties(ctx context.Context, args GetProjectPropertiesArgs) (*[]ProjectProperty, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = (*args.ProjectId).String()
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.Keys != nil {
|
||||||
|
listAsString := strings.Join((*args.Keys)[:], ",")
|
||||||
|
queryParams.Add("keys", listAsString)
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("4976a71a-4487-49aa-8aab-a1eda469037a")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []ProjectProperty
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetProjectProperties function
|
||||||
|
type GetProjectPropertiesArgs struct {
|
||||||
|
// (required) The team project ID.
|
||||||
|
ProjectId *uuid.UUID
|
||||||
|
// (optional) A comma-delimited string of team project property names. Wildcard characters ("?" and "*") are supported. If no key is specified, all properties will be returned.
|
||||||
|
Keys *[]string
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API] Create, update, and delete team project properties.
|
||||||
|
func (client *Client) SetProjectProperties(ctx context.Context, args SetProjectPropertiesArgs) error {
|
||||||
|
if args.PatchDocument == nil {
|
||||||
|
return &azuredevops.ArgumentNilError{ArgumentName: "args.PatchDocument"}
|
||||||
|
}
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil {
|
||||||
|
return &azuredevops.ArgumentNilError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = (*args.ProjectId).String()
|
||||||
|
|
||||||
|
body, marshalErr := json.Marshal(*args.PatchDocument)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("4976a71a-4487-49aa-8aab-a1eda469037a")
|
||||||
|
_, err := client.Client.Send(ctx, http.MethodPatch, locationId, "5.1-preview.1", routeValues, nil, bytes.NewReader(body), "application/json-patch+json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the SetProjectProperties function
|
||||||
|
type SetProjectPropertiesArgs struct {
|
||||||
|
// (required) The team project ID.
|
||||||
|
ProjectId *uuid.UUID
|
||||||
|
// (required) A JSON Patch document that represents an array of property operations. See RFC 6902 for more details on JSON Patch. The accepted operation verbs are Add and Remove, where Add is used for both creating and updating properties. The path consists of a forward slash and a property name.
|
||||||
|
PatchDocument *[]webapi.JsonPatchOperation
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) CreateOrUpdateProxy(ctx context.Context, args CreateOrUpdateProxyArgs) (*Proxy, error) {
|
||||||
|
if args.Proxy == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Proxy"}
|
||||||
|
}
|
||||||
|
body, marshalErr := json.Marshal(*args.Proxy)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("ec1f4311-f2b4-4c15-b2b8-8990b80d2908")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPut, locationId, "5.1-preview.2", nil, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue Proxy
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the CreateOrUpdateProxy function
|
||||||
|
type CreateOrUpdateProxyArgs struct {
|
||||||
|
// (required)
|
||||||
|
Proxy *Proxy
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) DeleteProxy(ctx context.Context, args DeleteProxyArgs) error {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.ProxyUrl == nil {
|
||||||
|
return &azuredevops.ArgumentNilError{ArgumentName: "proxyUrl"}
|
||||||
|
}
|
||||||
|
queryParams.Add("proxyUrl", *args.ProxyUrl)
|
||||||
|
if args.Site != nil {
|
||||||
|
queryParams.Add("site", *args.Site)
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("ec1f4311-f2b4-4c15-b2b8-8990b80d2908")
|
||||||
|
_, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1-preview.2", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the DeleteProxy function
|
||||||
|
type DeleteProxyArgs struct {
|
||||||
|
// (required)
|
||||||
|
ProxyUrl *string
|
||||||
|
// (optional)
|
||||||
|
Site *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) GetProxies(ctx context.Context, args GetProxiesArgs) (*[]Proxy, error) {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.ProxyUrl != nil {
|
||||||
|
queryParams.Add("proxyUrl", *args.ProxyUrl)
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("ec1f4311-f2b4-4c15-b2b8-8990b80d2908")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.2", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []Proxy
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetProxies function
|
||||||
|
type GetProxiesArgs struct {
|
||||||
|
// (optional)
|
||||||
|
ProxyUrl *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a team in a team project.
|
||||||
|
func (client *Client) CreateTeam(ctx context.Context, args CreateTeamArgs) (*WebApiTeam, error) {
|
||||||
|
if args.Team == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Team"}
|
||||||
|
}
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
|
||||||
|
body, marshalErr := json.Marshal(*args.Team)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("d30a3dd1-f8ba-442a-b86a-bd0c0c383e59")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue WebApiTeam
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the CreateTeam function
|
||||||
|
type CreateTeamArgs struct {
|
||||||
|
// (required) The team data used to create the team.
|
||||||
|
Team *WebApiTeam
|
||||||
|
// (required) The name or ID (GUID) of the team project in which to create the team.
|
||||||
|
ProjectId *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete a team.
|
||||||
|
func (client *Client) DeleteTeam(ctx context.Context, args DeleteTeamArgs) error {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
if args.TeamId == nil || *args.TeamId == "" {
|
||||||
|
return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.TeamId"}
|
||||||
|
}
|
||||||
|
routeValues["teamId"] = *args.TeamId
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("d30a3dd1-f8ba-442a-b86a-bd0c0c383e59")
|
||||||
|
_, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the DeleteTeam function
|
||||||
|
type DeleteTeamArgs struct {
|
||||||
|
// (required) The name or ID (GUID) of the team project containing the team to delete.
|
||||||
|
ProjectId *string
|
||||||
|
// (required) The name or ID of the team to delete.
|
||||||
|
TeamId *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get a specific team.
|
||||||
|
func (client *Client) GetTeam(ctx context.Context, args GetTeamArgs) (*WebApiTeam, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
if args.TeamId == nil || *args.TeamId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.TeamId"}
|
||||||
|
}
|
||||||
|
routeValues["teamId"] = *args.TeamId
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.ExpandIdentity != nil {
|
||||||
|
queryParams.Add("$expandIdentity", strconv.FormatBool(*args.ExpandIdentity))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("d30a3dd1-f8ba-442a-b86a-bd0c0c383e59")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue WebApiTeam
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetTeam function
|
||||||
|
type GetTeamArgs struct {
|
||||||
|
// (required) The name or ID (GUID) of the team project containing the team.
|
||||||
|
ProjectId *string
|
||||||
|
// (required) The name or ID (GUID) of the team.
|
||||||
|
TeamId *string
|
||||||
|
// (optional) A value indicating whether or not to expand Identity information in the result WebApiTeam object.
|
||||||
|
ExpandIdentity *bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get a list of teams.
|
||||||
|
func (client *Client) GetTeams(ctx context.Context, args GetTeamsArgs) (*[]WebApiTeam, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.Mine != nil {
|
||||||
|
queryParams.Add("$mine", strconv.FormatBool(*args.Mine))
|
||||||
|
}
|
||||||
|
if args.Top != nil {
|
||||||
|
queryParams.Add("$top", strconv.Itoa(*args.Top))
|
||||||
|
}
|
||||||
|
if args.Skip != nil {
|
||||||
|
queryParams.Add("$skip", strconv.Itoa(*args.Skip))
|
||||||
|
}
|
||||||
|
if args.ExpandIdentity != nil {
|
||||||
|
queryParams.Add("$expandIdentity", strconv.FormatBool(*args.ExpandIdentity))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("d30a3dd1-f8ba-442a-b86a-bd0c0c383e59")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []WebApiTeam
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetTeams function
|
||||||
|
type GetTeamsArgs struct {
|
||||||
|
// (required)
|
||||||
|
ProjectId *string
|
||||||
|
// (optional) If true return all the teams requesting user is member, otherwise return all the teams user has read access.
|
||||||
|
Mine *bool
|
||||||
|
// (optional) Maximum number of teams to return.
|
||||||
|
Top *int
|
||||||
|
// (optional) Number of teams to skip.
|
||||||
|
Skip *int
|
||||||
|
// (optional) A value indicating whether or not to expand Identity information in the result WebApiTeam object.
|
||||||
|
ExpandIdentity *bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update a team's name and/or description.
|
||||||
|
func (client *Client) UpdateTeam(ctx context.Context, args UpdateTeamArgs) (*WebApiTeam, error) {
|
||||||
|
if args.TeamData == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.TeamData"}
|
||||||
|
}
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ProjectId == nil || *args.ProjectId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
|
||||||
|
}
|
||||||
|
routeValues["projectId"] = *args.ProjectId
|
||||||
|
if args.TeamId == nil || *args.TeamId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.TeamId"}
|
||||||
|
}
|
||||||
|
routeValues["teamId"] = *args.TeamId
|
||||||
|
|
||||||
|
body, marshalErr := json.Marshal(*args.TeamData)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("d30a3dd1-f8ba-442a-b86a-bd0c0c383e59")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPatch, locationId, "5.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue WebApiTeam
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the UpdateTeam function
|
||||||
|
type UpdateTeamArgs struct {
|
||||||
|
// (required)
|
||||||
|
TeamData *WebApiTeam
|
||||||
|
// (required) The name or ID (GUID) of the team project containing the team to update.
|
||||||
|
ProjectId *string
|
||||||
|
// (required) The name of ID of the team to update.
|
||||||
|
TeamId *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API] Get a list of all teams.
|
||||||
|
func (client *Client) GetAllTeams(ctx context.Context, args GetAllTeamsArgs) (*[]WebApiTeam, error) {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.Mine != nil {
|
||||||
|
queryParams.Add("$mine", strconv.FormatBool(*args.Mine))
|
||||||
|
}
|
||||||
|
if args.Top != nil {
|
||||||
|
queryParams.Add("$top", strconv.Itoa(*args.Top))
|
||||||
|
}
|
||||||
|
if args.Skip != nil {
|
||||||
|
queryParams.Add("$skip", strconv.Itoa(*args.Skip))
|
||||||
|
}
|
||||||
|
if args.ExpandIdentity != nil {
|
||||||
|
queryParams.Add("$expandIdentity", strconv.FormatBool(*args.ExpandIdentity))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("7a4d9ee9-3433-4347-b47a-7a80f1cf307e")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.3", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []WebApiTeam
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetAllTeams function
|
||||||
|
type GetAllTeamsArgs struct {
|
||||||
|
// (optional) If true, then return all teams requesting user is member. Otherwise return all teams user has read access.
|
||||||
|
Mine *bool
|
||||||
|
// (optional) Maximum number of teams to return.
|
||||||
|
Top *int
|
||||||
|
// (optional) Number of teams to skip.
|
||||||
|
Skip *int
|
||||||
|
// (optional) A value indicating whether or not to expand Identity information in the result WebApiTeam object.
|
||||||
|
ExpandIdentity *bool
|
||||||
|
}
|
483
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/core/models.go
generated
vendored
Normal file
483
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/core/models.go
generated
vendored
Normal file
@ -0,0 +1,483 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops/identity"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops/webapi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ConnectedServiceKind string
|
||||||
|
|
||||||
|
type connectedServiceKindValuesType struct {
|
||||||
|
Custom ConnectedServiceKind
|
||||||
|
AzureSubscription ConnectedServiceKind
|
||||||
|
Chef ConnectedServiceKind
|
||||||
|
Generic ConnectedServiceKind
|
||||||
|
}
|
||||||
|
|
||||||
|
var ConnectedServiceKindValues = connectedServiceKindValuesType{
|
||||||
|
// Custom or unknown service
|
||||||
|
Custom: "custom",
|
||||||
|
// Azure Subscription
|
||||||
|
AzureSubscription: "azureSubscription",
|
||||||
|
// Chef Connection
|
||||||
|
Chef: "chef",
|
||||||
|
// Generic Connection
|
||||||
|
Generic: "generic",
|
||||||
|
}
|
||||||
|
|
||||||
|
type IdentityData struct {
|
||||||
|
IdentityIds *[]uuid.UUID `json:"identityIds,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Process struct {
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
Links interface{} `json:"_links,omitempty"`
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
IsDefault *bool `json:"isDefault,omitempty"`
|
||||||
|
Type *ProcessType `json:"type,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Type of process customization on a collection.
|
||||||
|
type ProcessCustomizationType string
|
||||||
|
|
||||||
|
type processCustomizationTypeValuesType struct {
|
||||||
|
Xml ProcessCustomizationType
|
||||||
|
Inherited ProcessCustomizationType
|
||||||
|
}
|
||||||
|
|
||||||
|
var ProcessCustomizationTypeValues = processCustomizationTypeValuesType{
|
||||||
|
// Customization based on project-scoped xml customization
|
||||||
|
Xml: "xml",
|
||||||
|
// Customization based on process inheritance
|
||||||
|
Inherited: "inherited",
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProcessReference struct {
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProcessType string
|
||||||
|
|
||||||
|
type processTypeValuesType struct {
|
||||||
|
System ProcessType
|
||||||
|
Custom ProcessType
|
||||||
|
Inherited ProcessType
|
||||||
|
}
|
||||||
|
|
||||||
|
var ProcessTypeValues = processTypeValuesType{
|
||||||
|
System: "system",
|
||||||
|
Custom: "custom",
|
||||||
|
Inherited: "inherited",
|
||||||
|
}
|
||||||
|
|
||||||
|
// Contains the image data for project avatar.
|
||||||
|
type ProjectAvatar struct {
|
||||||
|
// The avatar image represented as a byte array.
|
||||||
|
Image *[]byte `json:"image,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectChangeType string
|
||||||
|
|
||||||
|
type projectChangeTypeValuesType struct {
|
||||||
|
Modified ProjectChangeType
|
||||||
|
Deleted ProjectChangeType
|
||||||
|
Added ProjectChangeType
|
||||||
|
}
|
||||||
|
|
||||||
|
var ProjectChangeTypeValues = projectChangeTypeValuesType{
|
||||||
|
Modified: "modified",
|
||||||
|
Deleted: "deleted",
|
||||||
|
Added: "added",
|
||||||
|
}
|
||||||
|
|
||||||
|
// Contains information describing a project.
|
||||||
|
type ProjectInfo struct {
|
||||||
|
// The abbreviated name of the project.
|
||||||
|
Abbreviation *string `json:"abbreviation,omitempty"`
|
||||||
|
// The description of the project.
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
// The id of the project.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// The time that this project was last updated.
|
||||||
|
LastUpdateTime *azuredevops.Time `json:"lastUpdateTime,omitempty"`
|
||||||
|
// The name of the project.
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// A set of name-value pairs storing additional property data related to the project.
|
||||||
|
Properties *[]ProjectProperty `json:"properties,omitempty"`
|
||||||
|
// The current revision of the project.
|
||||||
|
Revision *uint64 `json:"revision,omitempty"`
|
||||||
|
// The current state of the project.
|
||||||
|
State *ProjectState `json:"state,omitempty"`
|
||||||
|
// A Uri that can be used to refer to this project.
|
||||||
|
Uri *string `json:"uri,omitempty"`
|
||||||
|
// The version number of the project.
|
||||||
|
Version *uint64 `json:"version,omitempty"`
|
||||||
|
// Indicates whom the project is visible to.
|
||||||
|
Visibility *ProjectVisibility `json:"visibility,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectMessage struct {
|
||||||
|
Project *ProjectInfo `json:"project,omitempty"`
|
||||||
|
ProjectChangeType *ProjectChangeType `json:"projectChangeType,omitempty"`
|
||||||
|
ShouldInvalidateSystemStore *bool `json:"shouldInvalidateSystemStore,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectProperties struct {
|
||||||
|
// The team project Id
|
||||||
|
ProjectId *uuid.UUID `json:"projectId,omitempty"`
|
||||||
|
// The collection of team project properties
|
||||||
|
Properties *[]ProjectProperty `json:"properties,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// A named value associated with a project.
|
||||||
|
type ProjectProperty struct {
|
||||||
|
// The name of the property.
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// The value of the property.
|
||||||
|
Value interface{} `json:"value,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectState string
|
||||||
|
|
||||||
|
type projectStateValuesType struct {
|
||||||
|
Deleting ProjectState
|
||||||
|
New ProjectState
|
||||||
|
WellFormed ProjectState
|
||||||
|
CreatePending ProjectState
|
||||||
|
All ProjectState
|
||||||
|
Unchanged ProjectState
|
||||||
|
Deleted ProjectState
|
||||||
|
}
|
||||||
|
|
||||||
|
var ProjectStateValues = projectStateValuesType{
|
||||||
|
// Project is in the process of being deleted.
|
||||||
|
Deleting: "deleting",
|
||||||
|
// Project is in the process of being created.
|
||||||
|
New: "new",
|
||||||
|
// Project is completely created and ready to use.
|
||||||
|
WellFormed: "wellFormed",
|
||||||
|
// Project has been queued for creation, but the process has not yet started.
|
||||||
|
CreatePending: "createPending",
|
||||||
|
// All projects regardless of state.
|
||||||
|
All: "all",
|
||||||
|
// Project has not been changed.
|
||||||
|
Unchanged: "unchanged",
|
||||||
|
// Project has been deleted.
|
||||||
|
Deleted: "deleted",
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProjectVisibility string
|
||||||
|
|
||||||
|
type projectVisibilityValuesType struct {
|
||||||
|
Private ProjectVisibility
|
||||||
|
Public ProjectVisibility
|
||||||
|
}
|
||||||
|
|
||||||
|
var ProjectVisibilityValues = projectVisibilityValuesType{
|
||||||
|
// The project is only visible to users with explicit access.
|
||||||
|
Private: "private",
|
||||||
|
// The project is visible to all.
|
||||||
|
Public: "public",
|
||||||
|
}
|
||||||
|
|
||||||
|
type Proxy struct {
|
||||||
|
Authorization *ProxyAuthorization `json:"authorization,omitempty"`
|
||||||
|
// This is a description string
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
// The friendly name of the server
|
||||||
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
||||||
|
GlobalDefault *bool `json:"globalDefault,omitempty"`
|
||||||
|
// This is a string representation of the site that the proxy server is located in (e.g. "NA-WA-RED")
|
||||||
|
Site *string `json:"site,omitempty"`
|
||||||
|
SiteDefault *bool `json:"siteDefault,omitempty"`
|
||||||
|
// The URL of the proxy server
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProxyAuthorization struct {
|
||||||
|
// Gets or sets the endpoint used to obtain access tokens from the configured token service.
|
||||||
|
AuthorizationUrl *string `json:"authorizationUrl,omitempty"`
|
||||||
|
// Gets or sets the client identifier for this proxy.
|
||||||
|
ClientId *uuid.UUID `json:"clientId,omitempty"`
|
||||||
|
// Gets or sets the user identity to authorize for on-prem.
|
||||||
|
Identity *string `json:"identity,omitempty"`
|
||||||
|
// Gets or sets the public key used to verify the identity of this proxy. Only specify on hosted.
|
||||||
|
PublicKey *webapi.PublicKey `json:"publicKey,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type SourceControlTypes string
|
||||||
|
|
||||||
|
type sourceControlTypesValuesType struct {
|
||||||
|
Tfvc SourceControlTypes
|
||||||
|
Git SourceControlTypes
|
||||||
|
}
|
||||||
|
|
||||||
|
var SourceControlTypesValues = sourceControlTypesValuesType{
|
||||||
|
Tfvc: "tfvc",
|
||||||
|
Git: "git",
|
||||||
|
}
|
||||||
|
|
||||||
|
// The Team Context for an operation.
|
||||||
|
type TeamContext struct {
|
||||||
|
// The team project Id or name. Ignored if ProjectId is set.
|
||||||
|
Project *string `json:"project,omitempty"`
|
||||||
|
// The Team Project ID. Required if Project is not set.
|
||||||
|
ProjectId *uuid.UUID `json:"projectId,omitempty"`
|
||||||
|
// The Team Id or name. Ignored if TeamId is set.
|
||||||
|
Team *string `json:"team,omitempty"`
|
||||||
|
// The Team Id
|
||||||
|
TeamId *uuid.UUID `json:"teamId,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Represents a Team Project object.
|
||||||
|
type TeamProject struct {
|
||||||
|
// Project abbreviation.
|
||||||
|
Abbreviation *string `json:"abbreviation,omitempty"`
|
||||||
|
// Url to default team identity image.
|
||||||
|
DefaultTeamImageUrl *string `json:"defaultTeamImageUrl,omitempty"`
|
||||||
|
// The project's description (if any).
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
// Project identifier.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Project last update time.
|
||||||
|
LastUpdateTime *azuredevops.Time `json:"lastUpdateTime,omitempty"`
|
||||||
|
// Project name.
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Project revision.
|
||||||
|
Revision *uint64 `json:"revision,omitempty"`
|
||||||
|
// Project state.
|
||||||
|
State *ProjectState `json:"state,omitempty"`
|
||||||
|
// Url to the full version of the object.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// Project visibility.
|
||||||
|
Visibility *ProjectVisibility `json:"visibility,omitempty"`
|
||||||
|
// The links to other objects related to this object.
|
||||||
|
Links interface{} `json:"_links,omitempty"`
|
||||||
|
// Set of capabilities this project has (such as process template & version control).
|
||||||
|
Capabilities *map[string]map[string]string `json:"capabilities,omitempty"`
|
||||||
|
// The shallow ref to the default team.
|
||||||
|
DefaultTeam *WebApiTeamRef `json:"defaultTeam,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Data contract for a TeamProjectCollection.
|
||||||
|
type TeamProjectCollection struct {
|
||||||
|
// Collection Id.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Collection Name.
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Collection REST Url.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// The links to other objects related to this object.
|
||||||
|
Links interface{} `json:"_links,omitempty"`
|
||||||
|
// Project collection description.
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
// Process customization type on this collection. It can be Xml or Inherited.
|
||||||
|
ProcessCustomizationType *ProcessCustomizationType `json:"processCustomizationType,omitempty"`
|
||||||
|
// Project collection state.
|
||||||
|
State *string `json:"state,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reference object for a TeamProjectCollection.
|
||||||
|
type TeamProjectCollectionReference struct {
|
||||||
|
// Collection Id.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Collection Name.
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Collection REST Url.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Represents a shallow reference to a TeamProject.
|
||||||
|
type TeamProjectReference struct {
|
||||||
|
// Project abbreviation.
|
||||||
|
Abbreviation *string `json:"abbreviation,omitempty"`
|
||||||
|
// Url to default team identity image.
|
||||||
|
DefaultTeamImageUrl *string `json:"defaultTeamImageUrl,omitempty"`
|
||||||
|
// The project's description (if any).
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
// Project identifier.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Project last update time.
|
||||||
|
LastUpdateTime *azuredevops.Time `json:"lastUpdateTime,omitempty"`
|
||||||
|
// Project name.
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Project revision.
|
||||||
|
Revision *uint64 `json:"revision,omitempty"`
|
||||||
|
// Project state.
|
||||||
|
State *ProjectState `json:"state,omitempty"`
|
||||||
|
// Url to the full version of the object.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// Project visibility.
|
||||||
|
Visibility *ProjectVisibility `json:"visibility,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// A data transfer object that stores the metadata associated with the creation of temporary data.
|
||||||
|
type TemporaryDataCreatedDTO struct {
|
||||||
|
ExpirationSeconds *int `json:"expirationSeconds,omitempty"`
|
||||||
|
Origin *string `json:"origin,omitempty"`
|
||||||
|
Value interface{} `json:"value,omitempty"`
|
||||||
|
ExpirationDate *azuredevops.Time `json:"expirationDate,omitempty"`
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// A data transfer object that stores the metadata associated with the temporary data.
|
||||||
|
type TemporaryDataDTO struct {
|
||||||
|
ExpirationSeconds *int `json:"expirationSeconds,omitempty"`
|
||||||
|
Origin *string `json:"origin,omitempty"`
|
||||||
|
Value interface{} `json:"value,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Updateable properties for a WebApiTeam.
|
||||||
|
type UpdateTeam struct {
|
||||||
|
// New description for the team.
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
// New name for the team.
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type WebApiConnectedService struct {
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// The user who did the OAuth authentication to created this service
|
||||||
|
AuthenticatedBy *webapi.IdentityRef `json:"authenticatedBy,omitempty"`
|
||||||
|
// Extra description on the service.
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
// Friendly Name of service connection
|
||||||
|
FriendlyName *string `json:"friendlyName,omitempty"`
|
||||||
|
// Id/Name of the connection service. For Ex: Subscription Id for Azure Connection
|
||||||
|
Id *string `json:"id,omitempty"`
|
||||||
|
// The kind of service.
|
||||||
|
Kind *string `json:"kind,omitempty"`
|
||||||
|
// The project associated with this service
|
||||||
|
Project *TeamProjectReference `json:"project,omitempty"`
|
||||||
|
// Optional uri to connect directly to the service such as https://windows.azure.com
|
||||||
|
ServiceUri *string `json:"serviceUri,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type WebApiConnectedServiceDetails struct {
|
||||||
|
Id *string `json:"id,omitempty"`
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// Meta data for service connection
|
||||||
|
ConnectedServiceMetaData *WebApiConnectedService `json:"connectedServiceMetaData,omitempty"`
|
||||||
|
// Credential info
|
||||||
|
CredentialsXml *string `json:"credentialsXml,omitempty"`
|
||||||
|
// Optional uri to connect directly to the service such as https://windows.azure.com
|
||||||
|
EndPoint *string `json:"endPoint,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type WebApiConnectedServiceRef struct {
|
||||||
|
Id *string `json:"id,omitempty"`
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The representation of data needed to create a tag definition which is sent across the wire.
|
||||||
|
type WebApiCreateTagRequestData struct {
|
||||||
|
// Name of the tag definition that will be created.
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type WebApiProject struct {
|
||||||
|
// Project abbreviation.
|
||||||
|
Abbreviation *string `json:"abbreviation,omitempty"`
|
||||||
|
// Url to default team identity image.
|
||||||
|
DefaultTeamImageUrl *string `json:"defaultTeamImageUrl,omitempty"`
|
||||||
|
// The project's description (if any).
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
// Project identifier.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Project last update time.
|
||||||
|
LastUpdateTime *azuredevops.Time `json:"lastUpdateTime,omitempty"`
|
||||||
|
// Project name.
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Project revision.
|
||||||
|
Revision *uint64 `json:"revision,omitempty"`
|
||||||
|
// Project state.
|
||||||
|
State *ProjectState `json:"state,omitempty"`
|
||||||
|
// Url to the full version of the object.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// Project visibility.
|
||||||
|
Visibility *ProjectVisibility `json:"visibility,omitempty"`
|
||||||
|
// Set of capabilities this project has
|
||||||
|
Capabilities *map[string]map[string]string `json:"capabilities,omitempty"`
|
||||||
|
// Reference to collection which contains this project
|
||||||
|
Collection *WebApiProjectCollectionRef `json:"collection,omitempty"`
|
||||||
|
// Default team for this project
|
||||||
|
DefaultTeam *WebApiTeamRef `json:"defaultTeam,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type WebApiProjectCollection struct {
|
||||||
|
// Collection Tfs Url (Host Url)
|
||||||
|
CollectionUrl *string `json:"collectionUrl,omitempty"`
|
||||||
|
// Collection Guid
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Collection Name
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Collection REST Url
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// Project collection description
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
// Project collection state
|
||||||
|
State *string `json:"state,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type WebApiProjectCollectionRef struct {
|
||||||
|
// Collection Tfs Url (Host Url)
|
||||||
|
CollectionUrl *string `json:"collectionUrl,omitempty"`
|
||||||
|
// Collection Guid
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Collection Name
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Collection REST Url
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The representation of a tag definition which is sent across the wire.
|
||||||
|
type WebApiTagDefinition struct {
|
||||||
|
// Whether or not the tag definition is active.
|
||||||
|
Active *bool `json:"active,omitempty"`
|
||||||
|
// ID of the tag definition.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// The name of the tag definition.
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Resource URL for the Tag Definition.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type WebApiTeam struct {
|
||||||
|
// Team (Identity) Guid. A Team Foundation ID.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Team name
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Team REST API Url
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// Team description
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
// Team identity.
|
||||||
|
Identity *identity.Identity `json:"identity,omitempty"`
|
||||||
|
// Identity REST API Url to this team
|
||||||
|
IdentityUrl *string `json:"identityUrl,omitempty"`
|
||||||
|
ProjectId *uuid.UUID `json:"projectId,omitempty"`
|
||||||
|
ProjectName *string `json:"projectName,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type WebApiTeamRef struct {
|
||||||
|
// Team (Identity) Guid. A Team Foundation ID.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Team name
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Team REST API Url
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
350
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/delegatedauthorization/models.go
generated
vendored
Normal file
350
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/delegatedauthorization/models.go
generated
vendored
Normal file
@ -0,0 +1,350 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package delegatedauthorization
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops/webapi"
|
||||||
|
)
|
||||||
|
|
||||||
|
type AccessTokenResult struct {
|
||||||
|
AccessToken *webapi.JsonWebToken `json:"accessToken,omitempty"`
|
||||||
|
AccessTokenError *TokenError `json:"accessTokenError,omitempty"`
|
||||||
|
AuthorizationId *uuid.UUID `json:"authorizationId,omitempty"`
|
||||||
|
ErrorDescription *string `json:"errorDescription,omitempty"`
|
||||||
|
HasError *bool `json:"hasError,omitempty"`
|
||||||
|
RefreshToken *RefreshTokenGrant `json:"refreshToken,omitempty"`
|
||||||
|
TokenType *string `json:"tokenType,omitempty"`
|
||||||
|
ValidTo *azuredevops.Time `json:"validTo,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Authorization struct {
|
||||||
|
AccessIssued *azuredevops.Time `json:"accessIssued,omitempty"`
|
||||||
|
Audience *string `json:"audience,omitempty"`
|
||||||
|
AuthorizationId *uuid.UUID `json:"authorizationId,omitempty"`
|
||||||
|
IdentityId *uuid.UUID `json:"identityId,omitempty"`
|
||||||
|
IsAccessUsed *bool `json:"isAccessUsed,omitempty"`
|
||||||
|
IsValid *bool `json:"isValid,omitempty"`
|
||||||
|
RedirectUri *string `json:"redirectUri,omitempty"`
|
||||||
|
RegistrationId *uuid.UUID `json:"registrationId,omitempty"`
|
||||||
|
Scopes *string `json:"scopes,omitempty"`
|
||||||
|
Source *string `json:"source,omitempty"`
|
||||||
|
ValidFrom *azuredevops.Time `json:"validFrom,omitempty"`
|
||||||
|
ValidTo *azuredevops.Time `json:"validTo,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AuthorizationDecision struct {
|
||||||
|
Authorization *Authorization `json:"authorization,omitempty"`
|
||||||
|
AuthorizationError *AuthorizationError `json:"authorizationError,omitempty"`
|
||||||
|
AuthorizationGrant *AuthorizationGrant `json:"authorizationGrant,omitempty"`
|
||||||
|
HasError *bool `json:"hasError,omitempty"`
|
||||||
|
IsAuthorized *bool `json:"isAuthorized,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AuthorizationDescription struct {
|
||||||
|
ClientRegistration *Registration `json:"clientRegistration,omitempty"`
|
||||||
|
HasError *bool `json:"hasError,omitempty"`
|
||||||
|
InitiationError *InitiationError `json:"initiationError,omitempty"`
|
||||||
|
ScopeDescriptions *[]AuthorizationScopeDescription `json:"scopeDescriptions,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AuthorizationDetails struct {
|
||||||
|
Authorization *Authorization `json:"authorization,omitempty"`
|
||||||
|
ClientRegistration *Registration `json:"clientRegistration,omitempty"`
|
||||||
|
ScopeDescriptions *[]AuthorizationScopeDescription `json:"scopeDescriptions,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AuthorizationError string
|
||||||
|
|
||||||
|
type authorizationErrorValuesType struct {
|
||||||
|
None AuthorizationError
|
||||||
|
ClientIdRequired AuthorizationError
|
||||||
|
InvalidClientId AuthorizationError
|
||||||
|
ResponseTypeRequired AuthorizationError
|
||||||
|
ResponseTypeNotSupported AuthorizationError
|
||||||
|
ScopeRequired AuthorizationError
|
||||||
|
InvalidScope AuthorizationError
|
||||||
|
RedirectUriRequired AuthorizationError
|
||||||
|
InsecureRedirectUri AuthorizationError
|
||||||
|
InvalidRedirectUri AuthorizationError
|
||||||
|
InvalidUserId AuthorizationError
|
||||||
|
InvalidUserType AuthorizationError
|
||||||
|
AccessDenied AuthorizationError
|
||||||
|
}
|
||||||
|
|
||||||
|
var AuthorizationErrorValues = authorizationErrorValuesType{
|
||||||
|
None: "none",
|
||||||
|
ClientIdRequired: "clientIdRequired",
|
||||||
|
InvalidClientId: "invalidClientId",
|
||||||
|
ResponseTypeRequired: "responseTypeRequired",
|
||||||
|
ResponseTypeNotSupported: "responseTypeNotSupported",
|
||||||
|
ScopeRequired: "scopeRequired",
|
||||||
|
InvalidScope: "invalidScope",
|
||||||
|
RedirectUriRequired: "redirectUriRequired",
|
||||||
|
InsecureRedirectUri: "insecureRedirectUri",
|
||||||
|
InvalidRedirectUri: "invalidRedirectUri",
|
||||||
|
InvalidUserId: "invalidUserId",
|
||||||
|
InvalidUserType: "invalidUserType",
|
||||||
|
AccessDenied: "accessDenied",
|
||||||
|
}
|
||||||
|
|
||||||
|
type AuthorizationGrant struct {
|
||||||
|
GrantType *GrantType `json:"grantType,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type AuthorizationScopeDescription struct {
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
Market *string `json:"market,omitempty"`
|
||||||
|
Title *string `json:"title,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ClientType string
|
||||||
|
|
||||||
|
type clientTypeValuesType struct {
|
||||||
|
Confidential ClientType
|
||||||
|
Public ClientType
|
||||||
|
MediumTrust ClientType
|
||||||
|
HighTrust ClientType
|
||||||
|
FullTrust ClientType
|
||||||
|
}
|
||||||
|
|
||||||
|
var ClientTypeValues = clientTypeValuesType{
|
||||||
|
Confidential: "confidential",
|
||||||
|
Public: "public",
|
||||||
|
MediumTrust: "mediumTrust",
|
||||||
|
HighTrust: "highTrust",
|
||||||
|
FullTrust: "fullTrust",
|
||||||
|
}
|
||||||
|
|
||||||
|
type GrantType string
|
||||||
|
|
||||||
|
type grantTypeValuesType struct {
|
||||||
|
None GrantType
|
||||||
|
JwtBearer GrantType
|
||||||
|
RefreshToken GrantType
|
||||||
|
Implicit GrantType
|
||||||
|
ClientCredentials GrantType
|
||||||
|
}
|
||||||
|
|
||||||
|
var GrantTypeValues = grantTypeValuesType{
|
||||||
|
None: "none",
|
||||||
|
JwtBearer: "jwtBearer",
|
||||||
|
RefreshToken: "refreshToken",
|
||||||
|
Implicit: "implicit",
|
||||||
|
ClientCredentials: "clientCredentials",
|
||||||
|
}
|
||||||
|
|
||||||
|
type HostAuthorization struct {
|
||||||
|
HostId *uuid.UUID `json:"hostId,omitempty"`
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
IsValid *bool `json:"isValid,omitempty"`
|
||||||
|
RegistrationId *uuid.UUID `json:"registrationId,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type HostAuthorizationDecision struct {
|
||||||
|
HasError *bool `json:"hasError,omitempty"`
|
||||||
|
HostAuthorizationError *HostAuthorizationError `json:"hostAuthorizationError,omitempty"`
|
||||||
|
HostAuthorizationId *uuid.UUID `json:"hostAuthorizationId,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type HostAuthorizationError string
|
||||||
|
|
||||||
|
type hostAuthorizationErrorValuesType struct {
|
||||||
|
None HostAuthorizationError
|
||||||
|
ClientIdRequired HostAuthorizationError
|
||||||
|
AccessDenied HostAuthorizationError
|
||||||
|
FailedToAuthorizeHost HostAuthorizationError
|
||||||
|
ClientIdNotFound HostAuthorizationError
|
||||||
|
InvalidClientId HostAuthorizationError
|
||||||
|
}
|
||||||
|
|
||||||
|
var HostAuthorizationErrorValues = hostAuthorizationErrorValuesType{
|
||||||
|
None: "none",
|
||||||
|
ClientIdRequired: "clientIdRequired",
|
||||||
|
AccessDenied: "accessDenied",
|
||||||
|
FailedToAuthorizeHost: "failedToAuthorizeHost",
|
||||||
|
ClientIdNotFound: "clientIdNotFound",
|
||||||
|
InvalidClientId: "invalidClientId",
|
||||||
|
}
|
||||||
|
|
||||||
|
type InitiationError string
|
||||||
|
|
||||||
|
type initiationErrorValuesType struct {
|
||||||
|
None InitiationError
|
||||||
|
ClientIdRequired InitiationError
|
||||||
|
InvalidClientId InitiationError
|
||||||
|
ResponseTypeRequired InitiationError
|
||||||
|
ResponseTypeNotSupported InitiationError
|
||||||
|
ScopeRequired InitiationError
|
||||||
|
InvalidScope InitiationError
|
||||||
|
RedirectUriRequired InitiationError
|
||||||
|
InsecureRedirectUri InitiationError
|
||||||
|
InvalidRedirectUri InitiationError
|
||||||
|
}
|
||||||
|
|
||||||
|
var InitiationErrorValues = initiationErrorValuesType{
|
||||||
|
None: "none",
|
||||||
|
ClientIdRequired: "clientIdRequired",
|
||||||
|
InvalidClientId: "invalidClientId",
|
||||||
|
ResponseTypeRequired: "responseTypeRequired",
|
||||||
|
ResponseTypeNotSupported: "responseTypeNotSupported",
|
||||||
|
ScopeRequired: "scopeRequired",
|
||||||
|
InvalidScope: "invalidScope",
|
||||||
|
RedirectUriRequired: "redirectUriRequired",
|
||||||
|
InsecureRedirectUri: "insecureRedirectUri",
|
||||||
|
InvalidRedirectUri: "invalidRedirectUri",
|
||||||
|
}
|
||||||
|
|
||||||
|
type RefreshTokenGrant struct {
|
||||||
|
GrantType *GrantType `json:"grantType,omitempty"`
|
||||||
|
Jwt *webapi.JsonWebToken `json:"jwt,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Registration struct {
|
||||||
|
ClientType *ClientType `json:"clientType,omitempty"`
|
||||||
|
IdentityId *uuid.UUID `json:"identityId,omitempty"`
|
||||||
|
Issuer *string `json:"issuer,omitempty"`
|
||||||
|
IsValid *bool `json:"isValid,omitempty"`
|
||||||
|
IsWellKnown *bool `json:"isWellKnown,omitempty"`
|
||||||
|
OrganizationLocation *string `json:"organizationLocation,omitempty"`
|
||||||
|
OrganizationName *string `json:"organizationName,omitempty"`
|
||||||
|
// Raw cert data string from public key. This will be used for authenticating medium trust clients.
|
||||||
|
PublicKey *string `json:"publicKey,omitempty"`
|
||||||
|
RedirectUris *[]string `json:"redirectUris,omitempty"`
|
||||||
|
RegistrationDescription *string `json:"registrationDescription,omitempty"`
|
||||||
|
RegistrationId *uuid.UUID `json:"registrationId,omitempty"`
|
||||||
|
RegistrationLocation *string `json:"registrationLocation,omitempty"`
|
||||||
|
RegistrationLogoSecureLocation *string `json:"registrationLogoSecureLocation,omitempty"`
|
||||||
|
RegistrationName *string `json:"registrationName,omitempty"`
|
||||||
|
RegistrationPrivacyStatementLocation *string `json:"registrationPrivacyStatementLocation,omitempty"`
|
||||||
|
RegistrationTermsOfServiceLocation *string `json:"registrationTermsOfServiceLocation,omitempty"`
|
||||||
|
ResponseTypes *string `json:"responseTypes,omitempty"`
|
||||||
|
Scopes *string `json:"scopes,omitempty"`
|
||||||
|
Secret *string `json:"secret,omitempty"`
|
||||||
|
SecretValidTo *azuredevops.Time `json:"secretValidTo,omitempty"`
|
||||||
|
SecretVersionId *uuid.UUID `json:"secretVersionId,omitempty"`
|
||||||
|
ValidFrom *azuredevops.Time `json:"validFrom,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ResponseType string
|
||||||
|
|
||||||
|
type responseTypeValuesType struct {
|
||||||
|
None ResponseType
|
||||||
|
Assertion ResponseType
|
||||||
|
IdToken ResponseType
|
||||||
|
TenantPicker ResponseType
|
||||||
|
SignoutToken ResponseType
|
||||||
|
AppToken ResponseType
|
||||||
|
Code ResponseType
|
||||||
|
}
|
||||||
|
|
||||||
|
var ResponseTypeValues = responseTypeValuesType{
|
||||||
|
None: "none",
|
||||||
|
Assertion: "assertion",
|
||||||
|
IdToken: "idToken",
|
||||||
|
TenantPicker: "tenantPicker",
|
||||||
|
SignoutToken: "signoutToken",
|
||||||
|
AppToken: "appToken",
|
||||||
|
Code: "code",
|
||||||
|
}
|
||||||
|
|
||||||
|
type SessionToken struct {
|
||||||
|
AccessId *uuid.UUID `json:"accessId,omitempty"`
|
||||||
|
// This is populated when user requests a compact token. The alternate token value is self describing token.
|
||||||
|
AlternateToken *string `json:"alternateToken,omitempty"`
|
||||||
|
AuthorizationId *uuid.UUID `json:"authorizationId,omitempty"`
|
||||||
|
Claims *map[string]string `json:"claims,omitempty"`
|
||||||
|
ClientId *uuid.UUID `json:"clientId,omitempty"`
|
||||||
|
DisplayName *string `json:"displayName,omitempty"`
|
||||||
|
HostAuthorizationId *uuid.UUID `json:"hostAuthorizationId,omitempty"`
|
||||||
|
IsPublic *bool `json:"isPublic,omitempty"`
|
||||||
|
IsValid *bool `json:"isValid,omitempty"`
|
||||||
|
PublicData *string `json:"publicData,omitempty"`
|
||||||
|
Scope *string `json:"scope,omitempty"`
|
||||||
|
Source *string `json:"source,omitempty"`
|
||||||
|
TargetAccounts *[]uuid.UUID `json:"targetAccounts,omitempty"`
|
||||||
|
// This is computed and not returned in Get queries
|
||||||
|
Token *string `json:"token,omitempty"`
|
||||||
|
UserId *uuid.UUID `json:"userId,omitempty"`
|
||||||
|
ValidFrom *azuredevops.Time `json:"validFrom,omitempty"`
|
||||||
|
ValidTo *azuredevops.Time `json:"validTo,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TokenError string
|
||||||
|
|
||||||
|
type tokenErrorValuesType struct {
|
||||||
|
None TokenError
|
||||||
|
GrantTypeRequired TokenError
|
||||||
|
AuthorizationGrantRequired TokenError
|
||||||
|
ClientSecretRequired TokenError
|
||||||
|
RedirectUriRequired TokenError
|
||||||
|
InvalidAuthorizationGrant TokenError
|
||||||
|
InvalidAuthorizationScopes TokenError
|
||||||
|
InvalidRefreshToken TokenError
|
||||||
|
AuthorizationNotFound TokenError
|
||||||
|
AuthorizationGrantExpired TokenError
|
||||||
|
AccessAlreadyIssued TokenError
|
||||||
|
InvalidRedirectUri TokenError
|
||||||
|
AccessTokenNotFound TokenError
|
||||||
|
InvalidAccessToken TokenError
|
||||||
|
AccessTokenAlreadyRefreshed TokenError
|
||||||
|
InvalidClientSecret TokenError
|
||||||
|
ClientSecretExpired TokenError
|
||||||
|
ServerError TokenError
|
||||||
|
AccessDenied TokenError
|
||||||
|
AccessTokenKeyRequired TokenError
|
||||||
|
InvalidAccessTokenKey TokenError
|
||||||
|
FailedToGetAccessToken TokenError
|
||||||
|
InvalidClientId TokenError
|
||||||
|
InvalidClient TokenError
|
||||||
|
InvalidValidTo TokenError
|
||||||
|
InvalidUserId TokenError
|
||||||
|
FailedToIssueAccessToken TokenError
|
||||||
|
AuthorizationGrantScopeMissing TokenError
|
||||||
|
InvalidPublicAccessTokenKey TokenError
|
||||||
|
InvalidPublicAccessToken TokenError
|
||||||
|
PublicFeatureFlagNotEnabled TokenError
|
||||||
|
SshPolicyDisabled TokenError
|
||||||
|
}
|
||||||
|
|
||||||
|
var TokenErrorValues = tokenErrorValuesType{
|
||||||
|
None: "none",
|
||||||
|
GrantTypeRequired: "grantTypeRequired",
|
||||||
|
AuthorizationGrantRequired: "authorizationGrantRequired",
|
||||||
|
ClientSecretRequired: "clientSecretRequired",
|
||||||
|
RedirectUriRequired: "redirectUriRequired",
|
||||||
|
InvalidAuthorizationGrant: "invalidAuthorizationGrant",
|
||||||
|
InvalidAuthorizationScopes: "invalidAuthorizationScopes",
|
||||||
|
InvalidRefreshToken: "invalidRefreshToken",
|
||||||
|
AuthorizationNotFound: "authorizationNotFound",
|
||||||
|
AuthorizationGrantExpired: "authorizationGrantExpired",
|
||||||
|
AccessAlreadyIssued: "accessAlreadyIssued",
|
||||||
|
InvalidRedirectUri: "invalidRedirectUri",
|
||||||
|
AccessTokenNotFound: "accessTokenNotFound",
|
||||||
|
InvalidAccessToken: "invalidAccessToken",
|
||||||
|
AccessTokenAlreadyRefreshed: "accessTokenAlreadyRefreshed",
|
||||||
|
InvalidClientSecret: "invalidClientSecret",
|
||||||
|
ClientSecretExpired: "clientSecretExpired",
|
||||||
|
ServerError: "serverError",
|
||||||
|
AccessDenied: "accessDenied",
|
||||||
|
AccessTokenKeyRequired: "accessTokenKeyRequired",
|
||||||
|
InvalidAccessTokenKey: "invalidAccessTokenKey",
|
||||||
|
FailedToGetAccessToken: "failedToGetAccessToken",
|
||||||
|
InvalidClientId: "invalidClientId",
|
||||||
|
InvalidClient: "invalidClient",
|
||||||
|
InvalidValidTo: "invalidValidTo",
|
||||||
|
InvalidUserId: "invalidUserId",
|
||||||
|
FailedToIssueAccessToken: "failedToIssueAccessToken",
|
||||||
|
AuthorizationGrantScopeMissing: "authorizationGrantScopeMissing",
|
||||||
|
InvalidPublicAccessTokenKey: "invalidPublicAccessTokenKey",
|
||||||
|
InvalidPublicAccessToken: "invalidPublicAccessToken",
|
||||||
|
PublicFeatureFlagNotEnabled: "publicFeatureFlagNotEnabled",
|
||||||
|
SshPolicyDisabled: "sshPolicyDisabled",
|
||||||
|
}
|
80
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/distributedtaskcommon/models.go
generated
vendored
Normal file
80
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/distributedtaskcommon/models.go
generated
vendored
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package distributedtaskcommon
|
||||||
|
|
||||||
|
type AuthorizationHeader struct {
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
Value *string `json:"value,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Represents binding of data source for the service endpoint request.
|
||||||
|
type DataSourceBindingBase struct {
|
||||||
|
// Pagination format supported by this data source(ContinuationToken/SkipTop).
|
||||||
|
CallbackContextTemplate *string `json:"callbackContextTemplate,omitempty"`
|
||||||
|
// Subsequent calls needed?
|
||||||
|
CallbackRequiredTemplate *string `json:"callbackRequiredTemplate,omitempty"`
|
||||||
|
// Gets or sets the name of the data source.
|
||||||
|
DataSourceName *string `json:"dataSourceName,omitempty"`
|
||||||
|
// Gets or sets the endpoint Id.
|
||||||
|
EndpointId *string `json:"endpointId,omitempty"`
|
||||||
|
// Gets or sets the url of the service endpoint.
|
||||||
|
EndpointUrl *string `json:"endpointUrl,omitempty"`
|
||||||
|
// Gets or sets the authorization headers.
|
||||||
|
Headers *[]AuthorizationHeader `json:"headers,omitempty"`
|
||||||
|
// Defines the initial value of the query params
|
||||||
|
InitialContextTemplate *string `json:"initialContextTemplate,omitempty"`
|
||||||
|
// Gets or sets the parameters for the data source.
|
||||||
|
Parameters *map[string]string `json:"parameters,omitempty"`
|
||||||
|
// Gets or sets http request body
|
||||||
|
RequestContent *string `json:"requestContent,omitempty"`
|
||||||
|
// Gets or sets http request verb
|
||||||
|
RequestVerb *string `json:"requestVerb,omitempty"`
|
||||||
|
// Gets or sets the result selector.
|
||||||
|
ResultSelector *string `json:"resultSelector,omitempty"`
|
||||||
|
// Gets or sets the result template.
|
||||||
|
ResultTemplate *string `json:"resultTemplate,omitempty"`
|
||||||
|
// Gets or sets the target of the data source.
|
||||||
|
Target *string `json:"target,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProcessParameters struct {
|
||||||
|
DataSourceBindings *[]DataSourceBindingBase `json:"dataSourceBindings,omitempty"`
|
||||||
|
Inputs *[]TaskInputDefinitionBase `json:"inputs,omitempty"`
|
||||||
|
SourceDefinitions *[]TaskSourceDefinitionBase `json:"sourceDefinitions,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TaskInputDefinitionBase struct {
|
||||||
|
Aliases *[]string `json:"aliases,omitempty"`
|
||||||
|
DefaultValue *string `json:"defaultValue,omitempty"`
|
||||||
|
GroupName *string `json:"groupName,omitempty"`
|
||||||
|
HelpMarkDown *string `json:"helpMarkDown,omitempty"`
|
||||||
|
Label *string `json:"label,omitempty"`
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
Options *map[string]string `json:"options,omitempty"`
|
||||||
|
Properties *map[string]string `json:"properties,omitempty"`
|
||||||
|
Required *bool `json:"required,omitempty"`
|
||||||
|
Type *string `json:"type,omitempty"`
|
||||||
|
Validation *TaskInputValidation `json:"validation,omitempty"`
|
||||||
|
VisibleRule *string `json:"visibleRule,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TaskInputValidation struct {
|
||||||
|
// Conditional expression
|
||||||
|
Expression *string `json:"expression,omitempty"`
|
||||||
|
// Message explaining how user can correct if validation fails
|
||||||
|
Message *string `json:"message,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TaskSourceDefinitionBase struct {
|
||||||
|
AuthKey *string `json:"authKey,omitempty"`
|
||||||
|
Endpoint *string `json:"endpoint,omitempty"`
|
||||||
|
KeySelector *string `json:"keySelector,omitempty"`
|
||||||
|
Selector *string `json:"selector,omitempty"`
|
||||||
|
Target *string `json:"target,omitempty"`
|
||||||
|
}
|
17
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/errors.go
generated
vendored
Normal file
17
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/errors.go
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package azuredevops
|
||||||
|
|
||||||
|
type ArgumentNilError struct {
|
||||||
|
ArgumentName string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e ArgumentNilError) Error() string {
|
||||||
|
return "Argument " + e.ArgumentName + " can not be nil"
|
||||||
|
}
|
||||||
|
|
||||||
|
type ArgumentNilOrEmptyError struct {
|
||||||
|
ArgumentName string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e ArgumentNilOrEmptyError) Error() string {
|
||||||
|
return "Argument " + e.ArgumentName + " can not be nil or empty"
|
||||||
|
}
|
5456
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/git/client.go
generated
vendored
Normal file
5456
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/git/client.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3129
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/git/models.go
generated
vendored
Normal file
3129
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/git/models.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
5
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/go.mod
generated
vendored
Normal file
5
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/go.mod
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
module github.com/microsoft/azure-devops-go-api/azuredevops
|
||||||
|
|
||||||
|
go 1.12
|
||||||
|
|
||||||
|
require github.com/google/uuid v1.1.1
|
2
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/go.sum
generated
vendored
Normal file
2
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/go.sum
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
||||||
|
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
942
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/identity/client.go
generated
vendored
Normal file
942
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/identity/client.go
generated
vendored
Normal file
@ -0,0 +1,942 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package identity
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops/delegatedauthorization"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops/webapi"
|
||||||
|
"net/http"
|
||||||
|
"net/url"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
var ResourceAreaId, _ = uuid.Parse("8a3d49b8-91f0-46ef-b33d-dda338c25db3")
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
Client azuredevops.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClient(ctx context.Context, connection *azuredevops.Connection) (*Client, error) {
|
||||||
|
client, err := connection.GetClientByResourceAreaId(ctx, ResourceAreaId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &Client{
|
||||||
|
Client: *client,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) CreateOrBindWithClaims(ctx context.Context, args CreateOrBindWithClaimsArgs) (*Identity, error) {
|
||||||
|
if args.SourceIdentity == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.SourceIdentity"}
|
||||||
|
}
|
||||||
|
body, marshalErr := json.Marshal(*args.SourceIdentity)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("90ddfe71-171c-446c-bf3b-b597cd562afd")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPut, locationId, "5.1-preview.1", nil, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue Identity
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the CreateOrBindWithClaims function
|
||||||
|
type CreateOrBindWithClaimsArgs struct {
|
||||||
|
// (required)
|
||||||
|
SourceIdentity *Identity
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) GetDescriptorById(ctx context.Context, args GetDescriptorByIdArgs) (*string, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Id == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Id"}
|
||||||
|
}
|
||||||
|
routeValues["id"] = (*args.Id).String()
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.IsMasterId != nil {
|
||||||
|
queryParams.Add("isMasterId", strconv.FormatBool(*args.IsMasterId))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("a230389a-94f2-496c-839f-c929787496dd")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue string
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetDescriptorById function
|
||||||
|
type GetDescriptorByIdArgs struct {
|
||||||
|
// (required)
|
||||||
|
Id *uuid.UUID
|
||||||
|
// (optional)
|
||||||
|
IsMasterId *bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) CreateGroups(ctx context.Context, args CreateGroupsArgs) (*[]Identity, error) {
|
||||||
|
if args.Container == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Container"}
|
||||||
|
}
|
||||||
|
body, marshalErr := json.Marshal(args.Container)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("5966283b-4196-4d57-9211-1b68f41ec1c2")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1", nil, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []Identity
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the CreateGroups function
|
||||||
|
type CreateGroupsArgs struct {
|
||||||
|
// (required)
|
||||||
|
Container interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) DeleteGroup(ctx context.Context, args DeleteGroupArgs) error {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.GroupId == nil || *args.GroupId == "" {
|
||||||
|
return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.GroupId"}
|
||||||
|
}
|
||||||
|
routeValues["groupId"] = *args.GroupId
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("5966283b-4196-4d57-9211-1b68f41ec1c2")
|
||||||
|
_, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the DeleteGroup function
|
||||||
|
type DeleteGroupArgs struct {
|
||||||
|
// (required)
|
||||||
|
GroupId *string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) ListGroups(ctx context.Context, args ListGroupsArgs) (*[]Identity, error) {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.ScopeIds != nil {
|
||||||
|
queryParams.Add("scopeIds", *args.ScopeIds)
|
||||||
|
}
|
||||||
|
if args.Recurse != nil {
|
||||||
|
queryParams.Add("recurse", strconv.FormatBool(*args.Recurse))
|
||||||
|
}
|
||||||
|
if args.Deleted != nil {
|
||||||
|
queryParams.Add("deleted", strconv.FormatBool(*args.Deleted))
|
||||||
|
}
|
||||||
|
if args.Properties != nil {
|
||||||
|
queryParams.Add("properties", *args.Properties)
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("5966283b-4196-4d57-9211-1b68f41ec1c2")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []Identity
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the ListGroups function
|
||||||
|
type ListGroupsArgs struct {
|
||||||
|
// (optional)
|
||||||
|
ScopeIds *string
|
||||||
|
// (optional)
|
||||||
|
Recurse *bool
|
||||||
|
// (optional)
|
||||||
|
Deleted *bool
|
||||||
|
// (optional)
|
||||||
|
Properties *string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) GetIdentityChanges(ctx context.Context, args GetIdentityChangesArgs) (*ChangedIdentities, error) {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.IdentitySequenceId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "identitySequenceId"}
|
||||||
|
}
|
||||||
|
queryParams.Add("identitySequenceId", strconv.Itoa(*args.IdentitySequenceId))
|
||||||
|
if args.GroupSequenceId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "groupSequenceId"}
|
||||||
|
}
|
||||||
|
queryParams.Add("groupSequenceId", strconv.Itoa(*args.GroupSequenceId))
|
||||||
|
if args.OrganizationIdentitySequenceId != nil {
|
||||||
|
queryParams.Add("organizationIdentitySequenceId", strconv.Itoa(*args.OrganizationIdentitySequenceId))
|
||||||
|
}
|
||||||
|
if args.PageSize != nil {
|
||||||
|
queryParams.Add("pageSize", strconv.Itoa(*args.PageSize))
|
||||||
|
}
|
||||||
|
if args.ScopeId != nil {
|
||||||
|
queryParams.Add("scopeId", (*args.ScopeId).String())
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("28010c54-d0c0-4c89-a5b0-1c9e188b9fb7")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue ChangedIdentities
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetIdentityChanges function
|
||||||
|
type GetIdentityChangesArgs struct {
|
||||||
|
// (required)
|
||||||
|
IdentitySequenceId *int
|
||||||
|
// (required)
|
||||||
|
GroupSequenceId *int
|
||||||
|
// (optional)
|
||||||
|
OrganizationIdentitySequenceId *int
|
||||||
|
// (optional)
|
||||||
|
PageSize *int
|
||||||
|
// (optional)
|
||||||
|
ScopeId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) GetUserIdentityIdsByDomainId(ctx context.Context, args GetUserIdentityIdsByDomainIdArgs) (*[]uuid.UUID, error) {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.DomainId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "domainId"}
|
||||||
|
}
|
||||||
|
queryParams.Add("domainId", (*args.DomainId).String())
|
||||||
|
locationId, _ := uuid.Parse("28010c54-d0c0-4c89-a5b0-1c9e188b9fb7")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []uuid.UUID
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetUserIdentityIdsByDomainId function
|
||||||
|
type GetUserIdentityIdsByDomainIdArgs struct {
|
||||||
|
// (required)
|
||||||
|
DomainId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) ReadIdentities(ctx context.Context, args ReadIdentitiesArgs) (*[]Identity, error) {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.Descriptors != nil {
|
||||||
|
queryParams.Add("descriptors", *args.Descriptors)
|
||||||
|
}
|
||||||
|
if args.IdentityIds != nil {
|
||||||
|
queryParams.Add("identityIds", *args.IdentityIds)
|
||||||
|
}
|
||||||
|
if args.SubjectDescriptors != nil {
|
||||||
|
queryParams.Add("subjectDescriptors", *args.SubjectDescriptors)
|
||||||
|
}
|
||||||
|
if args.SocialDescriptors != nil {
|
||||||
|
queryParams.Add("socialDescriptors", *args.SocialDescriptors)
|
||||||
|
}
|
||||||
|
if args.SearchFilter != nil {
|
||||||
|
queryParams.Add("searchFilter", *args.SearchFilter)
|
||||||
|
}
|
||||||
|
if args.FilterValue != nil {
|
||||||
|
queryParams.Add("filterValue", *args.FilterValue)
|
||||||
|
}
|
||||||
|
if args.QueryMembership != nil {
|
||||||
|
queryParams.Add("queryMembership", string(*args.QueryMembership))
|
||||||
|
}
|
||||||
|
if args.Properties != nil {
|
||||||
|
queryParams.Add("properties", *args.Properties)
|
||||||
|
}
|
||||||
|
if args.IncludeRestrictedVisibility != nil {
|
||||||
|
queryParams.Add("includeRestrictedVisibility", strconv.FormatBool(*args.IncludeRestrictedVisibility))
|
||||||
|
}
|
||||||
|
if args.Options != nil {
|
||||||
|
queryParams.Add("options", string(*args.Options))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("28010c54-d0c0-4c89-a5b0-1c9e188b9fb7")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []Identity
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the ReadIdentities function
|
||||||
|
type ReadIdentitiesArgs struct {
|
||||||
|
// (optional)
|
||||||
|
Descriptors *string
|
||||||
|
// (optional)
|
||||||
|
IdentityIds *string
|
||||||
|
// (optional)
|
||||||
|
SubjectDescriptors *string
|
||||||
|
// (optional)
|
||||||
|
SocialDescriptors *string
|
||||||
|
// (optional)
|
||||||
|
SearchFilter *string
|
||||||
|
// (optional)
|
||||||
|
FilterValue *string
|
||||||
|
// (optional)
|
||||||
|
QueryMembership *QueryMembership
|
||||||
|
// (optional)
|
||||||
|
Properties *string
|
||||||
|
// (optional)
|
||||||
|
IncludeRestrictedVisibility *bool
|
||||||
|
// (optional)
|
||||||
|
Options *ReadIdentitiesOptions
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) ReadIdentitiesByScope(ctx context.Context, args ReadIdentitiesByScopeArgs) (*[]Identity, error) {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.ScopeId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "scopeId"}
|
||||||
|
}
|
||||||
|
queryParams.Add("scopeId", (*args.ScopeId).String())
|
||||||
|
if args.QueryMembership != nil {
|
||||||
|
queryParams.Add("queryMembership", string(*args.QueryMembership))
|
||||||
|
}
|
||||||
|
if args.Properties != nil {
|
||||||
|
queryParams.Add("properties", *args.Properties)
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("28010c54-d0c0-4c89-a5b0-1c9e188b9fb7")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []Identity
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the ReadIdentitiesByScope function
|
||||||
|
type ReadIdentitiesByScopeArgs struct {
|
||||||
|
// (required)
|
||||||
|
ScopeId *uuid.UUID
|
||||||
|
// (optional)
|
||||||
|
QueryMembership *QueryMembership
|
||||||
|
// (optional)
|
||||||
|
Properties *string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) ReadIdentity(ctx context.Context, args ReadIdentityArgs) (*Identity, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.IdentityId == nil || *args.IdentityId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.IdentityId"}
|
||||||
|
}
|
||||||
|
routeValues["identityId"] = *args.IdentityId
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.QueryMembership != nil {
|
||||||
|
queryParams.Add("queryMembership", string(*args.QueryMembership))
|
||||||
|
}
|
||||||
|
if args.Properties != nil {
|
||||||
|
queryParams.Add("properties", *args.Properties)
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("28010c54-d0c0-4c89-a5b0-1c9e188b9fb7")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue Identity
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the ReadIdentity function
|
||||||
|
type ReadIdentityArgs struct {
|
||||||
|
// (required)
|
||||||
|
IdentityId *string
|
||||||
|
// (optional)
|
||||||
|
QueryMembership *QueryMembership
|
||||||
|
// (optional)
|
||||||
|
Properties *string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) UpdateIdentities(ctx context.Context, args UpdateIdentitiesArgs) (*[]IdentityUpdateData, error) {
|
||||||
|
if args.Identities == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Identities"}
|
||||||
|
}
|
||||||
|
body, marshalErr := json.Marshal(*args.Identities)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("28010c54-d0c0-4c89-a5b0-1c9e188b9fb7")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPut, locationId, "5.1", nil, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []IdentityUpdateData
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the UpdateIdentities function
|
||||||
|
type UpdateIdentitiesArgs struct {
|
||||||
|
// (required)
|
||||||
|
Identities *azuredevops.VssJsonCollectionWrapper
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) UpdateIdentity(ctx context.Context, args UpdateIdentityArgs) error {
|
||||||
|
if args.Identity == nil {
|
||||||
|
return &azuredevops.ArgumentNilError{ArgumentName: "args.Identity"}
|
||||||
|
}
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.IdentityId == nil {
|
||||||
|
return &azuredevops.ArgumentNilError{ArgumentName: "args.IdentityId"}
|
||||||
|
}
|
||||||
|
routeValues["identityId"] = (*args.IdentityId).String()
|
||||||
|
|
||||||
|
body, marshalErr := json.Marshal(*args.Identity)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("28010c54-d0c0-4c89-a5b0-1c9e188b9fb7")
|
||||||
|
_, err := client.Client.Send(ctx, http.MethodPut, locationId, "5.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the UpdateIdentity function
|
||||||
|
type UpdateIdentityArgs struct {
|
||||||
|
// (required)
|
||||||
|
Identity *Identity
|
||||||
|
// (required)
|
||||||
|
IdentityId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (client *Client) CreateIdentity(ctx context.Context, args CreateIdentityArgs) (*Identity, error) {
|
||||||
|
if args.FrameworkIdentityInfo == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.FrameworkIdentityInfo"}
|
||||||
|
}
|
||||||
|
body, marshalErr := json.Marshal(*args.FrameworkIdentityInfo)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("dd55f0eb-6ea2-4fe4-9ebe-919e7dd1dfb4")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPut, locationId, "5.1", nil, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue Identity
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the CreateIdentity function
|
||||||
|
type CreateIdentityArgs struct {
|
||||||
|
// (required)
|
||||||
|
FrameworkIdentityInfo *FrameworkIdentityInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) ReadIdentityBatch(ctx context.Context, args ReadIdentityBatchArgs) (*[]Identity, error) {
|
||||||
|
if args.BatchInfo == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.BatchInfo"}
|
||||||
|
}
|
||||||
|
body, marshalErr := json.Marshal(*args.BatchInfo)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("299e50df-fe45-4d3a-8b5b-a5836fac74dc")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1-preview.1", nil, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []Identity
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the ReadIdentityBatch function
|
||||||
|
type ReadIdentityBatchArgs struct {
|
||||||
|
// (required)
|
||||||
|
BatchInfo *IdentityBatchInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) GetIdentitySnapshot(ctx context.Context, args GetIdentitySnapshotArgs) (*IdentitySnapshot, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ScopeId == nil || *args.ScopeId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ScopeId"}
|
||||||
|
}
|
||||||
|
routeValues["scopeId"] = *args.ScopeId
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("d56223df-8ccd-45c9-89b4-eddf692400d7")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue IdentitySnapshot
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetIdentitySnapshot function
|
||||||
|
type GetIdentitySnapshotArgs struct {
|
||||||
|
// (required)
|
||||||
|
ScopeId *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read the max sequence id of all the identities.
|
||||||
|
func (client *Client) GetMaxSequenceId(ctx context.Context, args GetMaxSequenceIdArgs) (*uint64, error) {
|
||||||
|
locationId, _ := uuid.Parse("e4a70778-cb2c-4e85-b7cc-3f3c7ae2d408")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue uint64
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetMaxSequenceId function
|
||||||
|
type GetMaxSequenceIdArgs struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read identity of the home tenant request user.
|
||||||
|
func (client *Client) GetSelf(ctx context.Context, args GetSelfArgs) (*IdentitySelf, error) {
|
||||||
|
locationId, _ := uuid.Parse("4bb02b5b-c120-4be2-b68e-21f7c50a4b82")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue IdentitySelf
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetSelf function
|
||||||
|
type GetSelfArgs struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) AddMember(ctx context.Context, args AddMemberArgs) (*bool, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ContainerId == nil || *args.ContainerId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ContainerId"}
|
||||||
|
}
|
||||||
|
routeValues["containerId"] = *args.ContainerId
|
||||||
|
if args.MemberId == nil || *args.MemberId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.MemberId"}
|
||||||
|
}
|
||||||
|
routeValues["memberId"] = *args.MemberId
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("8ba35978-138e-41f8-8963-7b1ea2c5f775")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPut, locationId, "5.1-preview.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue bool
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the AddMember function
|
||||||
|
type AddMemberArgs struct {
|
||||||
|
// (required)
|
||||||
|
ContainerId *string
|
||||||
|
// (required)
|
||||||
|
MemberId *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) ReadMember(ctx context.Context, args ReadMemberArgs) (*string, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ContainerId == nil || *args.ContainerId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ContainerId"}
|
||||||
|
}
|
||||||
|
routeValues["containerId"] = *args.ContainerId
|
||||||
|
if args.MemberId == nil || *args.MemberId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.MemberId"}
|
||||||
|
}
|
||||||
|
routeValues["memberId"] = *args.MemberId
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.QueryMembership != nil {
|
||||||
|
queryParams.Add("queryMembership", string(*args.QueryMembership))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("8ba35978-138e-41f8-8963-7b1ea2c5f775")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue string
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the ReadMember function
|
||||||
|
type ReadMemberArgs struct {
|
||||||
|
// (required)
|
||||||
|
ContainerId *string
|
||||||
|
// (required)
|
||||||
|
MemberId *string
|
||||||
|
// (optional)
|
||||||
|
QueryMembership *QueryMembership
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) ReadMembers(ctx context.Context, args ReadMembersArgs) (*[]string, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ContainerId == nil || *args.ContainerId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ContainerId"}
|
||||||
|
}
|
||||||
|
routeValues["containerId"] = *args.ContainerId
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.QueryMembership != nil {
|
||||||
|
queryParams.Add("queryMembership", string(*args.QueryMembership))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("8ba35978-138e-41f8-8963-7b1ea2c5f775")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []string
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the ReadMembers function
|
||||||
|
type ReadMembersArgs struct {
|
||||||
|
// (required)
|
||||||
|
ContainerId *string
|
||||||
|
// (optional)
|
||||||
|
QueryMembership *QueryMembership
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) RemoveMember(ctx context.Context, args RemoveMemberArgs) (*bool, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ContainerId == nil || *args.ContainerId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ContainerId"}
|
||||||
|
}
|
||||||
|
routeValues["containerId"] = *args.ContainerId
|
||||||
|
if args.MemberId == nil || *args.MemberId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.MemberId"}
|
||||||
|
}
|
||||||
|
routeValues["memberId"] = *args.MemberId
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("8ba35978-138e-41f8-8963-7b1ea2c5f775")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1-preview.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue bool
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the RemoveMember function
|
||||||
|
type RemoveMemberArgs struct {
|
||||||
|
// (required)
|
||||||
|
ContainerId *string
|
||||||
|
// (required)
|
||||||
|
MemberId *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) ReadMemberOf(ctx context.Context, args ReadMemberOfArgs) (*string, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.MemberId == nil || *args.MemberId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.MemberId"}
|
||||||
|
}
|
||||||
|
routeValues["memberId"] = *args.MemberId
|
||||||
|
if args.ContainerId == nil || *args.ContainerId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ContainerId"}
|
||||||
|
}
|
||||||
|
routeValues["containerId"] = *args.ContainerId
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.QueryMembership != nil {
|
||||||
|
queryParams.Add("queryMembership", string(*args.QueryMembership))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("22865b02-9e4a-479e-9e18-e35b8803b8a0")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue string
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the ReadMemberOf function
|
||||||
|
type ReadMemberOfArgs struct {
|
||||||
|
// (required)
|
||||||
|
MemberId *string
|
||||||
|
// (required)
|
||||||
|
ContainerId *string
|
||||||
|
// (optional)
|
||||||
|
QueryMembership *QueryMembership
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) ReadMembersOf(ctx context.Context, args ReadMembersOfArgs) (*[]string, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.MemberId == nil || *args.MemberId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.MemberId"}
|
||||||
|
}
|
||||||
|
routeValues["memberId"] = *args.MemberId
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.QueryMembership != nil {
|
||||||
|
queryParams.Add("queryMembership", string(*args.QueryMembership))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("22865b02-9e4a-479e-9e18-e35b8803b8a0")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []string
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the ReadMembersOf function
|
||||||
|
type ReadMembersOfArgs struct {
|
||||||
|
// (required)
|
||||||
|
MemberId *string
|
||||||
|
// (optional)
|
||||||
|
QueryMembership *QueryMembership
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) CreateScope(ctx context.Context, args CreateScopeArgs) (*IdentityScope, error) {
|
||||||
|
if args.Info == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Info"}
|
||||||
|
}
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ScopeId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ScopeId"}
|
||||||
|
}
|
||||||
|
routeValues["scopeId"] = (*args.ScopeId).String()
|
||||||
|
|
||||||
|
body, marshalErr := json.Marshal(*args.Info)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("4e11e2bf-1e79-4eb5-8f34-a6337bd0de38")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPut, locationId, "5.1-preview.2", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue IdentityScope
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the CreateScope function
|
||||||
|
type CreateScopeArgs struct {
|
||||||
|
// (required)
|
||||||
|
Info *CreateScopeInfo
|
||||||
|
// (required)
|
||||||
|
ScopeId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) DeleteScope(ctx context.Context, args DeleteScopeArgs) error {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ScopeId == nil {
|
||||||
|
return &azuredevops.ArgumentNilError{ArgumentName: "args.ScopeId"}
|
||||||
|
}
|
||||||
|
routeValues["scopeId"] = (*args.ScopeId).String()
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("4e11e2bf-1e79-4eb5-8f34-a6337bd0de38")
|
||||||
|
_, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1-preview.2", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the DeleteScope function
|
||||||
|
type DeleteScopeArgs struct {
|
||||||
|
// (required)
|
||||||
|
ScopeId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) GetScopeById(ctx context.Context, args GetScopeByIdArgs) (*IdentityScope, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ScopeId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ScopeId"}
|
||||||
|
}
|
||||||
|
routeValues["scopeId"] = (*args.ScopeId).String()
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("4e11e2bf-1e79-4eb5-8f34-a6337bd0de38")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.2", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue IdentityScope
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetScopeById function
|
||||||
|
type GetScopeByIdArgs struct {
|
||||||
|
// (required)
|
||||||
|
ScopeId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) GetScopeByName(ctx context.Context, args GetScopeByNameArgs) (*IdentityScope, error) {
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.ScopeName == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "scopeName"}
|
||||||
|
}
|
||||||
|
queryParams.Add("scopeName", *args.ScopeName)
|
||||||
|
locationId, _ := uuid.Parse("4e11e2bf-1e79-4eb5-8f34-a6337bd0de38")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.2", nil, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue IdentityScope
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetScopeByName function
|
||||||
|
type GetScopeByNameArgs struct {
|
||||||
|
// (required)
|
||||||
|
ScopeName *string
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) UpdateScope(ctx context.Context, args UpdateScopeArgs) error {
|
||||||
|
if args.PatchDocument == nil {
|
||||||
|
return &azuredevops.ArgumentNilError{ArgumentName: "args.PatchDocument"}
|
||||||
|
}
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.ScopeId == nil {
|
||||||
|
return &azuredevops.ArgumentNilError{ArgumentName: "args.ScopeId"}
|
||||||
|
}
|
||||||
|
routeValues["scopeId"] = (*args.ScopeId).String()
|
||||||
|
|
||||||
|
body, marshalErr := json.Marshal(*args.PatchDocument)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("4e11e2bf-1e79-4eb5-8f34-a6337bd0de38")
|
||||||
|
_, err := client.Client.Send(ctx, http.MethodPatch, locationId, "5.1-preview.2", routeValues, nil, bytes.NewReader(body), "application/json-patch+json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the UpdateScope function
|
||||||
|
type UpdateScopeArgs struct {
|
||||||
|
// (required)
|
||||||
|
PatchDocument *[]webapi.JsonPatchOperation
|
||||||
|
// (required)
|
||||||
|
ScopeId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) GetSignedInToken(ctx context.Context, args GetSignedInTokenArgs) (*delegatedauthorization.AccessTokenResult, error) {
|
||||||
|
locationId, _ := uuid.Parse("6074ff18-aaad-4abb-a41e-5c75f6178057")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", nil, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue delegatedauthorization.AccessTokenResult
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetSignedInToken function
|
||||||
|
type GetSignedInTokenArgs struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) GetSignoutToken(ctx context.Context, args GetSignoutTokenArgs) (*delegatedauthorization.AccessTokenResult, error) {
|
||||||
|
locationId, _ := uuid.Parse("be39e83c-7529-45e9-9c67-0410885880da")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", nil, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue delegatedauthorization.AccessTokenResult
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetSignoutToken function
|
||||||
|
type GetSignoutTokenArgs struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API]
|
||||||
|
func (client *Client) GetTenant(ctx context.Context, args GetTenantArgs) (*TenantInfo, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.TenantId == nil || *args.TenantId == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.TenantId"}
|
||||||
|
}
|
||||||
|
routeValues["tenantId"] = *args.TenantId
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("5f0a1723-2e2c-4c31-8cae-002d01bdd592")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue TenantInfo
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetTenant function
|
||||||
|
type GetTenantArgs struct {
|
||||||
|
// (required)
|
||||||
|
TenantId *string
|
||||||
|
}
|
234
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/identity/models.go
generated
vendored
Normal file
234
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/identity/models.go
generated
vendored
Normal file
@ -0,0 +1,234 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package identity
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/google/uuid"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Container class for changed identities
|
||||||
|
type ChangedIdentities struct {
|
||||||
|
// Changed Identities
|
||||||
|
Identities *[]Identity `json:"identities,omitempty"`
|
||||||
|
// More data available, set to true if pagesize is specified.
|
||||||
|
MoreData *bool `json:"moreData,omitempty"`
|
||||||
|
// Last Identity SequenceId
|
||||||
|
SequenceContext *ChangedIdentitiesContext `json:"sequenceContext,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Context class for changed identities
|
||||||
|
type ChangedIdentitiesContext struct {
|
||||||
|
// Last Group SequenceId
|
||||||
|
GroupSequenceId *int `json:"groupSequenceId,omitempty"`
|
||||||
|
// Last Identity SequenceId
|
||||||
|
IdentitySequenceId *int `json:"identitySequenceId,omitempty"`
|
||||||
|
// Last Group OrganizationIdentitySequenceId
|
||||||
|
OrganizationIdentitySequenceId *int `json:"organizationIdentitySequenceId,omitempty"`
|
||||||
|
// Page size
|
||||||
|
PageSize *int `json:"pageSize,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type CreateScopeInfo struct {
|
||||||
|
AdminGroupDescription *string `json:"adminGroupDescription,omitempty"`
|
||||||
|
AdminGroupName *string `json:"adminGroupName,omitempty"`
|
||||||
|
CreatorId *uuid.UUID `json:"creatorId,omitempty"`
|
||||||
|
ParentScopeId *uuid.UUID `json:"parentScopeId,omitempty"`
|
||||||
|
ScopeName *string `json:"scopeName,omitempty"`
|
||||||
|
ScopeType *GroupScopeType `json:"scopeType,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type FrameworkIdentityInfo struct {
|
||||||
|
DisplayName *string `json:"displayName,omitempty"`
|
||||||
|
Identifier *string `json:"identifier,omitempty"`
|
||||||
|
IdentityType *FrameworkIdentityType `json:"identityType,omitempty"`
|
||||||
|
Role *string `json:"role,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type FrameworkIdentityType string
|
||||||
|
|
||||||
|
type frameworkIdentityTypeValuesType struct {
|
||||||
|
None FrameworkIdentityType
|
||||||
|
ServiceIdentity FrameworkIdentityType
|
||||||
|
AggregateIdentity FrameworkIdentityType
|
||||||
|
ImportedIdentity FrameworkIdentityType
|
||||||
|
}
|
||||||
|
|
||||||
|
var FrameworkIdentityTypeValues = frameworkIdentityTypeValuesType{
|
||||||
|
None: "none",
|
||||||
|
ServiceIdentity: "serviceIdentity",
|
||||||
|
AggregateIdentity: "aggregateIdentity",
|
||||||
|
ImportedIdentity: "importedIdentity",
|
||||||
|
}
|
||||||
|
|
||||||
|
type GroupMembership struct {
|
||||||
|
Active *bool `json:"active,omitempty"`
|
||||||
|
Descriptor *string `json:"descriptor,omitempty"`
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
QueriedId *uuid.UUID `json:"queriedId,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GroupScopeType string
|
||||||
|
|
||||||
|
type groupScopeTypeValuesType struct {
|
||||||
|
Generic GroupScopeType
|
||||||
|
ServiceHost GroupScopeType
|
||||||
|
TeamProject GroupScopeType
|
||||||
|
}
|
||||||
|
|
||||||
|
var GroupScopeTypeValues = groupScopeTypeValuesType{
|
||||||
|
Generic: "generic",
|
||||||
|
ServiceHost: "serviceHost",
|
||||||
|
TeamProject: "teamProject",
|
||||||
|
}
|
||||||
|
|
||||||
|
type Identity struct {
|
||||||
|
// The custom display name for the identity (if any). Setting this property to an empty string will clear the existing custom display name. Setting this property to null will not affect the existing persisted value (since null values do not get sent over the wire or to the database)
|
||||||
|
CustomDisplayName *string `json:"customDisplayName,omitempty"`
|
||||||
|
Descriptor *string `json:"descriptor,omitempty"`
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
IsActive *bool `json:"isActive,omitempty"`
|
||||||
|
IsContainer *bool `json:"isContainer,omitempty"`
|
||||||
|
MasterId *uuid.UUID `json:"masterId,omitempty"`
|
||||||
|
MemberIds *[]uuid.UUID `json:"memberIds,omitempty"`
|
||||||
|
MemberOf *[]string `json:"memberOf,omitempty"`
|
||||||
|
Members *[]string `json:"members,omitempty"`
|
||||||
|
MetaTypeId *int `json:"metaTypeId,omitempty"`
|
||||||
|
Properties interface{} `json:"properties,omitempty"`
|
||||||
|
// The display name for the identity as specified by the source identity provider.
|
||||||
|
ProviderDisplayName *string `json:"providerDisplayName,omitempty"`
|
||||||
|
ResourceVersion *int `json:"resourceVersion,omitempty"`
|
||||||
|
SocialDescriptor *string `json:"socialDescriptor,omitempty"`
|
||||||
|
SubjectDescriptor *string `json:"subjectDescriptor,omitempty"`
|
||||||
|
UniqueUserId *int `json:"uniqueUserId,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Base Identity class to allow "trimmed" identity class in the GetConnectionData API Makes sure that on-the-wire representations of the derived classes are compatible with each other (e.g. Server responds with PublicIdentity object while client deserializes it as Identity object) Derived classes should not have additional [DataMember] properties
|
||||||
|
type IdentityBase struct {
|
||||||
|
// The custom display name for the identity (if any). Setting this property to an empty string will clear the existing custom display name. Setting this property to null will not affect the existing persisted value (since null values do not get sent over the wire or to the database)
|
||||||
|
CustomDisplayName *string `json:"customDisplayName,omitempty"`
|
||||||
|
Descriptor *string `json:"descriptor,omitempty"`
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
IsActive *bool `json:"isActive,omitempty"`
|
||||||
|
IsContainer *bool `json:"isContainer,omitempty"`
|
||||||
|
MasterId *uuid.UUID `json:"masterId,omitempty"`
|
||||||
|
MemberIds *[]uuid.UUID `json:"memberIds,omitempty"`
|
||||||
|
MemberOf *[]string `json:"memberOf,omitempty"`
|
||||||
|
Members *[]string `json:"members,omitempty"`
|
||||||
|
MetaTypeId *int `json:"metaTypeId,omitempty"`
|
||||||
|
Properties interface{} `json:"properties,omitempty"`
|
||||||
|
// The display name for the identity as specified by the source identity provider.
|
||||||
|
ProviderDisplayName *string `json:"providerDisplayName,omitempty"`
|
||||||
|
ResourceVersion *int `json:"resourceVersion,omitempty"`
|
||||||
|
SocialDescriptor *string `json:"socialDescriptor,omitempty"`
|
||||||
|
SubjectDescriptor *string `json:"subjectDescriptor,omitempty"`
|
||||||
|
UniqueUserId *int `json:"uniqueUserId,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type IdentityBatchInfo struct {
|
||||||
|
Descriptors *[]string `json:"descriptors,omitempty"`
|
||||||
|
IdentityIds *[]uuid.UUID `json:"identityIds,omitempty"`
|
||||||
|
IncludeRestrictedVisibility *bool `json:"includeRestrictedVisibility,omitempty"`
|
||||||
|
PropertyNames *[]string `json:"propertyNames,omitempty"`
|
||||||
|
QueryMembership *QueryMembership `json:"queryMembership,omitempty"`
|
||||||
|
SocialDescriptors *[]string `json:"socialDescriptors,omitempty"`
|
||||||
|
SubjectDescriptors *[]string `json:"subjectDescriptors,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type IdentityScope struct {
|
||||||
|
Administrators *string `json:"administrators,omitempty"`
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
IsActive *bool `json:"isActive,omitempty"`
|
||||||
|
IsGlobal *bool `json:"isGlobal,omitempty"`
|
||||||
|
LocalScopeId *uuid.UUID `json:"localScopeId,omitempty"`
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
ParentId *uuid.UUID `json:"parentId,omitempty"`
|
||||||
|
ScopeType *GroupScopeType `json:"scopeType,omitempty"`
|
||||||
|
SecuringHostId *uuid.UUID `json:"securingHostId,omitempty"`
|
||||||
|
SubjectDescriptor *string `json:"subjectDescriptor,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Identity information.
|
||||||
|
type IdentitySelf struct {
|
||||||
|
// The UserPrincipalName (UPN) of the account. This value comes from the source provider.
|
||||||
|
AccountName *string `json:"accountName,omitempty"`
|
||||||
|
// The display name. For AAD accounts with multiple tenants this is the display name of the profile in the home tenant.
|
||||||
|
DisplayName *string `json:"displayName,omitempty"`
|
||||||
|
// This represents the name of the container of origin. For AAD accounts this is the tenantID of the home tenant. For MSA accounts this is the string "Windows Live ID".
|
||||||
|
Domain *string `json:"domain,omitempty"`
|
||||||
|
// This is the VSID of the home tenant profile. If the profile is signed into the home tenant or if the profile has no tenants then this Id is the same as the Id returned by the profile/profiles/me endpoint. Going forward it is recommended that you use the combined values of Origin, OriginId and Domain to uniquely identify a user rather than this Id.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// The type of source provider for the origin identifier. For MSA accounts this is "msa". For AAD accounts this is "aad".
|
||||||
|
Origin *string `json:"origin,omitempty"`
|
||||||
|
// The unique identifier from the system of origin. If there are multiple tenants this is the unique identifier of the account in the home tenant. (For MSA this is the PUID in hex notation, for AAD this is the object id.)
|
||||||
|
OriginId *string `json:"originId,omitempty"`
|
||||||
|
// For AAD accounts this is all of the tenants that this account is a member of.
|
||||||
|
Tenants *[]TenantInfo `json:"tenants,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type IdentitySnapshot struct {
|
||||||
|
Groups *[]Identity `json:"groups,omitempty"`
|
||||||
|
IdentityIds *[]uuid.UUID `json:"identityIds,omitempty"`
|
||||||
|
Memberships *[]GroupMembership `json:"memberships,omitempty"`
|
||||||
|
ScopeId *uuid.UUID `json:"scopeId,omitempty"`
|
||||||
|
Scopes *[]IdentityScope `json:"scopes,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type IdentityUpdateData struct {
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
Index *int `json:"index,omitempty"`
|
||||||
|
Updated *bool `json:"updated,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type QueryMembership string
|
||||||
|
|
||||||
|
type queryMembershipValuesType struct {
|
||||||
|
None QueryMembership
|
||||||
|
Direct QueryMembership
|
||||||
|
Expanded QueryMembership
|
||||||
|
ExpandedUp QueryMembership
|
||||||
|
ExpandedDown QueryMembership
|
||||||
|
}
|
||||||
|
|
||||||
|
var QueryMembershipValues = queryMembershipValuesType{
|
||||||
|
// Query will not return any membership data
|
||||||
|
None: "none",
|
||||||
|
// Query will return only direct membership data
|
||||||
|
Direct: "direct",
|
||||||
|
// Query will return expanded membership data
|
||||||
|
Expanded: "expanded",
|
||||||
|
// Query will return expanded up membership data (parents only)
|
||||||
|
ExpandedUp: "expandedUp",
|
||||||
|
// Query will return expanded down membership data (children only)
|
||||||
|
ExpandedDown: "expandedDown",
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Flags]
|
||||||
|
type ReadIdentitiesOptions string
|
||||||
|
|
||||||
|
type readIdentitiesOptionsValuesType struct {
|
||||||
|
None ReadIdentitiesOptions
|
||||||
|
FilterIllegalMemberships ReadIdentitiesOptions
|
||||||
|
}
|
||||||
|
|
||||||
|
var ReadIdentitiesOptionsValues = readIdentitiesOptionsValuesType{
|
||||||
|
None: "none",
|
||||||
|
FilterIllegalMemberships: "filterIllegalMemberships",
|
||||||
|
}
|
||||||
|
|
||||||
|
type SwapIdentityInfo struct {
|
||||||
|
Id1 *uuid.UUID `json:"id1,omitempty"`
|
||||||
|
Id2 *uuid.UUID `json:"id2,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TenantInfo struct {
|
||||||
|
HomeTenant *bool `json:"homeTenant,omitempty"`
|
||||||
|
TenantId *uuid.UUID `json:"tenantId,omitempty"`
|
||||||
|
TenantName *string `json:"tenantName,omitempty"`
|
||||||
|
VerifiedDomains *[]string `json:"verifiedDomains,omitempty"`
|
||||||
|
}
|
130
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/models.go
generated
vendored
Normal file
130
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/models.go
generated
vendored
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
|
package azuredevops
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ApiResourceLocation Information about the location of a REST API resource
|
||||||
|
type ApiResourceLocation struct {
|
||||||
|
// Area name for this resource
|
||||||
|
Area *string `json:"area,omitempty"`
|
||||||
|
// Unique Identifier for this location
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Maximum api version that this resource supports (current server version for this resource)
|
||||||
|
MaxVersion *string `json:"maxVersion,omitempty"`
|
||||||
|
// Minimum api version that this resource supports
|
||||||
|
MinVersion *string `json:"minVersion,omitempty"`
|
||||||
|
// The latest version of this resource location that is in "Release" (non-preview) mode
|
||||||
|
ReleasedVersion *string `json:"releasedVersion,omitempty"`
|
||||||
|
// Resource name
|
||||||
|
ResourceName *string `json:"resourceName,omitempty"`
|
||||||
|
// The current resource version supported by this resource location
|
||||||
|
ResourceVersion *int `json:"resourceVersion,omitempty"`
|
||||||
|
// This location's route template (templated relative path)
|
||||||
|
RouteTemplate *string `json:"routeTemplate,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// WrappedImproperError
|
||||||
|
type WrappedImproperError struct {
|
||||||
|
Count *int `json:"count,omitEmpty"`
|
||||||
|
Value *ImproperError `json:"value,omitEmpty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ImproperError
|
||||||
|
type ImproperError struct {
|
||||||
|
Message *string `json:"Message,omitEmpty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// KeyValuePair
|
||||||
|
type KeyValuePair struct {
|
||||||
|
Key *interface{} `json:"key,omitEmpty"`
|
||||||
|
Value *interface{} `json:"value,omitEmpty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResourceAreaInfo
|
||||||
|
type ResourceAreaInfo struct {
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
LocationUrl *string `json:"locationUrl,omitempty"`
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time struct {
|
||||||
|
Time time.Time
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *Time) UnmarshalJSON(b []byte) error {
|
||||||
|
t2 := time.Time{}
|
||||||
|
err := json.Unmarshal(b, &t2)
|
||||||
|
|
||||||
|
// ignore errors for 0001-01-01T00:00:00 dates. The Azure DevOps service
|
||||||
|
// returns default dates in a format that is invalid for a time.Time. The
|
||||||
|
// correct value would have a 'z' at the end to represent utc. We are going
|
||||||
|
// to ignore this error, and set the value to the default time.Time value.
|
||||||
|
// https://github.com/microsoft/azure-devops-go-api/issues/17
|
||||||
|
if err != nil {
|
||||||
|
if parseError, ok := err.(*time.ParseError); ok && parseError.Value == "\"0001-01-01T00:00:00\"" {
|
||||||
|
err = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Time = t2
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *Time) MarshalJSON() ([]byte, error) {
|
||||||
|
return json.Marshal(t.Time)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t Time) String() string {
|
||||||
|
return t.Time.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t Time) Equal(u Time) bool {
|
||||||
|
return t.Time.Equal(u.Time)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ServerSystemError
|
||||||
|
type ServerSystemError struct {
|
||||||
|
ClassName *string `json:"className,omitempty"`
|
||||||
|
InnerException *ServerSystemError `json:"innerException,omitempty"`
|
||||||
|
Message *string `json:"message,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e ServerSystemError) Error() string {
|
||||||
|
return *e.Message
|
||||||
|
}
|
||||||
|
|
||||||
|
// VssJsonCollectionWrapper -
|
||||||
|
type VssJsonCollectionWrapper struct {
|
||||||
|
Count *int `json:"count"`
|
||||||
|
Value *[]interface{} `json:"value"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// WrappedError
|
||||||
|
type WrappedError struct {
|
||||||
|
ExceptionId *string `json:"$id,omitempty"`
|
||||||
|
InnerError *WrappedError `json:"innerException,omitempty"`
|
||||||
|
Message *string `json:"message,omitempty"`
|
||||||
|
TypeName *string `json:"typeName,omitempty"`
|
||||||
|
TypeKey *string `json:"typeKey,omitempty"`
|
||||||
|
ErrorCode *int `json:"errorCode,omitempty"`
|
||||||
|
EventId *int `json:"eventId,omitempty"`
|
||||||
|
CustomProperties *map[string]interface{} `json:"customProperties,omitempty"`
|
||||||
|
StatusCode *int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e WrappedError) Error() string {
|
||||||
|
if e.Message == nil {
|
||||||
|
if e.StatusCode != nil {
|
||||||
|
return "REST call returned status code " + strconv.Itoa(*e.StatusCode)
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return *e.Message
|
||||||
|
}
|
59
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/operations/client.go
generated
vendored
Normal file
59
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/operations/client.go
generated
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package operations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops"
|
||||||
|
"net/http"
|
||||||
|
"net/url"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
Client azuredevops.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClient(ctx context.Context, connection *azuredevops.Connection) *Client {
|
||||||
|
client := connection.GetClientByUrl(connection.BaseUrl)
|
||||||
|
return &Client{
|
||||||
|
Client: *client,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gets an operation from the the operationId using the given pluginId.
|
||||||
|
func (client *Client) GetOperation(ctx context.Context, args GetOperationArgs) (*Operation, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.OperationId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.OperationId"}
|
||||||
|
}
|
||||||
|
routeValues["operationId"] = (*args.OperationId).String()
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.PluginId != nil {
|
||||||
|
queryParams.Add("pluginId", (*args.PluginId).String())
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("9a1b74b4-2ca8-4a9f-8470-c2f2e6fdc949")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue Operation
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetOperation function
|
||||||
|
type GetOperationArgs struct {
|
||||||
|
// (required) The ID for the operation.
|
||||||
|
OperationId *uuid.UUID
|
||||||
|
// (optional) The ID for the plugin.
|
||||||
|
PluginId *uuid.UUID
|
||||||
|
}
|
77
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/operations/models.go
generated
vendored
Normal file
77
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/operations/models.go
generated
vendored
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package operations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/google/uuid"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Contains information about the progress or result of an async operation.
|
||||||
|
type Operation struct {
|
||||||
|
// Unique identifier for the operation.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Unique identifier for the plugin.
|
||||||
|
PluginId *uuid.UUID `json:"pluginId,omitempty"`
|
||||||
|
// The current status of the operation.
|
||||||
|
Status *OperationStatus `json:"status,omitempty"`
|
||||||
|
// URL to get the full operation object.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// Links to other related objects.
|
||||||
|
Links interface{} `json:"_links,omitempty"`
|
||||||
|
// Detailed messaged about the status of an operation.
|
||||||
|
DetailedMessage *string `json:"detailedMessage,omitempty"`
|
||||||
|
// Result message for an operation.
|
||||||
|
ResultMessage *string `json:"resultMessage,omitempty"`
|
||||||
|
// URL to the operation result.
|
||||||
|
ResultUrl *OperationResultReference `json:"resultUrl,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reference for an async operation.
|
||||||
|
type OperationReference struct {
|
||||||
|
// Unique identifier for the operation.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Unique identifier for the plugin.
|
||||||
|
PluginId *uuid.UUID `json:"pluginId,omitempty"`
|
||||||
|
// The current status of the operation.
|
||||||
|
Status *OperationStatus `json:"status,omitempty"`
|
||||||
|
// URL to get the full operation object.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type OperationResultReference struct {
|
||||||
|
// URL to the operation result.
|
||||||
|
ResultUrl *string `json:"resultUrl,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The status of an operation.
|
||||||
|
type OperationStatus string
|
||||||
|
|
||||||
|
type operationStatusValuesType struct {
|
||||||
|
NotSet OperationStatus
|
||||||
|
Queued OperationStatus
|
||||||
|
InProgress OperationStatus
|
||||||
|
Cancelled OperationStatus
|
||||||
|
Succeeded OperationStatus
|
||||||
|
Failed OperationStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
var OperationStatusValues = operationStatusValuesType{
|
||||||
|
// The operation does not have a status set.
|
||||||
|
NotSet: "notSet",
|
||||||
|
// The operation has been queued.
|
||||||
|
Queued: "queued",
|
||||||
|
// The operation is in progress.
|
||||||
|
InProgress: "inProgress",
|
||||||
|
// The operation was cancelled by the user.
|
||||||
|
Cancelled: "cancelled",
|
||||||
|
// The operation completed successfully.
|
||||||
|
Succeeded: "succeeded",
|
||||||
|
// The operation completed with a failure.
|
||||||
|
Failed: "failed",
|
||||||
|
}
|
463
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/policy/client.go
generated
vendored
Normal file
463
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/policy/client.go
generated
vendored
Normal file
@ -0,0 +1,463 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package policy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops"
|
||||||
|
"net/http"
|
||||||
|
"net/url"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
var ResourceAreaId, _ = uuid.Parse("fb13a388-40dd-4a04-b530-013a739c72ef")
|
||||||
|
|
||||||
|
type Client struct {
|
||||||
|
Client azuredevops.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClient(ctx context.Context, connection *azuredevops.Connection) (*Client, error) {
|
||||||
|
client, err := connection.GetClientByResourceAreaId(ctx, ResourceAreaId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &Client{
|
||||||
|
Client: *client,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a policy configuration of a given policy type.
|
||||||
|
func (client *Client) CreatePolicyConfiguration(ctx context.Context, args CreatePolicyConfigurationArgs) (*PolicyConfiguration, error) {
|
||||||
|
if args.Configuration == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Configuration"}
|
||||||
|
}
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
if args.ConfigurationId != nil {
|
||||||
|
routeValues["configurationId"] = strconv.Itoa(*args.ConfigurationId)
|
||||||
|
}
|
||||||
|
|
||||||
|
body, marshalErr := json.Marshal(*args.Configuration)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("dad91cbe-d183-45f8-9c6e-9c1164472121")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue PolicyConfiguration
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the CreatePolicyConfiguration function
|
||||||
|
type CreatePolicyConfigurationArgs struct {
|
||||||
|
// (required) The policy configuration to create.
|
||||||
|
Configuration *PolicyConfiguration
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
// (optional)
|
||||||
|
ConfigurationId *int
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete a policy configuration by its ID.
|
||||||
|
func (client *Client) DeletePolicyConfiguration(ctx context.Context, args DeletePolicyConfigurationArgs) error {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
if args.ConfigurationId == nil {
|
||||||
|
return &azuredevops.ArgumentNilError{ArgumentName: "args.ConfigurationId"}
|
||||||
|
}
|
||||||
|
routeValues["configurationId"] = strconv.Itoa(*args.ConfigurationId)
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("dad91cbe-d183-45f8-9c6e-9c1164472121")
|
||||||
|
_, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the DeletePolicyConfiguration function
|
||||||
|
type DeletePolicyConfigurationArgs struct {
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
// (required) ID of the policy configuration to delete.
|
||||||
|
ConfigurationId *int
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get a policy configuration by its ID.
|
||||||
|
func (client *Client) GetPolicyConfiguration(ctx context.Context, args GetPolicyConfigurationArgs) (*PolicyConfiguration, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
if args.ConfigurationId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ConfigurationId"}
|
||||||
|
}
|
||||||
|
routeValues["configurationId"] = strconv.Itoa(*args.ConfigurationId)
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("dad91cbe-d183-45f8-9c6e-9c1164472121")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue PolicyConfiguration
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetPolicyConfiguration function
|
||||||
|
type GetPolicyConfigurationArgs struct {
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
// (required) ID of the policy configuration
|
||||||
|
ConfigurationId *int
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get a list of policy configurations in a project.
|
||||||
|
func (client *Client) GetPolicyConfigurations(ctx context.Context, args GetPolicyConfigurationsArgs) (*GetPolicyConfigurationsResponseValue, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.Scope != nil {
|
||||||
|
queryParams.Add("scope", *args.Scope)
|
||||||
|
}
|
||||||
|
if args.PolicyType != nil {
|
||||||
|
queryParams.Add("policyType", (*args.PolicyType).String())
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("dad91cbe-d183-45f8-9c6e-9c1164472121")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue GetPolicyConfigurationsResponseValue
|
||||||
|
responseValue.ContinuationToken = resp.Header.Get(azuredevops.HeaderKeyContinuationToken)
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue.Value)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetPolicyConfigurations function
|
||||||
|
type GetPolicyConfigurationsArgs struct {
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
// (optional) [Provided for legacy reasons] The scope on which a subset of policies is defined.
|
||||||
|
Scope *string
|
||||||
|
// (optional) Filter returned policies to only this type
|
||||||
|
PolicyType *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return type for the GetPolicyConfigurations function
|
||||||
|
type GetPolicyConfigurationsResponseValue struct {
|
||||||
|
Value []PolicyConfiguration
|
||||||
|
// The continuation token to be used to get the next page of results.
|
||||||
|
ContinuationToken string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update a policy configuration by its ID.
|
||||||
|
func (client *Client) UpdatePolicyConfiguration(ctx context.Context, args UpdatePolicyConfigurationArgs) (*PolicyConfiguration, error) {
|
||||||
|
if args.Configuration == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Configuration"}
|
||||||
|
}
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
if args.ConfigurationId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ConfigurationId"}
|
||||||
|
}
|
||||||
|
routeValues["configurationId"] = strconv.Itoa(*args.ConfigurationId)
|
||||||
|
|
||||||
|
body, marshalErr := json.Marshal(*args.Configuration)
|
||||||
|
if marshalErr != nil {
|
||||||
|
return nil, marshalErr
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("dad91cbe-d183-45f8-9c6e-9c1164472121")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPut, locationId, "5.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue PolicyConfiguration
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the UpdatePolicyConfiguration function
|
||||||
|
type UpdatePolicyConfigurationArgs struct {
|
||||||
|
// (required) The policy configuration to update.
|
||||||
|
Configuration *PolicyConfiguration
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
// (required) ID of the existing policy configuration to be updated.
|
||||||
|
ConfigurationId *int
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API] Gets the present evaluation state of a policy.
|
||||||
|
func (client *Client) GetPolicyEvaluation(ctx context.Context, args GetPolicyEvaluationArgs) (*PolicyEvaluationRecord, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
if args.EvaluationId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.EvaluationId"}
|
||||||
|
}
|
||||||
|
routeValues["evaluationId"] = (*args.EvaluationId).String()
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("46aecb7a-5d2c-4647-897b-0209505a9fe4")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue PolicyEvaluationRecord
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetPolicyEvaluation function
|
||||||
|
type GetPolicyEvaluationArgs struct {
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
// (required) ID of the policy evaluation to be retrieved.
|
||||||
|
EvaluationId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API] Requeue the policy evaluation.
|
||||||
|
func (client *Client) RequeuePolicyEvaluation(ctx context.Context, args RequeuePolicyEvaluationArgs) (*PolicyEvaluationRecord, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
if args.EvaluationId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.EvaluationId"}
|
||||||
|
}
|
||||||
|
routeValues["evaluationId"] = (*args.EvaluationId).String()
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("46aecb7a-5d2c-4647-897b-0209505a9fe4")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodPatch, locationId, "5.1-preview.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue PolicyEvaluationRecord
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the RequeuePolicyEvaluation function
|
||||||
|
type RequeuePolicyEvaluationArgs struct {
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
// (required) ID of the policy evaluation to be retrieved.
|
||||||
|
EvaluationId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Preview API] Retrieves a list of all the policy evaluation statuses for a specific pull request.
|
||||||
|
func (client *Client) GetPolicyEvaluations(ctx context.Context, args GetPolicyEvaluationsArgs) (*[]PolicyEvaluationRecord, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.ArtifactId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "artifactId"}
|
||||||
|
}
|
||||||
|
queryParams.Add("artifactId", *args.ArtifactId)
|
||||||
|
if args.IncludeNotApplicable != nil {
|
||||||
|
queryParams.Add("includeNotApplicable", strconv.FormatBool(*args.IncludeNotApplicable))
|
||||||
|
}
|
||||||
|
if args.Top != nil {
|
||||||
|
queryParams.Add("$top", strconv.Itoa(*args.Top))
|
||||||
|
}
|
||||||
|
if args.Skip != nil {
|
||||||
|
queryParams.Add("$skip", strconv.Itoa(*args.Skip))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("c23ddff5-229c-4d04-a80b-0fdce9f360c8")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []PolicyEvaluationRecord
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetPolicyEvaluations function
|
||||||
|
type GetPolicyEvaluationsArgs struct {
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
// (required) A string which uniquely identifies the target of a policy evaluation.
|
||||||
|
ArtifactId *string
|
||||||
|
// (optional) Some policies might determine that they do not apply to a specific pull request. Setting this parameter to true will return evaluation records even for policies which don't apply to this pull request.
|
||||||
|
IncludeNotApplicable *bool
|
||||||
|
// (optional) The number of policy evaluation records to retrieve.
|
||||||
|
Top *int
|
||||||
|
// (optional) The number of policy evaluation records to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.
|
||||||
|
Skip *int
|
||||||
|
}
|
||||||
|
|
||||||
|
// Retrieve a specific revision of a given policy by ID.
|
||||||
|
func (client *Client) GetPolicyConfigurationRevision(ctx context.Context, args GetPolicyConfigurationRevisionArgs) (*PolicyConfiguration, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
if args.ConfigurationId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ConfigurationId"}
|
||||||
|
}
|
||||||
|
routeValues["configurationId"] = strconv.Itoa(*args.ConfigurationId)
|
||||||
|
if args.RevisionId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.RevisionId"}
|
||||||
|
}
|
||||||
|
routeValues["revisionId"] = strconv.Itoa(*args.RevisionId)
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("fe1e68a2-60d3-43cb-855b-85e41ae97c95")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue PolicyConfiguration
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetPolicyConfigurationRevision function
|
||||||
|
type GetPolicyConfigurationRevisionArgs struct {
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
// (required) The policy configuration ID.
|
||||||
|
ConfigurationId *int
|
||||||
|
// (required) The revision ID.
|
||||||
|
RevisionId *int
|
||||||
|
}
|
||||||
|
|
||||||
|
// Retrieve all revisions for a given policy.
|
||||||
|
func (client *Client) GetPolicyConfigurationRevisions(ctx context.Context, args GetPolicyConfigurationRevisionsArgs) (*[]PolicyConfiguration, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
if args.ConfigurationId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ConfigurationId"}
|
||||||
|
}
|
||||||
|
routeValues["configurationId"] = strconv.Itoa(*args.ConfigurationId)
|
||||||
|
|
||||||
|
queryParams := url.Values{}
|
||||||
|
if args.Top != nil {
|
||||||
|
queryParams.Add("$top", strconv.Itoa(*args.Top))
|
||||||
|
}
|
||||||
|
if args.Skip != nil {
|
||||||
|
queryParams.Add("$skip", strconv.Itoa(*args.Skip))
|
||||||
|
}
|
||||||
|
locationId, _ := uuid.Parse("fe1e68a2-60d3-43cb-855b-85e41ae97c95")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []PolicyConfiguration
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetPolicyConfigurationRevisions function
|
||||||
|
type GetPolicyConfigurationRevisionsArgs struct {
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
// (required) The policy configuration ID.
|
||||||
|
ConfigurationId *int
|
||||||
|
// (optional) The number of revisions to retrieve.
|
||||||
|
Top *int
|
||||||
|
// (optional) The number of revisions to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.
|
||||||
|
Skip *int
|
||||||
|
}
|
||||||
|
|
||||||
|
// Retrieve a specific policy type by ID.
|
||||||
|
func (client *Client) GetPolicyType(ctx context.Context, args GetPolicyTypeArgs) (*PolicyType, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
if args.TypeId == nil {
|
||||||
|
return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.TypeId"}
|
||||||
|
}
|
||||||
|
routeValues["typeId"] = (*args.TypeId).String()
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("44096322-2d3d-466a-bb30-d1b7de69f61f")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue PolicyType
|
||||||
|
err = client.Client.UnmarshalBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetPolicyType function
|
||||||
|
type GetPolicyTypeArgs struct {
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
// (required) The policy ID.
|
||||||
|
TypeId *uuid.UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
// Retrieve all available policy types.
|
||||||
|
func (client *Client) GetPolicyTypes(ctx context.Context, args GetPolicyTypesArgs) (*[]PolicyType, error) {
|
||||||
|
routeValues := make(map[string]string)
|
||||||
|
if args.Project == nil || *args.Project == "" {
|
||||||
|
return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
|
||||||
|
}
|
||||||
|
routeValues["project"] = *args.Project
|
||||||
|
|
||||||
|
locationId, _ := uuid.Parse("44096322-2d3d-466a-bb30-d1b7de69f61f")
|
||||||
|
resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var responseValue []PolicyType
|
||||||
|
err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
|
||||||
|
return &responseValue, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arguments for the GetPolicyTypes function
|
||||||
|
type GetPolicyTypesArgs struct {
|
||||||
|
// (required) Project ID or project name
|
||||||
|
Project *string
|
||||||
|
}
|
134
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/policy/models.go
generated
vendored
Normal file
134
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/policy/models.go
generated
vendored
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package policy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops/webapi"
|
||||||
|
)
|
||||||
|
|
||||||
|
// The full policy configuration with settings.
|
||||||
|
type PolicyConfiguration struct {
|
||||||
|
// The policy configuration ID.
|
||||||
|
Id *int `json:"id,omitempty"`
|
||||||
|
// The policy configuration type.
|
||||||
|
Type *PolicyTypeRef `json:"type,omitempty"`
|
||||||
|
// The URL where the policy configuration can be retrieved.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// The policy configuration revision ID.
|
||||||
|
Revision *int `json:"revision,omitempty"`
|
||||||
|
// The links to other objects related to this object.
|
||||||
|
Links interface{} `json:"_links,omitempty"`
|
||||||
|
// A reference to the identity that created the policy.
|
||||||
|
CreatedBy *webapi.IdentityRef `json:"createdBy,omitempty"`
|
||||||
|
// The date and time when the policy was created.
|
||||||
|
CreatedDate *azuredevops.Time `json:"createdDate,omitempty"`
|
||||||
|
// Indicates whether the policy is blocking.
|
||||||
|
IsBlocking *bool `json:"isBlocking,omitempty"`
|
||||||
|
// Indicates whether the policy has been (soft) deleted.
|
||||||
|
IsDeleted *bool `json:"isDeleted,omitempty"`
|
||||||
|
// Indicates whether the policy is enabled.
|
||||||
|
IsEnabled *bool `json:"isEnabled,omitempty"`
|
||||||
|
// The policy configuration settings.
|
||||||
|
Settings interface{} `json:"settings,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Policy configuration reference.
|
||||||
|
type PolicyConfigurationRef struct {
|
||||||
|
// The policy configuration ID.
|
||||||
|
Id *int `json:"id,omitempty"`
|
||||||
|
// The policy configuration type.
|
||||||
|
Type *PolicyTypeRef `json:"type,omitempty"`
|
||||||
|
// The URL where the policy configuration can be retrieved.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// This record encapsulates the current state of a policy as it applies to one specific pull request. Each pull request has a unique PolicyEvaluationRecord for each pull request which the policy applies to.
|
||||||
|
type PolicyEvaluationRecord struct {
|
||||||
|
// Links to other related objects
|
||||||
|
Links interface{} `json:"_links,omitempty"`
|
||||||
|
// A string which uniquely identifies the target of a policy evaluation.
|
||||||
|
ArtifactId *string `json:"artifactId,omitempty"`
|
||||||
|
// Time when this policy finished evaluating on this pull request.
|
||||||
|
CompletedDate *azuredevops.Time `json:"completedDate,omitempty"`
|
||||||
|
// Contains all configuration data for the policy which is being evaluated.
|
||||||
|
Configuration *PolicyConfiguration `json:"configuration,omitempty"`
|
||||||
|
// Internal context data of this policy evaluation.
|
||||||
|
Context interface{} `json:"context,omitempty"`
|
||||||
|
// Guid which uniquely identifies this evaluation record (one policy running on one pull request).
|
||||||
|
EvaluationId *uuid.UUID `json:"evaluationId,omitempty"`
|
||||||
|
// Time when this policy was first evaluated on this pull request.
|
||||||
|
StartedDate *azuredevops.Time `json:"startedDate,omitempty"`
|
||||||
|
// Status of the policy (Running, Approved, Failed, etc.)
|
||||||
|
Status *PolicyEvaluationStatus `json:"status,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Status of a policy which is running against a specific pull request.
|
||||||
|
type PolicyEvaluationStatus string
|
||||||
|
|
||||||
|
type policyEvaluationStatusValuesType struct {
|
||||||
|
Queued PolicyEvaluationStatus
|
||||||
|
Running PolicyEvaluationStatus
|
||||||
|
Approved PolicyEvaluationStatus
|
||||||
|
Rejected PolicyEvaluationStatus
|
||||||
|
NotApplicable PolicyEvaluationStatus
|
||||||
|
Broken PolicyEvaluationStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
var PolicyEvaluationStatusValues = policyEvaluationStatusValuesType{
|
||||||
|
// The policy is either queued to run, or is waiting for some event before progressing.
|
||||||
|
Queued: "queued",
|
||||||
|
// The policy is currently running.
|
||||||
|
Running: "running",
|
||||||
|
// The policy has been fulfilled for this pull request.
|
||||||
|
Approved: "approved",
|
||||||
|
// The policy has rejected this pull request.
|
||||||
|
Rejected: "rejected",
|
||||||
|
// The policy does not apply to this pull request.
|
||||||
|
NotApplicable: "notApplicable",
|
||||||
|
// The policy has encountered an unexpected error.
|
||||||
|
Broken: "broken",
|
||||||
|
}
|
||||||
|
|
||||||
|
// User-friendly policy type with description (used for querying policy types).
|
||||||
|
type PolicyType struct {
|
||||||
|
// Display name of the policy type.
|
||||||
|
DisplayName *string `json:"displayName,omitempty"`
|
||||||
|
// The policy type ID.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// The URL where the policy type can be retrieved.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// The links to other objects related to this object.
|
||||||
|
Links interface{} `json:"_links,omitempty"`
|
||||||
|
// Detailed description of the policy type.
|
||||||
|
Description *string `json:"description,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Policy type reference.
|
||||||
|
type PolicyTypeRef struct {
|
||||||
|
// Display name of the policy type.
|
||||||
|
DisplayName *string `json:"displayName,omitempty"`
|
||||||
|
// The policy type ID.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// The URL where the policy type can be retrieved.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// A particular revision for a policy configuration.
|
||||||
|
type VersionedPolicyConfigurationRef struct {
|
||||||
|
// The policy configuration ID.
|
||||||
|
Id *int `json:"id,omitempty"`
|
||||||
|
// The policy configuration type.
|
||||||
|
Type *PolicyTypeRef `json:"type,omitempty"`
|
||||||
|
// The URL where the policy configuration can be retrieved.
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
// The policy configuration revision ID.
|
||||||
|
Revision *int `json:"revision,omitempty"`
|
||||||
|
}
|
97
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/system/models.go
generated
vendored
Normal file
97
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/system/models.go
generated
vendored
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package system
|
||||||
|
|
||||||
|
type SqlDbType string
|
||||||
|
|
||||||
|
type sqlDbTypeValuesType struct {
|
||||||
|
BigInt SqlDbType
|
||||||
|
Binary SqlDbType
|
||||||
|
Bit SqlDbType
|
||||||
|
Char SqlDbType
|
||||||
|
DateTime SqlDbType
|
||||||
|
Decimal SqlDbType
|
||||||
|
Float SqlDbType
|
||||||
|
Image SqlDbType
|
||||||
|
Int SqlDbType
|
||||||
|
Money SqlDbType
|
||||||
|
NChar SqlDbType
|
||||||
|
NText SqlDbType
|
||||||
|
NVarChar SqlDbType
|
||||||
|
Real SqlDbType
|
||||||
|
UniqueIdentifier SqlDbType
|
||||||
|
SmallDateTime SqlDbType
|
||||||
|
SmallInt SqlDbType
|
||||||
|
SmallMoney SqlDbType
|
||||||
|
Text SqlDbType
|
||||||
|
Timestamp SqlDbType
|
||||||
|
TinyInt SqlDbType
|
||||||
|
VarBinary SqlDbType
|
||||||
|
VarChar SqlDbType
|
||||||
|
Variant SqlDbType
|
||||||
|
Xml SqlDbType
|
||||||
|
Udt SqlDbType
|
||||||
|
Structured SqlDbType
|
||||||
|
Date SqlDbType
|
||||||
|
Time SqlDbType
|
||||||
|
DateTime2 SqlDbType
|
||||||
|
DateTimeOffset SqlDbType
|
||||||
|
}
|
||||||
|
|
||||||
|
var SqlDbTypeValues = sqlDbTypeValuesType{
|
||||||
|
BigInt: "bigInt",
|
||||||
|
Binary: "binary",
|
||||||
|
Bit: "bit",
|
||||||
|
Char: "char",
|
||||||
|
DateTime: "dateTime",
|
||||||
|
Decimal: "decimal",
|
||||||
|
Float: "float",
|
||||||
|
Image: "image",
|
||||||
|
Int: "int",
|
||||||
|
Money: "money",
|
||||||
|
NChar: "nChar",
|
||||||
|
NText: "nText",
|
||||||
|
NVarChar: "nVarChar",
|
||||||
|
Real: "real",
|
||||||
|
UniqueIdentifier: "uniqueIdentifier",
|
||||||
|
SmallDateTime: "smallDateTime",
|
||||||
|
SmallInt: "smallInt",
|
||||||
|
SmallMoney: "smallMoney",
|
||||||
|
Text: "text",
|
||||||
|
Timestamp: "timestamp",
|
||||||
|
TinyInt: "tinyInt",
|
||||||
|
VarBinary: "varBinary",
|
||||||
|
VarChar: "varChar",
|
||||||
|
Variant: "variant",
|
||||||
|
Xml: "xml",
|
||||||
|
Udt: "udt",
|
||||||
|
Structured: "structured",
|
||||||
|
Date: "date",
|
||||||
|
Time: "time",
|
||||||
|
DateTime2: "dateTime2",
|
||||||
|
DateTimeOffset: "dateTimeOffset",
|
||||||
|
}
|
||||||
|
|
||||||
|
type TraceLevel string
|
||||||
|
|
||||||
|
type traceLevelValuesType struct {
|
||||||
|
Off TraceLevel
|
||||||
|
Error TraceLevel
|
||||||
|
Warning TraceLevel
|
||||||
|
Info TraceLevel
|
||||||
|
Verbose TraceLevel
|
||||||
|
}
|
||||||
|
|
||||||
|
var TraceLevelValues = traceLevelValuesType{
|
||||||
|
Off: "off",
|
||||||
|
Error: "error",
|
||||||
|
Warning: "warning",
|
||||||
|
Info: "info",
|
||||||
|
Verbose: "verbose",
|
||||||
|
}
|
2066
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/test/client.go
generated
vendored
Normal file
2066
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/test/client.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3564
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/test/models.go
generated
vendored
Normal file
3564
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/test/models.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
58
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/version.go
generated
vendored
Normal file
58
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/version.go
generated
vendored
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
|
package azuredevops
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Version struct {
|
||||||
|
Major int
|
||||||
|
Minor int
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewVersion(version string) (*Version, error) {
|
||||||
|
split := strings.Split(version, ".")
|
||||||
|
if len(split) > 1 {
|
||||||
|
major, err := strconv.Atoi(split[0])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
minor, err := strconv.Atoi(split[1])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &Version{
|
||||||
|
Major: major,
|
||||||
|
Minor: minor,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
return nil, &InvalidVersionStringError{version: version}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (version Version) CompareTo(compareToVersion Version) int {
|
||||||
|
if version.Major > compareToVersion.Major {
|
||||||
|
return 1
|
||||||
|
} else if version.Major < compareToVersion.Major {
|
||||||
|
return -1
|
||||||
|
} else if version.Minor > compareToVersion.Minor {
|
||||||
|
return 1
|
||||||
|
} else if version.Minor < compareToVersion.Minor {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (version Version) String() string {
|
||||||
|
return strconv.Itoa(version.Major) + "." + strconv.Itoa(version.Minor)
|
||||||
|
}
|
||||||
|
|
||||||
|
type InvalidVersionStringError struct {
|
||||||
|
version string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *InvalidVersionStringError) Error() string {
|
||||||
|
return "The version string was invalid: " + e.version
|
||||||
|
}
|
72
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/versionnegotiation.go
generated
vendored
Normal file
72
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/versionnegotiation.go
generated
vendored
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
|
package azuredevops
|
||||||
|
|
||||||
|
import "strconv"
|
||||||
|
|
||||||
|
func negotiateRequestVersion(location *ApiResourceLocation, apiVersion string) (string, error) {
|
||||||
|
if apiVersion == "" {
|
||||||
|
// if no api-version is sent to the server, the server will decide the version. The server uses the latest
|
||||||
|
// released version if the endpoint has been released, otherwise it will use the latest preview version.
|
||||||
|
return apiVersion, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
matches := apiVersionRegEx.FindStringSubmatch(apiVersion)
|
||||||
|
if len(matches) == 0 && matches[0] != "" {
|
||||||
|
return apiVersion, &InvalidApiVersion{apiVersion}
|
||||||
|
}
|
||||||
|
|
||||||
|
requestedApiVersion, err := NewVersion(matches[1])
|
||||||
|
if err != nil {
|
||||||
|
return apiVersion, err
|
||||||
|
}
|
||||||
|
locationMinVersion, err := NewVersion(*location.MinVersion)
|
||||||
|
if err != nil {
|
||||||
|
return apiVersion, err
|
||||||
|
}
|
||||||
|
if locationMinVersion.CompareTo(*requestedApiVersion) > 0 {
|
||||||
|
// Client is older than the server. The server no longer supports this
|
||||||
|
// resource (deprecated).
|
||||||
|
return apiVersion, nil
|
||||||
|
} else {
|
||||||
|
locationMaxVersion, err := NewVersion(*location.MaxVersion)
|
||||||
|
if err != nil {
|
||||||
|
return apiVersion, err
|
||||||
|
}
|
||||||
|
if locationMaxVersion.CompareTo(*requestedApiVersion) < 0 {
|
||||||
|
// Client is newer than the server. Negotiate down to the latest version
|
||||||
|
// on the server
|
||||||
|
negotiatedVersion := string(*location.MaxVersion)
|
||||||
|
if *location.ReleasedVersion < *location.MaxVersion {
|
||||||
|
negotiatedVersion += "-preview"
|
||||||
|
}
|
||||||
|
return negotiatedVersion, nil
|
||||||
|
} else {
|
||||||
|
// We can send at the requested api version. Make sure the resource version
|
||||||
|
// is not bigger than what the server supports
|
||||||
|
negotiatedVersion := matches[1]
|
||||||
|
if len(matches) > 3 && matches[3] != "" { // matches '-preview'
|
||||||
|
negotiatedVersion += "-preview"
|
||||||
|
if len(matches) > 5 && matches[5] != "" { // has a resource version
|
||||||
|
requestedResourceVersion, _ := strconv.Atoi(matches[5])
|
||||||
|
if *location.ResourceVersion < requestedResourceVersion {
|
||||||
|
negotiatedVersion += "." + strconv.Itoa(*location.ResourceVersion)
|
||||||
|
} else {
|
||||||
|
negotiatedVersion += "." + matches[5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// requesting released version, ensure server supports a released version, and if not append '-preview'
|
||||||
|
locationReleasedVersion, err := NewVersion(*location.ReleasedVersion)
|
||||||
|
if err != nil {
|
||||||
|
return apiVersion, err
|
||||||
|
}
|
||||||
|
if (locationReleasedVersion.Major == 0 && locationReleasedVersion.Minor == 0) || locationReleasedVersion.CompareTo(*requestedApiVersion) < 0 {
|
||||||
|
negotiatedVersion += "-preview"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return negotiatedVersion, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
315
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/webapi/models.go
generated
vendored
Normal file
315
vendor/github.com/Microsoft/azure-devops-go-api/azuredevops/webapi/models.go
generated
vendored
Normal file
@ -0,0 +1,315 @@
|
|||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
// Generated file, DO NOT EDIT
|
||||||
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
// --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
package webapi
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops"
|
||||||
|
"github.com/microsoft/azure-devops-go-api/azuredevops/system"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Information about the location of a REST API resource
|
||||||
|
type ApiResourceLocation struct {
|
||||||
|
// Area name for this resource
|
||||||
|
Area *string `json:"area,omitempty"`
|
||||||
|
// Unique Identifier for this location
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Maximum api version that this resource supports (current server version for this resource)
|
||||||
|
MaxVersion *string `json:"maxVersion,omitempty"`
|
||||||
|
// Minimum api version that this resource supports
|
||||||
|
MinVersion *string `json:"minVersion,omitempty"`
|
||||||
|
// The latest version of this resource location that is in "Release" (non-preview) mode
|
||||||
|
ReleasedVersion *string `json:"releasedVersion,omitempty"`
|
||||||
|
// Resource name
|
||||||
|
ResourceName *string `json:"resourceName,omitempty"`
|
||||||
|
// The current resource version supported by this resource location
|
||||||
|
ResourceVersion *int `json:"resourceVersion,omitempty"`
|
||||||
|
// This location's route template (templated relative path)
|
||||||
|
RouteTemplate *string `json:"routeTemplate,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Flags] Enumeration of the options that can be passed in on Connect.
|
||||||
|
type ConnectOptions string
|
||||||
|
|
||||||
|
type connectOptionsValuesType struct {
|
||||||
|
None ConnectOptions
|
||||||
|
IncludeServices ConnectOptions
|
||||||
|
IncludeLastUserAccess ConnectOptions
|
||||||
|
IncludeInheritedDefinitionsOnly ConnectOptions
|
||||||
|
IncludeNonInheritedDefinitionsOnly ConnectOptions
|
||||||
|
}
|
||||||
|
|
||||||
|
var ConnectOptionsValues = connectOptionsValuesType{
|
||||||
|
// Retrieve no optional data.
|
||||||
|
None: "none",
|
||||||
|
// Includes information about AccessMappings and ServiceDefinitions.
|
||||||
|
IncludeServices: "includeServices",
|
||||||
|
// Includes the last user access for this host.
|
||||||
|
IncludeLastUserAccess: "includeLastUserAccess",
|
||||||
|
// This is only valid on the deployment host and when true. Will only return inherited definitions.
|
||||||
|
IncludeInheritedDefinitionsOnly: "includeInheritedDefinitionsOnly",
|
||||||
|
// When true will only return non inherited definitions. Only valid at non-deployment host.
|
||||||
|
IncludeNonInheritedDefinitionsOnly: "includeNonInheritedDefinitionsOnly",
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Flags]
|
||||||
|
type DeploymentFlags string
|
||||||
|
|
||||||
|
type deploymentFlagsValuesType struct {
|
||||||
|
None DeploymentFlags
|
||||||
|
Hosted DeploymentFlags
|
||||||
|
OnPremises DeploymentFlags
|
||||||
|
}
|
||||||
|
|
||||||
|
var DeploymentFlagsValues = deploymentFlagsValuesType{
|
||||||
|
None: "none",
|
||||||
|
Hosted: "hosted",
|
||||||
|
OnPremises: "onPremises",
|
||||||
|
}
|
||||||
|
|
||||||
|
// Defines an "actor" for an event.
|
||||||
|
type EventActor struct {
|
||||||
|
// Required: This is the identity of the user for the specified role.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Required: The event specific name of a role.
|
||||||
|
Role *string `json:"role,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Defines a scope for an event.
|
||||||
|
type EventScope struct {
|
||||||
|
// Required: This is the identity of the scope for the type.
|
||||||
|
Id *uuid.UUID `json:"id,omitempty"`
|
||||||
|
// Optional: The display name of the scope
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Required: The event specific type of a scope.
|
||||||
|
Type *string `json:"type,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type IdentityRef struct {
|
||||||
|
// Deprecated - Can be retrieved by querying the Graph user referenced in the "self" entry of the IdentityRef "_links" dictionary
|
||||||
|
DirectoryAlias *string `json:"directoryAlias,omitempty"`
|
||||||
|
Id *string `json:"id,omitempty"`
|
||||||
|
// Deprecated - Available in the "avatar" entry of the IdentityRef "_links" dictionary
|
||||||
|
ImageUrl *string `json:"imageUrl,omitempty"`
|
||||||
|
// Deprecated - Can be retrieved by querying the Graph membership state referenced in the "membershipState" entry of the GraphUser "_links" dictionary
|
||||||
|
Inactive *bool `json:"inactive,omitempty"`
|
||||||
|
// Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsAadUserType/Descriptor.IsAadGroupType)
|
||||||
|
IsAadIdentity *bool `json:"isAadIdentity,omitempty"`
|
||||||
|
// Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsGroupType)
|
||||||
|
IsContainer *bool `json:"isContainer,omitempty"`
|
||||||
|
IsDeletedInOrigin *bool `json:"isDeletedInOrigin,omitempty"`
|
||||||
|
// Deprecated - not in use in most preexisting implementations of ToIdentityRef
|
||||||
|
ProfileUrl *string `json:"profileUrl,omitempty"`
|
||||||
|
// Deprecated - use Domain+PrincipalName instead
|
||||||
|
UniqueName *string `json:"uniqueName,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type IdentityRefWithEmail struct {
|
||||||
|
// Deprecated - Can be retrieved by querying the Graph user referenced in the "self" entry of the IdentityRef "_links" dictionary
|
||||||
|
DirectoryAlias *string `json:"directoryAlias,omitempty"`
|
||||||
|
Id *string `json:"id,omitempty"`
|
||||||
|
// Deprecated - Available in the "avatar" entry of the IdentityRef "_links" dictionary
|
||||||
|
ImageUrl *string `json:"imageUrl,omitempty"`
|
||||||
|
// Deprecated - Can be retrieved by querying the Graph membership state referenced in the "membershipState" entry of the GraphUser "_links" dictionary
|
||||||
|
Inactive *bool `json:"inactive,omitempty"`
|
||||||
|
// Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsAadUserType/Descriptor.IsAadGroupType)
|
||||||
|
IsAadIdentity *bool `json:"isAadIdentity,omitempty"`
|
||||||
|
// Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsGroupType)
|
||||||
|
IsContainer *bool `json:"isContainer,omitempty"`
|
||||||
|
IsDeletedInOrigin *bool `json:"isDeletedInOrigin,omitempty"`
|
||||||
|
// Deprecated - not in use in most preexisting implementations of ToIdentityRef
|
||||||
|
ProfileUrl *string `json:"profileUrl,omitempty"`
|
||||||
|
// Deprecated - use Domain+PrincipalName instead
|
||||||
|
UniqueName *string `json:"uniqueName,omitempty"`
|
||||||
|
PreferredEmailAddress *string `json:"preferredEmailAddress,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The JSON model for a JSON Patch operation
|
||||||
|
type JsonPatchOperation struct {
|
||||||
|
// The path to copy from for the Move/Copy operation.
|
||||||
|
From *string `json:"from,omitempty"`
|
||||||
|
// The patch operation
|
||||||
|
Op *Operation `json:"op,omitempty"`
|
||||||
|
// The path for the operation. In the case of an array, a zero based index can be used to specify the position in the array (e.g. /biscuits/0/name). The "-" character can be used instead of an index to insert at the end of the array (e.g. /biscuits/-).
|
||||||
|
Path *string `json:"path,omitempty"`
|
||||||
|
// The value for the operation. This is either a primitive or a JToken.
|
||||||
|
Value interface{} `json:"value,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type JsonWebToken struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type JWTAlgorithm string
|
||||||
|
|
||||||
|
type jwtAlgorithmValuesType struct {
|
||||||
|
None JWTAlgorithm
|
||||||
|
HS256 JWTAlgorithm
|
||||||
|
RS256 JWTAlgorithm
|
||||||
|
}
|
||||||
|
|
||||||
|
var JWTAlgorithmValues = jwtAlgorithmValuesType{
|
||||||
|
None: "none",
|
||||||
|
HS256: "hS256",
|
||||||
|
RS256: "rS256",
|
||||||
|
}
|
||||||
|
|
||||||
|
type Operation string
|
||||||
|
|
||||||
|
type operationValuesType struct {
|
||||||
|
Add Operation
|
||||||
|
Remove Operation
|
||||||
|
Replace Operation
|
||||||
|
Move Operation
|
||||||
|
Copy Operation
|
||||||
|
Test Operation
|
||||||
|
}
|
||||||
|
|
||||||
|
var OperationValues = operationValuesType{
|
||||||
|
Add: "add",
|
||||||
|
Remove: "remove",
|
||||||
|
Replace: "replace",
|
||||||
|
Move: "move",
|
||||||
|
Copy: "copy",
|
||||||
|
Test: "test",
|
||||||
|
}
|
||||||
|
|
||||||
|
// Represents the public key portion of an RSA asymmetric key.
|
||||||
|
type PublicKey struct {
|
||||||
|
// Gets or sets the exponent for the public key.
|
||||||
|
Exponent *[]byte `json:"exponent,omitempty"`
|
||||||
|
// Gets or sets the modulus for the public key.
|
||||||
|
Modulus *[]byte `json:"modulus,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Publisher struct {
|
||||||
|
// Name of the publishing service.
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
// Service Owner Guid Eg. Tfs : 00025394-6065-48CA-87D9-7F5672854EF7
|
||||||
|
ServiceOwnerId *uuid.UUID `json:"serviceOwnerId,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// The class to represent a REST reference link. RFC: http://tools.ietf.org/html/draft-kelly-json-hal-06 The RFC is not fully implemented, additional properties are allowed on the reference link but as of yet we don't have a need for them.
|
||||||
|
type ReferenceLink struct {
|
||||||
|
Href *string `json:"href,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ResourceRef struct {
|
||||||
|
Id *string `json:"id,omitempty"`
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ServiceEvent struct {
|
||||||
|
// This is the id of the type. Constants that will be used by subscribers to identify/filter events being published on a topic.
|
||||||
|
EventType *string `json:"eventType,omitempty"`
|
||||||
|
// This is the service that published this event.
|
||||||
|
Publisher *Publisher `json:"publisher,omitempty"`
|
||||||
|
// The resource object that carries specific information about the event. The object must have the ServiceEventObject applied for serialization/deserialization to work.
|
||||||
|
Resource interface{} `json:"resource,omitempty"`
|
||||||
|
// This dictionary carries the context descriptors along with their ids.
|
||||||
|
ResourceContainers *map[string]interface{} `json:"resourceContainers,omitempty"`
|
||||||
|
// This is the version of the resource.
|
||||||
|
ResourceVersion *string `json:"resourceVersion,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// A signed url allowing limited-time anonymous access to private resources.
|
||||||
|
type SignedUrl struct {
|
||||||
|
SignatureExpires *azuredevops.Time `json:"signatureExpires,omitempty"`
|
||||||
|
Url *string `json:"url,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TeamMember struct {
|
||||||
|
Identity *IdentityRef `json:"identity,omitempty"`
|
||||||
|
IsTeamAdmin *bool `json:"isTeamAdmin,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// A single secured timing consisting of a duration and start time
|
||||||
|
type TimingEntry struct {
|
||||||
|
// Duration of the entry in ticks
|
||||||
|
ElapsedTicks *uint64 `json:"elapsedTicks,omitempty"`
|
||||||
|
// Properties to distinguish timings within the same group or to provide data to send with telemetry
|
||||||
|
Properties *map[string]interface{} `json:"properties,omitempty"`
|
||||||
|
// Offset from Server Request Context start time in microseconds
|
||||||
|
StartOffset *uint64 `json:"startOffset,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// A set of secured performance timings all keyed off of the same string
|
||||||
|
type TimingGroup struct {
|
||||||
|
// The total number of timing entries associated with this group
|
||||||
|
Count *int `json:"count,omitempty"`
|
||||||
|
// Overall duration of all entries in this group in ticks
|
||||||
|
ElapsedTicks *uint64 `json:"elapsedTicks,omitempty"`
|
||||||
|
// A list of timing entries in this group. Only the first few entries in each group are collected.
|
||||||
|
Timings *[]TimingEntry `json:"timings,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// This class describes a trace filter, i.e. a set of criteria on whether or not a trace event should be emitted
|
||||||
|
type TraceFilter struct {
|
||||||
|
Area *string `json:"area,omitempty"`
|
||||||
|
ExceptionType *string `json:"exceptionType,omitempty"`
|
||||||
|
IsEnabled *bool `json:"isEnabled,omitempty"`
|
||||||
|
Layer *string `json:"layer,omitempty"`
|
||||||
|
Level *system.TraceLevel `json:"level,omitempty"`
|
||||||
|
Method *string `json:"method,omitempty"`
|
||||||
|
// Used to serialize additional identity information (display name, etc) to clients. Not set by default. Server-side callers should use OwnerId.
|
||||||
|
Owner *IdentityRef `json:"owner,omitempty"`
|
||||||
|
OwnerId *uuid.UUID `json:"ownerId,omitempty"`
|
||||||
|
Path *string `json:"path,omitempty"`
|
||||||
|
ProcessName *string `json:"processName,omitempty"`
|
||||||
|
Service *string `json:"service,omitempty"`
|
||||||
|
ServiceHost *uuid.UUID `json:"serviceHost,omitempty"`
|
||||||
|
TimeCreated *azuredevops.Time `json:"timeCreated,omitempty"`
|
||||||
|
TraceId *uuid.UUID `json:"traceId,omitempty"`
|
||||||
|
Tracepoint *int `json:"tracepoint,omitempty"`
|
||||||
|
Uri *string `json:"uri,omitempty"`
|
||||||
|
UserAgent *string `json:"userAgent,omitempty"`
|
||||||
|
UserLogin *string `json:"userLogin,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type VssJsonCollectionWrapper struct {
|
||||||
|
Count *int `json:"count,omitempty"`
|
||||||
|
Value *[]interface{} `json:"value,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type VssJsonCollectionWrapperBase struct {
|
||||||
|
Count *int `json:"count,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is the type used for firing notifications intended for the subsystem in the Notifications SDK. For components that can't take a dependency on the Notifications SDK directly, they can use ITeamFoundationEventService.PublishNotification and the Notifications SDK ISubscriber implementation will get it.
|
||||||
|
type VssNotificationEvent struct {
|
||||||
|
// Optional: A list of actors which are additional identities with corresponding roles that are relevant to the event.
|
||||||
|
Actors *[]EventActor `json:"actors,omitempty"`
|
||||||
|
// Optional: A list of artifacts referenced or impacted by this event.
|
||||||
|
ArtifactUris *[]string `json:"artifactUris,omitempty"`
|
||||||
|
// Required: The event payload. If Data is a string, it must be in Json or XML format. Otherwise it must have a serialization format attribute.
|
||||||
|
Data interface{} `json:"data,omitempty"`
|
||||||
|
// Required: The name of the event. This event must be registered in the context it is being fired.
|
||||||
|
EventType *string `json:"eventType,omitempty"`
|
||||||
|
// How long before the event expires and will be cleaned up. The default is to use the system default.
|
||||||
|
ExpiresIn interface{} `json:"expiresIn,omitempty"`
|
||||||
|
// The id of the item, artifact, extension, project, etc.
|
||||||
|
ItemId *string `json:"itemId,omitempty"`
|
||||||
|
// How long to wait before processing this event. The default is to process immediately.
|
||||||
|
ProcessDelay interface{} `json:"processDelay,omitempty"`
|
||||||
|
// Optional: A list of scopes which are are relevant to the event.
|
||||||
|
Scopes *[]EventScope `json:"scopes,omitempty"`
|
||||||
|
// This is the time the original source event for this VssNotificationEvent was created. For example, for something like a build completion notification SourceEventCreatedTime should be the time the build finished not the time this event was raised.
|
||||||
|
SourceEventCreatedTime *azuredevops.Time `json:"sourceEventCreatedTime,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type WrappedException struct {
|
||||||
|
CustomProperties *map[string]interface{} `json:"customProperties,omitempty"`
|
||||||
|
ErrorCode *int `json:"errorCode,omitempty"`
|
||||||
|
EventId *int `json:"eventId,omitempty"`
|
||||||
|
HelpLink *string `json:"helpLink,omitempty"`
|
||||||
|
InnerException *WrappedException `json:"innerException,omitempty"`
|
||||||
|
Message *string `json:"message,omitempty"`
|
||||||
|
StackTrace *string `json:"stackTrace,omitempty"`
|
||||||
|
TypeKey *string `json:"typeKey,omitempty"`
|
||||||
|
TypeName *string `json:"typeName,omitempty"`
|
||||||
|
}
|
9
vendor/github.com/google/uuid/.travis.yml
generated
vendored
Normal file
9
vendor/github.com/google/uuid/.travis.yml
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
language: go
|
||||||
|
|
||||||
|
go:
|
||||||
|
- 1.4.3
|
||||||
|
- 1.5.3
|
||||||
|
- tip
|
||||||
|
|
||||||
|
script:
|
||||||
|
- go test -v ./...
|
10
vendor/github.com/google/uuid/CONTRIBUTING.md
generated
vendored
Normal file
10
vendor/github.com/google/uuid/CONTRIBUTING.md
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# How to contribute
|
||||||
|
|
||||||
|
We definitely welcome patches and contribution to this project!
|
||||||
|
|
||||||
|
### Legal requirements
|
||||||
|
|
||||||
|
In order to protect both you and ourselves, you will need to sign the
|
||||||
|
[Contributor License Agreement](https://cla.developers.google.com/clas).
|
||||||
|
|
||||||
|
You may have already signed it for other Google projects.
|
9
vendor/github.com/google/uuid/CONTRIBUTORS
generated
vendored
Normal file
9
vendor/github.com/google/uuid/CONTRIBUTORS
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Paul Borman <borman@google.com>
|
||||||
|
bmatsuo
|
||||||
|
shawnps
|
||||||
|
theory
|
||||||
|
jboverfelt
|
||||||
|
dsymonds
|
||||||
|
cd1
|
||||||
|
wallclockbuilder
|
||||||
|
dansouza
|
27
vendor/github.com/google/uuid/LICENSE
generated
vendored
Normal file
27
vendor/github.com/google/uuid/LICENSE
generated
vendored
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
Copyright (c) 2009,2014 Google Inc. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the following disclaimer
|
||||||
|
in the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
* Neither the name of Google Inc. nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from
|
||||||
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
19
vendor/github.com/google/uuid/README.md
generated
vendored
Normal file
19
vendor/github.com/google/uuid/README.md
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# uuid 
|
||||||
|
The uuid package generates and inspects UUIDs based on
|
||||||
|
[RFC 4122](http://tools.ietf.org/html/rfc4122)
|
||||||
|
and DCE 1.1: Authentication and Security Services.
|
||||||
|
|
||||||
|
This package is based on the github.com/pborman/uuid package (previously named
|
||||||
|
code.google.com/p/go-uuid). It differs from these earlier packages in that
|
||||||
|
a UUID is a 16 byte array rather than a byte slice. One loss due to this
|
||||||
|
change is the ability to represent an invalid UUID (vs a NIL UUID).
|
||||||
|
|
||||||
|
###### Install
|
||||||
|
`go get github.com/google/uuid`
|
||||||
|
|
||||||
|
###### Documentation
|
||||||
|
[](http://godoc.org/github.com/google/uuid)
|
||||||
|
|
||||||
|
Full `go doc` style documentation for the package can be viewed online without
|
||||||
|
installing this package by using the GoDoc site here:
|
||||||
|
http://godoc.org/github.com/google/uuid
|
80
vendor/github.com/google/uuid/dce.go
generated
vendored
Normal file
80
vendor/github.com/google/uuid/dce.go
generated
vendored
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
// Copyright 2016 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/binary"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
// A Domain represents a Version 2 domain
|
||||||
|
type Domain byte
|
||||||
|
|
||||||
|
// Domain constants for DCE Security (Version 2) UUIDs.
|
||||||
|
const (
|
||||||
|
Person = Domain(0)
|
||||||
|
Group = Domain(1)
|
||||||
|
Org = Domain(2)
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewDCESecurity returns a DCE Security (Version 2) UUID.
|
||||||
|
//
|
||||||
|
// The domain should be one of Person, Group or Org.
|
||||||
|
// On a POSIX system the id should be the users UID for the Person
|
||||||
|
// domain and the users GID for the Group. The meaning of id for
|
||||||
|
// the domain Org or on non-POSIX systems is site defined.
|
||||||
|
//
|
||||||
|
// For a given domain/id pair the same token may be returned for up to
|
||||||
|
// 7 minutes and 10 seconds.
|
||||||
|
func NewDCESecurity(domain Domain, id uint32) (UUID, error) {
|
||||||
|
uuid, err := NewUUID()
|
||||||
|
if err == nil {
|
||||||
|
uuid[6] = (uuid[6] & 0x0f) | 0x20 // Version 2
|
||||||
|
uuid[9] = byte(domain)
|
||||||
|
binary.BigEndian.PutUint32(uuid[0:], id)
|
||||||
|
}
|
||||||
|
return uuid, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewDCEPerson returns a DCE Security (Version 2) UUID in the person
|
||||||
|
// domain with the id returned by os.Getuid.
|
||||||
|
//
|
||||||
|
// NewDCESecurity(Person, uint32(os.Getuid()))
|
||||||
|
func NewDCEPerson() (UUID, error) {
|
||||||
|
return NewDCESecurity(Person, uint32(os.Getuid()))
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewDCEGroup returns a DCE Security (Version 2) UUID in the group
|
||||||
|
// domain with the id returned by os.Getgid.
|
||||||
|
//
|
||||||
|
// NewDCESecurity(Group, uint32(os.Getgid()))
|
||||||
|
func NewDCEGroup() (UUID, error) {
|
||||||
|
return NewDCESecurity(Group, uint32(os.Getgid()))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Domain returns the domain for a Version 2 UUID. Domains are only defined
|
||||||
|
// for Version 2 UUIDs.
|
||||||
|
func (uuid UUID) Domain() Domain {
|
||||||
|
return Domain(uuid[9])
|
||||||
|
}
|
||||||
|
|
||||||
|
// ID returns the id for a Version 2 UUID. IDs are only defined for Version 2
|
||||||
|
// UUIDs.
|
||||||
|
func (uuid UUID) ID() uint32 {
|
||||||
|
return binary.BigEndian.Uint32(uuid[0:4])
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d Domain) String() string {
|
||||||
|
switch d {
|
||||||
|
case Person:
|
||||||
|
return "Person"
|
||||||
|
case Group:
|
||||||
|
return "Group"
|
||||||
|
case Org:
|
||||||
|
return "Org"
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("Domain%d", int(d))
|
||||||
|
}
|
12
vendor/github.com/google/uuid/doc.go
generated
vendored
Normal file
12
vendor/github.com/google/uuid/doc.go
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
// Copyright 2016 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// Package uuid generates and inspects UUIDs.
|
||||||
|
//
|
||||||
|
// UUIDs are based on RFC 4122 and DCE 1.1: Authentication and Security
|
||||||
|
// Services.
|
||||||
|
//
|
||||||
|
// A UUID is a 16 byte (128 bit) array. UUIDs may be used as keys to
|
||||||
|
// maps or compared directly.
|
||||||
|
package uuid
|
1
vendor/github.com/google/uuid/go.mod
generated
vendored
Normal file
1
vendor/github.com/google/uuid/go.mod
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
module github.com/google/uuid
|
53
vendor/github.com/google/uuid/hash.go
generated
vendored
Normal file
53
vendor/github.com/google/uuid/hash.go
generated
vendored
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
// Copyright 2016 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/md5"
|
||||||
|
"crypto/sha1"
|
||||||
|
"hash"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Well known namespace IDs and UUIDs
|
||||||
|
var (
|
||||||
|
NameSpaceDNS = Must(Parse("6ba7b810-9dad-11d1-80b4-00c04fd430c8"))
|
||||||
|
NameSpaceURL = Must(Parse("6ba7b811-9dad-11d1-80b4-00c04fd430c8"))
|
||||||
|
NameSpaceOID = Must(Parse("6ba7b812-9dad-11d1-80b4-00c04fd430c8"))
|
||||||
|
NameSpaceX500 = Must(Parse("6ba7b814-9dad-11d1-80b4-00c04fd430c8"))
|
||||||
|
Nil UUID // empty UUID, all zeros
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewHash returns a new UUID derived from the hash of space concatenated with
|
||||||
|
// data generated by h. The hash should be at least 16 byte in length. The
|
||||||
|
// first 16 bytes of the hash are used to form the UUID. The version of the
|
||||||
|
// UUID will be the lower 4 bits of version. NewHash is used to implement
|
||||||
|
// NewMD5 and NewSHA1.
|
||||||
|
func NewHash(h hash.Hash, space UUID, data []byte, version int) UUID {
|
||||||
|
h.Reset()
|
||||||
|
h.Write(space[:])
|
||||||
|
h.Write(data)
|
||||||
|
s := h.Sum(nil)
|
||||||
|
var uuid UUID
|
||||||
|
copy(uuid[:], s)
|
||||||
|
uuid[6] = (uuid[6] & 0x0f) | uint8((version&0xf)<<4)
|
||||||
|
uuid[8] = (uuid[8] & 0x3f) | 0x80 // RFC 4122 variant
|
||||||
|
return uuid
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMD5 returns a new MD5 (Version 3) UUID based on the
|
||||||
|
// supplied name space and data. It is the same as calling:
|
||||||
|
//
|
||||||
|
// NewHash(md5.New(), space, data, 3)
|
||||||
|
func NewMD5(space UUID, data []byte) UUID {
|
||||||
|
return NewHash(md5.New(), space, data, 3)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewSHA1 returns a new SHA1 (Version 5) UUID based on the
|
||||||
|
// supplied name space and data. It is the same as calling:
|
||||||
|
//
|
||||||
|
// NewHash(sha1.New(), space, data, 5)
|
||||||
|
func NewSHA1(space UUID, data []byte) UUID {
|
||||||
|
return NewHash(sha1.New(), space, data, 5)
|
||||||
|
}
|
37
vendor/github.com/google/uuid/marshal.go
generated
vendored
Normal file
37
vendor/github.com/google/uuid/marshal.go
generated
vendored
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright 2016 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
// MarshalText implements encoding.TextMarshaler.
|
||||||
|
func (uuid UUID) MarshalText() ([]byte, error) {
|
||||||
|
var js [36]byte
|
||||||
|
encodeHex(js[:], uuid)
|
||||||
|
return js[:], nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalText implements encoding.TextUnmarshaler.
|
||||||
|
func (uuid *UUID) UnmarshalText(data []byte) error {
|
||||||
|
id, err := ParseBytes(data)
|
||||||
|
if err == nil {
|
||||||
|
*uuid = id
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary implements encoding.BinaryMarshaler.
|
||||||
|
func (uuid UUID) MarshalBinary() ([]byte, error) {
|
||||||
|
return uuid[:], nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary implements encoding.BinaryUnmarshaler.
|
||||||
|
func (uuid *UUID) UnmarshalBinary(data []byte) error {
|
||||||
|
if len(data) != 16 {
|
||||||
|
return fmt.Errorf("invalid UUID (got %d bytes)", len(data))
|
||||||
|
}
|
||||||
|
copy(uuid[:], data)
|
||||||
|
return nil
|
||||||
|
}
|
90
vendor/github.com/google/uuid/node.go
generated
vendored
Normal file
90
vendor/github.com/google/uuid/node.go
generated
vendored
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
// Copyright 2016 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
nodeMu sync.Mutex
|
||||||
|
ifname string // name of interface being used
|
||||||
|
nodeID [6]byte // hardware for version 1 UUIDs
|
||||||
|
zeroID [6]byte // nodeID with only 0's
|
||||||
|
)
|
||||||
|
|
||||||
|
// NodeInterface returns the name of the interface from which the NodeID was
|
||||||
|
// derived. The interface "user" is returned if the NodeID was set by
|
||||||
|
// SetNodeID.
|
||||||
|
func NodeInterface() string {
|
||||||
|
defer nodeMu.Unlock()
|
||||||
|
nodeMu.Lock()
|
||||||
|
return ifname
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetNodeInterface selects the hardware address to be used for Version 1 UUIDs.
|
||||||
|
// If name is "" then the first usable interface found will be used or a random
|
||||||
|
// Node ID will be generated. If a named interface cannot be found then false
|
||||||
|
// is returned.
|
||||||
|
//
|
||||||
|
// SetNodeInterface never fails when name is "".
|
||||||
|
func SetNodeInterface(name string) bool {
|
||||||
|
defer nodeMu.Unlock()
|
||||||
|
nodeMu.Lock()
|
||||||
|
return setNodeInterface(name)
|
||||||
|
}
|
||||||
|
|
||||||
|
func setNodeInterface(name string) bool {
|
||||||
|
iname, addr := getHardwareInterface(name) // null implementation for js
|
||||||
|
if iname != "" && addr != nil {
|
||||||
|
ifname = iname
|
||||||
|
copy(nodeID[:], addr)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// We found no interfaces with a valid hardware address. If name
|
||||||
|
// does not specify a specific interface generate a random Node ID
|
||||||
|
// (section 4.1.6)
|
||||||
|
if name == "" {
|
||||||
|
ifname = "random"
|
||||||
|
randomBits(nodeID[:])
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// NodeID returns a slice of a copy of the current Node ID, setting the Node ID
|
||||||
|
// if not already set.
|
||||||
|
func NodeID() []byte {
|
||||||
|
defer nodeMu.Unlock()
|
||||||
|
nodeMu.Lock()
|
||||||
|
if nodeID == zeroID {
|
||||||
|
setNodeInterface("")
|
||||||
|
}
|
||||||
|
nid := nodeID
|
||||||
|
return nid[:]
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetNodeID sets the Node ID to be used for Version 1 UUIDs. The first 6 bytes
|
||||||
|
// of id are used. If id is less than 6 bytes then false is returned and the
|
||||||
|
// Node ID is not set.
|
||||||
|
func SetNodeID(id []byte) bool {
|
||||||
|
if len(id) < 6 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
defer nodeMu.Unlock()
|
||||||
|
nodeMu.Lock()
|
||||||
|
copy(nodeID[:], id)
|
||||||
|
ifname = "user"
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// NodeID returns the 6 byte node id encoded in uuid. It returns nil if uuid is
|
||||||
|
// not valid. The NodeID is only well defined for version 1 and 2 UUIDs.
|
||||||
|
func (uuid UUID) NodeID() []byte {
|
||||||
|
var node [6]byte
|
||||||
|
copy(node[:], uuid[10:])
|
||||||
|
return node[:]
|
||||||
|
}
|
12
vendor/github.com/google/uuid/node_js.go
generated
vendored
Normal file
12
vendor/github.com/google/uuid/node_js.go
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
// Copyright 2017 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// +build js
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
// getHardwareInterface returns nil values for the JS version of the code.
|
||||||
|
// This remvoves the "net" dependency, because it is not used in the browser.
|
||||||
|
// Using the "net" library inflates the size of the transpiled JS code by 673k bytes.
|
||||||
|
func getHardwareInterface(name string) (string, []byte) { return "", nil }
|
33
vendor/github.com/google/uuid/node_net.go
generated
vendored
Normal file
33
vendor/github.com/google/uuid/node_net.go
generated
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
// Copyright 2017 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// +build !js
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import "net"
|
||||||
|
|
||||||
|
var interfaces []net.Interface // cached list of interfaces
|
||||||
|
|
||||||
|
// getHardwareInterface returns the name and hardware address of interface name.
|
||||||
|
// If name is "" then the name and hardware address of one of the system's
|
||||||
|
// interfaces is returned. If no interfaces are found (name does not exist or
|
||||||
|
// there are no interfaces) then "", nil is returned.
|
||||||
|
//
|
||||||
|
// Only addresses of at least 6 bytes are returned.
|
||||||
|
func getHardwareInterface(name string) (string, []byte) {
|
||||||
|
if interfaces == nil {
|
||||||
|
var err error
|
||||||
|
interfaces, err = net.Interfaces()
|
||||||
|
if err != nil {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, ifs := range interfaces {
|
||||||
|
if len(ifs.HardwareAddr) >= 6 && (name == "" || name == ifs.Name) {
|
||||||
|
return ifs.Name, ifs.HardwareAddr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "", nil
|
||||||
|
}
|
59
vendor/github.com/google/uuid/sql.go
generated
vendored
Normal file
59
vendor/github.com/google/uuid/sql.go
generated
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
// Copyright 2016 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"database/sql/driver"
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Scan implements sql.Scanner so UUIDs can be read from databases transparently
|
||||||
|
// Currently, database types that map to string and []byte are supported. Please
|
||||||
|
// consult database-specific driver documentation for matching types.
|
||||||
|
func (uuid *UUID) Scan(src interface{}) error {
|
||||||
|
switch src := src.(type) {
|
||||||
|
case nil:
|
||||||
|
return nil
|
||||||
|
|
||||||
|
case string:
|
||||||
|
// if an empty UUID comes from a table, we return a null UUID
|
||||||
|
if src == "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// see Parse for required string format
|
||||||
|
u, err := Parse(src)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("Scan: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
*uuid = u
|
||||||
|
|
||||||
|
case []byte:
|
||||||
|
// if an empty UUID comes from a table, we return a null UUID
|
||||||
|
if len(src) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// assumes a simple slice of bytes if 16 bytes
|
||||||
|
// otherwise attempts to parse
|
||||||
|
if len(src) != 16 {
|
||||||
|
return uuid.Scan(string(src))
|
||||||
|
}
|
||||||
|
copy((*uuid)[:], src)
|
||||||
|
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("Scan: unable to scan type %T into UUID", src)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Value implements sql.Valuer so that UUIDs can be written to databases
|
||||||
|
// transparently. Currently, UUIDs map to strings. Please consult
|
||||||
|
// database-specific driver documentation for matching types.
|
||||||
|
func (uuid UUID) Value() (driver.Value, error) {
|
||||||
|
return uuid.String(), nil
|
||||||
|
}
|
123
vendor/github.com/google/uuid/time.go
generated
vendored
Normal file
123
vendor/github.com/google/uuid/time.go
generated
vendored
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
// Copyright 2016 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/binary"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// A Time represents a time as the number of 100's of nanoseconds since 15 Oct
|
||||||
|
// 1582.
|
||||||
|
type Time int64
|
||||||
|
|
||||||
|
const (
|
||||||
|
lillian = 2299160 // Julian day of 15 Oct 1582
|
||||||
|
unix = 2440587 // Julian day of 1 Jan 1970
|
||||||
|
epoch = unix - lillian // Days between epochs
|
||||||
|
g1582 = epoch * 86400 // seconds between epochs
|
||||||
|
g1582ns100 = g1582 * 10000000 // 100s of a nanoseconds between epochs
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
timeMu sync.Mutex
|
||||||
|
lasttime uint64 // last time we returned
|
||||||
|
clockSeq uint16 // clock sequence for this run
|
||||||
|
|
||||||
|
timeNow = time.Now // for testing
|
||||||
|
)
|
||||||
|
|
||||||
|
// UnixTime converts t the number of seconds and nanoseconds using the Unix
|
||||||
|
// epoch of 1 Jan 1970.
|
||||||
|
func (t Time) UnixTime() (sec, nsec int64) {
|
||||||
|
sec = int64(t - g1582ns100)
|
||||||
|
nsec = (sec % 10000000) * 100
|
||||||
|
sec /= 10000000
|
||||||
|
return sec, nsec
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTime returns the current Time (100s of nanoseconds since 15 Oct 1582) and
|
||||||
|
// clock sequence as well as adjusting the clock sequence as needed. An error
|
||||||
|
// is returned if the current time cannot be determined.
|
||||||
|
func GetTime() (Time, uint16, error) {
|
||||||
|
defer timeMu.Unlock()
|
||||||
|
timeMu.Lock()
|
||||||
|
return getTime()
|
||||||
|
}
|
||||||
|
|
||||||
|
func getTime() (Time, uint16, error) {
|
||||||
|
t := timeNow()
|
||||||
|
|
||||||
|
// If we don't have a clock sequence already, set one.
|
||||||
|
if clockSeq == 0 {
|
||||||
|
setClockSequence(-1)
|
||||||
|
}
|
||||||
|
now := uint64(t.UnixNano()/100) + g1582ns100
|
||||||
|
|
||||||
|
// If time has gone backwards with this clock sequence then we
|
||||||
|
// increment the clock sequence
|
||||||
|
if now <= lasttime {
|
||||||
|
clockSeq = ((clockSeq + 1) & 0x3fff) | 0x8000
|
||||||
|
}
|
||||||
|
lasttime = now
|
||||||
|
return Time(now), clockSeq, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ClockSequence returns the current clock sequence, generating one if not
|
||||||
|
// already set. The clock sequence is only used for Version 1 UUIDs.
|
||||||
|
//
|
||||||
|
// The uuid package does not use global static storage for the clock sequence or
|
||||||
|
// the last time a UUID was generated. Unless SetClockSequence is used, a new
|
||||||
|
// random clock sequence is generated the first time a clock sequence is
|
||||||
|
// requested by ClockSequence, GetTime, or NewUUID. (section 4.2.1.1)
|
||||||
|
func ClockSequence() int {
|
||||||
|
defer timeMu.Unlock()
|
||||||
|
timeMu.Lock()
|
||||||
|
return clockSequence()
|
||||||
|
}
|
||||||
|
|
||||||
|
func clockSequence() int {
|
||||||
|
if clockSeq == 0 {
|
||||||
|
setClockSequence(-1)
|
||||||
|
}
|
||||||
|
return int(clockSeq & 0x3fff)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetClockSequence sets the clock sequence to the lower 14 bits of seq. Setting to
|
||||||
|
// -1 causes a new sequence to be generated.
|
||||||
|
func SetClockSequence(seq int) {
|
||||||
|
defer timeMu.Unlock()
|
||||||
|
timeMu.Lock()
|
||||||
|
setClockSequence(seq)
|
||||||
|
}
|
||||||
|
|
||||||
|
func setClockSequence(seq int) {
|
||||||
|
if seq == -1 {
|
||||||
|
var b [2]byte
|
||||||
|
randomBits(b[:]) // clock sequence
|
||||||
|
seq = int(b[0])<<8 | int(b[1])
|
||||||
|
}
|
||||||
|
oldSeq := clockSeq
|
||||||
|
clockSeq = uint16(seq&0x3fff) | 0x8000 // Set our variant
|
||||||
|
if oldSeq != clockSeq {
|
||||||
|
lasttime = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Time returns the time in 100s of nanoseconds since 15 Oct 1582 encoded in
|
||||||
|
// uuid. The time is only defined for version 1 and 2 UUIDs.
|
||||||
|
func (uuid UUID) Time() Time {
|
||||||
|
time := int64(binary.BigEndian.Uint32(uuid[0:4]))
|
||||||
|
time |= int64(binary.BigEndian.Uint16(uuid[4:6])) << 32
|
||||||
|
time |= int64(binary.BigEndian.Uint16(uuid[6:8])&0xfff) << 48
|
||||||
|
return Time(time)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ClockSequence returns the clock sequence encoded in uuid.
|
||||||
|
// The clock sequence is only well defined for version 1 and 2 UUIDs.
|
||||||
|
func (uuid UUID) ClockSequence() int {
|
||||||
|
return int(binary.BigEndian.Uint16(uuid[8:10])) & 0x3fff
|
||||||
|
}
|
43
vendor/github.com/google/uuid/util.go
generated
vendored
Normal file
43
vendor/github.com/google/uuid/util.go
generated
vendored
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
// Copyright 2016 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io"
|
||||||
|
)
|
||||||
|
|
||||||
|
// randomBits completely fills slice b with random data.
|
||||||
|
func randomBits(b []byte) {
|
||||||
|
if _, err := io.ReadFull(rander, b); err != nil {
|
||||||
|
panic(err.Error()) // rand should never fail
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// xvalues returns the value of a byte as a hexadecimal digit or 255.
|
||||||
|
var xvalues = [256]byte{
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
}
|
||||||
|
|
||||||
|
// xtob converts hex characters x1 and x2 into a byte.
|
||||||
|
func xtob(x1, x2 byte) (byte, bool) {
|
||||||
|
b1 := xvalues[x1]
|
||||||
|
b2 := xvalues[x2]
|
||||||
|
return (b1 << 4) | b2, b1 != 255 && b2 != 255
|
||||||
|
}
|
245
vendor/github.com/google/uuid/uuid.go
generated
vendored
Normal file
245
vendor/github.com/google/uuid/uuid.go
generated
vendored
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
// Copyright 2018 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"crypto/rand"
|
||||||
|
"encoding/hex"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC
|
||||||
|
// 4122.
|
||||||
|
type UUID [16]byte
|
||||||
|
|
||||||
|
// A Version represents a UUID's version.
|
||||||
|
type Version byte
|
||||||
|
|
||||||
|
// A Variant represents a UUID's variant.
|
||||||
|
type Variant byte
|
||||||
|
|
||||||
|
// Constants returned by Variant.
|
||||||
|
const (
|
||||||
|
Invalid = Variant(iota) // Invalid UUID
|
||||||
|
RFC4122 // The variant specified in RFC4122
|
||||||
|
Reserved // Reserved, NCS backward compatibility.
|
||||||
|
Microsoft // Reserved, Microsoft Corporation backward compatibility.
|
||||||
|
Future // Reserved for future definition.
|
||||||
|
)
|
||||||
|
|
||||||
|
var rander = rand.Reader // random function
|
||||||
|
|
||||||
|
// Parse decodes s into a UUID or returns an error. Both the standard UUID
|
||||||
|
// forms of xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and
|
||||||
|
// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are decoded as well as the
|
||||||
|
// Microsoft encoding {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} and the raw hex
|
||||||
|
// encoding: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
|
||||||
|
func Parse(s string) (UUID, error) {
|
||||||
|
var uuid UUID
|
||||||
|
switch len(s) {
|
||||||
|
// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
||||||
|
case 36:
|
||||||
|
|
||||||
|
// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
||||||
|
case 36 + 9:
|
||||||
|
if strings.ToLower(s[:9]) != "urn:uuid:" {
|
||||||
|
return uuid, fmt.Errorf("invalid urn prefix: %q", s[:9])
|
||||||
|
}
|
||||||
|
s = s[9:]
|
||||||
|
|
||||||
|
// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
|
||||||
|
case 36 + 2:
|
||||||
|
s = s[1:]
|
||||||
|
|
||||||
|
// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
case 32:
|
||||||
|
var ok bool
|
||||||
|
for i := range uuid {
|
||||||
|
uuid[i], ok = xtob(s[i*2], s[i*2+1])
|
||||||
|
if !ok {
|
||||||
|
return uuid, errors.New("invalid UUID format")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return uuid, nil
|
||||||
|
default:
|
||||||
|
return uuid, fmt.Errorf("invalid UUID length: %d", len(s))
|
||||||
|
}
|
||||||
|
// s is now at least 36 bytes long
|
||||||
|
// it must be of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
||||||
|
if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {
|
||||||
|
return uuid, errors.New("invalid UUID format")
|
||||||
|
}
|
||||||
|
for i, x := range [16]int{
|
||||||
|
0, 2, 4, 6,
|
||||||
|
9, 11,
|
||||||
|
14, 16,
|
||||||
|
19, 21,
|
||||||
|
24, 26, 28, 30, 32, 34} {
|
||||||
|
v, ok := xtob(s[x], s[x+1])
|
||||||
|
if !ok {
|
||||||
|
return uuid, errors.New("invalid UUID format")
|
||||||
|
}
|
||||||
|
uuid[i] = v
|
||||||
|
}
|
||||||
|
return uuid, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ParseBytes is like Parse, except it parses a byte slice instead of a string.
|
||||||
|
func ParseBytes(b []byte) (UUID, error) {
|
||||||
|
var uuid UUID
|
||||||
|
switch len(b) {
|
||||||
|
case 36: // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
||||||
|
case 36 + 9: // urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
||||||
|
if !bytes.Equal(bytes.ToLower(b[:9]), []byte("urn:uuid:")) {
|
||||||
|
return uuid, fmt.Errorf("invalid urn prefix: %q", b[:9])
|
||||||
|
}
|
||||||
|
b = b[9:]
|
||||||
|
case 36 + 2: // {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
|
||||||
|
b = b[1:]
|
||||||
|
case 32: // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
var ok bool
|
||||||
|
for i := 0; i < 32; i += 2 {
|
||||||
|
uuid[i/2], ok = xtob(b[i], b[i+1])
|
||||||
|
if !ok {
|
||||||
|
return uuid, errors.New("invalid UUID format")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return uuid, nil
|
||||||
|
default:
|
||||||
|
return uuid, fmt.Errorf("invalid UUID length: %d", len(b))
|
||||||
|
}
|
||||||
|
// s is now at least 36 bytes long
|
||||||
|
// it must be of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
||||||
|
if b[8] != '-' || b[13] != '-' || b[18] != '-' || b[23] != '-' {
|
||||||
|
return uuid, errors.New("invalid UUID format")
|
||||||
|
}
|
||||||
|
for i, x := range [16]int{
|
||||||
|
0, 2, 4, 6,
|
||||||
|
9, 11,
|
||||||
|
14, 16,
|
||||||
|
19, 21,
|
||||||
|
24, 26, 28, 30, 32, 34} {
|
||||||
|
v, ok := xtob(b[x], b[x+1])
|
||||||
|
if !ok {
|
||||||
|
return uuid, errors.New("invalid UUID format")
|
||||||
|
}
|
||||||
|
uuid[i] = v
|
||||||
|
}
|
||||||
|
return uuid, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MustParse is like Parse but panics if the string cannot be parsed.
|
||||||
|
// It simplifies safe initialization of global variables holding compiled UUIDs.
|
||||||
|
func MustParse(s string) UUID {
|
||||||
|
uuid, err := Parse(s)
|
||||||
|
if err != nil {
|
||||||
|
panic(`uuid: Parse(` + s + `): ` + err.Error())
|
||||||
|
}
|
||||||
|
return uuid
|
||||||
|
}
|
||||||
|
|
||||||
|
// FromBytes creates a new UUID from a byte slice. Returns an error if the slice
|
||||||
|
// does not have a length of 16. The bytes are copied from the slice.
|
||||||
|
func FromBytes(b []byte) (uuid UUID, err error) {
|
||||||
|
err = uuid.UnmarshalBinary(b)
|
||||||
|
return uuid, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Must returns uuid if err is nil and panics otherwise.
|
||||||
|
func Must(uuid UUID, err error) UUID {
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
return uuid
|
||||||
|
}
|
||||||
|
|
||||||
|
// String returns the string form of uuid, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
||||||
|
// , or "" if uuid is invalid.
|
||||||
|
func (uuid UUID) String() string {
|
||||||
|
var buf [36]byte
|
||||||
|
encodeHex(buf[:], uuid)
|
||||||
|
return string(buf[:])
|
||||||
|
}
|
||||||
|
|
||||||
|
// URN returns the RFC 2141 URN form of uuid,
|
||||||
|
// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, or "" if uuid is invalid.
|
||||||
|
func (uuid UUID) URN() string {
|
||||||
|
var buf [36 + 9]byte
|
||||||
|
copy(buf[:], "urn:uuid:")
|
||||||
|
encodeHex(buf[9:], uuid)
|
||||||
|
return string(buf[:])
|
||||||
|
}
|
||||||
|
|
||||||
|
func encodeHex(dst []byte, uuid UUID) {
|
||||||
|
hex.Encode(dst, uuid[:4])
|
||||||
|
dst[8] = '-'
|
||||||
|
hex.Encode(dst[9:13], uuid[4:6])
|
||||||
|
dst[13] = '-'
|
||||||
|
hex.Encode(dst[14:18], uuid[6:8])
|
||||||
|
dst[18] = '-'
|
||||||
|
hex.Encode(dst[19:23], uuid[8:10])
|
||||||
|
dst[23] = '-'
|
||||||
|
hex.Encode(dst[24:], uuid[10:])
|
||||||
|
}
|
||||||
|
|
||||||
|
// Variant returns the variant encoded in uuid.
|
||||||
|
func (uuid UUID) Variant() Variant {
|
||||||
|
switch {
|
||||||
|
case (uuid[8] & 0xc0) == 0x80:
|
||||||
|
return RFC4122
|
||||||
|
case (uuid[8] & 0xe0) == 0xc0:
|
||||||
|
return Microsoft
|
||||||
|
case (uuid[8] & 0xe0) == 0xe0:
|
||||||
|
return Future
|
||||||
|
default:
|
||||||
|
return Reserved
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Version returns the version of uuid.
|
||||||
|
func (uuid UUID) Version() Version {
|
||||||
|
return Version(uuid[6] >> 4)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v Version) String() string {
|
||||||
|
if v > 15 {
|
||||||
|
return fmt.Sprintf("BAD_VERSION_%d", v)
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("VERSION_%d", v)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v Variant) String() string {
|
||||||
|
switch v {
|
||||||
|
case RFC4122:
|
||||||
|
return "RFC4122"
|
||||||
|
case Reserved:
|
||||||
|
return "Reserved"
|
||||||
|
case Microsoft:
|
||||||
|
return "Microsoft"
|
||||||
|
case Future:
|
||||||
|
return "Future"
|
||||||
|
case Invalid:
|
||||||
|
return "Invalid"
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("BadVariant%d", int(v))
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetRand sets the random number generator to r, which implements io.Reader.
|
||||||
|
// If r.Read returns an error when the package requests random data then
|
||||||
|
// a panic will be issued.
|
||||||
|
//
|
||||||
|
// Calling SetRand with nil sets the random number generator to the default
|
||||||
|
// generator.
|
||||||
|
func SetRand(r io.Reader) {
|
||||||
|
if r == nil {
|
||||||
|
rander = rand.Reader
|
||||||
|
return
|
||||||
|
}
|
||||||
|
rander = r
|
||||||
|
}
|
44
vendor/github.com/google/uuid/version1.go
generated
vendored
Normal file
44
vendor/github.com/google/uuid/version1.go
generated
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright 2016 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/binary"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewUUID returns a Version 1 UUID based on the current NodeID and clock
|
||||||
|
// sequence, and the current time. If the NodeID has not been set by SetNodeID
|
||||||
|
// or SetNodeInterface then it will be set automatically. If the NodeID cannot
|
||||||
|
// be set NewUUID returns nil. If clock sequence has not been set by
|
||||||
|
// SetClockSequence then it will be set automatically. If GetTime fails to
|
||||||
|
// return the current NewUUID returns nil and an error.
|
||||||
|
//
|
||||||
|
// In most cases, New should be used.
|
||||||
|
func NewUUID() (UUID, error) {
|
||||||
|
nodeMu.Lock()
|
||||||
|
if nodeID == zeroID {
|
||||||
|
setNodeInterface("")
|
||||||
|
}
|
||||||
|
nodeMu.Unlock()
|
||||||
|
|
||||||
|
var uuid UUID
|
||||||
|
now, seq, err := GetTime()
|
||||||
|
if err != nil {
|
||||||
|
return uuid, err
|
||||||
|
}
|
||||||
|
|
||||||
|
timeLow := uint32(now & 0xffffffff)
|
||||||
|
timeMid := uint16((now >> 32) & 0xffff)
|
||||||
|
timeHi := uint16((now >> 48) & 0x0fff)
|
||||||
|
timeHi |= 0x1000 // Version 1
|
||||||
|
|
||||||
|
binary.BigEndian.PutUint32(uuid[0:], timeLow)
|
||||||
|
binary.BigEndian.PutUint16(uuid[4:], timeMid)
|
||||||
|
binary.BigEndian.PutUint16(uuid[6:], timeHi)
|
||||||
|
binary.BigEndian.PutUint16(uuid[8:], seq)
|
||||||
|
copy(uuid[10:], nodeID[:])
|
||||||
|
|
||||||
|
return uuid, nil
|
||||||
|
}
|
38
vendor/github.com/google/uuid/version4.go
generated
vendored
Normal file
38
vendor/github.com/google/uuid/version4.go
generated
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
// Copyright 2016 Google Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package uuid
|
||||||
|
|
||||||
|
import "io"
|
||||||
|
|
||||||
|
// New creates a new random UUID or panics. New is equivalent to
|
||||||
|
// the expression
|
||||||
|
//
|
||||||
|
// uuid.Must(uuid.NewRandom())
|
||||||
|
func New() UUID {
|
||||||
|
return Must(NewRandom())
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewRandom returns a Random (Version 4) UUID.
|
||||||
|
//
|
||||||
|
// The strength of the UUIDs is based on the strength of the crypto/rand
|
||||||
|
// package.
|
||||||
|
//
|
||||||
|
// A note about uniqueness derived from the UUID Wikipedia entry:
|
||||||
|
//
|
||||||
|
// Randomly generated UUIDs have 122 random bits. One's annual risk of being
|
||||||
|
// hit by a meteorite is estimated to be one chance in 17 billion, that
|
||||||
|
// means the probability is about 0.00000000006 (6 × 10−11),
|
||||||
|
// equivalent to the odds of creating a few tens of trillions of UUIDs in a
|
||||||
|
// year and having one duplicate.
|
||||||
|
func NewRandom() (UUID, error) {
|
||||||
|
var uuid UUID
|
||||||
|
_, err := io.ReadFull(rander, uuid[:])
|
||||||
|
if err != nil {
|
||||||
|
return Nil, err
|
||||||
|
}
|
||||||
|
uuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4
|
||||||
|
uuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10
|
||||||
|
return uuid, nil
|
||||||
|
}
|
15
vendor/modules.txt
vendored
15
vendor/modules.txt
vendored
@ -170,6 +170,8 @@ github.com/google/go-github/v26/github
|
|||||||
github.com/google/go-querystring/query
|
github.com/google/go-querystring/query
|
||||||
# github.com/google/gofuzz v1.0.0
|
# github.com/google/gofuzz v1.0.0
|
||||||
github.com/google/gofuzz
|
github.com/google/gofuzz
|
||||||
|
# github.com/google/uuid v1.1.1
|
||||||
|
github.com/google/uuid
|
||||||
# github.com/googleapis/gax-go/v2 v2.0.5
|
# github.com/googleapis/gax-go/v2 v2.0.5
|
||||||
github.com/googleapis/gax-go/v2
|
github.com/googleapis/gax-go/v2
|
||||||
# github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d
|
# github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d
|
||||||
@ -202,6 +204,19 @@ github.com/logrusorgru/aurora
|
|||||||
github.com/lucasb-eyer/go-colorful
|
github.com/lucasb-eyer/go-colorful
|
||||||
# github.com/mattn/go-runewidth v0.0.4
|
# github.com/mattn/go-runewidth v0.0.4
|
||||||
github.com/mattn/go-runewidth
|
github.com/mattn/go-runewidth
|
||||||
|
# github.com/microsoft/azure-devops-go-api/azuredevops v0.0.0-20190912142452-3207b4a469d3
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops/build
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops/core
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops/distributedtaskcommon
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops/git
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops/test
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops/webapi
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops/identity
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops/operations
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops/policy
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops/system
|
||||||
|
github.com/microsoft/azure-devops-go-api/azuredevops/delegatedauthorization
|
||||||
# github.com/mmcdole/gofeed v1.0.0-beta2.0.20190420154928-0e68beaf6fdf
|
# github.com/mmcdole/gofeed v1.0.0-beta2.0.20190420154928-0e68beaf6fdf
|
||||||
github.com/mmcdole/gofeed
|
github.com/mmcdole/gofeed
|
||||||
github.com/mmcdole/gofeed/atom
|
github.com/mmcdole/gofeed/atom
|
||||||
|
Loading…
x
Reference in New Issue
Block a user