GitHub OrganizationでPush出来なかったため、GitHub CLIを導入した

GitHub OrganizationでPush出来なかったため、GitHub CLIを導入した

導入理由

ある日、Organizationで作成したリポジトリに対してPushしようとしましたが、権限エラーが発生しました。

git push -u origin main
remote: Write access to repository not granted.
fatal: unable to access 'https://github.com/<Organization>/<Repository>.git/': The requested URL returned error: 403

あらゆる権限を調査したが問題無かった。同じ組織内のユーザーはリポジトリへのアクセスが出来ていたので、私が利用しているトークンに問題があるかと思い調査しました。 Organization内のリポジトリへの書き込み権限も備わっていました。

GitHubのコミュニティで確認

GitHub CommunityというOrganizationが存在しました。 そこで remote: Write access to repository not granted. #46398 というタイトルでディスカッションが存在したため確認しました。

https://github.com/orgs/community/discussions/46398#discussioncomment-4872798

GCMを利用した方法もあるみたいですが、以前か気になっていた GitHub CLI を導入してみました。

インストール

ドキュメントに沿って導入します。

https://github.com/cli/cli/blob/trunk/docs/install_linux.md

以下のコマンドですんなり導入出来ました。

(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \
	&& sudo mkdir -p -m 755 /etc/apt/keyrings \
	&& out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \
	&& cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
	&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
	&& sudo mkdir -p -m 755 /etc/apt/sources.list.d \
	&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
	&& sudo apt update \
	&& sudo apt install gh -y

今後のアップデート

これもドキュメントに記載があります。

sudo apt update
sudo apt install gh

認証

本題の認証を行います。

gh auth login

github.com で認証作業を進めます。

おわりに

git push -u origin main

GitHub CLIの導入により、プッシュ出来るようになりました。 同じような問題に困っている方の参考になれば幸いです。