-
Notifications
You must be signed in to change notification settings - Fork 85
Description
Blocked by #1131
The process imports all issues and comments from the github repo into the codecorps project.
Later on, we should refines the process further so it potentially does not happen automatically, or, at least, requires confirmation from the user and shows some progress information on the UI.
This issue should serve as a good place for discussing it.
Potential concerns
The github repo that just got linked to the current project may have also been previously linked to other projects
This is not really a problem, since we only sync from github to cc, not the other way around.
Time assessments
- 4 hours to create function (in a suitable new or existing module) which, for a provided
ProjectGithubRepo- pulls list of issues for associated
GithubRepo - for each issue, creates
Taskon associatedProject - test function behavior
- pulls list of issues for associated
- 3 hours to, on the ember side of things, add a "sync now" button on the project integration page, which hits a new
project/:id/syncendpoint. The endpoint will respond with a list ofProjectGithubReporecords all marked as processed, so we push those into the store.- the
ProjectGithubRepocomponent on the integration page now needs aprocessingstate
- the
- 4 hours to implement endpoint behavior
- load
Project, preload allProjectGithubReporecords, respond with those (we can useupdate_allwithreturns: true, so it returns updated records. - launch an async process which for each
ProjectGithubRepo- launches function from step 1
- tags as processed when done
- test
- load
Notes
We could simplify the processing status and shave an hour or two off by having one async process on the whole Project instead on individual ProjectGithubRepo records and have the processing flag on the project itself. However, that would end up being more hours in total, if we want to switch to step-based later.
Future enhancements
Before we have real time processing via channels
- 2 hours to have the integration page check for progress from the server, by refreshing the
ProjectGithubReporecords periodically. Otherwise, MPV requires the user to refresh manually.
Once we have some real time processing implemented via channels
- 1 hour to notify client via channel when a
ProjectGithubRepois processed - 0 additional hours for the client to handle this, since presumably, this will be implemented as a generalized solution at a service/adapter level