2010-09-21 15 views
6

में धक्का दिया गया है कि मैं कैसे निर्धारित करूं कि किसने भंडार को धक्का दिया?गिट: पोस्ट-प्राप्त हुक

आईई। कोई git push origin master करता है और origin रेपो पर पोस्ट-प्राप्त हुक में मुझे किसी के नाम या ई-मेल का उपयोग करने की आवश्यकता होती है।

उत्तर

10

यदि आप सर्वर पर परिवर्तन को धक्का देने के लिए एसएसएच प्रोटोकॉल का उपयोग कर रहे हैं, प्रत्येक उपयोगकर्ता के पास सर्वर पर अपना खाता है, तो आपकी स्क्रिप्ट उस उपयोगकर्ता के रूप में चलनी चाहिए जो पुश कर रहा है। तो, पुश करने वाले व्यक्ति का उपयोगकर्ता नाम प्राप्त करने के लिए आपको whoami या id -un का उपयोग करने में सक्षम होना चाहिए।

यदि आप इस सेटअप का उपयोग नहीं कर रहे हैं, तो धक्का देने का ट्रैक रखने का सबसे अच्छा तरीका शायद Gitolite, एक शक्तिशाली गिट प्रमाणीकरण और प्रमाणीकरण प्रणाली का उपयोग कर रहा है। गिटोलाइट में, आप update.secondary and post-update.secondary hooks का उपयोग कर सकते हैं, जिसमें GL_USER पर्यावरण चर सेट वर्तमान गिटोलाइट उपयोगकर्ता के लिए होगा।

+0

धन्यवाद। मैं उन हुक के बारे में भूल गया। – takeshin

+0

हुक के लिंक अब टूटा हुआ है। –

+0

@AlexanderGladysh लिंक अब तय किया जाना चाहिए। –

0

मुझे यकीन नहीं है कि गिट उस तरह के अभिगम नियंत्रण को प्रबंधित करने के लिए है।

यही कारण है कि आपके पास gitosis या gitolite जैसे एसएसएच-आधारित रैपर हैं जो आपके बाद पर्याप्त प्रमाणीकरण स्तर प्रदान करेंगे।

+0

मैं पहले से ही एक्सेस नियंत्रण के लिए 'गीटोलाइट' का उपयोग कर रहा हूं। मुझे सिर्फ नोटिफ़ायर स्क्रिप्ट के लिए जानकारी चाहिए। – takeshin

+0

@takeshin ... अच्छा, अगर मुझे पता था, ब्रायन का जवाब देखें (+1);) – VonC

0

आप गिट का उपयोग करके यह नहीं बता सकते हैं। यदि आप धक्का देने के लिए एसएसएच का उपयोग करते हैं, तो आप उपयोगकर्ता नाम प्राप्त करने के लिए एसएसएच का उपयोग कर सकते हैं, यदि आप गिटोलाइट जैसे उपयोगकर्ता-प्रबंधन फ्रंटेंड का उपयोग करते हैं, तो आप उपयोगकर्ता नाम प्राप्त करने के लिए का उपयोग कर सकते हैं, यदि आप प्रमाणीकरण के साथ HTTP का उपयोग करते हैं, तो आप इसका उपयोग कर सकते हैं उपयोगकर्ता नाम प्राप्त करने के लिए आपका वेबसर्वर, लेकिन गिट नेटवर्किंग प्रोटोकॉल किसी भी उपयोगकर्ता नाम संचारित नहीं करते हैं।

संबंधित मुद्दे