autoforce 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +85 -7
  2. package/commands/modelA/new/issue.json +40 -0
  3. package/commands/modelA/new/process.json +21 -0
  4. package/commands/modelA/subtasks/checkout-branch.json +60 -0
  5. package/commands/modelA/subtasks/create-pull.json +20 -0
  6. package/commands/modelA/subtasks/create-scratch.json +84 -0
  7. package/commands/modelA/subtasks/deploy-code.json +17 -0
  8. package/commands/modelA/subtasks/drop-scratch.json +17 -0
  9. package/commands/modelA/subtasks/package-code.json +3 -0
  10. package/commands/modelA/subtasks/publish-branch.json +20 -0
  11. package/commands/modelA/subtasks/update-documentation.json +8 -0
  12. package/commands/modelA/subtasks/validate-code.json +29 -0
  13. package/commands/modelA/subtasks/validate-scratch.json +14 -0
  14. package/commands/modelA/tasks/cancel.json +6 -0
  15. package/commands/modelA/tasks/deploy.json +6 -0
  16. package/commands/modelA/tasks/finish.json +41 -0
  17. package/commands/modelA/tasks/rollback.json +6 -0
  18. package/commands/modelA/tasks/start.json +60 -0
  19. package/commands/modelA/tasks/stop.json +32 -0
  20. package/commands/modelA/tasks/switch.json +53 -0
  21. package/commands/modelA/tasks/view.json +12 -0
  22. package/lib/auto.js +30 -15
  23. package/lib/helpers/class.js +2 -2
  24. package/lib/helpers/color.d.ts +1 -0
  25. package/lib/helpers/color.js +4 -1
  26. package/lib/helpers/context.d.ts +14 -2
  27. package/lib/helpers/context.js +60 -35
  28. package/lib/helpers/lwc.js +2 -2
  29. package/lib/helpers/metadata.js +2 -2
  30. package/lib/helpers/object.js +2 -2
  31. package/lib/helpers/tasks.js +10 -5
  32. package/lib/helpers/util.d.ts +18 -4
  33. package/lib/helpers/util.js +104 -5
  34. package/package.json +12 -4
  35. package/templates/dictionary/class-all.md +9 -0
  36. package/templates/dictionary/class-diagrama.md +13 -0
  37. package/templates/dictionary/class-inner.md +19 -0
  38. package/templates/dictionary/class-metodos.md +15 -0
  39. package/templates/dictionary/class-public.md +13 -0
  40. package/templates/dictionary/class-referencias.md +5 -0
  41. package/templates/dictionary/class.md +29 -0
  42. package/templates/dictionary/classes.md +52 -0
  43. package/templates/dictionary/object.md +35 -0
  44. package/templates/dictionary/objects.md +63 -0
  45. package/templates/intro.md +20 -0
  46. package/templates/process.md +23 -0
  47. package/templates/story.md +32 -0
  48. package/templates/usecase.md +52 -0
package/README.md CHANGED
@@ -1,8 +1,12 @@
1
1
  # Autoforce
2
2
 
3
+ El proyecto esta en Beta todavia, recien fue migrado a Typescript y paso de ser unos scripts aislados a un modulo que se puede instalar y ejecutar directamente tipo CLI.
4
+
5
+
3
6
  ## Objetivo
4
7
 
5
- La idea de la herramienta era facilitar y automatizar las tareas comunes que realizamos los desarrolladores. A medida que pasa el tiempo tenemos cada vez mas herramientas diarias y especificas, pero las tareas en si son las misma, queremos arrancar a desarrollar algo nuevo (start), terminar el desarrollo(finish), dejarlo a un costado (stop), o bien cancelarlo (cancel).
8
+ La motivacion de crear la herramienta fue facilitar y automatizar las tareas comunes que realizamos los desarrolladores, especialmente los que utilizacion Salesforce.
9
+ A medida que pasa el tiempo tenemos cada vez mas herramientas diarias y especificas, pero las tareas en si son las mismas, queremos arrancar a desarrollar algo nuevo (start), terminar el desarrollo(finish), o bien dejarlo a un costado (stop), y posiblemente cancelar por completo alguno (cancel).
6
10
 
7
11
  En este repo las tareas buscan automatizar o integrar el siguiente tipo gestiones:
8
12
 
@@ -13,18 +17,92 @@ En este repo las tareas buscan automatizar o integrar el siguiente tipo gestione
13
17
  - Calidad de codigo (PMD)
14
18
  - Uso de IA ( OpenAI, )
15
19
 
20
+
21
+ ## Roadmap Status
22
+
23
+ 1. Modelos
24
+ - [Model A] "Procesos de Negocio en Clientes de Salesforce": 70%
25
+ Salesforce: Scratchs con Tracking y deploys usando sf cli
26
+ Documentacion: Markdowns de Procesos con Github pages
27
+ Gestion de Proyecto: Github Project
28
+ Source Control: Github
29
+ Branching Strategy: Github workflow
30
+
31
+ - [Model B] "Desarrollo de Producto": 0%
32
+
33
+ - [Custom] "Modelo configurado fuera de la herramienta"
34
+
35
+ 2. Github Services
36
+ - Github: Listo
37
+ - Gitlab: 20%
38
+ - Bitbucket: 0%
39
+
40
+ 3. Project Services
41
+ - Github: Listo
42
+ - Gitlab: 0%
43
+ - Jira: 0%
44
+
45
+ 4. Documentation Services
46
+ - Object: 90%
47
+ - Classes: 80%
48
+ - LWC: 10%
49
+
50
+ 5. IA
51
+ - Code creation: 0%
52
+ - Test classes: 0%
53
+ - Commit Messages: 0%
54
+ - Code Reviewer: 0%
55
+ - Documentation: 0%
56
+
57
+
58
+
59
+
16
60
  ## Instalación
17
61
 
18
62
  ```
19
- yarn add -D
63
+ yarn add -D autoforce
64
+ ```
65
+
66
+ Chequear instalacion
67
+
68
+ ```
69
+ npx autoforce version
20
70
  ```
21
71
 
72
+
22
73
  ## Usos
74
+ Una vez instalado se puede crear scripts a medida o bien ejecutar
75
+
76
+ ```
77
+ npx autoforce <<comando>>
78
+ ```
79
+
80
+ Los comandos son
81
+
82
+ * help
83
+ * version
84
+ * config
85
+ * task <<taskname>> <<opciones>>
86
+ * subtask <<subtaskname>> <<opciones>>
87
+ * new <<template>>
88
+
89
+ Si no se ingresa ningun comando asume que es task
90
+
91
+ Y si no se ingresan parametros, tiene un modo asistido que los va a ir preguntando. Por ejemplo para el comando new, dara una lista de opciones de acuerdo a los templates.
92
+
23
93
 
24
94
 
95
+
96
+ ## Testear una version
97
+
98
+ Para hacer un testeo local se puede generar una version nueva
99
+
100
+ ```
101
+ yarn build && yarn pack
102
+ ```
103
+
104
+ Y despues en algun proyecto se puede instalar
105
+
106
+ ```
107
+ yarn add -D files:<<path-to-file>>
25
108
  ```
26
- "@docusaurus/core": "^3.0.1",
27
- "@docusaurus/preset-classic": "^3.0.1",
28
- "@docusaurus/theme-mermaid": "^3.0.1",
29
- "docusaurus-plugin-drawio": "^0.4.0",
30
- ```
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "issue",
3
+ "guards": ["isGitApi"],
4
+ "arguments": {
5
+ "title": { "required": true },
6
+ "label": {
7
+ "type": "select",
8
+ "choices": [
9
+ {
10
+ "title": "Automation",
11
+ "value": "automation",
12
+ "description": "Test cases de automatizacion o cualquier cambio dentro de la automatizacion del pipeline"
13
+ },
14
+ {
15
+ "title": "Bugfix",
16
+ "value": "bug",
17
+ "description": "Correxion de codigo, no hay incremento funcional"
18
+ },
19
+ {
20
+ "title": "Documentation",
21
+ "value": "documentation",
22
+ "description": "Cambios en la documentacion"
23
+ },
24
+ {
25
+ "title": "Feature",
26
+ "value": "feature",
27
+ "description": "Nuevas funcionalidades"
28
+ }
29
+ ]
30
+ }
31
+ },
32
+ "description": "Comando para crear un requerimiento nuevo",
33
+ "steps": [
34
+ {
35
+ "name": "Crear un issue nuevo",
36
+ "function": "createIssue",
37
+ "arguments": ["${title}", "${label}"]
38
+ }
39
+ ]
40
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "process",
3
+ "arguments": {
4
+ "folder": { "type": "select", "choices": "${modules}" },
5
+ "name": { "required": true },
6
+ "identifier": { "required": true }
7
+ },
8
+ "description": "Comando para crear un proceso nuevo",
9
+ "steps": [
10
+ {
11
+ "name": "Crear un proceso nuevo",
12
+ "function": "createTemplate",
13
+ "arguments": {
14
+ "template": "process",
15
+ "folder": "${folder}",
16
+ "name": "${name}",
17
+ "identifier": "${identifier}"
18
+ }
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "checkout-branch",
3
+ "guards": ["isGitApi"],
4
+ "arguments": ["newBranchName"],
5
+ "description": "Comando para cambiar de branch y baja cualquier cambio que este en la remote branch o en main",
6
+ "steps": [
7
+ {
8
+ "name": "valida que no sea la branch actual",
9
+ "function": "validaNoseaBranchActual",
10
+ "arguments": ["${newBranchName}"],
11
+ "description": "Valida que no sea la branch actual",
12
+ "errorMessage": "Ya esta parado sobre la branch ${newBranchName}"
13
+ },
14
+ {
15
+ "name": "chequea si hay cambios sin commit",
16
+ "function": "checkCommitPending",
17
+ "description": "Chequea si hay algo sin commitear",
18
+ "errorMessage": "Tiene modificaciones pendientes:\n ${salida}",
19
+ "onError": "commitChanges"
20
+ },
21
+ {
22
+ "name": "baja cambios en remote y en main",
23
+ "command": "git",
24
+ "arguments": ["fetch"],
25
+ "description": "Baja de remote",
26
+ "errorMessage": "No se pudo actualizar la branch, intente manualmente con git fetch"
27
+ },
28
+ {
29
+ "criteria": { "field": "existNewBranch", "value": true },
30
+ "name": "cambia de branch",
31
+ "command": "git",
32
+ "arguments": ["checkout", "${newBranchName}"],
33
+ "description": "Cambia de branch",
34
+ "errorMessage": "No se pudo mover al branch ${newBranchName}. Hagalo manualmente ${command}"
35
+ },
36
+ {
37
+ "criteria": { "field": "existNewBranch", "value": true },
38
+ "name": "baja de la remote branch",
39
+ "command": "git",
40
+ "arguments": ["pull", "--set-upstream", "origin ${newBranchName}"],
41
+ "description": "Trae contenido de branch remota",
42
+ "errorMessage": "No se pudo traer de la remote branch ${newBranchName}. Hagalo manualmente ${command}"
43
+ },
44
+ {
45
+ "criteria": { "field": "existNewBranch", "value": true },
46
+ "name": "merge de main",
47
+ "command": "git",
48
+ "arguments": ["merge main"],
49
+ "description": "Trae cualquier cambio en main",
50
+ "errorMessage": "No se pudo actualizar la branch con main, intente manualmente con git merge main"
51
+ },
52
+ {
53
+ "criteria": { "field": "existNewBranch", "value": false },
54
+ "name": "crea de branch",
55
+ "function": "createBranch",
56
+ "description": "Crea la nueva branch ${newBranchName}",
57
+ "errorMessage": "No se pudo crear la branch ${newBranchName}. Hagalo manualmente ${command}"
58
+ }
59
+ ]
60
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "create-pull",
3
+ "guards": ["isGitApi"],
4
+ "description": "Comando para crear el pull request de la branch",
5
+ "steps": [
6
+ {
7
+ "name": "chequea si hay cambios sin commit",
8
+ "function": "checkCommitPending",
9
+ "description": "Chequea si hay algo sin commitear",
10
+ "errorMessage": "Tiene modificaciones pendientes:\n ${salida}",
11
+ "onError": "commitChanges"
12
+ },
13
+ {
14
+ "name": "publica la branch",
15
+ "function": "publishBranch",
16
+ "description": "Publicha la branch en Remote",
17
+ "errorMessage": "No se pudo publicar la branch"
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "create-scratch",
3
+ "guards": ["sfInstalled"],
4
+ "arguments": {
5
+ "scratchName": { "default": "${branchName}" },
6
+ "permissionSet": { "default": "${permissionSet}" },
7
+ "dias": { "default": "7" }
8
+ },
9
+ "description": "Crea una scratch Org y sube el codigo con datos de prueba",
10
+ "errorMessage": "No se pudo asociar la branch ${branchName} al remote. verifique con git branch -vv ",
11
+ "steps": [
12
+ {
13
+ "criteria": { "field": "existBranchScratch", "value": false },
14
+ "name": "Crea la scracth org",
15
+ "command": "sf",
16
+ "arguments": {
17
+ "org create scratch --set-default": "",
18
+ "--definition-file": "${projectPath}/config/project-scratch-def.json",
19
+ "--alias": "${scratchName}",
20
+ "--name": "${scratchName}",
21
+ "--duration-days": "${dias}"
22
+ },
23
+ "errorMessage": "No se pudo crear la scracth org, verifique que no se haya pasado del limite scratchs (3 activas)* sf org list --clean\n* o bien si quedo en la mitad del proceso\n* sf org resume"
24
+ },
25
+ {
26
+ "criteria": { "field": "existBranchScratch", "value": true },
27
+ "name": "Ya existe la Scratch ${scratchName}. Cambia la default org",
28
+ "command": "sf",
29
+ "arguments": { "force config set": "", "target-org": "${scratchName}" },
30
+ "errorMessage": "Pruebe manualmente ${command}"
31
+ },
32
+ {
33
+ "name": "Sube el codigo",
34
+ "command": "sf",
35
+ "arguments": {
36
+ "project deploy start": "",
37
+ "--target-org": "${scratchName}"
38
+ },
39
+ "errorMessage": "No se pudo subir el codigo"
40
+ },
41
+ {
42
+ "criteria": { "field": "permissionSet" },
43
+ "name": "Asigna los permisos",
44
+ "command": "sf",
45
+ "arguments": {
46
+ "org assign permset": "",
47
+ "--target-org": "${scratchName}",
48
+ "--name": "${permissionSet}"
49
+ }
50
+ },
51
+ {
52
+ "name": "Subiendo los datos",
53
+ "command": "sf",
54
+ "arguments": {
55
+ "data tree import": "",
56
+ "--target-org": "${scratchName}",
57
+ "--plan": "${projectPath}/data/plan.json"
58
+ }
59
+ },
60
+ {
61
+ "name": "Seteando la scracth en modo debug",
62
+ "command": "sf",
63
+ "arguments": {
64
+ "apex run": "",
65
+ "--file": "${projectPath}/scripts/apex/debugMode.apex",
66
+ "--target-org": "${scratchName}"
67
+ }
68
+ },
69
+ {
70
+ "name": "Generando la password",
71
+ "command": "sf",
72
+ "arguments": {
73
+ "org generate password": "",
74
+ "--target-org": "${scratchName}"
75
+ },
76
+ "errorMessage": "Pruebe manualmente ${command}"
77
+ },
78
+ {
79
+ "name": "Ingresa a la scratch",
80
+ "command": "sf",
81
+ "arguments": { "open org -r": "", "--target-org": "${scratchName}" }
82
+ }
83
+ ]
84
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "deploy-code",
3
+ "guards": ["targetOrg"],
4
+ "description": "Deploya el codigo a la Org de destino",
5
+ "errorMessage": "No se pudo deployar el codigo",
6
+ "steps": [
7
+ {
8
+ "name": "Deploy",
9
+ "command": "sf",
10
+ "arguments": {
11
+ "project deploy start": "",
12
+ "--target-org": "${targetOrg}"
13
+ },
14
+ "errorMessage": "No se pudo subir el codigo"
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "drop-scratch",
3
+ "guards": ["targetOrg"],
4
+ "arguments": { "scratchName": { "default": "${branchName}" } },
5
+ "description": "Elimina la scratch",
6
+ "errorMessage": "No se pudo eliminar la scratch. Verifique si existe con sf org list, y en caso afirmativo pruebe manualmente un sf org delete scratch --target-org ${scratchName} ",
7
+ "steps": [
8
+ {
9
+ "name": "drop-scratch",
10
+ "command": "sf",
11
+ "arguments": {
12
+ "org delete scratch": "",
13
+ "--target-org": "${scratchName}"
14
+ }
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "descipcion": "# sf package version promote --package dreamhouse@1.0.0-1 --target-dev-hub DevHub # sf package install --wait 10 --publish-wait 10 --package dreamhouse@1.0.0-1 --installation-key test1234 --no-prompt --target-org MyTP json=$(sf package version create --package Ventas --installation-key-bypass --wait 20 --definition-file config/project-scratch-def.json --json) status=$(echo $json | jq '.status') if [ $status == '0' ]; then packageVersionId=$(echo $json | jq -r '.result.SubscriberPackageVersionId') echo 'packageVersionId=$packageVersionId' >> $GITHUB_OUTPUT else echo 'Failed to create package version' fi exit $status sleep 360 sf org create scratch -f config/project-scratch-def.json -a scratch-org -d -y 1 sf package install -p $packageVersionId -w 10 -o scratch-org -r"
3
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "publish-branch",
3
+ "guards": ["isGitApi"],
4
+ "description": "Comando para publicar la branch en Remote",
5
+ "steps": [
6
+ {
7
+ "name": "chequea si hay cambios sin commit",
8
+ "function": "checkCommitPending",
9
+ "description": "Chequea si hay algo sin commitear",
10
+ "errorMessage": "Tiene modificaciones pendientes:\n ${salida}",
11
+ "onError": "commitChanges"
12
+ },
13
+ {
14
+ "name": "publica la branch",
15
+ "function": "publishBranch",
16
+ "description": "Publicha la branch en Remote",
17
+ "errorMessage": "No se pudo publicar la branch"
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "update-documentation",
3
+ "guards": ["scratch"],
4
+ "arguments": { "process": { "option": "p" } },
5
+ "description": "Actualiza la documentacion que esta asociada a la metadata de Salesforce",
6
+ "errorMessage": "No se pudo actualizar la documentacion",
7
+ "steps": [{ "name": "Actualiza la documentacion", "function": "docProcess" }]
8
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "validate-code",
3
+ "guards": ["targetOrg"],
4
+ "description": "Valida la calidad del codigo y que cumpla buenas practicas",
5
+ "errorMessage": "Fallo el script de calidad y validacion de codigo, lea atentamente los motivos",
6
+ "steps": [
7
+ {
8
+ "name": "Scanner",
9
+ "command": "sf",
10
+ "arguments": [
11
+ "scanner run",
12
+ "--engine='pmd,eslint,eslint-lwc'",
13
+ "--format=csv",
14
+ "--target='./force-app'"
15
+ ]
16
+ },
17
+ {
18
+ "name": "Test Apex",
19
+ "command": "sf",
20
+ "arguments": [
21
+ "apex run test",
22
+ "--test-level",
23
+ "RunLocalTests",
24
+ "--synchronous"
25
+ ]
26
+ },
27
+ { "name": "Test LWC", "command": "yarn", "arguments": ["test"] }
28
+ ]
29
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "validate-scratch",
3
+ "guards": ["targetOrg"],
4
+ "description": "Valida si hay cambios en la scratch que fueron bajados localmente al repo",
5
+ "errorMessage": "Hay cambios en la scratch. Para bajarlos sf org retrieve start",
6
+ "steps": [
7
+ {
8
+ "name": "Valida si hay cambios en la scratch",
9
+ "function": "validateScratch",
10
+ "errorMessage": "Hay cambios en la Org que no estan impactados ${hayCambios}.\n ${salida}",
11
+ "onError": "retrieveCode"
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "cancel",
3
+ "guards": ["isGitApi"],
4
+ "description": "Comando para cancelar un requerimiento",
5
+ "steps": [{ "name": "Cancela el issue", "function": "cancelIssue" }]
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "deploy",
3
+ "guards": ["isGitApi"],
4
+ "description": "Comando para deployar un requerimiento al ambiente",
5
+ "steps": [{ "name": "Deploya el issue", "function": "deployIssue" }]
6
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "finish",
3
+ "guards": ["isGitApi"],
4
+ "description": "Comando para teminar un requerimiento. Automatiza las acciones cuando se termino el desarrollo de un requerimiento",
5
+ "steps": [
6
+ {
7
+ "criteria": { "field": "isDevelopment", "value": true },
8
+ "subtask": "validate-scratch"
9
+ },
10
+ {
11
+ "name": "chequea si hay cambios sin commit",
12
+ "function": "checkCommitPending",
13
+ "description": "Chequea si hay algo sin commitear:\n ${salida}",
14
+ "errorMessage": "Tiene modificaciones pendientes",
15
+ "onError": "commitChanges"
16
+ },
17
+ {
18
+ "criteria": { "field": "isDevelopment", "value": true },
19
+ "subtask": "update-documentation"
20
+ },
21
+ {
22
+ "criteria": { "field": "isDevelopment", "value": true },
23
+ "subtask": "validate-code"
24
+ },
25
+ {
26
+ "name": "publica la branch",
27
+ "subtask": "publish-branch",
28
+ "description": "Publica la branch en Remote",
29
+ "errorMessage": "No se pudo publicar la branch"
30
+ },
31
+ {
32
+ "name": "crea el pull request",
33
+ "subtask": "create-pull",
34
+ "description": "Crea el pull request"
35
+ },
36
+ {
37
+ "criteria": { "field": "isDevelopment", "value": true },
38
+ "subtask": "drop-scratch"
39
+ }
40
+ ]
41
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "rollback",
3
+ "guards": ["isGitApi"],
4
+ "description": "Comando para hacer un rollback de un requerimiento ya deployado",
5
+ "steps": [{ "name": "Rollback de un deploy", "function": "rollbackIssue" }]
6
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "start",
3
+ "guards": ["isGitApi"],
4
+ "arguments": ["newIssueNumber"],
5
+ "description": "Comando para iniciar un requerimiento. Automatiza las acciones cuando se arranca un requerimiento nuevo",
6
+ "steps": [
7
+ {
8
+ "name": "validate issue",
9
+ "function": "validateIssue",
10
+ "arguments": ["${newIssueNumber}", "Ready,Backlog"],
11
+ "description": "Valida que Issue este en la Columna Ready o Backlog",
12
+ "errorMessage": "Por favor verifique que el issue ${newIssueNumber} este en la columna Ready o Backlog"
13
+ },
14
+ {
15
+ "name": "check Issue type based on Labels",
16
+ "function": "checkIssueType",
17
+ "arguments": ["${newIssueNumber}"],
18
+ "description": "Verifica si el issueType es de Desarrollo o No segun los labels (no desa son automation, documentation)"
19
+ },
20
+ { "subtask": "checkout-branch", "arguments": ["${newBranchName}"] },
21
+ {
22
+ "name": "Mueve el issue a In Progress",
23
+ "function": "moveIssue",
24
+ "arguments": ["${newIssueNumber}", "In Progress"],
25
+ "errorMessage": "No se pudo mover el issue a inprogress, hagalo manualmente"
26
+ },
27
+ {
28
+ "name": "Me Asigna el issue",
29
+ "function": "assignIssueToMe",
30
+ "arguments": ["${newIssueNumber}"],
31
+ "errorMessage": "No se pudo pudo asignar la branch (${newBranchName}) al issue. Por favor hagalo manualmente",
32
+ "skipOnError": true
33
+ },
34
+ {
35
+ "name": "Pone la branch en el issue",
36
+ "function": "assignBranchToIssue",
37
+ "arguments": {
38
+ "newBranchName": "${newBranchName}",
39
+ "issueNumber": "${newIssueNumber}"
40
+ },
41
+ "errorMessage": "No se pudo asignar la branch ${newBranchName} al issue ${newIssueNumber}. Hagalo manualmente",
42
+ "skipOnError": true
43
+ },
44
+ {
45
+ "name": "Asocia la branch con el remote",
46
+ "command": "git push -u origin",
47
+ "arguments": ["${newBranchName}"],
48
+ "errorMessage": "No se pudo asociar la branch ${newBranchNamed} al remote. verifique con git branch -vv "
49
+ },
50
+ {
51
+ "criteria": { "field": "isNewDevelopment", "value": true },
52
+ "subtask": "create-scratch",
53
+ "arguments": {
54
+ "scratchName": "${newBranchName}",
55
+ "dias": "${defaultDias}",
56
+ "permissionSet": "${permissionSet}"
57
+ }
58
+ }
59
+ ]
60
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "stop",
3
+ "guards": ["isGitApi"],
4
+ "description": "Comando para dejar a un lado un requerimiento",
5
+ "steps": [
6
+ {
7
+ "criteria": { "field": "isDevelopment", "value": true },
8
+ "subtask": "validate-scratch"
9
+ },
10
+ {
11
+ "criteria": { "field": "isDevelopment", "value": true },
12
+ "subtask": "update-documentation"
13
+ },
14
+ {
15
+ "name": "chequea si hay cambios sin commit",
16
+ "function": "checkCommitPending",
17
+ "description": "Chequea si hay algo sin commitear:\n ${salida}",
18
+ "errorMessage": "Tiene modificaciones pendientes",
19
+ "onError": "commitChanges"
20
+ },
21
+ {
22
+ "name": "publica la branch",
23
+ "subtask": "publish-branch",
24
+ "description": "Publica la branch en Remote",
25
+ "errorMessage": "No se pudo publicar la branch"
26
+ },
27
+ {
28
+ "criteria": { "field": "isDevelopment", "value": true },
29
+ "subtask": "drop-scratch"
30
+ }
31
+ ]
32
+ }