Merge lp:~chipaca/ubuntu-push/auth-packaging into lp:ubuntu-push/automatic

Proposed by John Lenton
Status: Merged
Approved by: Samuele Pedroni
Approved revision: 126
Merged at revision: 123
Proposed branch: lp:~chipaca/ubuntu-push/auth-packaging
Merge into: lp:ubuntu-push/automatic
Diff against target: 435 lines (+191/-18)
13 files modified
Makefile (+3/-0)
README (+11/-2)
client/client.go (+21/-2)
client/client_test.go (+17/-2)
client/session/session.go (+7/-4)
client/session/session_test.go (+7/-4)
debian/changelog (+22/-3)
debian/control (+4/-0)
debian/rules (+4/-1)
dependencies.tsv (+2/-0)
ubuntu-push-client.go (+4/-0)
util/auth.go (+36/-0)
util/auth_test.go (+53/-0)
To merge this branch: bzr merge lp:~chipaca/ubuntu-push/auth-packaging
Reviewer Review Type Date Requested Status
Diogo Baeder (community) Approve
Review via email: mp+215868@code.launchpad.net

Commit message

Packaging for the auth branch.

Description of the change

Packaging for the auth branch.

Includes the auth branch.

To post a comment you must log in.
Revision history for this message
Diogo Baeder (diogobaeder) wrote :

Looks good to me.

review: Approve
Revision history for this message
Ubuntu One Auto Pilot (otto-pilot) wrote :

The attempt to merge lp:~chipaca/ubuntu-push/auth-packaging into lp:ubuntu-push/automatic failed. Below is the output from the failed tests.

mkdir -p /mnt/tarmac/cache/ubuntu-push-automatic/go-ws/bin
mkdir -p /mnt/tarmac/cache/ubuntu-push-automatic/go-ws/pkg
go get -u launchpad.net/godeps
go get -d -u launchpad.net/gocheck launchpad.net/go-dbus/v1 launchpad.net/go-xdg/v0 code.google.com/p/gosqlite/sqlite3 gopkg.in/qml.v0 gopkg.in/niemeyer/uoneauth.v1
/mnt/tarmac/cache/ubuntu-push-automatic/go-ws/bin/godeps -u dependencies.tsv
"/mnt/tarmac/cache/ubuntu-push-automatic/go-ws/src/launchpad.net/gocheck" now at <email address hidden>
"/mnt/tarmac/cache/ubuntu-push-automatic/go-ws/src/gopkg.in/qml.v0" now at master
"/mnt/tarmac/cache/ubuntu-push-automatic/go-ws/src/gopkg.in/niemeyer/uoneauth.v1" now at v1
go install launchpad.net/gocheck launchpad.net/go-dbus/v1 launchpad.net/go-xdg/v0 code.google.com/p/gosqlite/sqlite3 gopkg.in/qml.v0 gopkg.in/niemeyer/uoneauth.v1

# gopkg.in/qml.v0
../../gopkg.in/qml.v0/bridge.go:16: import /mnt/tarmac/cache/ubuntu-push-automatic/go-ws/pkg/linux_amd64/gopkg.in/qml.v0/tref.a: object is [linux amd64 go1.2 X:none] expected [linux amd64 go1.2.1 X:none]
make: *** [bootstrap] Error 2

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'Makefile'
--- Makefile 2014-03-31 17:58:54 +0000
+++ Makefile 2014-04-15 14:48:44 +0000
@@ -11,10 +11,13 @@
11GODEPS += launchpad.net/go-dbus/v111GODEPS += launchpad.net/go-dbus/v1
12GODEPS += launchpad.net/go-xdg/v012GODEPS += launchpad.net/go-xdg/v0
13GODEPS += code.google.com/p/gosqlite/sqlite313GODEPS += code.google.com/p/gosqlite/sqlite3
14GODEPS += gopkg.in/qml.v0
15GODEPS += gopkg.in/niemeyer/uoneauth.v1
1416
15TOTEST = $(shell env GOPATH=$(GOPATH) go list $(PROJECT)/...|grep -v acceptance|grep -v http13client )17TOTEST = $(shell env GOPATH=$(GOPATH) go list $(PROJECT)/...|grep -v acceptance|grep -v http13client )
1618
17bootstrap:19bootstrap:
20 $(RM) -r $(GOPATH)/pkg
18 mkdir -p $(GOPATH)/bin21 mkdir -p $(GOPATH)/bin
19 mkdir -p $(GOPATH)/pkg22 mkdir -p $(GOPATH)/pkg
20 go get -u launchpad.net/godeps23 go get -u launchpad.net/godeps
2124
=== modified file 'README'
--- README 2014-03-31 17:58:54 +0000
+++ README 2014-04-15 14:48:44 +0000
@@ -6,11 +6,20 @@
6The code expects to be checked out as launchpad.net/ubuntu-push in a Go6The code expects to be checked out as launchpad.net/ubuntu-push in a Go
7workspace, see "go help gopath".7workspace, see "go help gopath".
88
9To setup Go dependencies, install libsqlite3-dev and run:9To setup Go dependencies, install the following libraries:
10
11 libsqlite3-dev
12 qtbase5-private-dev
13 qtdeclarative5-dev
14 libqt5opengl5-dev
15 libubuntuoneauth-2.0-dev
16
17and run:
1018
11 make bootstrap19 make bootstrap
1220
13To run tests, install libgcrypt11-dev and libwhoopsie-dev and run:21To run tests, install libgcrypt11-dev, libwhoopsie-dev, and
22libubuntuoneauth-2.0-dev and run:
1423
15 make check24 make check
1625
1726
=== modified file 'client/client.go'
--- client/client.go 2014-04-11 19:09:11 +0000
+++ client/client.go 2014-04-15 14:48:44 +0000
@@ -26,6 +26,7 @@
26 "os"26 "os"
27 "strings"27 "strings"
2828
29 "gopkg.in/qml.v0"
29 "launchpad.net/go-dbus/v1"30 "launchpad.net/go-dbus/v1"
3031
31 "launchpad.net/ubuntu-push/bus"32 "launchpad.net/ubuntu-push/bus"
@@ -42,6 +43,11 @@
42 "launchpad.net/ubuntu-push/whoopsie/identifier"43 "launchpad.net/ubuntu-push/whoopsie/identifier"
43)44)
4445
46var (
47 getAuthorization = util.GetAuthorization
48 shouldGetAuth = false
49)
50
45// ClientConfig holds the client configuration51// ClientConfig holds the client configuration
46type ClientConfig struct {52type ClientConfig struct {
47 connectivity.ConnectivityConfig // q.v.53 connectivity.ConnectivityConfig // q.v.
@@ -79,6 +85,7 @@
79 actionsCh <-chan notifications.RawActionReply85 actionsCh <-chan notifications.RawActionReply
80 session *session.ClientSession86 session *session.ClientSession
81 sessionConnectedCh chan uint3287 sessionConnectedCh chan uint32
88 auth string
82}89}
8390
84var ACTION_ID_SNOWFLAKE = "::ubuntu-push-client::"91var ACTION_ID_SNOWFLAKE = "::ubuntu-push-client::"
@@ -111,6 +118,17 @@
111118
112 // later, we'll be specifying more logging options in the config file119 // later, we'll be specifying more logging options in the config file
113 client.log = logger.NewSimpleLogger(os.Stderr, client.config.LogLevel.Level())120 client.log = logger.NewSimpleLogger(os.Stderr, client.config.LogLevel.Level())
121 qml.SetLogger(client.log)
122
123 // grab the authorization string from the accounts
124 // TODO: remove this condition when we have a way to deal with failing authorizations
125 if shouldGetAuth {
126 auth, err := getAuthorization()
127 if err != nil {
128 return fmt.Errorf("unable to get the authorization token from the account: %v", err)
129 }
130 client.auth = auth
131 }
114132
115 // overridden for testing133 // overridden for testing
116 client.idder = identifier.New()134 client.idder = identifier.New()
@@ -144,8 +162,9 @@
144 ExchangeTimeout: client.config.ExchangeTimeout.TimeDuration(),162 ExchangeTimeout: client.config.ExchangeTimeout.TimeDuration(),
145 HostsCachingExpiryTime: client.config.HostsCachingExpiryTime.TimeDuration(),163 HostsCachingExpiryTime: client.config.HostsCachingExpiryTime.TimeDuration(),
146 ExpectAllRepairedTime: client.config.ExpectAllRepairedTime.TimeDuration(),164 ExpectAllRepairedTime: client.config.ExpectAllRepairedTime.TimeDuration(),
147 PEM: client.pem,165 PEM: client.pem,
148 Info: info,166 Info: info,
167 Authorization: client.auth,
149 }168 }
150}169}
151170
152171
=== modified file 'client/client_test.go'
--- client/client_test.go 2014-04-11 19:07:27 +0000
+++ client/client_test.go 2014-04-15 14:48:44 +0000
@@ -85,11 +85,17 @@
85 config.IgnoreParsedFlags = true // because configure() uses <flags>85 config.IgnoreParsedFlags = true // because configure() uses <flags>
86 cs.timeouts = util.SwapTimeouts([]time.Duration{0})86 cs.timeouts = util.SwapTimeouts([]time.Duration{0})
87 cs.leveldbPath = ""87 cs.leveldbPath = ""
88 getAuthorization = func() (string, error) {
89 return "some auth", nil
90 }
91 shouldGetAuth = true
88}92}
8993
90func (cs *clientSuite) TearDownSuite(c *C) {94func (cs *clientSuite) TearDownSuite(c *C) {
91 util.SwapTimeouts(cs.timeouts)95 util.SwapTimeouts(cs.timeouts)
92 cs.timeouts = nil96 cs.timeouts = nil
97 getAuthorization = util.GetAuthorization
98 shouldGetAuth = false
93}99}
94100
95func (cs *clientSuite) writeTestConfig(overrides map[string]interface{}) {101func (cs *clientSuite) writeTestConfig(overrides map[string]interface{}) {
@@ -200,6 +206,14 @@
200 c.Assert(cli.connCh, NotNil)206 c.Assert(cli.connCh, NotNil)
201}207}
202208
209func (cs *clientSuite) TestConfigureSetsUpAuth(c *C) {
210 cli := NewPushClient(cs.configPath, cs.leveldbPath)
211 c.Check(cli.auth, Equals, "")
212 err := cli.configure()
213 c.Assert(err, IsNil)
214 c.Assert(cli.auth, Equals, "some auth")
215}
216
203func (cs *clientSuite) TestConfigureBailsOnBadFilename(c *C) {217func (cs *clientSuite) TestConfigureBailsOnBadFilename(c *C) {
204 cli := NewPushClient("/does/not/exist", cs.leveldbPath)218 cli := NewPushClient("/does/not/exist", cs.leveldbPath)
205 err := cli.configure()219 err := cli.configure()
@@ -265,8 +279,9 @@
265 ExchangeTimeout: 10 * time.Millisecond,279 ExchangeTimeout: 10 * time.Millisecond,
266 HostsCachingExpiryTime: 1 * time.Hour,280 HostsCachingExpiryTime: 1 * time.Hour,
267 ExpectAllRepairedTime: 30 * time.Minute,281 ExpectAllRepairedTime: 30 * time.Minute,
268 PEM: cli.pem,282 PEM: cli.pem,
269 Info: info,283 Info: info,
284 Authorization: "some auth",
270 }285 }
271 // sanity check that we are looking at all fields286 // sanity check that we are looking at all fields
272 vExpected := reflect.ValueOf(expected)287 vExpected := reflect.ValueOf(expected)
273288
=== modified file 'client/session/session.go'
--- client/session/session.go 2014-04-04 13:55:00 +0000
+++ client/session/session.go 2014-04-15 14:48:44 +0000
@@ -84,6 +84,7 @@
84 ExpectAllRepairedTime time.Duration84 ExpectAllRepairedTime time.Duration
85 PEM []byte85 PEM []byte
86 Info map[string]interface{}86 Info map[string]interface{}
87 Authorization string
87}88}
8889
89// ClientSession holds a client<->server session and its configuration.90// ClientSession holds a client<->server session and its configuration.
@@ -115,6 +116,8 @@
115 stateP *uint32116 stateP *uint32
116 ErrCh chan error117 ErrCh chan error
117 MsgCh chan *Notification118 MsgCh chan *Notification
119 // authorization
120 auth string
118}121}
119122
120func NewSession(serverAddrSpec string, conf ClientSessionConfig,123func NewSession(serverAddrSpec string, conf ClientSessionConfig,
@@ -142,6 +145,7 @@
142 TLS: &tls.Config{InsecureSkipVerify: true}, // XXX145 TLS: &tls.Config{InsecureSkipVerify: true}, // XXX
143 stateP: &state,146 stateP: &state,
144 timeSince: time.Since,147 timeSince: time.Since,
148 auth: conf.Authorization,
145 }149 }
146 if sess.PEM != nil {150 if sess.PEM != nil {
147 cp := x509.NewCertPool()151 cp := x509.NewCertPool()
@@ -409,10 +413,9 @@
409 return err413 return err
410 }414 }
411 err = proto.WriteMessage(protocol.ConnectMsg{415 err = proto.WriteMessage(protocol.ConnectMsg{
412 Type: "connect",416 Type: "connect",
413 DeviceId: sess.DeviceId,417 DeviceId: sess.DeviceId,
414 // xxx get the SSO Authorization string from the phone418 Authorization: sess.auth,
415 Authorization: "",
416 Levels: levels,419 Levels: levels,
417 Info: sess.Info,420 Info: sess.Info,
418 })421 })
419422
=== modified file 'client/session/session_test.go'
--- client/session/session_test.go 2014-04-04 13:55:00 +0000
+++ client/session/session_test.go 2014-04-15 14:48:44 +0000
@@ -852,9 +852,10 @@
852852
853 c.Check(takeNext(downCh), Equals, "deadline 0")853 c.Check(takeNext(downCh), Equals, "deadline 0")
854 c.Check(takeNext(downCh), DeepEquals, protocol.ConnectMsg{854 c.Check(takeNext(downCh), DeepEquals, protocol.ConnectMsg{
855 Type: "connect",855 Type: "connect",
856 DeviceId: sess.DeviceId,856 DeviceId: sess.DeviceId,
857 Levels: map[string]int64{},857 Levels: map[string]int64{},
858 Authorization: "",
858 })859 })
859 upCh <- errors.New("Overflow error in /dev/null")860 upCh <- errors.New("Overflow error in /dev/null")
860 err = <-errCh861 err = <-errCh
@@ -940,7 +941,8 @@
940 "bar": "baz",941 "bar": "baz",
941 }942 }
942 conf := ClientSessionConfig{943 conf := ClientSessionConfig{
943 Info: info,944 Info: info,
945 Authorization: "some auth",
944 }946 }
945 sess, err := NewSession("", conf, "wah", cs.lvls, cs.log)947 sess, err := NewSession("", conf, "wah", cs.lvls, cs.log)
946 c.Assert(err, IsNil)948 c.Assert(err, IsNil)
@@ -959,6 +961,7 @@
959 msg, ok := takeNext(downCh).(protocol.ConnectMsg)961 msg, ok := takeNext(downCh).(protocol.ConnectMsg)
960 c.Check(ok, Equals, true)962 c.Check(ok, Equals, true)
961 c.Check(msg.DeviceId, Equals, "wah")963 c.Check(msg.DeviceId, Equals, "wah")
964 c.Check(msg.Authorization, Equals, "some auth")
962 c.Check(msg.Info, DeepEquals, info)965 c.Check(msg.Info, DeepEquals, info)
963 upCh <- nil // no error966 upCh <- nil // no error
964 upCh <- protocol.ConnAckMsg{967 upCh <- protocol.ConnAckMsg{
965968
=== modified file 'debian/changelog'
--- debian/changelog 2014-04-11 10:20:27 +0000
+++ debian/changelog 2014-04-15 14:48:44 +0000
@@ -1,8 +1,27 @@
1ubuntu-push (0.2-0ubuntu1) UNRELEASED; urgency=medium1ubuntu-push (0.21-0.ubuntu1) UNRELEASED; urgency=medium
22
3 * New upstream release: first auth bits, and Qt dependency.
4
5 -- John Lenton <john.lenton@canonical.com> Tue, 15 Apr 2014 14:04:35 +0100
6
7ubuntu-push (0.2+14.04.20140411-0ubuntu1) trusty; urgency=medium
8
9 [ John Lenton ]
3 * New upstream release.10 * New upstream release.
411
5 -- John Lenton <john.lenton@canonical.com> Fri, 11 Apr 2014 11:19:42 +010012 [ Richard Huddie ]
13 * added basic autopilot framework
14 * configparser and http post updates
15 * removed tests folder
16
17 -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 11 Apr 2014 18:31:57 +0000
18
19ubuntu-push (0.1+14.04.20140404-0ubuntu1) trusty; urgency=low
20
21 [ Tarmac ]
22 * Merge automatic into trunk.
23
24 -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 04 Apr 2014 14:52:06 +0000
625
7ubuntu-push (0.1+14.04.20140327-0ubuntu1) trusty; urgency=medium26ubuntu-push (0.1+14.04.20140327-0ubuntu1) trusty; urgency=medium
827
928
=== modified file 'debian/control'
--- debian/control 2014-03-25 16:26:20 +0000
+++ debian/control 2014-04-15 14:48:44 +0000
@@ -14,6 +14,10 @@
14 libgcrypt11-dev,14 libgcrypt11-dev,
15 libglib2.0-dev (>= 2.31.6),15 libglib2.0-dev (>= 2.31.6),
16 libwhoopsie-dev,16 libwhoopsie-dev,
17 qtbase5-private-dev,
18 qtdeclarative5-dev,
19 libqt5opengl5-dev,
20 libubuntuoneauth-2.0-dev,
17Standards-Version: 3.9.521Standards-Version: 3.9.5
18Homepage: http://launchpad.net/ubuntu-push22Homepage: http://launchpad.net/ubuntu-push
19Vcs-Bzr: lp:ubuntu-push23Vcs-Bzr: lp:ubuntu-push
2024
=== modified file 'debian/rules'
--- debian/rules 2014-03-24 12:22:55 +0000
+++ debian/rules 2014-04-15 14:48:44 +0000
@@ -2,9 +2,12 @@
2# -*- makefile -*-2# -*- makefile -*-
33
4export DH_GOPKG := launchpad.net/ubuntu-push4export DH_GOPKG := launchpad.net/ubuntu-push
5export DEB_BUILD_OPTIONS := nostrip
6export UBUNTU_PUSH_TEST_RESOURCES_ROOT := $(CURDIR)5export UBUNTU_PUSH_TEST_RESOURCES_ROOT := $(CURDIR)
76
7override_dh_auto_build:
8 cd $$( find ./ -type d -regex '\./[^/]*/src/launchpad.net' -printf "%h\n" | head -n1) && tar xvzf ../../externals.tgz
9 dh_auto_build --buildsystem=golang
10
8override_dh_install:11override_dh_install:
9 dh_install -Xusr/bin/cmd -Xusr/bin/dev --fail-missing12 dh_install -Xusr/bin/cmd -Xusr/bin/dev --fail-missing
1013
1114
=== modified file 'dependencies.tsv'
--- dependencies.tsv 2014-03-12 13:23:26 +0000
+++ dependencies.tsv 2014-04-15 14:48:44 +0000
@@ -2,3 +2,5 @@
2launchpad.net/go-dbus/v1 bzr james@jamesh.id.au-20140206110213-pbzcr6ucaz3rqmnw 1252launchpad.net/go-dbus/v1 bzr james@jamesh.id.au-20140206110213-pbzcr6ucaz3rqmnw 125
3launchpad.net/go-xdg/v0 bzr john.lenton@canonical.com-20140208094800-gubd5md7cro3mtxa 103launchpad.net/go-xdg/v0 bzr john.lenton@canonical.com-20140208094800-gubd5md7cro3mtxa 10
4launchpad.net/gocheck bzr gustavo@niemeyer.net-20140127131816-zshobk1qqme626xw 864launchpad.net/gocheck bzr gustavo@niemeyer.net-20140127131816-zshobk1qqme626xw 86
5gopkg.in/qml.v0 git master 8adbc8c2bf2da9f609df366683ad0f47a89c3d49
6gopkg.in/niemeyer/uoneauth.v1 git v1 0758ba882a143ad2862dbcac85a7ca145750b640
57
=== added file 'externals.tgz'
6Binary files externals.tgz 1970-01-01 00:00:00 +0000 and externals.tgz 2014-04-15 14:48:44 +0000 differ8Binary files externals.tgz 1970-01-01 00:00:00 +0000 and externals.tgz 2014-04-15 14:48:44 +0000 differ
=== modified file 'ubuntu-push-client.go'
--- ubuntu-push-client.go 2014-04-15 11:27:38 +0000
+++ ubuntu-push-client.go 2014-04-15 14:48:44 +0000
@@ -19,6 +19,7 @@
19import (19import (
20 "log"20 "log"
2121
22 "gopkg.in/qml.v0"
22 "launchpad.net/go-dbus/v1"23 "launchpad.net/go-dbus/v1"
23 "launchpad.net/go-xdg/v0"24 "launchpad.net/go-xdg/v0"
2425
@@ -58,6 +59,9 @@
58 if err != nil {59 if err != nil {
59 log.Fatalf("unable to open the levels database: %v", err)60 log.Fatalf("unable to open the levels database: %v", err)
60 }61 }
62
63 qml.Init(nil)
64
61 cli := client.NewPushClient(cfgFname, lvlFname)65 cli := client.NewPushClient(cfgFname, lvlFname)
62 err = cli.Start()66 err = cli.Start()
63 if err != nil {67 if err != nil {
6468
=== added file 'util/auth.go'
--- util/auth.go 1970-01-01 00:00:00 +0000
+++ util/auth.go 2014-04-15 14:48:44 +0000
@@ -0,0 +1,36 @@
1/*
2 Copyright 2013-2014 Canonical Ltd.
3
4 This program is free software: you can redistribute it and/or modify it
5 under the terms of the GNU General Public License version 3, as published
6 by the Free Software Foundation.
7
8 This program is distributed in the hope that it will be useful, but
9 WITHOUT ANY WARRANTY; without even the implied warranties of
10 MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11 PURPOSE. See the GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License along
14 with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17package util
18
19import (
20 "gopkg.in/niemeyer/uoneauth.v1"
21 "gopkg.in/qml.v0"
22)
23
24func GetAuthorization() (string, error) {
25 engine := qml.NewEngine()
26 defer engine.Destroy()
27 authService := uoneauth.NewService(engine)
28 var auth string
29 token, err := authService.Token()
30 if err != nil {
31 return "", err
32 } else {
33 auth = token.HeaderSignature("POST", "https://push.ubuntu.com")
34 }
35 return auth, nil
36}
037
=== added file 'util/auth_test.go'
--- util/auth_test.go 1970-01-01 00:00:00 +0000
+++ util/auth_test.go 2014-04-15 14:48:44 +0000
@@ -0,0 +1,53 @@
1/*
2 Copyright 2013-2014 Canonical Ltd.
3
4 This program is free software: you can redistribute it and/or modify it
5 under the terms of the GNU General Public License version 3, as published
6 by the Free Software Foundation.
7
8 This program is distributed in the hope that it will be useful, but
9 WITHOUT ANY WARRANTY; without even the implied warranties of
10 MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11 PURPOSE. See the GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License along
14 with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17package util
18
19import (
20 "os"
21
22 "gopkg.in/qml.v0"
23
24 . "launchpad.net/gocheck"
25)
26
27type authSuite struct{}
28
29var _ = Suite(&authSuite{})
30
31func (s *authSuite) SetUpSuite(c *C) {
32 if os.Getenv("PUSH_AUTH_TEST") == "1" {
33 qml.Init(nil)
34 }
35}
36
37func (s *authSuite) SetUpTest(c *C) {
38 qml.SetLogger(c)
39}
40
41func (s *authSuite) TestGetAuth(c *C) {
42 /*
43 * This test is only useful when the PUSH_AUTH_TEST environment
44 * variable is set to "1" - in which case the runner should have
45 * a Ubuntu One account setup via system-settings.
46 */
47 if os.Getenv("PUSH_AUTH_TEST") != "1" {
48 c.Skip("PUSH_AUTH_TEST not set to '1'")
49 }
50 auth, err := GetAuthorization()
51 c.Assert(err, IsNil)
52 c.Assert(auth, Matches, "OAuth .*oauth_consumer_key=.*")
53}

Subscribers

People subscribed via source and target branches