@cat-factory/app 0.154.0 → 0.155.0
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/app/components/panels/ResultWindowShell.vue +74 -3
- package/app/components/panels/StepValidationReport.vue +66 -0
- package/app/components/panels/inspector/ServiceTestConfig.vue +48 -10
- package/app/components/panels/inspector/ServiceValidationConfig.vue +208 -0
- package/app/components/settings/ApiTokensPanel.vue +8 -4
- package/app/composables/api/validationChecks.ts +39 -0
- package/app/composables/useApi.ts +2 -0
- package/app/modular/panels/inspector.logic.spec.ts +3 -0
- package/app/modular/panels/inspector.logic.ts +5 -0
- package/app/modular/panels/inspector.ts +2 -0
- package/app/stores/validationChecks.ts +111 -0
- package/app/types/validationChecks.ts +17 -0
- package/i18n/locales/de.json +32 -0
- package/i18n/locales/en.json +32 -0
- package/i18n/locales/es.json +32 -0
- package/i18n/locales/fr.json +32 -0
- package/i18n/locales/he.json +32 -0
- package/i18n/locales/it.json +32 -0
- package/i18n/locales/ja.json +32 -0
- package/i18n/locales/pl.json +32 -0
- package/i18n/locales/tr.json +32 -0
- package/i18n/locales/uk.json +32 -0
- package/package.json +2 -2
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { defineStore } from 'pinia'
|
|
2
|
+
import { ref } from 'vue'
|
|
3
|
+
import type { ServiceValidationConfig, ValidationCheck } from '~/types/validationChecks'
|
|
4
|
+
import { VALIDATION_DEFAULT_MAX_ATTEMPTS } from '~/types/validationChecks'
|
|
5
|
+
import { useUpsertList } from '~/composables/useUpsertList'
|
|
6
|
+
import { useWorkspaceStore } from '~/stores/workspace'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The workspace's PRE-PR VALIDATION CHECKS: per service frame, the shell commands the
|
|
10
|
+
* executor-harness runs against the checkout after the coder settles and BEFORE the PR opens.
|
|
11
|
+
* A failing command is fed back into the agent loop; only a green checkout opens a PR.
|
|
12
|
+
*
|
|
13
|
+
* Loaded on demand by the service inspector rather than from the workspace snapshot — it's
|
|
14
|
+
* operator configuration read on one panel, not something every board load needs.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Whether a failed load is a SETTLED "you can't have this" — the facade wired no store (503) or
|
|
18
|
+
* this user lacks `settings.manage` (403) — rather than a transient fault. Only the settled cases
|
|
19
|
+
* latch `available` to false; everything else stays unresolved so a later visit retries.
|
|
20
|
+
*/
|
|
21
|
+
function isSettledUnavailable(error: unknown): boolean {
|
|
22
|
+
const status =
|
|
23
|
+
error && typeof error === 'object' && 'statusCode' in error
|
|
24
|
+
? (error as { statusCode?: number }).statusCode
|
|
25
|
+
: undefined
|
|
26
|
+
return status === 503 || status === 403
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const useValidationChecksStore = defineStore('validationChecks', () => {
|
|
30
|
+
const api = useApi()
|
|
31
|
+
|
|
32
|
+
const {
|
|
33
|
+
items: configs,
|
|
34
|
+
upsert: upsertLocal,
|
|
35
|
+
remove: dropLocal,
|
|
36
|
+
} = useUpsertList<ServiceValidationConfig>({ key: (c) => c.blockId })
|
|
37
|
+
const loading = ref(false)
|
|
38
|
+
/**
|
|
39
|
+
* Mirrors the backend's wiring: `null` until first probed, then true/false. The inspector
|
|
40
|
+
* panel hides itself when false, so a facade that didn't wire the store shows no dead control.
|
|
41
|
+
*/
|
|
42
|
+
const available = ref<boolean | null>(null)
|
|
43
|
+
let inFlight: Promise<void> | null = null
|
|
44
|
+
|
|
45
|
+
/** Force a refresh of every configured service's checks (used after a save/remove). */
|
|
46
|
+
async function load() {
|
|
47
|
+
const ws = useWorkspaceStore()
|
|
48
|
+
loading.value = true
|
|
49
|
+
try {
|
|
50
|
+
configs.value = await api.listServiceValidationConfigs(ws.requireId())
|
|
51
|
+
available.value = true
|
|
52
|
+
} catch (error) {
|
|
53
|
+
// A 503 means the facade wired no store and a 403 means this user may not manage settings:
|
|
54
|
+
// both are STABLE answers, so latch them and hide the entry point rather than showing a
|
|
55
|
+
// dead control. Anything else (a network blip, a 5xx) is TRANSIENT — leaving `available`
|
|
56
|
+
// unresolved so the next `ensureLoaded` retries, instead of hiding the panel for the rest
|
|
57
|
+
// of the session over one dropped request.
|
|
58
|
+
available.value = isSettledUnavailable(error) ? false : null
|
|
59
|
+
} finally {
|
|
60
|
+
loading.value = false
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Load once per session; concurrent callers share the in-flight request. */
|
|
65
|
+
async function ensureLoaded(): Promise<void> {
|
|
66
|
+
if (available.value !== null) return
|
|
67
|
+
inFlight ??= load().finally(() => {
|
|
68
|
+
inFlight = null
|
|
69
|
+
})
|
|
70
|
+
return inFlight
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** The checks configured for a service frame (an empty default when it has none). */
|
|
74
|
+
function forBlock(blockId: string): ServiceValidationConfig {
|
|
75
|
+
return (
|
|
76
|
+
configs.value.find((c) => c.blockId === blockId) ?? {
|
|
77
|
+
blockId,
|
|
78
|
+
checks: [],
|
|
79
|
+
maxAttempts: VALIDATION_DEFAULT_MAX_ATTEMPTS,
|
|
80
|
+
}
|
|
81
|
+
)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Save a service frame's checks. An EMPTY list clears the config on the backend (the service
|
|
86
|
+
* deletes the row), which restores the exact pre-feature behaviour — so the local list drops
|
|
87
|
+
* the entry rather than keeping an empty one that reads as "configured".
|
|
88
|
+
*/
|
|
89
|
+
async function save(
|
|
90
|
+
blockId: string,
|
|
91
|
+
checks: ValidationCheck[],
|
|
92
|
+
maxAttempts: number,
|
|
93
|
+
): Promise<void> {
|
|
94
|
+
const ws = useWorkspaceStore()
|
|
95
|
+
const saved = await api.setServiceValidationConfig(ws.requireId(), blockId, {
|
|
96
|
+
checks,
|
|
97
|
+
maxAttempts,
|
|
98
|
+
})
|
|
99
|
+
if (saved.checks.length === 0) dropLocal(blockId)
|
|
100
|
+
else upsertLocal(saved)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** Remove a service frame's checks entirely. */
|
|
104
|
+
async function remove(blockId: string): Promise<void> {
|
|
105
|
+
const ws = useWorkspaceStore()
|
|
106
|
+
await api.deleteServiceValidationConfig(ws.requireId(), blockId)
|
|
107
|
+
dropLocal(blockId)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return { configs, loading, available, load, ensureLoaded, forBlock, save, remove }
|
|
111
|
+
})
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Pre-PR validation-check shapes: the per-service-frame commands the executor-harness runs
|
|
2
|
+
// against the checkout before opening a PR, and the report it produces.
|
|
3
|
+
//
|
|
4
|
+
// All wire shapes are sourced from @cat-factory/contracts (single source of truth).
|
|
5
|
+
|
|
6
|
+
export type {
|
|
7
|
+
ValidationCheck,
|
|
8
|
+
ValidationCheckOutcome,
|
|
9
|
+
ValidationReport,
|
|
10
|
+
ServiceValidationConfig,
|
|
11
|
+
UpsertServiceValidationConfigInput,
|
|
12
|
+
} from '@cat-factory/contracts'
|
|
13
|
+
export {
|
|
14
|
+
VALIDATION_DEFAULT_MAX_ATTEMPTS,
|
|
15
|
+
VALIDATION_MAX_ATTEMPTS_CEILING,
|
|
16
|
+
VALIDATION_MAX_CHECKS,
|
|
17
|
+
} from '@cat-factory/contracts'
|
package/i18n/locales/de.json
CHANGED
|
@@ -550,6 +550,7 @@
|
|
|
550
550
|
"scopes": {
|
|
551
551
|
"read": "Nur Lesen",
|
|
552
552
|
"write": "Lesen und Schreiben",
|
|
553
|
+
"decide": "Antworten auf Entscheidungen",
|
|
553
554
|
"admin": "Vollzugriff"
|
|
554
555
|
},
|
|
555
556
|
"toast": {
|
|
@@ -1345,6 +1346,25 @@
|
|
|
1345
1346
|
"remove": "{repo} entfernen",
|
|
1346
1347
|
"connectFirst": "Verbinde GitHub, um Referenz-Repositories anzuhängen.",
|
|
1347
1348
|
"hint": "Der Dokument-Writer klont diese schreibgeschützt, um beim Entwerfen vorhandene Lösungen als Referenz wiederzuverwenden. Er ändert sie nie."
|
|
1349
|
+
},
|
|
1350
|
+
"validationChecks": {
|
|
1351
|
+
"title": "Prüfungen vor dem PR",
|
|
1352
|
+
"sectionHint": "Befehle, die nach dem Coder und vor dem Öffnen eines Pull Requests im Checkout laufen. Ein Fehlschlag geht zur Behebung an den Agenten zurück; nur ein fehlerfreier Checkout öffnet einen PR.",
|
|
1353
|
+
"hint": "Jeder Befehl läuft der Reihe nach mit `sh -c` im Checkout dieses Dienstes. Der Agent soll den Code reparieren, nicht die Prüfung abschwächen.",
|
|
1354
|
+
"clear": "Leeren",
|
|
1355
|
+
"configNoun": "Prüfungen",
|
|
1356
|
+
"label": "Name",
|
|
1357
|
+
"labelPlaceholder": "lint",
|
|
1358
|
+
"command": "Befehl",
|
|
1359
|
+
"addCheck": "Prüfung hinzufügen",
|
|
1360
|
+
"removeCheck": "Diese Prüfung entfernen",
|
|
1361
|
+
"empty": "Keine Prüfungen konfiguriert. Läufe für diesen Dienst öffnen einen Pull Request ohne lokale Überprüfung.",
|
|
1362
|
+
"maxAttempts": "Versuche",
|
|
1363
|
+
"maxAttemptsHint": "Korrekturrunden",
|
|
1364
|
+
"save": "Prüfungen speichern",
|
|
1365
|
+
"savedToast": "Prüfungen gespeichert",
|
|
1366
|
+
"saveFailed": "Prüfungen konnten nicht gespeichert werden",
|
|
1367
|
+
"clearFailed": "Prüfungen konnten nicht geleert werden"
|
|
1348
1368
|
}
|
|
1349
1369
|
},
|
|
1350
1370
|
"panels": {
|
|
@@ -1511,6 +1531,16 @@
|
|
|
1511
1531
|
"outOfTen": "{value}/10",
|
|
1512
1532
|
"relatedFindings": "Zugehörige Befunde",
|
|
1513
1533
|
"unnamed": "Standard"
|
|
1534
|
+
},
|
|
1535
|
+
"validation": {
|
|
1536
|
+
"heading": "Prüfungen vor dem PR",
|
|
1537
|
+
"passed": "Bestanden",
|
|
1538
|
+
"failed": "Fehlgeschlagen",
|
|
1539
|
+
"attempts": "Versuch {attempts} von {maxAttempts}",
|
|
1540
|
+
"passedSummary": "Alle {total} Prüfungen wurden in Versuch {attempts} bestanden. Der Pull Request wurde aus einem fehlerfreien Checkout geöffnet.",
|
|
1541
|
+
"failedSummary": "{failed} von {total} Prüfungen schlugen nach {attempts} von {maxAttempts} Versuchen weiterhin fehl, daher wurde kein Pull Request geöffnet.",
|
|
1542
|
+
"exitCode": "Exit-Code {code}",
|
|
1543
|
+
"timedOut": "Zeitüberschreitung"
|
|
1514
1544
|
}
|
|
1515
1545
|
},
|
|
1516
1546
|
"inspector": {
|
|
@@ -4137,6 +4167,8 @@
|
|
|
4137
4167
|
"env_test_not_a_frame": "Der Umgebungs-Selbsttest läuft pro Service und kann daher nur für einen Service gestartet werden, nicht für ein Modul oder eine Aufgabe.",
|
|
4138
4168
|
"env_test_infraless": "Für diesen Service ist keine Bereitstellung einer kurzlebigen Umgebung konfiguriert, es gibt also nichts, was der Selbsttest prüfen könnte.",
|
|
4139
4169
|
"env_test_not_provisionable": "Dieser Service hat einen Bereitstellungstyp, aber es ist noch kein Workspace-Handler dafür verfügbar, sodass die Bereitstellung nicht laufen kann. Konfiguriere einen Umgebungs-Handler.",
|
|
4170
|
+
"env_test_not_provisionable_no_handler": "Für den Bereitstellungstyp dieses Service ist kein Workspace-Umgebungs-Handler konfiguriert. Registriere in Infrastruktur → Testumgebungen einen — für einen benutzerdefinierten Anbieter einen Custom (remote-custom)-Handler, dessen akzeptierte manifest id mit der übereinstimmt, die dieser Service festlegt.",
|
|
4171
|
+
"env_test_not_provisionable_type_mismatch": "Mehr als ein Umgebungs-Handler könnte auf den Bereitstellungstyp dieses Service passen. Lege für diesen Service eine manifest id fest, sodass genau einer aufgelöst wird, oder entferne den überlappenden Handler in Infrastruktur → Testumgebungen.",
|
|
4140
4172
|
"env_test_no_vcs": "Der Selbsttest benötigt einen Git-Anbieter, um seinen Wegwerf-Branch zu erstellen und zu löschen, aber dieser Workspace ist mit keinem verbunden."
|
|
4141
4173
|
},
|
|
4142
4174
|
"action": {
|
package/i18n/locales/en.json
CHANGED
|
@@ -554,6 +554,8 @@
|
|
|
554
554
|
"env_test_not_a_frame": "The environment self-test runs per service, so it can only be started on a service, not on a module or task.",
|
|
555
555
|
"env_test_infraless": "This service has no ephemeral-environment provisioning configured, so there is nothing for the self-test to exercise.",
|
|
556
556
|
"env_test_not_provisionable": "This service has a provision type, but no workspace handler resolves for it yet, so provisioning can't run. Configure an environment handler.",
|
|
557
|
+
"env_test_not_provisionable_no_handler": "No workspace environment handler is configured for this service's provision type. In Infrastructure → Test environments, register one — for a custom provider, a Custom (remote-custom) handler whose accepted manifest id matches the one this service pins.",
|
|
558
|
+
"env_test_not_provisionable_type_mismatch": "More than one environment handler could match this service's provision type. Pin a manifest id for this service so exactly one resolves, or remove the overlapping handler in Infrastructure → Test environments.",
|
|
557
559
|
"env_test_no_vcs": "The self-test needs a git provider to create and delete its throwaway branch, but this workspace isn't connected to one."
|
|
558
560
|
},
|
|
559
561
|
"action": {
|
|
@@ -1115,6 +1117,25 @@
|
|
|
1115
1117
|
"remove": "Remove {repo}",
|
|
1116
1118
|
"connectFirst": "Connect GitHub to attach reference repositories.",
|
|
1117
1119
|
"hint": "The document writer clones these read-only to reuse existing solutions as a reference while drafting. It never changes them."
|
|
1120
|
+
},
|
|
1121
|
+
"validationChecks": {
|
|
1122
|
+
"title": "Pre-PR validation",
|
|
1123
|
+
"sectionHint": "Commands run against the checkout after the coder finishes and before a pull request is opened. A failure is handed back to the agent to fix; only a passing checkout opens a PR.",
|
|
1124
|
+
"hint": "Each command runs with `sh -c` in this service's checkout, in order. Fix the code, not the check — the agent is told not to weaken them.",
|
|
1125
|
+
"clear": "Clear",
|
|
1126
|
+
"configNoun": "validation checks",
|
|
1127
|
+
"label": "Name",
|
|
1128
|
+
"labelPlaceholder": "lint",
|
|
1129
|
+
"command": "Command",
|
|
1130
|
+
"addCheck": "Add check",
|
|
1131
|
+
"removeCheck": "Remove this check",
|
|
1132
|
+
"empty": "No checks configured. Runs for this service open a pull request without any local verification.",
|
|
1133
|
+
"maxAttempts": "Attempts",
|
|
1134
|
+
"maxAttemptsHint": "Rounds of fixing",
|
|
1135
|
+
"save": "Save checks",
|
|
1136
|
+
"savedToast": "Validation checks saved",
|
|
1137
|
+
"saveFailed": "Could not save the validation checks",
|
|
1138
|
+
"clearFailed": "Could not clear the validation checks"
|
|
1118
1139
|
}
|
|
1119
1140
|
},
|
|
1120
1141
|
"panels": {
|
|
@@ -1281,6 +1302,16 @@
|
|
|
1281
1302
|
"outOfTen": "{value}/10",
|
|
1282
1303
|
"relatedFindings": "Related findings",
|
|
1283
1304
|
"unnamed": "Standard"
|
|
1305
|
+
},
|
|
1306
|
+
"validation": {
|
|
1307
|
+
"heading": "Pre-PR validation",
|
|
1308
|
+
"passed": "Passed",
|
|
1309
|
+
"failed": "Failed",
|
|
1310
|
+
"attempts": "Attempt {attempts} of {maxAttempts}",
|
|
1311
|
+
"passedSummary": "All {total} checks passed on attempt {attempts}. The pull request was opened from a green checkout.",
|
|
1312
|
+
"failedSummary": "{failed} of {total} checks were still failing after {attempts} of {maxAttempts} attempts, so no pull request was opened.",
|
|
1313
|
+
"exitCode": "exit {code}",
|
|
1314
|
+
"timedOut": "timed out"
|
|
1284
1315
|
}
|
|
1285
1316
|
},
|
|
1286
1317
|
"inspector": {
|
|
@@ -2585,6 +2616,7 @@
|
|
|
2585
2616
|
"scopes": {
|
|
2586
2617
|
"read": "Read only",
|
|
2587
2618
|
"write": "Read and write",
|
|
2619
|
+
"decide": "Answer decisions",
|
|
2588
2620
|
"admin": "Full access"
|
|
2589
2621
|
},
|
|
2590
2622
|
"toast": {
|
package/i18n/locales/es.json
CHANGED
|
@@ -512,6 +512,8 @@
|
|
|
512
512
|
"env_test_not_a_frame": "La autoprueba de entorno se ejecuta por servicio, así que solo puede iniciarse en un servicio, no en un módulo o una tarea.",
|
|
513
513
|
"env_test_infraless": "Este servicio no tiene configurado el aprovisionamiento de entornos efímeros, así que no hay nada que la autoprueba pueda comprobar.",
|
|
514
514
|
"env_test_not_provisionable": "Este servicio tiene un tipo de aprovisionamiento, pero aún no hay ningún gestor del espacio de trabajo para él, así que el aprovisionamiento no puede ejecutarse. Configura un gestor de entornos.",
|
|
515
|
+
"env_test_not_provisionable_no_handler": "No hay ningún gestor de entorno del espacio de trabajo configurado para el tipo de aprovisionamiento de este servicio. En Infraestructura → Entornos de prueba, registra uno; para un proveedor personalizado, un gestor Custom (remote-custom) cuyo manifest id aceptado coincida con el que fija este servicio.",
|
|
516
|
+
"env_test_not_provisionable_type_mismatch": "Más de un gestor de entorno podría coincidir con el tipo de aprovisionamiento de este servicio. Fija un manifest id para este servicio de modo que se resuelva exactamente uno, o elimina el gestor superpuesto en Infraestructura → Entornos de prueba.",
|
|
515
517
|
"env_test_no_vcs": "La autoprueba necesita un proveedor de Git para crear y eliminar su rama desechable, pero este espacio de trabajo no está conectado a ninguno."
|
|
516
518
|
},
|
|
517
519
|
"action": {
|
|
@@ -1058,6 +1060,25 @@
|
|
|
1058
1060
|
"remove": "Quitar {repo}",
|
|
1059
1061
|
"connectFirst": "Conecta GitHub para adjuntar repositorios de referencia.",
|
|
1060
1062
|
"hint": "El escritor de documentos los clona en modo de solo lectura para reutilizar soluciones existentes como referencia al redactar. Nunca los modifica."
|
|
1063
|
+
},
|
|
1064
|
+
"validationChecks": {
|
|
1065
|
+
"title": "Validación previa al PR",
|
|
1066
|
+
"sectionHint": "Comandos que se ejecutan sobre la copia de trabajo cuando el programador termina y antes de abrir una solicitud de incorporación. Un fallo vuelve al agente para que lo corrija; solo una copia sin errores abre un PR.",
|
|
1067
|
+
"hint": "Cada comando se ejecuta con `sh -c` en la copia de trabajo de este servicio, en orden. Hay que arreglar el código, no la comprobación: al agente se le indica que no las debilite.",
|
|
1068
|
+
"clear": "Vaciar",
|
|
1069
|
+
"configNoun": "comprobaciones de validación",
|
|
1070
|
+
"label": "Nombre",
|
|
1071
|
+
"labelPlaceholder": "lint",
|
|
1072
|
+
"command": "Comando",
|
|
1073
|
+
"addCheck": "Añadir comprobación",
|
|
1074
|
+
"removeCheck": "Quitar esta comprobación",
|
|
1075
|
+
"empty": "No hay comprobaciones configuradas. Las ejecuciones de este servicio abren una solicitud de incorporación sin verificación local.",
|
|
1076
|
+
"maxAttempts": "Intentos",
|
|
1077
|
+
"maxAttemptsHint": "Rondas de corrección",
|
|
1078
|
+
"save": "Guardar comprobaciones",
|
|
1079
|
+
"savedToast": "Comprobaciones guardadas",
|
|
1080
|
+
"saveFailed": "No se pudieron guardar las comprobaciones",
|
|
1081
|
+
"clearFailed": "No se pudieron vaciar las comprobaciones"
|
|
1061
1082
|
}
|
|
1062
1083
|
},
|
|
1063
1084
|
"panels": {
|
|
@@ -1224,6 +1245,16 @@
|
|
|
1224
1245
|
"outOfTen": "{value}/10",
|
|
1225
1246
|
"relatedFindings": "Hallazgos relacionados",
|
|
1226
1247
|
"unnamed": "Estándar"
|
|
1248
|
+
},
|
|
1249
|
+
"validation": {
|
|
1250
|
+
"heading": "Validación previa al PR",
|
|
1251
|
+
"passed": "Superada",
|
|
1252
|
+
"failed": "Fallida",
|
|
1253
|
+
"attempts": "Intento {attempts} de {maxAttempts}",
|
|
1254
|
+
"passedSummary": "Las {total} comprobaciones se superaron en el intento {attempts}. La solicitud de incorporación se abrió desde una copia sin errores.",
|
|
1255
|
+
"failedSummary": "{failed} de {total} comprobaciones seguían fallando tras {attempts} de {maxAttempts} intentos, así que no se abrió ninguna solicitud de incorporación.",
|
|
1256
|
+
"exitCode": "código de salida {code}",
|
|
1257
|
+
"timedOut": "tiempo agotado"
|
|
1227
1258
|
}
|
|
1228
1259
|
},
|
|
1229
1260
|
"inspector": {
|
|
@@ -2397,6 +2428,7 @@
|
|
|
2397
2428
|
"scopes": {
|
|
2398
2429
|
"read": "Solo lectura",
|
|
2399
2430
|
"write": "Lectura y escritura",
|
|
2431
|
+
"decide": "Responder decisiones",
|
|
2400
2432
|
"admin": "Acceso completo"
|
|
2401
2433
|
},
|
|
2402
2434
|
"toast": {
|
package/i18n/locales/fr.json
CHANGED
|
@@ -512,6 +512,8 @@
|
|
|
512
512
|
"env_test_not_a_frame": "L'auto-test d'environnement s'exécute par service, il ne peut donc être lancé que sur un service, pas sur un module ou une tâche.",
|
|
513
513
|
"env_test_infraless": "Ce service n'a aucun provisionnement d'environnement éphémère configuré, il n'y a donc rien que l'auto-test puisse exercer.",
|
|
514
514
|
"env_test_not_provisionable": "Ce service a un type de provisionnement, mais aucun gestionnaire de l'espace de travail ne s'y applique encore, le provisionnement ne peut donc pas s'exécuter. Configurez un gestionnaire d'environnement.",
|
|
515
|
+
"env_test_not_provisionable_no_handler": "Aucun gestionnaire d'environnement de l'espace de travail n'est configuré pour le type de provisionnement de ce service. Dans Infrastructure → Environnements de test, enregistrez-en un — pour un fournisseur personnalisé, un gestionnaire Custom (remote-custom) dont le manifest id accepté correspond à celui que ce service épingle.",
|
|
516
|
+
"env_test_not_provisionable_type_mismatch": "Plusieurs gestionnaires d'environnement pourraient correspondre au type de provisionnement de ce service. Épinglez un manifest id pour ce service afin qu'un seul se résolve, ou supprimez le gestionnaire qui se chevauche dans Infrastructure → Environnements de test.",
|
|
515
517
|
"env_test_no_vcs": "L'auto-test a besoin d'un fournisseur Git pour créer et supprimer sa branche jetable, mais cet espace de travail n'est connecté à aucun."
|
|
516
518
|
},
|
|
517
519
|
"action": {
|
|
@@ -1058,6 +1060,25 @@
|
|
|
1058
1060
|
"remove": "Retirer {repo}",
|
|
1059
1061
|
"connectFirst": "Connectez GitHub pour joindre des dépôts de référence.",
|
|
1060
1062
|
"hint": "Le rédacteur de documents les clone en lecture seule pour réutiliser des solutions existantes comme référence lors de la rédaction. Il ne les modifie jamais."
|
|
1063
|
+
},
|
|
1064
|
+
"validationChecks": {
|
|
1065
|
+
"title": "Validation avant la PR",
|
|
1066
|
+
"sectionHint": "Commandes exécutées sur la copie de travail une fois le développeur terminé et avant l'ouverture d'une demande de tirage. Un échec est renvoyé à l'agent pour correction ; seule une copie sans erreur ouvre une PR.",
|
|
1067
|
+
"hint": "Chaque commande s'exécute avec `sh -c` dans la copie de travail de ce service, dans l'ordre. Il faut corriger le code, pas la vérification : il est demandé à l'agent de ne pas les affaiblir.",
|
|
1068
|
+
"clear": "Vider",
|
|
1069
|
+
"configNoun": "vérifications de validation",
|
|
1070
|
+
"label": "Nom",
|
|
1071
|
+
"labelPlaceholder": "lint",
|
|
1072
|
+
"command": "Commande",
|
|
1073
|
+
"addCheck": "Ajouter une vérification",
|
|
1074
|
+
"removeCheck": "Supprimer cette vérification",
|
|
1075
|
+
"empty": "Aucune vérification configurée. Les exécutions de ce service ouvrent une demande de tirage sans vérification locale.",
|
|
1076
|
+
"maxAttempts": "Tentatives",
|
|
1077
|
+
"maxAttemptsHint": "Cycles de correction",
|
|
1078
|
+
"save": "Enregistrer les vérifications",
|
|
1079
|
+
"savedToast": "Vérifications enregistrées",
|
|
1080
|
+
"saveFailed": "Impossible d'enregistrer les vérifications",
|
|
1081
|
+
"clearFailed": "Impossible de vider les vérifications"
|
|
1061
1082
|
}
|
|
1062
1083
|
},
|
|
1063
1084
|
"panels": {
|
|
@@ -1224,6 +1245,16 @@
|
|
|
1224
1245
|
"outOfTen": "{value}/10",
|
|
1225
1246
|
"relatedFindings": "Constats associés",
|
|
1226
1247
|
"unnamed": "Standard"
|
|
1248
|
+
},
|
|
1249
|
+
"validation": {
|
|
1250
|
+
"heading": "Validation avant la PR",
|
|
1251
|
+
"passed": "Réussie",
|
|
1252
|
+
"failed": "Échouée",
|
|
1253
|
+
"attempts": "Tentative {attempts} sur {maxAttempts}",
|
|
1254
|
+
"passedSummary": "Les {total} vérifications ont réussi à la tentative {attempts}. La demande de tirage a été ouverte depuis une copie sans erreur.",
|
|
1255
|
+
"failedSummary": "{failed} vérifications sur {total} échouaient encore après {attempts} tentatives sur {maxAttempts}, aucune demande de tirage n'a donc été ouverte.",
|
|
1256
|
+
"exitCode": "code de sortie {code}",
|
|
1257
|
+
"timedOut": "délai dépassé"
|
|
1227
1258
|
}
|
|
1228
1259
|
},
|
|
1229
1260
|
"inspector": {
|
|
@@ -2397,6 +2428,7 @@
|
|
|
2397
2428
|
"scopes": {
|
|
2398
2429
|
"read": "Lecture seule",
|
|
2399
2430
|
"write": "Lecture et écriture",
|
|
2431
|
+
"decide": "Répondre aux décisions",
|
|
2400
2432
|
"admin": "Accès complet"
|
|
2401
2433
|
},
|
|
2402
2434
|
"toast": {
|
package/i18n/locales/he.json
CHANGED
|
@@ -512,6 +512,8 @@
|
|
|
512
512
|
"env_test_not_a_frame": "הבדיקה העצמית של הסביבה רצה לכל שירות בנפרד, ולכן ניתן להתחיל אותה רק על שירות, לא על מודול או משימה.",
|
|
513
513
|
"env_test_infraless": "לשירות זה לא מוגדרת הקצאת סביבה זמנית, ולכן אין מה שהבדיקה העצמית תבדוק.",
|
|
514
514
|
"env_test_not_provisionable": "לשירות זה יש סוג הקצאה, אך עדיין אין עבורו מטפל בסביבת העבודה, ולכן ההקצאה אינה יכולה לרוץ. הגדר מטפל סביבה.",
|
|
515
|
+
"env_test_not_provisionable_no_handler": "לא מוגדר מטפל סביבה של סביבת העבודה עבור סוג ההקצאה של שירות זה. בתשתית → סביבות בדיקה, רשום אחד — עבור ספק מותאם אישית, מטפל Custom (remote-custom) שה-manifest id המקובל שלו תואם לזה ששירות זה מקבע.",
|
|
516
|
+
"env_test_not_provisionable_type_mismatch": "יותר ממטפל סביבה אחד יכול להתאים לסוג ההקצאה של שירות זה. קבע manifest id עבור שירות זה כך שרק אחד ייפתר, או הסר את המטפל החופף בתשתית → סביבות בדיקה.",
|
|
515
517
|
"env_test_no_vcs": "הבדיקה העצמית זקוקה לספק Git כדי ליצור ולמחוק את הענף החד-פעמי שלה, אך סביבת עבודה זו אינה מחוברת לאף אחד."
|
|
516
518
|
},
|
|
517
519
|
"action": {
|
|
@@ -1058,6 +1060,25 @@
|
|
|
1058
1060
|
"remove": "Remove {repo}",
|
|
1059
1061
|
"connectFirst": "Connect GitHub to attach reference repositories.",
|
|
1060
1062
|
"hint": "The document writer clones these read-only to reuse existing solutions as a reference while drafting. It never changes them."
|
|
1063
|
+
},
|
|
1064
|
+
"validationChecks": {
|
|
1065
|
+
"title": "בדיקות לפני בקשת משיכה",
|
|
1066
|
+
"sectionHint": "פקודות שרצות על העותק המקומי אחרי שהמפתח מסיים ולפני פתיחת בקשת משיכה. כישלון מוחזר לסוכן לתיקון; רק עותק תקין פותח בקשת משיכה.",
|
|
1067
|
+
"hint": "כל פקודה רצה עם `sh -c` בעותק המקומי של שירות זה, לפי הסדר. יש לתקן את הקוד ולא את הבדיקה — הסוכן מונחה לא להחליש אותן.",
|
|
1068
|
+
"clear": "ניקוי",
|
|
1069
|
+
"configNoun": "בדיקות אימות",
|
|
1070
|
+
"label": "שם",
|
|
1071
|
+
"labelPlaceholder": "lint",
|
|
1072
|
+
"command": "פקודה",
|
|
1073
|
+
"addCheck": "הוספת בדיקה",
|
|
1074
|
+
"removeCheck": "הסרת בדיקה זו",
|
|
1075
|
+
"empty": "לא הוגדרו בדיקות. הרצות של שירות זה פותחות בקשת משיכה ללא אימות מקומי.",
|
|
1076
|
+
"maxAttempts": "ניסיונות",
|
|
1077
|
+
"maxAttemptsHint": "סבבי תיקון",
|
|
1078
|
+
"save": "שמירת בדיקות",
|
|
1079
|
+
"savedToast": "הבדיקות נשמרו",
|
|
1080
|
+
"saveFailed": "לא ניתן היה לשמור את הבדיקות",
|
|
1081
|
+
"clearFailed": "לא ניתן היה לנקות את הבדיקות"
|
|
1061
1082
|
}
|
|
1062
1083
|
},
|
|
1063
1084
|
"panels": {
|
|
@@ -1224,6 +1245,16 @@
|
|
|
1224
1245
|
"outOfTen": "{value}/10",
|
|
1225
1246
|
"relatedFindings": "ממצאים קשורים",
|
|
1226
1247
|
"unnamed": "תקן"
|
|
1248
|
+
},
|
|
1249
|
+
"validation": {
|
|
1250
|
+
"heading": "בדיקות לפני בקשת משיכה",
|
|
1251
|
+
"passed": "עברו",
|
|
1252
|
+
"failed": "נכשלו",
|
|
1253
|
+
"attempts": "ניסיון {attempts} מתוך {maxAttempts}",
|
|
1254
|
+
"passedSummary": "כל {total} הבדיקות עברו בניסיון {attempts}. בקשת המשיכה נפתחה מעותק תקין.",
|
|
1255
|
+
"failedSummary": "{failed} מתוך {total} בדיקות עדיין נכשלו אחרי {attempts} מתוך {maxAttempts} ניסיונות, ולכן לא נפתחה בקשת משיכה.",
|
|
1256
|
+
"exitCode": "קוד יציאה {code}",
|
|
1257
|
+
"timedOut": "חריגת זמן"
|
|
1227
1258
|
}
|
|
1228
1259
|
},
|
|
1229
1260
|
"inspector": {
|
|
@@ -2518,6 +2549,7 @@
|
|
|
2518
2549
|
"scopes": {
|
|
2519
2550
|
"read": "קריאה בלבד",
|
|
2520
2551
|
"write": "קריאה וכתיבה",
|
|
2552
|
+
"decide": "מענה להחלטות",
|
|
2521
2553
|
"admin": "גישה מלאה"
|
|
2522
2554
|
},
|
|
2523
2555
|
"toast": {
|
package/i18n/locales/it.json
CHANGED
|
@@ -550,6 +550,7 @@
|
|
|
550
550
|
"scopes": {
|
|
551
551
|
"read": "Sola lettura",
|
|
552
552
|
"write": "Lettura e scrittura",
|
|
553
|
+
"decide": "Rispondere alle decisioni",
|
|
553
554
|
"admin": "Accesso completo"
|
|
554
555
|
},
|
|
555
556
|
"toast": {
|
|
@@ -1345,6 +1346,25 @@
|
|
|
1345
1346
|
"remove": "Rimuovi {repo}",
|
|
1346
1347
|
"connectFirst": "Collega GitHub per allegare repository di riferimento.",
|
|
1347
1348
|
"hint": "Il document writer li clona in sola lettura per riutilizzare soluzioni esistenti come riferimento durante la stesura. Non li modifica mai."
|
|
1349
|
+
},
|
|
1350
|
+
"validationChecks": {
|
|
1351
|
+
"title": "Validazione prima della PR",
|
|
1352
|
+
"sectionHint": "Comandi eseguiti sulla copia di lavoro quando lo sviluppatore ha finito e prima di aprire una richiesta di modifica. Un errore torna all'agente perché lo corregga; solo una copia senza errori apre una PR.",
|
|
1353
|
+
"hint": "Ogni comando viene eseguito con `sh -c` nella copia di lavoro di questo servizio, in ordine. Va corretto il codice, non il controllo: all'agente viene chiesto di non indebolirli.",
|
|
1354
|
+
"clear": "Svuota",
|
|
1355
|
+
"configNoun": "controlli di validazione",
|
|
1356
|
+
"label": "Nome",
|
|
1357
|
+
"labelPlaceholder": "lint",
|
|
1358
|
+
"command": "Comando",
|
|
1359
|
+
"addCheck": "Aggiungi controllo",
|
|
1360
|
+
"removeCheck": "Rimuovi questo controllo",
|
|
1361
|
+
"empty": "Nessun controllo configurato. Le esecuzioni di questo servizio aprono una richiesta di modifica senza verifica locale.",
|
|
1362
|
+
"maxAttempts": "Tentativi",
|
|
1363
|
+
"maxAttemptsHint": "Cicli di correzione",
|
|
1364
|
+
"save": "Salva controlli",
|
|
1365
|
+
"savedToast": "Controlli salvati",
|
|
1366
|
+
"saveFailed": "Impossibile salvare i controlli",
|
|
1367
|
+
"clearFailed": "Impossibile svuotare i controlli"
|
|
1348
1368
|
}
|
|
1349
1369
|
},
|
|
1350
1370
|
"panels": {
|
|
@@ -1511,6 +1531,16 @@
|
|
|
1511
1531
|
"outOfTen": "{value}/10",
|
|
1512
1532
|
"relatedFindings": "Rilievi correlati",
|
|
1513
1533
|
"unnamed": "Standard"
|
|
1534
|
+
},
|
|
1535
|
+
"validation": {
|
|
1536
|
+
"heading": "Validazione prima della PR",
|
|
1537
|
+
"passed": "Superata",
|
|
1538
|
+
"failed": "Fallita",
|
|
1539
|
+
"attempts": "Tentativo {attempts} di {maxAttempts}",
|
|
1540
|
+
"passedSummary": "Tutti i {total} controlli sono stati superati al tentativo {attempts}. La richiesta di modifica è stata aperta da una copia senza errori.",
|
|
1541
|
+
"failedSummary": "{failed} controlli su {total} fallivano ancora dopo {attempts} tentativi su {maxAttempts}, quindi non è stata aperta alcuna richiesta di modifica.",
|
|
1542
|
+
"exitCode": "codice di uscita {code}",
|
|
1543
|
+
"timedOut": "tempo scaduto"
|
|
1514
1544
|
}
|
|
1515
1545
|
},
|
|
1516
1546
|
"inspector": {
|
|
@@ -4137,6 +4167,8 @@
|
|
|
4137
4167
|
"env_test_not_a_frame": "L'autotest dell'ambiente viene eseguito per servizio, quindi può essere avviato solo su un servizio, non su un modulo o un'attività.",
|
|
4138
4168
|
"env_test_infraless": "Questo servizio non ha alcun provisioning di ambiente effimero configurato, quindi non c'è nulla che l'autotest possa verificare.",
|
|
4139
4169
|
"env_test_not_provisionable": "Questo servizio ha un tipo di provisioning, ma non è ancora disponibile alcun handler del workspace, quindi il provisioning non può essere eseguito. Configura un handler dell'ambiente.",
|
|
4170
|
+
"env_test_not_provisionable_no_handler": "Nessun handler dell'ambiente del workspace è configurato per il tipo di provisioning di questo servizio. In Infrastruttura → Ambienti di test, registrane uno — per un provider personalizzato, un handler Custom (remote-custom) il cui manifest id accettato corrisponde a quello che questo servizio fissa.",
|
|
4171
|
+
"env_test_not_provisionable_type_mismatch": "Più di un handler dell'ambiente potrebbe corrispondere al tipo di provisioning di questo servizio. Fissa un manifest id per questo servizio in modo che se ne risolva esattamente uno, oppure rimuovi l'handler sovrapposto in Infrastruttura → Ambienti di test.",
|
|
4140
4172
|
"env_test_no_vcs": "L'autotest ha bisogno di un provider Git per creare ed eliminare il suo branch usa e getta, ma questo workspace non è collegato a nessuno."
|
|
4141
4173
|
},
|
|
4142
4174
|
"action": {
|
package/i18n/locales/ja.json
CHANGED
|
@@ -512,6 +512,8 @@
|
|
|
512
512
|
"env_test_not_a_frame": "環境のセルフテストはサービスごとに実行されるため、モジュールやタスクではなくサービスでのみ開始できます。",
|
|
513
513
|
"env_test_infraless": "このサービスには一時環境のプロビジョニングが設定されていないため、セルフテストで検証するものがありません。",
|
|
514
514
|
"env_test_not_provisionable": "このサービスにはプロビジョニングタイプがありますが、対応するワークスペースハンドラーがまだ解決されないため、プロビジョニングを実行できません。環境ハンドラーを設定してください。",
|
|
515
|
+
"env_test_not_provisionable_no_handler": "このサービスのプロビジョニングタイプに対して、ワークスペースの環境ハンドラーが設定されていません。インフラストラクチャ → テスト環境 で 1 つ登録してください。カスタムプロバイダーの場合は、受け入れる manifest id がこのサービスが固定するものと一致する Custom (remote-custom) ハンドラーを登録します。",
|
|
516
|
+
"env_test_not_provisionable_type_mismatch": "複数の環境ハンドラーがこのサービスのプロビジョニングタイプに一致する可能性があります。ちょうど 1 つだけが解決されるように、このサービスに manifest id を固定するか、インフラストラクチャ → テスト環境 で重複するハンドラーを削除してください。",
|
|
515
517
|
"env_test_no_vcs": "セルフテストは使い捨てブランチの作成と削除のために Git プロバイダーを必要としますが、このワークスペースはいずれにも接続されていません。"
|
|
516
518
|
},
|
|
517
519
|
"action": {
|
|
@@ -1058,6 +1060,25 @@
|
|
|
1058
1060
|
"remove": "Remove {repo}",
|
|
1059
1061
|
"connectFirst": "Connect GitHub to attach reference repositories.",
|
|
1060
1062
|
"hint": "The document writer clones these read-only to reuse existing solutions as a reference while drafting. It never changes them."
|
|
1063
|
+
},
|
|
1064
|
+
"validationChecks": {
|
|
1065
|
+
"title": "PR 前の検証",
|
|
1066
|
+
"sectionHint": "コーダーの作業完了後、プルリクエストを開く前にチェックアウトに対して実行されるコマンドです。失敗した場合はエージェントに差し戻して修正させ、問題のないチェックアウトだけが PR を開きます。",
|
|
1067
|
+
"hint": "各コマンドはこのサービスのチェックアウト内で `sh -c` により順番に実行されます。修正すべきはコードであり検査ではありません。エージェントには検査を弱めないよう指示しています。",
|
|
1068
|
+
"clear": "消去",
|
|
1069
|
+
"configNoun": "検証コマンド",
|
|
1070
|
+
"label": "名前",
|
|
1071
|
+
"labelPlaceholder": "lint",
|
|
1072
|
+
"command": "コマンド",
|
|
1073
|
+
"addCheck": "検査を追加",
|
|
1074
|
+
"removeCheck": "この検査を削除",
|
|
1075
|
+
"empty": "検査が設定されていません。このサービスの実行はローカル検証なしでプルリクエストを開きます。",
|
|
1076
|
+
"maxAttempts": "試行回数",
|
|
1077
|
+
"maxAttemptsHint": "修正の反復回数",
|
|
1078
|
+
"save": "検査を保存",
|
|
1079
|
+
"savedToast": "検査を保存しました",
|
|
1080
|
+
"saveFailed": "検査を保存できませんでした",
|
|
1081
|
+
"clearFailed": "検査を消去できませんでした"
|
|
1061
1082
|
}
|
|
1062
1083
|
},
|
|
1063
1084
|
"panels": {
|
|
@@ -1224,6 +1245,16 @@
|
|
|
1224
1245
|
"outOfTen": "{value}/10",
|
|
1225
1246
|
"relatedFindings": "関連する指摘",
|
|
1226
1247
|
"unnamed": "基準"
|
|
1248
|
+
},
|
|
1249
|
+
"validation": {
|
|
1250
|
+
"heading": "PR 前の検証",
|
|
1251
|
+
"passed": "成功",
|
|
1252
|
+
"failed": "失敗",
|
|
1253
|
+
"attempts": "試行 {attempts}/{maxAttempts}",
|
|
1254
|
+
"passedSummary": "{total} 件すべての検査が {attempts} 回目の試行で成功しました。プルリクエストは問題のないチェックアウトから開かれました。",
|
|
1255
|
+
"failedSummary": "{maxAttempts} 回中 {attempts} 回試行しても {total} 件中 {failed} 件の検査が失敗したままだったため、プルリクエストは開かれませんでした。",
|
|
1256
|
+
"exitCode": "終了コード {code}",
|
|
1257
|
+
"timedOut": "タイムアウト"
|
|
1227
1258
|
}
|
|
1228
1259
|
},
|
|
1229
1260
|
"inspector": {
|
|
@@ -2519,6 +2550,7 @@
|
|
|
2519
2550
|
"scopes": {
|
|
2520
2551
|
"read": "読み取り専用",
|
|
2521
2552
|
"write": "読み取りと書き込み",
|
|
2553
|
+
"decide": "判断への回答",
|
|
2522
2554
|
"admin": "フルアクセス"
|
|
2523
2555
|
},
|
|
2524
2556
|
"toast": {
|
package/i18n/locales/pl.json
CHANGED
|
@@ -512,6 +512,8 @@
|
|
|
512
512
|
"env_test_not_a_frame": "Autotest środowiska działa dla poszczególnych usług, więc można go uruchomić tylko dla usługi, a nie dla modułu czy zadania.",
|
|
513
513
|
"env_test_infraless": "Ta usługa nie ma skonfigurowanego udostępniania środowisk tymczasowych, więc autotest nie ma czego sprawdzić.",
|
|
514
514
|
"env_test_not_provisionable": "Ta usługa ma typ udostępniania, ale nie ma jeszcze dla niego żadnego mechanizmu obsługi w przestrzeni roboczej, więc udostępnianie nie może zostać uruchomione. Skonfiguruj mechanizm obsługi środowiska.",
|
|
515
|
+
"env_test_not_provisionable_no_handler": "Dla typu udostępniania tej usługi nie skonfigurowano żadnego mechanizmu obsługi środowiska w przestrzeni roboczej. W sekcji Infrastruktura → Środowiska testowe zarejestruj jeden — dla dostawcy niestandardowego mechanizm obsługi Custom (remote-custom), którego akceptowany manifest id odpowiada temu, który przypina ta usługa.",
|
|
516
|
+
"env_test_not_provisionable_type_mismatch": "Do typu udostępniania tej usługi może pasować więcej niż jeden mechanizm obsługi środowiska. Przypnij manifest id do tej usługi, aby rozwiązywany był dokładnie jeden, albo usuń nakładający się mechanizm obsługi w sekcji Infrastruktura → Środowiska testowe.",
|
|
515
517
|
"env_test_no_vcs": "Autotest potrzebuje dostawcy Git, aby utworzyć i usunąć swoją jednorazową gałąź, ale ta przestrzeń robocza nie jest połączona z żadnym."
|
|
516
518
|
},
|
|
517
519
|
"action": {
|
|
@@ -1058,6 +1060,25 @@
|
|
|
1058
1060
|
"remove": "Remove {repo}",
|
|
1059
1061
|
"connectFirst": "Connect GitHub to attach reference repositories.",
|
|
1060
1062
|
"hint": "The document writer clones these read-only to reuse existing solutions as a reference while drafting. It never changes them."
|
|
1063
|
+
},
|
|
1064
|
+
"validationChecks": {
|
|
1065
|
+
"title": "Walidacja przed PR",
|
|
1066
|
+
"sectionHint": "Polecenia uruchamiane na kopii roboczej po zakończeniu pracy programisty, a przed otwarciem żądania scalenia. Niepowodzenie wraca do agenta do naprawy; tylko czysta kopia otwiera żądanie scalenia.",
|
|
1067
|
+
"hint": "Każde polecenie jest uruchamiane przez `sh -c` w kopii roboczej tej usługi, po kolei. Poprawiaj kod, a nie sprawdzenie — agent ma polecenie ich nie osłabiać.",
|
|
1068
|
+
"clear": "Wyczyść",
|
|
1069
|
+
"configNoun": "sprawdzenia walidacyjne",
|
|
1070
|
+
"label": "Nazwa",
|
|
1071
|
+
"labelPlaceholder": "lint",
|
|
1072
|
+
"command": "Polecenie",
|
|
1073
|
+
"addCheck": "Dodaj sprawdzenie",
|
|
1074
|
+
"removeCheck": "Usuń to sprawdzenie",
|
|
1075
|
+
"empty": "Nie skonfigurowano żadnych sprawdzeń. Uruchomienia tej usługi otwierają żądanie scalenia bez lokalnej weryfikacji.",
|
|
1076
|
+
"maxAttempts": "Próby",
|
|
1077
|
+
"maxAttemptsHint": "Rundy poprawek",
|
|
1078
|
+
"save": "Zapisz sprawdzenia",
|
|
1079
|
+
"savedToast": "Sprawdzenia zapisane",
|
|
1080
|
+
"saveFailed": "Nie udało się zapisać sprawdzeń",
|
|
1081
|
+
"clearFailed": "Nie udało się wyczyścić sprawdzeń"
|
|
1061
1082
|
}
|
|
1062
1083
|
},
|
|
1063
1084
|
"panels": {
|
|
@@ -1224,6 +1245,16 @@
|
|
|
1224
1245
|
"outOfTen": "{value}/10",
|
|
1225
1246
|
"relatedFindings": "Powiązane ustalenia",
|
|
1226
1247
|
"unnamed": "Standard"
|
|
1248
|
+
},
|
|
1249
|
+
"validation": {
|
|
1250
|
+
"heading": "Walidacja przed PR",
|
|
1251
|
+
"passed": "Zaliczona",
|
|
1252
|
+
"failed": "Niezaliczona",
|
|
1253
|
+
"attempts": "Próba {attempts} z {maxAttempts}",
|
|
1254
|
+
"passedSummary": "Wszystkie sprawdzenia ({total}) przeszły w próbie {attempts}. Żądanie scalenia zostało otwarte z czystej kopii roboczej.",
|
|
1255
|
+
"failedSummary": "Po {attempts} z {maxAttempts} prób nadal nie przechodziło {failed} z {total} sprawdzeń, więc nie otwarto żądania scalenia.",
|
|
1256
|
+
"exitCode": "kod wyjścia {code}",
|
|
1257
|
+
"timedOut": "przekroczono czas"
|
|
1227
1258
|
}
|
|
1228
1259
|
},
|
|
1229
1260
|
"inspector": {
|
|
@@ -2397,6 +2428,7 @@
|
|
|
2397
2428
|
"scopes": {
|
|
2398
2429
|
"read": "Tylko odczyt",
|
|
2399
2430
|
"write": "Odczyt i zapis",
|
|
2431
|
+
"decide": "Odpowiadanie na decyzje",
|
|
2400
2432
|
"admin": "Pełny dostęp"
|
|
2401
2433
|
},
|
|
2402
2434
|
"toast": {
|