62 Commits

Author SHA1 Message Date
Teemu Patja
11d2c6e4ce
Workaround for smart contract issue related to payouts
If our smart contract is used as designed for payout (first commiteth
bot executes confirmTransaction() with a withdrawEverything call in
payload and then the repo owner calls confirmTransaction() with the
returned tx-id) the contract fails when executing, but confirming
succeeds. Because of this, we now look for contracts that have been
confirmed by both and that still have ETH and/or tokens, and call
executeTransaction() for those.

This needs testing.
2017-08-31 11:33:08 +03:00
Teemu Patja
584f742de9
Show tokens, ETH and USD value on UI
* make activity feed items and open bounties view show badges for ETH
  and tokems and total USD in item description
* make top hunters work based on total USD value paid out in bounties
* upgrade lein-cljsbuild
2017-08-23 23:48:59 +03:00
Teemu Patja
31d8a07b97
Keep track of USD value update datetime in DB 2017-08-22 22:15:40 +03:00
Teemu Patja
9cfd27a0b6
Periodicically update bounty total USD values to DB
* peridic updating of total USD value for open bounties
* support 1 and 10 minute interval tasks in scheduler
2017-08-22 20:31:21 +03:00
Teemu Patja
f8d00196d6
DB storage for token balances
* store token bounties to DB when changed
* added some TODOs
2017-08-22 16:45:10 +03:00
Teemu Patja
b2cd1886f6
DB changes for bounty USD value + token support
* rename balance -> balance_eth
* add tokens jsonb column
* add value_usd column
* update existing SQL
2017-08-19 22:41:41 +03:00
Teemu Patja
d435b0b723
Show unmined pending payouts as disabled on UI
Fixes: #70
2017-06-13 19:26:48 +03:00
Teemu Patja
4061f0c5b3
Keep bounty issue titles up-to-date with github
* update changed bounty issue titles at startup
* update changed issue title in issue edited webhook handler

Fixes: #67
2017-06-13 10:26:22 +03:00
Teemu Patja
a4e4a80f31
SQL fix 2017-05-31 11:27:48 +03:00
Teemu Patja
7285987292
Improve recovery mechanism
Only consider un-mined contract deployments older than 1 hour as
failed
2017-05-31 10:44:45 +03:00
Teemu Patja
c5cc94fd81
SQL fix 2017-05-31 10:02:07 +03:00
Teemu Patja
f171259ed4
Recover from bot account ETH balance running out
Recover from situation where Commit ETH bot account's ETH balance runs out and gets replenished by re-deploying contracts that were not actually written to the blockchain.

Fixes: #58
2017-05-31 09:32:46 +03:00
Teemu Patja
f391330f58
Usage metrics view for status team members
* status team membership restriction auth-rule
* HTTP API method + db query
* set whole session to nil in /logout
* simple UI view showing chart of registered + active users
2017-04-06 22:52:11 +03:00
Teemu Patja
c2b6857a65
Fix crash when creating user 2017-03-23 08:29:40 +02:00
Teemu Patja
3f0ff567a8
Progressive Github permissioning & client-side oauth tokens
* require only user:email oauth scope when signing up
* if user wants to set bounties on repos, request additional oauth
  scopes
* do not store github access tokens on server side and use client-side
  localStorage instead

Fixes: #35
Fixes: #40
2017-03-22 22:20:52 +02:00
Teemu Patja
35df02edea
Update bounty issue comment on PR merge
* update comment for a bounty issue when a PR is selected as the
  winning claim by merging
* fixed bug in pending-bounties causing first PR referencing a bounty
  issue to be considered as winning claim

Fixes: #44
2017-03-19 22:13:09 +02:00
Teemu Patja
bf028991e8
Update bounty issue comment after payout
* update bounty issue comment to indicate the bounty has been paid out
* minor refactoring

Fixes: #36
2017-03-19 17:10:56 +02:00
Teemu Patja
b4f3d9e5c2
Improve naming 2017-03-19 16:07:42 +02:00
Teemu Patja
b25e01f14d
Simple "open bounties" view
* add simple tab for showing all open bounties (#37). Probably needs
  some UX improvements
* rename old "bounties" tab to "manage payouts"
* fix issues in db migration
2017-03-17 23:17:30 +02:00
Teemu Patja
3ba4956a78
Show bounty open & balance update feed items in context of repo
For bounty related activity feed items:
* show full repository name in activity item title instead of admin name
* show owner avatar instead of admin avatar

Fixes: #41
2017-03-16 22:44:34 +02:00
Teemu Patja
f0f7bf9c7d
Scheduled task for re-deploying failed bounty contracts
* as a secondary pre-caution, look for bounty issues where the deploy
  contract transaction has failed and re-deploy the contract

(Fixes #32)
2017-03-12 19:50:05 +02:00
Teemu Patja
01f1bffd77
Store payout receipt as postgresql jsonb
* store bounty payout receipt as a jsonb object in the database
  instead of a varchar containing json
2017-03-10 20:23:14 +02:00
Teemu Patja
c93326e874
Post "deploying contract" image
Post a PNG image informing that the bounty contract is being deployed
immediately after bounty label.

Fixes: #26
2017-03-06 20:33:42 +02:00
Teemu Patja
9f010648aa
Error handling improvements, #22 fix & more
Error handling improvements
* show error message on UI in case repo toggling fails
* eliminate possibility of creating multiple webhooks

Store comment PNG for all balances of a bounty (Fixes: #22)
* include balance in computation of verification hash for image request
* store hash in db

Refactoring
* use 'owner' for a repo owner everywhere instead of 'login'

Minor
* move cider dependencies to top-level in project file to avoid errors
  with tests and migratus
2017-03-02 10:51:18 +02:00
Teemu Patja
211cc96c90
Activity feed + UI tweaks
* finish missing parts of activity feed feature
* render time ago labels with moment.js
* css tweaks
2017-02-27 22:38:41 +02:00
Teemu Patja
2599b85d41
WIP: Activity feed feature
* backend support for activity feed
* partial frontend support (still needs work)
* save issue modification timestamp to db
* rename commit-id -> commit-sha everywhere for consistency
* "No data" texts for UI collections when no data exists
2017-02-26 23:43:57 +02:00
Teemu Patja
c33fb858f9
"Top Hunters" feature + more
* frontend + backend support for top hunters
* fix issues with bounties view
* logging
* cleanup
2017-02-26 16:14:39 +02:00
Teemu Patja
9cb48b5183
Bounties view + related backend functionality & more
Changes to bounty/pull-request data model and logic
* save git sha of pull request's HEAD instead of possible merge commit
  and save it for opened, merged and closed events
* only look for bounties being accepted in pull-request closed via
  merge events (no need for compilicated logic with issue-closed event)
* pull_request now has issue_id column to make many sql queries
  simpler

Frontend
* owner-bounties app-db structure changes
* bounties view with confirm pending payout UI

Other
* removed lots of unused legacy code
* bug fixes + refactoring
* added comments + TODOs
2017-02-25 00:15:44 +02:00
Teemu Patja
ec5f07a578
DB query refactoring, save PRs also when opened
* store pull-requests to DB also when opened instead of only when
  merged to allow for showing bounty claims
* refactor SQL queries
* look for PR keywords also in title
* improve PR keyword regexes
2017-02-24 11:05:13 +02:00
Teemu Patja
9b972625e0
Rewrite Github comment PNG functionality
* removed old swing JEditorPane based html to png rendering due to
  it's lack of support for modern css
* new implementation uses wkhtmltoimage (on prod server via wrapper
  script using xvfb)
* no longer generating image on every GET request for QR, but rather
  generating image when a bounty is cretaed or contract balance
  changes
* images stored to DB
* comment image design updated according to UI spec
2017-02-21 10:49:25 +02:00
Teemu Patja
d35b794ca4
New UX, webhook securing, atomic repo toggling etc.
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
2017-02-18 11:07:51 +02:00
Teemu Patja
6e646280c2
WIP: new UX
* 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
2017-02-12 22:25:32 +02:00
Teemu Patja
e036778932
Fix first-time sign in issue
db/create-user! now returns a map with the created data instead of a
number, as expected by the client side.

Fixes: #4
2017-01-15 22:26:33 +02:00
kagel
e68891a936 send button now reflects tx status + display some errors 2016-10-04 03:13:43 +03:00
kagel
401f8dcf8c Fix multisig wallet payout flow 2016-10-01 15:29:18 +03:00
kagel
2f6a835bba Display only open bounties on the main page 2016-09-30 00:44:51 +03:00
kagel
833953edc6 Update multisig wallet contract code 2016-09-25 14:49:18 +03:00
kagel
49dcdc0515 Confirm multisig transaction using web3 2016-09-22 03:45:06 +03:00
kagel
561d852a38 update-contract-address bugfix 2016-09-22 03:45:06 +03:00
kagel
4079bd398d New look 2016-09-19 23:26:57 +03:00
kagel
bce7ef436a Various bugfixes:
* extra newline in contract data
* insufficient gas
* wrong headless image generation
* stop scheduler threads on exit
etc.
2016-09-18 23:43:38 +03:00
kagel
51b8fa87ff Automatically add the "bounty" label to a repository
fixes #2
2016-09-14 02:29:39 +03:00
kagel
7fb0f9ddae Update github comment only when balance changes 2016-09-13 19:50:04 +03:00
kagel
a87b8bb56e Fix hugsql comment 2016-09-12 19:50:32 +03:00
kagel
8fb363218a Edit github comment on balance update 2016-09-12 19:44:29 +03:00
kagel
397b3259b1 Embed balance and issue number into QR image 2016-09-12 02:15:59 +03:00
kagel
e8c9d618aa Prevent QR code cheating 2016-09-10 09:50:13 +03:00
kagel
c1af7788eb Sign transaction 2016-09-10 02:06:56 +03:00
kagel
fcbf26e775 Add multisig wallet owners 2016-09-09 03:35:28 +03:00
kagel
d404e7d34f Post a comment with balance and QR code 2016-09-07 03:20:17 +03:00