2013-06-25 4 views
8

गिटहब API किसी संगठन के members प्राप्त करने का एक तरीका प्रदान करता है। मैं अपने संगठन के लिए व्यवस्थापक/मालिक हूं और मैं सभी उपयोगकर्ताओं के ईमेल पते प्राप्त करना चाहता हूं। मैंने members एपीआई के साथ प्रयास किया लेकिन यह ईमेल पते वापस नहीं करता है।गिटहब एपीआई: संगठन के सभी सदस्यों के ईमेल पते प्राप्त करें

मेरी व्यवस्थापक auth-token साथ कर्ल का उपयोग करना:

GET /orgs/my-org/members 

मैं प्रतिक्रिया है कि

"login": "auny", 
    "id": some-number, 
    "avatar_url": "https://secure.gravatar.com/avatar/6579d09c459f1adad8a60463f47eadd3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", 
    "gravatar_id": "6579d09c459f1adad8a60463f47eadd3", 
    "url": "https://api.github.com/users/auny", 
    "html_url": "https://github.com/auny", 
    "followers_url": "https://api.github.com/users/auny/followers", 
    "following_url": "https://api.github.com/users/auny/following{/other_user}", 
    "gists_url": "https://api.github.com/users/auny/gists{/gist_id}", 
    "starred_url": "https://api.github.com/users/auny/starred{/owner} 
    {/repo}", 
    "subscriptions_url": "https://api.github.com/users/auny/subscriptions", 
    "organizations_url": "https://api.github.com/users/auny/orgs", 
    "repos_url": "https://api.github.com/users/auny/repos", 
    "events_url": "https://api.github.com/users/auny/events{/privacy}", 
    "received_events_url": 
    "https://api.github.com/users/auny/received_events", 
    "type": "User" 

अजीब पर्याप्त (उपयोगकर्ताओं में से एक के लिए) इस तरह दिखना मिलता है, इस बारे में जानकारी का खजाना होता है उपयोगकर्ता लेकिन महत्वपूर्ण लोगों में से एक नहीं, यानी उपयोगकर्ता का ईमेल पता। admin होने के नाते मुझे अपने सभी उपयोगकर्ताओं का ईमेल पता प्राप्त करने में सक्षम होना चाहिए।

अन्य user API केवल अपना खुद का ईमेल पता लौटाएं, यानी उस खाते का ईमेल पता जिसका auth-token अनुरोध में उपयोग किया जाता है। एपीआई उपयोग:

GET /user/emails 

यह कैसे प्राप्त किया जा सकता? क्या इसके आसपास कोई रास्ता है?

उत्तर

1

ऑर्ग सदस्यों की सूची लाने के बाद, this API endpoint का उपयोग कर प्रत्येक सदस्य के लिए जानकारी लाने:

/users/:user 

इस उपयोगकर्ता आप अपने अनुरोध URL में निर्दिष्ट किया है की ई-मेल एड्रेस वापस आ जाएगी।

+1

यह endpoint केवल कुछ उपयोगकर्ताओं के रिटर्न 'email' क्षेत्र और वह भी' null' पर सेट है । हालांकि अधिकांश उपयोगकर्ताओं के लिए, 'ईमेल' फ़ील्ड भी मौजूद नहीं है। क्या यह इस बात से संबंधित हो सकता है कि उपयोगकर्ताओं ने अपने खातों को कैसे कॉन्फ़िगर किया है? – auny

+0

हां, यह संभव है कि कुछ उपयोगकर्ताओं के पास https://github.com/settings/profile में परिभाषित एक ई-मेल पता न हो और जो एपीआई प्रतिक्रिया में ईमेल फ़ील्ड को रिक्त होने का कारण बनता है। आप इसके बारे में कुछ भी नहीं कर सकते हैं लेकिन अपने संगठन में उपयोगकर्ताओं को अपना ई-मेल सेट करने के लिए परेशान करें :)। –

+0

कम से कम एक 'ईमेल' पता होना चाहिए जिसके साथ उपयोगकर्ता github पर पंजीकृत है या github पर किसी संगठन के सदस्य हैं। मैं उस 'ईमेल' को वापस करने की उम्मीद कर रहा था। – auny

4

आप इसके बजाय गिट भंडार का उपयोग कर सकते हैं! अंदर बहुत सारी रोचक जानकारी है।

git shortlog -s -n -e 

आप ईमेल पते के साथ कमिटर की सूची देखेंगे:

चलाने की कोशिश करें।

1

GraphQL API v4 का उपयोग करके, आपको प्रति उपयोगकर्ता अनुरोध नहीं करना है। निम्नलिखित के साथ एक संगठन के सदस्यों मिल जाएगा उनके email (यदि सार्वजनिक प्रोफ़ाइल में प्रदान की):

{ 
    organization(login: "my-org") { 
    members(first: 100) { 
     totalCount 
     edges { 
     node { 
      login 
      name 
      email 
     } 
     } 
     pageInfo { 
     endCursor 
     hasNextPage 
     } 
    } 
    } 
} 

Try it in the explorer

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