@@ -28,6 +28,7 @@ const (
2828func main () {
2929 debug := flag .Bool ("debug" , false , "Enable debug logging" )
3030 noCache := flag .Bool ("no-cache" , false , "Disable caching" )
31+ referenceTimeStr := flag .String ("reference-time" , "" , "Reference time for cache validation (RFC3339 format, e.g., 2025-03-16T06:18:08Z)" )
3132 flag .Parse ()
3233
3334 if * debug {
@@ -37,11 +38,22 @@ func main() {
3738 }
3839
3940 if flag .NArg () != 1 {
40- fmt .Fprintf (os .Stderr , "Usage: %s [--debug] [--no-cache] <pull-request-url>\n " , os .Args [0 ])
41+ fmt .Fprintf (os .Stderr , "Usage: %s [--debug] [--no-cache] [--reference-time=TIME] <pull-request-url>\n " , os .Args [0 ])
4142 fmt .Fprintf (os .Stderr , "Example: %s https://github.com/golang/go/pull/12345\n " , os .Args [0 ])
4243 os .Exit (1 )
4344 }
4445
46+ // Parse reference time if provided
47+ referenceTime := time .Now ()
48+ if * referenceTimeStr != "" {
49+ var err error
50+ referenceTime , err = time .Parse (time .RFC3339 , * referenceTimeStr )
51+ if err != nil {
52+ log .Printf ("Invalid reference time format (use RFC3339, e.g., 2025-03-16T06:18:08Z): %v" , err )
53+ os .Exit (1 )
54+ }
55+ }
56+
4557 prURL := flag .Arg (0 )
4658
4759 owner , repo , prNumber , err := parsePRURL (prURL )
@@ -70,7 +82,7 @@ func main() {
7082 }
7183
7284 client := prx .NewClient (token , opts ... )
73- data , err := client .PullRequest (ctx , owner , repo , prNumber )
85+ data , err := client .PullRequestWithReferenceTime (ctx , owner , repo , prNumber , referenceTime )
7486 if err != nil {
7587 log .Printf ("Failed to fetch PR data: %v" , err )
7688 cancel ()
0 commit comments