これは、提起された私の質問の補足です here 。その質問でたくさん助けてくれた@dessertに感謝します。
したがって、偽装トークンを作成するのではなく、ユーザー名とパスワードを使用してGitlabユーザーを認証しようとしています。現時点では、@ dessertが作成した、偽装トークンを使用してユーザーを認証するコードは次のとおりです。
$ curl -d '{"title":"test key","key":"'"$(cat ~/.ssh/id_rsa.pub)"'"}' -H 'Content-Type: application/json' https://gitlab.com/api/v4/user/keys?private_token=<my_access_token>
主に `private_token =に焦点を当てていますが、偽装トークンの作成が見つかった場合は除きます here
$ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=mytoken" --data "expires_at=2017-04-04" --data "scopes[]=api" https://gitlab.example.com/api/v4/users/42/impersonation_tokens
Gitlabユーザーのユーザー名とパスワードを使用して認証できるようにしたい。私はこれがGithubで行われるのを見てきましたが、自分で行いました:
$ curl -u "USERNAME:PASSWORD" --data "{\"title\": \"TITLE\", \"key\": \"$(cat ~/.ssh/id_rsa.pub)\"}" https://api.github.com/user/keys
ここで、USERNAME
およびPASSWORD
は、ユーザーが入力したユーザー名とパスワードによって認証されます。
ユーザーの入力を読むのに助けは必要ありません。それは問題ではありません。私の問題(要約すると)は、ユーザー名とパスワードを使用してGitlabユーザーを認証できることです。
繰り返しますが、@ dessertに感謝します。他の支援も歓迎します。
簡単な編集:ログインとパスワードで認証するための this フォーラムの投稿を見つけました。ほとんどの人がパーソナルアクセストークンを使用すると言っています。これは、ユーザーに認証用のPATを提供する必要があることを意味しますか?または、myPATを提供し、どういうわけかそれは何かをしますか? (私はこれについて少し不明確でした)
したがって、この質問はそれほど多くの回答を得ていないようです。これに対する私の答えを共有したいと思います。これを実装しないでください。
私は、この検証が実際にGitlabにプライベートリポジトリをダウンロードすることだと思っていたことがわかったので、これを理解しました。ただし、リポジトリにリンクされているユーザーのアカウントに依存するため、そうではありません。
私の解決策は、スクリプトを続行する前に、アカウントにSSHキーを追加することを警告することです。いつもうまくいく確実な方法ではありませんが、現時点ではうまくいくようです。
ありがとう:)