Allen's blog Allen's blog
首页
面经
算法 (opens new window)
分类

Allen

前端CV工程师
首页
面经
算法 (opens new window)
分类
  • shadowsocks代理架构

  • 博客搭建

    • 使用vuepress搭建静态博客并免费部署到Github
    • vdoing主题源码阅读
    • github actions自动化部署
    • 自定义github pages域名
  • 数据结构与算法

  • Git

  • 其他技术
  • 博客搭建
Allen
2023-08-29

自定义github pages域名

以下是使用 Node.js 和 octokit/rest.js 库来自动化 GitHub Pages 自定义域名的示例代码:

const { Octokit } = require('@octokit/rest')

// 创建一个新的 Octokit 实例并设置访问令牌
const octokit = new Octokit({
    auth: 'YOUR_GITHUB_ACCESS_TOKEN' // 替换为你的 GitHub 访问令牌
})

// 自定义域名
const customDomain = 'www.example.com' // 替换为你的自定义域名

// 获取仓库的相关信息
const owner = 'your-username' // 替换为你的 GitHub 用户名
const repo = 'your-repo' // 替换为你的仓库名称

async function customizeGitHubPagesDomain() {
    try {
        // 创建或更新 `CNAME` 文件
        await octokit.repos.createOrUpdateFileContents({
            owner,
            repo,
            path: 'CNAME',
            message: 'Add custom domain',
            content: Buffer.from(customDomain).toString('base64')
        })

        // 配置自定义域名
        await octokit.request('PATCH /repos/{owner}/{repo}', {
            owner,
            repo,
            homepage: `https://${customDomain}`,
            allow_merge_commit: false,
            allow_squash_merge: false,
            allow_rebase_merge: true
        })

        console.log(
            `Custom domain '${customDomain}' has been set for GitHub Pages`
        )
    } catch (error) {
        console.error(
            'An error occurred while customizing GitHub Pages domain:',
            error.message
        )
    }
}

customizeGitHubPagesDomain()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

上述代码中,你需要替换以下变量:

  • YOUR_GITHUB_ACCESS_TOKEN: GitHub 的访问令牌(需要有相关权限)。请登录到 GitHub,在设置页面生成访问令牌,并将其替换为有效的访问令牌。
  • your-username: 你的 GitHub 用户名。
  • your-repo: 你的仓库名称。
  • www.example.com: 你想要设置的自定义域名。

请注意,在运行上述代码之前,确保已经在项目目录中安装了 @octokit/rest 包:

npm install @octokit/rest
1

运行上述代码后,它将使用提供的访问令牌自动在你的仓库中创建或更新 CNAME 文件,并在设置页面中配置自定义域名。你可以根据自己的需求进行修改和扩展。

上次更新: 2023/12/16, 09:22:46
github actions自动化部署
前言

← github actions自动化部署 前言→

最近更新
01
rollup使用配置文件rollup.config.ts打包
12-08
02
package.json导出类型
12-08
03
关键问题方案
11-17
更多文章>
Theme by Vdoing | Copyright © 2023-2023 Allen | Github
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式