aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..5edfd64
--- /dev/null
+++ b/main.go
@@ -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)
+ }
+}