स्टेज और प्रमोशन
आर्टिफ़ैक्ट के स्टेज (उदाहरण के लिए release), रिपॉज़िटरी के बीच प्रमोशन और स्टेज से संस्करण निर्धारित करना।
इस समूह के ऑपरेशन, उनके एक्सेस नियम, पुनः प्रयास नियम, पैरामीटर और जवाबों के साथ। हर अनुरोध में एक कुंजी होती है: Authorization: Bearer <कुंजी> (“प्रमाणीकरण” देखें)।
ऑपरेशन
आर्टिफ़ैक्ट के स्टेज सूचीबद्ध करें
GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/stages
एक्सेस: रिपॉज़िटरी अनुमति: artifact.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
प्रकाशित आर्टिफ़ैक्ट के वर्तमान प्रमोशन स्टेज लौटाता है (अधिकतम 16), प्रत्येक के साथ जोड़ने का समय, कर्ता और टिप्पणी।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 16 आइटम |
items[].artifactId | string (uuid) | हाँ | — |
items[].stage | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$ |
items[].promotedAt | string (date-time) | हाँ | — |
items[].actor | string | हाँ | — |
items[].comment | string | हाँ | अधिकतम 1024 वर्ण; null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/stages" \
-H "Authorization: Bearer $ARKVORY_TOKEN"आर्टिफ़ैक्ट में स्टेज जोड़ें
PUT /api/v1/repositories/{repository}/artifacts/{id}/stages/{stage}
एक्सेस: रिपॉज़िटरी अनुमति: artifact.promote, artifact.read; फ़ाइल कुंजियाँ: read, write · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
प्रकाशित आर्टिफ़ैक्ट को stage (1–32 छोटे अक्षर, अंक या _.-, जो अक्षर या अंक से शुरू हो) से चिह्नित करता है, वैकल्पिक comment (1024 वर्णों तक) के साथ, और घटना को प्रमोशन जर्नल में दर्ज करता है। आर्टिफ़ैक्ट में पहले से मौजूद स्टेज जोड़ने पर कुछ नहीं बदलता और मूल समय बना रहता है, इसलिए उसी संस्करण को फिर प्रमोट करने के लिए (order=promoted के साथ रोलबैक हेतु) पहले स्टेज हटाएँ। आर्टिफ़ैक्ट में अधिकतम 16 स्टेज हो सकते हैं (409 stage_limit)।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
stage | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$ |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
comment | string | नहीं | अधिकतम 1024 वर्ण; null हो सकता है |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
artifactId | string (uuid) | हाँ | — |
stage | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$ |
promotedAt | string (date-time) | हाँ | — |
actor | string | हाँ | — |
comment | string | हाँ | अधिकतम 1024 वर्ण; null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X PUT "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/stages/$STAGE" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'आर्टिफ़ैक्ट से स्टेज हटाएँ
DELETE /api/v1/repositories/{repository}/artifacts/{id}/stages/{stage}
एक्सेस: रिपॉज़िटरी अनुमति: artifact.promote, artifact.read; फ़ाइल कुंजियाँ: read, write · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
प्रकाशित आर्टिफ़ैक्ट से stage हटाता है और घटना को प्रमोशन जर्नल में दर्ज करता है; जो स्टेज आर्टिफ़ैक्ट में नहीं है उसे हटाना भी सफल होता है। इस स्टेज से पैकेज निर्धारण (resolution) उसी क्षण से आर्टिफ़ैक्ट को चुनना बंद कर देता है।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
stage | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$ |
प्रतिक्रियाएँ: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507
उदाहरण
curl -X DELETE "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/stages/$STAGE" \
-H "Authorization: Bearer $ARKVORY_TOKEN"आर्टिफ़ैक्ट का प्रमोशन इतिहास सूचीबद्ध करें
GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/promotions
एक्सेस: रिपॉज़िटरी अनुमति: artifact.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
एक आर्टिफ़ैक्ट का जर्नल सबसे पुराने से पहले लौटाता है: जोड़े और हटाए गए स्टेज, अन्य रिपॉज़िटरी में और वहाँ से प्रमोशन (सहभागी आर्टिफ़ैक्ट के साथ), कर्ता, टिप्पणी और समय। प्रत्येक पृष्ठ में limit घटनाएँ होती हैं (1–100, डिफ़ॉल्ट 50); after में next देकर आगे बढ़ें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
after | क्वेरी | string | नहीं | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
limit | क्वेरी | string | नहीं | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; At most 100. |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 100 आइटम |
items[].sequence | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
items[].repository | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
items[].artifactId | string (uuid) | हाँ | — |
items[].action | string | हाँ | इनमें से एक: stage.added, stage.removed, promoted, received |
items[].stage | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$; null हो सकता है |
items[].mode | string | हाँ | इनमें से एक: copy, move, null; null हो सकता है |
items[].peerRepository | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$; null हो सकता है |
items[].peerArtifactId | string (uuid) | हाँ | null हो सकता है |
items[].actor | string | हाँ | — |
items[].comment | string | हाँ | अधिकतम 1024 वर्ण; null हो सकता है |
items[].occurredAt | string (date-time) | हाँ | — |
next | string | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/promotions" \
-H "Authorization: Bearer $ARKVORY_TOKEN"आर्टिफ़ैक्ट को दूसरी रिपॉज़िटरी में प्रमोट करें
POST /api/v1/repositories/{repository}/artifacts/{id}/promote
एक्सेस: रिपॉज़िटरी अनुमति: artifact.read, content.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
बाइट दोबारा भेजे बिना आर्टिफ़ैक्ट को target में प्रकाशित करता है, वैकल्पिक रूप से stages और comment के साथ; कॉलर को लक्ष्य रिपॉज़िटरी में भी artifact.promote चाहिए। mode copy (डिफ़ॉल्ट) स्रोत को बनाए रखता है; move, जिसके लिए यहाँ भी artifact.promote चाहिए, उसी ट्रांज़ैक्शन में स्रोत को सेवामुक्त (retire) कर देता है, उसके स्टेज साथ ले जाता है और जब स्रोत हटाया न जा सके तो 409 से अस्वीकार किया जाता है। उत्तर प्रति के साथ 201 है; दोहराने पर वही प्रति 200 के साथ मिलती है, और जिस लक्ष्य में यह पैकेज संस्करण पहले से है वह SHA-256 मेल खाने पर वही आर्टिफ़ैक्ट लौटाता है और न मिलने पर 409 version_exists। बिल्ड अटैचमेंट और फ़ाइल पथ साथ नहीं जाते।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
target | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
mode | string | नहीं | इनमें से एक: copy, move |
stages | string का ऐरे | नहीं | अधिकतम 16 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$ |
comment | string | नहीं | अधिकतम 1024 वर्ण; null हो सकता है |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
repository | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
artifactId | string (uuid) | हाँ | — |
sourceRepository | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
sourceArtifactId | string (uuid) | हाँ | — |
mode | string | हाँ | इनमें से एक: copy, move |
created | boolean | हाँ | — |
stages | string का ऐरे | हाँ | अधिकतम 16 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$ |
प्रतिक्रियाएँ: 200, 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/promote" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"target":"<target>"}'स्टेज वाले आर्टिफ़ैक्ट सूचीबद्ध करें
GET HEAD /api/v1/repositories/{repository}/stages
एक्सेस: रिपॉज़िटरी अनुमति: artifact.list; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
रिपॉज़िटरी की स्टेज प्रविष्टियाँ (आर्टिफ़ैक्ट, स्टेज, समय, कर्ता, टिप्पणी) आर्टिफ़ैक्ट और स्टेज के क्रम में सूचीबद्ध करता है, वैकल्पिक रूप से केवल stage, या केवल ids में दिए आर्टिफ़ैक्ट (अल्पविराम से अलग की गई 1–100 ID, उदाहरण के लिए पैकेजों के एक पृष्ठ के स्टेज एक साथ दिखाने के लिए)। प्रत्येक पृष्ठ में limit प्रविष्टियाँ होती हैं (1–100, डिफ़ॉल्ट 100); after में next (<artifactId>/<stage>) देकर आगे बढ़ें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
stage | क्वेरी | string | नहीं | पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$ |
after | क्वेरी | string | नहीं | — |
limit | क्वेरी | string | नहीं | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; At most 100. |
ids | क्वेरी | string | नहीं | अधिकतम 3699 वर्ण; Up to 100 comma-separated artifact ids. |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 100 आइटम |
items[].artifactId | string (uuid) | हाँ | — |
items[].stage | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$ |
items[].promotedAt | string (date-time) | हाँ | — |
items[].actor | string | हाँ | — |
items[].comment | string | हाँ | अधिकतम 1024 वर्ण; null हो सकता है |
next | string | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/stages" \
-H "Authorization: Bearer $ARKVORY_TOKEN"रिपॉज़िटरी का प्रमोशन जर्नल अनुसरण करें
GET HEAD /api/v1/repositories/{repository}/promotions
एक्सेस: रिपॉज़िटरी अनुमति: artifact.list; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
CI/CD के पोल करने के लिए रिपॉज़िटरी के हर आर्टिफ़ैक्ट की स्टेज और प्रमोशन घटनाएँ, सबसे पुरानी पहले, लौटाता है: स्टेज जोड़ा या हटाया गया, दूसरी रिपॉज़िटरी में प्रमोट किया गया, किसी से प्राप्त किया गया। प्रत्येक पृष्ठ में limit घटनाएँ होती हैं (1–100, डिफ़ॉल्ट 50); अंतिम sequence सहेजें और after में next देकर आगे बढ़ें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
after | क्वेरी | string | नहीं | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
limit | क्वेरी | string | नहीं | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; At most 100. |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 100 आइटम |
items[].sequence | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
items[].repository | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
items[].artifactId | string (uuid) | हाँ | — |
items[].action | string | हाँ | इनमें से एक: stage.added, stage.removed, promoted, received |
items[].stage | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$; null हो सकता है |
items[].mode | string | हाँ | इनमें से एक: copy, move, null; null हो सकता है |
items[].peerRepository | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$; null हो सकता है |
items[].peerArtifactId | string (uuid) | हाँ | null हो सकता है |
items[].actor | string | हाँ | — |
items[].comment | string | हाँ | अधिकतम 1024 वर्ण; null हो सकता है |
items[].occurredAt | string (date-time) | हाँ | — |
next | string | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/promotions" \
-H "Authorization: Bearer $ARKVORY_TOKEN"पैकेज संस्करण निर्धारित करें
GET HEAD /api/v1/repositories/{repository}/packages/resolve
एक्सेस: रिपॉज़िटरी अनुमति: package.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
downloadPackageContent के समान नियमों से एक पंजीकृत UPack संस्करण चुनता है और उसे बाइट के बिना लौटाता है: संस्करण, आर्टिफ़ैक्ट ID, SHA-256, आकार, प्रकाशन समय और वर्तमान स्टेज। name आवश्यक है, group डिफ़ॉल्ट रूप से रूट समूह है; सटीक version या SemVer range से चुनें, वैकल्पिक रूप से stage, prerelease=true और order=promoted (इसके लिए stage चाहिए); version और range के बिना यह सबसे ऊँचा स्थिर संस्करण है। कोई मेल न मिलने पर 404; उसी संस्करण पर बने रहने के लिए परिणाम को आर्टिफ़ैक्ट ID से डाउनलोड करें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
group | क्वेरी | string | नहीं | अधिकतम 128 वर्ण |
name | क्वेरी | string | हाँ | 1–128 वर्ण |
version | क्वेरी | string | नहीं | अधिकतम 128 वर्ण; Exact version; excludes range. |
range | क्वेरी | string | नहीं | अधिकतम 256 वर्ण; SemVer range: 1.2.3, ^1.2, ~1.2.3, 1.x, >=1.0.0 <2.0.0, a || b. |
stage | क्वेरी | string | नहीं | पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$; Only versions promoted to this stage. |
prerelease | क्वेरी | string | नहीं | इनमें से एक: true, false; Include prereleases. |
order | क्वेरी | string | नहीं | इनमें से एक: version, promoted; promoted picks the most recently staged version and requires stage. |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
group | string | हाँ | — |
name | string | हाँ | — |
version | string | हाँ | — |
artifactId | string (uuid) | हाँ | — |
sha256 | string | हाँ | SHA-256: 64 लोअरकेस हेक्साडेसिमल अंक |
size | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
publishedAt | string (date-time) | हाँ | — |
stagedAt | string (date-time) | हाँ | null हो सकता है |
stages | string का ऐरे | हाँ | अधिकतम 16 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$ |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/packages/resolve?name=$NAME" \
-H "Authorization: Bearer $ARKVORY_TOKEN"