A grand jury on Tuesday indicted a Portland man for his alleged involvement in a June 29 protest downtown that turned violent. He is scheduled to be arraigned Wednesday.

Gage Halupowski, 23, faces four criminal charges — second-degree assault, unlawful use of a weapon, attempted assault of a public safety officer and interfering with a peace officer.

The protest was one of several in Portland on June 29 as left and right-wing demonstrators held rival gatherings downtown, halting traffic and public transit for much of the afternoon. Police declared a civil disturbance and unlawful assembly a little after 3 p.m., and the crowd dispersed before the afternoon was over. Medics treated eight people for injuries, including three police officers. Conservative writer Andy Ngo was one of the people injured, and he appeared to be attacked by antifa members.

A probable cause affidavit says Halupowski was one of many protestors involved in a fight at Pioneer Courthouse Square. In the affidavit, a Portland police officer states that several people in black clothes and masks were chasing a man, and then kicked, punched and hit him with batons after he fell to the ground. The officer said he saw Halupowski run up behind Adam Kelly, a man who had tried to stop the group from beating the other man, and struck him on top of the head with an expandable baton. The report also states that when another Portland police officer attempted to arrest Halupowski, he punched her in the arm and then ran away before being arrested.

Two others were charged with harassment and disorderly conduct at the June 29 protests, and both have court dates set for Aug. 9. James Stocks, 20, faces four counts of harassment, and is suspected of throwing a milkshake at a group of people. Maria Dehart, 22, was charged with one count of harassment and one of second-degree disorderly conduct, for allegedly throwing a water bottle at a man who was recording the protest.

—Jayati Ramakrishnan; 503-221-4320; jramakrishnan@oregonian.com; @JRamakrishnanOR

Visit subscription.oregonlive.com/newsletters to get Oregonian/OregonLive journalism delivered to your email inbox.