مرفقات البناء
السجلات والتقارير والملفات الأخرى المرفقة بمُخرَج، مع محفوظاتها.
عمليات هذه المجموعة مع قاعدة الوصول وقاعدة إعادة المحاولة والمعلمات والاستجابات. يحمل كل طلب مفتاحًا: Authorization: Bearer <key> (راجع «المصادقة»).
العمليات
الحصول على مرفقات نسخة بناء
GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/attachments
الوصول: إذن المستودع: annotation.read; مفاتيح الملفات: read · إعادة المحاولة: آمن للتكرار (قراءة)
يعيد مراجعة المرفقات الحالية لمُخرَج: حتى 32 مدخلًا، يسمّي كل منها مُخرَجًا منشورًا آخر في المستودع مع name وkind (manifest أو sbom أو signature أو report أو file) وdescription، إضافةً إلى الفاعل ووقت التغيير. المراجعة 0 بلا عناصر تعني أن شيئًا لم يُرفق قط. نزّل الملف المرفق بـ artifactId الخاص به.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
repository | المسار | string | نعم | يطابق النمط ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | المسار | string (uuid) | نعم | — |
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
revision | integer | نعم | 0–2147483647 |
items | مصفوفة من object | نعم | عدد العناصر: 32 كحد أقصى |
items[].name | string | نعم | عدد الأحرف: 1–240 |
items[].kind | string | نعم | إحدى القيم: manifest, sbom, signature, report, file |
items[].artifactId | string (uuid) | نعم | — |
items[].description | string | نعم | عدد الأحرف: 512 كحد أقصى |
actor | string | نعم | يمكن أن يكون null |
createdAt | string (date-time) | نعم | يمكن أن يكون null |
الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/attachments" \
-H "Authorization: Bearer $ARKVORY_TOKEN"استبدال مرفقات نسخة بناء
PUT /api/v1/repositories/{repository}/artifacts/{id}/attachments
الوصول: إذن المستودع: annotation.write, artifact.read; مفاتيح الملفات: read, write · إعادة المحاولة: لا تكرّره إلا مع المراجعة المتوقعة (compare-and-swap)
يستبدل قائمة مرفقات المُخرَج كلها (حتى 32 مدخلًا؛ وقائمة فارغة تزيلها جميعًا) ويعيد المراجعة الجديدة. يجب أن يكون كل هدف مُخرَجًا آخر منشورًا بالفعل في المستودع نفسه (ارفعه أولًا)، والأسماء فريدة دون مراعاة حالة الأحرف، وللأوصاف حتى 512 حرفًا. يجب أن تكون expectedRevision هي المراجعة الحالية (0 للقائمة الأولى)، وإلا كانت النتيجة 409 revision_mismatch؛ وتبقى المُخرَجات المذكورة في أي مراجعة محمية من الحذف.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
repository | المسار | string | نعم | يطابق النمط ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | المسار | string (uuid) | نعم | — |
نص الطلب (application/json)
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
expectedRevision | integer | نعم | 0–2147483646 |
items | مصفوفة من object | نعم | عدد العناصر: 32 كحد أقصى |
items[].name | string | نعم | عدد الأحرف: 1–240 |
items[].kind | string | نعم | إحدى القيم: manifest, sbom, signature, report, file |
items[].artifactId | string (uuid) | نعم | — |
items[].description | string | نعم | عدد الأحرف: 512 كحد أقصى |
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
revision | integer | نعم | 0–2147483647 |
items | مصفوفة من object | نعم | عدد العناصر: 32 كحد أقصى |
items[].name | string | نعم | عدد الأحرف: 1–240 |
items[].kind | string | نعم | إحدى القيم: manifest, sbom, signature, report, file |
items[].artifactId | string (uuid) | نعم | — |
items[].description | string | نعم | عدد الأحرف: 512 كحد أقصى |
actor | string | نعم | يمكن أن يكون null |
createdAt | string (date-time) | نعم | يمكن أن يكون null |
الاستجابات: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
مثال
curl -X PUT "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/attachments" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0,"items":[]}'عرض سجل مرفقات نسخة بناء
GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/attachments/history
الوصول: إذن المستودع: annotation.read; مفاتيح الملفات: read · إعادة المحاولة: آمن للتكرار (قراءة)
يعيد مراجعات المرفقات السابقة والحالية لمُخرَج، بدءًا من الأحدث، 20 في الصفحة، لكل منها مدخلاتها والفاعل والوقت؛ وتابع بضبط before على قيمة next. تبقى المُخرَجات المرفقة في كل مراجعة قابلة للتنزيل لأنها محمية من الحذف.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
repository | المسار | string | نعم | يطابق النمط ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | المسار | string (uuid) | نعم | — |
before | الاستعلام | integer | لا | 1–2147483647 |
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
items | مصفوفة من object | نعم | عدد العناصر: 20 كحد أقصى |
items[].revision | integer | نعم | 0–2147483647 |
items[].items | مصفوفة من object | نعم | عدد العناصر: 32 كحد أقصى |
items[].items[].name | string | نعم | عدد الأحرف: 1–240 |
items[].items[].kind | string | نعم | إحدى القيم: manifest, sbom, signature, report, file |
items[].items[].artifactId | string (uuid) | نعم | — |
items[].items[].description | string | نعم | عدد الأحرف: 512 كحد أقصى |
items[].actor | string | نعم | يمكن أن يكون null |
items[].createdAt | string (date-time) | نعم | يمكن أن يكون null |
next | integer | نعم | 1–2147483647; يمكن أن يكون null |
الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/attachments/history" \
-H "Authorization: Bearer $ARKVORY_TOKEN"