diff --git a/cmd/drone-server/static/scripts/services/repos.js b/cmd/drone-server/static/scripts/services/repos.js index 165f90a4..b58a5960 100644 --- a/cmd/drone-server/static/scripts/services/repos.js +++ b/cmd/drone-server/static/scripts/services/repos.js @@ -80,7 +80,7 @@ * @param {string} Plaintext to encrypt. */ this.encrypt = function (repoName, plaintext) { - return $http.post('/api/repos/' + repoName + '/encrypt', plaintext); + return $http.post('/api/repos/' + repoName + '/encrypt', btoa(plaintext)); }; var callback, diff --git a/pkg/runner/builtin/runner.go b/pkg/runner/builtin/runner.go index b5227ba9..b5e869a8 100644 --- a/pkg/runner/builtin/runner.go +++ b/pkg/runner/builtin/runner.go @@ -255,6 +255,7 @@ func (r *Runner) Logs(job *types.Job) (io.ReadCloser, error) { // make sure this container actually exists info, err := client.InspectContainer(cname(job)) if err != nil { + // add a small exponential backoff since there // is a small window when the container hasn't // been created yet, but the build is about to start @@ -264,7 +265,9 @@ func (r *Runner) Logs(job *types.Job) (io.ReadCloser, error) { if err != nil && i == 5 { return nil, err } - break + if err == nil { + break + } } } diff --git a/pkg/server/repos.go b/pkg/server/repos.go index 951639d4..3b643f4f 100644 --- a/pkg/server/repos.go +++ b/pkg/server/repos.go @@ -1,6 +1,8 @@ package server import ( + "bytes" + "encoding/base64" "fmt" "io/ioutil" @@ -254,6 +256,12 @@ func Encrypt(c *gin.Context) { c.Fail(500, err) return } + in, err = base64.StdEncoding.DecodeString(string(in)) + if err != nil { + c.Fail(500, err) + return + } + in = bytes.Replace(in, []byte{'\xA0'}, []byte{' '}, -1) out, err := secure.Encrypt(string(in), repo.Keys.Private) if err != nil { c.Fail(500, err)