01 - Preheat the oven to 350°F. Lightly grease a donut pan to prevent sticking.
02 - In a large bowl, whisk together all-purpose flour, cocoa powder, granulated sugar, brown sugar, baking powder, baking soda, and salt until evenly mixed.
03 - In a separate bowl, whisk the eggs, whole milk, vegetable oil, vanilla extract, and sour cream until the mixture is smooth and uniform.
04 - Add the wet mixture to the dry ingredients and stir gently until just combined, taking care not to overmix to maintain a tender texture.
05 - Transfer the batter to a piping bag or resealable plastic bag with a corner snipped. Pipe the batter into each donut cavity, filling about two-thirds full.
06 - Bake for 12 to 15 minutes, or until a toothpick inserted into the center comes out clean, indicating doneness.
07 - Allow the donuts to cool in the pan for 5 minutes before transferring them to a wire rack to cool completely.
08 - Whisk together powdered sugar, milk, vanilla extract, and cocoa powder (if making chocolate glaze) until smooth and glossy.
09 - Dip the cooled donut tops into the glaze and return them to the wire rack. Let the glaze set for 10 to 15 minutes before serving.