liyupi/mianshiya-public

是否可以将项目托管到 Github 上并实现其功能

CN-traveler opened this issue · 0 comments

了解到面试吖网站关停的有关消息,在此提出一种构想用以解决高昂的服务维护费用。具体构想如下:

Github 提供 API 允许通过使用 token 在仓库里发表 issue 或 PR 。我们可以将 issue 或 PR 理解为一个帖子,在此项目里,可以理解为一道题目,一篇文章等。将发表 issue 和 PR 包装成为发表题目,发表文章等功能。issue 和 PR 也拥有一些自带的属性,包括不限制于label、状态。对于PR来说,可以将状态包装为审核状态。将 PR 的某种状态与审核通过和不通过绑定来实现管理员对发布内容的审核。PR 和 issue 本身也提供评论功能,这些也是可以通过 token 实现的。

结合 Github 第三方应用授权登录后获取用户 token,就可以实现内容的发表。由于代码是开源的,所以不必担心网站会用 token 做一些越权的行为。同时在新建第三方应用时应严格限制应用索取的权限,做到非必要不索取。

最后通过使用 Github page,将前端代码部署到仓库里,通过编写 js 代码实现对 Github api 的请求。

如果可以配合 Github action 服务使用,我相信会对该套流程有更多的帮助。

这一整套流程基于 Github 的免费服务,几乎零成本,同时也不必担心 Ddos 等攻击行为。理论上该套流程有实现的可能。

该套流程也可以实现在 Gitee 上,细微处的功能实现上会有不同。