刷GitHub绿墙的骚操作:用GitHub Actions自动刷提交
很多公司在考核研发的时候,居然还会看GitHub的贡献图(绿墙),虽然这事儿挺扯的,但为了在简历或内部评审时显得“勤奋”,手动刷提交实在太累。我试了个方案,直接用GitHub Actions写个机器人,每天定时给自己提交几次代码,完全不用管。
下一篇
我的AI文档助手实战:解决代码沙箱执行 →
这套逻辑的核心是模拟真实的人类行为:工作日多提交几次(2-7次),周末少提交(1-2次),而且提交时间随机分布在上午9点到下午6点之间,看起来像是在努力加班。
具体部署步骤如下:
一、创建专用仓库
先建一个空仓库,比如叫 daily-activity。建议设为 Private,不然满屏的 chore: daily update 显得太假。记得在个人 profile 设置里勾选 “Include private contributions”,这样私有库的提交才会显示在绿墙上。
二、配置自动化工作流
在仓库里新建文件 .github/workflows/main.yml,把下面的代码贴进去。注意把 [email protected] 改成你自己的 GitHub 邮箱,否则提交不计入贡献。
name: Forward Daily Contributions
on:
schedule:
- cron: '0 0 * * *' # 每天UTC 0点运行
workflow_dispatch: # 支持手动触发
jobs:
forward-commit:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Generate today's commits
run: |
git config user.name "github-actions[bot]"
git config user.email "[email protected]"
DOW=$(date +%u)
if [ $DOW -ge 6 ]; then
COMMITS=$((RANDOM % 2 + 1))
else
COMMITS=$((RANDOM % 6 + 2))
fi
for i in $(seq 1 $COMMITS); do
echo "$(date -u) - Commit #$i" >> log.txt
git add log.txt
HOUR=$((RANDOM % 9 + 9))
MINUTE=$((RANDOM % 60))
COMMIT_TIME="$(date +'%Y-%m-%dT')$(printf "%02d:%02d:00" $HOUR $MINUTE)"
git commit -m "chore: daily update #$i" --date="$COMMIT_TIME"
done
- name: Push changes
run: git push这种方式最方便的地方在于 100% 云端运行,不用在本地开机。对于需要快速填充活跃度的打工人来说,这个实操方案比手动写脚本要稳得多。
