{
  "name": "start",
  "guards": ["isGitApi"],
  "arguments": ["newIssueNumber"],
  "description": "Comando para iniciar un requerimiento. Automatiza las acciones cuando se arranca un requerimiento nuevo",
  "steps": [
    {
      "name": "validate issue",
      "function": "validateIssue",
      "arguments": ["${newIssueNumber}", "Todo"],
      "description": "Valida que Issue este en la Columna Todo",
      "errorMessage": "Por favor verifique que el issue ${newIssueNumber} este en la columna Todo"
    },
    {
      "name": "check Issue type based on Labels",
      "function": "checkIssueType",
      "arguments": ["${newIssueNumber}"],
      "description": "Verifica si el issueType es de Desarrollo o No segun los labels (no desa son automation, documentation)"
    },
    { "subtask": "checkout-branch", "arguments": ["${newBranchName}"] },
    {
      "name": "Mueve el issue a In Progress",
      "function": "moveIssue",
      "arguments": ["${newIssueNumber}", "In Progress"],
      "errorMessage": "No se pudo mover el issue a inprogress, hagalo manualmente"
    },
    {
      "name": "Me Asigna el issue",
      "function": "assignIssueToMe",
      "arguments": ["${newIssueNumber}"],
      "errorMessage": "No se pudo pudo asignar la branch (${newBranchName}) al issue. Por favor hagalo manualmente",
      "onError": "skip"
    },
    {
      "name": "Pone la branch en el issue",
      "function": "assignBranchToIssue",
      "arguments": {
        "newBranchName": "${newBranchName}",
        "issueNumber": "${newIssueNumber}"
      },
      "errorMessage": "No se pudo asignar la branch ${newBranchName} al issue ${newIssueNumber}. Hagalo manualmente",
      "onError": "skip"
    },
    {
      "name": "Asocia la branch con el remote",
      "command": "git push -u origin",
      "arguments": ["${newBranchName}"],
      "errorMessage": "No se pudo asociar la branch ${newBranchNamed} al remote. verifique con git branch -vv "
    },
    {
      "criteria": { "field": "isNewDevelopment", "value": true },
      "subtask": "create-scratch",
      "arguments": {
        "scratchName": "${newBranchName}",
        "dias": "${defaultDias}",
        "permissionSet": "${permissionSet}"
      }
    }
  ]
}
