በጂትሆብ ውስጥ ቅርንጫፍ እንዴት መፍጠር እንደሚቻል መማር የመጀመሪያው እርምጃ ነው። ሆኖም ግን፣ በጂትሆብ ውስጥ ቅርንጫፎችን ደህንነቱ በተጠበቀ ሁኔታ እንዴት ማዋሃድ እንደሚቻል ማወቅ ለእያንዳንዱ ቅርንጫፍም እንዲሁ ወሳኝ ነው። የፊልሙ የስራ ፍሰት። ስለዚህ፣ በዚህ ጽሑፍ ውስጥ፣ አጠቃላይ ሂደቱን እናሳይዎታለን፣ ከ በ GitHub ውስጥ ቅርንጫፍ እንዴት መፍጠር እንደሚቻል እና ከዚያ በኋላ ያሳየዎታል በ GitHub ውስጥ ቅርንጫፎችን እንዴት ማዋሃድ እንደሚቻል ደህንነቱ በተጠበቀ ሁኔታ። ማንኛውም ችግር ካጋጠመዎት ውህደትን እንዴት መሰረዝ እንደሚችሉ እና በመጨረሻም፣ Xygeni ወደ ዋናው ቅርንጫፍዎ ከመግባቱ በፊት እያንዳንዱን ችግር እንዴት እንደሚይዙ እንዴት እንደሚረዳዎት እንወያያለን።
ደረጃ በደረጃ እንለፍበት።
1. በጂትሆብ ውስጥ ቅርንጫፍ እንዴት በትክክለኛው መንገድ መፍጠር እንደሚቻል
እያንዳንዱ ደህንነቱ የተጠበቀ የስራ ፍሰት የሚጀምረው በጂትሆብ ውስጥ ቅርንጫፍ ሲፈጥሩ ነው። ገንቢዎች የምርት ኮዱን ሳይነኩ ባህሪያትን፣ ጥገናዎችን ወይም ሙከራዎችን እንዲያወጡ ያስችላቸዋል።
በጂትሆብ ውስጥ ቅርንጫፍ ለመፍጠር፦
1. ወደ ማከማቻዎ ይሂዱ
2. የቅርንጫፍ መራጭ ተቆልቋይ ላይ ጠቅ ያድርጉ

3. የአዲሱን ቅርንጫፍዎን ስም ይተይቡ
4. ጠቅታ ቅርንጫፍ ፍጠር

ከዚህ፣ አዲሱ ቅርንጫፍዎ ለመስራት ዝግጁ ነው። አሁን ኮድን መጫን፣ በለውጦች ላይ መተባበር እና በመጨረሻም መክፈት ይችላሉ pull requestምንም እንኳን ይህ መሰረታዊ የጂትሃብ እርምጃ ቢሆንም፣ ደህንነቱ የተጠበቀ ልማትን የሚያመቻች ነው።
በ GitHub ውስጥ ቅርንጫፍ በፈጠሩ ቁጥር፣ ሊደገም የሚችል እና የተጠበቀ የስራ ፍሰት አካል መሆን አለበት።
2. ቃኝ Pull Requests ከመዋሃድዎ በፊት በራስ-ሰር
በጂትሆብ ውስጥ ቅርንጫፍ ሲፈጥሩ እና ለግምገማ ሲዘጋጁ፣ የሚቀጥለው እርምጃ በጂትሆብ ውስጥ ቅርንጫፎችን ደህንነቱ በተጠበቀ ሁኔታ እንዴት ማዋሃድ እንደሚቻል መረዳት ነው። እያንዳንዱ የጂትሆብ ቅርንጫፍ ግፊት አውቶማቲክ ፍተሻዎችን ማስነሳት አለበት። ነገር ግን ከመዋሃድዎ በፊት አስፈላጊ ነው አረጋግጥ ያ ኮዱ ተጋላጭነቶችን አያመጣም። አንድ ደህንነቱ ያልተጠበቀ commit ማመልከቻዎን ሊያጋልጥ ይችላል፣ leak secretወይም ወሳኝ የሆኑ መሠረተ ልማቶችን መስበር።
ኮድን ወደ ዋናው ቅርንጫፍዎ ማዋሃድ ከፍተኛ ተጽዕኖ የሚያሳድር ተግባር ነው። ተገቢ ፍተሻዎች ካልተደረጉ፣ የሚከተሉትን የመሳሰሉ ከባድ ውጤቶችን ሊያስከትል ይችላል፡
- የዜሮ-ቀን ተጋላጭነቶች ወደ ምርት መዝለል
- የሚታወቁ ሲቪኢዎች በክፍት ምንጭ ፓኬጆች በኩል አስተዋወቀ
- በኮድ የተጻፉ ምስጢሮች ወደ ማከማቻው ተዛወረ
- የመሠረተ ልማት የተሳሳተ ውቅር መከላከያዎን የሚያዳክም
- ተንኮል አዘል ወይም የተዛባ ኮድ በጥገኛዎች በኩል መግባት
እዚህ ላይ ነው Xygeni እውነተኛ ለውጥ የሚያመጣው
በመጠቀም GitHub እርምጃዎች፣ ማስነሳት ይችላሉ ራስ-ሰር የXygeni ቅኝቶች አንድ ገንቢ ሲከፍት pull request ወደ የተጠበቀ ቅርንጫፍ። በጂትሆብ ውስጥ የተጠበቀ ቅርንጫፍ ለውጦች ከመቀላቀላቸው በፊት የተወሰኑ ቼኮችን ወይም ማጽደቆችን የሚፈልግ ነው።
ዢጂኒ ትንታኔ ይሰጣል የቅርብ ጊዜ አፈፃፀም የ pull request የስራ ፍሰት የታቀዱትን ለውጦች የደህንነት አቀማመጥ ለማረጋገጥ። ይህ የሚከተሉትን ማረጋገጥን ያካትታል በኮዱ ውስጥ ያሉ ጉዳዮች፣ ጥገኝነቶች፣ ምስጢሮች እና CI/CD ውቅሮችሙሉው ቅርንጫፍ እንደገና አልተቃኘም፣ ነገር ግን የቅርብ ጊዜው የስራ ፍሰት ውጤት ፖሊሲዎችን ለማስፈጸም እና ደህንነታቸው ያልተጠበቁ ውህዶችን ለማገድ ጥቅም ላይ ይውላል።
እነዚህ ቅኝቶች ኮዱ ደህንነቱ የተጠበቀ እና ለምርት ዝግጁ መሆኑን ያረጋግጣሉ። የሚከተሉትን ያረጋግጣሉ፦
ማዋሃድ እነዚህ ቼኮች ቀደም ብለው ያረጋግጣሉ በጂትሆብ ውስጥ ቅርንጫፍ በፈጠሩ ቁጥር እና ለመዋሃድ በሚዘጋጁበት ጊዜ ሁሉ፣ ከሚከተለው ጋር ያደርጉታል ሙሉ ታይነት እና ቁጥጥር.
ቀለል ያለ ማዋቀር እነሆ፦
on:
pull_request:
branches: [ main ]
jobs:
xygeni-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Xygeni Scanner
uses: xygeni/xygeni-action@3.2.0
with:
token: ${{ secrets.XYGENI_TOKEN }}
3. ደህንነቱ ያልተጠበቀ ብሎክ ከ ጋር ይዋሃዳል Guardrails
Guardrailsበጂትሆብ ውስጥ ቅርንጫፍ ሲፈጥሩ ወይም በጂትሆብ ውስጥ ቅርንጫፎችን እንዴት ማዋሃድ እንደሚችሉ ሲሞክሩ፣ ወደ ዋናው ቅርንጫፍዎ የሚደርሱት ደህንነታቸው የተጠበቀ ለውጦች ብቻ መሆናቸውን ያረጋግጡ። በሚዋሃዱት ነገሮች ላይ ሙሉ ቁጥጥርቅድመ-ሁኔታን መግለጽ ይችላሉ።cisለደህንነት ፖሊሲዎችዎ እና ለአደጋ ተጋላጭነትዎ የተዘጋጁ ደንቦች። ለምሳሌ፡
- ወሳኝ ሚስጥር ከሆነ አግድ ተገኝቷል (ለምሳሌ፣ የAWS ቁልፎች፣ ቶከኖች)
- ግንባታውን አሰናክል ከሆነ አዲስ ከፍተኛ አደጋ ክፍት ምንጭ ፓኬጅ አስተዋውቋል
- አትቀበል pull requests ያ ሚስጥራዊነት ያላቸውን መንገዶች ቀይር እንደ
.github/workflows/,infrastructure/, ወይምsecrets.env - ውህደትን ይከላከሉ ከሆነ የውድቀት ቅነሳ እንደገና ተጀመረ ታዋቂ ተጋላጭነት
- አግድ CI/CD የውቅር ለውጦች በትክክል ካልተሰየመ በስተቀር
- ውህደትን አቁም ከሆነ SAST ከፍተኛ ወይም ከፍተኛ ደረጃን ይለያል ወሳኝ ጉዳዮች
- የበለጠ ጥብቅ ይተግብሩ Guardrails በምርት ቅርንጫፎች ላይ በልማት ውስጥ ተለዋዋጭነትን በመጠበቅ ላይ እያለ
እነዚህ ደንቦች እንደ አውቶማቲክ በር ጠባቂዎች ሆነው ያገለግላሉ። ቡድንዎ ደህንነቱ የተጠበቀውን ብቻ እንዲያዋህዱ ያግዛሉ፣ ምንም አስገራሚ ነገር የለም፣ ምንም የእጅ ግምገማዎች የሉም፣ ወይም የመጨረሻ ደቂቃ የእሳት አደጋ መከላከያ የለም።
የጥበቃ መመሪያ ምሳሌ፡
guardrail block_critical_secrets
on secrets
when severity = critical
then @fail()
የእይታ ግብረመልስ በ ውስጥ Dashboard

ሙሉ ታይነትን ለማረጋገጥ፣ Xygeni የGuardrail ሁኔታን የቅርብ ጊዜ ግምገማ ውጤት ያሳያል።
- በመጀመሪያአረንጓዴ አዶ ማለት ሁሉም የፀደቁ መመሪያዎች ማለት ነው።
- በተቃራኒውቀይ አዶ አንድ ወይም ከዚያ በላይ የጥበቃ ባቡር ሁኔታዎች እንደተጣሱ ያሳያል።
በዚህም ምክንያት፣ ገንቢዎችም ሆኑ የደህንነት ቡድኖች የCI ምዝግብ ማስታወሻዎችን ሳይቆፍሩ ውህደት ለምን እንደታገደ ወዲያውኑ ግንዛቤ ያገኛሉ።
እውነተኛ ምሳሌ ከ Dashboard:
ለምሳሌ፣ አንድ ማከማቻ ምንም የተጠበቁ ቅርንጫፎች የሉትም እንበል፣ ይህም ገንቢዎች እንዲገፋፉ የሚያስችል የተለመደ የተሳሳተ ውቅር ነው commitያለ ማረጋገጫ። ያ ከባድ አደጋ ነው።
Xygeni ይህንን በራስ-ሰር ያገኛል እና እንደ ምልክት ያደርጋል ተፈርሟል_commits በዚህ ጉዳይ ስር ያለው ጉዳይ CI/CD ምድብ። dashboard ድምቀቶች
- ከባድነት ከፍ ያለ
- አይነት: ገብተዋል Commits
- ማብራሪያ: ማከማቻው ምንም የተጠበቁ ቅርንጫፎች የሉትም
- ሁኔታ: ክፈት
ስለዚህ፣ በዚህ አውድ የበለፀገ ግብረመልስ፣ ቡድኖች አደጋውን በፍጥነት መለየት፣ ተጽዕኖውን መረዳት እና የማስተካከያ እርምጃዎችን መውሰድ ይችላሉ፣ ሁሉም ከ Xygeni UI።
አዘጋጅ የማስፈጸሚያ ባህሪ
ሁልጊዜም ተቆጣጣሪ ነዎት። ምን ያህል ጥብቅ እንደሆኑ ይምረጡ Guardrails መሆን አለበት:
--fail-on=critical: ብሎክ በከባድ ግኝቶች ላይ ብቻ ይዋሃዳል--never-fail: ሩጫ Guardrails ተግባራዊ ከመደረጉ በፊት ፖሊሲዎችን ለመፈተሽ በደረቅ ሩጫ ሁነታ
ስለዚህ በሚቀጥለው ጊዜ በጂትሆብ ውስጥ ቅርንጫፍ ሲፈጥሩ፣ የእርስዎ Guardrails ቀድሞውኑ እዚያ ነዎት፣ የእርስዎን ጥበቃ ይጠብቃሉ pipeline እና ፖሊሲዎችዎን በራስ-ሰር ማስፈጸም።
4. አደጋዎች ሲገኙ በጂትሆብ ውስጥ በራስ-ሰር መዋሃድን ሰርዝ
አደጋዎች ከተገኙ ውህደቱ ይሰረዛል። ይህ ጥበቃ እያንዳንዱን የጊትሆብ ፕሮጀክት ቅርንጫፍ ይጠብቃል እና በጊትሆብ ውስጥ ቅርንጫፎችን እንዴት ማዋሃድ እንደሚቻል ምርጥ ልምዶችን ያስፈጽማል።
Xygeni በቀጥታ ከ GitHub's UI ጋር ይዋሃዳል። አደጋ ሲገኝ፡
- GitHub ቼኩን እንደወደቀ ያሳያል
- የጂትሆብ ጥበቃዎች ውህደቱን ይከላከላሉ
- የውህደት ወረፋው ደህንነቱ ያልተጠበቀ ኮድ ይዘላል
ሚስጥራዊ፣ CVE ወይም አደገኛ ይሁን CI/CD ንድፉ፣ ውጤቱም አንድ ነው፡- ውህደት በጂትሆብ ውስጥ ተሰርዟል እና ለግምገማ ተጠቁሟል።
እንዲሁም በ Xygeni ውስጥ ዝርዝር ውጤቶችን ማየት ይችላሉ፡
- የእያንዳንዱ ቅርንጫፍ የደህንነት ሁኔታ
- ውህደት ለምን ታገደ?
- የተሟላ የፍተሻ ታሪክ
- የጥበቃ ሀዲድ ሁኔታ በፕሮጀክቱ ገጽ ላይ በአረንጓዴ (ማለፊያ) ወይም በቀይ (ውድቀት) አዶዎች ይታያል
ይህ የእይታ ግብረመልስ ገንቢዎች እና የደህንነት ቡድኖች በልበ ሙሉነት እርምጃ እንዲወስዱ ቀላል ያደርገዋል። እና ጥልቅ አውድ ሲያስፈልግዎ፣ እያንዳንዱ ጉዳይ ከሰነዶች ክብደት፣ መለያዎች፣ ቦታ እና የማስተካከያ መመሪያ ጋር ይገናኛል።
Tldr Merge Only ደህንነቱ የተጠበቀ ነገር
ለማጠቃለል፣ በጂትሆብ ውስጥ ቅርንጫፍ ከፈጠሩ በኋላ ደህንነቱ በተጠበቀ ሁኔታ እንዴት እንደሚዋሃዱ እነሆ፡
- በጂትሆብ ውስጥ በUI በኩል ቅርንጫፍ ይፍጠሩ
- በእያንዳንዱ ጊዜ አውቶማቲክ ቅኝቶችን ያስነሱ pull request ከዚጄኒ ጋር
- ደህንነቱ ያልተጠበቀ ውህደትን በመጠቀም አግድ Guardrails
- ለበለጠ ቁጥጥር የአገልጋይ-ጎን የኦዲት ፖሊሲዎችን ይጠቀሙ
- የሆነ ነገር ሲከሽፍ በጂትሆብ ውስጥ ውህደትን ሰርዝ
- በXygeni's ውስጥ ያሉትን ሁሉንም ውጤቶች በዓይነ ሕሊናህ ተመልከት dashboard
ስለ ማከማቻ ጥበቃ ተጨማሪ ምርጥ ልምዶችን ለማግኘት የእኛን ያንብቡ የጂትሃብ ደህንነት ተደጋጋሚ ጥያቄዎች፡ እያንዳንዱ ገንቢ ማወቅ ያለበት ነገር.
ማዋሃድ መሰረታዊ ተግባር ቢሆንም፣ ደህንነቱ በተጠበቀ ሁኔታ ማድረግ እውነተኛ ታይነትን እና አውቶሜሽንን ይጠይቃል። በXygeni፣ ኮድን ማዋሃድ ብቻ ሳይሆን እምነትን ማዋሃድም ነው።
እያንዳንዱን የጂቲኤችቢ ቅርንጫፍ በልበ ሙሉነት ይጠብቁ
በአንድ ጉዳይ ላይ ችላ የተባለ ጉዳይ pull request ዋና ዋና ቅርንጫፎችዎን ሊያበላሹ ይችላሉ። ባህላዊ ስካነሮች ብዙውን ጊዜ በጣም ዘግይተው ይሰራሉ፣ ወሳኝ አደጋዎችን ያመልጣሉ ወይም ትርጉም ያላቸው ፖሊሲዎችን ተግባራዊ ማድረግ ይሳናቸዋል።
ለዚህም ነው የጂትሆብ ቅርንጫፎችዎን መጠበቅ ከቅኝት በላይ የሚፈጀው።
Xygeni እውነተኛ ማስፈጸሚያ ይሰጣል። ሀ pull request የተጠበቀ ቅርንጫፍን ኢላማ ያደርጋል፣ Xygeni የእርስዎን የቅርብ ጊዜ አፈፃፀም ይተነትናል CI/CD የስራ ፍሰት። መላውን ቅርንጫፍ እንደገና አይቃኝም። በምትኩ፣ በኮድ፣ ጥገኝነቶች፣ ሚስጥሮች እና የስራ ፍሰት ውቅሮች ውስጥ የደህንነት ጉዳዮችን ለመፈተሽ የቅርብ ጊዜ ውጤቶችን ይገመግማል። እርስዎ ማንቂያ ብቻ አይደሉም። እርስዎ ጥበቃ ይደረግልዎታል።
የተለየ የሚያደርገው፡-
- የሙሉ አውድ ማረጋገጫ፡ Guardrails እንደ ክብደት፣ ብዝበዛ እና የቅርንጫፍ ሜታዳታ ያሉ የበለጸገ አውድ በመጠቀም ፖሊሲን ማስፈጸም።
- አብሮ የተሰራ የጂትሆብ ውህደት፡ ከቅኝት እስከ ተግባራዊነት ድረስ ሁሉም ነገር በጂትሆብ የስራ ፍሰቶችዎ ውስጥ ይሰራል፣ ምንም አይነት ብጁ ስክሪፕቶች ወይም የማጣበቂያ ኮድ አያስፈልግም።
- የአገልጋይ-ጎን ኦዲቶች፡ የአገልጋይ-ጎን Guardrails ከተሰቀለ በኋላ ውጤቶቹን ያረጋግጡ፣ ከሁለተኛው የቁጥጥር ንብርብር ውጭ በመጨመር pipeline.
ሁሉንም ነገር ለመያዝ በCI ማዋቀርዎ ላይ ከመተማመን ይልቅ፣ Xygeni በራስ-ሰር፣ በፖሊሲ ላይ የተመሠረተ ዴስን ይተገብራልcisማንኛውም ነገር ወደ ዋናው ቅርንጫፍዎ ከመድረሱ በፊት አዮኖች።
ምንም እንኳን ውህደት መሰረታዊ ተግባር ቢሆንም፣ ደህንነቱ በተጠበቀ ሁኔታ ማድረግ እውነተኛ ታይነትን እና አውቶሜሽንን ይጠይቃል። በXygeni፣ ማከማቻዎን ብቻ ሳይሆን እያንዳንዱን የGitHub ቅርንጫፍ በልበ ሙሉነት ይጠብቃሉ።







