alexellis / derek

Reduce maintainer fatigue by automating GitHub
https://github.com/alexellis/derek/blob/master/USER_GUIDE.md
MIT License
806 stars 72 forks source link

Help topics for Derek #109

Closed alexellis closed 5 years ago

alexellis commented 5 years ago

Expected Behaviour

There are often behaviors demonstrated by new contributors or specific questions to which we need to answer in almost the same, verbatim way:

Current Behaviour

Mixed results, repetition for maintainers and contributors.

Possible Solution

A command like: Derek topic: sign-off / Derek help topic: slack

Automating the sign-off message could be spammy, especially if someone has a number of commits and the message is sent each time. So rather than automatic, hands-off - a "semi-automatic" way of expanding snippets would be ideal.

We could keep these in .DEREK.yml such as:

topics:
  name: slack-join
  alias:
   - slack
  message: |
  Thank for your interest in OpenFaaS. If you'd like to continue the discussion
  or join our regular Zoom meetings, then please sign-up at https:// .... 

Derek topic: slack

burtonr commented 5 years ago

So the command name and resulting message would then be kept in the .derek.yml file. Sounds like a good way to keep this configurable!

I think I would prefer the command to be derek help as it's more of a "help this person" kind of command, rather than a topic. Plus topic could be confused with the Github version of that name descibed here

Should there be any limit to the name or alias?

How would this handle the markdown syntax? Would we just post the message as-is to the comment? Could that lead to any kind of problems? I suppose that's more of an issue for the owner of the derek file than of derek itself...

@rgee0 any thoughts? I was thinking of getting started on this soon

alexellis commented 5 years ago

Another way to talk about the feature could be as "snippets" or "expanding" a message?

rgee0 commented 5 years ago

My first thought was Derek explain: has a natural flow to the command. Derek explain: signoff, Derek explain: slack, Derek explain: rebase and so on.

olljanat commented 5 years ago

...and then lazy curator joins to the conversation...

There are often behaviors demonstrated by new contributors or specific questions to which we need to answer in almost the same, verbatim way:

IMO, humans should not spent time for tasks which computers are able to do. Lot of good examples of tasks which computers would be able to do are on moby/moby#35490

  • Join Slack here to chat more https://...

https://github.com/apps/welcome

  • Sign off your single commit using this command
  • Sign off those 5 commits using this command

Poule is already looking giving instructions about non-signed commit on https://github.com/icecrime/poule/blob/ef5ff790149fde384d0748786c6d785ab9779ae0/src/poule/operations/catalog/dco-check.go#L175-L198

Second one can be fixed by updating it.

  • Oh you're doing performance testing? You can't do that in a VM on your Mac, try this docs page: https://
  • CI is broken, please check the logs
  • This needs a rebase before it can be merged

I guess that some bot would be able to handle these too?

alexellis commented 5 years ago

/add label: help wanted

alexellis commented 5 years ago

I would like to see someone start on this for the following two use-cases:

Join Slack snippet Closing issue, but keep commenting snippet Fill in the whole issue template snippet

Alex

alexellis commented 5 years ago

Derek add label: good first issue

martindekov commented 5 years ago

I am interested in doing this. Is anyone working at it ATM?

alexellis commented 5 years ago

No, you can take it.

martindekov commented 5 years ago

Derek assign: me

martindekov commented 5 years ago

Hey, so I was thinking about whether this should be accessible to Issues and PRs or only to Issues? I assumed this is only for Issues as reading the Issue description, but then I saw sign-off and rebase topics which made me think if it should cover the Pull Request as well?

Nevermind, forgot that the comment hook is applicable to both Issues and Pull Requests, so it works for both now.

alexellis commented 5 years ago

Hi Martin,

Thank you for your question.

I think this would apply equally to both.

Alex

martindekov commented 5 years ago

Thanks for pointing this out Alex.

The syntax is funky I added documentation in the PR to explain how the | thing works for multiple lines, not sure if it is very UX friendly, but still. I think this is a weak spot, thats why I extended the part which handles error, to actually report the error in case there is parsing error due to misaligned message pairs

alexellis commented 5 years ago

@martindekov suggested "Derek message". I'm happy to use and think I prefer Derek message and Derek msg in place of my original suggestion of topic.

In the YAML file let's define messages in the following format:

messages:
  - name: slack
    value: Please join us on Slack

There does not need to a be a new "feature" for this, but it should be documented under a heading of "messages" in the USER_GUIDE.md - this is available for use by default if commenting is enabled.