Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/philschatz/gh-board
:octocat: "Serverless" Kanban for GitHub Issues using gh-pages
https://github.com/philschatz/gh-board
github issues javascript kanban project-management serverless
Last synced: 2 days ago
JSON representation
:octocat: "Serverless" Kanban for GitHub Issues using gh-pages
- Host: GitHub
- URL: https://github.com/philschatz/gh-board
- Owner: philschatz
- License: agpl-3.0
- Created: 2015-06-08T00:29:40.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2020-09-02T15:48:59.000Z (over 4 years ago)
- Last Synced: 2025-02-10T21:11:40.004Z (9 days ago)
- Topics: github, issues, javascript, kanban, project-management, serverless
- Language: JavaScript
- Homepage: http://philschatz.github.io/gh-board/
- Size: 6.01 MB
- Stars: 427
- Watchers: 13
- Forks: 111
- Open Issues: 87
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-repositories - philschatz/gh-board - :octocat: "Serverless" Kanban for GitHub Issues using gh-pages (JavaScript)
- awesome-starred - philschatz/gh-board - :octocat: "Serverless" Kanban for GitHub Issues using gh-pages (serverless)
README
# Serverless Kanban Board for GitHub Issues
[![issues][gh-board-image]][gh-board-url]
[![dependency status][dependency-image]][dependency-url]
[![dev dependency status][dev-dependency-image]][dev-dependency-url]Why waste time and money paying for a Ticket Tracker when you already work in GitHub? Now, you don't have to.

- [Features](#features)
- [Multiple Repositories](#multiple-repositories)
- [Linked Issues and Pull Requests](#linked-issues-and-pull-requests)
- [Real-Time Collaboration](#real-time-collaboration)
- [Filtering](#filtering)
- [Milestone Planning](#milestone-planning)
- [Moving Cards](#moving-cards)
- [Task Lists](#task-lists)
- [CI Status and Merge Conflict](#ci-status-and-merge-conflict)
- [Issue Images](#issue-images)
- [Pull Request to non-default branch](#pull-request-to-non-default-branch)
- [Batch-Edit Labels in Multiple Repositories](#batch-edit-labels-in-multiple-repositories)
- [Burnup Chart](#burnup-chart)
- [Easter Eggs](#easter-eggs)
- [Examples](#examples)
- [Development](#development)
- [How Does it Work?](#how-does-it-work)
- [TODO List](#todo-list)# Features
### Multiple Repositories
Multiple Repositories in an organization can be shown on a board (from different organizations too!). The repository is shown in gray next to the Issue number.

### Linked Issues and Pull Requests
Just add `#123` or `orgName/RepoName#123` to the Issue or Pull Request body and linked Issues will show up with the column they are in, both below the Card and in the preview popup.

### Real-Time Collaboration
By clicking the :pencil2: icon next to the card title, multiple people can edit the Issue Body at once (ie in a meeting), and when editing is done, one person clicks Save to GitHub.
Features:
- send anyone the link to edit
- real-time preview of Markdown
- references to Issues show with their state and board column
- Sequence, State, Gantt, and other diagrams are supported (using [mermaid](https://knsv.github.io/mermaid/))
### Filtering
- cards can be filtered by label, milestone, board column, or user
- filters can be inclusive as well as exclusive
### Milestone Planning
When doing Milestone (or Sprint) planning there is a view to easily move cards into milestones

### Moving Cards
Cards can be dragged from one column to the next

### Task Lists
By using the `- [ ]` notation in the body of an Issue or Pull Request, the progress of an Issue is shown in the top-right corner of a Card.

### CI Status and Merge Conflict
- CI Status shows up as a green :heavy_check_mark: or a red :x: on the top-right corner of a card
- Merge conflicts are shown with a yellow :warning: and have a diagonal striped background


### Burnup Chart
[Why Burnup instead of Burndown?](http://brodzinski.com/2012/10/burn-up-better-burn-down.html)
Shows a burnup chart for a Milestone (ie "Sprint" or "Iteration").
If you use select multiple repositories it will include all of them.It also skips when nothing was opened or closed that day/month/year (useful to see weekends or holidays).

# Issue Image
If an Issue or Pull Request contains an image then it will be shown in the Issue

### Pull Request to non-default branch
Sometimes Pull Requests go to a branch other than the main branch. This makes it clear when that happens.

### Batch-Edit Labels in Multiple Repositories
If you need to rename a column or remove a duplicate label you can get to this page from the Settings dropdown next to the filter link.

# Easter Eggs
Plus, it comes with totally useful easter eggs you can unlock!

# Examples
Just specify a GitHub repository in the URL and off you go!
- [openstax/tutor-js](http://philschatz.com/gh-board/#/r/openstax:tutor-js)
- [openstax/tutor-js + tutor-server](http://philschatz.com/gh-board/#/r/openstax:tutor-js|tutor-server) (multiple repositories)
- [huboard/huboard](http://philschatz.com/gh-board/#/r/huboard:huboard)
- [jquery/jquery](http://philschatz.com/gh-board/#/r/jquery:jquery)
- Or wildcards! (must be logged in) using `http://philschatz.com/gh-board/#/r/openstax:tutor-js|*`# Development
- `npm start` to start up the dev server and go to `http://localhost:8080`
- `npm run build` to generate the JS and CSS files in `./dist`### How Does it Work?
- JavaScript calls the GitHub API and pulls in the Issues for a given repository.
- Since there is no server to do OAuth, people need to provide a GitHub token which is stored in `localStorage`
- It uses the first repository to get the Issue Labels and Milestones.
- There are special Labels which represent the board columns (in the format `# - Column Title`)
- To be a "Good API Citizen" `gh-board` uses eTags provided by GitHub and saves them in `localStorage` (or `IndexedDB`)### Hosting your own Forked Version
1. create a fork
2. switch to the `gh-pages` branch
3. make a commit and push it to `gh-pages` (to trigger GitHub to start hosting the files)
4. go to `https://${USERNAME}.github.io/gh-board/`###### To make edits and push them up on GitHub
1. make edits in the src directory in `master`
2. commit your changes
3. run `npm run deploy`###### To update your fork with the upstream (this repo)
1. `git pull https://github.com/philschatz/gh-board.git master`
2. run `npm run deploy`# TODO List
- [x] combine Issue and the Pull Requests that fixes it
- [x] handle dragging in multiple repos:
1. auto-create the label in the new repo (confirm first)
- [x] add checkbox for selecting multiple repos in dashboard
- [x] select between Issue-centric and PullRequest-centric view
- [x] support milestone (sprint) planning by making each milestone a column
- [x] show labels unique to each repository
- [x] linked Issues & PR's should include the title
- [x] collaboratively edit Milestones and any GitHub file by going to `/p-file/:repoOwner/:repoName/:branch/path-to-file`
- [x] add a list view in addition to a board
- [ ] Sort by Due At, Updated At, and ascending/descending
- [ ] add a way to add labels/milestones to an Issue (autocreate the label/milestone in the repo)
- [ ] cache issues-updated-since requests and CI status requests in Session Storage instead of IndexedDB so they can be cleared easier
- [ ] add effort labels XS, S, M, L, XL
- [ ] add GitHub search[gh-board-image]: https://img.shields.io/github/issues/philschatz/gh-board.svg?label=Issues%20%28gh-board%29
[gh-board-url]: http://philschatz.com/gh-board/
[travis-image]: https://img.shields.io/travis/philschatz/gh-board.svg
[travis-url]: https://travis-ci.org/philschatz/gh-board
[dependency-image]: https://img.shields.io/david/philschatz/gh-board.svg
[dependency-url]: https://david-dm.org/philschatz/gh-board
[dev-dependency-image]: https://img.shields.io/david/dev/philschatz/gh-board.svg
[dev-dependency-url]: https://david-dm.org/philschatz/gh-board?type=dev