Nodejs MyGitStar 管理你的github star!
Nodejs MyGitStar 管理你的github star!
MyGitStar
Github用户们,还在为一大堆star杂乱无章、无从下手、无法无天而感到郁闷、难受、不开心吗,是时候用MyGitStar了。MyGitStar,管理你的github stars,无需注册,无需邀请、想用就用 http://mygitstar.herokuapp.com/
Nodejs MyGitStar 管理你的github star!
Github用户们,是否曾因为你的star列表变得杂乱无章而感到困扰?是不是经常想要找到某个特定的star项目却无从下手?是时候使用MyGitStar了!MyGitStar是一个轻量级的应用程序,旨在帮助你更好地管理和浏览你在GitHub上的star项目。
什么是MyGitStar?
MyGitStar 是一个基于Node.js的Web应用程序,它允许用户轻松地查看和管理他们的GitHub星标(stars)。无需注册或邀请,只需访问网页即可开始使用。
如何使用MyGitStar?
-
访问MyGitStar 访问 MyGitStar网站。
-
授权 首次使用时,需要授权MyGitStar访问你的GitHub账户。这一步通过OAuth实现,确保数据安全。
-
查看和管理你的star 登录后,你可以看到所有已star的项目,并可以对其进行分类、搜索或者删除。
示例代码
以下是一些关键代码片段,展示如何使用Node.js和GitHub API来构建MyGitStar的核心功能:
// 引入必要的模块
const express = require('express');
const session = require('express-session');
const passport = require('passport');
const GitHubStrategy = require('passport-github2').Strategy;
const axios = require('axios');
// 初始化Express应用
const app = express();
// 设置Session中间件
app.use(session({
secret: 'secret-key',
resave: false,
saveUninitialized: false
}));
// 使用Passport进行身份验证
passport.use(new GitHubStrategy({
clientID: 'YOUR_GITHUB_CLIENT_ID',
clientSecret: 'YOUR_GITHUB_CLIENT_SECRET',
callbackURL: "http://localhost:3000/auth/github/callback"
},
function(accessToken, refreshToken, profile, cb) {
return cb(null, profile);
}
));
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(obj, done) {
done(null, obj);
});
app.use(passport.initialize());
app.use(passport.session());
// 登录路由
app.get('/auth/github',
passport.authenticate('github'));
app.get('/auth/github/callback',
passport.authenticate('github', { failureRedirect: '/login' }),
function(req, res) {
// 成功登录后重定向到主页
res.redirect('/');
});
// 主页路由
app.get('/', function(req, res) {
if (req.isAuthenticated()) {
axios.get('https://api.github.com/user/starred', {
headers: {
Authorization: `Bearer ${req.user.accessToken}`
}
}).then(response => {
res.render('index', { stars: response.data });
}).catch(error => {
console.error(error);
res.status(500).send('Error fetching starred repositories');
});
} else {
res.send('Please login first');
}
});
// 启动服务器
app.listen(3000, () => {
console.log('MyGitStar is running on port 3000');
});
功能说明
- 登录:使用GitHub OAuth进行身份验证。
- 获取star列表:使用GitHub API获取用户的star项目列表。
- 显示star项目:将star项目列表渲染到前端页面。
总结
MyGitStar不仅是一个简单的工具,它还能让你更有效地管理和浏览你的GitHub star项目。如果你正在寻找一个简单且实用的方法来整理你的GitHub star,MyGitStar是一个不错的选择。
希望这些信息对你有帮助!如果有任何问题或需要进一步的帮助,请随时提问。
不错,有待继续完善,分类最好有列表选择,现在每个都输真心蛋疼,还有就是如果能有自动分类更好~
下个版本会实现快速分类,基于语言自动分类效果如何?列表选择也在TODO中,谢谢你的建议。
好东西, 强烈支持
用nodeJS搭建,欢迎star和folk,互相交流~
Thanks
好用啊,赞!
太棒了!
Nodejs MyGitStar 管理你的github star!
Github用户们,是否经常被杂乱无章的star弄得头大?是不是想更好地管理和筛选你的GitHub收藏呢?现在,你可以使用MyGitStar来管理你的GitHub星标仓库啦!无需注册,无需邀请,即开即用。
功能介绍
- 浏览和搜索:浏览你所有的starred仓库,并且可以按关键词进行搜索。
- 分类管理:将starred仓库进行分类管理,方便查找。
- 信息展示:显示仓库的详细信息,如作者、描述、语言等。
- 便捷操作:可以直接通过页面取消star或者打开仓库链接。
技术栈
- 前端:React.js, Bootstrap
- 后端:Node.js, Express.js
- 数据存储:Redis
- OAuth认证:GitHub OAuth
使用步骤
- 用户授权:首次使用时,需要通过GitHub的OAuth进行授权。
- 获取star列表:通过GitHub API获取用户的star列表。
- 显示star列表:将获取到的数据展示在前端页面上。
- 分类和搜索:根据需求对star列表进行分类和搜索。
示例代码
这里提供一个简单的示例代码片段,用于获取GitHub的star列表:
// server.js
const express = require('express');
const axios = require('axios');
const app = express();
const PORT = process.env.PORT || 3000;
app.get('/stars', async (req, res) => {
const { token } = req.query;
try {
const response = await axios.get('https://api.github.com/user/starred', {
headers: {
'Authorization': `token ${token}`
}
});
res.json(response.data);
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Failed to fetch starred repositories.' });
}
});
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
这段代码创建了一个简单的Express服务器,用于接收带有GitHub访问令牌的请求,并调用GitHub API获取用户的star列表。获取到的数据将以JSON格式返回给客户端。
访问地址
访问 http://mygitstar.herokuapp.com/ 即可开始使用MyGitStar!
希望这些信息能帮助你更好地管理你的GitHub star。享受编程的乐趣吧!