fleet/tools/github-manage/pkg/ghapi/user.go
George Karr 3c687f2ed9
Adding direction to add views and workflows (#33177)
This looks like a log but it's just moving the code that lived in
cmd/gm/ui.go into it's own pkg that makes it clearer where each part of
the UI lives.

I am also adding the functionality for bulk sprint demo to grab names
from github usernames.
2025-09-25 14:05:39 -05:00

47 lines
1,007 B
Go

package ghapi
import (
"encoding/json"
"fmt"
)
var username_mapping = map[string]string{}
// ParseJSONtoUser converts JSON data to a slice of Issue structs.
func ParseJSONtoUser(jsonData []byte) (User, error) {
var user User
err := json.Unmarshal(jsonData, &user)
if err != nil {
return User{}, err
}
return user, nil
}
// GetIssues fetches issues from GitHub using optional search criteria.
func GetUserName(userLogin string) (User, error) {
var user User
if fullName, ok := username_mapping[userLogin]; ok {
user.Login = userLogin
user.Name = fullName
return user, nil
}
command := fmt.Sprintf("gh api /users/%s", userLogin)
results, err := RunCommandAndReturnOutput(command)
if err != nil {
return User{}, err
}
user, err = ParseJSONtoUser(results)
if err != nil {
return User{}, err
}
username_mapping[user.Login] = user.Name
return user, nil
}
func init() {
// Ensure any package-level initialization here if needed
username_mapping = make(map[string]string)
}