@mcptoolshop/housekeeping 1.4.0 → 1.5.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/CHANGELOG.md +30 -0
- package/README.es.md +125 -78
- package/README.fr.md +119 -114
- package/README.hi.md +74 -78
- package/README.it.md +117 -75
- package/README.ja.md +82 -79
- package/README.md +2 -0
- package/README.pt-BR.md +87 -69
- package/README.zh.md +72 -89
- package/housekeeping.config.example.json +2 -1
- package/package.json +1 -1
- package/src/cli.mjs +85 -2
- package/src/collect.mjs +74 -4
- package/src/config.mjs +13 -4
- package/src/load.mjs +55 -3
- package/src/schema.sql +26 -0
- package/src/workflow-risks.mjs +35 -2
package/README.it.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.md">
|
|
2
|
+
<a href="README.md">English</a> | <a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
@@ -21,51 +21,63 @@
|
|
|
21
21
|
<a href="https://mcp-tool-shop-org.github.io/housekeeping/handbook/"><img src="https://img.shields.io/badge/Handbook-read-blue" alt="Handbook" /></a>
|
|
22
22
|
</p>
|
|
23
23
|
|
|
24
|
-
Un'unica scansione raccoglie lo stato
|
|
24
|
+
Un'unica scansione raccoglie lo stato CI di ogni repository, le issue aperte e le richieste di pull,
|
|
25
|
+
le release, i tag di versione, i file di workflow, la protezione dei branch, gli avvisi di sicurezza,
|
|
26
|
+
i file di lock e la fatturazione di Actions in SQLite, quindi esegue un controllo su tutto questo rispetto alle
|
|
27
|
+
regole definite.
|
|
25
28
|
|
|
26
29
|
Fornisce risposte, per l'intera organizzazione contemporaneamente:
|
|
27
30
|
|
|
28
|
-
- Quali branch predefiniti
|
|
31
|
+
- Quali sono i branch predefiniti contrassegnati come problematici e si tratta di una branch principale interrotta o di una cronologia obsoleta?
|
|
29
32
|
- Quali richieste di pull non possono mai essere unite, perché un controllo richiesto che non produce alcun risultato le sta bloccando?
|
|
30
|
-
- Quali
|
|
33
|
+
- Quali deployment vengono rifiutati dalle impostazioni del repository?
|
|
31
34
|
- Dove `package.json`, i tag Git e il registro npm si sono discostati?
|
|
32
35
|
- Quali workflow violano le regole sui costi di Actions, quanto sono costati e quali job hanno consumato tali costi?
|
|
33
|
-
- Quali repository contengono avvisi che il
|
|
36
|
+
- Quali repository contengono avvisi che il conteggio degli avvisi di GitHub non rileva?
|
|
34
37
|
|
|
35
|
-
È uno strumento di audit, non uno strumento di correzione. Legge
|
|
38
|
+
È uno strumento di audit, non uno strumento di correzione. Legge GitHub e non modifica nulla.
|
|
36
39
|
|
|
37
40
|
## Un agente per ogni repository
|
|
38
41
|
|
|
39
|
-
Un'organizzazione con dozzine di repository non
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
Un'organizzazione con dozzine di repository non ha un unico punto in cui risiedono i suoi
|
|
43
|
+
dati. housekeeping è questo punto, e il suo server MCP, `hk-mcp`, li fornisce
|
|
44
|
+
a un agente AI. Con esso, un singolo agente può agire come coordinatore per l'intera
|
|
45
|
+
organizzazione:
|
|
46
|
+
|
|
47
|
+
1. **Scansione.** `hk refresh` acquisisce un'istantanea di ogni repository.
|
|
48
|
+
2. **Smistamento.** L'agente chiede quali elementi sono problematici, quali sono bloccati e quali sono peggiorati,
|
|
49
|
+
e riceve risposte che già distinguono una branch principale interrotta da una cronologia obsoleta e
|
|
50
|
+
una richiesta di pull bloccata da una in conflitto.
|
|
51
|
+
3. **Pianificazione di un'ondata.** Una singola query `hk_sql` individua tutti i repository con la stessa
|
|
52
|
+
configurazione, in modo che una correzione diventi una singola richiesta di pull per repository invece di una ricerca.
|
|
53
|
+
4. **Esecuzione del lavoro.** housekeeping non scrive mai. L'agente apre le richieste di pull
|
|
54
|
+
con i propri strumenti, con le proprie autorizzazioni e con la tua approvazione.
|
|
55
|
+
5. **Verifica.** Esegui di nuovo la scansione. L'anomalia è stata risolta o meno, e la differenza
|
|
56
|
+
tra due istantanee è una query.
|
|
46
57
|
|
|
47
58
|
Domande a cui un agente risponde in una o due chiamate:
|
|
48
59
|
|
|
49
|
-
- Quali branch predefiniti
|
|
50
|
-
- Quali richieste di pull non possono mai essere unite e
|
|
60
|
+
- Quali sono i branch predefiniti contrassegnati come problematici e quale job e quale passaggio hanno causato il problema?
|
|
61
|
+
- Quali richieste di pull non possono mai essere unite e la causa è il trigger o un conflitto?
|
|
51
62
|
- Quali repository contengono un avviso di produzione per il quale GitHub non mostra alcun avviso?
|
|
52
|
-
- Quali workflow pianificati violano le regole per le pianificazioni e
|
|
63
|
+
- Quali workflow pianificati violano le regole per le pianificazioni e come?
|
|
53
64
|
- Quanto sono costati Actions e quale job ha consumato tali costi?
|
|
54
65
|
- Cosa è cambiato dall'ultima scansione?
|
|
55
66
|
|
|
56
67
|
| Strumento | A cosa risponde |
|
|
57
68
|
|---|---|
|
|
58
|
-
| `hk_summary` | Totali per la scansione più recente: repository, issue, richieste di pull, workflow,
|
|
59
|
-
| `hk_findings` |
|
|
60
|
-
| `hk_ci` | Repository
|
|
61
|
-
| `hk_repo` | Un singolo repository nel dettaglio:
|
|
69
|
+
| `hk_summary` | Totali per la scansione più recente: repository, issue, richieste di pull, workflow, anomalie. |
|
|
70
|
+
| `hk_findings` | Anomalie per codice, gravità, categoria o repository; conteggi per codice quando non filtrati. L'anomalia di una branch principale problematica indica il job e il passaggio che hanno causato il problema. |
|
|
71
|
+
| `hk_ci` | Repository il cui branch predefinito è problematico e i workflow che non sono riusciti; anche le pianificazioni non riuscite, i branch delle richieste di pull non riuscite e i repository senza CI. |
|
|
72
|
+
| `hk_repo` | Un singolo repository nel dettaglio: anomalie, workflow, richieste di pull e issue aperte. |
|
|
62
73
|
| `hk_backlog` | Richieste di pull o issue aperte in tutta l'organizzazione, ordinate dalla più vecchia alla più recente. |
|
|
63
74
|
| `hk_health` | Un punteggio di salute per repository, ordinato dal peggiore al migliore. |
|
|
64
|
-
| `hk_cost` | Spese di Actions per repository, workflow o job, separate
|
|
75
|
+
| `hk_cost` | Spese di Actions per repository, workflow o job, separate tra costi lordi e netti. |
|
|
65
76
|
| `hk_sql` | Una singola istruzione `SELECT` o `WITH` in sola lettura rispetto al data warehouse. |
|
|
66
77
|
| `hk_schema` | Le tabelle e le colonne, per scrivere query `hk_sql`. |
|
|
67
78
|
|
|
68
|
-
Ogni risposta proviene
|
|
79
|
+
Ogni risposta proviene dall'istantanea più recente, aperta in sola lettura. Una chiamata non riuscita
|
|
80
|
+
restituisce un errore strutturato, mai una traccia dello stack.
|
|
69
81
|
|
|
70
82
|
### Come connetterlo
|
|
71
83
|
|
|
@@ -78,43 +90,60 @@ Ogni risposta proviene dalla scansione più recente, aperta in sola lettura. Una
|
|
|
78
90
|
}
|
|
79
91
|
```
|
|
80
92
|
|
|
81
|
-
`HK_HOME` è la directory da cui si esegue la scansione. Da
|
|
93
|
+
`HK_HOME` è la directory da cui si esegue la scansione. Da un clone, utilizzare
|
|
94
|
+
`"command": "node", "args": ["/path/to/housekeeping/src/mcp.mjs"]`. Il secondo
|
|
95
|
+
server è [Atlas](https://github.com/dogfood-lab/testing-os/tree/main/packages/atlas),
|
|
96
|
+
che risponde allo stesso agente su un singolo repository alla volta (vedi sotto). Su
|
|
97
|
+
Windows, avvia un comando installato a livello globale tramite `cmd /c`.
|
|
82
98
|
|
|
83
99
|
## housekeeping e Atlas
|
|
84
100
|
|
|
85
|
-
[Atlas](https://github.com/dogfood-lab/testing-os/tree/main/packages/atlas)
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
101
|
+
[Atlas](https://github.com/dogfood-lab/testing-os/tree/main/packages/atlas)
|
|
102
|
+
(`@dogfood-lab/atlas`) mappa un singolo repository: le sue parti e le sue porte, ovvero
|
|
103
|
+
ogni workflow con ciò che esegue, pubblica e distribuisce. La mappa viene salvata
|
|
104
|
+
come `atlas/` e controllata in CI. housekeeping è la vista dell'organizzazione. I due
|
|
105
|
+
sono progettati per funzionare insieme.
|
|
106
|
+
|
|
107
|
+
- **Ogni mappa, acquisita.** Una scansione legge la mappa salvata di ciascun repository insieme
|
|
108
|
+
a tutto il resto e segnala quali repository non ne hanno, quali non eseguono mai `atlas check` e quali
|
|
109
|
+
contengono un motore diverso da quello a cui il resto dell'
|
|
110
|
+
organizzazione fa riferimento.
|
|
111
|
+
- **Dove un'esecuzione problematica si è verificata.** Quando un branch predefinito è problematico, l'anomalia indica
|
|
112
|
+
il job e il passaggio che non sono riusciti e, tramite la mappa, il comando che quel passaggio
|
|
113
|
+
esegue, in modo che la correzione inizi nel file corretto.
|
|
114
|
+
- **Fatti sul deployment dalla mappa.** L'ambiente in cui un job esegue il deployment viene preso dalla
|
|
115
|
+
mappa in cui lo registra, in modo che entrambi gli strumenti leggano un workflow nello stesso modo.
|
|
116
|
+
- **Avvisi in tutta la flotta.** Atlas segnala un passaggio del workflow che fallirà
|
|
117
|
+
prima di essere eseguito, come uno strumento che richiede una versione runtime più recente di quella installata dal job.
|
|
118
|
+
Il report elenca questi elementi per tutti i repository contemporaneamente.
|
|
119
|
+
|
|
120
|
+
Un agente con entrambi i server passa da "questi dodici repository sono bloccati"
|
|
121
|
+
(housekeeping) a "questo è il workflow, il job e i file che una modifica raggiungerà" (Atlas), senza aprire ogni repository manualmente.
|
|
122
|
+
|
|
123
|
+
## Perché ha questa forma
|
|
95
124
|
|
|
96
125
|
| Livello | Scelta | Motivo |
|
|
97
126
|
|---|---|---|
|
|
98
|
-
| Trasporto |
|
|
99
|
-
| Raccolta | GitHub GraphQL, a pagine | Una singola query restituisce metadati, issue aperte, richieste di pull aperte, release e alberi di file per una pagina di repository. Una pagina che continua a superare il
|
|
100
|
-
| Esecuzioni di Actions | REST | GraphQL non
|
|
101
|
-
|
|
|
102
|
-
| Tariffe per
|
|
103
|
-
| Archiviazione
|
|
104
|
-
| Fonte di
|
|
105
|
-
| Registro delle scansioni
|
|
127
|
+
| Trasporto | la CLI `gh` | Già contiene il tuo token. Lo strumento non memorizza né richiede mai una credenziale. |
|
|
128
|
+
| Raccolta | GitHub GraphQL, a pagine | Una singola query restituisce metadati, issue aperte, richieste di pull aperte, release e alberi di file per una pagina di repository. Una pagina che continua a superare il tempo limite viene dimezzata e richiesta di nuovo dallo stesso cursore. |
|
|
129
|
+
| Esecuzioni di Actions | REST | GraphQL non ha un'interfaccia Actions. |
|
|
130
|
+
| Costi di Actions | API di fatturazione più durate per job | La fattura indica il repository; solo i job indicano quale flusso di lavoro. Gli endpoint GitHub di `/timing` restituiscono zeri, quindi la somma per ogni job viene ricostruita e quindi confrontata con la fattura. |
|
|
131
|
+
| Tariffe per l'esecuzione | lettura dalla fattura | Una tariffa fatturata può differire dal prezzo di listino e una costante nel codice sorgente falsificherebbe ogni numero. |
|
|
132
|
+
| Archiviazione | SQLite tramite il `node:sqlite` integrato | Nessuna fase di compilazione nativa. |
|
|
133
|
+
| Fonte di verità | `data/snapshots/*.json` | Dati grezzi, modificabili e con possibilità di aggiungere solo dati. Il database viene derivato: `npm run rebuild` lo ricostruisce offline. |
|
|
134
|
+
| Registro delle scansioni | `data/sweeps.jsonl` | Una riga per ogni scansione, comprese le scansioni che hanno avuto esito negativo e le scansioni che non hanno trovato nulla di nuovo. |
|
|
106
135
|
|
|
107
136
|
Gli snapshot sono immutabili e additivi, quindi la differenza tra due date è un `JOIN`.
|
|
108
137
|
|
|
109
138
|
## Requisiti
|
|
110
139
|
|
|
111
140
|
- Node.js 22.5 o successivo.
|
|
112
|
-
- [GitHub
|
|
113
|
-
account
|
|
141
|
+
- La [CLI GitHub](https://cli.github.com/), con accesso (`gh auth status`) come
|
|
142
|
+
account in grado di leggere l'organizzazione. Per leggere le fatture e gli avvisi di sicurezza
|
|
114
143
|
sono necessari i permessi corrispondenti; in caso contrario, la scansione registra "non misurato" e
|
|
115
144
|
prosegue. Non registra mai un permesso mancante come risultato valido.
|
|
116
145
|
- Windows o Linux. È sviluppato su Windows e i suoi test vengono eseguiti su Linux in
|
|
117
|
-
CI. macOS dovrebbe funzionare
|
|
146
|
+
CI. macOS dovrebbe funzionare, ma non è stato testato.
|
|
118
147
|
|
|
119
148
|
## Utilizzo
|
|
120
149
|
|
|
@@ -147,6 +176,8 @@ hk findings # findings grouped by severity and code
|
|
|
147
176
|
hk health # per-repository health score, worst first
|
|
148
177
|
hk repo <name> # one repository in full
|
|
149
178
|
hk prs # every open pull request by age
|
|
179
|
+
hk branches # branches by state: merged, moved after merge, no PR
|
|
180
|
+
hk watch # open PRs, alerts and branches for a short watch list
|
|
150
181
|
hk versions # package.json against git tag against npm
|
|
151
182
|
hk actions # every workflow and its rule flags
|
|
152
183
|
hk cost # Actions cost, gross and net side by side
|
|
@@ -157,11 +188,11 @@ hk help # every command and flag
|
|
|
157
188
|
In una copia senza `npm link`, ogni `hk <command>` è `node src/cli.mjs <command>`.
|
|
158
189
|
|
|
159
190
|
`npm run rebuild` deriva nuovamente il database e il report dagli snapshot già
|
|
160
|
-
|
|
191
|
+
sul disco, senza accesso alla rete.
|
|
161
192
|
|
|
162
193
|
Una scansione completa effettua alcune centinaia di chiamate API. Non eseguire `refresh` in un ciclo.
|
|
163
194
|
|
|
164
|
-
I risultati vengono inviati all'output standard; i progressi e gli errori vengono inviati all'
|
|
195
|
+
I risultati vengono inviati all'output standard; i progressi e gli errori vengono inviati all'errore standard. Ogni
|
|
165
196
|
errore stampa un codice e un suggerimento. Codici di uscita: 0 ok, 1 errore utente, 2 errore di runtime, 3 parziale (la scansione è terminata, con delle lacune).
|
|
166
197
|
|
|
167
198
|
## Configurazione
|
|
@@ -175,20 +206,21 @@ errore stampa un codice e un suggerimento. Codici di uscita: 0 ok, 1 errore uten
|
|
|
175
206
|
}
|
|
176
207
|
```
|
|
177
208
|
|
|
178
|
-
- `org` è l'organizzazione da scansionare. `hk refresh <org>` lo sovrascrive. In
|
|
209
|
+
- `org` è l'organizzazione da scansionare. `hk refresh <org>` lo sovrascrive. In
|
|
210
|
+
caso contrario, la scansione si rifiuta di avviarsi.
|
|
179
211
|
- `metaRepos` sono i repository che contengono le impostazioni predefinite dell'organizzazione, le risorse o
|
|
180
|
-
gli strumenti, non un prodotto distribuito. Sono esenti dai risultati che hanno senso solo per un prodotto: mancanza di README, LICENSE e
|
|
212
|
+
gli strumenti, non un prodotto distribuito. Sono esenti dai risultati che hanno senso solo per un prodotto: mancanza di file README, LICENSE e simili, assenza di flussi di lavoro e assenza di versioni.
|
|
181
213
|
|
|
182
214
|
Un file non valido è un errore, mai un valore predefinito silenzioso: una chiave sconosciuta, un tipo errato o un JSON non valido interrompono l'esecuzione.
|
|
183
215
|
|
|
184
|
-
|
|
185
|
-
nella copia.
|
|
216
|
+
Eseguire da una copia, housekeeping mantiene `data/`, `reports/` e il file di configurazione
|
|
217
|
+
nella copia. Eseguire come pacchetto installato, li mantiene nella directory da cui
|
|
186
218
|
lo si esegue o in `HK_HOME` quando è impostato.
|
|
187
219
|
|
|
188
220
|
Ambiente: `HK_HOME` (dove risiedono i dati, i report e la configurazione),
|
|
189
221
|
`HK_CONFIG` (percorso della configurazione), `HK_DB` (percorso del database), `HK_LOG`
|
|
190
222
|
(`silent`, `normal`, `verbose` o `debug`), `HK_COST_REPOS` e
|
|
191
|
-
`HK_COST_BUDGET` (limiti per il costo per
|
|
223
|
+
`HK_COST_BUDGET` (limiti per il costo per job), `GH_PATH` (percorso di `gh`).
|
|
192
224
|
|
|
193
225
|
## Mantenere i dati privati
|
|
194
226
|
|
|
@@ -196,7 +228,7 @@ Ambiente: `HK_HOME` (dove risiedono i dati, i report e la configurazione),
|
|
|
196
228
|
repository pubblico.**
|
|
197
229
|
|
|
198
230
|
Uno snapshot registra i nomi e le descrizioni dei repository privati, ogni
|
|
199
|
-
avviso di sicurezza aperto con il pacchetto a cui si riferisce, i file di
|
|
231
|
+
avviso di sicurezza aperto con il pacchetto a cui si riferisce, i file del flusso di lavoro e la fatturazione di Actions. GitHub nasconde deliberatamente gli avvisi di sicurezza di un repository pubblico a tutti tranne che ai suoi manutentori; uno snapshot pubblicato fornirebbe tale elenco.
|
|
200
232
|
|
|
201
233
|
Il `.gitignore` di questo repository esclude `data/`, `reports/` e
|
|
202
234
|
`housekeeping.config.json`. Per mantenere la cronologia, che è lo scopo degli snapshot,
|
|
@@ -208,36 +240,46 @@ Le regole sono contenute in `src/analyze.mjs`. Ognuna di esse cita la regola scr
|
|
|
208
240
|
quindi un risultato può essere contestato rispetto a uno standard e non al gusto personale. Le regole
|
|
209
241
|
che questo repository distribuisce sono in [`rules/`](rules/):
|
|
210
242
|
|
|
211
|
-
- [`rules/github-actions.md`](rules/github-actions.md): filtri dei percorsi,
|
|
243
|
+
- [`rules/github-actions.md`](rules/github-actions.md): filtri dei percorsi, esecutori, dimensione della matrice, limite del file del flusso di lavoro, concorrenza.
|
|
212
244
|
- [`rules/shipcheck-product-standards.md`](rules/shipcheck-product-standards.md): il CI deve essere superato, i gate di rilascio, le versioni.
|
|
213
245
|
- [`rules/repo-first.md`](rules/repo-first.md): la branch predefinita.
|
|
214
|
-
- [`rules/atlas-map.md`](rules/atlas-map.md): una mappa impegnata di
|
|
246
|
+
- [`rules/atlas-map.md`](rules/atlas-map.md): una mappa impegnata di ciascun repository, controllata nel CI.
|
|
215
247
|
|
|
216
|
-
Sono gli standard di un'organizzazione. Se i vostri sono diversi, modificate il file
|
|
248
|
+
Sono gli standard di un'organizzazione. Se i vostri sono diversi, modificate il file delle regole
|
|
217
249
|
e la regola insieme.
|
|
218
250
|
|
|
219
|
-
Le regole si
|
|
220
|
-
|
|
221
|
-
- **
|
|
222
|
-
- **La cronologia non è un
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
- **Un
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
251
|
+
Le regole si assicurano di mantenere separate le cose che sembrano simili, perché combinarle produce rumore:
|
|
252
|
+
|
|
253
|
+
- **Una branch predefinita rossa non è una branch di richiesta di pull rossa.** Una branch Dependabot non riuscita è un backlog; un'esecuzione `push` non riuscita sulla branch predefinita è un errore. L'evento dell'esecuzione decide quale.
|
|
254
|
+
- **La cronologia non è un errore.** Un flusso di lavoro spostato in release-only mantiene
|
|
255
|
+
il suo ultimo errore sulla branch predefinita per sempre. Un flusso di lavoro eliminato mantiene le sue esecuzioni.
|
|
256
|
+
Nessuno dei due è un difetto attivo.
|
|
257
|
+
- **Un controllo richiesto che nulla può emettere non è un controllo che non è stato eseguito qui.**
|
|
258
|
+
Uno dice di eliminare il requisito; l'altro dice di correggere il trigger. Le correzioni
|
|
259
|
+
si contraddicono a vicenda.
|
|
260
|
+
- **Una richiesta di pull saltata dal trigger non è una richiesta di pull in conflitto.** GitHub non esegue
|
|
261
|
+
nessun flusso di lavoro di richiesta di pull su una richiesta di pull con conflitti, quindi il suo controllo mancante non dice nulla sul trigger. Quello richiede un rebase.
|
|
262
|
+
- **Un'esecuzione non riuscita non è un'esecuzione annullata.** `cancel-in-progress` esiste per interrompere
|
|
263
|
+
le esecuzioni obsolete, quindi i minuti annullati sono in genere la regola di concorrenza in funzione.
|
|
264
|
+
- **Il costo lordo non è il costo netto.** GitHub misura i repository pubblici a prezzo pieno e li sconta a zero. Il costo lordo è la potenza di calcolo reale; il costo netto è il denaro reale.
|
|
265
|
+
Non vengono mai sommati.
|
|
266
|
+
- **Non misurato non è pulito.** Un repository GitHub che non esegue la scansione dei report
|
|
267
|
+
non segnala alcun avviso. Un repository a cui il passaggio dei costi non è arrivato non ha una riga dei costi. Entrambi
|
|
268
|
+
vengono segnalati come sconosciuti.
|
|
269
|
+
|
|
270
|
+
La gravità determina un punteggio di integrità: critico 40, alto 15, medio 6, basso 2, informativo 0,
|
|
271
|
+
dedotto da 100. Il punteggio classifica l'attenzione, non la qualità.
|
|
272
|
+
|
|
273
|
+
Il [manuale](https://mcp-tool-shop-org.github.io/housekeeping/handbook/) elenca tutti i risultati, i comandi, i codici di errore e le tabelle.
|
|
232
274
|
|
|
233
275
|
## Sicurezza
|
|
234
276
|
|
|
235
|
-
- **Solo lettura.** Il raccoglitore
|
|
236
|
-
- **Nessuna credenziale.** L'autenticazione
|
|
237
|
-
- **Nessuna telemetria.** Gli unici host contattati sono l'API
|
|
238
|
-
- **
|
|
277
|
+
- **Solo lettura.** Il raccoglitore esegue GraphQL query e richieste REST `GET`. Non esegue mai operazioni di unione, invio, rilascio, pubblicazione o modifica delle impostazioni.
|
|
278
|
+
- **Nessuna credenziale.** L'autenticazione utilizza le credenziali già presenti in `gh`. Nessun dato viene scritto su disco al riguardo.
|
|
279
|
+
- **Nessuna telemetria.** Gli unici host contattati sono l'API GitHub, tramite `gh`, e il registro npm, per la verifica della versione e degli avvisi.
|
|
280
|
+
- **Cosa memorizza** è la parte sensibile: vedere "Mantenere i dati privati".
|
|
239
281
|
|
|
240
|
-
|
|
282
|
+
Segnalare una vulnerabilità come descritto in [SECURITY.md](SECURITY.md).
|
|
241
283
|
|
|
242
284
|
## Test
|
|
243
285
|
|
|
@@ -245,7 +287,7 @@ Segnala una vulnerabilità come descritto in [SECURITY.md](SECURITY.md).
|
|
|
245
287
|
npm test
|
|
246
288
|
```
|
|
247
289
|
|
|
248
|
-
Ogni regola viene testata in entrambe le direzioni: la
|
|
290
|
+
Ogni regola viene testata in entrambe le direzioni: la configurazione che deve attivarsi e la configurazione adiacente che non deve attivarsi. Un verificatore separato ricava un campione di risultati dai dati GitHub in tempo reale tramite il proprio canale di comunicazione e, in caso di assenza del database o della rete, segnala l'errore in modo evidente.
|
|
249
291
|
|
|
250
292
|
## Licenza
|
|
251
293
|
|
|
@@ -253,4 +295,4 @@ MIT. Vedere [LICENSE](LICENSE).
|
|
|
253
295
|
|
|
254
296
|
---
|
|
255
297
|
|
|
256
|
-
|
|
298
|
+
Realizzato da <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|