Contribution is *not* their revenue account. It may be a revenue account, but not the only revenue account.
As for the JE, a gift in kind (aka non-cash gift) would be either a debit to Contributions/Gifts and a credit to expense or a debit to Contributions/Gifts and a credit to an asset, depending on how the roof fix is handled (for other contributions, could potentially be a credit to a different account). It's early in the morning and my brain may not be functioning right, but I'm pretty sure fixing something is an expense unless it prolongs the life of the asset. So if this fix turned a 30-year roof into a 40-year roof, then it created an asset of 10 more years of roof, but if it just made a 30-year roof quit leaking after 15 years, then it's an expense.
However, you can't donate your time and have it count as a donation on the donor's side of things. Like, I can't go donate 10 hours at the food pantry and say that it's worth $10/hr so I have a $100 donation to report on my taxes. I want to say that the NFP organization can't formally recognize labor as a donation, either, but I could be wrong (like I said, early morning). If someone wanted to be sure it was recognized as a contribution and expense/asset, they'd need to donate money to the organization (say, $1000) and do the work and get paid the same or similar sum. However, if you're paid for the work and it's $1000, you'll have to report self-employment tax on it, so you won't have the whole $1000 to donate back.