feat: v0.3.0d — add PR checks, iostreams, aliases, and broad enhancements
Add PR checks command, iostreams/text packages for colored table output, top-level run/workflow aliases matching gh CLI structure. Enhance actions, issues, PRs, releases, repos, labels, milestones, and wiki commands with improved flags, JSON output, and error handling.
This commit is contained in:
parent
7c0dcc8696
commit
113505de95
29 changed files with 3131 additions and 542 deletions
26
cmd/root.go
26
cmd/root.go
|
|
@ -3,6 +3,7 @@ package cmd
|
|||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"forgejo.zerova.net/sid/fgj-sid/internal/git"
|
||||
|
|
@ -46,7 +47,7 @@ func initConfig() {
|
|||
} else {
|
||||
home, err := os.UserHomeDir()
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
fmt.Fprintln(ios.ErrOut, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
|
|
@ -94,3 +95,26 @@ func getDetectedHost() string {
|
|||
}
|
||||
return host
|
||||
}
|
||||
|
||||
// promptLine prints a prompt to stderr and reads a line from stdin.
|
||||
func promptLine(prompt string) (string, error) {
|
||||
fmt.Fprint(ios.ErrOut, prompt)
|
||||
var buf [1024]byte
|
||||
n, err := ios.In.Read(buf[:])
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("reading input: %w", err)
|
||||
}
|
||||
return strings.TrimSpace(string(buf[:n])), nil
|
||||
}
|
||||
|
||||
// parseIssueArg parses an issue/PR number from various formats:
|
||||
// "123", "#123", "https://host/owner/repo/pulls/123", "https://host/owner/repo/issues/123"
|
||||
func parseIssueArg(arg string) (int64, error) {
|
||||
arg = strings.TrimPrefix(arg, "#")
|
||||
// Try URL format
|
||||
if strings.HasPrefix(arg, "http") {
|
||||
parts := strings.Split(strings.TrimRight(arg, "/"), "/")
|
||||
arg = parts[len(parts)-1]
|
||||
}
|
||||
return strconv.ParseInt(arg, 10, 64)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue