burnchart icon indicating copy to clipboard operation
burnchart copied to clipboard

Support GitHub projects in addition to milestones

Open danvk opened this issue 6 years ago • 14 comments

I'd like to create a burndown chart for a GitHub Project (rather than a milestone). There is a projects API which is currently in preview.

Great tool!

danvk avatar Jun 04 '18 18:06 danvk

Thanks!

If you click on the project's name after adding it, it will show a chart for all its milestones, eg http://radekstepan.com/burnchart/#!/rails/rails, would this work?

radekstepan avatar Jun 04 '18 18:06 radekstepan

"Project" is a confusing term—I'm referring here to the Kanban-style boards feature of GitHub, e.g. https://github.com/twbs/bootstrap/projects/14

danvk avatar Jun 04 '18 19:06 danvk

Here's a GraphQL query which returns all the issues in a Project along with their labels:

query { 
  repository(owner:"twbs", name:"bootstrap"){
    project(number: 14) {
      columns(first: 10) {
      	nodes {
          name
          cards(first: 100) {
            nodes {
              id
              note
              state
              content {
                ... on Issue {
                  title
                  labels(first:10) {
                    nodes {
                      name
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

You can try it out in the GitHub GraphQL API Explorer.

danvk avatar Jun 04 '18 19:06 danvk

Ah I get it now. Yes, as GitHub is moving towards projects (rather than milestones) it would be useful to use this, but as for my developer time it is unlikely going to get done this Summer. I can provide pointers to the codebase if anyone else would like to chip in however.

radekstepan avatar Jun 08 '18 10:06 radekstepan

Sure, pointers would be appreciated.

On Fri, Jun 8, 2018 at 6:46 AM Radek Stepan [email protected] wrote:

Ah I get it now. Yes, as GitHub is moving towards projects (rather than milestones) it would be useful to use this, but as for my developer time it is unlikely going to get done this Summer. I can provide pointers to the codebase if anyone else would like to chip in however.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/radekstepan/burnchart/issues/129#issuecomment-395724136, or mute the thread https://github.com/notifications/unsubscribe-auth/AAF__V8NGBNKCLKvt27UcYnO60FK4igwks5t6lYPgaJpZM4UZiNz .

danvk avatar Jun 08 '18 12:06 danvk

Perfect, so currently we are using Superagent to make the requests to fetch data: all/one milestone and issues associated with them/it:

https://github.com/radekstepan/burnchart/blob/master/src/js/modules/github/request.js#L58-L92

Here is the module that fetches the issues and processes them:

https://github.com/radekstepan/burnchart/blob/master/src/js/modules/github/issues.js

You have to pick a new route for the projects, something like /:owner/:name/project/:project perhaps?

https://github.com/radekstepan/burnchart/blob/master/src/js/App.jsx

If you create a PR that has the new routing and a module that requests the issues in a project (GraphQL) I can do the rest.

Hope it helps!

radekstepan avatar Jun 08 '18 20:06 radekstepan

@radekstepan I believe I've written all the code you requested. Let me know if you need anything else! https://github.com/radekstepan/burnchart/pull/130

danvk avatar Jun 15 '18 18:06 danvk

Perfect, thanks @danvk I'll work on this towards the end of this week.

radekstepan avatar Jun 18 '18 07:06 radekstepan

Hi @radekstepan, just wanted to check in on this.

danvk avatar Jun 26 '18 14:06 danvk

Hi @danvk, started work on this yesterday and will continue working on it today. I have some contractors working at my place so work is proving to be a bit slow at the moment.

radekstepan avatar Jun 26 '18 16:06 radekstepan

Potential problem! I don't think you can figure out when a card/issue has been moved between columns using the GitHub API :/

https://stackoverflow.com/questions/51294279/how-can-i-see-that-an-issue-has-been-moved-between-columns-in-a-project-using-th

danvk avatar Jul 11 '18 21:07 danvk

That's OK no? You can determine a progress through a Project by counting the number of open/closed tickets regardless of the column/swimlane they are on.

radekstepan avatar Jul 12 '18 23:07 radekstepan

Ideally I'd want the burndown chart to track columns. It'd be like this progress bar from GitHub project boards, only rotated and stretched over time: image

Additionally I don't believe you can track when an issue is added to / removed from a project board. So if a sprint gets upscoped or downscoped, you won't be able to track that. (There's no equivalent of "milestoned" and "unmilestoned" events on issue timelines.)

danvk avatar Jul 13 '18 16:07 danvk

I see. Yes, it would be cool to visually see the different columns in a project and track it over time, right now a ticket is either to do and done and that's it.

Let me know if you come up with a way to parse out the individual column the ticket is on. It wouldn't be that difficult to then add that information into the bar chart in the table next to each project.

radekstepan avatar Jul 15 '18 01:07 radekstepan