Skip to content

[Bug]: Worktree pr fetching still fetch too frequently causing rate limit #685

@Shironex

Description

@Shironex

Operating System

macOS

Run Mode

Electron (Desktop App)

App Version

v0.14.0rc

Bug Description

When using app we refetch the worktree pr status to show if it opened / merged / closed but the logic that fetch it is fetching it too frequently causing github rate limit need some way of caching / one time fetch

Steps to Reproduce

  1. create bunch of worktrees with pr opened status
  2. wait a bit in app
  3. gh account get rate limited

Expected Behavior

We fetch the pr status once or in some cache state and refetch only when really needed to have more robust solution that will not cause rate limit from github api / cli

Actual Behavior

worktree init script endpoint fetch pr too offen causing rate limit when working with many worktrees

Screenshots

No response

Relevant Logs

NFO  [Server] POST /api/worktree/list 200
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/list 204
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] OPTIONS /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 204
INFO  [Server] GET /api/worktree/init-script?projectPath=%2FUsers%2Fshirone%2FDocuments%2FProjects%2Fautomaker 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200
INFO  [Server] WARN  [Worktree] Failed to fetch GitHub PRs: Command failed: gh pr list -R AutoMaker-Org/automaker --state all --json number,title,url,state,headRefName,createdAt --limit 1000
GraphQL: API rate limit already exceeded for user ID 82769630.
INFO  [Server] POST /api/worktree/list 200

Additional Context

No response

Checklist

  • I have searched existing issues to ensure this bug hasn't been reported already
  • I have provided all required information above

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions