GitHub repositories can have wikis, which may or may not contain content.
There’s no way to tell in the API as the has_wiki
field is true
by default. It turns out this requires a little bit of fudge to find out.
As luck would have it, GitHub wikis are git repositories themselves.
A repository at github.com/someuser/my-cool-project
has a wiki git repo at github.com/someuser/my-cool-project.wiki.git
, and with a bit of scripting we can tell whether it’s safe to remove the wiki with a tool like Terraform.
USER=someuser
REPO=my-cool-project
git ls-remote git@github.com:${USER}/${REPO}.wiki.git 2&>1 > /dev/null;
if [[ $? -eq 0 ]]; then
echo "${REPO} has a wiki";
else
echo "${REPO} has no wiki";
fi;
It uses a feature of git called ls-remote
which among other things grabs information about a repository without needing to cloning it.
I used this today to inspect a fleet of repositories to lean which ones had non-empty wikis. Doing this manually would have been a tedious and morale-sapping task.
I’ll count this as a win!
November is National Blog Posting Month, or NaBloPoMo. I’ll be endeavouring to write one blog post per day in the month of November 2019 - some short and sweet, others long and boring.