can retrieve repositories
This commit is contained in:
parent
647a6988ad
commit
261a6fcae2
1 changed files with 55 additions and 0 deletions
55
cmd/github.go
Normal file
55
cmd/github.go
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
"github.com/spf13/viper"
|
||||||
|
)
|
||||||
|
|
||||||
|
// githubCmd represents the github command
|
||||||
|
var githubCmd = &cobra.Command{
|
||||||
|
Use: "github",
|
||||||
|
Short: "Backup your Github account",
|
||||||
|
Long: `Backup your Github account to local storage`,
|
||||||
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
githubList()
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
var githubUser string
|
||||||
|
var githubToken string
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
rootCmd.AddCommand(githubCmd)
|
||||||
|
|
||||||
|
githubCmd.PersistentFlags().StringVar(&githubUser, "github-user", "", "The github user to backup")
|
||||||
|
viper.BindPFlag("github.user", githubCmd.PersistentFlags().Lookup("github-user"))
|
||||||
|
githubCmd.PersistentFlags().StringVar(&githubToken, "github-token", "", "The github token to use")
|
||||||
|
viper.BindPFlag("github.token", githubCmd.PersistentFlags().Lookup("github-token"))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func githubList() {
|
||||||
|
if Verbose {
|
||||||
|
fmt.Println("Listing", C.Green("Github"), "Repos for", C.Magenta(viper.Get("github.user")))
|
||||||
|
}
|
||||||
|
|
||||||
|
githubUrl := "https://api.github.com/users/" + viper.GetString("github.user") + "/repos"
|
||||||
|
|
||||||
|
req, err := http.NewRequest("GET", githubUrl, nil)
|
||||||
|
|
||||||
|
req.Header.Add("Authorization", "Bearer "+viper.GetString("github.token"))
|
||||||
|
|
||||||
|
client := http.Client{}
|
||||||
|
resp, err := client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(C.Red("[ERROR]"), err)
|
||||||
|
}
|
||||||
|
|
||||||
|
body, _ := ioutil.ReadAll(resp.Body)
|
||||||
|
fmt.Printf(string([]byte(body)))
|
||||||
|
|
||||||
|
}
|
Reference in a new issue