
स्केल पर GitHub Advanced Security (GHAS) नियंत्रणों का प्रबंधन
एपसेक नियन्त्रणहरूलाई मापनमा कार्यान्वयन र निगरानी गर्नुहोस्।
$ git clone [email protected]:mf-labs/witcher.git
$ cd witcher
$ npm i
$ git clone [email protected]:mf-labs/witcher.git
$ cd witcher
$ docker build -t witcher .
# Docker इमेज चलाउँदै
$ docker run -e GITHUB_TOKEN=$GITHUB_TOKEN -e ORG=$ORG witcher -a status -m ghas -r offsec-sast-testing
➜ witcher git:(master) node witcher.js -h
usage: witcher.js [-h] -m MODULE -a ACTION [--daily-summary] [--mass-action] [--slack] [--siem] [--jira]
[--jira-ticket JIRATICKET] [--org ORG] [-r REPO] [-b BRANCH]
[--workflow-file WORKFLOW] [--repo-file REPOFILE]
witcher ....... तपाईं भाग्न सक्नुहुन्न
वैकल्पिक तर्कहरू:
-h, --help यो सहायता सन्देश देखाउनुहोस् र बाहिर निस्कनुहोस्
-m MODULE, --module MODULE
ghas, dependabot, secret-scanning, codeql, iac, workflows, ALL
-a ACTION, --action ACTION
enable, disbale, status, alert, deploy, delete
--daily-summary दैनिक सारांश प्राप्त गर्नुहोस्
--mass-action मापनमा कार्य (enable, deploy, delete) गर्नुहोस्
--slack Slack मा नयाँ अलर्ट(हरू) पोस्ट गर्नुहोस्
--siem SIEM मा गतिविधिहरू लग गर्नुहोस्
--jira Jira मा नयाँ जोखिम टिकट पोस्ट गर्नुहोस्
--jira-ticket JIRATICKET
Jira टिकट ID (जस्तै PROJECT-123)
इनपुट:
--org ORG संगठनको नाम
-r REPO, --repo REPO भण्डारको नाम, ALL
-b BRANCH, --branch BRANCH
शाखाको नाम
--workflow-file WORKFLOW
कार्यप्रवाह फाइलको नाम
--repo-file REPOFILE भण्डार फाइलको नाम

पहिले निम्न वातावरण चर सेट गर्नुहोस्
export GITHUB_TOKEN=YOUR_GITHUB_TOKEN
export GITHUB_USER=YOUR_GITHUB_USERNAME
export ORG=YOUR_GITHUB_ORGANIZATION
# Slack कन्फिगर गर्न वैकल्पिक
export SLACK_BOT_TOKEN
export SLACK_SIGNING_SECRET
export SLACK_CHANNEL
# SIEM मा डाटा पठाउन वैकल्पिक
export SERVERLESS_APP_URL
# Jira टिकट सिर्जनाको लागि वैकल्पिक
export JIRA_API_TOKEN
export JIRA_EMAIL
export JIRA_URL
export JIRA_PROJECT
export JIRA_ISSUE_TYPE
github/data/exclusion.json फाइललाई मुख्य भण्डारहरू / GHAS बाट बहिष्कृत भण्डारहरूको सूचीको साथ अद्यावधिक गर्नुहोस्।
# GHAS अक्षम भण्डारहरूको सूची बनाउनुहोस्
$ node witcher.js -m ghas -a status --repo All
# निश्चित भण्डारमा GHAS सक्षम गर्नुहोस्
$ node witcher.js -m ghas -a enable --repo <repo-name>
# निश्चित भण्डारमा GHAS अक्षम गर्नुहोस्
$ node witcher.js -m ghas -a disable --repo <repo-name>
# निश्चित भण्डारमा GHAS स्थिति जाँच गर्नुहोस्
$ node witcher.js -m ghas -a status --repo <repo-name>
# नवीनतम कोड स्क्यानिङ जोखिम प्राप्त गर्नुहोस्
$ node witcher.js -m codeql -a alert --slack // --slack Slack मा पोस्ट गर्न
# मास एक्शन
$ node witcher.js --mass-action -a enable -m ghas --repo-file mass_action.txt --jira-ticket PROJECT-123

# दैनिक सारांश चलाउनुहोस्
$ node witcher.js --daily-summary -m ALL -a status --slack --jira
# दैनिक सारांशले निम्नको जाँच समावेश गर्दछ
# 1. सबै भण्डारहरूमा GHAS स्थिति
# 2. सबै भण्डारहरूमा गोप्य स्क्यानिङ स्थिति
# 3. Dependabot स्थिति जाँच गर्नुहोस्
# 4. रोकिएको Dependabot जाँच गर्नुहोस्
# 5. लागू भण्डारहरूमा कोड स्क्यानिङ स्थिति
# 6. लागू भण्डारहरूमा IaC स्क्यानिङ स्थिति
# 7. कुनै नयाँ जोखिमको लागि अलर्ट जाँच गर्नुहोस्
# 8. दैनिक सारांश SIEM मा लग गरियो र Slack मा पोस्ट गरियो
- सबै सार्वजनिक भण्डारहरू witcher बाट बहिष्कृत छन्
- सबै अभिलेखीकृत भण्डारहरू witcher बाट बहिष्कृत छन्
- सबै पुरानो भण्डारहरू witcher बाट बहिष्कृत छन्
यो परियोजना Apache 2.0 License अन्तर्गत इजाजतपत्र प्राप्त छ।
Copyright (c) 2025 Moonfare।
तपाईं परियोजना प्रयोग, परिमार्जन, र वितरण गर्न स्वतन्त्र हुनुहुन्छ, बशर्ते तपाईंले आफ्नो प्रयोगमा Moonfare लाई उपयुक्त आरोपण समावेश गर्नुहुन्छ।
यदि तपाईं परियोजनामा योगदान दिन चाहनुहुन्छ भने, कृपया हाम्रो CONTRIBUTING.md मार्गदर्शनको लागि हेर्नुहोस्।