mirror of
https://github.com/lddsb/drone-goreportcard
synced 2024-05-03 22:26:04 +02:00
49 lines
745 B
Go
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
|
|
}
|