github-stars-feed
v1.1.4
Published
Get the latest feed of GitHub Stars out there
Downloads
20
Maintainers
Readme
The GitHub Stars program thanks GitHub’s most influential developers and gives them a platform to showcase their work, reach more people, and shape the future of GitHub. Read my journey from a GitHub User to a GitHub Star.
Installation
npm i github-stars-feed
Usage
const githubStars = require('github-stars-feed');
Get filtered feed
var options = {
limit: 2,
sanitize: true,
username: 'vinitshahdeo'
};
githubStars.getFeed(options, (err, feed) => {
if (err) {
console.log('Something went wrong while fetching GitHub Stars Feed');
} else {
console.log(feed); // filtered feed
}
});
Sample Response
[
{
title: 'Meet Vinit Shahdeo, a resident of Jharkhand, has been recognized as a GitHub Star',
summary: 'My journey got featured by the News Khajana.',
link: 'https://thenewskhazana.com/story/meet-vinit-shahdeo-a-resident-of-jharkhand-has-been-recognized-as-a-github-star-22451/',
updated: 'Sunday, November 3rd 2019',
author: {
name: 'vinitshahdeo',
uri: 'https://stars.github.com/vinitshahdeo'
}
},
{
title: 'Mentor - Google Summer Of Code',
summary: 'Postman is one of the mentoring organization for GSoC. This year, Postman has AsyncAPI Initiative as part of their team.\n\nI will be mentoring an idea for AsyncAPI i.e. AsyncDiff. It\'s basically a library to compare two AsyncAPI documents and generate diff for the review process.',
link: 'https://community.postman.com/t/idea-9-asyncdiff-general-information/21694',
updated: 'Sunday, November 3rd 2019',
author: {
name: 'vinitshahdeo',
uri: 'https://stars.github.com/vinitshahdeo'
}
}
]
Get complete feed
githubStars.getFeed((err, feed) => {
if (err) {
console.log('Something went wrong while fetching GitHub Stars Feed');
} else {
console.log(feed); // complete feed
}
});
Sample Response
[
{
title: {
type: 'html',
value: 'Meet Vinit Shahdeo, a resident of Jharkhand, has been recognized as a GitHub Star'
},
id: 'cknat1te840382f1viftueegf',
link: {
href: 'https://thenewskhazana.com/story/meet-vinit-shahdeo-a-resident-of-jharkhand-has-been-recognized-as-a-github-star-22451/'
},
updated: '2021-04-02T00:00:00.000Z',
summary: {
type: 'html',
value: 'My journey got featured by the News Khajana.'
},
author: {
name: 'vinitshahdeo',
uri: 'https://stars.github.com/vinitshahdeo'
}
},
{
title: { type: 'html', value: 'Mentor - Google Summer Of Code' },
id: 'ckmm44oxu03192fxc94w0seir',
link: {
href: 'https://community.postman.com/t/idea-9-asyncdiff-general-information/21694'
},
updated: '2021-03-20T00:00:00.000Z',
summary: {
type: 'html',
value: 'Postman is one of the mentoring organization for GSoC. This year, Postman has AsyncAPI Initiative as part of their team.\n\nI will be mentoring an idea for AsyncAPI i.e. AsyncDiff. It\'s basically a library to compare two AsyncAPI documents and generate diff for the review process.'
},
author: {
name: 'vinitshahdeo',
uri: 'https://stars.github.com/vinitshahdeo'
}
}
];
Options
Additionally, limit
, sanitize
and username
can be passed to filter the feed entries.
| Options | Type | Description |
|:----------|:---------|:---------------------------------------------------------------------------|
| limit
| Number | max entries to be returned |
| sanitize
| Boolean | return sanitized feed (only title
, summary
, link
, updated
and author
) |
| username
| String | return entries of GitHub Star for given username
only |
Show first n
feed entries
githubStars.getFeed({ limit: 5 }, (err, feed) => {
if (err) {
console.log('Something went wrong while fetching GitHub Stars Feed');
} else {
console.log(feed); // first 5 feed entries
}
});
Get feed of any GitHub Star (by their GitHub username say vinitshahdeo
)
githubStars.getFeed({ username: 'vinitshahdeo' }, (err, feed) => {
if (err) {
console.log('Something went wrong while fetching GitHub Stars Feed');
} else {
console.log(feed); // feed of vinitshahdeo only
}
});
Get sanitized feed
githubStars.getFeed({ sanitize: true }, (err, feed) => {
if (err) {
console.log('Something went wrong while fetching GitHub Stars Feed');
} else {
console.log(feed); // sanitized feed
}
});
Blog
Do check out the article "How to get GitHub Stars Contributions" on Hashnode!
RSS Feed
This NPM module is basically taking the RSS feed for GitHub Stars contributions and converting it into a valid JSON object which can be further used to build Node.js
/ React
applications.
A sample entry from GitHub Stars Contributions feed looks like below:
<entry>
<title type="html"><![CDATA[ Meet Vinit Shahdeo, a resident of Jharkhand, has been recognized as a GitHub Star ]]></title>
<id>cknat1te840382f1viftueegf</id>
<link href="https://thenewskhazana.com/story/meet-vinit-shahdeo-a-resident-of-jharkhand-has-been-recognized-as-a-github-star-22451/"/>
<updated>2021-04-02T00:00:00.000Z</updated>
<summary type="html"><![CDATA[ My journey got featured by the News Khajana. ]]></summary>
<author>
<name>vinitshahdeo</name>
<uri>https://stars.github.com/vinitshahdeo</uri>
</author>
</entry>
Example
Please checkout examples/
directory to view example.
Refer the sample response here.
Acknowledgement
I'm happy to be a part of the GitHub Stars Hall of Fame. From a (green) dot to a star, here’s how my journey uncoiled - tiny.cc/GitHubStar. Check out my GitHub Star profile here. 🌟 Let me know what do you build consuming this API?
PS: Always grateful to GitHub! 🖤