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
Task on associated Project
- test function behavior
- 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/sync endpoint. The endpoint will respond with a list of ProjectGithubRepo records all marked as processed, so we push those into the store.
- the
ProjectGithubRepo component on the integration page now needs a processing state
- 4 hours to implement endpoint behavior
- load
Project, preload all ProjectGithubRepo records, respond with those (we can use update_all with returns: 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
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
ProjectGithubRepo records 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
ProjectGithubRepo is 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
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
ProjectGithubRepoGithubRepoTaskon associatedProjectproject/:id/syncendpoint. The endpoint will respond with a list ofProjectGithubReporecords all marked as processed, so we push those into the store.ProjectGithubRepocomponent on the integration page now needs aprocessingstateProject, preload allProjectGithubReporecords, respond with those (we can useupdate_allwithreturns: true, so it returns updated records.ProjectGithubRepoNotes
We could simplify the processing status and shave an hour or two off by having one async process on the whole
Projectinstead on individualProjectGithubReporecords and have theprocessingflag 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
ProjectGithubReporecords periodically. Otherwise, MPV requires the user to refresh manually.Once we have some real time processing implemented via channels
ProjectGithubRepois processed