@mcptoolshop/housekeeping 1.3.1 → 1.4.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 +39 -0
- package/README.es.md +113 -70
- package/README.fr.md +145 -65
- package/README.hi.md +125 -65
- package/README.it.md +126 -65
- package/README.ja.md +111 -70
- package/README.md +89 -23
- package/README.pt-BR.md +144 -76
- package/README.zh.md +130 -66
- package/housekeeping.config.example.json +2 -1
- package/package.json +1 -1
- package/rules/atlas-map.md +6 -1
- package/rules/github-actions.md +7 -3
- package/src/analyze.mjs +148 -41
- package/src/collect.mjs +5 -2
- package/src/config.mjs +13 -4
- package/src/load.mjs +7 -3
- package/src/report.mjs +13 -9
- package/src/schema.sql +9 -1
- package/src/workflow-risks.mjs +125 -0
package/README.hi.md
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
12
|
An operational-health warehouse for a GitHub organization.<br>
|
|
13
|
-
One sweep, one SQLite database, findings you can argue with
|
|
13
|
+
One sweep, one SQLite database, findings you can argue with,<br>
|
|
14
|
+
and the whole-organization view an AI agent needs to coordinate every repository.
|
|
14
15
|
</p>
|
|
15
16
|
|
|
16
17
|
<p align="center">
|
|
@@ -20,38 +21,95 @@
|
|
|
20
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>
|
|
21
22
|
</p>
|
|
22
23
|
|
|
23
|
-
एक बार
|
|
24
|
+
एक बार में सभी रिपॉजिटरी की सीआई स्थिति, खुली समस्याओं और पुल अनुरोधों, रिलीज़, संस्करण टैग, वर्कफ़्लो फ़ाइलों, शाखा सुरक्षा, सुरक्षा अलर्ट, लॉकफ़ाइलों और एक्शन बिलिंग को एकत्र करता है, फिर इसे SQLite में संग्रहीत करता है और फिर इसे लिखित नियमों के विरुद्ध ऑडिट करता है।
|
|
24
25
|
|
|
25
26
|
यह एक साथ पूरी संस्था के लिए उत्तर देता है:
|
|
26
27
|
|
|
27
28
|
- कौन सी डिफ़ॉल्ट शाखाएँ लाल हैं, और क्या यह एक टूटी हुई मुख्य शाखा या पुरानी इतिहास है?
|
|
28
|
-
- कौन से पुल अनुरोध कभी भी मर्ज नहीं हो सकते, क्योंकि एक आवश्यक जाँच अवरुद्ध
|
|
29
|
-
- रिपॉजिटरी की अपनी सेटिंग्स कौन से
|
|
29
|
+
- कौन से पुल अनुरोध कभी भी मर्ज नहीं हो सकते, क्योंकि एक आवश्यक जाँच कुछ भी उत्सर्जित नहीं कर रही है और उन्हें अवरुद्ध कर रही है?
|
|
30
|
+
- रिपॉजिटरी की अपनी सेटिंग्स कौन से परिनियोजन को अस्वीकार करती हैं?
|
|
30
31
|
- `package.json`, गिट टैग और npm रजिस्ट्री कहाँ अलग हो गए हैं?
|
|
31
|
-
- कौन से वर्कफ़्लो एक्शन लागत नियमों का उल्लंघन करते हैं, उनकी लागत क्या थी, और किन
|
|
32
|
-
-
|
|
32
|
+
- कौन से वर्कफ़्लो एक्शन लागत नियमों का उल्लंघन करते हैं, उनकी लागत क्या थी, और किन नौकरियों ने इसे खर्च किया?
|
|
33
|
+
- कौन सी रिपॉजिटरी ऐसी सलाहें रखती हैं जिन्हें GitHub का अपना अलर्ट काउंट याद नहीं करता?
|
|
33
34
|
|
|
34
|
-
यह एक ऑडिट उपकरण है, न कि एक सुधारक। यह GitHub को पढ़ता है और कुछ भी नहीं
|
|
35
|
+
यह एक ऑडिट उपकरण है, न कि एक सुधारक। यह GitHub को पढ़ता है और कुछ भी नहीं बदलता।
|
|
35
36
|
|
|
36
|
-
##
|
|
37
|
+
## प्रत्येक रिपॉजिटरी पर एक एजेंट
|
|
37
38
|
|
|
38
|
-
|
|
39
|
+
दर्जनों रिपॉजिटरी वाली संस्था के पास कोई एक स्थान नहीं है जहाँ उसकी स्थिति संग्रहीत हो। हाउसकीपिंग वह स्थान है, और इसका एमसीपी सर्वर, `hk-mcp`, इसे एक एआई एजेंट को सौंपता है। इसके साथ, एक एजेंट पूरी संस्था के लिए समन्वयक के रूप में कार्य कर सकता है:
|
|
40
|
+
|
|
41
|
+
1. **स्वीप।** `hk refresh` प्रत्येक रिपॉजिटरी का एक स्नैपशॉट लेता है।
|
|
42
|
+
2. **ट्राइएज।** एजेंट पूछता है कि क्या लाल है, क्या अवरुद्ध है और क्या बदतर हो गया है, और ऐसे उत्तर प्राप्त करता है जो पहले से ही एक टूटी हुई मुख्य शाखा को पुरानी इतिहास से और एक अटकी हुई पुल अनुरोध को एक संघर्षपूर्ण से अलग बताते हैं।
|
|
43
|
+
3. **एक लहर की योजना बनाएं।** एक `hk_sql` क्वेरी प्रत्येक रिपॉजिटरी को समान आकार के साथ ढूंढती है, इसलिए एक सुधार एक शिकार के बजाय प्रति रिपॉजिटरी एक पुल अनुरोध बन जाता है।
|
|
44
|
+
4. **काम करें।** हाउसकीपिंग कभी भी नहीं लिखता। एजेंट अपने स्वयं के उपकरणों के साथ, अपनी अनुमति के तहत और आपकी समीक्षा के तहत पुल अनुरोध खोलता है।
|
|
45
|
+
5. **सत्यापित करें।** फिर से स्वीप करें। निष्कर्ष चला गया है या नहीं, और दो स्नैपशॉट के बीच का परिवर्तन एक क्वेरी है।
|
|
46
|
+
|
|
47
|
+
एक एजेंट एक या दो कॉल में जिन प्रश्नों का उत्तर देता है:
|
|
48
|
+
|
|
49
|
+
- कौन सी डिफ़ॉल्ट शाखाएँ लाल हैं, और कौन सी नौकरी और चरण विफल हो गए?
|
|
50
|
+
- कौन से पुल अनुरोध कभी भी मर्ज नहीं हो सकते, और क्या ट्रिगर या संघर्ष को दोषी ठहराया जा सकता है?
|
|
51
|
+
- कौन सी रिपॉजिटरी एक उत्पादन सलाह रखती हैं जिसके लिए GitHub कोई अलर्ट नहीं दिखाता है?
|
|
52
|
+
- कौन से अनुसूचित वर्कफ़्लो शेड्यूल के लिए नियमों का उल्लंघन करते हैं, और कैसे?
|
|
53
|
+
- एक्शन की लागत क्या थी, और किस नौकरी ने इसे खर्च किया?
|
|
54
|
+
- पिछली स्वीप के बाद से क्या बदल गया?
|
|
55
|
+
|
|
56
|
+
| उपकरण | यह क्या उत्तर देता है |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `hk_summary` | नवीनतम स्वीप के लिए कुल: रिपॉजिटरी, मुद्दे, पुल अनुरोध, वर्कफ़्लो, निष्कर्ष। |
|
|
59
|
+
| `hk_findings` | कोड, गंभीरता, श्रेणी या रिपॉजिटरी द्वारा निष्कर्ष; जब फ़िल्टर नहीं किया जाता है तो कोड द्वारा गणना। एक लाल मुख्य शाखा का निष्कर्ष उस नौकरी और चरण का नाम देता है जो विफल हो गया। |
|
|
60
|
+
| `hk_ci` | वे रिपॉजिटरी जिनकी डिफ़ॉल्ट शाखा लाल है और वे वर्कफ़्लो जो विफल हो गए; साथ ही विफल शेड्यूल, विफल पुल-अनुरोध शाखाएँ और ऐसी रिपॉजिटरी जिनमें कोई सीआई नहीं है। |
|
|
61
|
+
| `hk_repo` | एक पूरी रिपॉजिटरी: निष्कर्ष, वर्कफ़्लो, खुले पुल अनुरोध और मुद्दे। |
|
|
62
|
+
| `hk_backlog` | पूरी संस्था में खुले पुल अनुरोध या मुद्दे, सबसे पुराने पहले। |
|
|
63
|
+
| `hk_health` | प्रति रिपॉजिटरी एक स्वास्थ्य स्कोर, सबसे खराब पहले। |
|
|
64
|
+
| `hk_cost` | एक्शन खर्च, रिपॉजिटरी, वर्कफ़्लो या नौकरी द्वारा, सकल और शुद्ध अलग-अलग। |
|
|
65
|
+
| `hk_sql` | वेयरहाउस के विरुद्ध एक रीड-ओनली `SELECT` या `WITH` स्टेटमेंट। |
|
|
66
|
+
| `hk_schema` | `hk_sql` क्वेरी लिखने के लिए तालिकाएँ और कॉलम। |
|
|
67
|
+
|
|
68
|
+
प्रत्येक उत्तर नवीनतम स्नैपशॉट से आता है, जो रीड-ओनली है। एक विफल कॉल एक संरचित त्रुटि लौटाता है, कभी भी स्टैक ट्रेस नहीं।
|
|
69
|
+
|
|
70
|
+
### इसे कनेक्ट करें
|
|
71
|
+
|
|
72
|
+
```json
|
|
73
|
+
{
|
|
74
|
+
"mcpServers": {
|
|
75
|
+
"housekeeping": { "command": "hk-mcp", "env": { "HK_HOME": "/path/to/warehouse" } },
|
|
76
|
+
"atlas": { "command": "atlas", "args": ["mcp"] }
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
`HK_HOME` वह निर्देशिका है जिससे आप स्वीप करते हैं। एक क्लोन से, `"command": "node", "args": ["/path/to/housekeeping/src/mcp.mjs"]` का उपयोग करें। दूसरा सर्वर [एटलस](https://github.com/dogfood-lab/testing-os/tree/main/packages/atlas) है, जो एक समय में एक रिपॉजिटरी के बारे में उसी एजेंट का उत्तर देता है (नीचे देखें)। विंडोज पर, `cmd /c` के माध्यम से वैश्विक रूप से स्थापित कमांड शुरू करें।
|
|
82
|
+
|
|
83
|
+
## हाउसकीपिंग और एटलस
|
|
84
|
+
|
|
85
|
+
[एटलस](https://github.com/dogfood-lab/testing-os/tree/main/packages/atlas) (`@dogfood-lab/atlas`) एक रिपॉजिटरी को मैप करता है: इसके भाग, और इसके द्वार, जिसका अर्थ है कि प्रत्येक वर्कफ़्लो क्या चलाता है, प्रकाशित करता है और तैनात करता है। मानचित्र को `atlas/` के रूप में प्रतिबद्ध किया जाता है और सीआई में जाँच की जाती है। हाउसकीपिंग संस्था का दृश्य है। दोनों को एक साथ काम करने के लिए बनाया गया है।
|
|
86
|
+
|
|
87
|
+
- **प्रत्येक मानचित्र, स्वीप किया गया।** एक स्वीप प्रत्येक रिपॉजिटरी के प्रतिबद्ध मानचित्र को अन्य सभी के साथ पढ़ता है, और रिपोर्ट करता है कि किन रिपॉजिटरी में कोई नहीं है, कौन से `atlas check` कभी नहीं चलाते हैं, और किनमें बाकी संस्था द्वारा पिन किए गए इंजन के पीछे एक इंजन है।
|
|
88
|
+
- **जहां एक लाल रन विफल हो गया।** जब एक डिफ़ॉल्ट शाखा लाल होती है, तो निष्कर्ष उस नौकरी और चरण का नाम देता है जो विफल हो गया, और मानचित्र के माध्यम से, उस चरण द्वारा चलाया जाने वाला कमांड, ताकि मरम्मत सही फ़ाइल में शुरू हो।
|
|
89
|
+
- **मानचित्र से परिनियोजन तथ्य।** एक नौकरी जिस वातावरण में तैनात होती है, वह मानचित्र से लिया जाता है जहां यह एक को रिकॉर्ड करता है, इसलिए दोनों उपकरण एक वर्कफ़्लो को एक ही तरह से पढ़ते हैं।
|
|
90
|
+
- **पूरे बेड़े में चेतावनी।** एटलस एक वर्कफ़्लो चरण को चिह्नित करता है जो चलने से पहले विफल हो जाएगा, जैसे कि एक उपकरण जिसे नौकरी द्वारा स्थापित की तुलना में एक नए रनटाइम की आवश्यकता होती है। रिपोर्ट में ये सभी एक साथ सूचीबद्ध हैं।
|
|
91
|
+
|
|
92
|
+
दोनों सर्वरों वाले एक एजेंट "ये बारह रिपॉजिटरी अवरुद्ध हैं" (हाउसकीपिंग) से "यह वर्कफ़्लो, नौकरी और वे फ़ाइलें हैं जिन तक एक परिवर्तन पहुंचेगा" (एटलस) तक जाता है, बिना प्रत्येक रिपॉजिटरी को मैन्युअल रूप से खोले।
|
|
93
|
+
|
|
94
|
+
## यह इस तरह क्यों आकार दिया गया है
|
|
95
|
+
|
|
96
|
+
| परत | विकल्प | तर्क |
|
|
39
97
|
|---|---|---|
|
|
40
|
-
| परिवहन | `gh`
|
|
41
|
-
| संग्रह | GitHub GraphQL,
|
|
98
|
+
| परिवहन | `gh` सीएलआई | इसमें पहले से ही आपका टोकन है। उपकरण कभी भी क्रेडेंशियल संग्रहीत या नहीं मांगता है। |
|
|
99
|
+
| संग्रह | GitHub GraphQL, पृष्ठबद्ध | एक क्वेरी रिपॉजिटरी के एक पृष्ठ के लिए मेटाडेटा, खुली समस्याओं, खुले पुल अनुरोधों, रिलीज़ और फ़ाइल ट्री लौटाती है। एक पृष्ठ जो समय समाप्त करना जारी रखता है, उसे आधा कर दिया जाता है और उसी कर्सर से फिर से पूछा जाता है। |
|
|
42
100
|
| एक्शन रन | REST | GraphQL में कोई एक्शन सतह नहीं है। |
|
|
43
|
-
|
|
|
44
|
-
| रनर दरें | चालान से पढ़ें |
|
|
101
|
+
| कार्रवाइयों की लागत | बिलिंग एपीआई और प्रति-कार्य अवधि | चालान में यह बताया गया है कि कौन सी रिपॉजिटरी है; केवल कार्यों में यह बताया गया है कि कौन सा वर्कफ़्लो है। GitHub के `/timing` एंडपॉइंट शून्य लौटाते हैं, इसलिए प्रति-कार्य योग को फिर से बनाया जाता है और फिर चालान के साथ मिलान किया जाता है। |
|
|
102
|
+
| रनर दरें | चालान से पढ़ें | बिल की गई दर सूची मूल्य से भिन्न हो सकती है, और स्रोत में एक स्थिर मान हर संख्या को गलत बताएगा। |
|
|
45
103
|
| भंडारण | अंतर्निहित `node:sqlite` के माध्यम से SQLite | कोई देशी बिल्ड चरण नहीं। |
|
|
46
|
-
| सत्य का स्रोत | `data/snapshots/*.json` | कच्चा, तुलना करने योग्य और केवल जोड़ने योग्य। डेटाबेस
|
|
47
|
-
|
|
|
104
|
+
| सत्य का स्रोत | `data/snapshots/*.json` | कच्चा, तुलना करने योग्य और केवल जोड़ने योग्य। डेटाबेस प्राप्त किया जाता है: `npm run rebuild` इसे ऑफ़लाइन पुनर्निर्मित करता है। |
|
|
105
|
+
| स्वीप लॉग | `data/sweeps.jsonl` | प्रत्येक स्वीप के लिए एक पंक्ति, जिसमें विफल स्वीप और नए कुछ भी नहीं खोजने वाले स्वीप शामिल हैं। |
|
|
48
106
|
|
|
49
107
|
स्नैपशॉट अपरिवर्तनीय और योज्य होते हैं, इसलिए दो तिथियों के बीच का विचलन `JOIN` है।
|
|
50
108
|
|
|
51
|
-
##
|
|
109
|
+
## आवश्यकताएं
|
|
52
110
|
|
|
53
111
|
- Node.js 22.5 या बाद का संस्करण।
|
|
54
|
-
- [GitHub CLI](https://cli.github.com/),
|
|
112
|
+
- [GitHub CLI](https://cli.github.com/), लॉग इन (`gh auth status`) एक ऐसे खाते के रूप में जो संगठन को पढ़ सकता है। बिलिंग और सुरक्षा अलर्ट पढ़ने के लिए संबंधित एक्सेस की आवश्यकता होती है; इसके बिना स्वीप "मापा नहीं गया" रिकॉर्ड करता है और आगे बढ़ता है। यह कभी भी किसी छूटी हुई अनुमति को एक स्पष्ट परिणाम के रूप में रिकॉर्ड नहीं करता है।
|
|
55
113
|
- विंडोज या लिनक्स। इसे विंडोज पर विकसित किया गया है और इसके परीक्षण CI में लिनक्स पर चलते हैं। macOS को काम करना चाहिए और इसका परीक्षण नहीं किया गया है।
|
|
56
114
|
|
|
57
115
|
## उपयोग
|
|
@@ -62,9 +120,9 @@ mkdir warehouse && cd warehouse # housekeeping keeps its data here
|
|
|
62
120
|
hk refresh your-org # collect, load, analyze, write reports/AUDIT-<date>.md
|
|
63
121
|
```
|
|
64
122
|
|
|
65
|
-
सेटिंग्स को बनाए रखने के लिए, उस निर्देशिका में `housekeeping.config.json` रखें (कॉन्फ़िगरेशन देखें); फिर `hk refresh` को किसी तर्क की आवश्यकता नहीं
|
|
123
|
+
स्वीपों के बीच सेटिंग्स को बनाए रखने के लिए, उस निर्देशिका में एक `housekeeping.config.json` रखें (कॉन्फ़िगरेशन देखें); फिर `hk refresh` को किसी तर्क की आवश्यकता नहीं है।
|
|
66
124
|
|
|
67
|
-
या इसे क्लोन से चलाएं, जो अपने डेटा को क्लोन में रखता है:
|
|
125
|
+
या इसे एक क्लोन से चलाएं, जो अपने डेटा को क्लोन में रखता है:
|
|
68
126
|
|
|
69
127
|
```bash
|
|
70
128
|
git clone https://github.com/mcp-tool-shop-org/housekeeping.git
|
|
@@ -91,13 +149,13 @@ hk sql "SELECT ..." # one read-only statement
|
|
|
91
149
|
hk help # every command and flag
|
|
92
150
|
```
|
|
93
151
|
|
|
94
|
-
|
|
152
|
+
`npm link` के बिना एक क्लोन में, प्रत्येक `hk <command>` `node src/cli.mjs <command>` है।
|
|
95
153
|
|
|
96
|
-
`npm run rebuild` डेटाबेस और रिपोर्ट को डिस्क पर
|
|
154
|
+
`npm run rebuild` डेटाबेस और रिपोर्ट को पहले से डिस्क पर मौजूद स्नैपशॉट से फिर से प्राप्त करता है, बिना किसी नेटवर्क एक्सेस के।
|
|
97
155
|
|
|
98
|
-
एक पूर्ण
|
|
156
|
+
एक पूर्ण स्वीप कुछ सौ एपीआई कॉल करता है। `refresh` को लूप में न चलाएं।
|
|
99
157
|
|
|
100
|
-
परिणाम मानक आउटपुट पर जाते हैं; प्रगति और त्रुटियां मानक त्रुटि पर जाती हैं। प्रत्येक त्रुटि एक कोड और एक संकेत प्रिंट करती है। निकास कोड: 0 ठीक, 1 उपयोगकर्ता त्रुटि, 2 रनटाइम त्रुटि, 3 आंशिक (
|
|
158
|
+
परिणाम मानक आउटपुट पर जाते हैं; प्रगति और त्रुटियां मानक त्रुटि पर जाती हैं। प्रत्येक त्रुटि एक कोड और एक संकेत प्रिंट करती है। निकास कोड: 0 ठीक, 1 उपयोगकर्ता त्रुटि, 2 रनटाइम त्रुटि, 3 आंशिक (स्वीप समाप्त हो गया, अंतराल के साथ)।
|
|
101
159
|
|
|
102
160
|
## कॉन्फ़िगरेशन
|
|
103
161
|
|
|
@@ -110,70 +168,70 @@ hk help # every command and flag
|
|
|
110
168
|
}
|
|
111
169
|
```
|
|
112
170
|
|
|
113
|
-
- `org` वह संगठन है
|
|
114
|
-
- `metaRepos` वे रिपॉजिटरी हैं जिनमें संगठन डिफ़ॉल्ट, संपत्ति या उपकरण होते हैं, न कि
|
|
171
|
+
- `org` वह संगठन है जिसका स्वीप किया जाना है। `hk refresh <org>` इसे ओवरराइड करता है। दोनों में से किसी के बिना, स्वीप शुरू करने से इनकार कर देगा।
|
|
172
|
+
- `metaRepos` वे रिपॉजिटरी हैं जिनमें संगठन डिफ़ॉल्ट, संपत्ति या उपकरण होते हैं, न कि कोई शिप किया गया उत्पाद। वे उन निष्कर्षों से छूट प्राप्त हैं जो केवल किसी उत्पाद के लिए समझ में आते हैं: लापता README, LICENSE और समान फ़ाइलें, कोई वर्कफ़्लो नहीं होना और कोई रिलीज़ नहीं होना।
|
|
115
173
|
|
|
116
174
|
एक गलत फ़ाइल एक त्रुटि है, कभी भी एक मौन डिफ़ॉल्ट नहीं: एक अज्ञात कुंजी, एक गलत प्रकार या टूटा हुआ JSON रन को रोक देता है।
|
|
117
175
|
|
|
118
176
|
एक क्लोन से चलाएं, हाउसकीपिंग `data/`, `reports/` और कॉन्फ़िगरेशन फ़ाइल को क्लोन में रखता है। एक स्थापित पैकेज के रूप में चलाएं, यह उन्हें उस निर्देशिका में रखता है जिससे आप इसे चलाते हैं, या `HK_HOME` में जब वह सेट हो।
|
|
119
177
|
|
|
120
|
-
पर्यावरण: `HK_HOME` (जहां डेटा, रिपोर्ट और कॉन्फ़िगरेशन
|
|
178
|
+
पर्यावरण: `HK_HOME` (जहां डेटा, रिपोर्ट और कॉन्फ़िगरेशन मौजूद हैं), `HK_CONFIG` (कॉन्फ़िगरेशन पथ), `HK_DB` (डेटाबेस पथ), `HK_LOG` (`silent`, `normal`, `verbose` या `debug`), `HK_COST_REPOS` और `HK_COST_BUDGET` (प्रति-कार्य लागत पास पर सीमाएं), `GH_PATH` (`gh` का पथ)।
|
|
121
179
|
|
|
122
180
|
## डेटा को निजी रखें
|
|
123
181
|
|
|
124
|
-
**एक
|
|
125
|
-
|
|
126
|
-
एक स्नैपशॉट निजी रिपॉजिटरी के नाम और विवरण, प्रत्येक खुली सुरक्षा अलर्ट जिसमें वह पैकेज है जिसका वह उल्लेख करता है, वर्कफ़्लो फ़ाइलें और एक्शन बिलिंग रिकॉर्ड करता है। GitHub जानबूझकर एक सार्वजनिक रिपॉजिटरी की सुरक्षा अलर्ट को सभी से छिपा देता है, सिवाय इसके रखरखावकर्ताओं के; एक प्रकाशित स्नैपशॉट उस सूची को दे देगा।
|
|
127
|
-
|
|
128
|
-
इस रिपॉजिटरी का `.gitignore` `data/`, `reports/` और `housekeeping.config.json` को बाहर करता है। इतिहास को बनाए रखने के लिए, जो स्नैपशॉट का बिंदु है, अपने स्वयं के एक निजी रिपॉजिटरी से उपकरण चलाएं और उन्हें वहां कमिट करें।
|
|
182
|
+
**एक स्वीप क्या लिखता है, यह संवेदनशील है। `data/` या `reports/` को सार्वजनिक रिपॉजिटरी में कमिट न करें।**
|
|
129
183
|
|
|
130
|
-
|
|
184
|
+
एक स्नैपशॉट निजी रिपॉजिटरी के नाम और विवरण, उस पैकेज के साथ प्रत्येक खुली सुरक्षा अलर्ट, वर्कफ़्लो फ़ाइलें और क्रियाओं की बिलिंग रिकॉर्ड करता है। GitHub जानबूझकर एक सार्वजनिक रिपॉजिटरी की सुरक्षा अलर्ट को उसके रखरखावकर्ताओं के अलावा सभी से छिपा देता है; एक प्रकाशित स्नैपशॉट उस सूची को दे देगा।
|
|
131
185
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
`hk_summary` · `hk_findings` · `hk_ci` · `hk_repo` · `hk_backlog` · `hk_health` · `hk_cost` · `hk_sql` · `hk_schema`
|
|
135
|
-
|
|
136
|
-
```json
|
|
137
|
-
{
|
|
138
|
-
"mcpServers": {
|
|
139
|
-
"housekeeping": { "command": "hk-mcp", "env": { "HK_HOME": "/path/to/warehouse" } }
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
`HK_HOME` वह निर्देशिका है जिससे आप डेटा लेते हैं। क्लोन से, इसके बजाय `"command": "node", "args": ["/path/to/housekeeping/src/mcp.mjs"]` का उपयोग करें।
|
|
145
|
-
|
|
146
|
-
`hk_sql` एक एकल `SELECT` या `WITH` कथन स्वीकार करता है और डेटाबेस को केवल-पढ़ने के लिए खोलता है। एक विफल कॉल एक संरचित त्रुटि लौटाती है, कभी भी स्टैक ट्रेस नहीं।
|
|
186
|
+
इस रिपॉजिटरी का `.gitignore` `data/`, `reports/` और `housekeeping.config.json` को बाहर करता है। इतिहास को बनाए रखने के लिए, जो स्नैपशॉट का बिंदु है, अपने स्वयं के एक **निजी** रिपॉजिटरी से उपकरण चलाएं और उन्हें वहां कमिट करें।
|
|
147
187
|
|
|
148
188
|
## निष्कर्ष
|
|
149
189
|
|
|
150
190
|
नियम `src/analyze.mjs` में रहते हैं। प्रत्येक नियम उस लिखित नियम का हवाला देता है जिसे वह लागू करता है, इसलिए एक निष्कर्ष को एक मानक के खिलाफ तर्क दिया जा सकता है, न कि स्वाद के खिलाफ। इस रिपॉजिटरी में शिप किए गए नियम [`rules/`](rules/) में हैं:
|
|
151
191
|
|
|
152
|
-
- [`rules/github-actions.md`](rules/github-actions.md):
|
|
153
|
-
- [`rules/shipcheck-product-standards.md`](rules/shipcheck-product-standards.md):
|
|
192
|
+
- [`rules/github-actions.md`](rules/github-actions.md): पथ फ़िल्टर, रनर, मैट्रिक्स आकार, वर्कफ़्लो फ़ाइल सीमा, समवर्ती।
|
|
193
|
+
- [`rules/shipcheck-product-standards.md`](rules/shipcheck-product-standards.md): CI को पास होना चाहिए, शिप गेट, संस्करण।
|
|
154
194
|
- [`rules/repo-first.md`](rules/repo-first.md): डिफ़ॉल्ट शाखा।
|
|
155
|
-
- [`rules/atlas-map.md`](rules/atlas-map.md): प्रत्येक रिपॉजिटरी का एक
|
|
195
|
+
- [`rules/atlas-map.md`](rules/atlas-map.md): प्रत्येक रिपॉजिटरी का एक कमिट किया गया मानचित्र, CI में जांचा गया।
|
|
156
196
|
|
|
157
|
-
ये
|
|
197
|
+
ये एक संगठन के मानक हैं। यदि आपके अलग हैं, तो नियम फ़ाइल और नियम दोनों को बदलें।
|
|
158
198
|
|
|
159
199
|
नियम उन चीजों को अलग रखने का ध्यान रखते हैं जो समान दिखती हैं, क्योंकि उन्हें एक साथ मिलाने से शोर उत्पन्न होता है:
|
|
160
200
|
|
|
161
|
-
- **एक लाल डिफ़ॉल्ट शाखा, लाल पुल-अनुरोध शाखा नहीं है।** एक विफल
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
201
|
+
- **एक लाल डिफ़ॉल्ट शाखा, लाल पुल-अनुरोध शाखा नहीं है।** एक विफल
|
|
202
|
+
डिपेंडबॉट शाखा बैकलॉग है; डिफ़ॉल्ट शाखा पर एक विफल `push` रन,
|
|
203
|
+
समस्या है। रन की घटना यह तय करती है कि कौन सी।
|
|
204
|
+
- **इतिहास समस्या नहीं है।** रिलीज़-ओनली ट्रिगर में स्थानांतरित वर्कफ़्लो,
|
|
205
|
+
अपनी पिछली डिफ़ॉल्ट-शाखा विफलता को हमेशा बरकरार रखता है। एक हटाई गई वर्कफ़्लो,
|
|
206
|
+
अपने रन को बरकरार रखती है। न तो यह कोई सक्रिय दोष है।
|
|
207
|
+
- **एक आवश्यक जाँच, जो कुछ भी उत्सर्जित नहीं कर सकती, वह वह जाँच नहीं है जो यहाँ नहीं चली।**
|
|
208
|
+
एक कहता है कि आवश्यकता को छोड़ दें; दूसरा कहता है कि ट्रिगर को ठीक करें। मरम्मत
|
|
209
|
+
एक-दूसरे का खंडन करते हैं।
|
|
210
|
+
- **एक पुल अनुरोध, जिसे ट्रिगर ने छोड़ दिया, वह संघर्षपूर्ण नहीं है।** GitHub,
|
|
211
|
+
संघर्षों वाले पुल अनुरोध पर कोई भी पुल-अनुरोध वर्कफ़्लो नहीं चलाता है, इसलिए इसकी छूटी हुई
|
|
212
|
+
जाँच, ट्रिगर के बारे में कुछ भी नहीं बताती है। उस एक को रीबेस की आवश्यकता है।
|
|
213
|
+
- **एक विफल रन, रद्द किया गया रन नहीं है।** `cancel-in-progress` का उद्देश्य पुराने रन को समाप्त करना है,
|
|
214
|
+
इसलिए रद्द किए गए मिनट आमतौर पर समवर्ती नियम के काम करने का परिणाम होते हैं।
|
|
215
|
+
- **कुल लागत, शुद्ध लागत नहीं है।** GitHub सार्वजनिक रिपॉजिटरी को पूरी
|
|
216
|
+
कीमत पर मापता है और उन्हें शून्य पर छूट देता है। कुल वास्तविक गणना है; शुद्ध वास्तविक पैसा है।
|
|
217
|
+
उन्हें कभी भी जोड़ा नहीं जाता है।
|
|
218
|
+
- **मापा नहीं गया, साफ नहीं है।** एक रिपॉजिटरी, जिसे GitHub स्कैन नहीं कर रहा है,
|
|
219
|
+
शून्य अलर्ट रिपोर्ट करता है। एक रिपॉजिटरी, जिस पर लागत सीमा नहीं पहुंची, उसमें कोई लागत पंक्ति नहीं है। दोनों को अज्ञात के रूप में रिपोर्ट किया जाता है।
|
|
220
|
+
|
|
221
|
+
गंभीरता एक स्वास्थ्य स्कोर निर्धारित करती है: गंभीर 40, उच्च 15, मध्यम 6, निम्न 2, सूचना 0,
|
|
222
|
+
जो 100 से घटाया जाता है। स्कोर गुणवत्ता के बजाय ध्यान को रैंक करता है।
|
|
223
|
+
|
|
224
|
+
[हैंडबुक](https://mcp-tool-shop-org.github.io/housekeeping/handbook/)
|
|
225
|
+
प्रत्येक निष्कर्ष, कमांड, त्रुटि कोड और तालिका को सूचीबद्ध करता है।
|
|
171
226
|
|
|
172
227
|
## सुरक्षा
|
|
173
228
|
|
|
174
|
-
-
|
|
175
|
-
|
|
176
|
-
- **कोई
|
|
229
|
+
- **केवल-पढ़ने के लिए।** कलेक्टर GraphQL प्रश्नों और REST `GET` जारी करता है। यह कभी भी
|
|
230
|
+
मर्ज, पुश, रिलीज़, प्रकाशित या किसी सेटिंग को संपादित नहीं करता है।
|
|
231
|
+
- **कोई क्रेडेंशियल नहीं।** प्रमाणीकरण वह है जो `gh` पहले से ही रखता है। इसके बारे में कुछ भी
|
|
232
|
+
डिस्क पर नहीं लिखा जाता है।
|
|
233
|
+
- **कोई टेलीमेट्री नहीं।** संपर्क किए गए एकमात्र होस्ट GitHub API हैं, `gh` के माध्यम से,
|
|
234
|
+
और संस्करण और सलाह की खोज के लिए npm रजिस्ट्री।
|
|
177
235
|
- **यह जो संग्रहीत करता है** वह संवेदनशील भाग है: "डेटा को निजी रखें" देखें।
|
|
178
236
|
|
|
179
237
|
[SECURITY.md](SECURITY.md) में वर्णित अनुसार किसी भेद्यता की रिपोर्ट करें।
|
|
@@ -184,7 +242,9 @@ hk help # every command and flag
|
|
|
184
242
|
npm test
|
|
185
243
|
```
|
|
186
244
|
|
|
187
|
-
प्रत्येक नियम का दोनों दिशाओं में परीक्षण किया जाता है: वह आकार जो सक्रिय होना चाहिए, और
|
|
245
|
+
प्रत्येक नियम का दोनों दिशाओं में परीक्षण किया जाता है: वह आकार जो सक्रिय होना चाहिए, और
|
|
246
|
+
आस-पास का आकार जो सक्रिय नहीं होना चाहिए। एक अलग सत्यापनकर्ता, लाइव GitHub से निष्कर्षों का एक नमूना,
|
|
247
|
+
अपने स्वयं के परिवहन के माध्यम से पुनः प्राप्त करता है, और छोड़ देता है, जोर से, जब कोई डेटाबेस या नेटवर्क नहीं होता है।
|
|
188
248
|
|
|
189
249
|
## लाइसेंस
|
|
190
250
|
|