loudr / asana-hub Goto Github PK
View Code? Open in Web Editor NEWTool for creating issues and tasks simultaneously on github and asana, and keeping them in sync.
License: MIT License
Tool for creating issues and tasks simultaneously on github and asana, and keeping them in sync.
License: MIT License
#36700026060614
#36700026060614
Implementing multiprocessing.Pool
to achieve parallel task-issue sync should increase throughput.
#44725003599618
Create an action to sync the 'closed' / 'complete' status between asana tasks and github issues created with this app.
Two versions:
#36084070893433
This occurred specifically when asana-hub sync
fails for reasons like connection errors, etc.
1391) update pipelines library - no task
Process Process-5:
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/Library/Python/2.7/site-packages/asana_hub/transport.py", line 207, in run_worker
worker.run()
File "/Library/Python/2.7/site-packages/asana_hub/transport.py", line 78, in run
method(**packet)
File "/Library/Python/2.7/site-packages/asana_hub/transport.py", line 180, in issue_edit
issue.edit(body=body)
File "/Library/Python/2.7/site-packages/github/Issue.py", line 296, in edit
input=post_parameters
File "/Library/Python/2.7/site-packages/github/Requester.py", line 169, in requestJsonAndCheck
1390) Throttle ALL Music Manager Requests through a queue - cached
return self.__check(*self.requestJson(verb, url, parameters, headers, input, cnx))
File "/Library/Python/2.7/site-packages/github/Requester.py", line 210, in requestJson
return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode)
File "/Library/Python/2.7/site-packages/github/Requester.py", line 247, in __requestEncode
status, responseHeaders, output = self.__requestRaw(cnx, verb, url, requestHeaders, encoded_input)
File "/Library/Python/2.7/site-packages/github/Requester.py", line 271, in __requestRaw
requestHeaders
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 973, in request
self._send_request(method, url, body, headers)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1007, in _send_request
self.endheaders(body)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 969, in endheaders
self._send_output(message_body)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 829, in _send_output
self.send(msg)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 791, in send
self.connect()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1172, in connect
self.timeout, self.source_address)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 571, in create_connection
raise err
timeout: timed out
Will be used for storing issues and tasks for resyncing later.
Asana: #36086260811803
https://app.asana.com/0/36084070893405/36086260811803
#36086260811803
Asana: #36085776784694
https://app.asana.com/0/36084070893405/36085776784694
#36085776784694
#36090140549601
Asana: #36088755124573
https://app.asana.com/0/36084070893405/36088755124573
#36088755124573
#42616216476978
#36700026060610
#36700026060610
Test syncing an asana tasks newly mentioned asana task in description to existing task.
#36700026060600
#36700026060600
#36700026060602
#36700026060604
#36700026060606
hubasana wasn't very romantic...
Asana: #36087061292604
https://app.asana.com/0/36084070893405/36087061292604
#36087061292604
This is best implemented with some special tags that are always created for new workspaces during --sync-labels
.
#42616213779018
Asana: #36089434604514
https://app.asana.com/0/36084070893405/36089434604514
#36089434604514
Github Issues and Asana Tasks could be linked with #ASANATASK
in the description of an issue.
Further, asana-hub sync
should not automatically create asana tasks for issues unless explicitly instructed to do so.
#36695138298865
Iterating over issue_tasks
fails when the set changes, which occurs during the sync process.
Exception: RuntimeError('Set changed size during iteration',)
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/asana_hub/tool.py", line 401, in __init__
action.run()
File "/Library/Python/2.7/site-packages/asana_hub/actions/sync.py", line 278, in run
for task_id in issue_tasks:
RuntimeError: Set changed size during iteration
#42615941001493
#42615938012589
#36700026060614
#36700026060614
Asana: #36088185584636
https://app.asana.com/0/36084070893405/36088185584636
#36089868972163
#36088185584636
Utilize Issue.updated_at to skip changes.
Will need a last_touched_at
for each issue. Also something for the last_label_touched_at
. Combine, make clean, etc.
#42616217578548
Asana: #36086266200420
https://app.asana.com/0/36084070893405/36086266200420
#36086266200420
pr action for creating a pull request on a given github issue. Results in asana PR task being created as a sub-task to the issue's task.
Asana: #36087191722986
https://app.asana.com/0/36084070893405/36087191722986
#36087191722986
#42616212289247
The Asana API key has served as a low barrier to entry means of authenticating against the API. We created it for personal scripts or for rapid prototyping of applications. Applications intended for large scale deployment should implement Asana Connect (OAuth 2.0) for authentication.
While easier to get started with, the API key poses security risks and provides a degraded user experience overall. Because we care deeply about user experience and security of the platform, we are rolling out a deprecation plan for API keys. This means that in the future, these keys will no longer be an acceptable means of authentication and developers will need to migrate to using one of the options below. We understand this will generate work for some developers and we'll do our best to ease the transition to what we strongly believe is a more secure and robust developer ecosystem.
Provide either a new action, or a new option for asana-hub sync
that performs:
git add .asana-hub.proj
git commit -m "asana-hub sync [ci skip]"
This makes the process of asana-hub sync
more streamlined in the git flow.
#42615605021250
Our asana sync project has many issues without tasks at all, and these are shown in the JSON file as:
{
"501": {},
"502": {},
"503": {},
"504": {},
"505": {},
"506": {},
"507": {},
"508": {},
"509": {},
"51": {},
"510": {},
"511": {},
"512": {},
"513": {},
"514": {},
"515": {},
"516": {}
}
This is a lot to store in a text file, is there a means of compressing this information or excluding these items altogether?
#39098625976593
Name says it all.
#36087069961180
Asana: #36089600754616
https://app.asana.com/0/36084070893405/36089600754616
#36089600754616
To prevent syncing archived issues, implement a first-issue
setting to
bypass issues.
--first-issue
setting.--create-missing-tasks
with -c
alias.
#39098890742071
Have an option to sync stories from a github issue to an asana story.
#36090140714766
#36700026060608
#36700026060608
asana notes
were not formatted.
Asana: #36085806275260
https://app.asana.com/0/36084070893405/36085806275260
#36085806275260
Asana raises Exception: ForbiddenError(u'Forbidden: task: Not the correct type',)
.
I'm not exactly sure why asana might say a task isn't the "correct type," but my guess is a merged [duplicate] task.
Exception: ForbiddenError(u'Forbidden: task: Not the correct type',)
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/asana_hub/tool.py", line 401, in __init__
action.run()
File "/Library/Python/2.7/site-packages/asana_hub/actions/sync.py", line 284, in run
task = app.get_asana_task(task_id)
File "/Library/Python/2.7/site-packages/asana_hub/tool.py", line 286, in get_asana_task
return self.asana.tasks.find_by_id(asana_task_id)
File "/Library/Python/2.7/site-packages/asana/resources/gen/tasks.py", line 49, in find_by_id
return self.client.get(path, params, **options)
File "/Library/Python/2.7/site-packages/asana/client.py", line 107, in get
return self.request('get', path, params=query, **options)
File "/Library/Python/2.7/site-packages/asana/client.py", line 77, in request
raise STATUS_MAP[response.status_code](response)
ForbiddenError: Forbidden: task: Not the correct type
#42615939304807
asana-hub sync --sync-checks
(or -x
) should sync checkboxes with sub-tasks.
If notated with another #PR or #ISSUE, closing the PR should trigger the checkbox to close and the sub-task to be completed.
This enables multi-feature issues that require more than one pull request to enable.
#42616215259640
#39098627201922
Asana: #36089758110735
https://app.asana.com/0/36084070893405/36089758110735
#36089936013329
#36089935137957
#36089935939527
#36089935846264
#36089935827625
#36089758110735
Asana: #36088163309216
https://app.asana.com/0/36084070893405/36088163309216
#36088163309216
#44725574291052
No great repo was ever really that great without testing.
We'll use circle-ci for ci.
#42616219258898
Asana: #36086014816044
https://app.asana.com/0/36084070893405/36086014816044
#36086014816044
Asana: #36085818904536
https://app.asana.com/0/36084070893405/36085818904536
#36085818904536
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.