~edwargix/git.sr.ht

0c45d64b6b5ae76a15d847b9756dc0c96a3727e3 — Drew DeVault 4 years ago 8f20649
Always use internal auth for build submit
2 files changed, 13 insertions(+), 17 deletions(-)

M gitsrht-update-hook/post-update.go
M gitsrht-update-hook/submitter.go
M gitsrht-update-hook/post-update.go => gitsrht-update-hook/post-update.go +1 -0
@@ 305,6 305,7 @@ func postUpdate() {
			}
			results, err := SubmitBuild(submitter)
			if err != nil {
				logger.Printf("Error submitting build job: %v", err)
				log.Fatalf("Error submitting build job: %v", err)
			}
			if len(results) == 0 {

M gitsrht-update-hook/submitter.go => gitsrht-update-hook/submitter.go +12 -17
@@ 262,24 262,19 @@ type BuildSubmission struct {
func configureRequestAuthorization(submitter BuildSubmitter,
	req *http.Request) {

	if submitter.GetOauthToken() != nil {
		req.Header.Add("Authorization", fmt.Sprintf("token %s",
			*submitter.GetOauthToken()))
	} else {
		auth := InternalRequestAuthorization{
			ClientId: clientId,
			Username: submitter.GetOwnerName(),
		}
		authPayload, err := json.Marshal(&auth)
		if err != nil {
			logger.Fatalf("Failed to marshal internal authorization: %v", err)
		}
		enc, err := fernet.EncryptAndSign(authPayload, fernetKey)
		if err != nil {
			logger.Fatalf("Failed to encrypt internal authorization: %v", err)
		}
		req.Header.Add("X-Srht-Authorization", string(enc))
	auth := InternalRequestAuthorization{
		ClientId: clientId,
		Username: submitter.GetOwnerName(),
	}
	authPayload, err := json.Marshal(&auth)
	if err != nil {
		logger.Fatalf("Failed to marshal internal authorization: %v", err)
	}
	enc, err := fernet.EncryptAndSign(authPayload, fernetKey)
	if err != nil {
		logger.Fatalf("Failed to encrypt internal authorization: %v", err)
	}
	req.Header.Add("X-Srht-Authorization", string(enc))
}

// TODO: Move this to scm.sr.ht