fix(agent-task view): display premium requests used
Signed-off-by: Babak K. Shandiz <babakks@github.com>
This commit is contained in:
parent
fe95cd86f1
commit
99a61618df
2 changed files with 119 additions and 94 deletions
|
|
@ -7,6 +7,7 @@ import (
|
|||
"net/http"
|
||||
"net/url"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/MakeNowJust/heredoc"
|
||||
|
|
@ -306,13 +307,19 @@ func printSession(opts *ViewOptions, session *capi.Session) {
|
|||
fmt.Fprintf(opts.IO.Out, "Started %s\n", text.FuzzyAgo(time.Now(), session.CreatedAt))
|
||||
}
|
||||
|
||||
var durationNote string
|
||||
if session.CompletedAt.After(session.CreatedAt) {
|
||||
durationNote = fmt.Sprintf("Duration %s", session.CompletedAt.Sub(session.CreatedAt).Round(time.Second).String())
|
||||
additionalNotes := make([]string, 0, 2)
|
||||
|
||||
if session.PremiumRequests > 0 {
|
||||
s := strings.TrimSuffix(fmt.Sprintf("%.1f", session.PremiumRequests), ".0")
|
||||
additionalNotes = append(additionalNotes, fmt.Sprintf("Used %s premium request(s)", s))
|
||||
}
|
||||
|
||||
if durationNote != "" {
|
||||
fmt.Fprintf(opts.IO.Out, "%s\n", cs.Muted(durationNote))
|
||||
if session.CompletedAt.After(session.CreatedAt) {
|
||||
additionalNotes = append(additionalNotes, fmt.Sprintf("Duration %s", session.CompletedAt.Sub(session.CreatedAt).Round(time.Second).String()))
|
||||
}
|
||||
|
||||
if len(additionalNotes) > 0 {
|
||||
fmt.Fprintf(opts.IO.Out, "%s\n", cs.Muted(strings.Join(additionalNotes, " • ")))
|
||||
}
|
||||
|
||||
if !opts.Log {
|
||||
|
|
|
|||
|
|
@ -213,10 +213,11 @@ func Test_viewRun(t *testing.T) {
|
|||
m.GetSessionFunc = func(_ context.Context, id string) (*capi.Session, error) {
|
||||
assert.Equal(t, "some-session-id", id)
|
||||
return &capi.Session{
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -234,7 +235,7 @@ func Test_viewRun(t *testing.T) {
|
|||
wantOut: heredoc.Doc(`
|
||||
Ready for review • fix something • OWNER/REPO#101
|
||||
Started on behalf of octocat about 6 hours ago
|
||||
Duration 5m0s
|
||||
Used 1.5 premium request(s) • Duration 5m0s
|
||||
|
||||
For detailed session logs, try:
|
||||
gh agent-task view 'some-session-id' --log
|
||||
|
|
@ -255,10 +256,11 @@ func Test_viewRun(t *testing.T) {
|
|||
m.GetSessionFunc = func(_ context.Context, id string) (*capi.Session, error) {
|
||||
assert.Equal(t, "some-session-id", id)
|
||||
return &capi.Session{
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -273,7 +275,7 @@ func Test_viewRun(t *testing.T) {
|
|||
wantOut: heredoc.Doc(`
|
||||
Ready for review • fix something • OWNER/REPO#101
|
||||
Started about 6 hours ago
|
||||
Duration 5m0s
|
||||
Used 1.5 premium request(s) • Duration 5m0s
|
||||
|
||||
For detailed session logs, try:
|
||||
gh agent-task view 'some-session-id' --log
|
||||
|
|
@ -294,10 +296,11 @@ func Test_viewRun(t *testing.T) {
|
|||
m.GetSessionFunc = func(_ context.Context, id string) (*capi.Session, error) {
|
||||
assert.Equal(t, "some-session-id", id)
|
||||
return &capi.Session{
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
User: &api.GitHubUser{
|
||||
Login: "octocat",
|
||||
},
|
||||
|
|
@ -307,7 +310,7 @@ func Test_viewRun(t *testing.T) {
|
|||
wantOut: heredoc.Doc(`
|
||||
Ready for review
|
||||
Started on behalf of octocat about 6 hours ago
|
||||
Duration 5m0s
|
||||
Used 1.5 premium request(s) • Duration 5m0s
|
||||
|
||||
For detailed session logs, try:
|
||||
gh agent-task view 'some-session-id' --log
|
||||
|
|
@ -325,17 +328,18 @@ func Test_viewRun(t *testing.T) {
|
|||
m.GetSessionFunc = func(_ context.Context, id string) (*capi.Session, error) {
|
||||
assert.Equal(t, "some-session-id", id)
|
||||
return &capi.Session{
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
}, nil
|
||||
}
|
||||
},
|
||||
wantOut: heredoc.Doc(`
|
||||
Ready for review
|
||||
Started about 6 hours ago
|
||||
Duration 5m0s
|
||||
Used 1.5 premium request(s) • Duration 5m0s
|
||||
|
||||
For detailed session logs, try:
|
||||
gh agent-task view 'some-session-id' --log
|
||||
|
|
@ -369,10 +373,11 @@ func Test_viewRun(t *testing.T) {
|
|||
m.GetSessionFunc = func(_ context.Context, id string) (*capi.Session, error) {
|
||||
assert.Equal(t, "some-session-id", id)
|
||||
return &capi.Session{
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
// User data is irrelevant in this case
|
||||
}, nil
|
||||
}
|
||||
|
|
@ -392,10 +397,11 @@ func Test_viewRun(t *testing.T) {
|
|||
m.GetSessionFunc = func(_ context.Context, id string) (*capi.Session, error) {
|
||||
assert.Equal(t, "some-session-id", id)
|
||||
return &capi.Session{
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -499,10 +505,11 @@ func Test_viewRun(t *testing.T) {
|
|||
assert.Equal(t, defaultLimit, limit)
|
||||
return []*capi.Session{
|
||||
{
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -521,7 +528,7 @@ func Test_viewRun(t *testing.T) {
|
|||
wantOut: heredoc.Doc(`
|
||||
Ready for review • fix something • OWNER/REPO#101
|
||||
Started on behalf of octocat about 6 hours ago
|
||||
Duration 5m0s
|
||||
Used 1.5 premium request(s) • Duration 5m0s
|
||||
|
||||
For detailed session logs, try:
|
||||
gh agent-task view 'some-session-id' --log
|
||||
|
|
@ -551,11 +558,12 @@ func Test_viewRun(t *testing.T) {
|
|||
assert.Equal(t, defaultLimit, limit)
|
||||
return []*capi.Session{
|
||||
{
|
||||
ID: "some-session-id",
|
||||
Name: "session one",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
Name: "session one",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -569,11 +577,12 @@ func Test_viewRun(t *testing.T) {
|
|||
},
|
||||
},
|
||||
{
|
||||
ID: "some-other-session-id",
|
||||
Name: "session two",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-other-session-id",
|
||||
Name: "session two",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -604,7 +613,7 @@ func Test_viewRun(t *testing.T) {
|
|||
wantOut: heredoc.Doc(`
|
||||
Ready for review • fix something • OWNER/REPO#101
|
||||
Started on behalf of octocat about 6 hours ago
|
||||
Duration 5m0s
|
||||
Used 1.5 premium request(s) • Duration 5m0s
|
||||
|
||||
For detailed session logs, try:
|
||||
gh agent-task view 'some-session-id' --log
|
||||
|
|
@ -636,11 +645,12 @@ func Test_viewRun(t *testing.T) {
|
|||
assert.Equal(t, defaultLimit, limit)
|
||||
return []*capi.Session{
|
||||
{
|
||||
ID: "some-session-id",
|
||||
Name: "session one",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
Name: "session one",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -654,11 +664,12 @@ func Test_viewRun(t *testing.T) {
|
|||
},
|
||||
},
|
||||
{
|
||||
ID: "some-other-session-id",
|
||||
Name: "session two",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-other-session-id",
|
||||
Name: "session two",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -689,7 +700,7 @@ func Test_viewRun(t *testing.T) {
|
|||
wantOut: heredoc.Doc(`
|
||||
Ready for review • fix something • OWNER/REPO#101
|
||||
Started on behalf of octocat about 6 hours ago
|
||||
Duration 5m0s
|
||||
Used 1.5 premium request(s) • Duration 5m0s
|
||||
|
||||
For detailed session logs, try:
|
||||
gh agent-task view 'some-session-id' --log
|
||||
|
|
@ -742,10 +753,11 @@ func Test_viewRun(t *testing.T) {
|
|||
assert.Equal(t, defaultLimit, limit)
|
||||
return []*capi.Session{
|
||||
{
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -784,11 +796,12 @@ func Test_viewRun(t *testing.T) {
|
|||
assert.Equal(t, defaultLimit, limit)
|
||||
return []*capi.Session{
|
||||
{
|
||||
ID: "some-session-id",
|
||||
Name: "session one",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
Name: "session one",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -800,11 +813,12 @@ func Test_viewRun(t *testing.T) {
|
|||
// User data is irrelevant in this case
|
||||
},
|
||||
{
|
||||
ID: "some-other-session-id",
|
||||
Name: "session two",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-other-session-id",
|
||||
Name: "session two",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -845,11 +859,12 @@ func Test_viewRun(t *testing.T) {
|
|||
assert.Equal(t, defaultLimit, limit)
|
||||
return []*capi.Session{
|
||||
{
|
||||
ID: "some-session-id",
|
||||
Name: "session one",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
Name: "session one",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -861,11 +876,12 @@ func Test_viewRun(t *testing.T) {
|
|||
// User data is irrelevant in this case
|
||||
},
|
||||
{
|
||||
ID: "some-other-session-id",
|
||||
Name: "session two",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-other-session-id",
|
||||
Name: "session two",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
PullRequest: &api.PullRequest{
|
||||
Title: "fix something",
|
||||
Number: 101,
|
||||
|
|
@ -894,10 +910,11 @@ func Test_viewRun(t *testing.T) {
|
|||
m.GetSessionFunc = func(_ context.Context, id string) (*capi.Session, error) {
|
||||
assert.Equal(t, "some-session-id", id)
|
||||
return &capi.Session{
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
User: &api.GitHubUser{
|
||||
Login: "octocat",
|
||||
},
|
||||
|
|
@ -917,7 +934,7 @@ func Test_viewRun(t *testing.T) {
|
|||
wantOut: heredoc.Doc(`
|
||||
Ready for review
|
||||
Started on behalf of octocat about 6 hours ago
|
||||
Duration 5m0s
|
||||
Used 1.5 premium request(s) • Duration 5m0s
|
||||
|
||||
To follow session logs, try:
|
||||
gh agent-task view 'some-session-id' --log --follow
|
||||
|
|
@ -939,10 +956,11 @@ func Test_viewRun(t *testing.T) {
|
|||
m.GetSessionFunc = func(_ context.Context, id string) (*capi.Session, error) {
|
||||
assert.Equal(t, "some-session-id", id)
|
||||
return &capi.Session{
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
ID: "some-session-id",
|
||||
State: "completed",
|
||||
CreatedAt: sampleDate,
|
||||
CompletedAt: sampleCompletedAt,
|
||||
PremiumRequests: 1.5,
|
||||
User: &api.GitHubUser{
|
||||
Login: "octocat",
|
||||
},
|
||||
|
|
@ -976,7 +994,7 @@ func Test_viewRun(t *testing.T) {
|
|||
wantOut: heredoc.Doc(`
|
||||
Ready for review
|
||||
Started on behalf of octocat about 6 hours ago
|
||||
Duration 5m0s
|
||||
Used 1.5 premium request(s) • Duration 5m0s
|
||||
|
||||
(rendered:) <raw-logs-one>
|
||||
(rendered:) <raw-logs-two>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue