Skip to content
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

Support GitHub projects in addition to milestones #129

Open
danvk opened this issue Jun 4, 2018 · 14 comments
Open

Support GitHub projects in addition to milestones #129

danvk opened this issue Jun 4, 2018 · 14 comments

Comments

@danvk
Copy link

danvk commented Jun 4, 2018

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!

@radekstepan
Copy link
Owner

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?

@danvk
Copy link
Author

danvk commented Jun 4, 2018

"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
Copy link
Author

danvk commented Jun 4, 2018

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.

@radekstepan
Copy link
Owner

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.

@danvk
Copy link
Author

danvk commented Jun 8, 2018 via email

@radekstepan
Copy link
Owner

radekstepan commented Jun 8, 2018

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!

@danvk
Copy link
Author

danvk commented Jun 15, 2018

@radekstepan I believe I've written all the code you requested. Let me know if you need anything else!
#130

@radekstepan
Copy link
Owner

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

@danvk
Copy link
Author

danvk commented Jun 26, 2018

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

@radekstepan
Copy link
Owner

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.

@danvk
Copy link
Author

danvk commented Jul 11, 2018

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

@radekstepan
Copy link
Owner

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.

@danvk
Copy link
Author

danvk commented Jul 13, 2018

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.)

@radekstepan
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants