Giter Club home page Giter Club logo

wuffle's Introduction

Wuffle

CI

A multi-repository / multi-organization task board for GitHub issues.

Wuffle Screenshot

Try out Wuffle or checkout features and philosophy to learn more about the tool.

Features

  • Multi-repository / organization support
  • Maps issues to columns via labels or close states
  • Moves cards across columns automatically, as you develop
  • Filters issues by name, label, assignee, and more
  • Visualizes reviews and pull request status/checks on a card
  • Supports private repositories: Visitors only see cards for issues they see on GitHub, too
  • Lets you create a new issue in any connected repository
  • Allows contributors to move/reorder cards
  • Simple setup: Connects to GitHub as a GitHub app

Resources

Philosophy

Some key aspects separate Wuffle from the GitHub task board competition:

  • GitHub issues are the source of truth. We read and store columns, relationships, and everything else directly on GitHub. The only exception is issue order (not supported by GitHub, so far).

  • No projects, no cards. No secondary editing UI, no incomplete views on your backlog. Just issues, milestones, and labels, all the way.

  • Tight integration with the GitHub flow. Your issues move automatically across the board. The board is always up to date with things going on in development.

  • Publicly accessible. You can share your project status without restrictions. Applied board filters are shareable deep links. However, we do only display those issues to a visitor that she sees on GitHub, too. Would you like to see cards from your private repositories? Log in with your GitHub identity and see them pop up in the mapped column.

  • Hackable. Wuffle is open source, MIT licensed. Contribute to it to make it even better. Self-host it and stay the owner of your data.

Setup and Run

Starting the board, including first-time setup if you have npm installed:

npx wuffle

Read the setup instructions for detailed explaination for the what and why.

Alternatively, start the app via Docker if you already configured it.

Components

  • board - the task board front-end
  • app - the back-end and board API

Related

License

MIT

wuffle's People

Contributors

barmac avatar dependabot[bot] avatar joannenolan-sky avatar mfossen avatar mjcarroll avatar necrolyte2 avatar nikku avatar philippfromme avatar renovate[bot] avatar retog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wuffle's Issues

Add burndown-like charts for milestones

Dear @nikku, wonderful initiative. I hope waffle goes open source, but even if it doesn't I'd still be interested to support and possibly contribute to wuffle.

One thing that I'd like to see is a burndown chart for milestones.
Because issues are not assigned estimated time-lengths I suggest a Bayesian approach to estimating time to complete a task.

Basically,

Let T[a, l] be the time to complete an issue
a - indexes assignee
l - indexes labels

Consider the contrived case where issues arrive randomly and sequentially and are completed by a black box process dependent on [a, l].

The arrival of issues is then a Poisson process.
Therefore, in the case that issues are solved sequentially, the time to solve an issue is exponentially distributed.

The rate parameter for of the exponential distribution can be estimated by,

rate[a,l] = N[a, l] / Sum_i T_i[a,l]
             = 1 / (average of all past issue completion lengths done by assignee a with labels l)

From this the probability distribution for the time to complete a task by assignee a with label l is P(T[a,l]) = Exponential[rate[a,l]].

The sum of many exponentially variables has an analytic mean and variance.

So it would always be possible to estimate the expected completion time of the milestone. And as new issues are added, so would the estimate change. If you assumed that all assignees work in parallel there is also an analogous solution.

Problems installing

Hi, I've installed the docker image and I can see a board with the configured columns but I have the following issues/questions:

  • as title it shows the first repo in the array of repositories (in the format nikku/wuffle)
  • all columns are empty, even though I have an issue with the label "ready" (I've configured the columns as in the example config)
  • when clicking on the top-right icon which should allow to log-in with GitHub I'm being eventually redirected to http://localhost:3000/board even though "localhost" never appears in the application configuration on GitHub
    image
  • When configuring the environment variables I wasn't sue about the SESSION_SECRET, I then assumed I could enter an arbitrary String.

Add GitHub integration

Is your feature request related to a problem? Please describe.

We need a GitHub integration to make this tool useful. We want to be faster and more reliable in it than waffle.io

Describe the solution you'd like

Use GitHub GraphQL API.

Describe alternatives you've considered

Use GitHub REST API directly or via existing client library.

Additional context

Waffle.io sends a load of requests to GitHub REST API during usage. I suppose we can reduce the number and size of them by using shiny new GraphQL API. Thus, we might ask only for the data we need instead of everything the backend can offer.

Unable to sync private repo on GitHub enterprise

Hi
I am trying to integrate with Wuffle. I have created a GithubApp and connected it to a repository
but I can't seem to access localhost:3000/board . I just get

Cannot GET /board

and terminal logs are

] 15:06:47.954Z  INFO http: GET /board 404 - 3.81 ms (id=1d6ca4b1-7b9c-40b1-90c6-2c639ff20bc5)

On startup I have noticed the following error which I believe is related

[dev:sync ] 15:01:22.369Z ERROR wuffle:background-sync: must declare <config.repositories> to let wuffle know which repositories should be synched in background

This was fixed by adding a wuffle.config.jsfile but I am still unable to access the /board. Am I missing a step somewhere?

Support github's full array of closing keywords

Is your feature request related to a problem? Please describe.

Currently Wuffle board only supports 2 Github's closing keywords which are closes and fixes and it would be nice to actually get this board to integrate into the Github better by adding support for the rest of the keywords also.

Describe the solution you'd like

I would like to see every Github's closing keywords supported which are described here: https://help.github.com/en/articles/closing-issues-using-keywords

  • close
  • closes
  • closed
  • fix
  • fixes
  • fixed
  • resolve
  • resolves
  • resolved

Describe alternatives you've considered

If this is too much of work and it's decided not to follow full keyword support then alternative is to force team members and collaborators to suck it up and force them to change their keyword usage habits which can be a bit problematic as unknown collaborators need to know which keywords can be used.

Simplify creating new issues from the board

Is your feature request related to a problem? Please describe.

As a user I want to be able to create a new issue from the board. Right now, in order to do that I have to do the following: Follow a link to an existing issue, find New Issue link on GitHub, click New Issue link. Create issue.

I'd like to have a shortcut that allows me to select the repository to create a new issue in and open the new issue page on GitHub from the board.

Describe the solution you'd like

  • The n shortcut allows me to select a repository
  • Submitting the selection navigates the user to the respective new issue page or the issue choose page on GitHub, whatever is configured

Describe alternatives you've considered

Implement issue creation on the board. We'll not do that.

Disable Board interaction for logged-out users

Users that are not logged in should not be able to move columns across the board.

We already enforce this on the back-end, however it would be cool to not allow users to do disallowed interactions in the first place.

Idea

  • Do not show plus button for logged out users
  • Do not allow dragging for logged out users

Reduce amount of stored / cached data

Right now we basically dump everything into our in-memory store that we get from GitHub.

It would reduce the burden on our store (#6) if we would only store the issue data we actually need. Datensparsamkeit would ❤️ us for that, too.

Idea

  • Understand what data we actually need
  • Extract only that data from events / sync data we receive from GitHub

[HELP] Install Issue

Hi,

I tried to install wuffle. I installed Github app and modified .env, but whenever restarting wuffle, it will always show 'Getting Started' page. What's the matter?

-- .env

APP_ID=43251
PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----\n"
WEBHOOK_PROXY_URL=https://smee.io/SjfMBN0wikQy66q2
WEBHOOK_SECRET=xxxxxx
GITHUB_CLIENT_ID=xxxxxx
GITHUB_CLIENT_SECRET=xxxxxx
SESSION_SECRET=xxxxxx
BASE_URL=https://githubstate.com
LOG_LEVEL=debug

Github app settings is below:
https://d.pr/i/hx6FTj

Integrate review requests

Right now, the reviewer icons are gone the moment a collaborator submits a review.

The reason for that is that we look into requested_reviewers only and a user that provided the review is not in that collection anymore.

Tasks

  • Hook into pull_request_review events and store reviews with their reviewer and state within the pull_request
  • Sync reviews via background sync
  • Display reviewers that gave reviews
  • Indicate review state via updated indicator icon
  • Link review via reviewer avatar

Current Card

image

Support card moving on the board

Card moving is currently implemented in the frontend and hooked up with GitHub permissions in the app. However, moving is not properly implemented on the backend, yet, resulting in inbox to be assigned to every moved card.

Tasks

On card move:

  • move across columns (nikku/wuffle-sync@890384d)
  • update card order (persist outside issues store)
  • assign label for respective column

Show labels of issues when added to custom columns

Is your feature request related to a problem? Please describe.

It would be beneficial to be able to see labels of issues that are configured to be placed in custom columns.

Below is example of some sort of board configuration that has 2 custom columns defined to be populated with issues with custom labels. Columns are Needs Grooming populated with issues that has label groom and Bugs populated with issues that has label bug:

module.exports = {
  name: 'Test Board',
  columns: [
    { name: 'Inbox', label: null, sorting: true, states: [ 'DEFAULT', 'EXTERNAL_CONTRIBUTION' ] },
    { name: 'Needs Grooming', label: 'groom', sorting: true },
    { name: 'Bugs', label: 'bug', sorting: true },
    { name: 'In Progress, label: 'IN PROGRESS', sorting: true, states: [ 'IN_PROGRESS' ] },
    { name: 'Needs Review', label: 'NEEDS REVIEW', sorting: true, states: [ 'IN_REVIEW' ] },
    { name: 'Done', label: null, closed: true, sorting: true, states: [ 'DONE' ] }
  ]
};

Currently cards showed in the board has those bug and groom labels omitted. As an UI/UX designer and being a team lead who mostly uses kanban board to see visually github issues placed in meaningful columns it's been easier for me (as well as others) to see issues with recognizable labels (via colors) without the need to actually read the column label and the label for the column might not always be the same as the label's name. I could easily assign multiple labels to be placed to same column because reasons.

Describe the solution you'd like

If possible there could be another option added that will allow custom issues labels to be visible. This option does not have to be available to columns that have states defined as it might be redundant to show NEED REVIEW label etc. in those cases.

Suggestion (naming convention might not follow the correct rules):

module.exports = {
  name: 'Test Board',
  columns: [
    { name: 'Inbox', label: null, sorting: true, states: [ 'DEFAULT', 'EXTERNAL_CONTRIBUTION' ] },
    { name: 'Needs Grooming', label: 'groom', sorting: true, showLabel: true },
    { name: 'Bugs', label: 'bug', sorting: true, showLabel: true },
    { name: 'In Progress, label: 'IN PROGRESS', sorting: true, states: [ 'IN_PROGRESS' ] },
    { name: 'Needs Review', label: 'NEEDS REVIEW', sorting: true, states: [ 'IN_REVIEW' ] },
    { name: 'Done', label: null, closed: true, sorting: true, states: [ 'DONE' ] }
  ]
};

With those extra options added then issues placed in Bugs and Needs Grooming column would show labels.

If by any reason someone would like to group groom and bug labeled issues under single column that has title Needs fixing and grooming it would be hard to say which issue is bug and which is to be groomed etc.

Describe alternatives you've considered

Just suck it up and try to set the board differently, not optimal but possibility of course.

Support user authorization

We must add a proper model that ensures that users are only able to see the things (and drive the things) they would be able to (see and drive) on GitHub.

Tasks

  • Require users to log in via GitHub
  • Only show private cards, if the user has access rights to it
  • Only allow issue movement between columns if the user has write access for the particular project
  • Only allow drag interaction for logged in users
  • Carry out interactions (adding labels, closing issues via board) using the logged in user identity

Use GraphQL API for GitHub interactions

Is your feature request related to a problem? Please describe.

GitHub API v4 is a GraphQL one, cf. GraphQL v4.

Using it reduces bandwidth and safeguards us from accidential API miss-use (core feature in GraphQL).

Describe the solution you'd like

  • Current usages of the REST API are replaced with GraphQL calls
  • We are as good with regards to rate limits as we are with the current REST API calls

Describe alternatives you've considered

Keep things untouched. The REST API will probably stay around for a long time.

Add ability to whitelist organizations to appear on the board

Is your feature request related to a problem? Please describe.

Public GitHub apps that feed the board can be installed without restrictions via GitHub.

Describe the solution you'd like

  • Add ability to filter GitHub organizations via config for which
    • Issues will be Background Synched
    • Webhooks will be reacted upon

Close issue when moving to DONE

Moving a card to done signals that the respective issue is closed.

We need to decide how to handle that situation:

  • Close issue on GitHub
  • Prevent these kind of invasive card move operations. Allow moving on the board only via the actions on GitHub only.

Integrate PR checks and statuses

Visualize the checks and statuses, effectively quality gates on pull-requests.

We should attempt to normalize both, checks and statuses in the back-end, otherwise the implemementation on the board will probably be painful.

Resources

  • Statuses - the legacy way of attaching information to a PR
  • Checks - the modern way / an advanced variant of statuses

Tasks

Back-end

  • background synche from GitHub
  • update on GitHub events
  • expose to everyone with view access on a PR
  • Generate update whenever they change

Board

  • show visually on a expanded PR card as well as on a linked / attached PR
  • clickable (goes to place that backs up the check / status)

Visualize issue dependencies

To get a better overview over issues we should add the ability to visualize issue dependencies:

image

Support

  • Attached PRs
  • Depends on Depends on #ISSUENR
  • Required by (inverse of depends on)
  • Related to Related to #ISSUENR
  • Part of Part of #ISSUENR
  • As a user, I am able to filter for issues that belong to each other

I see no issues

Hi there, trying to set up for the first time.

I finally got the app running at heroku, and, seemingly, linked to a reposity.

I see this in the logs...

2019-07-26T01:30:15.357313+00:00 app[web.1]: 01:30:15.357Z  INFO wuffle:store: issue updated (issue=enledger/EnLedger-Website#19, column=backlog, order=-3819995.460400003, t=0)

2019-07-26T01:30:15.357837+00:00 app[web.1]: 01:30:15.357Z  INFO wuffle:background-sync: synched 47, expired 0 issues (t=1647)

2019-07-26T01:30:15.357958+00:00 app[web.1]: 01:30:15.357Z  INFO wuffle:background-sync: success

However when I go to my board, I see no issues in any columns. What happened? Where are they?

The issue to solve all issues

Can we build a task board that works as a functional bpmn.io task board?

Features

  • Pull in issues from repositories
  • React to changes to issues in repositories
  • Limit to single config for now
  • Moving / updating issues via board

Treat all PR links the same as fixes

Heya, at the moment when raising a PR that fixes an issue, the issue is pulled across to the Needs Review column and not shown anywhere else e.g:

Screen Shot 2019-07-01 at 13 47 54

If it has any other relationship type, e.g. Required by, Depends on etc, the issue remains where it is with the PR below it and the PR appears in the Needs Review column with the issue below it e.g.

Screen Shot 2019-07-01 at 13 49 39
Screen Shot 2019-07-01 at 13 58 41

Would you be open to make all link types behave the same as fixes? The advantage then being that the issues and pr's are only shown once rather then twice. It also makes this the same as what Waffle used to do.

Also, once the PR has been merged/closed, we could make the issues return to the In Progress column.

Automatically set column issue order based on depends relationships

Describe the Problem

It makes sense to have cards in columns (needs review, backlog, ready) to be ordered based on their depends / closes relationships. This is due to the fact that cards are usually picked from the top to work on / review next.

Describe the solution you'd like

  • If a card depends on another card, it should be displayed below the card that is the actual requirement.
  • Do not overrule manual card placement
  • Investigate whether we can have a general add to column interaction that allows auto-ordering to be applied from the board

Store Data Persistently

Right now data is synchronized from GitHub periodically into an in memory store.

In order to keep issue data beyond closed stage we'd need to introduce our own persistent data store.

Ideas

  • Define Store API
  • Allow implementation of different storage providers

Sync delay

When I add change an issue on GitHub it takes a long time (more than 10 minutes) till this is visible in wuffle. In the repository settings in GitHub I don't see a webhook notifying my wuffle host. For details about my settings, see #32. Wuffle is configured to have Read/Write access to Repository webhooks (Manage the post-receive hooks for repository) and is subscribed to Issues/Milestones and PR events.

Alternative Sorting Mechanisms

Ideally, it would be nice to have alternative ways of sorting the columns in addition to the "semantic sort". When dealing with a larger backlog of issues, it's helpful to see the newest issues/prs float to the top of the column to get an at-a-glance look at the incoming issues.

I would propose adding at a minimum a sort by issue creation date.

Disable card interaction for non-collaborators

We do not allow non-collaborators to change the state of a card, however we do not properly handle that disallowed interaction in the front end.

Idea

  • Revert issue movement if it is rejected (because you are not logged-in as a card collaborator)

Depends on #7

Limit the amount of cards rendered

The delay on huge boards is due to a large amount of cards being displayed.

Reducing the amount of cards, i.e. due to windowing would reduce the amount of load we are seeing.

Provide a Dockerfile

Heya, thanks for creating this great Waffle replacement!

Would it be possible for this repo to also provide a Dockerfile? Or even better, a Docker image published to the Docker hub?

Happy to contribute :)

Change in Column Name not picked up

in wuffle-config.js, I renamed Next to To Do.
On restart, all issues in that column did not appear. When I checked they were still under the Next Column in the storedump.json and did not appear at all, as a column rename is not picked up to ensure the column exists on restart

To fix the issue I had to remove the label on each issues and re add to get it to appear correctly

Document storage

We should document the used storage strategy as well as drivers (local, S3).

Document and simplify setup (if possible)

Right now you need to register your GitHub app, configure the board, spawn wuffle-sync and wuffle. We should document this setup and see if we can simplify it.

Ideas

  • Document setup steps
  • Throw proper errors on missing or incomplete config
  • Investigate how to simplify the setup steps

Reorder of Issues in Inbox column reopens linked closed issues

When reordering issues in my Inbox column, the issue order is updated but all the closed linked issues and Pull requests are reopened. This is currently seen against version 17. I will be updating today to the latest version but it seems it was possibly introduced when the issues ordering was changed in version 15.

BackgroundSync being rate limited

Describe the Bug
Unable to perform backgroundSync as application is being rate limited when getting status or reviews. This happens for each open pull request

14:16:22.118Z ERROR wuffle:background-sync:
  additional sync failed RequestError [HttpError]: You have triggered an abuse detection mechanism. Please wait a few minutes before you try again.
      at /my-wuffle/packages/app/node_modules/@octokit/request/dist-node/index.js:66:23
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (internal/process/task_queues.js:85:5)
      at async Job.doExecute (/my-wuffle/packages/app/node_modules/bottleneck/light.js:405:18) {
    name: 'HttpError',
    status: 403,
    headers: {
      'access-control-allow-origin': '*',
      'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type',
      connection: 'close',
      'content-encoding': 'gzip',
      'content-security-policy': "default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com www.githubstatus.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com collector.githubapp.com avatars0.githubusercontent.com avatars1.githubusercontent.com avatars2.githubusercontent.com avatars3.githubusercontent.com github-cloud.s3.amazonaws.com; manifest-src 'self'; media-src 'none'; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com",
      'content-type': 'application/json; charset=utf-8',
      date: 'Tue, 15 Oct 2019 14:16:22 GMT',
      'expect-ct': 'max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"',
      'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
      'retry-after': '60',
      server: 'GitHub.com',
      status: '403 Forbidden',
      'strict-transport-security': 'max-age=31536000; includeSubdomains; preload',
      'transfer-encoding': 'chunked',
      'x-content-type-options': 'nosniff',
      'x-frame-options': 'deny',
      'x-github-media-type': 'github.v3; format=json',
      'x-github-request-id': '0857:2FD5A:3F6880E:4C0E0DA:5DA5D4B4',
      'x-xss-protection': '1; mode=block'
    },
    request: {
      method: 'GET',
      url: 'https://api.github.com/repos/my-repo/repo/pulls/766/reviews',
      headers: {
        accept: 'application/vnd.github.v3+json',
        'user-agent': 'octokit.js/16.30.1 Node.js/12.9.1 (macOS Mojave; x64)',
        authorization: 'token [REDACTED]'
      },
      request: {
        hook: [Function: bound bound register],
        validate: [Object],
        retryCount: 1
      }
    },
    documentation_url: 'https://developer.github.com/v3/#abuse-rate-limits'
  }

Steps to Reproduce

valid configuration
Setup : 7 repos, 900 total issues(750 pull requests)(9 open pull requests)
Version 17 storedump.json running on latest(v27) of application

  • npm clean-install
  • npm run buildl
  • npm run start

Expected Behavior

full refresh of issues should happen, reviewers and status should be updated
wit no issues

Environment

running in a local environment

  • Browser: [e.g. Chrome 77.0.3865.90]
  • OS: [e.g. MacOS Mojave]
  • Board Version: [e.g. 0.27.0]

Multiple problems and ideas for features

Firstly: Big thank you for providing open source version of Waffle board.

Secondly: Sorry for a wall of text. I do understand that this issue is not in desired format and I apologize about that. This is more of an discussion opening and general feedback for few things and it might be better to create issues separately if this discussion provides to be useful.

I finally managed to set my own prototype board up and running locally and I encountered few undocumented installation issues.

There are no mention that nodejs 10+ is required. I tried to run it with 8.12 but .finally() method is not supported in that version and therefore board only updated once (added one card only) after restarting the app. Some googling and issue was resolved but had I've known what were the requirements my life would have been a bit easier. Others might find that info valuable also as we use older nodejs for different reasons.

When using probot to create the github app the websocket secret in .env file must be updated manually as it differs from what is set in github app settings.

BASE_URL is missing in .env file if you use Probot, of course you can check the .env.example file to see how the .env should be configured.

In .env.example file there is mention that BASE_URL must match the Webhook URL which is configured in github app settings. However that setting in my case refers to smee.io (that is eventually pointed to localhost) and BASE_URL is set to http://localhost:3000. I found this a bit confusing.

sorting:true

Sorting, I do not understand how this should work and how it should behave when it's added to columns. I tried with sorting:true and without it and nothing changed.

I used for testing following wuffle.config.js file:

module.exports = {
  name: 'xxx',
  columns: [
    { name: 'Stuff and Things...', label: null, sorting: true, states: [ 'DEFAULT', 'EXTERNAL_CONTRIBUTION' ] },
    { name: 'Needs Grooming', label: 'groom', sorting: true },
    { name: 'Planned and Ready', label: 'PLANNED', sorting: true },
    { name: 'Bugs, those nasty creatures!', label: 'bug', sorting: true },
    { name: 'Do it Fred!', label: 'IN PROGRESS', sorting: true, states: [ 'IN_PROGRESS' ] },
    { name: 'Needs Review', label: 'NEEDS REVIEW', sorting: true, states: [ 'IN_REVIEW' ] },
    { name: 'WE DID IT!', label: null, closed: true, sorting: true, states: [ 'DONE' ] }
  ]
};

Manually sort columns

We have quite a big backlog and icebox (because reasons) and it would be nice to be able to sort columns asc/desc by issue creation date.

Labels

I found out that labels defined in wuffle.config.js do not appear on cards on the board which makes sense. However I would like to suggest that when using previously made labels to sort issues to different columns (like in our example above) those non state related labels should/could/would be visible (we use red bug label which is very easy to spot and now it does not appear at all), or maybe add another field that forces label to be visible ie. forceLabelVisible:true or something like that.

I found out that it's very nice to be able to use previously made labels to sort issues as it adds awful lot of flexibility to this boards use cases.

Rebuild app

After messing around with columns names etc. I found out (there's an another issue about this too #49) that if you change the column name you cannot see any issues in that column anymore even if the state or label are unaltered.

I would like to know how to rebuild the app and/or how to destroy the fetched data. I deleted storedump.json file from tmp folder but it did not do anything obviously. I ended up backuping .env and wuffle.config.js files and reinstalling everything from the scratch.

Is there a way to purge every fetched card or do users have to reinstall this app every time if some column name needs to be changed?

Force Refresh cards sorting

Is there any way to force cards column based sorting ie. if I add new column called "Koalas are cute" and I want that column to be populated with issues that have label "Koala" in github they don't appear in that column after restarting the app.

Currently I have to re-add the label in github to the issue and then it will update the board properly.

IN_PROGRESS state

Does this state follow the same ruling in branch naming as it were in Waffle? If so it might be good idea to actually document this as I had to dig interwebs a bit to actually remember the naming convention for new branches.

Hide column labels

Do not show column indicator labels on cards; this is useless information for the user.

Do not override GitHub labels but rather add and remove

Describe the Bug

The board forcefully overrides column labels when issues are being moved via automatic dev flow. This can lead to the situation that labels added by external parties are being overridden.

Steps to Reproduce

  • External party opens PR
  • Board moves PR to needs review
  • External party adds foo label
  • Board resets labels, dropping foo, adding needs review

Expected Behavior

  • Board only adds and removes labels it controls itself. No additional labels are being touched.

Environment

  • Browser: Any
  • OS: Any
  • Board Version: v0.29.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.