diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 51 |
1 files changed, 51 insertions, 0 deletions
@@ -0,0 +1,51 @@ +package main + +import ( + "encoding/json" + "flag" + "fmt" + "io/ioutil" + "log" + "net/http" +) + +var ( + endpoint = flag.String("e", "https://gogs.example.com/api/v1", + "Gogs server endpoint, possibly github e.g. https://api.github.com") + user = flag.String("u", "", "Username to look for") +) + +type Key struct { + Key string `json: key` +} + +func (k Key) String() string { + return k.Key +} + +func errDie(err error) { + if err != nil { + log.Fatal(err) + } +} + +func main() { + flag.Parse() + + str := fmt.Sprintf("%s/users/%s/keys", *endpoint, *user) + resp, err := http.Get(str) + errDie(err) + + defer resp.Body.Close() + b, err := ioutil.ReadAll(resp.Body) + errDie(err) + + keyList := []Key{} + + err = json.Unmarshal(b, &keyList) + errDie(err) + + for _, k := range keyList { + fmt.Println(k) + } +} |
