GitLabをhttpsでアクセスするように設定した後はGitLab APIのオプションにverifyを追加する
仕事で使っているGitLabをhttpsに設定したときにバックアップに使っているスクリプトを変更し忘れたので自戒を込めて書きます。
Pythonで確認
元にしたコードは下記の以前書いた記事に記載しています。
learning-mind.hatenablog.com
def get_all_user_email_dict(): headers = { 'Private-Token': os.environ['ACCESS_TOKEN'], } params = ( ('page', '1'), ('per_page', '1000'), ) response = requests.get('https://XXXXX/api/v4/users', headers=headers, params=params, verify="ca.crt") data = response.json() path_dict = dict() for row in data: username = json.dumps(row["username"], indent=4).replace("\"", "") path_dict[username] = json.dumps(row["email"], indent=4).replace("\"", "") return path_dict
下記の部分を修正しました。
response = requests.get('https://XXXXX/api/v4/users', headers=headers, params=params, verify="ca.crt")
verify="ca.crt"
の"ca.crt"
はクライアント証明書のファイル名です。
verify
のパラメータはFalse
でも処理は進みますが、警告が表示されます。
コマンドで確認
元にしたコマンドは↓ learning-mind.hatenablog.com
curl --cacert ca.crt --header "Private-Token: $ACCESS_TOKEN" https://XXXXX/api/v4/users | jq .projects[].path
URLおよびファイル名は環境に合わせてください。
--cacert ca.crt
が追加されています。
--cacert
はcurlのオプションで、ca.crt
はクライアント証明書のファイル名です。
感想
自分が書いた記事に助けられることは多い