Gatto has spent the past two seasons with Astana, but was teammates with Sagan both at Tinkoff in 2016 and at Cannondale in 2014.
More recently, Gatto won the unusual uphill prologue time trial at the 2017 Tour of Austria, beating his Astana teammate Miguel Angel Lopez over the 800m course.
"Bora-Hansgrohe have become one of the biggest teams in cycling, and the way they act is very impressive, and was one of the reasons why I wanted to join them," Gatto said in a press release. "I'm also happy to meet up again with some former teammates there, like Peter and Rafal [Majka].
"For me, this change also means a new challenge, new structures, new staff, but my role remains the same. I'll be there to fully support the team and help them to reach their goals in the upcoming seasons."
In 2017, the former cycle-cross rider had his best season yet, winning stages at the Tour de Luxembourg and the Tour de Wallonie, as well as the Luxembourg time trial championships, ahead of Quick-Step's Bob Jungels.
"After the first talks I had with the team, I immediately had a good feeling about joining them. I like the way they've developed over the past few years to one of the best teams in the world," said Drucker, "so I'm really looking forward to joining the Bora-Hansgrohe family.
"First of all, I'll be there to strengthen the Classics group around Peter, so that will be one of my main goals in the upcoming season. I love these races and I'm very motivated to team up with him and my former teammates Daniel Oss and Marcus Burghardt," continued Drucker, who rode with Oss and Burghardt when they were at BMC.
"On a personal note, I also hope that I can still progress as a rider in this team, and help them to become even more successful in the future."