English | 中文 | 日本語 | हिन्दी | 한국어 | ภาษาไทย | العربية
GitHub Copilot CLI और GitLab CI/CD द्वारा संचालित एक पूर्ण स्वचालित कोडिंग एजेंट। यह सिस्टम issue assignments, merge request comments, और merge request reviewer assignments के माध्यम से स्वायत्त कोड कार्यान्वयन और बुद्धिमान कोड समीक्षा को सक्षम बनाता है।
Youtube डेमो वीडियो
सेटअप:
उपयोग कैसे करें:
- Copilot Coding Agent for GitLab - How to use 2:30 – Create an issue in the app repo and assign it to Copilot
- Copilot Coding Agent for GitLab - How to use 11:24 – Let Copilot make some updates in the merge request via comments
उदाहरण रिपॉजिटरी
- सार्वजनिक GitLab डेमो रिपॉजिटरी app-repo-01
- Issue: एक Webhook रिसीवर एप्लिकेशन
- MR: एक Webhook रिसीवर एप्लिकेशन (#18)
- Comment के साथ MR अपडेट करें: @copilot-agent readme को हिंदी में बदलें
- कोड समीक्षा: MR में Copilot को समीक्षा करने वाले के रूप में असाइन करें
graph TB
subgraph "App Repository (Target Repo)"
A[GitLab Issue/MR] -->|Issue assign to Copilot| C[Webhook Trigger]
A[GitLab Issue/MR] -->|MR comment @copilot-agent| C[Webhook Trigger]
A[GitLab Issue/MR] -->|MR assign Copilot as Reviewer| C[Webhook Trigger]
end
subgraph "Webhook Service"
C -->|HTTP POST| D[Flask Service]
D -->|Validate & Extract| E[Pipeline Variables]
E -->|Trigger| F[GitLab API]
end
subgraph "Copilot Coding Agent Repo"
F -->|Start Pipeline| G[CI/CD Pipeline]
G -->|Issue: ack → plan → create_mr| H[Issue Workflow]
G -->|MR Note: mr_update only| I[MR Note Workflow]
G -->|MR Reviewer: mr_review| L[MR Review Workflow]
H -->|implement → finalize| J[Copilot CLI]
I -->|implement changes| J
L -->|perform code review| J
J -->|Generate Code| K[Git Commit & Push]
end
K -->|Update| A
J -->|Post Comments| A
L -->|Post Review Comments| A
style D fill:#e1f5ff
style G fill:#fff4e1
style J fill:#e8f5e9
- एप्लिकेशन रिपॉजिटरी: आपका एप्लिकेशन कोड रिपॉजिटरी जहाँ विकास होता है
- Webhook सेवा: Flask-आधारित रिले सेवा जो GitLab इवेंट्स को कैप्चर करती है
- Copilot कोडिंग एजेंट रिपॉजिटरी: CI/CD ऑर्केस्ट्रेटर जो कोडिंग स्वचालन चलाता है
Issue असाइनमेंट वर्कफ़्लो (पूर्ण स्वचालन):
Issue को Copilot को असाइन किया → Webhook → Pipeline ट्रिगर →
Issue स्वीकार करें → TODO योजना बनाएं → MR बनाएं →
कोड लागू करें → परिवर्तन Push करें → MR और Issue अपडेट करें
MR Note वर्कफ़्लो (त्वरित अपडेट):
MR में @copilot-agent को Comment करें → Webhook → Pipeline ट्रिगर →
स्वीकार करें → परिवर्तन लागू करें → Source Branch में Push करें →
सारांश Comment पोस्ट करें
MR Reviewer वर्कफ़्लो (बुद्धिमान कोड समीक्षा):
Copilot को MR Reviewer के रूप में असाइन करें → Webhook → Pipeline ट्रिगर →
स्वीकार करें → कोड परिवर्तनों का विश्लेषण करें → व्यापक समीक्षा करें →
विस्तृत समीक्षा Comment पोस्ट करें
- API एक्सेस के साथ GitLab अकाउंट
- GitLab Runner (Docker/Kubernetes executor) (CI/CD निष्पादन के लिए)
- GitHub Copilot CLI एक्सेस और सब्सक्रिप्शन
- Docker (वैकल्पिक, webhook सेवा को कंटेनर में चलाने के लिए)
- एप्लिकेशन रिपॉजिटरी: Maintainer भूमिका (webhooks प्राप्त करने और MR बनाने के लिए)
- Copilot कोडिंग एजेंट रिपॉजिटरी: Owner भूमिका (CI/CD कॉन्फ़िगर करने के लिए)
- GitLab Personal Access Token निम्नलिखित स्कोप के साथ:
api(पूर्ण API एक्सेस)read_repositorywrite_repository
बेहतर अनुमति प्रबंधन और गतिविधि ऑडिटिंग के लिए Copilot एजेंट के लिए एक समर्पित GitLab उपयोगकर्ता अकाउंट बनाने का सुझाव दिया गया है। आप एक मौजूदा अकाउंट का उपयोग कर सकते हैं, लेकिन यह अनुशंसित नहीं है।
-
"Copilot" या इसी तरह के नाम से एक नया GitLab अकाउंट बनाएं
-
इस अकाउंट के लिए एक Personal Access Token उत्पन्न करें:
-
इस उपयोगकर्ता को उचित अनुमतियाँ प्रदान करें (एक दृष्टिकोण चुनें):
- विकल्प A (संगठन-व्यापी उपयोग के लिए अनुशंसित): GitLab Administrator या Group Owner के रूप में सेट करें
- यह Copilot उपयोगकर्ता को GitLab इंस्टेंस या ग्रुप में सभी रिपॉजिटरी तक पहुँचने की अनुमति देता है
- कई परियोजनाओं को प्रबंधित करने के लिए अधिक सुविधाजनक
- विकल्प B (सीमित स्कोप के लिए अनुशंसित): विशिष्ट एप्लिकेशन रिपॉजिटरी में सदस्य के रूप में जोड़ें
- भूमिका: Developer या Maintainer
- अधिक विस्तृत नियंत्रण, यदि आप प्रतिबंधित एक्सेस पसंद करते हैं तो उपयुक्त
- यह उपयोगकर्ता issues को असाइन किया जाएगा और merge requests बनाएगा
- विकल्प A (संगठन-व्यापी उपयोग के लिए अनुशंसित): GitLab Administrator या Group Owner के रूप में सेट करें
Copilot उपयोगकर्ता संचालन का उपयोग करते हुए
-
इस रिपॉजिटरी को Git URL के माध्यम से अपने GitLab में आयात करें
-
CI/CD वेरिएबल कॉन्फ़िगर करें
Settings → CI/CD → Variables पर जाएं, निम्नलिखित जोड़ें:
वेरिएबल विवरण Protected Masked GITLAB_TOKENPersonal access token (चरण 1 से) ✅ ✅ GITHUB_TOKENGitHub Copilot CLI एक्सेस टोकन, एक वैध GitHub Copilot सब्सक्रिप्शन सहित ✅ ✅ "Copilot Requests" अनुमति सक्षम के साथ fine-grained PAT
GITHUB_TOKENउत्पन्न करने के लिए:- https://github.com/settings/personal-access-tokens/new पर जाएं
- "Permissions" के अंतर्गत, "add permissions" पर क्लिक करें और "Copilot Requests" चुनें
- अपना टोकन उत्पन्न करें

याद रखें कि pipeline variables का उपयोग करने वाली भूमिका को Developer में बदलें

-
GitLab Runner सेटअप करें
यदि आपके GitLab इंस्टेंस में पहले से Docker/Kubernetes executors के साथ उपलब्ध Runners हैं, तो आप इस चरण को छोड़ सकते हैं।
सुनिश्चित करें कि आपके पास निम्नलिखित के साथ कॉन्फ़िगर किया गया GitLab Runner है:
- Docker executor (अनुशंसित)
- Docker image तक पहुँच:
satomic/copilot-cli:latest
यदि टैग का उपयोग कर रहे हैं, तो सुनिश्चित करें कि Runner में संबंधित टैग हैं, या आवश्यकतानुसार
.gitlab-ci.ymlको अपडेट करें। नया Runner पंजीकरण GitLab के पेज मार्गदर्शन का पालन करके पूरा किया जा सकता है, और प्रोजेक्ट या ग्रुप स्तर पर पंजीकृत किया जा सकता है। यहाँ प्रोजेक्ट स्तर के लिए एक उदाहरण है:
-
Copilot CLI एक्सेस कॉन्फ़िगर करें
मैंने Docker image
satomic/copilot-cli:latestबनाई है जिसमें शामिल है:- GitHub Copilot CLI इंस्टॉल किया गया
- प्रमाणीकरण पूर्व-कॉन्फ़िगर किया गया,
GITHUB_TOKENenvironment variable को पढ़ रहा है
या Copilot CLI एक्सेस के साथ अपनी खुद की image बनाएं।
-
.envफ़ाइल बनाएंcat > .env << EOF PIPELINE_TRIGGER_TOKEN=your-trigger-token, चरण 2 में बनाई गई रिपॉजिटरी के Settings → CI/CD → Pipeline trigger tokens में उत्पन्न करें PIPELINE_PROJECT_ID=your-project-id, इस रिपॉजिटरी का प्रोजेक्ट ID (Settings → General में मिलता है) PIPELINE_REF=main GITLAB_API_BASE=https://gitlab.com # यदि आवश्यक हो तो self-hosted instance में बदलें WEBHOOK_SECRET_TOKEN= COPILOT_AGENT_USERNAME=copilot-agent # Copilot बॉट का GitLab ID COPILOT_AGENT_COMMIT_EMAIL=copilot@github.com # git commits के लिए ईमेल LISTEN_HOST=0.0.0.0 LISTEN_PORT=8080 ENABLE_INLINE_REVIEW_COMMENTS=true COPILOT_LANGUAGE=hi EOF
-
Docker के साथ चलाएं
docker run -itd \ --name gitlab-copilot-coding-agent-hook \ -p 8080:8080 \ --env-file .env \ --restart unless-stopped \ satomic/gitlab-copilot-coding-agent-hook:latest
-
स्रोत से चलाएं (वैकल्पिक)
git clone https://github.com/satomic/gitlab-copilot-coding-agent.git cd gitlab-copilot-coding-agent/ python3 main.py -
Hook URL webhook सेवा का सार्वजनिक URL प्राप्त करें, उदाहरण के लिए,
http://your-server-ip:8080/webhook
आमतौर पर, जो डेवलपर्स Copilot कोडिंग एजेंट का उपयोग करना चाहते हैं, उन्हें केवल अपनी खुद की एप्लिकेशन रिपॉजिटरी में webhook को कॉन्फ़िगर करने की आवश्यकता होती है, Copilot कोडिंग एजेंट रिपॉजिटरी तक पहुँचने की नहीं।
-
अपने एप्लिकेशन रिपॉजिटरी → Settings → Webhooks पर जाएं
-
Webhook बनाएं
-
webhook का परीक्षण करें
- Test → Issue events पर क्लिक करें
- webhook सेवा लॉग में सफल रिसेप्शन की जाँच करें
- HTTP 200/202 रिस्पॉन्स सत्यापित करें
-
Issue असाइनमेंट का परीक्षण करें
-
MR Note का परीक्षण करें
-
MR Reviewer का परीक्षण करें
-
लॉग की जाँच करें
# Webhook सेवा लॉग docker logs -f gitlab-copilot-coding-agent-hook # सहेजे गए webhook payloads की जाँच करें ls -la hooks/ # Pipeline लॉग की जाँच करें # Copilot कोडिंग एजेंट रिपॉ → CI/CD → Pipelines पर जाएं
-
अपनी एप्लिकेशन रिपॉजिटरी में एक Issue बनाएं
## आवश्यकताएं - उपयोगकर्ता प्रमाणीकरण लागू करें - पासवर्ड हैशिंग जोड़ें - लॉगिन endpoint बनाएं - JWT टोकन जनरेशन जोड़ें
-
Copilot को असाइन करें
- issue पेज में, इसे "Copilot" उपयोगकर्ता को असाइन करें
- सिस्टम स्वचालित रूप से काम करना शुरू कर देगा
-
प्रगति ट्रैक करें
- Copilot pipeline लिंक के साथ एक acknowledgment comment पोस्ट करता है
- TODO checklist के साथ एक merge request बनाया जाता है
- कोड स्वचालित रूप से लागू किया जाता है
- अंतिम comment पूर्णता की सूचना देता है
नोट: यदि issue के लिए एक merge request पहले से मौजूद है, तो Copilot इसे पहचान लेगा और issue में एक सूचना पोस्ट करेगा, आपको डुप्लिकेट बनाने के बजाय मौजूदा MR में काम जारी रखने के लिए कहेगा।
-
समीक्षा और Merge करें
- MR में उत्पन्न कोड की समीक्षा करें
- यदि आवश्यक हो तो परिवर्तन का अनुरोध करें (नीचे MR Note उपयोग देखें)
- संतुष्ट होने पर स्वीकृत करें और merge करें
-
एक मौजूदा MR में, एक comment जोड़ें:
@copilot-agent add error handling to the login function -
समर्थित निर्देश
- सुविधाएँ जोड़ें:
@copilot-agent add unit tests for authentication - बग्स ठीक करें:
@copilot-agent fix the null pointer exception in line 45 - रिफैक्टर करें:
@copilot-agent refactor the user service to use dependency injection - अपडेट करें:
@copilot-agent update dependencies to latest versions
- सुविधाएँ जोड़ें:
-
Copilot निम्नलिखित करेगा:
- आपके अनुरोध को स्वीकार करें
- परिवर्तनों को लागू करें
- MR ब्रांच में commit और push करें
- परिवर्तनों का सारांश पोस्ट करें
-
MR पेज पर, Copilot उपयोगकर्ता को Reviewer के रूप में असाइन करें
- MR पेज के दाईं ओर "Reviewers" विकल्प खोजें
- Copilot उपयोगकर्ता चुनें (उदाहरण के लिए, copilot-agent)
-
Copilot निम्नलिखित करेगा:
- स्वचालित रूप से कोड समीक्षा वर्कफ़्लो ट्रिगर करें
- source और target branches के बीच सभी कोड परिवर्तनों का विश्लेषण करें
- व्यापक कोड समीक्षा करें जिसमें शामिल है:
- कोड गुणवत्ता और रखरखाव
- सर्वोत्तम प्रथाएं और डिज़ाइन पैटर्न
- सुरक्षा भेद्यता जाँच
- प्रदर्शन विश्लेषण
- परीक्षण कवरेज मूल्यांकन
- दस्तावेज़ीकरण पूर्णता
- MR में विस्तृत समीक्षा रिपोर्ट पोस्ट करें, गंभीरता द्वारा वर्गीकृत
- विशिष्ट सुधार सुझाव और अनुशंसित फिक्स प्रदान करें
-
समीक्षा रिपोर्ट की सामग्री:
- समग्र मूल्यांकन सारांश
- गंभीरता द्वारा वर्गीकृत समस्याएं (Critical, Major, Minor, Suggestions)
- प्रत्येक समस्या में फ़ाइल स्थान, विस्तृत विवरण, और फिक्स सिफारिशें शामिल हैं
- अंतिम समीक्षा सिफारिश: APPROVE, REQUEST_CHANGES, या NEEDS_DISCUSSION
प्रभावी Issue विवरण लिखना:
- आवश्यकताओं के बारे में विशिष्ट रहें
- स्वीकृति मानदंड शामिल करें
- संदर्भ और उदाहरण प्रदान करें
- कई कार्यों के लिए चेकलिस्ट का उपयोग करें
MR Note कमांड का उपयोग:
- प्रति comment एक स्पष्ट निर्देश
- जब भी संभव हो विशिष्ट फ़ाइलों/functions का संदर्भ दें
- संक्षिप्त लेकिन वर्णनात्मक रहें
- अगले निर्देश से पहले पूर्णता की प्रतीक्षा करें
कोड समीक्षा:
- हमेशा उत्पन्न कोड की समीक्षा करें
- कार्यान्वयन का परीक्षण करें
- सुरक्षा समस्याओं की जाँच करें
- कोडिंग मानक अनुपालन सत्यापित करें
निम्नलिखित फ़ाइलें निष्पादन के दौरान उत्पन्न होती हैं लेकिन commits से बाहर रखी जाती हैं:
patch_raw.txt- कच्चा Copilot आउटपुटtodo.md/todo_completed.md- कार्य चेकलिस्टplan.json- निष्पादन योजनाcommit_msg.txt- उत्पन्न commit संदेशmr_summary.txt- परिवर्तन सारांश
-
webhook डिलीवरी की जाँच करें
- एप्लिकेशन रिपॉ → Settings → Webhooks → View Recent Deliveries
- 2xx status codes देखें
-
webhook सेवा सत्यापित करें
curl -X POST https://webhook.yourdomain.com/webhook \ -H "Content-Type: application/json" \ -d '{"test": true}'

















