Commit Graph

355 Commits

Author SHA1 Message Date
Teemu Patja 3d7cf03263
#37: add forgotten file 2017-03-17 23:27:51 +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 a3ec1591b5
Show fork icon for forks in repos view 2017-03-16 22:44:34 +02:00
Teemu Patja 05944b5c88
Update dependencies, fix cljsbuild warning 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 66d6dd37fd
Allow enabling forked repos
(Fixes: #42)
2017-03-15 19:06:27 +02:00
Teemu Patja d17b207064
Remove forgotten debug fn's 2017-03-15 10:12:43 +02:00
Teemu Patja bcae011231
Merge branch 'master' into develop 2017-03-14 22:44:04 +02:00
Teemu Patja 4ba777996e
Fix UI issue when confirming payout
* fix bugs in handlers related to bounty payout confirmation (Fixes: #31)
* reduce println noise
2017-03-14 22:42:29 +02:00
Teemu Patja 89ed67c39a
Update placeholder text 2017-03-14 22:23:42 +02:00
Teemu Patja a9b6a28dec
Add 'repos' oauth scope
* repos scope is needed even for read-only access to the user's
  repositories, so it is required for manage repositories to work

(Related to #29)
2017-03-14 18:41:02 +02:00
Teemu Patja 34615a6f92
Footer enhancements 2017-03-14 17:38:50 +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 3a29a577de
Remove forgotten debug fn's 2017-03-10 20:27:11 +02:00
Teemu Patja cb3feeeec3
Use random json-rpc request IDs
* use a random 0-4096 int for json-rpc request ID and ensure reponse
  has the same ID (may solve #32))
2017-03-10 20:23:14 +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 2bd5685638
Use random json-rpc request IDs
* use a random 0-4096 int for json-rpc request ID and ensure reponse
  has the same ID (may solve #32))
2017-03-10 20:19:35 +02:00
Teemu Patja 219d697fee
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-09 21:50:57 +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 817466c636
Show commiteth version in page footer
* inject commit sha to project version and make it visible in cljs
* show commiteth version (commit sha) in page footer with a link to github
* downgrade snapshot versions of dependencies to last stable version
2017-03-09 09:49:22 +02:00
Teemu Patja edc547b9ab
Fix broken link to github issue
Fixes: #27
2017-03-08 22:44:30 +02:00
Teemu Patja e6e62d3adc
Indicate signing bounties not possible without web3
* show a warning div informing that signing off bounties is not
  possible without a connected wallet (Fixes #28)
2017-03-08 22:35:55 +02:00
Teemu Patja 8aa7c87835
Remove "repo" oauth scope
* remove "repo" from required permissions (fixes: #29)
* formatting
2017-03-08 22:06:15 +02:00
Teemu Patja 6e60802803
Ignore comments in PR body + unit test
* ignore markdown comments in PR body
* unit test coverage for issue-id extraction from PR webhook
2017-03-08 21:42:52 +02:00
Teemu Patja 0c52b24b51
Improve github comment text 2017-03-07 13:41:56 +02:00
Teemu Patja a8f2d1c1ab
Handle empty payout address case gracefully
* log error instead of crashing if a bounty issue gets merged and bounty
winner has no address
2017-03-06 20:47:17 +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 a3a7ac915b
Indicate testnet usage, fix comment image export
Fixes: #25
2017-03-06 17:46:31 +02:00
Teemu Patja f2c74fe4e7
Fix crash in case webhook with nil url exists for a repo 2017-03-06 15:11:54 +02:00
Teemu Patja bb9ae35fd5
Log proper stack trace in case toggling repo throws 2017-03-06 14:25:26 +02:00
Teemu Patja e6def5b3f8
Fix crash when receiving a webhook POST for unknown repo 2017-03-06 14:07:19 +02:00
Teemu Patja 317247e31a
Merge branch 'develop' 2017-03-06 12:56:01 +02:00
Teemu Patja b69a6f5728
Scheduler logging fix & fix 500 error for unexpected webhook
* log exception in case scheduled task fails
* return 403 response in case validating webhook POST secret fails
* add logging
2017-03-06 12:55:39 +02:00
Teemu Patja f8e7677c9e
Make swagger-ui available only for dev profile 2017-03-04 13:01:32 +02:00
Teemu Patja 1107ed71e7
Fix REPL reload issues with db and http-server 2017-03-04 12:42:12 +02:00
Teemu Patja 22d1fcc517
New scheduler implementation
* simpler and more REPL-friendly scheduler implementation
2017-03-03 23:24:31 +02:00
Teemu Patja 5cdc524c1b
Fix bug in pull request webhook handler 2017-03-03 21:37:12 +02:00
Teemu Patja 366b0f6a7a
Simplify QR image get handler 2017-03-03 17:02:58 +02:00
Teemu Patja 716856830b
Github comment image related fixes and improvements
* fix crash with QR image GET request for non-existing image/bounty
* take comment hash verifcation back to use
* improve QR handler error handling
* add missing parameter to function call
2017-03-03 16:27:47 +02:00
Teemu Patja 442f5c7821
Require Ethereum address for toggling repos
* do not allow toggling of repositories without a saved Ethereum
  address (Fixes: #20)
* fix react warning on activity view
* fix bugs in payout related re-frame handlers
* project file tweaks
2017-03-03 10:19:28 +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 51ccf7ce34
Fixed bug related to org owned repos
* store org name as owner instead of logged in user when toggling a
  repo
2017-03-01 15:54:29 +02:00
Teemu Patja f125bd6244
Fix issue URL in activity feed 2017-03-01 10:35:16 +02:00
Teemu Patja 07b61ee9c8
Add content-type to json-rpc post to make parity happy 2017-02-28 20:22:13 +02:00
Teemu Patja 6e108a088d
Make uberjar nrepl emacs friendly
* replace luminus nrepl with cider nrepl
+ minor cleanup
2017-02-28 14:03:33 +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 9149a5a985
Store bounty balances as decimal instead of 0x string 2017-02-25 14:44:29 +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 9cb1028c16
Debug logging 2017-02-23 13:48:11 +02:00
Teemu Patja b112155134
Add debug logging, add forgotten column constraint 2017-02-23 13:23:20 +02:00
Teemu Patja 2d2d11fc9d
Fix issues with injected web3 and advanced cljs compilation
* use stub js for web3 externs
* upgrade clojurescript

Fixes: #21
2017-02-23 12:26:29 +02:00
Teemu Patja 66a65277ae
Remove broken + unneeded /docs route 2017-02-22 22:54:48 +02:00
Teemu Patja 0b69459638
Do not checksum validate address by default
* make checksum validation optional in valid-address?
* update test
2017-02-22 21:51:47 +02:00
Teemu Patja b868996308
Do not expose user's email addresses to client side, rename parameter 2017-02-22 19:46:11 +02:00
Teemu Patja c2065fa973
Improve repo loading error handling + UI tweaks 2017-02-22 11:57:38 +02:00
Teemu Patja 1d49767da9
Repositories view improvements
* show personal repos group before other groups
* CSS tweaks
2017-02-22 11:31:38 +02:00
Teemu Patja 32392a4405
Fix bug caused by stale session
* in case API AJAX calls start failing, make sure user is logged out
  to avoid frontend being in a corrupt state
2017-02-22 10:56:14 +02:00
Teemu Patja f932b3705d
Do not leak Github API access token to client side 2017-02-22 10:47:53 +02:00
Teemu Patja 89475a9365
Close success flash messages via delayed dispatch 2017-02-21 23:00:53 +02:00
Teemu Patja 4e627be1e0
UX improvements + address validation
* error/success flash notification support
* disable spellcheck for address editbox
* validate user's Ethereum address when saving
* update button state styles
2017-02-21 21:43:35 +02:00
Teemu Patja 1663669163
Ethereum address validation + unit test
* utility function for validate Ethereum addresses
* unit test
2017-02-21 21:41:39 +02:00
Teemu Patja d5ebf3b0bc
Fix glitch with responsive grid 2017-02-21 15:05:28 +02:00
Teemu Patja f383ab9a0d
Fix build errors + problem with webhook routes
* remove unnecessary servlet context middleware
* do not apply unnecessary ring middleware to webhook routes
2017-02-21 14:55:40 +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 bb5d492631
Activity feed view
* beginnings of activity feed reagent UI
* uses place holder data for now
* CSS + other UI tweaks
2017-02-20 17:03:01 +02:00
Teemu Patja b8facb1a97
"Top hunters" UI
* front end support for "top hunters"
* placeholder data used for now
2017-02-19 19:52:22 +02:00
Teemu Patja 7ce1dc6cdc
Fix bug in handle-issue-labeled + logging 2017-02-19 14:33:02 +02:00
Teemu Patja 0fef7d931d
Add forgotten file 2017-02-19 14:32:13 +02:00
Teemu Patja 416178cf0a
Guard against invalid QR code requests 2017-02-19 11:01:02 +02:00
Teemu Patja 97c7800e4d
CSS tweaks 2017-02-18 23:36:29 +02:00
Teemu Patja e265e967e2
Fix regression + UI tweaks 2017-02-18 22:46:59 +02:00
Teemu Patja 354c262301
New 'update address' view
* show web3.eth.accounts in dropdown in case web3 available, otherwise
  edit box
2017-02-18 22:43:11 +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 e29dc1ae8a
Do not render manage page when not logged in 2017-01-30 21:57:03 +02:00
Teemu Patja 993b2a5064
Fix 'unknown prop' react warning 2017-01-30 21:34:12 +02:00
Teemu Patja c60db00f6d
Reorganize API endpoints 2017-01-30 21:26:02 +02:00
Teemu Patja fb136e656d
Show spinner when repos are loading 2017-01-30 21:06:17 +02:00
Teemu Patja 19de39d946
Add missed file 2017-01-30 17:57:23 +02:00
Teemu Patja 40f3bc0de4
Move gzip middleware to a better place 2017-01-30 17:45:45 +02:00
Teemu Patja 7f90f38b1e
Gzip compress all HTTP content 2017-01-28 09:29:22 +02:00
Teemu Patja 8812157789
Optimization: only provide needed repo map keys 2017-01-28 09:12:08 +02:00
Teemu Patja a4aafa1bd3
Enable re-frisk for dev profile 2017-01-28 08:24:05 +02:00
Teemu Patja c12e5d1311
Contract-address to comment field + disable QR image caching
* 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
2017-01-22 12:26:32 +02:00
Teemu Patja 985b72754d
Create bounties for existing issues when enabling a repository
* Create bounties for existing bounty-tagged issues when a repository is
toggled on
* added commiteth.bounties ns for sharing code

Fixes: #12
2017-01-22 11:10:40 +02:00
Teemu Patja f89a83ea32
Create github issue label with different color 2017-01-22 07:57:05 +02:00
Teemu Patja 1c26d17ad9
Run pending DB migrations at startup
Run pending DB migrations at startup to make deployement
simpler (eliminates need to clone repo and run "lein migratus migrate"
on the server)
2017-01-21 19:14:12 +02:00
Teemu Patja 5d704b626e
Fix QR image update issue
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
2017-01-20 23:34:50 +02:00
Teemu Patja b3909f4e60
Fix saving of users' email
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.
2017-01-20 23:34:40 +02:00
Teemu Patja 480d85f6b5
Fix bugs in ethereum module
* 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
2017-01-20 20:36:24 +02:00
Teemu Patja 60cc76919e
Add support for using org repos
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.
2017-01-20 20:36:18 +02:00
kagel e68891a936 `send` button now reflects tx status + display some errors 2016-10-04 03:13:43 +03:00
kagel feccbcce72 Refresh data every minute, please 2016-10-02 18:06:12 +03:00
kagel 401f8dcf8c Fix multisig wallet payout flow 2016-10-01 15:29:18 +03:00
kagel 1110f5817d Fix tentacles edit-comment method 2016-09-30 20:10:33 +03:00
kagel 369d45ef51 Fix multisig wallet `execute` method 2016-09-30 20:02:28 +03:00
kagel 4a009a09e8 Strange Mist behaviour workaround 2016-09-30 01:52:40 +03:00
kagel e8375418d7 Wildfly workaround: reuse named scheduler thread between deployments 2016-09-29 17:27:20 +03:00
kagel e65fabf60e Pagination 2016-09-28 04:12:33 +03:00
kagel 161b5b8052 Remove assignee and comments count 2016-09-26 01:56:00 +03:00
kagel c064c04b46 Remove table header 2016-09-26 01:50:02 +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 6d8ad78bfd Display balance in ETH + stop scheduler threads on exit 2016-09-22 03:45:06 +03:00
kagel 0affe53a45 React warnings 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 4618662203 Another bugfix 2016-09-15 17:56:29 +03:00
kagel 7ffc9741de Bugfix in handle-issue-closed 2016-09-15 17:39:50 +03:00
kagel 88ed27d100 More logs please 2016-09-15 00:35:50 +03:00
kagel 59a60aa261 replace println with log 2016-09-14 15:55:52 +03:00
kagel 781f4b4a49 Externalize configuration 2016-09-14 14:40:44 +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 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 21a9682c5c Fix period 2016-09-07 04:22:55 +03:00
kagel 8d7a78e593 Use `mount/defstate`, please 2016-09-07 04:18:33 +03:00
kagel d404e7d34f Post a comment with balance and QR code 2016-09-07 03:20:17 +03:00
kagel cfbfff4d30 Gas is not string 2016-09-06 17:02:12 +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 094ce72a46 Validate referenced issue number 2016-09-01 02:59:43 +03:00
kagel 9e8ecd50a3 Take first issue number, please 2016-09-01 02:13:17 +03:00
kagel b2f92e2f0e Link referenced issue by parsing "Fixes" keyword 2016-09-01 02:03:53 +03:00
kagel 99705264ea Another bugfix 2016-08-31 04:49:26 +03:00
kagel 1dd6be2180 Bugfix 2016-08-31 03:21:09 +03:00
kagel fdfaafc2c1 Get rid of parents and merge_commit_sha 2016-08-31 00:45:25 +03:00
kagel f9d983076c Increase session ttl 2016-08-30 23:25:11 +03:00
kagel a484d477f4 JDBC_DATABASE_URL 2016-08-30 01:57:35 +03:00
kagel 520e5e34e4 Prepare for deployment + bugfixes
Add empty css directory (again)

Remove sassc hook (Heroku)
2016-08-30 01:40:10 +03:00
kagel 7f6cb564a0 Display issues list 2016-08-29 01:16:08 +03:00
kagel 4a5196987b Issue and PR webhooks 2016-08-28 23:16:45 +03:00
kagel a6459a2a32 Handle issue labeling via github webhooks 2016-08-26 04:10:05 +03:00
kagel 656f7ce84a Embrace re-frame 0.8.0 effects 2016-08-25 02:58:55 +03:00
kagel b29eaaaf80 Repositories list 2016-08-25 01:46:29 +03:00
kagel e47c25d1ca Get user profile 2016-08-23 16:00:53 +03:00
kagel c97627c6cf Factor out profile page 2016-08-23 15:34:52 +03:00
kagel b4eb921361 UI fix 2016-08-23 15:22:38 +03:00
kagel 58a66236e7 Use form-2 please 2016-08-23 15:07:35 +03:00
kagel 601465ad39 Update user address 2016-08-23 02:27:49 +03:00
kagel 8cd7f7705c Buddy session 2016-08-22 22:38:10 +03:00
kagel baf07a21ec Persist user 2016-08-22 03:22:39 +03:00
kagel f6498069f7 Fix compile error 2016-08-22 01:13:07 +03:00
kagel 0382fa9888 Github integration hello-world 2016-08-21 03:29:39 +03:00
kagel c4bab5a6ed Luminus skeleton + useless github button 2016-08-21 00:36:09 +03:00