@@ -437,9 +437,11 @@ def create_activities_from_commit(
437437 Args:
438438 remote: The remote repository URL
439439 commit: The commit dictionary containing commit data
440+ segment_id: Segment identifier
441+ integration_id: Integration identifier
440442
441443 Returns:
442- List of activity dictionaries
444+ Tuple of (activities_db, activities_queue) lists
443445 """
444446 activities_db = []
445447 activities_queue = []
@@ -497,6 +499,40 @@ def create_activities_from_commit(
497499 activities_db .append (activity_db )
498500 activities_queue .append (activity_kafka )
499501
502+ # Process extracted activities from commit message
503+ extracted_activities = CommitService .extract_activities (commit ["message" ])
504+ for extracted_activity in extracted_activities :
505+ activity_type , member_data = list (extracted_activity .items ())[0 ]
506+
507+ # Convert activity type to lowercase and add "-commit" suffix
508+ # This matches the legacy behavior: "signed-off-by" -> "signed-off-commit"
509+ activity_type = activity_type .lower ().replace ("-by" , "" ) + "-commit"
510+
511+ member = {
512+ "username" : member_data ["email" ],
513+ "displayName" : member_data ["name" ],
514+ "emails" : [member_data ["email" ]],
515+ }
516+
517+ # Generate unique source ID for extracted activity
518+ source_id = hashlib .sha1 (
519+ (commit_hash + activity_type + member_data ["email" ]).encode ("utf-8" )
520+ ).hexdigest ()
521+ activity = CommitService .create_activity (
522+ remote = remote ,
523+ commit = commit ,
524+ activity_type = activity_type ,
525+ member = member ,
526+ source_id = source_id ,
527+ source_parent_id = commit_hash ,
528+ segment_id = segment_id ,
529+ )
530+ activity_db , activity_kafka = CommitService .prepare_activity_for_db_and_queue (
531+ activity , segment_id , integration_id
532+ )
533+ activities_db .append (activity_db )
534+ activities_queue .append (activity_kafka )
535+
500536 return activities_db , activities_queue
501537
502538 @staticmethod
0 commit comments