-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Burn up charts API structure proposal #387
Comments
API structure proposal
GET EPICSGET /v1/epics?status=:status&search=:search&sort=:sort&milestones=:milestones&repos=:repos&startDate=:startDate&endDate=:endDate&page=:page&limit=:limit
Response: [
{
"id": 1,
"title": "Epic 1",
"description": "This is the first epic",
"start_at": "2022-01-01",
"end_at": "2022-03-31"
"open_issues": 10,
"closed_issues": 20,
"data": [{
"date": "2022-01-03",
"open_issues": 29,
"closed_issues": 1
},
"..."
],
"label": "E:EpicName",
"label_colour": "#5A33CA",
"milestones": ["milestone-1", "milestone-2"]
},
{
"id": 2,
"title": "Epic 2",
"description": "This is the second epic",
"start_at": "2022-04-01",
"end_at": "2022-06-30",
"open_issues": 10,
"closed_issues": 20,
"data": [{
"date": "2022-01-03",
"open_issues": 29,
"closed_issues": 1
},
"..."
],
"label": "E:EpicName",
"label_colour": "#5A33CA",
"milestones": ["milestone-1", "milestone-2"]
}
] GET EPICGET /v1/epics/:epicId?start_date=:start_date&end_date=:end_date
Response: {
"id": 1,
"title": "Epic 1",
"description": "This is the first epic",
"start_at": "2022-01-01",
"end_at": "2022-03-31",
"open_issues": 10,
"closed_issues": 20,
"data": [
{
"date": "2022-01-03",
"open_issues": 29,
"closed_issues": 1
},
"..."
],
"label": "E:EpicName",
"label_colour": "#5A33CA",
"milestones": ["milestone-1", "milestone-2"]
} GET EPIC ISSUESGET /v1/epics/:epicId/issues?state=:state&search=:search&author=:author&labels=:labels&assignee=:assignee&repos=:repos
Response: {
"open_issues": 10,
"closed_issues": 20,
"issues": [
{
"id": 1,
"title": "Issue 1",
"state": "open",
"author": "John Doe",
"date": "2022-02-15",
"labels": ["Label 1", "Label 2"],
"link": "https://github.com/username/repo/issues/1",
"linked_pr": "#394"
},
{
"id": 2,
"title": "Issue 2",
"state": "closed",
"author": "Jane Smith",
"date": "2022-03-10",
"labels": ["Label 3"],
"link": "https://github.com/username/repo/issues/2",
"linked_pr": null
},
"..."
]
} GET ORPHANSGET /v1/issues/orphans?state=:state&search=:search&author=:author&labels=:labels&assignee=:assignee&repos=:repos
Response: {
"open_issues": 5,
"closed_issues": 10,
"issues": [
{
"id": 1,
"title": "Orphan Issue 1",
"state": "open",
"author": "John Doe",
"date": "2022-02-15",
"labels": ["Label 1", "Label 2"],
"link": "https://github.com/username/repo/issues/1",
"linked_pr": "#394"
},
{
"id": 2,
"title": "Orphan Issue 2",
"state": "closed",
"author": "Jane Smith",
"date": "2022-03-10",
"labels": ["Label 3"],
"link": "https://github.com/username/repo/issues/2",
"linked_pr": null
},
"..."
]
} GET REPOSGET /v1/repos Response: [
{
"id": 1,
"name": "repo-1",
"description": "This is the first repository",
"is_private": true,
"total_issues": 50,
"stars": 100,
"link": "https://github.com/username/repo-1"
},
{
"id": 2,
"name": "repo-2",
"description": "This is the second repository",
"is_private": false,
"total_issues": 25,
"stars": 50,
"link": "https://github.com/username/repo-2"
},
"..."
] I think this what we need for the MVP, regarding the user view. @prichodko @jkbktl feel free to suggest changes. |
I think it looks great. I like nested orphans under issues, so it's clear what type of orphan it is. |
only three remarks:
|
In our BI setup, we utilize Dremio as the component that allows you to access and extract the necessary data. To connect with this environment, you will need to use an ODBC driver, which will allow to perform direct queries on the data. Should be easier as well since I would create all the tables beforehand. Does that work for you? |
We need to provide the BI team with a preferred way to consume the data they aggregate. For the first version, we need epics, orphans, and repos. Let's focus on the read-only for now.
GitHub API docs itself could serve as a good starting point.
Format for the endpoints:
Get item
GET /api/items/${id}
id
string
Reponse:
The text was updated successfully, but these errors were encountered: