pony-sync-helper → github_rest_api Gap Analysis #45
Closed
SeanTAllen
started this conversation in
Research
Replies: 4 comments
-
|
list organization repositories was added via #52 |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
list repo issues was added via #57 |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
query parameters support was added via #59 |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
issue model enhancement was added via #62 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
What pony-sync-helper does
A CLI tool that generates meeting agendas for Pony sync calls. It:
GET /orgs/{org}/repos, paginated)GET /repos/{owner}/{repo}/issues?labels={label}, paginated)pull_requestfield in the JSONCurrently uses its own HTTP layer (
asking/) and hand-rolled JSON parsing.The goal would be to replace that with
github_rest_api.GitHub API operations pony-sync-helper needs
GET /orgs/{org}/reposGET /repos/{owner}/{repo}/issues?labels={label}What github_rest_api needs to support pony-sync-helper
Must have
List organization repositories (paginated)
GET /orgs/{org}/reposPaginatedList[Repository]GetOrganizationRepositoriesor similarfull_namefield from the response (Repository model already has this)List repository issues (paginated, with query params)
GET /repos/{owner}/{repo}/issueslabels(comma-separated),state(open/closed/all),sort,direction,since,per_pagePaginatedList[Issue]GetRepositoryIssuesorListIssuespull_requestfieldpull_requestfield or a boolean)Nice to have (not strictly required but natural extensions)
Query parameter support for list endpoints
?labels=Xat minimumIssue model enhancement
pull_requestfield (or at minimum a way to detect PRs in issue listings)pull_requestfield is an object withurl,html_url, etc. when present, or absent entirely for real issuesInfrastructure that already exists and can be reused
PaginatedList[A]+PaginatedJsonRequester— handles Link header pagination for top-level array responses. List issues and list org repos both return top-level arrays, so this fits perfectly.PaginatedListJsonConverter[A]— converts paginated JSON arraysRepositorymodel — already hasfull_nameand dozens of other fieldsIssuemodel — already hasnumber,title,html_url,labels,state,bodyIssueJsonConverter— already parses issue JSONSimpleURITemplate— for URL constructionCredentials— for authSummary
The sync-helper needs two new list operations (org repos + repo issues), both
paginated with top-level array responses. The existing
PaginatedListinfrastructurehandles this pattern already (same as
GetRepositoryLabels). The main work is:GetOrganizationRepositoriesprimitive (straightforward, followsGetRepositoryLabelspattern)GetRepositoryIssuesprimitive (same pattern, plus query parameter support for label filtering)Issuemodel to include thepull_requestfield so callers can distinguish issues from PRsBeta Was this translation helpful? Give feedback.
All reactions