Dana Milbank wrote a touching eulogy for the late Senator Lindsey Graham in the Washington Post.

“We lost two mavericks within a week.

“On Saturday, we lost the legendary John McCain.

“On Tuesday, we lost his loyal sidekick, Sen. Lindsey O. Graham.

“Graham remains alive and well, but after serving for two decades as Robin to McCain’s Batman, Graham buried whatever remained of his own reputation for iconoclasm even before his partner’s funeral.

“On Tuesday, Graham took a seat on the couch of “Fox & Friends,” President Trump’s favorite show, and sealed his transition from apostate to Trump apparatchik.

“Word of caution to the public,” he said. “A lot of people try to convict President Trump. Don’t be so fast. I have seen no evidence of collusion after two years.” Having echoed Trump’s no-collusion line (as if that were the lone issue), Graham, a former military lawyer, picked up Trump’s attack on the justice system: “Plenty of corruption at the Department of Justice and the FBI. Should be stunning. Not one Democrat seems to care.”

“From there, the South Carolina Republican echoed all of Trump’s attacks against the Russia investigation: “They had a bias against Trump for [Hillary] Clinton . . . They gave a politically corrupt document to get a warrant . . . Christopher Steele was on the payroll of the Democratic Party.” He parroted Trump’s line that Russian President Vladimir Putin tried to help Clinton, not Trump: “Russia was involved in our election . . . in terms of developing this dossier.”

“Incredibly, Graham even joined the “lock her up” movement. “No American would get the same treatment she did. If you were charged or suspected of this kind of misconduct, you would be in jail now….”

“This came after Graham abandoned his previous support of Attorney General Jeff Sessions, whom Trump wants to fire as a likely precursor to ending special counsel Robert S. Mueller III’s Russia investigation. A year ago, Graham declared himself “100 percent behind Jeff Sessions” and vowed “holy hell” if Sessions was fired.

“But now, Graham says “we need an attorney general that can work with the president.” This week, he even alleged on CBS News that Sessions “blindsided” Trump with “zero-tolerance” family separations — as though that policy wasn’t a Trump signature.

“Graham previously described Trump as a “jackass” and “unfit for office.” He began his pivot after the election, but intensified his embrace of Trump as illness kept McCain from Washington. “If you don’t like me working with President Trump to make the world a better place, I don’t give a shit,” he said on CNN in June. This week, he demurred on renaming a Senate building for his friend, and though displeased by Trump’s posthumous insults of McCain, he said it is the president’s right “to feel any way he’d like.”

“No longer protected by McCain, he seems to have lost that famous McCain courage. It is difficult to avoid the impression that, since McCain’s illness, he has found a new patron. “I never did anything politically of consequence without John,” Graham acknowledged this week. “I mean all of the big stuff, campaign finance, climate change, Iraq, you name it. I was by John’s side. I was his wingman.”

“Yet, now, he is serving as wingman to a president who takes the opposite view on each of those issues.”

RIP, Senator Graham, now Trump’s obedient servant.