There should be the following endpoints (this is obviously up for discussion but I think it's pretty well designed):
POST to /github_accounts -> Authorizes github account (cheap but may require redirect to github)
GET of /github_accounts/:id -> Returns data about importable projects for project (expensive)
GET of /github_accounts -> Returns data about importable projects for all projects (very expensive)
DETETE of /github_accounts/:id -> Deauths github account (and probably deletes DB row as well)
POST to /github_project with { github_account: ID, project_id: ID } -> Imports project and kicks off ticket import, etc.
PUT to /skill_set/:id with { github_account: ID } -> Analyzes skills on a github account and modifies the skill_set with them (this will be a async job)
There should be the following endpoints (this is obviously up for discussion but I think it's pretty well designed):
POST to /github_accounts -> Authorizes github account (cheap but may require redirect to github) GET of /github_accounts/:id -> Returns data about importable projects for project (expensive) GET of /github_accounts -> Returns data about importable projects for all projects (very expensive) DETETE of /github_accounts/:id -> Deauths github account (and probably deletes DB row as well) POST to /github_project with { github_account: ID, project_id: ID } -> Imports project and kicks off ticket import, etc. PUT to /skill_set/:id with { github_account: ID } -> Analyzes skills on a github account and modifies the skill_set with them (this will be a async job)