summaryrefslogtreecommitdiffstats
path: root/cmd/github.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/github.go')
-rw-r--r--cmd/github.go21
1 files changed, 15 insertions, 6 deletions
diff --git a/cmd/github.go b/cmd/github.go
index 6cc1951..83b9601 100644
--- a/cmd/github.go
+++ b/cmd/github.go
@@ -17,8 +17,8 @@ var githubCmd = &cobra.Command{
var githubLeadsCmd = &cobra.Command{
Use: "leads [query]",
Short: "Search GitHub repositories for commit authors",
- Long: `Scans GitHub repositories for commit author information based on search query and streams results as NDJSON`,
- Args: cobra.ExactArgs(1),
+ Long: `Scans GitHub repositories for commit author information based on search query and streams results as NDJSON. If no query is provided, returns random leads.`,
+ Args: cobra.MaximumNArgs(1),
RunE: runGitHubLeads,
}
@@ -28,24 +28,33 @@ func init() {
githubLeadsCmd.Flags().String("sort", "stars", "Sort method (stars, forks, updated)")
githubLeadsCmd.Flags().String("exclude", "", "Comma-separated terms to exclude from search")
+ githubLeadsCmd.Flags().String("format", "json", "Output format (json, csv)")
+ githubLeadsCmd.Flags().String("bio", "false", "Include bio info (true/false) - adds company, location, website, twitter, pfp")
}
func runGitHubLeads(cmd *cobra.Command, args []string) error {
+ query := ""
+ if len(args) > 0 {
+ query = args[0]
+ }
+
sort, _ := cmd.Flags().GetString("sort")
exclude, _ := cmd.Flags().GetString("exclude")
+ format, _ := cmd.Flags().GetString("format")
+ bio, _ := cmd.Flags().GetString("bio")
c, err := newUnauthenticatedClient()
if err != nil {
return err
}
- err = c.SearchGitHubLeadsWithParams(args[0], sort, exclude, func(result json.RawMessage) error {
- var streamResp models.GitHubLeadsStreamResponse
- if err := json.Unmarshal(result, &streamResp); err != nil {
+ err = c.SearchGitHubLeadsWithParams(query, sort, exclude, format, bio, func(result json.RawMessage) error {
+ var lead models.GitHubLead
+ if err := json.Unmarshal(result, &lead); err != nil {
return err
}
- output, err := formatter.FormatGitHubLeads(&streamResp, IsJSONOutput())
+ output, err := formatter.FormatGitHubLeads(&lead, IsJSONOutput())
if err != nil {
return err
}