Define the Gitcoin Bot action methods for interacting with the Github API as a Github App.

Copyright (C) 2021 Gitcoin Core

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see


Bound(self, *args)

Validate every bound before call the annotated function.


amount_greater_than_zero(*args, **kwargs)

Validate if the specified amount is not negative and greater than zero.


no_active_bounty(owner, repo, issue_id)

Instructions to create a bounty.


parse_comment_currency(comment_text, fallback_currency='ETH')

Get the first token defined in comment_text.


start_work_text(owner, repo, issue_id)

Instructions to start work on current bounty.


submit_work_text(owner, repo, issue_id)

Return the instruction to submit the work associated to the bounty.


submit_work_or_new_bounty_text(owner, repo, issue_id)

Submit work if the bounty exists else show instructions to create one.


get_text_from_query_responses(comment_text, sender)

Based on comment_text an assigned response is returned.