mind.

学んだことの記録

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が追加されています。
--cacertcurlのオプションで、ca.crtはクライアント証明書のファイル名です。

感想

自分が書いた記事に助けられることは多い