গিথুবটিতে বিদ্যমান ইস্যুতে আপনি কীভাবে একটি নতুন টানার অনুরোধটি সংযুক্ত করবেন?


409

আমি নিশ্চিত নই, তবে "ইস্যু 4" বা শিরোনামের কিছু দিয়ে গিথুব পুল অনুরোধ তৈরি করার একটি অস্পষ্ট স্মৃতি আমার আছে এবং আমি যে প্রকল্পটিতে জমা দিয়েছিলাম তা এটি স্বয়ংক্রিয়ভাবে ইস্যু 4-এ সংযুক্ত হয়ে যায়। আমি সম্প্রতি এটি আবার চেষ্টা করেছি এবং এটি কার্যকর হয়নি - এটি পরিবর্তে একেবারে নতুন সমস্যা তৈরি করেছে। নতুন পুল অনুরোধ পৃষ্ঠায় "ইস্যু করতে সংযুক্ত করুন" এর মতো কোনও বিকল্প আমি দেখতে পাচ্ছি না, বা ইস্যু পৃষ্ঠায় "এই সমস্যাটির জন্য একটি নতুন টানার অনুরোধ খুলুন"। প্রকল্প মালিকরা তাদের ইস্যু পৃষ্ঠা পরিষ্কার রাখতে এবং সদৃশ এড়াতে সহায়তা করার কোনও উপায় আছে কি?

সম্পাদনা : পরিষ্কার করার জন্য, আমি জানি যে একটি পুল অনুরোধ তৈরি করা সর্বদা একটি নতুন সমস্যা তৈরি করে । আমি পরিবর্তে একটি বিদ্যমান ইস্যুতে পুল অনুরোধটি সংযুক্ত করতে চাই ।


1
আমার বিশ্বাস আমার উত্তরটি এই সত্যটি প্রকাশ করে যে আপনি যে বৈশিষ্ট্যটি চান ("কোনও বিদ্যমান সমস্যার সাথে টানতে অনুরোধ যুক্ত করুন ") এখনও সেখানে নাও থাকতে পারে।
ভোনসি

এটি করে (এবং এটি এই টুইট দ্বারা সত্যই নিশ্চিত করা হয়েছে ), তবে এটি আমাকে বুঝতে পেরেছিল যে আমার প্রশ্ন আরও পরিষ্কার হতে পারে।
ম্যাট্রিক্সফ্রোগ

আমি আশা করি যে গিথুব অগ্রাধিকার তালিকায় বৈশিষ্ট্যটি বেশি, কোজ কোডটি বহন করবে এটি পছন্দ করবে!
flq

2
সঠিক উত্তরটি মাসুকোমিতে পরিবর্তিত হওয়া উচিত, এখন "ফিক্স # 1" পদ্ধতি উপলব্ধ। এপিআই দিয়ে যাওয়ার দরকার নেই।
এডওয়ার্ড অ্যান্ডারসন

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

উত্তর:


245

"হাব" প্রকল্পটি এটি করতে পারে:

https://github.com/defunkt/hub

যে সংগ্রহস্থল এবং শাখায় আপনি একটি টানার অনুরোধ পাঠাতে চান তাতে:

$ hub pull-request -i 4

এটি গিটহাব এপিআই ব্যবহার করে এবং বিদ্যমান শাখার জন্য বিদ্যমান ইস্যু সংখ্যা 4 তে একটি অনুরোধ সংযুক্ত করে।


সম্পাদনা: @ অ্যাটমিক্যালস দ্বারা মন্তব্য : @ মিশেলমায়ার দ্বারা উত্তরের প্রসারিত করার একটি সম্পূর্ণ উদাহরণ হ'ল:

$ hub pull-request -i 4 -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE

12
brew install hub
হোমব্রিউ

11
এটি আমার পক্ষে কাজ করে না।
বলার

11
@ রুবিকুট আমারও একই সমস্যা ছিল। পরিবর্তে আমি করেছি hub pull-request URL_TO_ISSUE, তখন এটি আমার পক্ষে কাজ করেছিল। আমি ভাবছি -i ISSUE_NUMBERকেবল তখনই যদি সমস্যাটি একই সংগ্রহস্থলে থাকে (যেমন কাঁটাচামচ নয়)
মাইকেল মায়ার

30
hub pull-request -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE
@ মিশেলমিয়ারের

4
নোট করুন এটি কেবল আপনার তৈরি সমস্যাগুলিতে কাজ করে: github.com/defunkt/hub/issues/189#issuecomment-6353354
জাচ

237

একটি বিদ্যমান আপস্ট্রিম ইস্যুতে একটি টান অনুরোধ যুক্ত করা আপনার সাধারণ গিথুব পদ্ধতিটি ব্যবহার করে কাঁটাচামচ করা সহজ ।

সমর্থিত কোনও কীওয়ার্ড ব্যবহার করে কেবল আপনার প্রতিশ্রুতি বার্তায় বিষয়টি উল্লেখ করুন :

  • ঘনিষ্ঠ
  • প্রচেষ্টা
  • বদ্ধ
  • ফিক্স
  • সংশোধন করা হয়েছে
  • সংশোধন করা হয়েছে
  • সমাধান
  • সমাধান করা
  • স্থিরপ্রতিজ্ঞ

উদাহরণস্বরূপ: "এই প্রতিশ্রুতি # 116 ঠিক করে"

ইস্যুটি উল্লেখ করে পাঠ্যটি আপনার প্রতিশ্রুতিবদ্ধ বিষয়টির লাইনে উপস্থিত হওয়ার দরকার নেই।

আপনার গিথুব রেপোতে আপনার প্রতিশ্রুতিটি চাপুন এবং টানতে অনুরোধটি স্বয়ংক্রিয়ভাবে ইস্যুতে সংযুক্ত হবে।

দ্রষ্টব্য: যদিও এটির প্রয়োজন নেই, ততই দৃ strongly়ভাবে সুপারিশ করা হয় যে আপনি যে কোনও বিষয়ই সেই সমস্যার সাথে নির্দিষ্ট একটি পৃথক শাখায় টানতে অনুরোধের অংশ হবেন এমন দৃ commit়তার সাথে সুপারিশ করা হয়েছে, কারণ ভবিষ্যতে সেই শাখায় করা কমিটগুলি টান অনুরোধে সংযুক্ত করা হবে (গিথুব দ্বারা স্বয়ংক্রিয়ভাবে )। সুতরাং, যদি আপনি একটি পৃথক শাখা না তৈরি করেন, এটি মাস্টারে রেখে যান এবং তারপরে বিকাশ অব্যাহত রাখেন, তবে আপনার সমস্ত সম্পর্কযুক্ত মাস্টার করার প্রতিশ্রুতি আপনার টানার অনুরোধে যুক্ত হয়ে যাবে।


31
"এটি দৃ strongly়ভাবে সুপারিশ করা হয় যে আপনি যে কোনও কিছু সেই সমস্যার সাথে নির্দিষ্ট একটি পৃথক শাখায় টানতে অনুরোধের অংশ হবেন এমন প্রতিশ্রুতিবদ্ধ কারণ ভবিষ্যতে সেই শাখায় করা কমিটগুলি পুল অনুরোধে সংযুক্ত করা হবে" - খুব ভাল বিষয়। এটি আমার সাথে একবার হয়েছিল এবং এটি বেশ অবাক হয়েছিল।
ম্যাট্রিক্সফ্রোগ

9
দুর্ভাগ্যক্রমে এটি কোনও সমস্যাটিকে টানার অনুরোধে পরিণত করার সমস্যার সমাধান করে না। ইস্যুতে যে কোনও আলোচনা হয়েছিল তা টানা অনুরোধে স্থানান্তরিত হবে না ... যা বেশ কয়েকটি ব্যবহারের ক্ষেত্রে দুর্ভাগ্যজনক। আমি আশা করি গিথুব রেপো সেটিংসে কীভাবে পুল-রেকস কাজ করে তার উপর কিছুটা দানাদার নিয়ন্ত্রণ দেয়।
অ্যালেক্স ওয়াটারস

1
@ মাসুকমি একটি টান অনুরোধ প্রকল্পের রক্ষণাবেক্ষণকারীদের সমাধান করা সহজ - তারা একটি বোতামের ক্লিকের সাহায্যে পরিবর্তনগুলি মেনে নিতে এবং মার্জ করতে পারে। একটি টান অনুরোধ ব্যবহার না করে কাঁটাচামচ পরিবর্তনের জন্য, আপনাকে কাঁটাচামচটি দূরবর্তী হিসাবে যুক্ত করতে হবে, তাদের পরিবর্তনগুলি আনতে হবে এবং সেগুলি নিজেই মার্জ করতে হবে।
ররি ও'কেনে

2
আমি মনে করি আপনি আমার পয়েন্ট মিস করেছেন। যদি আপনি একটি টানার অনুরোধ তৈরি করেন এবং সমস্যাটিতে এটি উল্লেখ করেছেন (যেমনটি আমি বলেছিলাম), তবে দুটি সংযুক্ত রয়েছে এবং আপনি এখনও পরিবর্তনগুলি পেতে একটি বোতামে ক্লিক করতে পারেন।
মাসুকোমি

2
যখন টানা অনুরোধটি একটি চলমান জিনিস হয় তখন এটি সাহায্য করে না। আমাদের কর্মপ্রবাহ হ'ল ধারণাগুলির জন্য সমস্যাগুলি তৈরি করা এবং তারপরে আমরা যখন এই ধারণাগুলির উপর কাজ শুরু করি তখন বৈশিষ্ট্য শাখাগুলি থেকে অনুরোধগুলি টান। টান অনুরোধে প্রতিশ্রুতি ব্যবহার করে ইস্যুটি বন্ধ করার অর্থ আমরা ইস্যুটিতে থাকা পূর্বের আলোচনাটি হারাতে পারি, যার মধ্যে প্রায়শই ইস্যুটির ঠিকানাগুলি যে কোনও বৈশিষ্ট্য / ফিক্স / রিফ্যাক্টর অন্তর্ভুক্ত করা যায়। সত্যিই যা প্রয়োজন তা হ'ল সমস্যা সমাধানের জন্য একবার সমস্যার সমাধান শুরু করার উপায়।
ড্যানিয়েল বিঙ্গহাম 21

144

আপনি পুল অনুরোধ এপিআই দিয়ে একটি বিদ্যমান সমস্যা থেকে একটি পুল অনুরোধ তৈরি করতে পারেন :

$ curl --user "smparkes" \
       --request POST \
       --data '{"issue": 15, "head": "smparkes:synchrony", "base": "master"}' \
       https://api.github.com/repos/technoweenie/faraday/pulls

এটি একটি টানার অনুরোধ তৈরি করে:

  • জিজ্ঞাসা technoweenieপ্রকল্পের এ faraday(https://api.github.com/repos/ technoweenie / ফ্যারাডে / টানাপড়েনে)
  • 'কাঁটাচামচ ("মাথা": " স্মার্পাকস : সিঙ্ক্রোনারি ") থেকে synchronyশাখা থেকে টানতেsmparkes
  • থেকে masterশাখা technoweenie'র কাঁটাচামচ (: "" বেস " মাস্টার ")
  • এবং 15 ইস্যু করার জন্য টানা অনুরোধটি সংযুক্ত করুন ("ইস্যু": 15 )
  • টান অনুরোধ লেখক smparkes(- ব্যবহারকারীর " smparkes ") সহ
  • আপনাকে আপনার গিটহাব পাসওয়ার্ডের জন্য অনুরোধ জানানো হবে

1
আমি সেই লিঙ্কটি থেকে কিছু নমুনা কোডটিতে অনুলিপি করেছি। আশা করি আপনি আপত্তি করবেন না, এবং দয়া করে আমাকে জানাবেন যদি আমি এটির ভুল ব্যাখ্যা করে থাকে!
ম্যাট্রিক্সফ্রোগ


2
আমি কেবল যুক্ত করতে চাই যে এই পদ্ধতিটি এখনও কাজ করে, তবে গিটিহাব ইতোমধ্যে এটির বার্তাটিতে ( উদাহরণস্বরূপ ) # ইস্যু থেকে স্পষ্টতই এটি তুলে নিয়ে থাকলে আলোচনার পাতায় আপনার প্রতিশ্রুতি দু'বার सूचीबद्ध করার পার্শ্ব প্রতিক্রিয়া হতে পারে । যদিও প্রতিশ্রুতিটি কেবল একবার সরকারী টানার অনুরোধের মাধ্যমে আসে।
গ্রেগ হাসকিনস

3
এটি কি ভি 3 এপিআইতে আপডেট করা যাবে? গিটহাব সবেমাত্র v2 এপিআই বন্ধ করেছে।
মাইকেল সেরা

1
@rsanchezsaez আমি বলে আমার উত্তর , পরিবর্তন --user "smparkes:password"করার জন্য --user "smparkes"আপনার পাসওয়ার্ড ইন্টারেক্টিভ হাজির হওয়া।
ররি ও'কেনে


10

এই অন্যান্য উত্তরটি কীভাবে গিটহাব এপিআইয়ের মাধ্যমে ইস্যু থেকে পুল অনুরোধ তৈরি করতে সিআরএল ( curl) ব্যবহার করবেন তা ব্যাখ্যা করে । HTTPie ( ) ব্যবহার করে এটি কীভাবে করবেন তা এখানে রয়েছে , যা সহজেই সহজেই পঠনযোগ্য এবং সহজে সম্পাদনাযোগ্য কমান্ড তৈরি করে:http

$ http --auth "<your-GitHub-username>" \
       POST \
       https://api.github.com/repos/<issue-repo-owner>/<issue-repo-name>/pulls \
       issue=<issue-number> head=<your-GitHub-username>:<your-fork-branch-name> base=<issue-repo-branch-name>

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

ব্যাখ্যা করা উদাহরণ

আপনি ব্যবহারকারীর নাম স্মার্কস এবং পাসওয়ার্ড হান্টার 2 দিয়ে গিটহাবে লগ ইন করেছেন । তোমরা দেখেছিলে technoweenie এর রেপো ফ্যারাডে , এমন কিছু বিষয় যা পরিবর্তন করা উচিত মনে, এবং এটি যে রেপো একটি সমস্যা তৈরী ইস্যু # 15 । পরে, আপনি দেখতে পাবেন যে অন্য কেউ আপনার প্রস্তাবিত পরিবর্তন করেনি এবং এটি নিজে করার জন্য আপনারও কিছু সময় আছে। আপনি আপনার নিজের অ্যাকাউন্টে ফ্যারাডে কাঁটাচামচ করুন , তারপরে আপনার পরিবর্তনগুলি লিখুন এবং সেগুলি সিঙ্ক্রোনি নামের একটি শাখার নীচে আপনার কাঁটাচে চাপ দিন । আপনি মনে করেন টেকনোইনিতে এই পরিবর্তনগুলি মাস্টারের দিকে টানতে হবেতার রেপুর শাখা। আপনার পূর্ববর্তী ইস্যুকে এই পরিস্থিতিতে টানার অনুরোধে রূপান্তর করতে আপনি যে আদেশটি লিখেছেন তা এই:

$ http --auth "smparkes" \
       POST \
       https://api.github.com/repos/technoweenie/faraday/pulls \
       issue=15 head=smparkes:synchrony base=master
http: password for smparkes@api.github.com: hunter2

এখন সংখ্যা # 15 একটি টানুন অনুরোধ।


3

যদি আপনি গিথুব সহ ​​2-গুণক-প্রমাণ ব্যবহার করেন তবে আপনাকে অনুরোধে শিরোনাম হিসাবে লেখক সরবরাহ করতে হবে:

curl -u "<your_username>:<your_pw>" \
     --header 'X-GitHub-OTP: <your_authtoken>' \
     --request POST \
     --data '{"issue":"<issue_nr>", "head":"<your_username>:<your_forks_branchname>", "base":"<upstream_branch>"}' \
     https://api.github.com/repos/<upstream_user>/<upstream_repo>/pulls

1
হ্যাঁ, 2 এফএ অনেক উত্তর এখানে কাজ করা থেকে বাধা দেয়। আমার ক্ষেত্রে, আমি একটি ব্যক্তিগত অ্যাক্সেস টোকেন তৈরি করেছি এবং এটি আমার পাসওয়ার্ডের চেয়ে ব্যবহার করে যা কার্যকর হয়।
বার্তো

1

আপনি আপনার সমস্যার জন্য পুল অনুরোধ জমা দিতে গুব ব্যবহার করতে পারেন ।

এটি আপনাকে উপযুক্ত কাঁটাচামচ / পুল-অনুরোধ শৈলী ব্যবহার করতে সহায়তা করে।

সম্পাদনা করুন: 10/5/2013

# 123 ইস্যু করার জন্য গুবকে পুল-অনুরোধ জমা দেওয়ার জন্য, আপনাকে নিম্নলিখিতগুলি চালনা করতে হবে:

$ gub start 123

এটি একটি নতুন শাখা ইস্যু তৈরি করবে - 123। ইস্যুতে কাজ শেষ হয়ে গেলে, কার্যকর করুন:

$ gub finish

ভাল খবর!

দ্রষ্টব্য: আমি গুব রত্নের লেখক।


1

ক্লায়েন্ট পক্ষের ( ক্রিশ্চিয়ান ওডার্ড উত্তরhub হিসাবে যেমন ) এর পরিবর্তে, আপনি এখন (ফেব্রুয়ারী 2020) সার্ভার সাইডে এটি করতে পারেন (github.com)

"দেখ দেখুন ও লিংক বিষয় ও সাইডবার থেকে টান অনুরোধ "

আপনি এখন সমস্যাগুলি লিঙ্ক করতে পারেন এবং তাদের নিজ নিজ পৃষ্ঠায় সাইডবারের মাধ্যমে অনুরোধগুলি টানতে পারেন। এখানে লিঙ্কযুক্ত সংযোগগুলি স্বয়ংক্রিয়ভাবে সমস্যাগুলি বন্ধ হয়ে যাবে একবার লিঙ্কযুক্ত পুলের অনুরোধটি মার্জ হয়ে যায়।

ডকুমেন্টেশন :https://help.github.com/assets/images/help/pull_requests/link-issue-drop-down.png

এবং সেই বৈশিষ্ট্য সহ একটি অনুসন্ধান API রয়েছে।

linked:prঅনুসন্ধানের বাছাইয়ের সাথে ক্লোর টান অনুরোধের রেফারেন্স রয়েছে এমন একটি খোলার সমস্ত মুক্ত বিষয়গুলি সন্ধান করুন।
একইভাবে, সমস্ত পুঙ্খানুপুঙ্খ অনুরোধগুলি কোনও সংগ্রহস্থলে সনাক্ত করুন যা এর সাথে একটি সমর্থনযোগ্য সমস্যা অনুপস্থিত -linked:issue


0

গিট-হাব সরঞ্জামটি ব্যবহার করে আপনি এটি দিয়ে এটি করতে পারেন:

$> git hub pull attach 123

এটি # 123 ইস্যুটিকে পুল অনুরোধে # 123 তে রূপান্তরিত করবে, এইভাবে সমস্যাটি সম্পর্কে একক স্থানে সমস্ত আলোচনা বজায় রাখবে।


0

আপনি যদি 2 এফএ সক্ষম করে থাকেন তবে আপনি এইচটিটিপি দিয়ে টোকেনটি ব্যবহার করতে পারেন:

http POST \
    https://api.github.com/repos/<repo-owner>/<repo-name>/pulls \
    issue=2 head=issue_2 base=master
    "Authorization:token PUTAUTHTOKENHERE"

এটি শাখাটি issue_2# 2 ইস্যুকে টানার অনুরোধে রূপান্তর করতে ব্যবহার করবে ।

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