I didn't say "he may be bad but those guys are worse", I'm saying he ISN'T bad. I'm saying he did the best he could given the situation he was in. Having a top secret clearance isn't something to be taken lightly. People in those positions don't get to go home and tell their wives what they did at work that day or warn people of a possible upcoming threat. Reyes swore an oath to Starfleet which included following the orders of his superiors. He couldn't divulge information because he was under orders not to like a good soldier.
I imagine many soldiers who read Vanguard would say Reyes is a bad guy for subsequently leaking information to the press and that he was a model soldier for keeping state secrets secret. He didn't face a court martial for letting innocents die, he faced the justice system for warning people about the truth. At his court martial, Reyes said that lives were more important than secrets which is why he decided to warn people.
Starfleet chose to lock him up for the rest of his life. They then lowered that sentence to house arrest on a planet in the ass end of space as a result of his help in stealing information from Ganz, which saved lives. I don't think Reyes got off too easy, nor do I think he did wrong by the colonists; he warned them the best he could under law.
Even if his vesper ex could tell if he was telling the truth if he told her the whole truth, would she have listened? She could tell that Reyes was worried and thought what they were doing was dangerous. Would it honestly have helped if she knew of the Shedai? She was going to go even with the real threat of the klingons who would have killed her if the Shedai didn't beat them to the punch.
In a similar vein, look at Jasmine Chodhury (whose name I just butchered). In Destiny, when she found out the Borg were heading for Deneva where her family was, she called her hushand to warn him to leave BUT she wouldn't tell him WHY was because the Borg were coming. He had the good sense to follow her direction even though his wife couldn't give him specifics.
The difference is that the people in Destiny were already a target and there weren't enough ships to save everyone. In Vanguard, the colonists weren't on the planet yet. They weren't yet in danger. Reyes allowed them to go into a dangerous situation without letting them know that the situation was dangerous. He danced around it but eventually decided that following orders was more important than their lives.
He used them as human shields only, instead of protecting solders he used them to protect secrets.
Also, "I was only following orders" hasn't been a proper defense for years. We do not give the military carte blanche to do whatever they like simply because someone up the chain of command gave them an order. A general may order his troops to kill all civilans in a village but they solders are not required to follow it. It must be a lawful, legitimate order.