House architecture- How to extrude or move a face along an edge
In 2.8,  create a Custom Orientation from one of the sloping edges of your roof, by selecting the edge before hitting '+' in the header's Transform Orientations dropdown.

Then, GY will constrain translations to the direction of the slope, if the new orientation is in use. (Which it will be, by default, after creation.)

Also, following @AnthoJack's helpful answer here, it might suit your workflow better, (having set your cursor to 'Surface Project' and 'Geometry') to set your standard Transform Orientation to 'Cursor' for longer periods. Then you can effectively set up temporary Custom Orientations from faces of existing geometry by simply dragging the cursor over them.

(In 2.79, it's: Select the edge: hit CtrlAltSpace with 'Use After Creation' checked: use GYY)