48 lines
1.0 KiB
Python
48 lines
1.0 KiB
Python
|
#!/usr/bin/env python
|
||
|
from argparse import ArgumentParser
|
||
|
|
||
|
from py.lib.data.io import get_stream, add_io_arguments
|
||
|
from py.lib.linear import graphql
|
||
|
|
||
|
if __name__ != '__main__':
|
||
|
raise Exception('executable only; must run through scwrypts')
|
||
|
|
||
|
|
||
|
parser = ArgumentParser(description = 'comment on an issue in linear.app')
|
||
|
|
||
|
parser.add_argument(
|
||
|
'-i', '--issue',
|
||
|
dest = 'issue_id',
|
||
|
help = 'issue short-code (e.g. CLOUD-319)',
|
||
|
required = True,
|
||
|
)
|
||
|
|
||
|
parser.add_argument(
|
||
|
'-m', '--message',
|
||
|
dest = 'message',
|
||
|
help = 'comment to post to the target issue',
|
||
|
required = True,
|
||
|
)
|
||
|
|
||
|
add_io_arguments(parser, toggle_input=False)
|
||
|
|
||
|
args = parser.parse_args()
|
||
|
|
||
|
query = f'''
|
||
|
mutation CommentCreate {{
|
||
|
commentCreate(
|
||
|
input: {{
|
||
|
issueId: "{args.issue_id}"
|
||
|
body: """from wrobot:
|
||
|
```
|
||
|
{args.message.strip()}
|
||
|
```"""
|
||
|
}}
|
||
|
) {{ success }}
|
||
|
}}
|
||
|
'''
|
||
|
|
||
|
response = graphql(query)
|
||
|
with get_stream(args.output_file, 'w+') as output:
|
||
|
output.write(response.text)
|