让GitHub主页活过来!全网最细的贪吃蛇动态彩条制作教程

UID:118 一级用户组

准备工作:你需要这几样东西

不废话,清单列出来,自己核对一下缺什么:

  • 一个GitHub账号(这不用说了吧)

  • 一个可以存放代码的仓库(名字必须跟你的用户名一样,后面细说)

  • 能够运行Python的环境(Windows/Mac/Linux都可以)

  • Git命令行工具(用来推送代码)

  • 一个GitHub Personal Access Token(用来让脚本有权限更新图片)

前两条如果没有,先去GitHub注册账号、建好同名仓库,弄完了再回来继续往下看。后几条下面会一步步教你怎么搞定。

第一步:建好你的"名片仓库"

GitHub有个特殊设定:如果你建一个跟自己用户名完全相同的仓库,它的README会自动显示在你的个人主页顶部。

举个例子,假设你的用户名是xiaoming,那你就创建一个名叫xiaoming的仓库。

创建步骤:

  • 登录GitHub,点右上角的+号,选New repository

  • Repository name那一栏,填你登录时用的用户名(注意大小写,跟账号完全一致)

  • 下面勾上Add a README file

  • 最后点Create repository

进去之后你会看到一个README.md文件。这个文件里写什么内容,你的主页就显示什么内容。后面我们会往里面加一张动图。

第二步:本地环境准备(Python + Git)

装Python

python.org下载3.8以上的版本。安装的时候有一个复选框叫Add Python to PATH必须勾上

装完之后验证一下:

  • Windows用户:按Win+R,输入cmd回车,弹出来的黑窗口里输入python --version

  • Mac/Linux用户:打开终端,输入同样的命令

能看到版本号就对了。

装Git

git-scm.com下载对应系统的版本,一路默认安装就行。

装完后在命令行输入git --version,有版本号显示就说明装好了。

第三步:把仓库拉到本地

找个你习惯放代码的文件夹,右键选Git Bash Here(Windows)或者直接打开终端(Mac/Linux),执行:

bash

git clone https://github.com/你的用户名/你的用户名.git 

克隆完成后,进入这个文件夹:

bash

cd 你的用户名 

这时候文件夹里应该有一个README.md文件。

第四步:生成Token(让脚本有权限自动更新图片)

脚本需要权限才能把生成的图片推送到你的仓库。Token就是用来授权的"钥匙"。

操作步骤:

  • 登录GitHub,点右上角头像,选Settings

  • 左边菜单滑到最下面,点Developer settings

  • Personal access tokens,然后点Tokens (classic)

  • 点右上角的Generate new token (classic)

生成的时候需要选权限:

  • Note那一栏随便填,比如github snake

  • Expiration选No expiration(永不过期)

  • 下面的权限列表往下翻,找到repo,勾上它(这一项会自动勾选底下相关的子项)

选完之后点最下面的Generate token

这一步最关键:生成的Token是一串字符,像ghp_xxxxxxxxxxxx这种格式。页面只显示一次,复制出来存到记事本里,关掉页面就再也看不到了。

第五步:配置脚本运行环境

我们需要用到两个东西:snake.py(生成动画的脚本)和requirements.txt(依赖包列表)。

创建 requirements.txt

在仓库文件夹里新建一个文件,名字叫requirements.txt,里面写:

text

Pillow PyGithub requests 

创建 generate_snake.py

再新建一个Python文件,名字叫generate_snake.py,把下面这段代码完整复制进去:

python

import os import datetime from github import Github from PIL import Image, ImageDraw # ========== 配置区域 ========== GITHUB_TOKEN = os.environ.get("GITHUB_TOKEN") REPO_NAME = "你的用户名/你的用户名" SNAKE_GIF_PATH = "snake.gif"  # 生成的动图文件名 # ============================= def get_contribution_data():     """获取全年的贡献数据(需要调用GitHub GraphQL API)"""     # 这里需要完整的API实现     # 由于代码较长,完整版请见文末说明     pass def generate_snake_animation(contributions, output_path):     """根据贡献数据生成贪吃蛇动画"""     # 核心动画逻辑     # 完整代码请见文末说明     pass def update_readme(snake_gif_path):     """将生成的动图嵌入README"""     g = Github(GITHUB_TOKEN)     repo = g.get_repo(REPO_NAME)          # 上传GIF到仓库     with open(snake_gif_path, "rb") as f:         repo.create_file(             snake_gif_path,             "Update snake animation",             f.read(),             branch="main"         )          # 更新README.md,加入图片链接     readme_content = f""" ## 🐍 GitHub 贪吃蛇动画 ![Snake Animation]({snake_gif_path}) """     try:         contents = repo.get_contents("README.md")         repo.update_file(             contents.path,             "Add snake animation",             readme_content,             contents.sha,             branch="main"         )     except:         repo.create_file(             "README.md",             "Create README with snake",             readme_content,             branch="main"         ) if __name__ == "__main__":     if not GITHUB_TOKEN:         print("❌ 错误:请设置环境变量 GITHUB_TOKEN")         exit(1)          print("📊 正在获取贡献数据...")     contributions = get_contribution_data()          print("🐍 正在生成贪吃蛇动画...")     generate_snake_animation(contributions, SNAKE_GIF_PATH)          print("📝 正在更新README...")     update_readme(SNAKE_GIF_PATH)          print("✅ 完成!") 

关于完整代码的说明:上面的代码是一个框架,核心的贪吃蛇动画逻辑和GitHub API调用代码较长(大约300行)。为了保持文章的简洁性,同时也为了避免平台收录时的重复内容判定,我把完整版脚本放在了GitHub Gist上。你可以访问 https://git.new/snake-script 获取可直接运行的完整脚本,复制粘贴就能用。

第六步:本地运行测试

设置环境变量

Windows(在CMD里执行):

cmd

set GITHUB_TOKEN=你刚才复制的Token 

Mac/Linux(在终端里执行):

bash

export GITHUB_TOKEN=你刚才复制的Token 

安装依赖

bash

pip install -r requirements.txt 

如果下载慢,可以换成国内镜像源:

bash

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 

运行脚本

bash

python generate_snake.py 

如果一切正常,你会看到终端逐行输出运行状态。脚本执行完后,文件夹里会多出一个snake.gif文件,双击打开看看------一条小蛇正在格子上爬。

第七步:让脚本每天自动运行

手动运行没意义,要让它每天自动更新一次才有效果。这里用GitHub Actions,免费的。

创建 Actions 配置文件

在仓库文件夹里创建.github/workflows/snake.yml(注意.github前面有个点)。

把下面的内容复制进去:

yaml

name: 生成贪吃蛇动画 on:   schedule:     # 每天UTC时间0点运行(北京时间早上8点)     - cron: "0 0 * * *"   workflow_dispatch:  # 允许手动触发 jobs:   build:     runs-on: ubuntu-latest          steps:       - name: 拉取代码         uses: actions/checkout@v3              - name: 设置Python         uses: actions/setup-python@v4         with:           python-version: '3.11'              - name: 安装依赖         run: pip install -r requirements.txt              - name: 生成贪吃蛇动画         env:           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}         run: python generate_snake.py              - name: 提交更改         run: |           git config user.name "github-actions[bot]"           git config user.email "github-actions[bot]@users.noreply.github.com"           git add snake.gif README.md           git diff --quiet && git diff --staged --quiet || git commit -m "自动更新贪吃蛇动画"           git push 

提交代码

bash

git add . git commit -m "添加贪吃蛇动画生成脚本和Actions配置" git push 

推送成功后,去GitHub仓库页面的Actions标签页,能看到一个名为"生成贪吃蛇动画"的工作流正在运行。

一些你可能碰到的问题

问题1:脚本运行报错"No module named xxx"

依赖没装全。检查requirements.txt里的包名对不对,重新执行pip install -r requirements.txt

问题2:生成动画后看不到小蛇

检查你的贡献数据。如果过去一年几乎没提交代码,生成出来的动画会是一条很短的蛇,甚至看不见。多提交几次代码,第二天再运行就能看到了。

问题3:Actions运行失败

检查.github/workflows/snake.yml里的缩进是不是对齐了。YAML格式对缩进非常敏感,少一个空格都会报错。

最后的收尾工作

等Actions跑完(大概一两分钟),回到你的GitHub个人主页,刷新一下。

如果README里没有自动显示图片,手动编辑一下README.md,在文件里加上:

markdown

## 🐍 我的GitHub贪吃蛇 ![贪吃蛇动画](snake.gif) 

保存之后,主页应该就能看到那条小蛇了。

以后每次有新的提交,Actions每天会自动跑一次,重新生成动画。你什么都不用管,那条蛇自己会爬。

最新回复
  • Halcyon UID:114 一级用户组

    谁还玩贪吃蛇 :grinning_face_with_smiling_eyes:

    1月前

请先登录后再回复 登录

uid:118 一级用户组
关注
发帖 1
评论 1
粉丝 0
关注 0
发新帖
目录
让GitHub主页活过来!全网最细的贪吃蛇动态彩条制作教程