作成: 2021年03月30日
更新: 2021年03月30日
Githubのユーザーページで毎日変わるおみくじを作りました.
Githubではユーザーネームと同名のリポジトリのREADME.mdがユーザーページに表示されるようになっています.
プロフィールの README を管理する - GitHub Docs
これとGithub Actionsを利用して毎日結果の変わるおみくじを作りました.
README.mdは以下のようになっています.
README.md# Hello!
Welcome to my page!
- [My Works⭐](https://banatech.net)
- [My Blog✒](https://banatech.net/blog)
# Omikuji
Your fortune for today!
<!-- Omikuji Start -->
![omikuji](gif/anim1.gif)
<!-- Omikuji End -->
<!-- Omikuji Start -->
と<!-- Omikuji End -->
で囲まれた部分を以下のPythonスクリプトでランダムに書き換えています.
import pathlib, re, random
def update_readme(gif_name):
root = pathlib.Path(__file__).parent.resolve()
readme = root / "README.md"
with open(readme) as f:
old = f.read()
s1 = "<!-- Omikuji Start -->\n!\[omikuji\]\(gif/(.*)\)\n<!-- Omikuji End -->"
s2 = f"<!-- Omikuji Start -->\n![omikuji](gif/{gif_name})\n<!-- Omikuji End -->"
new = re.sub(s1, s2, old)
with open(readme,"w") as f:
f.write(new)
v = random.randint(1, 100)
if v <= 30:
update_readme("anim1.gif")
elif v > 30 and v <= 80:
update_readme("anim2.gif")
elif v >= 80 and v < 99:
update_readme("anim3.gif")
else:
update_readme("anim4.gif")
そしてこのPythonスクリプトを以下のGithub Actionsで1日1回動かし,README.mdの変更をcommit, pushしています.
name: Update Github README
on:
schedule:
- cron: '0 15 * * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Update README
run: |-
python omikuji.py
cat README.md
- name: Commit and push if changed
run: |-
git diff
git config --global user.name "Omikuji Bot"
git add -A
git commit -m "Update Omikuji" || exit 0
git push
abhisheknaiidu/awesome-github-profile-readme: 😎 A curated list of awesome Github Profile READMEs 📝にawesomeなREADMEがリストアップされているのでこれらも参考にしてもう少しおしゃれにしたい.