Repackaging API
  • 05 Mar 2024
  • 2 Minutes to read
  • Dark
    Light
  • PDF

Repackaging API

  • Dark
    Light
  • PDF

Article Summary

⚠ The Repackaging API is available in paid and trial ProGet editions, and will raise a 500 in free editions.

The Repackaging API provides the programmatic ability to repackage prerelease packages by posting JSON-encoded or Form-encoded data.

🚀 Quick Example: Repackaging with Curl

This example will repackage myPackage version 4.3.2-rc.1 to 4.3.2 in the feed myFeed, authenticating with the API key abc12345 as JSON-encoded data

curl -X POST -H "Content-Type: application/json" -H "X-ApiKey: abc12345" -d "{\"feed\": \"myFeed\", \"name\": \"myPackage\", \"version\": \"4.3.2-rc.1\", \"newVersion\": \"4.3.2\", \"comments\": \"This package was repackaged by an automated process.\"}" https://proget.corp.local/api/repackaging/repackage

This example will repackage myPackage version 4.3.2-rc.1 to 4.3.2 in the feed myFeed, authenticating with the API key abc12345 as form-encoded data

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -H "X-ApiKey: abc12345" -d "feed=myFeed&packageName=myPackage&version=4.3.2-rc.1&newVersion=4.3.2&comments=This+package+was+repackaged+by+an+automated+process" https://proget.corp.local/api/repackaging/repackage

Authentication and API Keys

Before using this API, you will need to create an API Key with the appropriate permissions.

Access TypeRequirements
System API KeysUse/Manage Feeds
Feed API KeysAdd Package Repackage
Personal API KeysAssociated user must have Feeds: Add Package privilege

This API Key can be included in the posted data as a JSON Property (API_Key) or Form-encoded Value (key). You can pass it as a header (X-ApiKey) or querystring (key). See API Key Usage to learn more.

Repackaging Endpoint

Request Specification

To promote a package, simply POST to the URL with an appropriate API Key and JSON object as the body with the following properties:

PropertyDescription
feed*Name of the feed where the target package is located
groupGroup-portion of the package's name; this is only applicable for Universal Packages
name*Name of the target package
version*Version of the target package
newVersion*Version of the new package to create
commentsComments to append to repackaging audit history
toFeedWhen specified, promotes the package to the specified feed instead of keeping it in feed.

* required property.

Previous versions of ProGet used groupName and packageName instead of group and name; these may still be used, but aren't recommended.

As JSON-encoded data:

POST /api/repackaging/repackage

Content-Type: application/json

{
  "feed": "myFeed",
  "name": "myPackage",
  "version": "4.3.2-rc.1",
  "newVersion": "4.3.2",
  "comments": "This package was repackaged by an automated process."
}

As Form-encoded data:

POST /api/repackaging/repackage

Content-Type: application/x-www-form-urlencoded

feed=myFeed&packageName=myPackage&version=4.3.2-rc.1&newVersion=4.3.2&comments=This+package+was+repackaged+by+an+automated+process

Response Specification

ResponseDetails
200 (Success)creates a new package in the same feed, ortoFeed when specified.
400 (Invalid Input)indicates invalid or missing properties on the package; the body will provide some details as text
403 (Unauthorized API Key)indicates a missing, unknown, or unauthorized API Key
500 (Server Error)indicates an unexpected error; the body will contain the message and stack trace, and this will also be logged

Was this article helpful?