@@ -499,12 +499,14 @@ func (c *ProjectConverter) toHcl(project octopus.Project, recursive bool, lookup
499
499
terraformResource := terraform.TerraformProject {
500
500
Type : octopusdeployProjectResourceType ,
501
501
Name : projectName ,
502
- ResourceName : resourceName ,
502
+ Count : nil ,
503
503
Id : strutil .InputPointerIfEnabled (c .IncludeIds , & project .Id ),
504
504
SpaceId : strutil .InputIfEnabled (c .IncludeSpaceInPopulation , dependencies .GetResourceDependency ("Spaces" , project .SpaceId )),
505
+ ResourceName : resourceName ,
505
506
AutoCreateRelease : nil ,
506
507
DefaultGuidedFailureMode : project .DefaultGuidedFailureMode ,
507
508
DefaultToSkipIfAlreadyInstalled : project .DefaultToSkipIfAlreadyInstalled ,
509
+ Description : nil ,
508
510
DiscreteChannelRelease : project .DiscreteChannelRelease ,
509
511
IsDisabled : project .IsDisabled ,
510
512
IsVersionControlled : versionControlled ,
@@ -517,7 +519,10 @@ func (c *ProjectConverter) toHcl(project octopus.Project, recursive bool, lookup
517
519
GitLibraryPersistenceSettings : c .convertLibraryGitPersistence (project , projectName , dependencies ),
518
520
GitAnonymousPersistenceSettings : c .convertAnonymousGitPersistence (project , projectName ),
519
521
GitUsernamePasswordPersistenceSettings : c .convertUsernamePasswordGitPersistence (project , projectName ),
522
+ Lifecycle : nil ,
520
523
VersioningStrategy : versioningStrategy ,
524
+ JiraServiceManagementExtensionSettings : c .convertJiraSettings (project ),
525
+ ServicenowExtensionSettings : c .convertServiceNowSettings (project ),
521
526
}
522
527
523
528
// There is no point ignoring changes for stateless exports
@@ -978,6 +983,61 @@ func (c *ProjectConverter) convertAnonymousGitPersistence(project octopus.Projec
978
983
}
979
984
}
980
985
986
+ func (c * ProjectConverter ) convertJiraSettings (project octopus.Project ) * terraform.TerraformProjectJiraServiceManagementExtensionSettings {
987
+ if project .ExtensionSettings == nil {
988
+ return nil
989
+ }
990
+
991
+ jiraExtension := lo .Filter (project .ExtensionSettings , func (item octopus.ExtensionSetting , index int ) bool {
992
+ return item .ExtensionId == "jiraservicemanagement-integration"
993
+ })
994
+
995
+ if len (jiraExtension ) == 0 {
996
+ return nil
997
+ }
998
+
999
+ connectionId := maputil .ValueOrStringDefault (jiraExtension [0 ].Values , "JsmConnectionId" , "" )
1000
+
1001
+ if connectionId == "" {
1002
+ return nil
1003
+ }
1004
+
1005
+ return & terraform.TerraformProjectJiraServiceManagementExtensionSettings {
1006
+ ConnectionId : connectionId ,
1007
+ IsEnabled : maputil .ValueOrBoolDefault (jiraExtension [0 ].Values , "JsmChangeControlled" , false ),
1008
+ ServiceDeskProjectName : maputil .ValueOrStringDefault (jiraExtension [0 ].Values , "ServiceDeskProjectName" , "" ),
1009
+ }
1010
+ }
1011
+
1012
+ func (c * ProjectConverter ) convertServiceNowSettings (project octopus.Project ) * terraform.TerraformProjectServicenowExtensionSettings {
1013
+ if project .ExtensionSettings == nil {
1014
+ return nil
1015
+ }
1016
+
1017
+ snowExtension := lo .Filter (project .ExtensionSettings , func (item octopus.ExtensionSetting , index int ) bool {
1018
+ return item .ExtensionId == "servicenow-integration"
1019
+ })
1020
+
1021
+ if len (snowExtension ) == 0 {
1022
+ return nil
1023
+ }
1024
+
1025
+ connectionId := maputil .ValueOrStringDefault (snowExtension [0 ].Values , "ServiceNowConnectionId" , "" )
1026
+
1027
+ if connectionId == "" {
1028
+ return nil
1029
+ }
1030
+
1031
+ return & terraform.TerraformProjectServicenowExtensionSettings {
1032
+ ConnectionId : connectionId ,
1033
+ IsEnabled : maputil .ValueOrBoolDefault (snowExtension [0 ].Values , "ServiceNowChangeControlled" , false ),
1034
+ // The TF provider exposes a boolean, but the API returns a string with at least 3 possible values.
1035
+ // We can't capture the settings here.
1036
+ IsStateAutomaticallyTransitioned : false ,
1037
+ StandardChangeTemplateName : strutil .NilIfEmpty (maputil .ValueOrStringDefault (snowExtension [0 ].Values , "StandardChangeTemplateName" , "" )),
1038
+ }
1039
+ }
1040
+
981
1041
func (c * ProjectConverter ) convertUsernamePasswordGitPersistence (project octopus.Project , projectName string ) * terraform.TerraformGitUsernamePasswordPersistenceSettings {
982
1042
if project .PersistenceSettings .Credentials .Type != "UsernamePassword" || c .ExcludeCaCProjectSettings {
983
1043
return nil
0 commit comments