
गिट हुक-आधारित गुप्त स्कैनर जो बाहर जाने वाले चेंजसेट में टोकन, पासवर्ड और निजी कुंजियों का पता लगाता है, संवेदनशील डेटा को रिपॉजिटरी में कमिट या पुश होने से रोकता है।
गिट रिपॉजिटरी में सीक्रेट्स (गुप्त जानकारी) की जाँच को रोकने और पहचानने का एक उपकरण
Talisman एक उपकरण है जो गिट चेंजसेट्स को स्कैन करता है ताकि यह सुनिश्चित किया जा सके कि संभावित सीक्रेट्स या संवेदनशील जानकारी डेवलपर के वर्कस्टेशन से बाहर न जाए।
यह आउटगोइंग चेंजसेट को संदिग्ध दिखने वाली चीजों के लिए मान्य करता है - जैसे संभावित SSH कुंजियाँ, प्राधिकरण टोकन, निजी कुंजियाँ आदि।
Talisman MAC OSX, Linux और Windows को समर्थन करता है।
Talisman को निम्नलिखित तरीकों में से किसी एक में स्थापित और उपयोग किया जा सकता है:
Talisman को git रिपॉजिटरी पर प्री-कमिट या प्री-पुश हुक के रूप में सेट किया जा सकता है।
नीचे दिए गए निर्देश देखें।
अस्वीकरण: git रिपॉजिटरी में फोर्स्ड पुश के माध्यम से आने वाले सीक्रेट्स को Talisman द्वारा पहचाना नहीं जा सकता। फोर्स्ड पुश को अपने तरीके से कुख्यात माना जाता है, और हम git रिपॉजिटरी प्रशासकों को सुझाव देते हैं कि वे ऐसी गतिविधियों को अधिकृत करने के लिए उचित उपाय लागू करें।
हम talisman को अपने पथ पर स्थापित करने की अनुशंसा करते हैं ताकि यह git हुक फ्रेमवर्क और स्क्रिप्ट के लिए उपलब्ध हो।
हमारे Releases Page से अपने सिस्टम के लिए सही बाइनरी चुनें, या हमारा install script चलाएँ:```bash bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/install.sh)"
या पर्यावरण चर `INSTALL_LOCATION` सेट करें ताकि एक कस्टम स्थान निर्दिष्ट किया जा सके
बाइनरी के लिए:```bash
INSTALL_LOCATION=/usr/local/bin bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/install.sh)"
या पर्यावरण चर VERSION को एक जारी टैग पर सेट करें ताकि एक विशिष्ट संस्करण स्थापित करें::```bash
VERSION=v1.36.0 bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/install.sh)"
या Linux में linuxbrew और macOS में homebrew का उपयोग करके टर्मिनल में निम्नलिखित कमांड चलाकर:```bash
brew install talisman
हम ऐसी स्क्रिप्ट प्रदान करते हैं जो Talisman को प्री-कमिट git हुक टेम्पलेट के रूप में स्थापित करेंगी, क्योंकि इससे Talisman न केवल आपके मौजूदा git रिपॉजिटरी में बल्कि किसी भी नए रिपॉजिटरी में उपस्थित होगा जिसे आप 'init' या 'clone' करते हैं।
प्री-कमिट हुक के रूप में: ``` bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/install.bash)"
या
एक pre-push hook के रूप में: ```
bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/install.bash)" -- pre-push
$PATH में TALISMAN_HOME सेट नहीं किया है, तो आपसे इसे सेट करने के लिए उपयुक्त स्थान पूछा जाएगा। वह विकल्प संख्या चुनें जहाँ आपने अपनी मशीन पर प्रोफ़ाइल स्रोत सेट किया है।पथ फ़ाइल पर source चलाना याद रखें या अपना टर्मिनल पुनः प्रारंभ करें।
यदि आप बाद में $PATH सेट करना चुनते हैं, तो कृपया TALISMAN_HOME=$HOME/.talisman/bin को पथ में निर्यात करें।
Talisman को हुक के रूप में वैश्विक रूप से स्थापित करने से कोई मौजूदा हुक अधिलेखित नहीं होगा। यदि इंस्टॉलेशन स्क्रिप्ट को कोई मौजूदा हुक मिलता है, तो वह केवल कंसोल पर इसका संकेत देगी। एकाधिक हुक चलाने के लिए हम एक हुक फ्रेमवर्क, जैसे कि pre-commit या husky का उपयोग करने का सुझाव देते हैं। ये निर्देश मानते हैं कि talisman निष्पादन योग्य आपके सिस्टम के पथ पर कहीं स्थापित है।
pre-commit का उपयोग मौजूदा हुक्स को Talisman के साथ प्रबंधित करने के लिए करें। अपने .pre-commit-config.yaml में हमारे pre-commit-hooks का संदर्भ लें:```yaml
### Husky
[husky](https://typicode.github.io/husky) एक npm मॉड्यूल है हुक्स को प्रबंधित करने के लिए।
निम्नलिखित पंक्ति को husky pre-commit कॉन्फ़िगरेशन में जोड़ें अपने
`package.json`:```
talisman --githook pre-commit
एक बार talisman निष्पादन योग्य स्थापित हो जाने पर,
आप git रिपॉजिटरी के लिए एक स्वतंत्र pre-commit हुक कॉन्फ़िगर कर सकते हैं:```bash cd my-git-project echo "talisman -g pre-commit" >> .git/hooks/pre-commit chmod +x .git/hooks/pre-commit
# अपग्रेड करना
रिलीज़ v0.4.4 के बाद से, Talisman <b>स्वचालित रूप से अपडेट</b> करता है बाइनरी को नवीनतम रिलीज़ में, जब हुक आमंत्रित किया जाता है (pre-commit/pre-push पर, जैसा सेट किया गया है)। तो, बस आराम से बैठें, और बिना किसी अतिरिक्त प्रयास के नवीनतम Talisman का उपयोग करते रहें।
निम्नलिखित पर्यावरण चर सेट किए जा सकते हैं:
1. TALISMAN_SKIP_UPGRADE: स्वचालित अपग्रेड जांच को छोड़ने के लिए true पर सेट करें। डिफॉल्ट false है।
2. TALISMAN_UPGRADE_CONNECT_TIMEOUT: अपग्रेड रद्द होने से पहले अधिकतम कनेक्ट टाइमआउट (सेकंड में)। डिफॉल्ट 10 सेकंड है।
यदि आपको मैन्युअल रूप से अपग्रेड करने की आवश्यकता है, तो यहाँ कदम हैं:
<br>[अनुशंसित] Talisman बाइनरी और हुक स्क्रिप्ट को नवीनतम रिलीज़ में अपडेट करें:```bash
curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/update_talisman.bash > /tmp/update_talisman.bash && /bin/bash /tmp/update_talisman.bash
केवल Talisman बाइनरी को निष्पादित करके अपडेट करें:```bash curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/update_talisman.bash > /tmp/update_talisman.bash && /bin/bash /tmp/update_talisman.bash talisman-binary
# Talisman कार्य करते हुए
स्थापना सफल होने के बाद, Talisman प्रत्येक कमिट या पुश (स्थापना के दौरान चुने गए अनुसार) से पहले स्वचालित रूप से स्पष्ट गुप्त जानकारी के लिए जाँच चलाएगा। यदि कोई सुरक्षा उल्लंघन पाया जाता है, तो Talisman त्रुटियों की एक विस्तृत रिपोर्ट प्रदर्शित करेगा:```bash
$ git push
Talisman Report:
+-----------------+-------------------------------------------------------------------------------+
| FILE | ERRORS |
+-----------------+-------------------------------------------------------------------------------+
| danger.pem | The file name "danger.pem" |
| | failed checks against the |
| | pattern ^.+\.pem$ |
+-----------------+-------------------------------------------------------------------------------+
| danger.pem | Expected file to not contain hex encoded texts such as: |
| | awsSecretKey=c64e8c79aacf5ddb02f1274db2d973f363f4f553ab1692d8d203b4cc09692f79 |
+-----------------+-------------------------------------------------------------------------------+
उपरोक्त उदाहरण में, फ़ाइल danger.pem को निम्नलिखित कारणों से सुरक्षा उल्लंघन के रूप में चिह्नित किया गया है:
यदि आपने Talisman को प्री-कमिट हुक के रूप में स्थापित किया है, तो यह प्रत्येक कमिट में केवल diff को स्कैन करेगा। इसका मतलब है कि यह केवल फ़ाइल के उन हिस्सों के लिए त्रुटियों की रिपोर्ट करेगा जो बदले गए थे।
यदि आपने Talisman को प्री-पुश हुक के रूप में स्थापित किया है, तो यह उस पूरी फ़ाइल को स्कैन करेगा जिसमें परिवर्तन किए गए हैं। जैसा कि ऊपर बताया गया है, यह अनुशंसा की जाती है कि आप Talisman को प्री-कमिट हुक के रूप में उपयोग करें।
निम्नलिखित डिटेक्टर गोपनीय/संवेदनशील जानकारी का पता लगाने के लिए चेंजसेट पर कार्यान्वित होते हैं:
यदि आप वास्तव में सुनिश्चित हैं कि आप उस फ़ाइल को पुश करना चाहते हैं, तो आप इसे प्रोजेक्ट रूट में .talismanrc फ़ाइल में कॉन्फ़िगर कर सकते हैं। आपकी विफल फ़ाइलों को अनदेखा करने के लिए आवश्यक सामग्री Talisman द्वारा Talisman त्रुटि रिपोर्ट के तुरंत बाद कंसोल पर मुद्रित की जाएगी:```bash
If you are absolutely sure that you want to ignore the above files from talisman detectors, consider pasting the following format in .talismanrc file in the project root
fileignoreconfig:
`.talismanrc` फ़ाइल में यह दर्ज करने से यह सुनिश्चित होगा कि Talisman `danger.pem` फ़ाइल को तब तक अनदेखा करेगा जब तक कि चेकसम `checksum` फ़ील्ड में उल्लिखित मान से मेल खाता है।
### इंटरैक्टिव मोड
**केवल गैर-विंडोज उपयोगकर्ताओं के लिए उपलब्ध**
यदि हर बार Talisman से कोई त्रुटि आने पर `.talismanrc` में सामग्री कॉपी करना बहुत परेशानी का काम है, तो आप इंटरैक्टिव मोड सक्षम कर सकते हैं और Talisman को अनदेखा करने के लिए फ़ाइलों को जोड़ने में आपकी सहायता करने दे सकते हैं।
बस इन सरल चरणों का पालन करें:
1. अपनी bash प्रोफ़ाइल खोलें जहाँ आपके पर्यावरण चर सेट हैं (.bashrc, .bash_profile, .profile या कोई अन्य स्थान)
2. आप `# >>> talisman >>>` के अंतर्गत `TALISMAN_INTERACTIVE` वेरिएबल देखेंगे
3. यदि पहले से true पर सेट नहीं है, तो `export TALISMAN_INTERACTIVE=true` जोड़ें
4. फ़ाइल को सहेजना और सोर्स करना न भूलें
बस इतना ही! हर बार जब Talisman हुक pre-push/pre-commit के दौरान कोई त्रुटि पाता है, तो Talisman के सुझाव के अनुसार निर्देशों का पालन करें।
सावधान रहें कि सामग्री को सत्यापित किए बिना किसी फ़ाइल को अनदेखा न करें। आपको विश्वास होना चाहिए कि कोई रहस्य लीक नहीं हो रहा है।
### विशिष्ट डिटेक्टरों को अनदेखा करना
नीचे विभिन्न फ़ील्ड्स का विस्तृत विवरण दिया गया है जिन्हें `.talismanrc` फ़ाइल में कॉन्फ़िगर किया जा सकता है:
* `filename` : इस फ़ील्ड में पूर्ण योग्य फ़ाइल नाम का उल्लेख होना चाहिए।
* `checksum` : इस फ़ील्ड का मान हमेशा Talisman द्वारा ऊपर प्रदर्शित संदेश में निर्दिष्ट मान होना चाहिए। यदि किसी भी समय फ़ाइल में कोई नया परिवर्तन किया जाता है, तो इसका परिणाम एक नया चेकसम होगा और Talisman किसी भी संभावित सुरक्षा खतरे के लिए फ़ाइल को फिर से स्कैन करेगा।
* `ignore_detectors` : यह फ़ील्ड किसी विशेष फ़ाइल के लिए विशिष्ट डिटेक्टरों को अक्षम कर देगा।
उदाहरण के लिए, यदि आपकी `init-env.sh` फ़ाइल का नाम कोई चेतावनी ट्रिगर करता है, तो आप केवल इस चेतावनी को अक्षम कर सकते हैं
जबकि यदि अन्य चीजें गलत होती हैं (जैसे फ़ाइल सामग्री) तब भी सचेत रह सकते हैं:```yaml
fileignoreconfig:
- filename: init-env.sh
checksum: cf97abd34cebe895417eb4d97fbd7374aa138dcb65b1fe7f6b6cc1238aaf4d48
ignore_detectors: [filename, filesize]
नोट: यहाँ init-env.sh के लिए filename और filesize डिटेक्टर दोनों को अनदेखा किया गया है, लेकिन filecontent डिटेक्टर init-env.sh पर फिर भी सक्रिय होगा।
इस समय, आप निम्नलिखित को अनदेखा कर सकते हैं
filecontentfilenamefilesizeक्योंकि आपकी कुछ फ़ाइलों में key या pass जैसे कीवर्ड हो सकते हैं जो जरूरी नहीं कि रहस्यों से संबंधित हों, आप गलत सकारात्मक की संख्या को कम करने के लिए इन कीवर्ड को अनदेखा करना चाह सकते हैं।
यह फ़ाइल स्तर और/या रिपॉजिटरी स्तर पर allowed_patterns फ़ील्ड का उपयोग करके प्राप्त किया जा सकता है:```yaml
fileignoreconfig:
पिछले उदाहरण में, `key` को `test` फ़ाइल में अनुमति है, `keyword` और `pass` को रिपॉजिटरी स्तर पर अनुमति है।
`allowed_patterns` फ़ील्ड Golang रेगुलर एक्सप्रेशन का भी समर्थन करती है। यहाँ एक सरल कोड उदाहरण है जहाँ Golang RegExp उपयोगी हो सकता है:```sh
export AWS_ACCESS_KEY_ID = AKIAIO5FODNN7EXAMPLE
export AWS_ACCESS_KEY_ID=$(vault read -field=value path/to/aws-access-key-id)
डिफ़ॉल्ट रूप से, Talisman दोनों लाइनों के लिए सतर्क करेगा। दूसरी लाइन में, हम Hashicorp Vault से AWS Access Key ID निकाल रहे हैं जो कोड को सीक्रेट उजागर नहीं करता है। यदि आपके कोड में इस प्रकार का उपयोग आम है, तो आप Talisman को बताना चाहेंगे कि जब आप Vault का उपयोग करें तो सतर्क न करे। इसे निम्नलिखित कॉन्फ़िगरेशन के साथ प्राप्त किया जा सकता है:```yaml allowed_patterns:
### एक ही प्रकार की एकाधिक फ़ाइलों को अनदेखा करना (वाइल्डकार्ड के साथ)
आप किसी विशेष प्रकार की सभी फ़ाइलों को अनदेखा करना चुन सकते हैं, क्योंकि आप जानते हैं कि वे हमेशा सुरक्षित रहेंगी, और आप नहीं चाहेंगे कि Talisman उन्हें स्कैन करे।
चरण:
1. उन फ़ाइलों के लिए एक वाइल्डकार्ड पैटर्न बनाएं जिन्हें आप अनदेखा करना चाहते हैं। उदाहरण के लिए, `*.lock`
2. पैटर्न फ़ीड करने और सामूहिक चेकसम प्राप्त करने के लिए [चेकसम कैलकुलेटर](#checksum-calculator) का उपयोग करें। उदाहरण के लिए, `talisman --checksum="*.lock" `
3. कंसोल पर मुद्रित fileconfig ब्लॉक को .talismanrc फ़ाइल में कॉपी करें।
यदि कोई भी फ़ाइल संशोधित होती है, तो talisman फिर से फ़ाइलों को स्कैन करेगा, जब तक कि आप नए चेकसम की पुनर्गणना न करें और इसे .talismanrc फ़ाइल में प्रतिस्थापित न करें।
### भाषा दायरा निर्दिष्ट करके फ़ाइलों को अनदेखा करना
आप अपने talismanrc में अपने प्रोजेक्ट के लिए भाषा दायरा निर्दिष्ट करके फ़ाइलों को अनदेखा करना चुन सकते हैं।```yaml
scopeconfig:
- scope: go
- scope: node
- scope: images
- scope: php
- scope: python
टैलिसमैन निर्दिष्ट स्कोप के आधार पर कुछ फ़ाइलों को अनदेखा करने के लिए कॉन्फ़िगर किया गया है। उदाहरण के लिए, scopeconfig में node स्कोप का उल्लेख करने से टैलिसमैन yarn.lock या package-lock.json जैसी फ़ाइलों को स्कैन करने से रोक देगा।
आप एक से अधिक स्कोप निर्दिष्ट कर सकते हैं।
वर्तमान में .talismanrc केवल go, node, php और images के लिए scopeconfig सपोर्ट का समर्थन करता है। अन्य स्कोप जल्द ही जोड़े जाएंगे।
आप वर्तमान रिपॉजिटरी में खोजने के लिए कस्टम regex पैटर्न निर्दिष्ट कर सकते हैं।```yaml custom_patterns:
<br/><i>
**नोट**: .talismanignore का उपयोग अब अप्रचलित (deprecated) हो गया है। इसके स्थान पर फ़ाइल .talismanrc का उपयोग किया जाता है, क्योंकि:
* .talismanrc का प्रारूप अधिक सुपाठ्य yaml प्रारूप में है
* यह संभावित संवेदनशील मान वाली फ़ाइल के प्रत्येक संशोधन की समीक्षा के साथ अधिक सुरक्षित प्रथाएँ भी लाता है
* नया प्रारूप नई उपयोगी कार्यक्षमताओं को शुरू करने की विस्तारशीलता भी लाता है। अधिक सुविधाओं के लिए नज़र बनाए रखें</i>
## गंभीरता सीमा (severity threshold) का कॉन्फ़िगरेशन
प्रत्येक सत्यापन एक गंभीरता से जुड़ा होता है:
1. निम्न (Low)
2. मध्यम (Medium)
3. उच्च (High)
आप अपने .talismanrc में एक सीमा निर्दिष्ट कर सकते हैं:
threshold: medium
threshold: medium
```
यह सभी मध्यम गंभीरता और उससे ऊपर के मुद्दों की रिपोर्ट करेगा (सीमा से नीचे के संभावित जोखिम चेतावनियों में रिपोर्ट किए जाएंगे)
1. सभी जोखिमों की उनकी गंभीरता स्तर के साथ एक सूची इस [कॉन्फ़िगरेशन फ़ाइल](https://github.com/thoughtworks/talisman/blob/HEAD/detector/severity/severity_config.go) में पाई जा सकती है।
2. डिफ़ॉल्ट रूप से, सीमा निम्न पर सेट है।
3. आपके द्वारा जोड़े जाने वाले कोई भी कस्टम खोज पैटर्न उच्च गंभीरता के माने जाते हैं।
## कस्टम गंभीरता कॉन्फ़िगर करना
आप Talisman द्वारा प्रदान किए गए डिटेक्टरों के [सुरक्षा स्तर](https://github.com/thoughtworks/talisman/blob/HEAD/detector/severity/severity_config.go) को .talismanrc फ़ाइल में कस्टमाइज़ कर सकते हैं:```yaml
custom_severities:
- detector: Base64Content
severity: medium
- detector: HexContent
severity: low
```
कस्टम गंभीरता और एक गंभीरता सीमा का उपयोग करके, Talisman को केवल आपके संदर्भ के आधार पर महत्वपूर्ण चीज़ों पर अलर्ट करने के लिए कॉन्फ़िगर किया जा सकता है। यह गलत सकारात्मक परिणामों की संख्या को कम करने में उपयोगी हो सकता है।
## Talisman एक CLI उपयोगिता के रूप में
यदि आप कमांड लाइन पर `talisman` निष्पादित करते हैं, तो आप उन सभी पैरामीटर विकल्पों को देख पाएंगे जिन्हें आप पास कर सकते हैं```
-c, --checksum string checksum calculator calculates checksum and suggests .talismanrc format
-d, --debug enable debug mode (warning: very verbose)
-g, --githook string either pre-push or pre-commit (default "pre-push")
--ignoreHistory scanner scans all files on current head, will not scan through git commit history
-i, --interactive interactively update talismanrc (only makes sense with -g/--githook)
-p, --pattern string pattern (glob-like) of files to scan (ignores githooks)
-r, --reportdirectory string directory where the scan reports will be stored
-s, --scan scanner scans the git commit history for potential secrets
-w, --scanWithHtml generate html report (**Make sure you have installed talisman_html_report to use this, as mentioned in Readme**)
-v, --version show current version of talisman
```
### इंटरैक्टिव मोड
जब आपके पास नियमित रूप से बहुत सारी फ़ाइलें होती हैं जो talisman हुक द्वारा फ़्लैग की जाती हैं, जिनके बारे में आप जानते हैं कि उन्हें चेक इन करना ठीक होना चाहिए, तो आप इस सुविधा का उपयोग करके talisman के लिए प्रक्रिया को आसान बना सकते हैं। इंटरैक्टिव मोड Talisman को सीधे कमांड प्रॉम्प्ट से आपको उन फ़ाइलों को जोड़ने का संकेत देने की अनुमति देगा जिन्हें आप .talismanrc में अनदेखा करना चाहते हैं।
इस सुविधा को सक्षम करने के लिए, आपको अपनी bash फ़ाइल में TALISMAN_INTERACTIVE वेरिएबल को true पर सेट करना होगा।
आप talisman को इंटरैक्टिव मोड में निम्नलिखित 2 तरीकों से आमंत्रित कर सकते हैं:
1. अपनी bash फ़ाइल खोलें, और जोड़ें```export TALISMAN_INTERACTIVE=true```
Don't forget to source the bash file for the variable to take effect!
2. Alternatively, you can also invoke the interactive mode by using the CLI utility
(for using pre-commit hook)
```talisman -i -g pre-commit```
*नोट*: यदि आप git संचालनों के लिए IDE के संस्करण नियंत्रण एकीकरण का उपयोग करते हैं, तो यह सुविधा काम नहीं करेगी। आप अभी भी सुझाए गए फ़ाइल नाम और चेकसम का उपयोग करके इसे .talismanrc फ़ाइल में मैन्युअल रूप से दर्ज कर सकते हैं।
### Git इतिहास स्कैनर
अब आप टैलिसमैन को CLI से निष्पादित कर सकते हैं, और संभावित रूप से इसे अपनी CI/CD पाइपलाइनों में जोड़ सकते हैं, ताकि किसी भी संवेदनशील सामग्री को खोजने के लिए अपने रिपॉजिटरी के git इतिहास को स्कैन कर सकें।
इसमें .talismanrc फ़ाइल में सूचीबद्ध फ़ाइलों की स्कैनिंग भी शामिल है।
**चरण**:
1. स्कैन किए जाने वाले git निर्देशिका पथ में जाएँ `cd <स्कैन करने के लिए निर्देशिका>`
2. स्कैन कमांड चलाएँ `talisman --scan`
* इस कमांड को चलाने से वर्तमान निर्देशिका के रूट में <i>talisman_reports</i> नामक एक फ़ोल्डर बनेगा और रिपोर्ट फ़ाइलें वहाँ संग्रहीत होंगी।
* आप <i>--reportdirectory</i> या <i>--rd</i> के रूप में एक अतिरिक्त पैरामीटर प्रदान करके रिपोर्ट के लिए स्थान भी निर्दिष्ट कर सकते हैं।
<br>उदाहरण के लिए, `talisman --scan --reportdirectory=/Users/username/Desktop`
आप ऊपर दिए गए अनुसार स्कैन करने के लिए अन्य विकल्पों का उपयोग कर सकते हैं।
<i>टैलिसमैन वर्तमान में स्कैनिंग के लिए फ़ाइलों को अनदेखा करने का समर्थन नहीं करता है।</i>
### चेकसम कैलकुलेटर
टैलिसमैन चेकसम कैलकुलेटर yaml प्रारूप देता है जिसे आप सीधे .talismanrc फ़ाइल में कॉपी और पेस्ट कर सकते हैं ताकि टैलिसमैन डिटेक्टरों से विशेष फ़ाइल स्वरूपों को अनदेखा किया जा सके।
चेकसम चलाने के लिए कृपया अपने रिपॉजिटरी के रूट में "cd" करें और निम्नलिखित कमांड चलाएँ
उदाहरण के लिए:
`talisman --checksum="*.pem *.txt"`
1. यह कमांड रिपॉजिटरी में सभी .pem फ़ाइलों को ढूँढता है और उन सभी फ़ाइलों के सामूहिक चेकसम की गणना करता है और .talismanrc के लिए एक yaml प्रारूप आउटपुट करता है। इसी तरह यह .txt फ़ाइलों के साथ काम करता है।
2. एकाधिक फ़ाइल नाम/पैटर्न को स्पेस से अलग करके दिया जा सकता है।
उदाहरण आउटपुट:
.talismanrc format for given file names / patterns
fileignoreconfig:
- filename: '*.pem'
checksum: f731b26be086fd2647c40801630e2219ef207cb1aacc02f9bf0559a75c0855a4
ignore_detectors: []
- filename: '*.txt'
checksum: d9e9e94868d7de5b2a0706b8d38d0f79730839e0eb4de4e9a2a5a014c7c43f35
ignore_detectors: []
नोट: चेकसम कैलकुलेटर फ़ाइलों के सामूहिक चेकसम की गणना करते समय स्टेज की गई फ़ाइलों पर विचार करता है।
# टैलिसमैन HTML रिपोर्टिंग
<i>द्वारा संचालित <a href="https://jaydeepc.github.io/report-mine-website/"><img class=logo align=bottom width="10%" height="10%" src="https://raw.githubusercontent.com/jaydeepc/talisman-html-report/master/img/logo_reportmine.png" /></a></i>
टैलिसमैन CLI टूल `talisman` विस्तृत और साझा करने योग्य HTML रिपोर्ट प्रदान करने की क्षमता के साथ भी आता है। एक बार जब आप टैलिसमैन स्थापित कर लेते हैं, तो कृपया [talisman-html-report](https://github.com/jaydeepc/talisman-html-report) में उल्लिखित चरणों का पालन करें, ताकि `.talisman` फ़ोल्डर में रिपोर्टिंग पैकेज स्थापित किया जा सके। HTML रिपोर्ट उत्पन्न करने के लिए, चलाएँ:
* `talisman --scanWithHtml`
यह रिपॉजिटरी को स्कैन करेगा और स्कैन किए गए रिपॉजिटरी के अंतर्गत एक फ़ोल्डर `talisman_html_report` बनाएगा। रिपोर्ट तक पहुँचने के लिए हमें इस रिपॉजिटरी के अंदर एक HTTP सर्वर शुरू करना होगा। HTTP सर्वर शुरू करने का एक अनुशंसित तरीका नीचे दिया गया है:
* `python -m SimpleHTTPServer <port> (जैसे: 8000)`
अब आप निम्न पर नेविगेट करके रिपोर्ट तक पहुँच सकते हैं:
`http://localhost:8000`
## नमूना स्क्रीनशॉट
* स्वागत
<img width="100%" height="70%" src="https://raw.githubusercontent.com/jaydeepc/talisman-html-report/master/sample/summary.png" />
* सारांश
<img width="100%" height="70%" src="https://raw.githubusercontent.com/jaydeepc/talisman-html-report/master/sample/execution-summary.png" />
* विस्तृत रिपोर्ट
<img width="100%" height="70%" src="https://raw.githubusercontent.com/jaydeepc/talisman-html-report/master/sample/detailed.png" />
* त्रुटि रिपोर्ट
<img width="100%" height="70%" src="https://raw.githubusercontent.com/jaydeepc/talisman-html-report/master/sample/error-report.png" />
<i> **नोट**: यदि आप CI या किसी अन्य होस्ट किए गए वातावरण में टैलिसमैन चला रहे हैं तो आपको सर्वर शुरू करने की आवश्यकता नहीं है </i>
# अनइंस्टॉलेशन
अनइंस्टॉलेशन प्रक्रिया इस बात पर निर्भर करती है कि आपने टैलिसमैन कैसे स्थापित किया था।
आपने इसे वैश्विक हुक टेम्पलेट के रूप में या एकल रिपॉजिटरी में स्थापित करना चुना हो सकता है।
कृपया नीचे दिए गए चरणों का पालन करें जो इस बात पर आधारित हैं कि आपने स्थापना के समय कौन सा विकल्प चुना था।
## वैश्विक हुक टेम्पलेट से अनइंस्टॉलेशन
अपनी मशीन से टैलिसमैन को वैश्विक रूप से अनइंस्टॉल करने के लिए अपने टर्मिनल पर निम्नलिखित कमांड चलाएँ।
प्री-कमिट हुक के लिए:```
bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/uninstall.bash)"
```
pre-push hook के लिए:```
bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/uninstall.bash)" -- pre-push
```
इससे
1. आपसे आपके सभी रिपॉजिटरी के बेस डायरेक्टरी के लिए पूछा जाएगा, उसके अंदर सभी गिट रिपॉजिटरी ढूंढेगा और टैलिस्मन हुक हटा देगा
2. .git-template से टैलिस्मन हुक हटा देगा
3. केंद्रीय इंस्टॉलेशन स्थान ($HOME/.talisman/bin) से टैलिस्मन हटा देगा।<br>
<i>आपको अपने पर्यावरण चरों से TALISMAN_HOME को मैन्युअल रूप से हटाना होगा</i>
## एकल रिपॉजिटरी से अनइंस्टॉलेशन
जब आपने टैलिस्मन इंस्टॉल किया था, तो इसने इंस्टॉलेशन के दौरान आपकी रिपॉजिटरी में एक pre-commit या pre-push हुक (जैसा चुना गया) बनाया होगा।
आप रिपॉजिटरी में .git/hooks फ़ोल्डर से टैलिस्मन का pre-commit या pre-push हुक हटाकर मैन्युअल रूप से हुक को हटा सकते हैं।
# टैलिस्मन में योगदान देना
टैलिस्मन में योगदान देने के लिए, हमारे [योगदान गाइड](https://github.com/thoughtworks/talisman/blob/HEAD/contributing.md) पर एक नज़र डालें।