- 05 Mar 2024
- 2 Minutes to read
- Print
- DarkLight
- PDF
Repackaging API
- Updated on 05 Mar 2024
- 2 Minutes to read
- Print
- DarkLight
- PDF
⚠ 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.
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 Type | Requirements |
---|---|
System API Keys | Use/Manage Feeds |
Feed API Keys | Add Package Repackage |
Personal API Keys | Associated 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:
Property | Description |
---|---|
feed * | Name of the feed where the target package is located |
group | Group-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 |
comments | Comments to append to repackaging audit history |
toFeed | When 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
Response | Details |
---|---|
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 |