你有github contributions 强迫症吗?通过node.js 每天自带更新仓库代码,帮你每天自动点亮你的所有 contributions

本文介绍如何使用Node.js在Windows本地和服务器上创建自动化定时任务,定期更新GitHub仓库的package.json文件,以模拟连续的贡献行为,满足‘贡献强迫症’程序员的需求。

背景

 如果你是一位患有“contributions 强迫症”的程序员,当你每天点开github看到自己的contributions 是这样零零散散的样子,是否也会像我一样崩溃大哭!

 

虽然没法坚持每天都去更新自己的仓库,但依旧幻想着下面这幅场景!

卧槽,我的梦中情表!顿时舒服多了 

那就开始吧

第一步:创建一个github 仓库

(一) windows本地自动化定时任务

1. 在app.js 文件中写入以下代码

这段代码的主要目的就是 拉取最新main分支上的代码,然后更新package.json 文件的updateTime字段,然后push到远程仓库

const { execSync } = require("child_process");
const path = require("path");
const fs = require("fs");
// 设置你的仓库路径
const repoPath = "./";
const time = "2024 1/8 17.52";
// 更新仓库
const updateRepo = () => {
  try {
    // 进入仓库目录
    process.chdir(repoPath);
    // 执行git pull命令
    execSync("git pull origin main");
    console.log("代码拉取成功!");
    //更新package.json 中的updateTime 字段
    const packageJsonPath = path.resolve(__dirname, "./package.json");
    const packageJson = require(packageJsonPath);
    packageJson.updateTime = new Date().toLocaleString();
    // 写入package.json
    fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
    console.log("updateTime 更新成功!");
    // push 到远程仓库
    execSync("git add .");
    execSync('git commit -m "update"');
    execSync("git push origin main");
    console.log("远程仓库更新成功!");
  } catch (error) {
    console.error("仓库更新失败:", error.message);
  }
};

updateRepo();
2. 写好app.js 后将代码push到我们前面创建的远程仓库main分支中
3. 打开windows 定时任务程序

4. 创建任务
 
 5. 设置名称

 

6.  设置触发器

 

7. 设置操作
 8. 完成

然后保存就可以了,这样每天定时会执行我们设定好的node脚本(前提是电脑处于开机状态),帮我们更新仓库代码,坐等contributions更新。

(二)服务器自动化脚本

放在服务器上的好处就是即使你不打开电脑,它每天也会定时执行(推荐)

1. 新建一个定时服务time-server.js
2. 使用node-cron 开启定时服务
const cron = require("node-cron");

const { sendDataToEmail } = require("./action/send-data-to-email");

// 每天的 7 点执行定时任务
cron.schedule(
  "0 7 * * *",
  () => {
    require("./app.js"); //调用我们上面的app.js
  },
  {
    timezone: "Asia/Shanghai", // 设置时区为亚洲/上海
  }
);
// 每天的 12 点执行定时任务
cron.schedule(
  "00 12 * * *",
  () => {
    require("./app.js"); //调用我们上面的app.js
  },
  {
    timezone: "Asia/Shanghai", // 设置时区为亚洲/上海
  }
);
 3. 然后将time-server.js  放在服务器上执行,这样就大功告成了!

绿油油的大草原将属于每一个强迫症

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值