1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHubのREADME.mdにQiitaで投稿した記事へのリンクを自動記述させてみた

1
Last updated at Posted at 2026-08-13

この記事では

Qiita APIから取得した取得した自身の投稿を、タグ分けしてMarkdown形式のリンク集に書き出します。
GitHubのREADME.mdはそのものなので、Pythonを使って更新できます。

GitHub Actionsは定期実行ができるので、Qiitaへ自分が投稿した記事のポートフォリオをGitHub上に掲載するのはどうだろう?というチャレンジをしてみました。

image.png

経緯のようなもの

普段はPower Automateのクラウドフローを作ってはQiitaに投稿している私ですが、作ったフローを公開するのもよいなぁ、と思いついてGitHubにはるか昔に作っていたリポジトリをPublicにしました。

私の初コミットがこちらです。

今後も作ったものは、どこかで誰かが役立ててくれると嬉しいので、GitHubへ積極的に公開していこうと思います。

GitHub Actionsってなんだ?

GitHubの設定やら機能やらをいろいろと見て回っていると、GitHub Actionsというのを見つけました。

image.png

なんのことやらわかってなかったのですが、なるほどこういうのを使って CI/CD するのかしら?

ここに表示されている Simple workflow というのは、リポジトリにおいたPythonスクリプトを定期実行できるっぽい。ならば、README.mdファイルは単なるテキストファイルなので、自動更新できるんじゃない?

どうせだからQiita API使ってみる

前から気になっていたQiitaのAPIを使ってみることにしました。これまで書き溜めた自分の投稿のタイトルやURLは取得できるはずなので、Markdownのカタチに整形すれば良し。

Qiita APIのシークレットを取得する

設定>アプリケーション>個人用アクセストークン>新しいトークンを発行する
から簡単にトークン文字列を取得できました。

image.png

GitHubでシークレット管理は?

リポジトリ>Settings>Secrets and Variables>Actions から New repository secret をクリックして、QIITA_TOKENと名前をつけて保存しました。
image.png

ローカル用シークレット置き場とGit対策

作成するスクリプトをローカルで実行する場合にQiita APIのトークンが必要ですが、スクリプトは公開するので直書きするわけには行きません。

そこで、シークレットは .env ファイルに書いておいて、これを環境変数として参照させます。.envファイルやPython関連で増えたファイルは誤ってGitHubにPushされてしまわないように、.gitignoreファイルを作成して記述しておきます。

.env
QITA_TOKEN=hogehogehogehoge
.gitignore
# Secrets
.env

# Python Virtual Environment
.venv/

# Python
# Secrets
.env

# Python Virtual Environment
.venv/

# Python
__pycache__/
*.pyc__pycache__/
*.pyc

image.png

インストールしたのは python-dotenv です。

pip
pip install python-dotenv

Pythonコードで下記のように書くことで.env ファイル内の値で置換してくれます。下のようにしてtokenが表示されれば取得できていることがわかります。

test.py
from dotenv import load_dotenv
import os

load_dotenv()

token = os.getenv("QIITA_TOKEN")
print(token)

README.mdの準備

もともと書いていた簡単な紹介のあとに、プレイスホルダーを仕込んでいます。リポジトリ直下のほうです。

README.md
<!-- QIITA_START -->
<!-- QIITA_END -->

image.png

更新用スクリプト

こちらがREADME.md更新用のスクリプトになります。トークンを使ってQiitaのAPIエンドポイント /items を叩くことでjsonとして情報をとってきます。リファレンスはこちらです。

tags,title,urlなどの情報があるのことがわかります。
image.png

これを分類して、README.mdのプレイスホルダーを書き換えるように仕込んだのがこちらです。
https://github.com/daddydaddy/powerplatform/blob/main/scripts/update_readme.py

ローカルで実行してみると、README.md が書き換えられたことがわかります。
image.png

とりあえずGitHubへプッシュ

ここまでできたらGitHubへPushすると、Web上でQiita投稿のポートフォリオとして表示されるようになりました。

image.png

まとめ

  • GitHub ActionsはPythonスクリプトを自動実行できる(っぽい)
  • README.mdはテキストなのでPythonでの加工が容易
  • APIのシークレットはローカルでは.envに。GitHubではシークレット管理専用の機能をつかう
  • ローカル更新&Pushでとりあえずやりたいことできた
  • あとはActionsでの自動実行を追加するべし

です。

GitHub Actionsでの自動更新については、次の記事でやってみます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?