Last active
June 3, 2024 15:36
-
-
Save angysmark/d6fbec3ad559c442d02dd23e1c14d586 to your computer and use it in GitHub Desktop.
Make a GraphQL Appsync client in Python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import os | |
from boto3 import Session as AWSSession | |
from requests_aws4auth import AWS4Auth | |
from gql import gql | |
from gql.client import Client | |
from gql.transport.requests import RequestsHTTPTransport | |
def make_client(): | |
headers = { | |
'Accept': 'application/json', | |
'Content-Type': 'application/json', | |
} | |
aws = AWSSession(aws_access_key_id=os.getenv('AWS_ACCESS_KEY_ID'), | |
aws_secret_access_key=os.getenv('AWS_SECRET_ACCESS_KEY'), | |
region_name=os.getenv('AWS_REGION_NAME')) | |
credentials = aws.get_credentials().get_frozen_credentials() | |
auth = AWS4Auth( | |
credentials.access_key, | |
credentials.secret_key, | |
aws.region_name, | |
'appsync', | |
session_token=credentials.token, | |
) | |
transport = RequestsHTTPTransport(url=os.getenv('APPSYNC_ENDPOINT'), | |
headers=headers, | |
auth=auth) | |
client = Client(transport=transport, | |
fetch_schema_from_transport=True) | |
return client | |
# get_appsync_obj and update_appsync_obj are GraphQL queries in string form. | |
# You can make one using AppSync's query sandbox and copy the text over. | |
from .queries import get_appsync_obj, update_appsync_obj | |
def test_get(): | |
# get_appsync_obj is a GraphQL query in string form. | |
# You can use the query strings from AppSync schema. | |
client = make_client() | |
params = {'id': 1235} | |
resp = client.execute(gql(get_appsync_obj), | |
variable_values=json.dumps(params)) | |
return resp | |
def test_mutation(): | |
client = make_client() | |
params = {'id': 1235, 'state': 'DONE!'} | |
resp = client.execute(gql(update_appsync_obj), | |
variable_values=json.dumps({'input': params})) | |
return resp |
Author
angysmark
commented
Sep 8, 2020
via email
Hey there!
My mistake, I made a couple of comments to explain it, but removed it and
forgot to bring it back.
Basically the queries module is a python file with a bunch of GraphQL
queries in string form. You can make a graphQL query using AppSync's query
sandbox, and just copypaste the text over.
I'll put back the comment for future reference.
Thanks for pointing this out!
…On Tue, Sep 8, 2020 at 3:35 AM Daniel Hutchings ***@***.***> wrote:
***@***.**** commented on this gist.
------------------------------
Hey, thanks for putting this together, I have the same use case and came
across your code. Unfortunately it's failing at the first hurdle, line
39...maybe this is a silly question but where and what is this '.queries'
module?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3444929>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQG24RKKXMLGFG2IOJ6LB5LSEUYWRANCNFSM4Q6ZQIHQ>
.
Hey thanks for getting back to me. I deleted my comment soon after as I
realised exactly what it was and saw the comment you'd added explaining. I
just added it as a string variable in the code and got past that point.
I hate to ask you another question but there doesn't seem to be that much
out there on this...I'm still not getting through to the api and I'm
wondering if I have the details correct.
AWS_ACCESS_KEY_ID = 'AKIAI*********XNAVQ'
AWS_SECRET_ACCESS_KEY = 'I1D0N*************************ApC8eOt5'
AWS_REGION_NAME = 'us-west-2'
APPSYNC_ENDPOINT = 'https://***********************.
appsync-api.us-west-2.amazonaws.com/graphql'
Particularly that endpoint address, does that look right to you? I'm
getting a
Exception: {'errorType': 'UnauthorizedException', 'message': 'You are not
authorized to make this call.'}
Thanks!
Dan
…On Tue, Sep 8, 2020 at 1:21 AM angysmark ***@***.***> wrote:
***@***.**** commented on this gist.
------------------------------
Hey there!
My mistake, I made a couple of comments to explain it, but removed it and
forgot to bring it back.
Basically the queries module is a python file with a bunch of GraphQL
queries in string form. You can make a graphQL query using AppSync's query
sandbox, and just copypaste the text over.
I'll put back the comment for future reference.
Thanks for pointing this out!
On Tue, Sep 8, 2020 at 3:35 AM Daniel Hutchings ***@***.***>
wrote:
> ***@***.**** commented on this gist.
> ------------------------------
>
> Hey, thanks for putting this together, I have the same use case and came
> across your code. Unfortunately it's failing at the first hurdle, line
> 39...maybe this is a silly question but where and what is this '.queries'
> module?
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <
https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3444929
>,
> or unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/AQG24RKKXMLGFG2IOJ6LB5LSEUYWRANCNFSM4Q6ZQIHQ
>
> .
>
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445106>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AJOC55WBM6F6F7BNQ2PMY6TSEV2KHANCNFSM4Q6ZQIHQ>
.
--
Skype: danielhutchings
Tel: +44 7427 855 362 | +34 662 234 419
That seems about right. As the error implies, you might want to check your
permissions for that API key then. I haven't touched this one for a bit so
I'll need more time to double check. It's great to hear that this resource
is actually helping other devs like yourself as I was in the same boat a
couple of months back.
Let me see if I can replicate this issue on my end and I'll get back via
this comment thread.
On Tue, Sep 8, 2020 at 4:03 PM Daniel Hutchings <[email protected]>
wrote:
… ***@***.**** commented on this gist.
------------------------------
Hey thanks for getting back to me. I deleted my comment soon after as I
realised exactly what it was and saw the comment you'd added explaining. I
just added it as a string variable in the code and got past that point.
I hate to ask you another question but there doesn't seem to be that much
out there on this...I'm still not getting through to the api and I'm
wondering if I have the details correct.
AWS_ACCESS_KEY_ID = 'AKIAI*********XNAVQ'
AWS_SECRET_ACCESS_KEY = 'I1D0N*************************ApC8eOt5'
AWS_REGION_NAME = 'us-west-2'
APPSYNC_ENDPOINT = 'https://***********************.
appsync-api.us-west-2.amazonaws.com/graphql'
Particularly that endpoint address, does that look right to you? I'm
getting a
Exception: {'errorType': 'UnauthorizedException', 'message': 'You are not
authorized to make this call.'}
Thanks!
Dan
On Tue, Sep 8, 2020 at 1:21 AM angysmark ***@***.***> wrote:
> ***@***.**** commented on this gist.
> ------------------------------
> Hey there!
>
> My mistake, I made a couple of comments to explain it, but removed it and
> forgot to bring it back.
>
> Basically the queries module is a python file with a bunch of GraphQL
> queries in string form. You can make a graphQL query using AppSync's
query
> sandbox, and just copypaste the text over.
>
> I'll put back the comment for future reference.
>
> Thanks for pointing this out!
>
>
>
>
>
>
>
>
> On Tue, Sep 8, 2020 at 3:35 AM Daniel Hutchings <
***@***.***>
> wrote:
>
> > ***@***.**** commented on this gist.
> > ------------------------------
> >
> > Hey, thanks for putting this together, I have the same use case and
came
> > across your code. Unfortunately it's failing at the first hurdle, line
> > 39...maybe this is a silly question but where and what is this
'.queries'
> > module?
> >
> > —
> > You are receiving this because you authored the thread.
> > Reply to this email directly, view it on GitHub
> > <
>
https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3444929
> >,
> > or unsubscribe
> > <
>
https://github.com/notifications/unsubscribe-auth/AQG24RKKXMLGFG2IOJ6LB5LSEUYWRANCNFSM4Q6ZQIHQ
> >
> > .
> >
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <
https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445106
>,
> or unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/AJOC55WBM6F6F7BNQ2PMY6TSEV2KHANCNFSM4Q6ZQIHQ
>
> .
>
--
Skype: danielhutchings
Tel: +44 7427 855 362 | +34 662 234 419
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445501>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQG24RMHGRLSPDD3LUCSAITSEXQMLANCNFSM4Q6ZQIHQ>
.
Ok, thanks so much, I will check my side too and persevere as best I can.
You can probably tell from that snippet, but just to be clear I hardcoded
the variables into the code rather than put them in the environment
variables, just to get something up and running quickly. Cheers, Dan
…On Tue, Sep 8, 2020 at 9:34 AM angysmark ***@***.***> wrote:
***@***.**** commented on this gist.
------------------------------
That seems about right. As the error implies, you might want to check your
permissions for that API key then. I haven't touched this one for a bit so
I'll need more time to double check. It's great to hear that this resource
is actually helping other devs like yourself as I was in the same boat a
couple of months back.
Let me see if I can replicate this issue on my end and I'll get back via
this comment thread.
On Tue, Sep 8, 2020 at 4:03 PM Daniel Hutchings ***@***.***>
wrote:
> ***@***.**** commented on this gist.
> ------------------------------
> Hey thanks for getting back to me. I deleted my comment soon after as I
> realised exactly what it was and saw the comment you'd added explaining.
I
> just added it as a string variable in the code and got past that point.
>
> I hate to ask you another question but there doesn't seem to be that much
> out there on this...I'm still not getting through to the api and I'm
> wondering if I have the details correct.
>
>
> AWS_ACCESS_KEY_ID = 'AKIAI*********XNAVQ'
> AWS_SECRET_ACCESS_KEY = 'I1D0N*************************ApC8eOt5'
> AWS_REGION_NAME = 'us-west-2'
> APPSYNC_ENDPOINT = 'https://***********************.
> appsync-api.us-west-2.amazonaws.com/graphql'
>
> Particularly that endpoint address, does that look right to you? I'm
> getting a
> Exception: {'errorType': 'UnauthorizedException', 'message': 'You are not
> authorized to make this call.'}
>
> Thanks!
>
> Dan
>
>
>
> On Tue, Sep 8, 2020 at 1:21 AM angysmark ***@***.***>
wrote:
>
> > ***@***.**** commented on this gist.
> > ------------------------------
> > Hey there!
> >
> > My mistake, I made a couple of comments to explain it, but removed it
and
> > forgot to bring it back.
> >
> > Basically the queries module is a python file with a bunch of GraphQL
> > queries in string form. You can make a graphQL query using AppSync's
> query
> > sandbox, and just copypaste the text over.
> >
> > I'll put back the comment for future reference.
> >
> > Thanks for pointing this out!
> >
> >
> >
> >
> >
> >
> >
> >
> > On Tue, Sep 8, 2020 at 3:35 AM Daniel Hutchings <
> ***@***.***>
> > wrote:
> >
> > > ***@***.**** commented on this gist.
> > > ------------------------------
> > >
> > > Hey, thanks for putting this together, I have the same use case and
> came
> > > across your code. Unfortunately it's failing at the first hurdle,
line
> > > 39...maybe this is a silly question but where and what is this
> '.queries'
> > > module?
> > >
> > > —
> > > You are receiving this because you authored the thread.
> > > Reply to this email directly, view it on GitHub
> > > <
> >
>
https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3444929
> > >,
> > > or unsubscribe
> > > <
> >
>
https://github.com/notifications/unsubscribe-auth/AQG24RKKXMLGFG2IOJ6LB5LSEUYWRANCNFSM4Q6ZQIHQ
> > >
> > > .
> > >
> >
> > —
> > You are receiving this because you commented.
> > Reply to this email directly, view it on GitHub
> > <
>
https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445106
> >,
> > or unsubscribe
> > <
>
https://github.com/notifications/unsubscribe-auth/AJOC55WBM6F6F7BNQ2PMY6TSEV2KHANCNFSM4Q6ZQIHQ
> >
> > .
> >
>
>
> --
>
> Skype: danielhutchings
> Tel: +44 7427 855 362 | +34 662 234 419
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <
https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445501
>,
> or unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/AQG24RMHGRLSPDD3LUCSAITSEXQMLANCNFSM4Q6ZQIHQ
>
> .
>
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445532>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AJOC55WFLBV76LQWHHGBWOTSEXUBTANCNFSM4Q6ZQIHQ>
.
--
Skype: danielhutchings
Tel: +44 7427 855 362 | +34 662 234 419
Hey, just to let you know, I cracked it, it was an issue my side of
course...the authentication mode was set to api key, hence it wouldn't
work. In the appsync settings I went to 'Default authorization settings',
and set the drop down menu to 'AWS Identity and Access Management (IAM),
hit save at the bottom of the settings page, worked immediately. Thanks
again for your help, cheers,
Dan
On Tue, Sep 8, 2020 at 9:38 AM Daniel Hutchings <
[email protected]> wrote:
… Ok, thanks so much, I will check my side too and persevere as best I can.
You can probably tell from that snippet, but just to be clear I hardcoded
the variables into the code rather than put them in the environment
variables, just to get something up and running quickly. Cheers, Dan
On Tue, Sep 8, 2020 at 9:34 AM angysmark ***@***.***> wrote:
> ***@***.**** commented on this gist.
> ------------------------------
> That seems about right. As the error implies, you might want to check your
> permissions for that API key then. I haven't touched this one for a bit so
> I'll need more time to double check. It's great to hear that this resource
> is actually helping other devs like yourself as I was in the same boat a
> couple of months back.
>
> Let me see if I can replicate this issue on my end and I'll get back via
> this comment thread.
>
> On Tue, Sep 8, 2020 at 4:03 PM Daniel Hutchings ***@***.***
> >
> wrote:
>
> > ***@***.**** commented on this gist.
> > ------------------------------
> > Hey thanks for getting back to me. I deleted my comment soon after as I
> > realised exactly what it was and saw the comment you'd added
> explaining. I
> > just added it as a string variable in the code and got past that point.
> >
> > I hate to ask you another question but there doesn't seem to be that
> much
> > out there on this...I'm still not getting through to the api and I'm
> > wondering if I have the details correct.
> >
> >
> > AWS_ACCESS_KEY_ID = 'AKIAI*********XNAVQ'
> > AWS_SECRET_ACCESS_KEY = 'I1D0N*************************ApC8eOt5'
> > AWS_REGION_NAME = 'us-west-2'
> > APPSYNC_ENDPOINT = 'https://***********************.
> > appsync-api.us-west-2.amazonaws.com/graphql'
> >
> > Particularly that endpoint address, does that look right to you? I'm
> > getting a
> > Exception: {'errorType': 'UnauthorizedException', 'message': 'You are
> not
> > authorized to make this call.'}
> >
> > Thanks!
> >
> > Dan
> >
> >
> >
> > On Tue, Sep 8, 2020 at 1:21 AM angysmark ***@***.***>
> wrote:
> >
> > > ***@***.**** commented on this gist.
> > > ------------------------------
> > > Hey there!
> > >
> > > My mistake, I made a couple of comments to explain it, but removed it
> and
> > > forgot to bring it back.
> > >
> > > Basically the queries module is a python file with a bunch of GraphQL
> > > queries in string form. You can make a graphQL query using AppSync's
> > query
> > > sandbox, and just copypaste the text over.
> > >
> > > I'll put back the comment for future reference.
> > >
> > > Thanks for pointing this out!
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > On Tue, Sep 8, 2020 at 3:35 AM Daniel Hutchings <
> > ***@***.***>
> > > wrote:
> > >
> > > > ***@***.**** commented on this gist.
> > > > ------------------------------
> > > >
> > > > Hey, thanks for putting this together, I have the same use case and
> > came
> > > > across your code. Unfortunately it's failing at the first hurdle,
> line
> > > > 39...maybe this is a silly question but where and what is this
> > '.queries'
> > > > module?
> > > >
> > > > —
> > > > You are receiving this because you authored the thread.
> > > > Reply to this email directly, view it on GitHub
> > > > <
> > >
> >
> https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3444929
> > > >,
> > > > or unsubscribe
> > > > <
> > >
> >
> https://github.com/notifications/unsubscribe-auth/AQG24RKKXMLGFG2IOJ6LB5LSEUYWRANCNFSM4Q6ZQIHQ
> > > >
> > > > .
> > > >
> > >
> > > —
> > > You are receiving this because you commented.
> > > Reply to this email directly, view it on GitHub
> > > <
> >
> https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445106
> > >,
> > > or unsubscribe
> > > <
> >
> https://github.com/notifications/unsubscribe-auth/AJOC55WBM6F6F7BNQ2PMY6TSEV2KHANCNFSM4Q6ZQIHQ
> > >
> > > .
> > >
> >
> >
> > --
> >
> > Skype: danielhutchings
> > Tel: +44 7427 855 362 | +34 662 234 419
> >
> > —
> > You are receiving this because you authored the thread.
> > Reply to this email directly, view it on GitHub
> > <
> https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445501
> >,
> > or unsubscribe
> > <
> https://github.com/notifications/unsubscribe-auth/AQG24RMHGRLSPDD3LUCSAITSEXQMLANCNFSM4Q6ZQIHQ
> >
> > .
> >
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445532>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AJOC55WFLBV76LQWHHGBWOTSEXUBTANCNFSM4Q6ZQIHQ>
> .
>
--
Skype: danielhutchings
Tel: +44 7427 855 362 | +34 662 234 419
--
Skype: danielhutchings
Tel: +44 7427 855 362 | +34 662 234 419
No problem. Glad you managed to fix it!
On Tue, 8 Sep 2020, 7:50 pm Daniel Hutchings, <[email protected]>
wrote:
… ***@***.**** commented on this gist.
------------------------------
Hey, just to let you know, I cracked it, it was an issue my side of
course...the authentication mode was set to api key, hence it wouldn't
work. In the appsync settings I went to 'Default authorization settings',
and set the drop down menu to 'AWS Identity and Access Management (IAM),
hit save at the bottom of the settings page, worked immediately. Thanks
again for your help, cheers,
Dan
On Tue, Sep 8, 2020 at 9:38 AM Daniel Hutchings <
***@***.***> wrote:
> Ok, thanks so much, I will check my side too and persevere as best I can.
> You can probably tell from that snippet, but just to be clear I hardcoded
> the variables into the code rather than put them in the environment
> variables, just to get something up and running quickly. Cheers, Dan
>
> On Tue, Sep 8, 2020 at 9:34 AM angysmark ***@***.***>
wrote:
>
>> ***@***.**** commented on this gist.
>> ------------------------------
>> That seems about right. As the error implies, you might want to check
your
>> permissions for that API key then. I haven't touched this one for a bit
so
>> I'll need more time to double check. It's great to hear that this
resource
>> is actually helping other devs like yourself as I was in the same boat a
>> couple of months back.
>>
>> Let me see if I can replicate this issue on my end and I'll get back via
>> this comment thread.
>>
>> On Tue, Sep 8, 2020 at 4:03 PM Daniel Hutchings <
***@***.***
>> >
>> wrote:
>>
>> > ***@***.**** commented on this gist.
>> > ------------------------------
>> > Hey thanks for getting back to me. I deleted my comment soon after as
I
>> > realised exactly what it was and saw the comment you'd added
>> explaining. I
>> > just added it as a string variable in the code and got past that
point.
>> >
>> > I hate to ask you another question but there doesn't seem to be that
>> much
>> > out there on this...I'm still not getting through to the api and I'm
>> > wondering if I have the details correct.
>> >
>> >
>> > AWS_ACCESS_KEY_ID = 'AKIAI*********XNAVQ'
>> > AWS_SECRET_ACCESS_KEY = 'I1D0N*************************ApC8eOt5'
>> > AWS_REGION_NAME = 'us-west-2'
>> > APPSYNC_ENDPOINT = 'https://***********************.
>> > appsync-api.us-west-2.amazonaws.com/graphql'
>> >
>> > Particularly that endpoint address, does that look right to you? I'm
>> > getting a
>> > Exception: {'errorType': 'UnauthorizedException', 'message': 'You are
>> not
>> > authorized to make this call.'}
>> >
>> > Thanks!
>> >
>> > Dan
>> >
>> >
>> >
>> > On Tue, Sep 8, 2020 at 1:21 AM angysmark ***@***.***>
>> wrote:
>> >
>> > > ***@***.**** commented on this gist.
>> > > ------------------------------
>> > > Hey there!
>> > >
>> > > My mistake, I made a couple of comments to explain it, but removed
it
>> and
>> > > forgot to bring it back.
>> > >
>> > > Basically the queries module is a python file with a bunch of
GraphQL
>> > > queries in string form. You can make a graphQL query using AppSync's
>> > query
>> > > sandbox, and just copypaste the text over.
>> > >
>> > > I'll put back the comment for future reference.
>> > >
>> > > Thanks for pointing this out!
>> > >
>> > >
>> > >
>> > >
>> > >
>> > >
>> > >
>> > >
>> > > On Tue, Sep 8, 2020 at 3:35 AM Daniel Hutchings <
>> > ***@***.***>
>> > > wrote:
>> > >
>> > > > ***@***.**** commented on this gist.
>> > > > ------------------------------
>> > > >
>> > > > Hey, thanks for putting this together, I have the same use case
and
>> > came
>> > > > across your code. Unfortunately it's failing at the first hurdle,
>> line
>> > > > 39...maybe this is a silly question but where and what is this
>> > '.queries'
>> > > > module?
>> > > >
>> > > > —
>> > > > You are receiving this because you authored the thread.
>> > > > Reply to this email directly, view it on GitHub
>> > > > <
>> > >
>> >
>>
https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3444929
>> > > >,
>> > > > or unsubscribe
>> > > > <
>> > >
>> >
>>
https://github.com/notifications/unsubscribe-auth/AQG24RKKXMLGFG2IOJ6LB5LSEUYWRANCNFSM4Q6ZQIHQ
>> > > >
>> > > > .
>> > > >
>> > >
>> > > —
>> > > You are receiving this because you commented.
>> > > Reply to this email directly, view it on GitHub
>> > > <
>> >
>>
https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445106
>> > >,
>> > > or unsubscribe
>> > > <
>> >
>>
https://github.com/notifications/unsubscribe-auth/AJOC55WBM6F6F7BNQ2PMY6TSEV2KHANCNFSM4Q6ZQIHQ
>> > >
>> > > .
>> > >
>> >
>> >
>> > --
>> >
>> > Skype: danielhutchings
>> > Tel: +44 7427 855 362 | +34 662 234 419
>> >
>> > —
>> > You are receiving this because you authored the thread.
>> > Reply to this email directly, view it on GitHub
>> > <
>>
https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445501
>> >,
>> > or unsubscribe
>> > <
>>
https://github.com/notifications/unsubscribe-auth/AQG24RMHGRLSPDD3LUCSAITSEXQMLANCNFSM4Q6ZQIHQ
>> >
>> > .
>> >
>>
>> —
>> You are receiving this because you commented.
>> Reply to this email directly, view it on GitHub
>> <
https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445532
>,
>> or unsubscribe
>> <
https://github.com/notifications/unsubscribe-auth/AJOC55WFLBV76LQWHHGBWOTSEXUBTANCNFSM4Q6ZQIHQ
>
>> .
>>
>
>
> --
>
> Skype: danielhutchings
> Tel: +44 7427 855 362 | +34 662 234 419
>
--
Skype: danielhutchings
Tel: +44 7427 855 362 | +34 662 234 419
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<https://gist.github.com/d6fbec3ad559c442d02dd23e1c14d586#gistcomment-3445725>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQG24RLP3S6W662QYYR7HSTSEYLAZANCNFSM4Q6ZQIHQ>
.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment