Hacker News new | ask | show | jobs
by BugsJustFindMe 3026 days ago
I think that the author is taking away the wrong lesson, because I think they started with some wrong ideas about communication. If you read the GitHub ToS, the relevant policy statement says "excessive automated bulk activity" not just "automated bulk activity". I bet someone complained about them, and I think it happened because they thought it would be bad to make the bot act like a person.

If your bot has output, always make your bot act like a person. That means messaging, and that means timing. Even in the best case, if your bot uses few resources and always perfectly does the right thing, people don't like bots.

> There are four very important things that any automated message needs to do in order to help avoid aggravating people: Be Accurate and Useful, Be Honest/Open about being a bot, Have a mechanism for feedback, Be Friendly

No. God no. There are two important things that you need in a PR: Don't act entitled (op did a great job there) and don't waste my time (op failed hard at this). Everything else is bad. Telling someone that your pull request is coming from a bot only hurts your goal. In the absolute best case, they treat your PR like any other. In many cases, though, knowing that a message was automated will get you instantly reported for spamming regardless of how helpful you were.

> Automated messages should describe themselves as such.

This is off topic and therefore violates the "don't waste my time" principle. It also has a tendency to engage the gag reflex.

> It should be the opening line.

Having multiple lines for something so small violates the "don't waste my time" principle. And definitely don't start your message with something that is off topic.

> announcing it as automated helps explain why they are receiving the pull request

They are receiving the pull request because something is broken and you are fixing it for them.

> Have a mechanism for feedback

They can put feedback on the PR. This violates the "don't waste my time" principle.

> I ended up settling on the following message for the pull requests:...

Holy crapballs that's verbose. This definitely violates the "don't waste my time" principle. "Fix broken badge by pointing to working URL foo [see: bug_report_link]". Boom. Done. It's easy to read, easy to understand, and easy to approve.

> Note that the last paragraph is only included in the message if the README includes the “download count” badges. I debated working out a system to delete these badges automatically

You should have either skipped them or maybe filed an issue instead. "The download count badge in README is broken because the foo API no longer exists". Not a whole paragraph.

> Do not make automatic unsolicited pull requests.

Most pull requests are unsolicited, and GitHub has an automation API for pull requests, and their ToS doesn't prohibit unsolicited automation, just "excessive" such, so this is probably the wrong takeaway.