Giter VIP home page Giter VIP logo

zappr's People

Contributors

aermakov-zalando avatar akhomchenko avatar christianlohmann avatar drummerwolli avatar ekaterinaserga avatar error418 avatar fokusferit avatar frometor avatar greenkeeperio-bot avatar hjacobs avatar jmcs avatar kgalli avatar lappleapple avatar lotharschulz avatar luisfarzati avatar m4ntr4 avatar mfellner avatar omartrigui avatar prayerslayer avatar rashamalek avatar rechi avatar rkeytacked avatar scherniavsky avatar sebastianpoeplau avatar spaudanjo avatar startnow65 avatar stoewer avatar tunix avatar vecmezoni 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  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

zappr's Issues

Invalid HttpResponse for hooks.

Registered a repository for zappr and had a look into 'webhooks'-settings the hook was marked red.

screen shot 2016-03-04 at 08 23 27

Maybe this is a issue, maybe not.

Store user's OAUTH token in each check

For certain API operations that are automatically performed by the web service in response to a webhook we need a valid OAUTH token.

The webhook events and resulting operations are always associated with a check. So it would make sense to save the current user's token in each check that gets turned on.

Use ZAPPR database

Currently we're just using default postgres database out of comfort, but in anticipation of #44, where we require yet another schema, it would be beneficial to switch to a dedicated zappr database as long as it's easy.

Syntax error during server build

When building the server npm run build-server there is an error (but the build completes nominally):

ERROR in ./server/service/EncryptionService.js
Module parse failed: /Users/mfellner/Code/Github/zalando/zappr/node_modules/babel-loader/index.js?{"presets":["node5","stage-3"]}!/Users/mfellner/Code/Github/zalando/zappr/server/service/EncryptionService.js Line 28: Unexpected token ;
You may need an appropriate loader to handle this file type.
|
| class EncryptionService {
|   static instance;
|
|   static create() {
 @ ./server/model/Check.js 25:25-64

The semicolon after instance gets automatically injected, even if it is removed (failing the eslint check).

Suggestion: refactor the singleton pattern (which is strange anyway) to simply leverage the Node module.

Reminders about open PRs

When a PR in my project is open for longer than n time units, Zappr should send a reminder email to a configured email address. If no action is taken by the receiver(s), Zappr should close the PR after m time units. An example for such action could be a button in the email "keep PR open".

Repository Paging

  • initially, load n (e.g. 20) repositories from Github
  • when a special parameter is provided (e.g. 'all') load n + k = all repositories from Github

Google survey form

Create a Google survey about Github, Stash and general workflow habits.

Ticket reference checks

Main obstacle: Tickets that do not live in same Github installation. Not the common case, but might happen.

Automatic branch creation

Should be relatively easy and we identified this as a nice ticketing/scm integration feature.

  • If enabled creates branch based on newly opened ticket
  • Name pattern is configurable with sane defaults
  • New checkbox in frontend

Require less permissions for Zappr

It should be possible to give Zappr only a minimal set of permissions initally and then upgrade.

Braindumping how it could work

  • Store consented scopes in a new column in User (first* db migration!)
  • Change config options to accomodate new premium/advanced/god mode.
  • Set cookie to indicate that god mode is used.
  • Dropdown in nav header to change mode.
  • Bonus points: When a check is enabled, it should then show a) who the token belongs to and b) what scopes it has / which mode it was created for and c) if it's valid (see below).
  • Figure out how to obtain consented scopes, should somehow work with the passport plugin: Does not currently work with the passport plugin. Workaround: Make HTTP request to Github API with token, read X-OAuth-Scopes response header.
  • Figure out how we can change consented scopes: Just do another login with more scopes. This won't work for removing scopes though, the users will have to revoke access (effectively invalidating all previously issued tokens) and log in again.
  • Figure out what happens to the old token when a user changes modes: Nothing, stays valid.

Token revocation scenario

In worst case we would have to revoke all access tokens we got via Github web UI and delete them from our database.

Think of a way to restore functionality with minimal user effort (ie ideally not more than logging in).

In-person interviews with actual people, user journey comparison

Create and compare user journeys about their development workflows.

  • create examples of workflows
  • identify contacts
  • hold interviews
  • summarise results

Workflow & Interviews: https://docs.google.com/document/d/16jHNJrsM1X0mMkTbizgRZbsxkr7MZrvJMyWTLQ8pS3M/edit

Most active teams on Stash and possible contacts:

  • AST: Zalando Stock — jrempe
  • BRAND: Brand Solutions
  • BZR: Bazaar
  • CEP: Logistics — yvandecnocke
  • DIPA: DI Payment Analytics
  • DISFC: DI SCF ???
  • JUS: Just Buy — Gökhan, oekarahan
  • ORDER: Order ^^ — lniemeier
  • PPDBACKEND: Zaster — mschumacher, ohuelscher
  • PPDEXPERIENCE: lbrueder, dodebrecht
  • SHTRACK: rschaarschmi
  • SHOP-ENGAGEMENT: rgritti
  • SHOP-EDITORIAL: MyFeed — azarutsky
  • TRUX: cpeikert, rwitzel

Encryption of tokens

Maybe with KMS so we don't have to take care of the encryption key.

  • A token is saved inside each check (#25)
  • Tokens are handled by the NullEncryptionService for development
  • Tokens hare handled by the KmsEncryptionService in production

Support for Reactions

Github just announced support for reactions.

d55b8b7e-e6ba-11e5-9b31-59a8db92e456

I did not see any API support yet, but that could be a great interface for approvals.

Label state machine

Figure out a way for people to define state transitions for issues via labels. The main obstacle here is the feedback loop: One adds a label, representing an invalid transition, and then what? Just remove it again? If so, how to inform user about invalid transition? Email?

Improve landing page

It's just a sign-in button now without any hint what's behind. Before go-live we should put some love into that.

Development Documentation

Create a complete documentation for the contributors and developers of Zappr.

Tasks

  • instructions on testing in README.md

Daily commit summary as email

For different branches on enabled repos, send a daily (configurable) commit summary from other people to encourage code review prior to PR.

Main question is how to organise it as its possibly lots of information.

Approvals for releases and deployments

Some people I've talked to say that approving releases and/or deployments is very important to them. How could we address this?

What we need to understand

  • how do teams prepare a release?
  • how do teams deploy a release?
  • which steps should be automated and which need to be manual?

Notes

STUPS integration

  • Create review approvals in Kio automatically after they were given in Zappr.

Make RepositoryList less jumpy

When updating repositories from Github the whole list is replaced with a giant spinner. We can make this more subtle, I guess. Also I think "load all" does not really transport what it does / is slightly confusing, so we should stick to the wording that Travis uses: sync. And thinking about it, is there a specific reason why one cannot work with the UI during a sync?

  • Subtle spinner that doesn't render the whole UI useless
  • Align wording with Travis, ie change "load all" to "sync"

Proper issue templates

  • Ability to put templates (mustache?) in a .zappr folder in the project
  • New issues are checked against templates and labeled accordingly
  • Option to autoclose issues that do not match any template
  • Figure out what to do with info that can be extracted from templates, like version numbers, most common words in stack trace…

User Documentation

Create a complete documentation for the users of Zappr.

Tasks

  • project summary in README.md

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.