@@ -41,6 +41,10 @@ const (
4141 ConfluenceDataSource = "confluence"
4242 // ConfluenceDefaultStream - Stream To Publish confluence
4343 ConfluenceDefaultStream = "PUT-S3-confluence"
44+ // ConfluenceAddHistoryCreatedByRole - should we add contributor for history->createdBy page version edit?
45+ ConfluenceAddHistoryCreatedByRole = false
46+ // ConfluenceAddHistoryLastUpdatedByRole - should we add contributor for history->lastUpdatedBy page version edit?
47+ ConfluenceAddHistoryLastUpdatedByRole = false
4448)
4549
4650var (
@@ -865,19 +869,23 @@ func (j *DSConfluence) EnrichItem(ctx *shared.Ctx, item map[string]interface{})
865869 avatar , _ := iAvatar .(string )
866870 rich ["avatar" ] = j .URL + avatar
867871 }
868- iAvatar , ok = shared .Dig (page , []string {"history" , "createdBy" , "profilePicture" , "path" }, false , true )
869- if ok {
870- avatar , _ := iAvatar .(string )
871- rich ["created_by_avatar" ] = j .URL + avatar
872+ rich ["by_name" ], rich ["by_username" ], rich ["by_email" ] = j .GetRoleIdentity (item )
873+ if ConfluenceAddHistoryCreatedByRole {
874+ iAvatar , ok = shared .Dig (page , []string {"history" , "createdBy" , "profilePicture" , "path" }, false , true )
875+ if ok {
876+ avatar , _ := iAvatar .(string )
877+ rich ["created_by_avatar" ] = j .URL + avatar
878+ }
879+ rich ["created_by_name" ], rich ["created_by_username" ], rich ["created_by_email" ] = j .GetCreatedRoleIdentity (ctx , item )
872880 }
873- iAvatar , ok = shared .Dig (page , []string {"history" , "lastUpdated" , "by" , "profilePicture" , "path" }, false , true )
874- if ok {
875- avatar , _ := iAvatar .(string )
876- rich ["updated_by_avatar" ] = j .URL + avatar
881+ if ConfluenceAddHistoryLastUpdatedByRole {
882+ iAvatar , ok = shared .Dig (page , []string {"history" , "lastUpdated" , "by" , "profilePicture" , "path" }, false , true )
883+ if ok {
884+ avatar , _ := iAvatar .(string )
885+ rich ["updated_by_avatar" ] = j .URL + avatar
886+ }
887+ rich ["updated_by_name" ], rich ["updated_by_username" ], rich ["updated_by_email" ] = j .GetLastUpdatedRoleIdentity (ctx , item )
877888 }
878- rich ["by_name" ], rich ["by_username" ], rich ["by_email" ] = j .GetRoleIdentity (item )
879- rich ["created_by_name" ], rich ["created_by_username" ], rich ["created_by_email" ] = j .GetCreatedRoleIdentity (ctx , item )
880- rich ["updated_by_name" ], rich ["updated_by_username" ], rich ["updated_by_email" ] = j .GetLastUpdatedRoleIdentity (ctx , item )
881889 // From shared
882890 rich ["metadata__enriched_on" ] = time .Now ()
883891 // rich[ProjectSlug] = ctx.ProjectSlug
@@ -1175,59 +1183,63 @@ func (j *DSConfluence) GetModelData(ctx *shared.Ctx, docs []interface{}) (data m
11751183 },
11761184 },
11771185 }
1178- name , _ = doc ["created_by_name" ].(string )
1179- username , _ = doc ["created_by_username" ].(string )
1180- email , _ = doc ["created_by_email" ].(string )
1181- if name != "" || username != "" || email != "" {
1182- avatar , _ = doc ["created_by_avatar" ].(string )
1183- // No identity data postprocessing in V2
1184- // name, username = shared.PostprocessNameUsername(name, username, email)
1185- userID , err = user .GenerateIdentity (& source , & email , & name , & username )
1186- if err != nil {
1187- shared .Printf ("GenerateIdentity(%s,%s,%s,%s): %+v for %+v" , source , email , name , username , err , doc )
1188- return
1189- }
1190- contributor := insights.Contributor {
1191- Role : insights .AuthorRole ,
1192- Weight : 1.0 ,
1193- Identity : user.UserIdentityObjectBase {
1194- ID : userID ,
1195- Email : email ,
1196- IsVerified : false ,
1197- Name : name ,
1198- Username : username ,
1199- Source : ConfluenceDataSource ,
1200- Avatar : avatar ,
1201- },
1202- }
1203- contributors = append (contributors , contributor )
1204- }
1205- name , _ = doc ["updated_by_name" ].(string )
1206- username , _ = doc ["updated_by_username" ].(string )
1207- email , _ = doc ["updated_by_email" ].(string )
1208- if name != "" || username != "" || email != "" {
1209- avatar , _ = doc ["updated_by_avatar" ].(string )
1210- // No identity data postprocessing in V2
1211- // name, username = shared.PostprocessNameUsername(name, username, email)
1212- userID , err = user .GenerateIdentity (& source , & email , & name , & username )
1213- if err != nil {
1214- shared .Printf ("GenerateIdentity(%s,%s,%s,%s): %+v for %+v" , source , email , name , username , err , doc )
1215- return
1186+ if ConfluenceAddHistoryCreatedByRole {
1187+ name , _ = doc ["created_by_name" ].(string )
1188+ username , _ = doc ["created_by_username" ].(string )
1189+ email , _ = doc ["created_by_email" ].(string )
1190+ if name != "" || username != "" || email != "" {
1191+ avatar , _ = doc ["created_by_avatar" ].(string )
1192+ // No identity data postprocessing in V2
1193+ // name, username = shared.PostprocessNameUsername(name, username, email)
1194+ userID , err = user .GenerateIdentity (& source , & email , & name , & username )
1195+ if err != nil {
1196+ shared .Printf ("GenerateIdentity(%s,%s,%s,%s): %+v for %+v" , source , email , name , username , err , doc )
1197+ return
1198+ }
1199+ contributor := insights.Contributor {
1200+ Role : insights .AuthorRole ,
1201+ Weight : 1.0 ,
1202+ Identity : user.UserIdentityObjectBase {
1203+ ID : userID ,
1204+ Email : email ,
1205+ IsVerified : false ,
1206+ Name : name ,
1207+ Username : username ,
1208+ Source : ConfluenceDataSource ,
1209+ Avatar : avatar ,
1210+ },
1211+ }
1212+ contributors = append (contributors , contributor )
12161213 }
1217- contributor := insights.Contributor {
1218- Role : insights .AuthorRole ,
1219- Weight : 1.0 ,
1220- Identity : user.UserIdentityObjectBase {
1221- ID : userID ,
1222- Email : email ,
1223- IsVerified : false ,
1224- Name : name ,
1225- Username : username ,
1226- Source : ConfluenceDataSource ,
1227- Avatar : avatar ,
1228- },
1214+ }
1215+ if ConfluenceAddHistoryLastUpdatedByRole {
1216+ name , _ = doc ["updated_by_name" ].(string )
1217+ username , _ = doc ["updated_by_username" ].(string )
1218+ email , _ = doc ["updated_by_email" ].(string )
1219+ if name != "" || username != "" || email != "" {
1220+ avatar , _ = doc ["updated_by_avatar" ].(string )
1221+ // No identity data postprocessing in V2
1222+ // name, username = shared.PostprocessNameUsername(name, username, email)
1223+ userID , err = user .GenerateIdentity (& source , & email , & name , & username )
1224+ if err != nil {
1225+ shared .Printf ("GenerateIdentity(%s,%s,%s,%s): %+v for %+v" , source , email , name , username , err , doc )
1226+ return
1227+ }
1228+ contributor := insights.Contributor {
1229+ Role : insights .AuthorRole ,
1230+ Weight : 1.0 ,
1231+ Identity : user.UserIdentityObjectBase {
1232+ ID : userID ,
1233+ Email : email ,
1234+ IsVerified : false ,
1235+ Name : name ,
1236+ Username : username ,
1237+ Source : ConfluenceDataSource ,
1238+ Avatar : avatar ,
1239+ },
1240+ }
1241+ contributors = append (contributors , contributor )
12291242 }
1230- contributors = append (contributors , contributor )
12311243 }
12321244 confluenceContentID , err = insightsConf .GenerateConfluenceContentID (j .URL , nonEmptySpaceID , string (contentType ), entityID )
12331245 if err != nil {
0 commit comments