GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 2b3600...b2cfd5 )
by
unknown
41s
created

post_to_bitpay_api()   A

Complexity

Conditions 3

Size

Total Lines 16

Duplication

Lines 16
Ratio 100 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 3
c 2
b 0
f 0
dl 16
loc 16
rs 9.4285
1
from bitpay.bitpay_exceptions import *
2
import bitpay.bitpay_key_utils as bku
3
from bitpay.bitpay_client import *
4
import pprint
5
import requests
6
import json
7
import re
8
import os.path
9
10
#API_HOST = "https://bitpay.com" #for production, live bitcoin
11
API_HOST = "https://test.bitpay.com" #for testing, testnet bitcoin
12
KEY_FILE = "/tmp/key.priv"
13
TOKEN_FILE = "/tmp/token.priv"
14
pp = pprint.PrettyPrinter(indent=4)
15
16
# check if there is a preexisting key file
17
if os.path.isfile(KEY_FILE):
18
    f = open(KEY_FILE, 'r')
19
    key = f.read()
20
    f.close()
21
    print("Creating a bitpay client using existing private key from disk.")
22
else:
23
    key = bku.generate_pem()
24
    f = open(KEY_FILE, 'w')
25
    f.write(key)
26
    f.close()
27
28
client = Client(API_HOST, False, key)
29
30
def fetch_token(facade):
31
    if os.path.isfile(TOKEN_FILE + facade):
32
        f = open(TOKEN_FILE + facade, 'r')
33
        token = f.read()
34
        f.close()
35
        print("Reading " + facade + " token from disk.")
36
        client.tokens[facade] = token
37
    else:
38
        pairingCode = client.create_token(facade)
39
        print("Creating " + facade + " token.")
40
        print("Please go to:  %s/dashboard/merchant/api-tokens  then enter \"%s\" then click the \"Find\" button, then click \"Approve\"" % (API_HOST, pairingCode))
41
        raw_input("When you've complete the above, hit enter to continue...")
42
        print("token is: %s" % client.tokens[facade])
43
        f = open(TOKEN_FILE + facade, 'w')
44
        f.write(client.tokens[facade])
45
        f.close() 
46
47 View Code Duplication
def get_from_bitpay_api(client, uri, token):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
48
    payload = "?token=%s" % token
49
    xidentity = bku.get_compressed_public_key_from_pem(client.pem)
50
    xsignature = bku.sign(uri + payload, client.pem)
51
    headers = {"content-type": "application/json",
52
                "X-Identity": xidentity,
53
                "X-Signature": xsignature, "X-accept-version": "2.0.0"}
54
    try:
55
        pp.pprint(headers)
56
        print(uri + payload)
57
        response = requests.get(uri + payload, headers=headers, verify=client.verify)
58
    except Exception as pro:
59
        raise BitPayConnectionError(pro.args)
60
    if response.ok:
61
        return response.json()['data']
62
    client.response_error(response)
63
64
"""
65
POST to any resource
66
Make sure to include the proper token in the params
67
"""
68 View Code Duplication
def post_to_bitpay_api(client, uri, resource, params):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
69
    payload = json.dumps(params)
70
    uri = uri + "/" + resource
71
    xidentity = key_utils.get_compressed_public_key_from_pem(client.pem)
72
    xsignature = key_utils.sign(uri + payload, client.pem)
73
    headers = {"content-type": "application/json",
74
               "accept": "application/json", "X-Identity": xidentity,
75
               "X-Signature": xsignature, "X-accept-version": "2.0.0"}
76
    try:
77
        response = requests.post(uri, data=payload, headers=headers,
78
                                 verify=client.verify)
79
    except Exception as pro:
80
        raise BitPayConnectionError(pro.args)
81
    if response.ok:
82
        return response.json()['data']
83
    client.response_error(response)
84
85
fetch_token("payroll")
86
87
#create a payroll token
88
token = client.tokens['payroll']
89
print("Creating a payout batch now")
90
print("token = " + token)
91
# posting a payout batch
92
params = {"token":token, "notificationURL":"http://app-1494237706.000webhostapp.com/IPNlogger.php", "notificationEmail":"[email protected]", "effectiveDate":"2017-08-23", "amount":"400","currency":"USD","instructions":[ {"label":"Test1","address":"mzDTjhkfJfatXHRUWKcE2BXxHt4Pfz2PK7","amount":"300"},{"label":"Test2","address":"mfadguj41aYgEwPATAFnkKcKQNqhpNTrdi","amount":"100"}]}
93
payoutBatch = post_to_bitpay_api(client, "https://test.bitpay.com", "payouts", params)
94
pp.pprint(payoutBatch)
95
96