Note - branch/version is a bit blurry, but we can think of version as another 'main' branch that is being actively worked on. ex: epics 3 vs 7, both 3 and 7 are actively getting fixes.

Create Issue:

'headers': {
 	"linux_username": "string",
	"github_username": "string" 
},
'body': {
	"caterNumber": "string"
	"component": "string"
	"issueTracker": "string", // OPTIONAL, typically provided in the component DB
}

Behavior/Flow

  1. Given the input information, the backend creates an issue on the appropriate issueTracker.
  2. Typically the issueTracker is contained in the component DB, but the user can specify issueTracker to override.
  3. Using information on the cater backend returns a link to new issue.
  4. Ideally a comment is added to both the cater and the new issue cross-referencing each other

Return

{
	"error": "string"
	"issueUrl": "string"
}


Add new version for active development on component - TBD:

'headers': {
 	"linux_username": "string",
	"github_username": "string" 
},
'body': {
	"component": "string"
	"version": "string"
}

TBD

Create new branch

'headers': {
 	"linux_username": "string",
	"github_username": "string" 
},
'body': {
	"component": "string"
	"branch": "string" 		// Name of newly created branch
}

Behavior/Flow

  1. User creates the new branch using the CLI
  2. CLI notifies the backend that the branch has been created
  3. Backend records to branches_in_development_schema

Returns 

{
	"error": "string"
}


Checkout component

'headers': {
 	"linux_username": "string",
	"github_username": "string" 
},
'body': {
	"component": "string"
	"branch": "string"
}

Behavior/Flow

  1. Not clear that this is actually needed - but if we need 'eco' like functionality, we might implement this

Returns nothing

Push 

// Any reason we can't use git directly?

Behavior/Flow

  1. Not clear that this is actually needed

Returns nothing

Mark complete (use when a dev is done, to notify backend the development is considered done)

'headers': {
 	"linux_username": "string",
	"github_username": "string" 
},
'body': {
	"component": "string"
	"branch": "string"
	"isComplete": bool
}

Behavior/Flow

  1. Using the input information, the backend sets the developmentComplete field on the branches_in_development_schema appropriately.

Returns

{
	"error": "string"
}


Start Build (called by runner / cli)

'headers': {
 	"linux_username": "string",
	"github_username": "string" 
},
'body': {
  	"component": "string"
	"branch": "string"   
}

Behavior/Flow

  1. Using the information above, the backend starts an appropriate build container based on component DB. 
  2. Passes the build command from the component DB to the container
  3. Returns a URL to allow tracking the build

Returns 

{
	"error": "string"
	"url": "string"		// Where to monitor the build progress
}



  • No labels