(count, required_reviewers)
| 17 | |
| 18 | |
| 19 | def check_approval(count, required_reviewers): |
| 20 | json_buff = "" |
| 21 | for line in sys.stdin: |
| 22 | json_buff = "".join([json_buff, line]) |
| 23 | json_resp = json.loads(json_buff) |
| 24 | approves = 0 |
| 25 | approved_user_ids = [] |
| 26 | approved_user_logins = set() |
| 27 | for review in json_resp: |
| 28 | if review["state"] == "APPROVED": |
| 29 | approves += 1 |
| 30 | approved_user_ids.append(review["user"]["id"]) |
| 31 | approved_user_logins.add(review["user"]["login"]) |
| 32 | |
| 33 | # convert to int |
| 34 | required_reviewers_int = set() |
| 35 | required_reviewers_login = set() |
| 36 | for rr in required_reviewers: |
| 37 | if rr.isdigit(): |
| 38 | required_reviewers_int.add(int(rr)) |
| 39 | else: |
| 40 | required_reviewers_login.add(rr) |
| 41 | |
| 42 | if ( |
| 43 | len(set(approved_user_ids) & required_reviewers_int) + len(approved_user_logins & required_reviewers_login) |
| 44 | >= count |
| 45 | ): |
| 46 | print("TRUE") |
| 47 | else: |
| 48 | print("FALSE") |
| 49 | |
| 50 | |
| 51 | if __name__ == "__main__": |
no test coverage detected