1
1
Fork 0
mirror of https://github.com/lddsb/drone-goreportcard synced 2024-04-26 12:55:01 +02:00
lddsb-drone-goreportcard/plugin.go
2019-03-10 13:50:59 +08:00

49 lines
745 B
Go

package main
import (
"errors"
"io/ioutil"
"log"
"net/http"
)
type (
// Plugin `plugin struct`
Plugin struct {
URL string
}
)
var baseURL = "https://goreportcard.com/"
// Exec `exec plugin`
func (p *Plugin) Exec() error {
urlLen := len(p.URL)
if 4 > urlLen {
return errors.New("invalid repository url")
}
suffix := p.URL[urlLen-4:]
if ".git" == suffix {
p.URL = p.URL[:urlLen-4]
}
resp, err := http.Get(baseURL + "checks?repo=" + p.URL)
if nil != err {
return err
}
defer resp.Body.Close()
if http.StatusOK != resp.StatusCode {
bs, err := ioutil.ReadAll(resp.Body)
if nil == err {
return errors.New("API response error: " + string(bs))
}
return err
}
log.Println("Everything is OK")
return err
}