What decides the Releases returned in the Progressions API

I am using the progression API like this:

$progressionInformation  = (Invoke-WebRequest "$octopusBaseURL/api/$spaceId/progression/Projects-1025" -Headers $headers).content | ConvertFrom-Json

This returns a progressions object. Part of that object is a list of Releases. But I can’t seem to figure out what decides which releases are put on the list.

The project in my example has over 150 releases in it. But only 3 are currently deployed to any of my Environments/Tenants.

But the $progressionInformation.Releases has 10 entries in it. And they are not the most recent releases either. 6 of them are recent, the rest are older releases (though one of those old ones is still on one of my tenants.)

It does seem that all the ones that are currently deployed are in the list, but I am not sure if this is just luck, or if it is by design.

So, here is my question:

What is the criteria for which Releases are returned in the list of releases for the Progressions API?

Hi @OctopusSchaff,

Thanks for reaching out and for your question. I’m going to ask internally to see if I can get the logic behind which releases are returned for that particular endpoint.

Would it be possible to use something like ?releaseHistoryCount=# for your use case? For example
curl -X GET "http://localhost/api/Spaces-1/progression/Projects-421?releaseHistoryCount=50" -H "accept: application/json"

I apologize if I am misunderstanding your use case, but please let me know!

Regards,
Garrett

Hi @OctopusSchaff,

I got this back from our engineers, the progression API roughly follows this logic:

  • Most recent two releases per environment per channel
  • Or if multi-tenant, I’ve seen it do two most recent releases per tenant per environment
  • Recent failed deployments

We might have a more elegant solution than the Progression API which is typically used by the dashboard to show releases/deployments. If you don’t mind me asking, what type of information are you trying to pull back from Progression?

Please let me know if you have any more questions as well.

Regards,
Garrett

I am trying to get currently deployed release for an application per environment per tenant.

(I am setting up an automated process where I can redeploy all the currently deployed applications to an alternate Kubernetes cluster.)

I asked about it here: Redeploy all applications in a space - #3 by mark.reeder and was given an example script that uses the Progression API.

1 Like

Hi @OctopusSchaff

I’m just stepping in for Garrett as he is offline as part of our US support team.

Can you let us know if the logic that Garrett pointed out in his bullet points explains the releases you are seeing when you run the API call?

We’re hoping that you can use that to script your solution by knowing how the logic is run. If this doesn’t help, though, let us know, and we’ll try to offer a different option.

Kind Regards
Sean

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.