প্রমাণীকরণ ছাড়াই ক্লোন করতে গিটলব টোকেন ব্যবহার করা


139

আমি আমার গিটল্যাব অ্যাকাউন্ট থেকে আমার ব্যক্তিগত টোকেন ব্যবহার করে আমার অটোমেশন স্ক্রিপ্টের প্রম্পট ছাড়াই গিটল্যাব সংগ্রহস্থল ক্লোন করতে চাই।

কেউ আমাকে একটি নমুনা সরবরাহ করতে পারেন?

আমি জানি আমি ব্যবহারকারী এবং পাসওয়ার্ড দিয়ে এটি করতে পারি:

git clone https://" + user + ":" + password + "@" + gitlaburl;

এবং আমি জানি ssh কী দিয়ে এটি সম্ভব

তবে, উভয় বিকল্পই যথেষ্ট নয়


21
git clone https://<token-name>:<token>@gitlaburl
কিংহট 金

1
কিংহট @ কেবলমাত্র আপনার আদেশটি কাজ করেছে !! অনেক অনেক ধন্যবাদ :-)
হুসেন কে

উত্তর:


195

আমি জানি এটি পুরানো তবে আপনি কীভাবে এটি করেন:

git clone https://oauth2:ACCESS_TOKEN@somegitlab.com/vendor/package.git


3
এটি আমার জন্য গিটল্যাব 8.5.7 এন্টারপ্রাইজ সংস্করণে কাজ করেছে।
বেন প্যাটারসন

1
এখানে কাজ করে (গিটল্যাব সম্প্রদায় সংস্করণ 8.16.5 064dab1)
মার্টিন এম।

5
এটি কাজ করে! আমি ভাবছি কেন প্রকল্পের বিবরণে gitlab.com এ তারা সম্পূর্ণ কমান্ড সিনট্যাক্স দেয় না: - ((
এফআরএ

গিটল্যাব 10.4.4 এর জন্য কাজ করে তবে আপনাকে একটি apiটোকেন তৈরি করতে হবে । এ read_userকেবল অধিবেশনগুলি পড়তে পারে/users
কুর্ট

2
কীভাবে এটি ব্যবহার করবেন ssh?
হেমু

41

আপনি এটি এর মতো করতে পারেন:

git clone https://gitlab-ci-token:<private token>@git.example.com/myuser/myrepo.git

2
এটি সঠিক বলে মনে হচ্ছে তবে এটি আমার পক্ষে সর্বদা প্রমাণীকরণ ব্যর্থ হয় :(
রান্দ্যায়া

আমার জন্য একই: মারাত্মক: প্রমাণীকরণ ব্যর্থ হয়েছে
ভোগাশ

4
<ব্যক্তিগত টোকেন> অ্যাকাউন্টের ব্যক্তিগত টোকেন নয়, সিআই রানার টোকেন দিয়ে প্রতিস্থাপন করা প্রয়োজন।
কিপ

2
আমি মনে করি আপনার ব্যক্তিগত টোকেনটি ডান @ টিএম
গবি দাসু

আপনি প্রকল্পের নির্দিষ্ট সি টোকেন ব্যবহার করতে পারেন (বিল্ডগুলি সক্ষম করুন, তারপরে প্রকল্প / রানার কনফিগে যান)।
বিএম 5 কে

41

গিটল্যাবে অনেক টোকেন রয়েছে:

  • ব্যক্তিগত টোকেন
  • ব্যক্তিগত অ্যাক্সেস টোকেন
  • সিআই / সিডি টোকেন চলমান

আমি গিটল্যাব সম্প্রদায় সংস্করণ 10.1.2 ব্যবহার করে কেবলমাত্র ব্যক্তিগত অ্যাক্সেস টোকন পরীক্ষা করেছি :

git clone https://gitlab-ci-token:${Personal Access Tokens}@gitlab.com/username/myrepo.git


git clone https://oauth2:${Personal Access Tokens}@gitlab.com/username/myrepo.git

বা ব্যবহারকারীর নাম এবং পাসওয়ার্ড ব্যবহার:

git clone https://${username}:${password}@gitlab.com/username/myrepo.git

অথবা ইনপুট দ্বারা আপনার পাসওয়ার্ড:

git clone https://${username}@gitlab.com/username/myrepo.git

কিন্তু ব্যক্তিগত টোকেনটি কাজ করতে পারে না বলে মনে হচ্ছে।


5
নোট করুন যে ব্যক্তিগত টোকেনগুলি গিটল্যাব
ডেভিড প্ল্যানেলা

26

পাসওয়ার্ডের পরিবর্তে টোকেনটি ব্যবহার করুন (ক্লোনটির অনুমতি দেওয়ার জন্য টোকেনটির "এপিআই" সুযোগ থাকা দরকার):

git clone https://username:token@gitlab.com/user/repo.git

11.0.0-ee এর বিরুদ্ধে পরীক্ষিত।


হ্যাঁ, এটি আমার পক্ষে কাজ করে। টোকেন পাসওয়ার্ড হিসাবে ব্যবহার করা যেতে পারে।
cwtuan

1
লোকেদের জন্য এটি গুগল করছে: gitlab.com- এ HTTPS- র মাধ্যমে ব্যক্তিগত অ্যাক্সেস টোকেনগুলি ব্যবহার করা আপনি চাইলে এটি হয়।
অ্যাডাম

14

আপনি আপনার গিটল্যাব রেপোর সিআই / সিডি পাইপলাইনগুলির জন্য রানার টোকেন ব্যবহার করতে পারেন।

git clone https://gitlab-ci-token:<runners token>@git.example.com/myuser/myrepo.git

কোথা <runners token>থেকে প্রাপ্ত করা যেতে পারে:

git.example.com/myuser/myrepo/pipelines/settings

বা ক্লিক করে Settings icon -> CI/CD Pipelineএবং পৃষ্ঠায় রানার টোকেন সন্ধান করুন

রানারদের টোকেন অবস্থানের স্ক্রিনশট: রানারদের টোকেন অবস্থানের স্ক্রিনশট


5
দ্রষ্টব্য: রানার টোকেনটি এখন অবচয় করা হয়েছে।
অরিহন্ত গোধা

@ অরিহন্তগোধ সূত্র?
মিক

2
@ মিমিক এখানে দেখুন (হিসাবে> = 8.12)
ইয়ান ফটো

1
এই ফর্ম্যাটটি এখন অবহিত করা
জিজ্ঞাসা /

গিটল্যাব সিআই পাইপলাইনটির ভিতরে থেকে কাজ করে না। তবে এই লাইনটি কাজ করে:git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
স্লাওয়া

12

আপনার যদি ইতিমধ্যে এমপিএ-তে প্রমাণীকরণ করার পদ্ধতিটি ইতিমধ্যে কোনও সংগ্রহস্থল রয়েছে এবং আপনি remote originএইচটিটিপি ইউআরআই আপনার নতুন এপি টোকেনটি নীচে ব্যবহার করতে পারেন:

git remote set-url origin https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git

এবং আপনার কোনও পরিমাণে পুনরায় ক্লোনার প্রয়োজন হবে না।


3
git clone https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.gitএছাড়াও আমার জন্য কাজ করে, ধন্যবাদ !! আমি আমার সঠিক সমাধান দিয়ে এই থ্রেডের উত্তর দেব।
রুতারস

10

একটি সম্ভাব্য উপায় হ'ল ডিপ্লয় টোকেন ( https://docs.gitlab.com/ee/user/project/deploy_tokens ) ব্যবহার করা। টোকেন তৈরির পরে, ব্যবহার করুন:

git clone https://<username>:<deploy_token>@gitlab.example.com/tanuki/awesome_project.git 

উপরের লিঙ্কে উল্লিখিত হিসাবে।


উভয়ই এটি কোনও নতুন ডকার পাত্রে এনপিএম ইনস্টলের সাথে কাজ করছে বলে মনে হচ্ছে না, এসএসএস-এ ডিফল্ট।
ভিক্স

সত্যিই কাজ করবেন না।
rios0rios0

10

হিসাবে 8.12, HTTPS+ রানার টোকেন ব্যবহার করে ক্লোনিং আর সমর্থিত নয়, এখানে উল্লিখিত হিসাবে :

8.12 এ আমরা বিল্ড অনুমতির উন্নতি করেছি। রানার টোকেন ব্যবহার করে প্রকল্পটিকে ক্লোন করতে সক্ষম হওয়া এখন থেকে কোনও সমর্থনযোগ্য নয় (এটি আসলে কাকতালীয়ভাবে কাজ করে যাচ্ছিল এবং এটি কখনও পুরোপুরি বৈশিষ্ট্যযুক্ত ছিল না, তাই আমরা এটি 8.12-এ পরিবর্তন করেছি)। পরিবর্তে আপনার বিল্ড টোকেন ব্যবহার করা উচিত।

এই ব্যাপকভাবে এখানে নথিভুক্ত করা হয় - https://docs.gitlab.com/ce/user/project/new_ci_build_permissions_model.html


1
রানার টোকেন ব্যবহার করা সম্ভব নয় তবে ব্যক্তিগত অ্যাক্সেস টোকেন ব্যবহার করছে। দয়া করে আমার উত্তর দেখুন: স্ট্যাকওভারফ্লো
মুহান আলিম

@ মুহানআলিম আমি কাউকে অ্যাক্সেস টোকেন ব্যবহার করে তাদের পুরো অ্যাকাউন্টটি প্রকাশ করার পরামর্শ দেব না। এ কারণেই তাদের প্রাইভেট অ্যাক্সেস টোকেন বলা হয় !
ইয়ান ফোটো

প্রশ্নটিতে কীটি সর্বজনীন করার বিষয়ে কিছুই উল্লেখ করা হয়নি, শুধুমাত্র ক্লোনিংয়ের জন্য কীভাবে ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জায়গায় কী ব্যবহার করবেন। তবে এটি একটি ভাল বিষয়, আমি পাবলিক যে কোনও জায়গায় কীগুলি ব্যবহার করার পরামর্শ দেব না।
মুহান আলিম

1
অটোমেশন স্ক্রিপ্টটি বোঝায় যে পুরো পদ্ধতিটি স্থানীয়ভাবে চলছে না। সম্ভবত অন্য কোথাও যেখানে অন্যের অ্যাক্সেস রয়েছে।
ইয়ান ফটো

8

গিটল্যাব সিআই পাইপলাইনের অভ্যন্তরে CI_JOB_TOKENপরিবেশ পরিবর্তনশীল আমার জন্য কাজ করে:

git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...

সূত্র: গিটলব ডক্স

বিটিডাব্লু, এ ভেরিয়েবলটি সেট করা .gitlab-ci.ymlত্রুটিগুলি ডিবাগ করতে সহায়তা করে।

variables:
    CI_DEBUG_TRACE: "true"

2

আমি প্রতি প্রকল্পে কী কী সেটিং স্থাপন করে (কেবল পঠনযোগ্য) প্রতি এসএসএইচ দিয়েছি


আমাকেও কারণ আমি GIT_STRATEGY: কোনওটিই ব্যবহার করছি না।
আলেেক্স গবি

1

আমার ভবিষ্যৎ আমাকে খুশি করতে করতে: RTFM - ব্যবহার করবেন না সব সময়ে gitlab-CI-টোকেন কিন্তু .netrcফাইল।

কয়েকটি গুরুত্বপূর্ণ বিষয় রয়েছে:

  1. echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc
  2. আপনার URL টি দ্বারা "gitlab.com" প্রতিস্থাপন করতে ভুলবেন না!
  3. স্মার্ট হওয়ার চেষ্টা করুন এবং সরাসরি .netrc ফাইলটি তৈরি করার চেষ্টা করবেন না - গিটল্যাব ফাইলটির মধ্যে স্থানটি প্রতিস্থাপন করবে না $CI_JOB_TOKEN!
  4. ব্যবহার https://gitlab.com/whatever/foobar.com- না ssh://git@foobar, না git+ssh://, নাgit+https:// । ইউআরএলটিতে আপনার কোনও সিআই-টোকেন স্টাফের দরকার নেই।
  5. আপনি নিশ্চিত করতে পারেন git clone [url from step 4]

পটভূমি: আমি পেয়েছি

fatal: could not read Username for 'https://gitlab.mycompany.com': No such device or address

আমি যখন কল্পনা করেছিলাম তেমন উত্তরযোগ্য + গিটলাব + ডকারকে কাজ করার চেষ্টা করেছি। এখন এটা কাজ করছে.


1

ইউআরএল কাস্টমাইজ করার দরকার নেই। গিটল্যাব টোকেনের জন্য যেমন একটি গিট কনফিগারেশন ব্যবহার করুন

git config --global gitlab.accesstoken {TOKEN_VALUE}

এখানে বর্ধিত বিবরণ


1

উপরের অনেকগুলি উত্তর নিকটবর্তী, তবে তারা টোকেনগুলি ভুল হিসাবে usernameসিনট্যাক্স পায় deploy। টোকেনের অন্যান্য ধরণের রয়েছে, তবে deploy tokenগেটল্যাব প্রতি রেপোতে (কমপক্ষে 2020+ কম) প্রস্তাব দেয় কাস্টমাইজড অ্যাক্সেসের মঞ্জুরি দিতে, শুধুমাত্র-পঠনযোগ্য সহ।

একটি repository(বা group) থেকে, settings-> repository-> সন্ধান করুন deploy tokens। একটি নতুন তৈরি করুন। এ usernameএবং tokenফিল্ড তৈরি হয়। usernameডিফল্টরূপে একটি নির্দিষ্ট মান নয়; এটি এই টোকেনের কাছে অনন্য।

git clone https://<your_deploy_token_username>:<the_token>@gitlab.com/your/repo/path.git

gitlab.com সর্বজনীন, বিনামূল্যে অ্যাকাউন্টে পরীক্ষা করা হয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.