前言
主要通过调用GitHub
官方提供的API来实现,因为我们主要是为了获取某一仓库下的最新版本,所以主要的操作接口又都在存储库下,直接到存储库下找对应的接口即可;
REST API
: https://docs.github.com/cn/rest
repos
: https://docs.github.com/cn/rest/repos/repos
内容
# 接口 https://api.github.com/repos/<user-name>/<repos-name>/releases/latest # 示例 https://api.github.com/repos/wangyang0210/cnblogs-theme/releases/latest
内容
async function request(url = '', method = 'GET', data = {}) { let options = { method: method, mode: 'cors', redirect: 'follow', referrerPolicy: 'no-referrer', } if(Object.keys(data).length) { options.body=JSON.stringify(data) } const response = await fetch(url, options) return response.json() } request('https://api.github.com/repos/wangyang0210/cnblogs-theme/releases/latest').then(r => console.log(r))
{ "url": "https://api.github.com/repos/wangyang0210/cnblogs-theme/releases/83672101", "assets_url": "https://api.github.com/repos/wangyang0210/cnblogs-theme/releases/83672101/assets", "upload_url": "https://uploads.github.com/repos/wangyang0210/cnblogs-theme/releases/83672101/assets{?name,label}", "html_url": "https://github.com/wangyang0210/cnblogs-theme/releases/tag/v2.2.4", "id": 83672101, "author": { "login": "wangyang0210", "id": 36377605, "node_id": "MDQ6VXNlcjM2Mzc3NjA1", "avatar_url": "https://avatars.githubusercontent.com/u/36377605?v=4", "gravatar_id": "", "url": "https://api.github.com/users/wangyang0210", "html_url": "https://github.com/wangyang0210", "followers_url": "https://api.github.com/users/wangyang0210/followers", "following_url": "https://api.github.com/users/wangyang0210/following{/other_user}", "gists_url": "https://api.github.com/users/wangyang0210/gists{/gist_id}", "starred_url": "https://api.github.com/users/wangyang0210/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/wangyang0210/subscriptions", "organizations_url": "https://api.github.com/users/wangyang0210/orgs", "repos_url": "https://api.github.com/users/wangyang0210/repos", "events_url": "https://api.github.com/users/wangyang0210/events{/privacy}", "received_events_url": "https://api.github.com/users/wangyang0210/received_events", "type": "User", "site_admin": false }, "node_id": "RE_kwDOCc6VqM4E_Lwl", "tag_name": "v2.2.4", "target_commitish": "v2", "name": "", "draft": false, "prerelease": false, "created_at": "2022-11-20T08:32:47Z", "published_at": "2022-11-20T08:36:10Z", "assets": [], "tarball_url": "https://api.github.com/repos/wangyang0210/cnblogs-theme/tarball/v2.2.4", "zipball_url": "https://api.github.com/repos/wangyang0210/cnblogs-theme/zipball/v2.2.4", "body": "# 升级部署\r\n\r\n本次升级只需要替换JS文件,如果从较老版本升级需替换JS和CSS文件;\r\n\r\n```\r\n<script src=\"https://cdn.jsdelivr.net/gh/wangyang0210/cnblogs-theme@v2.2.4/dist/simple-memory.js\" defer></script>\r\n<script src=\"https://unpkg.com/cnblogs-theme@2.2.4/dist/simple-memory.js\" defer></script>\r\n<script src=\"https://cdn.jsdelivr.net/npm/cnblogs-theme@2.2.4/dist/simple-memory.js\" defer></script>\r\n```\r\n\r\n# 更新日志\r\n```\r\n- 优化博客状态栏显示\r\n- 只保留v2版本文档\r\n- iconfont使用CDN资源\r\n- 更新文档备用地址\r\n- 谷歌字体适用CDN资源\r\n- 使用fetch代替request\r\n- 编译统一使用webpack\r\n```" }
学无止境,谦卑而行.