Secure Github webhooks (Fixes#18)
* Use a unique random secret for webhooks
* Validate payload signature when receiving webhook
Make enabling + disabling a repo more robust
* store repository state instead of enabled flag in DB
* atomic toggle UI button (Fixes#17)
New UX for managing repos
* group repos by owner
* look and feel according to UI spec
General improvements
* only request user's repos via Github API once per session
* fix issue with cljs code figwheel reload
* simplify app-db structure
* semantic UI + less based UI styling
* header, tabs, user-profile component
* store avatar URL in DB, show image in user
* unify :user and :user-profile in app-db for simplicity
* include contract address in github comment
* set cache-control: no-cache header for QR image response to avoid
caching on Github's side. Also no longer including balance in
comment hash function.
Fixes: #16
* Use SQL data type timestamp for users.created and
repositories.updated since we want to store datetimes, not time of
day
* Fix :migration-dir in project file
Fixes: #15
Previously the QR image did not get updated when the contract balance
changed and we generated a new one. This happened because Github
caches external images and our image's URL did not change after
updating. Now we generate the QR image hash based on also the balance,
so the URL changes when balance is updated.
Fixes: #13
Previously the user's email did not get saved to the db unless it was
defined as public in the profile. This commit adds an additional oauth
scope for accessing the user's emails, and the user's primary email
address is saved to the db.
* Fix geth json-rpc errors caused by non-hex encoded integer
parameters and nil :to parameter
* use personal_getTransaction instead of
personal_signAndSendTransaction used by geth < 1.5
Now repositories are shown with their full name ('<org/user>/repo'
instead of 'repo') and it is possible to add bounties for both
user repositories and organization repositories. Using org repos
requires the user to have admin rights to the repo.