আপনি যে স্ক্রিপ্টিং ভাষাটি ব্যবহার করতে চান সে সম্পর্কে আপনি কোনও উল্লেখ করবেন না, তাই আমি বিটবকেট API এ HTTP অনুরোধগুলি সম্পর্কে বিশেষভাবে কথা বলব:
অনুমিতি
আপনার যদি একটি বিটবকেট সংগ্রহস্থল থাকে যার মধ্যে তিনটি কমিট রয়েছে তবে প্রথমটি এবং শেষটি বিল্ডটি ব্যর্থ হচ্ছে, মাঝখানেটি কেটে যাবে :
- 4768815 ❌
- 49d7110 ✅
- 42d357f ❌
কমিটের তালিকা পান
আপনি নীচের এপিআই পদ্ধতিতে কল করে কমিটের তালিকা পেতে পারেন:
https://api.bitbucket.org/2.0/repositories/{{owner}}/{{repo_slug}}/commits
owner
: রিচার্ডস্লেটার
repo_slug
: গ্রিনকমিটপ্রুফ কনসেপ্ট
প্রতিক্রিয়াটি এমন দেখাচ্ছে:
{
"pagelen": 30,
"values": [
{
"hash": "4768815fdc27abf4be17096e7c460f7f68f5d39b",
"repository": { ... },
"links": {
...
"statuses": {
"href": "https://api.bitbucket.org/2.0/repositories/RichardSlater/greencommitproofofconcept/commit/4768815fdc27abf4be17096e7c460f7f68f5d39b/statuses"
}
},
"author": { ... },
"parents": [ ... ],
"date": "2017-04-10T11:38:18+00:00",
"message": "README.md edited online with Bitbucket",
"type": "commit"
},
{
"hash": "49d7110b98616358d16055960a4abdf2926b890d",
...
},
{
"hash": "42d357f1df7a7d7bcf1f10a9f3a5a40d85d5b11c",
...
}
]
}
আপনি যদি জেএসএনকে পার্স করেন এবং প্রতিক্রিয়াগুলিতে লুপ করেন তবে আপনি এর থেকে স্ট্যাটাসগুলি বের করতে পারেন:
values[n].links.statuses.href
কোথায় n
সূচক, অর্থাত্ 0
, 1
বা 2
উপরোক্ত উদাহরণের। আপনি যদি স্ক্র্যাচ থেকে এটি নির্মাণ করেন তবে এটি নীচের ফর্ম্যাটে হবে।
প্রতিশ্রুতিবদ্ধ থেকে স্ট্যাটাসগুলির তালিকা পান
https://api.bitbucket.org/2.0/repositories/{{owner}}/{{repo_slug}}/commit/{{sha}}/statuses"
owner
: রিচার্ডস্লেটার
repo_slug
: গ্রিনকমিটপ্রুফ কনসেপ্ট
sha
: 4768815fdc27abf4be17096e7c460f7f68f5d39b
দ্রষ্টব্য: এটি একটি হাইপারমিডিয়া এপিআই যার অর্থ ইউআরএলগুলি পরিবর্তিত হতে পারে তাই আমি লিঙ্কগুলি স্ক্র্যাচ থেকে উত্পন্ন করার পরিবর্তে আগের প্রতিক্রিয়া থেকে ব্যবহার করার পরামর্শ দেব।
উপরের এইচটিটিপি অনুরোধের প্রতিক্রিয়া এমন হবে:
{
"pagelen": 10,
"values": [
{
"key": "POC-01",
"name": "Build #1",
"repository": { ... },
"url": "http://devops.stackexchange.com/q/809/397",
"links": { ... },
"refname": null,
"state": "FAILED",
"created_on": "2017-04-10T13:04:28.261734+00:00",
"updated_on": "2017-04-10T13:04:28.261759+00:00",
"type": "build",
"description": "Changes by Richard Slater"
}
],
"page": 1,
"size": 1
}
এই প্রতিক্রিয়া থেকে আপনি ব্যবহারটি নিষ্কাশন করতে পারেন state
:
values[n].state
আবার যেখানে n
হয় status
- তাদের অনেকেই যদি এক ফলে কমিট অনেক তৈরী করে সেখানে হতে পারে।
আপনি যে বিল্ডটির যত্ন নেবেন সেই রাজ্যটি যদি আপনার হয় SUCCESSFUL
তবে আপনার উত্তর রয়েছে এবং আপনি অবিলম্বে প্রতিশ্রুতি ফিরিয়ে দিতে পারেন sha
।
প্রথম পর্যায়ের সমস্ত কমিটের উপর লুপ করুন, যদি আপনার কমিটগুলি শেষ না হয় তবে কলটিতে অন্তর্ভুক্ত থাকা next
পৃষ্ঠাটি অনুসরণ করুন ।link
/commits
সম্পূর্ণ ফ্লো ডায়াগ্রাম
উচ্চ স্তরে প্রবাহটি দেখতে এইরকম হবে:
এটি একটি হাইপারমিডিয়া এপিআই ভুলবেন না যাতে আপনার কোডগুলি "অনুমান করার চেষ্টা করার" পরিবর্তে এপিআই -তে থাকা লিঙ্কগুলি অনুসরণ করে।