Return all releases with octopus client in dot net

When using the octopus client in dot net and using this method:

Octopus.Client.Repositories.IProjectRepository.GetProgression(ProjectResource project)

the method only returns the releases currently on the dashboard and their rollbacks.

Is there a way to get it to return all of the releases currently visible in the “Releases” tab of the project as ReleaseProgressionResources rather than ReleaseResources by using the “GetAllReleases” method.

Hi Adam,

Thank you for contacting Octopus support. Let’s try to solve this.
If you don’t mind, let’s attempt to get what we need via REST API. If it gives us what we need, we can try the same in Octopus.Client.

We have two ways to get the project’s progression.

  • /api/Spaces-{id}/projects/Projects-{id}/progression
  • /api/Spaces-{id}/progression/Projects-{id}

I tested in my sandbox, and it did return all releases that I have for the project. Can you check it on your project if it gives the data you are looking for?

Thank you.
Sergei

Hi Adam,

To clarify - the issue is that repositoryForSpace.Projects.GetProgression returns only a subset of releases and not the complete list. Is that correct?

Thank you.
Sergei

Hi Sergei,

Yes this is correct.

Is there a way to get progression with all available releases rather than whats just on the dashboard?

Thanks,
Adam

Hi @adam.boxer1,

I’m just stepping in for Sergei as he’s currently offline.

Are you able to try the following, please?

$endpoint = New-Object Octopus.Client.OctopusServerEndpoint $octopusURI, $apikey 
$repository = New-Object Octopus.Client.OctopusRepository $endpoint

$projects = $repository.Projects.FindAll()
foreach($project in $projects){
    $releases = $repository.Projects.GetProgression($project).Releases
    foreach($release in $releases){
        if($release.NextDeployments -ne 0){
            $repository.Releases.GetProgression($release.Release)
        }
    }
}

This should provide you with progression information for any release within a project with environment promotion/progression available.

I hope this is what you were looking for! If I’ve missed the mark on this one or it doesn’t fit your use case, please get back in touch.

Kind Regards,

Hi @adam.boxer1,

It seems we have a different output from Release’s GetProgression in Octopus.Client and in REST API. Developers try to keep APIs close, but that is not always possible. Unfortunately, in this particular case, there is no way to get the Octopus.Client.Model.ProgressionResource from the Release.
We can suggest requesting the change on https://octopusdeploy.uservoice.com.

Al alternative way to obtain ReleaseProgression for each release would be to use the REST API. If you decide to go this route, it can be accessed here: /api/Spaces-{id}/projects/Projects-{id}/progression

Thank you.
Sergei