2015-10-30 4 views
8

का उपयोग करके पुन: सक्षम करें मैंने अपना स्वयं का वेब सर्वर विकसित किया है जो मेरे एंड्रॉइड ऐप पर स्वचालन करता है। यदि स्वचालन चलने पर समस्याएं हैं, तो मैं एक curl REST कमांड का उपयोग कर एक github पुल अनुरोध पर "विलय" बटन प्रोग्रामेटिक रूप से अक्षम करना चाहता हूं। मुझे ऐसा करने का उचित तरीका नहीं मिल रहा है लेकिन ऐसा लगता है कि इस कार्यक्षमता से कई लोगों को फायदा होगा।पुल अनुरोध पर विलय बटन को अक्षम करने के लिए गिथब एपीआई का उपयोग करें और इसे REST

GitHub पुल अनुरोधों के लिए एपीआई यहां पाया जा सकता: https://developer.github.com/v3/pulls/

मुझे पता है कि यह संभव है, क्योंकि आप अपने शाखा पर इस विलय के विरोध किया है, बटन धूसर हो जाता है और आप क्लिक नहीं कर सकते/यह मर्ज करें। यह वह सटीक कार्यक्षमता है जिसे मैं ढूंढ रहा हूं। कोई भी सहायताकाफी प्रशंसनीय होगी।

उत्तर

5

यह संभव है। इस सुविधा को सक्षम करने के लिए आपको कुछ कदम उठाने चाहिए।

  1. Configure अपने शाखाओं में से कुछ (आमतौर पर यह master या/और develop है, अपने कार्यप्रवाह पर निर्भर करता है) as protected
  2. Statuses API का उपयोग करके आप Pending, Success, Error और Failure स्थिति भेज सकते हैं। Pending, Error और Failed स्थिति मर्ज बटन को अवरुद्ध कर देगा।

एक बार ऐसा करने के बाद आप अपने व्यावसायिक नियमों के आधार पर स्थिति पोस्ट कर सकते हैं।

POST /repos/:owner/:repo/statuses/:sha 

:sha नवीनतम के हैश इस तरह पुल अनुरोध

में प्रतिबद्ध पेलोड के साथ है:

{ 
    "state": "success", 
    "target_url": "https://link.to/some/repotring/page", 
    "description": "Automation tests passed!", 
    "context": "continuous-integration/automation-tests" 
} 

एक बात उल्लेख के लायक है। जब आपने कम से कम एक स्थिति पोस्ट की है, तो context दायर से मूल्य संरक्षित शाखा सेटिंग्स पृष्ठ पर दिखाया जाएगा। भूल मत इस स्थिति को चिह्नित करने के लिए के रूप में आवश्यक:

Require status checks to pass before merging

Protected branches and required status checks

0

शाखा की रक्षा और उसके बाद स्थिति जांचों में कामयाब नहीं किए हैं या समीक्षा काम करता है नहीं किया जाता विलय को अवरुद्ध। यह एक बहुत ही सरल समाधान है और यह पूरी तरह से काम करता है। लेकिन यदि आप अधिक उत्सुक हैं तो शाखा की सुरक्षा किए बिना इसे करने का प्रयास करें। मुझे ऐसा करने का कोई रास्ता नहीं मिला।

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