HG - Get Changelog

Octopus.Script exported 2016-09-19 by avonwyss belongs to ‘Mercurial’ category.

Generate exact changelog from Mercurial commit history. It is stored in the output variable “Changelog”.

Requirement: each release must have been labeled in the repository as “release-OctopusReleaseNumber” (for instance using VCS labeling feature of TeamCity).

See http://hgbook.red-bean.com/read/customizing-the-output-of-mercurial.html for template format.

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

Repository Path

HgRepository

The Mercurial repository to use for generating the changelog.

The repo path needs to be local to where the step is executed because Mercurial does not support remote log listing.

Template = <li>{date|shortdate} ({date|age} in {branch|escape}): {desc|strip|escape|addbreaks}</li>

Default template generates HTML <li> elements for inclusion in a <ul> (not part of the step output).

Script body

Steps based on this template will execute the following PowerShell script.

If ($OctopusParameters["Octopus.Release.CurrentForEnvironment.Number"]) {
    $prm = @('log',
    	'-r',"ancestors('release-$($OctopusParameters["Octopus.Release.Number"])') - ancestors('release-$($OctopusParameters["Octopus.Release.CurrentForEnvironment.Number"])')",
    	'-T',$Template,
    	'--repository',$HgRepository)
    Write-Host Getting changelog on $prm[6] '[' $prm[2] ']'
    $changelog = & hg $prm
}
Else {
    $changelog = "<li><i>(no changelog available)</i></li>"
}
Write-Verbose $changelog
Set-OctopusVariable -name "Changelog" -value $changelog

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "1f76dc61-c7ec-47a8-bd27-fb135851e9c5",
  "Name": "HG - Get Changelog",
  "Description": "Generate exact changelog from Mercurial commit history. It is stored in the output variable \"Changelog\".\n\nRequirement: each release must have been labeled in the repository as \"release-OctopusReleaseNumber\" (for instance using VCS labeling feature of TeamCity).\n\nSee http://hgbook.red-bean.com/read/customizing-the-output-of-mercurial.html for template format.",
  "Version": 17,
  "ExportedAt": "2016-09-19T18:10:27.463+00:00",
  "ActionType": "Octopus.Script",
  "Author": "avonwyss",
  "Parameters": [
    {
      "Id": "9a308d93-915c-4216-a0a6-cbe8de108064",
      "Name": "HgRepository",
      "Label": "Repository Path",
      "HelpText": "The Mercurial repository to use for generating the changelog.\n\nThe repo path needs to be local to where the step is executed because Mercurial does not support remote log listing.",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "57f225d5-4579-442f-ac3c-725743952f09",
      "Name": "Template",
      "Label": "",
      "HelpText": "Default template generates HTML &lt;li&gt; elements for inclusion in a &lt;ul&gt; (not part of the step output).",
      "DefaultValue": "<li>{date|shortdate} ({date|age} in {branch|escape}): {desc|strip|escape|addbreaks}</li>",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.Syntax": "PowerShell",
    "Octopus.Action.Script.ScriptSource": "Inline",
    "Octopus.Action.RunOnServer": "false",
    "Octopus.Action.Script.ScriptBody": "If ($OctopusParameters[\"Octopus.Release.CurrentForEnvironment.Number\"]) {\n    $prm = @('log',\n    \t'-r',\"ancestors('release-$($OctopusParameters[\"Octopus.Release.Number\"])') - ancestors('release-$($OctopusParameters[\"Octopus.Release.CurrentForEnvironment.Number\"])')\",\n    \t'-T',$Template,\n    \t'--repository',$HgRepository)\n    Write-Host Getting changelog on $prm[6] '[' $prm[2] ']'\n    $changelog = & hg $prm\n}\nElse {\n    $changelog = \"<li><i>(no changelog available)</i></li>\"\n}\nWrite-Verbose $changelog\nSet-OctopusVariable -name \"Changelog\" -value $changelog",
    "Octopus.Action.Script.ScriptFileName": null,
    "Octopus.Action.Package.FeedId": null,
    "Octopus.Action.Package.PackageId": null
  },
  "Category": "Mercurial",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/hg-get-changelog.json",
  "Website": "/step-templates/1f76dc61-c7ec-47a8-bd27-fb135851e9c5",
  "Logo": "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",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Monday, September 19, 2016