---
title: GitHub रिलीज़
description: >-
  githubReleases() स्रोत के साथ किसी रिपॉज़िटरी की GitHub रिलीज़ को चेंजलॉग प्रविष्टियों में बदलें, ताकि आपके रिलीज़ नोट्स ही आपका चेंजलॉग बन जाएँ।
---

बिल्ट-इन `githubReleases()` एडैप्टर किसी रिपॉज़िटरी की रिलीज़ को चेंजलॉग में बदल देता है। प्रत्येक रिलीज़ एक `type: changelog` प्रविष्टि बन जाती है, इसलिए आपके रिलीज़ नोट्स _ही_ आपका चेंजलॉग हैं — आपको कुछ भी दो बार लिखने की आवश्यकता नहीं है। जनरेट की गई [चेंजलॉग टाइमलाइन](/hi/docs/advanced/changelog) के साथ इसका उपयोग करने पर, GitHub रिलीज़ प्रकाशित करते ही एक चेंजलॉग प्रविष्टि भी प्रकाशित हो जाती है।

```ts blume.config.ts
import { defineConfig } from "blume";
import { filesystem, githubReleases } from "blume/sources";

export default defineConfig({
  content: {
    sources: [
      filesystem({ root: "content" }),
      githubReleases({
        prefix: "changelog",
        owner: "acme",
        repo: "sdk",
        // prereleases: false,  // include prereleases (default off)
        // drafts: false,       // include drafts (needs a write token)
        // limit: 100,          // cap releases, newest-first
      }),
    ],
  },
});
```

प्रत्येक रिलीज़ अपने-आप चेंजलॉग फ़ील्ड्स से मैप हो जाती है। उसका नाम (या टैग) शीर्षक बनता है और उसकी प्रकाशन तिथि से टाइमलाइन का क्रम तय होता है। टैग `changelog.version` बनता है और प्रीरिलीज़ को `Prerelease` टैग दिया जाता है (बाकी रिलीज़ को `Release`)। नोट्स प्रविष्टि के मुख्य भाग के रूप में रेंडर होते हैं और उनके लिंक्स में दो बदलाव किए जाते हैं। पहला, जो लिंक वेब, मेल, फ़ोन या सापेक्ष पता नहीं है (जैसे कोई `javascript:` URL), उसका केवल लेबल रखा जाता है। दूसरा, आपकी अपनी [`deployment.site`](/hi/docs/deployment) पर जाने वाले लिंक को उसके रूट-सापेक्ष पथ में बदल दिया जाता है। इससे वह लिंक प्रीव्यू डिप्लॉय और आपके डिप्लॉयमेंट बेस के साथ सही ढंग से काम करता है। स्रोत को एक `prefix` दें, ताकि उसके रिलीज़ पेज `/changelog/v1-2-0` जैसे रूट के अंतर्गत नेस्ट हों।

निजी रिपॉज़िटरी `GITHUB_TOKEN` एनवायरनमेंट वेरिएबल के माध्यम से प्रमाणीकृत होती है। यह वही टोकन है जिसका उपयोग अन्य GitHub सुविधाएँ करती हैं, और इसे कभी भी आपके कॉन्फ़िग में सीधे नहीं लिखा जाता। एडैप्टर इस वेरिएबल को घोषित करता है, इसलिए इसके बिना बिल्ड करने पर चेतावनी दिखाई जाती है। [हर रिमोट स्रोत](/hi/docs/content/sources#caching-and-offline-builds) की तरह, इसे भी `.blume/cache/<source>/` के अंतर्गत कैश किया जाता है। API उपलब्ध न होने पर इसे ऑफ़लाइन कैश से परोसा जाता है। चेंजलॉग एक पूरक सामग्री है, इसलिए फ़ेच विफल होने पर बिल्ड विफल नहीं होता, भले ही कोई कैश मौजूद न हो (जैसे बिना टोकन वाला CI बिल्ड)। ऐसे में चेतावनी के साथ एक खाली चेंजलॉग बनता है। चेंजलॉग में सामग्री लाने के लिए अपने CI और डिप्लॉय एनवायरनमेंट में `GITHUB_TOKEN` सेट करें।
