update-go-mod/cmd/update-go-mod/main.go

55 lines
933 B
Go
Raw Permalink Normal View History

2022-07-22 14:09:34 +00:00
package main
2023-08-15 09:47:52 +00:00
import (
"context"
"strings"
2024-05-11 03:22:34 +00:00
"github.com/google/go-github/v62/github"
2023-08-15 09:47:52 +00:00
"golang.org/x/oauth2"
"github.com/make-go-great/netrc-go"
"github.com/haunt98/update-go-mod/internal/cli"
)
const (
netrcPath = "~/.netrc"
netrcMachineGitHub = "github.com"
)
2022-07-22 14:09:34 +00:00
func main() {
2023-08-15 12:03:37 +00:00
app := cli.NewApp(
initGitHubClient(),
)
app.Run()
}
func initGitHubClient() *github.Client {
2023-08-15 09:47:52 +00:00
netrcData, err := netrc.ParseFile(netrcPath)
2023-08-15 12:03:37 +00:00
if err != nil {
return nil
}
2023-08-15 09:47:52 +00:00
2023-08-15 12:03:37 +00:00
var ghAccessToken string
for _, machine := range netrcData.Machines {
if machine.Name == netrcMachineGitHub {
ghAccessToken = machine.Password
break
2023-08-15 09:47:52 +00:00
}
}
2023-08-15 12:03:37 +00:00
if ghAccessToken == "" {
return nil
}
ghTokenSrc := oauth2.StaticTokenSource(
&oauth2.Token{
AccessToken: strings.TrimSpace(ghAccessToken),
},
)
ghHTTPClient := oauth2.NewClient(context.Background(), ghTokenSrc)
ghClient := github.NewClient(ghHTTPClient)
return ghClient
2022-07-22 14:09:34 +00:00
}