{"action":"created","comment":{"url":"https://api.github.com/repos/gitcoinco/web/pulls/comments/343117298","pull_request_review_id":312461261,"id":343117298,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDM0MzExNzI5OA==","diff_hunk":"@@ -832,6 +832,19 @@ def record_user_action(event_name, old_bounty, new_bounty):\n             })\n \n \n+def is_lowball_bounty(bounty_value_usdt):\n+    \"\"\"Determine if a bounty value is less than a threshold\n+\n+    Args:\n+      bounty_value_usdt (Decimal): The value of the bounty\n+\n+    Returns:\n+      bool: True if bounty value is less than the threshold\n+\n+    \"\"\"\n+    return bounty_value_usdt < settings.LOWBALL_BOUNTY_THRESHOLD","path":"app/dashboard/helpers.py","position":23,"original_position":23,"commit_id":"534e79744fe9c059e15e0468dea6ab162e6169fc","original_commit_id":"534e79744fe9c059e15e0468dea6ab162e6169fc","user":{"login":"owocki","id":513929,"node_id":"MDQ6VXNlcjUxMzkyOQ==","avatar_url":"https://avatars2.githubusercontent.com/u/513929?v=4","gravatar_id":"","url":"https://api.github.com/users/owocki","html_url":"https://github.com/owocki","followers_url":"https://api.github.com/users/owocki/followers","following_url":"https://api.github.com/users/owocki/following{/other_user}","gists_url":"https://api.github.com/users/owocki/gists{/gist_id}","starred_url":"https://api.github.com/users/owocki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/owocki/subscriptions","organizations_url":"https://api.github.com/users/owocki/orgs","repos_url":"https://api.github.com/users/owocki/repos","events_url":"https://api.github.com/users/owocki/events{/privacy}","received_events_url":"https://api.github.com/users/owocki/received_events","type":"User","site_admin":false},"body":"this will result in a TypeError if value_usdt is `None`","created_at":"2019-11-06T14:16:25Z","updated_at":"2019-11-06T14:16:25Z","html_url":"https://github.com/gitcoinco/web/pull/3219#discussion_r343117298","pull_request_url":"https://api.github.com/repos/gitcoinco/web/pulls/3219","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/comments/343117298"},"html":{"href":"https://github.com/gitcoinco/web/pull/3219#discussion_r343117298"},"pull_request":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/3219"}}},"pull_request":{"url":"https://api.github.com/repos/gitcoinco/web/pulls/3219","id":238840809,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM4ODQwODA5","html_url":"https://github.com/gitcoinco/web/pull/3219","diff_url":"https://github.com/gitcoinco/web/pull/3219.diff","patch_url":"https://github.com/gitcoinco/web/pull/3219.patch","issue_url":"https://api.github.com/repos/gitcoinco/web/issues/3219","number":3219,"state":"closed","locked":false,"title":"Send an email if a bounty is funded below a threshold","user":{"login":"oddballbutler","id":5010183,"node_id":"MDQ6VXNlcjUwMTAxODM=","avatar_url":"https://avatars3.githubusercontent.com/u/5010183?v=4","gravatar_id":"","url":"https://api.github.com/users/oddballbutler","html_url":"https://github.com/oddballbutler","followers_url":"https://api.github.com/users/oddballbutler/followers","following_url":"https://api.github.com/users/oddballbutler/following{/other_user}","gists_url":"https://api.github.com/users/oddballbutler/gists{/gist_id}","starred_url":"https://api.github.com/users/oddballbutler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oddballbutler/subscriptions","organizations_url":"https://api.github.com/users/oddballbutler/orgs","repos_url":"https://api.github.com/users/oddballbutler/repos","events_url":"https://api.github.com/users/oddballbutler/events{/privacy}","received_events_url":"https://api.github.com/users/oddballbutler/received_events","type":"User","site_admin":false},"body":"Fixes: https://github.com/gitcoinco/web/issues/2808\r\n\r\n<!--\r\n  Thank you for your pull request! Please review the requirements below, read through the contributor's guide,\r\n  and ensure your pull request has fulfilled all requirements outlined by the Gitcoin Core team.\r\n\r\n  Contributors guide: https://docs.gitcoin.co/mk_contributors/\r\n-->\r\n\r\n##### Description\r\n\r\n<!-- A description of what this PR aims to solve -->\r\nSends a notification email to founders@gitcoin.co if a bounty is below a funding threshold. Currently the threshold is hardcoded to $10 USDT\r\n\r\n##### Checklist\r\n\r\n<!-- For completed items, change [ ] to [x]. -->\r\n\r\n- [x] Read and conforms to the [contributor guidelines](https://docs.gitcoin.co/mk_contributors/)\r\n- [x] Read and conforms to the [style guidelines](https://docs.gitcoin.co/mk_styleguide/)\r\n- [x] Linter status: 100% pass\r\n- [x] Added relevant tests\r\n- [ ] Tests pass and code coverage has not decreased\r\n- [x] Changes don't break existing behavior\r\n- [x] Commit message follows [commit guidelines](https://docs.gitcoin.co/mk_contributors/#step-4-commit)\r\n- [x] [Code documentation](https://docs.gitcoin.co/mk_contributors/#docstrings)\r\n- [ ] Completed: Code review by core team and any requested changes\r\n\r\n##### Affected core subsystem(s)\r\n\r\n<!-- Provide affected core subsystem(s) (like doc, ui, crypto, etc). -->\r\nDashboard backend\r\n\r\n##### Refers/Fixes\r\n\r\n<!--\r\n  Link to an issue if applicable. For example:\r\n  If your PR fixes an issue  -> Fixes: #102, #103\r\n  If your PR refers an issue -> Refs: #101\r\n-->\r\nFixes: #2808\r\n\r\n##### Testing and Sign-off\r\n\r\n<!-- Why should the PR reviewer trust that this change doesn't break anything? How have you tested this change? -->\r\nI wasn't able to run the tests because of the current bug with idna, but I tested it on my local machine. It sent me an email that looks like this:\r\n\r\n> Bounty: © 3: LowBall Bounty, 0.00 ETH @ 16 hours ago\r\n>\r\n>url: http://localhost:8000/issue/oddballbutler/web/1/1620\r\n>\r\n>Owner Name:\r\n>\r\n>Owner Email: oddballbutler@gmail.com\r\n>\r\n>Owner Address: 0xc3461a4edcaf12c12622a8d1c50d5580a04da4a4\r\n>\r\n>Owner Profile: None\r\n\r\n###### Contributor\r\n\r\n- [x] Read and followed the [Contributor Guidelines](https://docs.gitcoin.co/mk_contributors/)\r\n- [x] Tested all changes **locally**\r\n- [x] Verified existing functionality\r\n- [ ] Ran `make test` and everything passed!\r\n\r\n###### Reviewer\r\n\r\n- [ ] Affirm contributor guidelines have been followed and requested changes made\r\n- [ ] CI tests and linting pass\r\n- [ ] No conflicts (migrations, files, etc)\r\n- [ ] Regression tested against staging\r\n\r\n###### Funder\r\n\r\n- [ ] Validated requested changes were made to specification\r\n- [ ] Bounty payout released to the contributor\r\n","created_at":"2018-12-14T20:59:16Z","updated_at":"2019-11-06T14:16:25Z","closed_at":"2019-11-06T02:17:08Z","merged_at":"2019-11-06T02:17:08Z","merge_commit_sha":"61bbb8de729dcedd7a27adbc1af38f526ab77ab2","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/gitcoinco/web/pulls/3219/commits","review_comments_url":"https://api.github.com/repos/gitcoinco/web/pulls/3219/comments","review_comment_url":"https://api.github.com/repos/gitcoinco/web/pulls/comments{/number}","comments_url":"https://api.github.com/repos/gitcoinco/web/issues/3219/comments","statuses_url":"https://api.github.com/repos/gitcoinco/web/statuses/534e79744fe9c059e15e0468dea6ab162e6169fc","head":{"label":"oddballbutler:emailForLowBounty","ref":"emailForLowBounty","sha":"534e79744fe9c059e15e0468dea6ab162e6169fc","user":{"login":"oddballbutler","id":5010183,"node_id":"MDQ6VXNlcjUwMTAxODM=","avatar_url":"https://avatars3.githubusercontent.com/u/5010183?v=4","gravatar_id":"","url":"https://api.github.com/users/oddballbutler","html_url":"https://github.com/oddballbutler","followers_url":"https://api.github.com/users/oddballbutler/followers","following_url":"https://api.github.com/users/oddballbutler/following{/other_user}","gists_url":"https://api.github.com/users/oddballbutler/gists{/gist_id}","starred_url":"https://api.github.com/users/oddballbutler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oddballbutler/subscriptions","organizations_url":"https://api.github.com/users/oddballbutler/orgs","repos_url":"https://api.github.com/users/oddballbutler/repos","events_url":"https://api.github.com/users/oddballbutler/events{/privacy}","received_events_url":"https://api.github.com/users/oddballbutler/received_events","type":"User","site_admin":false},"repo":{"id":160422550,"node_id":"MDEwOlJlcG9zaXRvcnkxNjA0MjI1NTA=","name":"web","full_name":"oddballbutler/web","private":false,"owner":{"login":"oddballbutler","id":5010183,"node_id":"MDQ6VXNlcjUwMTAxODM=","avatar_url":"https://avatars3.githubusercontent.com/u/5010183?v=4","gravatar_id":"","url":"https://api.github.com/users/oddballbutler","html_url":"https://github.com/oddballbutler","followers_url":"https://api.github.com/users/oddballbutler/followers","following_url":"https://api.github.com/users/oddballbutler/following{/other_user}","gists_url":"https://api.github.com/users/oddballbutler/gists{/gist_id}","starred_url":"https://api.github.com/users/oddballbutler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oddballbutler/subscriptions","organizations_url":"https://api.github.com/users/oddballbutler/orgs","repos_url":"https://api.github.com/users/oddballbutler/repos","events_url":"https://api.github.com/users/oddballbutler/events{/privacy}","received_events_url":"https://api.github.com/users/oddballbutler/received_events","type":"User","site_admin":false},"html_url":"https://github.com/oddballbutler/web","description":"Grow Open Source","fork":true,"url":"https://api.github.com/repos/oddballbutler/web","forks_url":"https://api.github.com/repos/oddballbutler/web/forks","keys_url":"https://api.github.com/repos/oddballbutler/web/keys{/key_id}","collaborators_url":"https://api.github.com/repos/oddballbutler/web/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/oddballbutler/web/teams","hooks_url":"https://api.github.com/repos/oddballbutler/web/hooks","issue_events_url":"https://api.github.com/repos/oddballbutler/web/issues/events{/number}","events_url":"https://api.github.com/repos/oddballbutler/web/events","assignees_url":"https://api.github.com/repos/oddballbutler/web/assignees{/user}","branches_url":"https://api.github.com/repos/oddballbutler/web/branches{/branch}","tags_url":"https://api.github.com/repos/oddballbutler/web/tags","blobs_url":"https://api.github.com/repos/oddballbutler/web/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/oddballbutler/web/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/oddballbutler/web/git/refs{/sha}","trees_url":"https://api.github.com/repos/oddballbutler/web/git/trees{/sha}","statuses_url":"https://api.github.com/repos/oddballbutler/web/statuses/{sha}","languages_url":"https://api.github.com/repos/oddballbutler/web/languages","stargazers_url":"https://api.github.com/repos/oddballbutler/web/stargazers","contributors_url":"https://api.github.com/repos/oddballbutler/web/contributors","subscribers_url":"https://api.github.com/repos/oddballbutler/web/subscribers","subscription_url":"https://api.github.com/repos/oddballbutler/web/subscription","commits_url":"https://api.github.com/repos/oddballbutler/web/commits{/sha}","git_commits_url":"https://api.github.com/repos/oddballbutler/web/git/commits{/sha}","comments_url":"https://api.github.com/repos/oddballbutler/web/comments{/number}","issue_comment_url":"https://api.github.com/repos/oddballbutler/web/issues/comments{/number}","contents_url":"https://api.github.com/repos/oddballbutler/web/contents/{+path}","compare_url":"https://api.github.com/repos/oddballbutler/web/compare/{base}...{head}","merges_url":"https://api.github.com/repos/oddballbutler/web/merges","archive_url":"https://api.github.com/repos/oddballbutler/web/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/oddballbutler/web/downloads","issues_url":"https://api.github.com/repos/oddballbutler/web/issues{/number}","pulls_url":"https://api.github.com/repos/oddballbutler/web/pulls{/number}","milestones_url":"https://api.github.com/repos/oddballbutler/web/milestones{/number}","notifications_url":"https://api.github.com/repos/oddballbutler/web/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/oddballbutler/web/labels{/name}","releases_url":"https://api.github.com/repos/oddballbutler/web/releases{/id}","deployments_url":"https://api.github.com/repos/oddballbutler/web/deployments","created_at":"2018-12-04T21:41:52Z","updated_at":"2019-06-21T20:15:31Z","pushed_at":"2019-10-28T18:50:56Z","git_url":"git://github.com/oddballbutler/web.git","ssh_url":"git@github.com:oddballbutler/web.git","clone_url":"https://github.com/oddballbutler/web.git","svn_url":"https://github.com/oddballbutler/web","homepage":"https://gitcoin.co","size":631898,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"gitcoinco:master","ref":"master","sha":"f10b27b78af2bf517d12a8d7e5eb10ab0a2caea4","user":{"login":"gitcoinco","id":30044474,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwMDQ0NDc0","avatar_url":"https://avatars1.githubusercontent.com/u/30044474?v=4","gravatar_id":"","url":"https://api.github.com/users/gitcoinco","html_url":"https://github.com/gitcoinco","followers_url":"https://api.github.com/users/gitcoinco/followers","following_url":"https://api.github.com/users/gitcoinco/following{/other_user}","gists_url":"https://api.github.com/users/gitcoinco/gists{/gist_id}","starred_url":"https://api.github.com/users/gitcoinco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gitcoinco/subscriptions","organizations_url":"https://api.github.com/users/gitcoinco/orgs","repos_url":"https://api.github.com/users/gitcoinco/repos","events_url":"https://api.github.com/users/gitcoinco/events{/privacy}","received_events_url":"https://api.github.com/users/gitcoinco/received_events","type":"Organization","site_admin":false},"repo":{"id":96767206,"node_id":"MDEwOlJlcG9zaXRvcnk5Njc2NzIwNg==","name":"web","full_name":"gitcoinco/web","private":false,"owner":{"login":"gitcoinco","id":30044474,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwMDQ0NDc0","avatar_url":"https://avatars1.githubusercontent.com/u/30044474?v=4","gravatar_id":"","url":"https://api.github.com/users/gitcoinco","html_url":"https://github.com/gitcoinco","followers_url":"https://api.github.com/users/gitcoinco/followers","following_url":"https://api.github.com/users/gitcoinco/following{/other_user}","gists_url":"https://api.github.com/users/gitcoinco/gists{/gist_id}","starred_url":"https://api.github.com/users/gitcoinco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gitcoinco/subscriptions","organizations_url":"https://api.github.com/users/gitcoinco/orgs","repos_url":"https://api.github.com/users/gitcoinco/repos","events_url":"https://api.github.com/users/gitcoinco/events{/privacy}","received_events_url":"https://api.github.com/users/gitcoinco/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/gitcoinco/web","description":"Grow Open Source","fork":false,"url":"https://api.github.com/repos/gitcoinco/web","forks_url":"https://api.github.com/repos/gitcoinco/web/forks","keys_url":"https://api.github.com/repos/gitcoinco/web/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gitcoinco/web/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gitcoinco/web/teams","hooks_url":"https://api.github.com/repos/gitcoinco/web/hooks","issue_events_url":"https://api.github.com/repos/gitcoinco/web/issues/events{/number}","events_url":"https://api.github.com/repos/gitcoinco/web/events","assignees_url":"https://api.github.com/repos/gitcoinco/web/assignees{/user}","branches_url":"https://api.github.com/repos/gitcoinco/web/branches{/branch}","tags_url":"https://api.github.com/repos/gitcoinco/web/tags","blobs_url":"https://api.github.com/repos/gitcoinco/web/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gitcoinco/web/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gitcoinco/web/git/refs{/sha}","trees_url":"https://api.github.com/repos/gitcoinco/web/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gitcoinco/web/statuses/{sha}","languages_url":"https://api.github.com/repos/gitcoinco/web/languages","stargazers_url":"https://api.github.com/repos/gitcoinco/web/stargazers","contributors_url":"https://api.github.com/repos/gitcoinco/web/contributors","subscribers_url":"https://api.github.com/repos/gitcoinco/web/subscribers","subscription_url":"https://api.github.com/repos/gitcoinco/web/subscription","commits_url":"https://api.github.com/repos/gitcoinco/web/commits{/sha}","git_commits_url":"https://api.github.com/repos/gitcoinco/web/git/commits{/sha}","comments_url":"https://api.github.com/repos/gitcoinco/web/comments{/number}","issue_comment_url":"https://api.github.com/repos/gitcoinco/web/issues/comments{/number}","contents_url":"https://api.github.com/repos/gitcoinco/web/contents/{+path}","compare_url":"https://api.github.com/repos/gitcoinco/web/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gitcoinco/web/merges","archive_url":"https://api.github.com/repos/gitcoinco/web/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gitcoinco/web/downloads","issues_url":"https://api.github.com/repos/gitcoinco/web/issues{/number}","pulls_url":"https://api.github.com/repos/gitcoinco/web/pulls{/number}","milestones_url":"https://api.github.com/repos/gitcoinco/web/milestones{/number}","notifications_url":"https://api.github.com/repos/gitcoinco/web/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gitcoinco/web/labels{/name}","releases_url":"https://api.github.com/repos/gitcoinco/web/releases{/id}","deployments_url":"https://api.github.com/repos/gitcoinco/web/deployments","created_at":"2017-07-10T10:53:45Z","updated_at":"2019-11-06T14:02:00Z","pushed_at":"2019-11-06T14:08:10Z","git_url":"git://github.com/gitcoinco/web.git","ssh_url":"git@github.com:gitcoinco/web.git","clone_url":"https://github.com/gitcoinco/web.git","svn_url":"https://github.com/gitcoinco/web","homepage":"https://gitcoin.co","size":616096,"stargazers_count":805,"watchers_count":805,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":464,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1254,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":464,"open_issues":1254,"watchers":805,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/3219"},"html":{"href":"https://github.com/gitcoinco/web/pull/3219"},"issue":{"href":"https://api.github.com/repos/gitcoinco/web/issues/3219"},"comments":{"href":"https://api.github.com/repos/gitcoinco/web/issues/3219/comments"},"review_comments":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/3219/comments"},"review_comment":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/3219/commits"},"statuses":{"href":"https://api.github.com/repos/gitcoinco/web/statuses/534e79744fe9c059e15e0468dea6ab162e6169fc"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"owocki"}}