Commit Graph

164 Commits

Author SHA1 Message Date
Teemu Patja 35a57a59db
Status logo to deploying PNG 2017-10-29 11:25:42 +02:00
Teemu Patja c12cc5e7ed
First version of new page footer 2017-10-28 23:06:55 +03:00
Teemu Patja e71b17a565
Hubspot + FB Pixel embeds to page template 2017-10-28 21:10:51 +03:00
Teemu Patja 7aa8205115
DB support tracking welcome email sends 2017-10-28 21:10:09 +03:00
Teemu Patja 70f50422b2
Fix semantic UI css link 2017-10-27 18:18:28 +03:00
Teemu Patja 967778a761
Comment image improvements
* make QR image larger
* use status logo
* layout tweaks
2017-10-27 13:22:35 +03:00
Teemu Patja 6f2cb1c2a5
Only show claim related events in activity feed 2017-10-27 09:19:47 +03:00
Teemu Patja 35bef82b6e
WIP: SOB UX
beginnings of new UX for status open bounty
* manage repos view changes
* new header + tabs style
* flash/error messages as modal overlay
* SOB favicon
* general css changes
2017-10-26 19:19:36 +03:00
Teemu Patja 785d5fb8e5
Show username in top-hunters in case display name not set 2017-10-25 14:56:24 +03:00
Teemu Patja 0476b8c1ea
Fault tolerance for payout confirmal
* if a payout transaction sent by repo admin from cljs does not get
  mined within 3 hours, consider it as failed and re-enable confirm
  button

Fixes: #94
2017-09-15 10:24:55 +03:00
Teemu Patja c17763bf2d
Fix bug in is-bounty-issue?, update docstring 2017-09-13 11:20:11 +03:00
Teemu Patja 6522265f7d
Never show closed github issues as open bounties
* do not show a bounty issue in open bounties listing or activity feed
  items in case it was closed (manually or via PR)

Fixes: #95
2017-09-13 11:11:37 +03:00
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 eb9b4d18b8
Include value_usd and tokens in sql views 2017-08-23 22:12:55 +03:00
Teemu Patja d6aae3fb5e
Render token balances to Github comment image 2017-08-22 23:15:16 +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
Ricardo Guilherme Schmidt 24e3ae84f1 added to clj 2017-08-03 04:50:22 -03:00
Ricardo Guilherme Schmidt e45f9eb8da
Update to new multisig bytecode 2017-07-31 22:09:43 +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 473a525779
Use github username on activity feed if name does not exist
Fixes: #68
2017-06-13 11:39:15 +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 a90c9569e2
Revert "Use /test URL prefix from CLJS when on testnet"
This reverts commit 3bb8219f49.
2017-06-02 10:59:38 +03:00
Teemu Patja 3bb8219f49
Use /test URL prefix from CLJS when on testnet
* because we are not using a virtual host for the testnet instance,
  the client AJAX requests must prefix http path with '/test'
2017-06-01 14:37:05 +03:00
Teemu Patja 55cba00fa0 Merge branch 'develop' into develop 2017-06-01 13:36:13 +03:00
Ricardo Guilherme Schmidt f77fa9fea2 updated multisig to enhanced multisig 2017-06-01 01:02:07 -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 ad2e396ef1
Mainnet support
* show "Mainnet" instead of "Testnet" on github issue comments and web UI
  if commiteth.onTestnet system property is truthy
2017-05-21 11:07:19 +03:00
Teemu Patja 9b59996cb2
Update title 2017-04-13 12:41:59 +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 37fe9dec91
Fix activity item small resolution rendering
Related to #50
2017-04-02 20:52:00 +03:00
Teemu Patja 6bcdfa905a
Fix template variable name 2017-03-28 11:46:41 +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 020f9cdc5d
Gather usage metrics to db table with sql trigger 2017-03-17 23:17:29 +02:00
Teemu Patja 75d1da8a7a
Include commit sha in app.js URL to avoid stale caches
Fixes: #24
2017-03-17 23:17:29 +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 23de712604
Embed svg in cljs code
* move external svg image for dropdown into cljs code to avoid extra
  http requests
2017-03-16 22:44:34 +02:00
Teemu Patja 3cd11d4044
Cache busting for css 2017-03-15 16:23:42 +02:00
Teemu Patja f41247e5a0
Include commit sha in app.js URL to avoid stale caches
Fixes: #24
2017-03-15 12:29:02 +02:00
Teemu Patja a2fc249a62
Remove inline style attribute from <html>
* remove unwanted style attribute from <html> tag (Fixes: #34)
* define lang to make screenreaders happy
2017-03-15 10:03:50 +02:00
Teemu Patja e2fa46c250
Add ga script to template 2017-03-14 17:24:46 +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 b788f91149
Improve query for bounty-claim events in activity feed
* include pull-requests in activity feed that have been merged but are
  pending maintainer confirmation or bounty hunter to save own
  ethereum address
2017-03-12 19:06:51 +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 2d788cad32
Fix issues with showing version footer in uberjar
* re-implement getting git HEAD sha to cljs side due to system
  properties not containing project version in uberjar profile
2017-03-09 15:47:29 +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 331b227f5e
Fix problem in db migration 2017-03-03 16:44:59 +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 1ad6fb3b93
Inline logo svg, remove old svg's 2017-02-23 18:52:14 +02:00
Teemu Patja b112155134
Add debug logging, add forgotten column constraint 2017-02-23 13:23:20 +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 6fc8702a34
Move inline SVG hiccup to separate module 2017-02-11 14:53:32 +02:00
Teemu Patja 441ed2a022
Remove primer-css + sassc dependency 2017-02-05 20:10:00 +02:00
Teemu Patja da7107ce87
Upgrade dependencies, use CDN for bootstrap + fa 2017-01-30 20:33:25 +02:00
Teemu Patja 0192adf419
Remove unused template 2017-01-25 10:27:39 +02:00
Teemu Patja 4a25923454
Fix favicon path 2017-01-25 09:53:30 +02:00
Teemu Patja c8d67be3eb
Add new logo favicon 2017-01-24 22:34:45 +02:00
Teemu Patja 8cb5995d5a
Use SQL timestamp instead of time
* 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
2017-01-21 18:06:37 +02:00
Teemu Patja afce955ff3
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.
* fixed broken test

Fixes: #4
2017-01-20 20:36:24 +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 c414b503ed Add primer-css (temporarily) 2016-09-19 23:27:24 +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
G14 c0e4f51069 add html and scss files 2016-09-18 21:55:02 +05: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
kagel 26c67a59f1 No need to compile contract each time 2016-09-06 13:30:05 +03:00
kagel 4e8a5148d5 * deploy multisig contract bytecode
* check for transaction receipt every 5 minutes
2016-09-06 03:18:33 +03:00
kagel e1c7b08174 Bugfix 2016-09-01 02:24:00 +03:00
kagel 99705264ea Another bugfix 2016-08-31 04:49:26 +03:00