GitHub पेज बनाने के लिए कैसे बाध्य करें?


109

हर GitHub रिपॉजिटरी में GitHub Pages वेबसाइट हो सकती है ( या हो सकती है ) , जिसे Jekyll के साथ बनाया जा सकता है। GitHub हर बार जब आप नई कमिट पुश करते हैं तो साइट का निर्माण करता है। क्या एक नई प्रतिबद्धता को आगे बढ़ाए बगैर जीथूब पेज की वेबसाइट को रीफ्रेश करने का एक तरीका है?


शायद यह उनकी कैश पॉलिसी के अनुरूप है? ( stackoverflow.com/a/13106972/6309 )
VonC

2
वास्तव में, आप पुष्टि के लिए GitHub समर्थन से संपर्क कर सकते हैं, और यहां एक उत्तर पोस्ट कर सकते हैं। जो दूसरों की मदद कर सके।
वॉन

1
प्रलेखन के अनुसार , जीथब पृष्ठों की प्रति घंटे 10 बिल्ड की सीमा है। मेरे अनुभव में, यदि आप एक सीमा पर जाते हैं तो एक नया निर्माण शुरू नहीं होता है, भले ही आप एक नई प्रतिबद्धता को आगे बढ़ाएं।
जकुब कुकुल

जवाबों:


151

गिटहब समर्थन से, 2014-06-07:

उपयुक्त शाखा को प्रतिबद्ध करने के बिना, मैन्युअल रूप से पुनर्निर्माण को ट्रिगर करना वर्तमान में संभव नहीं है।


संपादित करें:

जैसा कि एंडी ने टिप्पणियों में बताया, आप कमांड के साथ एक खाली प्रतिबद्धता को आगे बढ़ा सकते हैं:

git commit -m 'rebuild pages' --allow-empty
git push origin <branch-name>

2 संपादित करें:

GitHub क्रियाओं के लिए धन्यवाद, दैनिक प्रकाशन को ट्रिगर करना काफी आसान है: https://stackoverflow.com/a/61706020/4548500


3
यदि आप मेरी तरह भाग्यशाली हैं, तो गिथब स्टेटस भी देखें क्योंकि वे पृष्ठभूमि की नौकरियों / बिल्ड्स के साथ नीचे हो सकते हैं या समस्या हो सकती है।
f01

tl, drgit log
nilon

20

यदि आप एक त्वरित स्क्रिप्ट समाधान चाहते हैं, तो यह यहाँ है। बस निम्न कार्य केवल एक बार करें, और जब भी आप अपने GitHub पेज को फिर से बनाना चाहते हैं, स्क्रिप्ट चलाएं।

1. कमांड लाइन के लिए एक व्यक्तिगत एक्सेस टोकन बनाएं:

  • व्यक्तिगत एक्सेस टोकन बनाने के लिए यहां आधिकारिक सहायता का पालन ​​करें । मूल रूप से, आपको अपने GitHub खाते में लॉग इन करना होगा और इसके लिए जाना होगा Settings > Developer settings > Personal access tokens > Generate new token:।
  • टिक repoस्कोप।
  • टोकन कॉपी करें।

2. निम्नलिखित स्क्रिप्ट बनाएँ:

  • नामक एक फ़ाइल बनाएँ RebuildPage.shऔर लाइनें जोड़ें:

    #!/bin/bash
    curl -u yourname:yourtoken -X POST https://api.github.com/repos/yourname/yourrepo/pages/builds
    

    यहाँ,

    • yournameअपने GitHub उपयोगकर्ता नाम के साथ बदलें ।
    • yourtokenअपने कॉपी किए गए व्यक्तिगत एक्सेस टोकन के साथ बदलें ।
    • yourrepoअपने रिपॉजिटरी नाम के साथ बदलें ।

3. स्क्रिप्ट चलाएँ:

  • यदि आप विंडोज 10 का उपयोग करते हैं:

    • आपको लिनक्स के लिए विंडोज सबसिस्टम सेटअप करने की जरूरत है , अगर पहले से नहीं किया गया है। इसका पालन करेंऐसा करने के लिए ।
    • #!/bin/bashस्क्रिप्ट से पहली पंक्ति ( ) निकालें और स्क्रिप्ट को इस रूप में सहेजें RebuildPage.bat। (यानी, की जगह .shके साथ .batस्क्रिप्ट फ़ाइल नाम पर)
    • उपरोक्त बिंदु के लिए वैकल्पिक .sh: फ़ाइल चलाने के लिए डबल-क्लिक सुविधा पाने के लिए :

      • फ़ाइलों के bash.exeलिए डिफ़ॉल्ट प्रोग्राम के रूप में सेट करें .sh
      • खोलें regedit.exeऔर संपादित करें HKEY_CLASSES_ROOT\Applications\bash.exe\shell\open\command(Default)मान सेट करें :

        "C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\";"
        
    • अब स्क्रिप्ट को डबल क्लिक करें जब आप अपने GitHub पेज को फिर से बनाना चाहते हैं। किया हुआ!

  • यदि आप लिनक्स / मैक का उपयोग करते हैं, तो स्क्रिप्ट चलाना अन्य स्क्रिप्ट चलाने के समान है। किया हुआ!

समाधान के लिए अतिरिक्त नोट्स:

यह समाधान GitHub REST API v3 के एपीआई का उपयोग करता है। यहाँ एपीआई के लिए आधिकारिक प्रलेखन है।


7

मुझे यह समस्या कुछ समय के लिए थी, और मास्टर ब्रांच में जाने से myapp.github.ioदो कारणों से कुछ भी नहीं बदला :

1 - बनाएँ

कोई फर्क नहीं पड़ता कि मैंने कितने समय तक मास्टर पर अपना काम करने की कोशिश की, निर्माण शुरू नहीं होगा। मुझे गितुब ऑनलाइन संपादक में अपनी फ़ाइल को संशोधित करके एक वर्कअराउंड मिला (अपना index.html खोलें और इसे Github वेबसाइट पर संपादित करें, फिर)

2 - कैशिंग मुद्दों

एक सफल निर्माण के बाद भी, मैं अभी भी उसी पृष्ठ को देखूंगा myapp.github.io, और इसके साथ हार्ड रिलोड करने से Ctrl + Shift + Rहल नहीं होगा। इसके बजाय, यदि Chrome का उपयोग कर रहे हैं, तो अपने पृष्ठ का निरीक्षण करें, Applicationटैब में हेड करें, बाएं मेनू में "स्टोरेज साफ़ करें" चुनें, और मेनू के निचले भाग पर "क्लियर साइट डेटा" पर क्लिक करें।


6

अब GitHub एक्ट उपलब्ध हैं, यह करने के लिए तुच्छ है:

# File: .github/workflows/refresh.yml
name: Refresh

on:
  schedule:
    - cron:  '0 3 * * *' # Runs every day at 3am

jobs:
  refresh:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger GitHub pages rebuild
        run: |
          curl --fail --request POST \
            --url https://api.github.com/repos/${{ github.repository }}/pages/builds \
            --header "Authorization: Bearer $USER_TOKEN"
        env:
          # You must create a personal token with repo access as GitHub does
          # not yet support server-to-server page builds.
          USER_TOKEN: ${{ secrets.USER_TOKEN }}

नमूना रेपो जो ऐसा करता है: https://github.com/SUPERCILEX/personal-website/actions

पृष्ठ API: https://developer.github.com/v3/repos/pages/#request-a-page-build


5

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

यहां छवि विवरण दर्ज करें

आपको एक संदेश भी दिखाई दे सकता है "आपकी साइट के निर्माण में समस्या आ रही है: पेज बनाने में असमर्थ। कृपया बाद में पुनः प्रयास करें।"

तब मैं अपने हाल के कमिट्स की जांच कर रहा था और यह पता लगाने की कोशिश की कि इस मुद्दे का क्या कारण है। अंत में मैं इस मुद्दे को ठीक करने में सक्षम था।

यहां छवि विवरण दर्ज करें

टैग्स (,) में एक अतिरिक्त अल्पविराम था और यह इस समस्या का कारण बना

यहां छवि विवरण दर्ज करें

यदि आपकी .md फ़ाइल में कोई समस्या है, तो आपको प्रासंगिक त्रुटि संदेश नहीं मिलेगा। मैं आपको बिल्ड स्थिति की जांच करने और उन मुद्दों की तुलना करने की सलाह देता हूं, यदि आप एक ही मुद्दे का सामना कर रहे हैं।


4

खाली कमेटी ने मेरे लिए काम नहीं किया, लेकिन @benett उत्तर के आधार पर, इसने मेरे लिए काम किया:

पोस्टमैन खोलें, इस URL के साथ एक नया अनुरोध बनाएं: https://api.github.com/repos/ Isuser_nameiding/ Isrepo_nameaming/pages/builds (अपने नाम और रेपो के साथ बदलें), और POST विधि का चयन करें।

इसे चलाने से पहले, headersटैब पर जाएं और Acceptमूल्य के साथ एक नई कुंजी जोड़ेंapplication/vnd.github.mister-fantastic-preview+json

अब आप इसे चला सकते हैं और फिर से अपने पृष्ठों पर जा सकते हैं।


यह मेरे लिए काम नहीं करता है, मुझे मिलता है { "message": "Not Found", "documentation_url": "https://developer.github.com/v3/repos/pages/#request-a-page-build" }। शायद इसलिए कि मेरा रेपो निजी है?
कोबर्न


0

दूसरा तरीका

आपको GitHub की ओर से एक ईमेल मिला होगा जिसमें आपको बताया गया था कि Jekyll आपकी साइट बनाने में सफल नहीं हुआ जब आपने इसे अपने पास धकेल दिया gh-pages। यदि यह मामला है, तो आप किसी अन्य बिल्ड को ट्रिगर करने के लिए पुश करने के लिए बाध्य करने का प्रयास कर सकते हैं।

यदि आप अंतिम वेबसाइट के लिए एक समर्पित फ़ोल्डर का उपयोग करते हैं, तो हम कहते हैं कि एक publicफ़ोल्डर है, तो आप अपने फ़ोल्डर को फिर से बनाने और अपने सराहनीय परिवर्तनों में फ़ोल्डर को जोड़ने का प्रयास कर सकते हैं। उसके बाद, आपको उन फ़ाइल को अपनी gh-pagesशाखा में विभाजित करना होगा और उन्हें एक और बिल्ड को ट्रिगर करने के लिए मजबूर करना होगा, भले ही फाइलें बिल्कुल भी नहीं बदलती हों। कोड कोड के बाकी हिस्से के लिए कमिट्स को हटा देता हैpublic सुविधा के लिए फ़ोल्डर के लिए को हटा दिया जाता है और इसे स्थानीय फाइल सिस्टम से हटा दिया जाता है।

कोड

git add public
git commit -am ":bug: triggering another jekyll build"
git push origin $(git subtree split --prefix public master):gh-pages --force
git reset HEAD~1
rm -rf public

टिप्स

यदि अंतिम स्थान का एक हिस्सा नहीं हैं, तो आप उन्हें निम्न आदेशों के साथ मिटा सकते हैं।

git stash

फिर उपरोक्त कमांड को मैन्युअल रूप से Jekyll बिल्ड को मजबूर करने और उन्हें अनस्टैश करने के लिए करें।

git stash pop

संदर्भ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.