The 27-year-old woman was walking in the 500 block of Alemany Boulevard at about 12:15 a.m. when a stranger approached, took out a gun and demanded her property, according to police.
The victim put her hands up and the suspect patted her down, taking three keys -- two house keys and a car key, police said.
The victim's dog then bit the suspect in the leg and chased him away. The suspect, described as a male between 17 and 25 years old, was last seen running east on Alemany Boulevard, according to police.
Anyone with information about the robbery is asked to call the Police Department's anonymous tip line at (415) 575-4444 or send a tip by text message to TIP411.