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.
- package/README.md +85 -7
- package/commands/modelA/new/issue.json +40 -0
- package/commands/modelA/new/process.json +21 -0
- package/commands/modelA/subtasks/checkout-branch.json +60 -0
- package/commands/modelA/subtasks/create-pull.json +20 -0
- package/commands/modelA/subtasks/create-scratch.json +84 -0
- package/commands/modelA/subtasks/deploy-code.json +17 -0
- package/commands/modelA/subtasks/drop-scratch.json +17 -0
- package/commands/modelA/subtasks/package-code.json +3 -0
- package/commands/modelA/subtasks/publish-branch.json +20 -0
- package/commands/modelA/subtasks/update-documentation.json +8 -0
- package/commands/modelA/subtasks/validate-code.json +29 -0
- package/commands/modelA/subtasks/validate-scratch.json +14 -0
- package/commands/modelA/tasks/cancel.json +6 -0
- package/commands/modelA/tasks/deploy.json +6 -0
- package/commands/modelA/tasks/finish.json +41 -0
- package/commands/modelA/tasks/rollback.json +6 -0
- package/commands/modelA/tasks/start.json +60 -0
- package/commands/modelA/tasks/stop.json +32 -0
- package/commands/modelA/tasks/switch.json +53 -0
- package/commands/modelA/tasks/view.json +12 -0
- package/lib/auto.js +30 -15
- package/lib/helpers/class.js +2 -2
- package/lib/helpers/color.d.ts +1 -0
- package/lib/helpers/color.js +4 -1
- package/lib/helpers/context.d.ts +14 -2
- package/lib/helpers/context.js +60 -35
- package/lib/helpers/lwc.js +2 -2
- package/lib/helpers/metadata.js +2 -2
- package/lib/helpers/object.js +2 -2
- package/lib/helpers/tasks.js +10 -5
- package/lib/helpers/util.d.ts +18 -4
- package/lib/helpers/util.js +104 -5
- package/package.json +12 -4
- package/templates/dictionary/class-all.md +9 -0
- package/templates/dictionary/class-diagrama.md +13 -0
- package/templates/dictionary/class-inner.md +19 -0
- package/templates/dictionary/class-metodos.md +15 -0
- package/templates/dictionary/class-public.md +13 -0
- package/templates/dictionary/class-referencias.md +5 -0
- package/templates/dictionary/class.md +29 -0
- package/templates/dictionary/classes.md +52 -0
- package/templates/dictionary/object.md +35 -0
- package/templates/dictionary/objects.md +63 -0
- package/templates/intro.md +20 -0
- package/templates/process.md +23 -0
- package/templates/story.md +32 -0
- 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
|
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,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,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
|
+
}
|