Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub issues bot (@bleatbot) #37

Closed
NotNite opened this issue May 29, 2022 · 18 comments
Closed

GitHub issues bot (@bleatbot) #37

NotNite opened this issue May 29, 2022 · 18 comments

Comments

@NotNite
Copy link
Contributor

NotNite commented May 29, 2022

I've thought of a GitHub bot that would act as issue tooling for us, closing stale issues aand having an FAQ system similar to Franzbot.

I've gone ahead and stolen the name @bleatbot (the wavering cry made by a sheep, goat, or calf.) and will look into automation later.

Some ideas:

  • close stale issues after a long time
  • close issues from old xivlauncher/dalamud versions
  • commands, only usable by the support team
    • maybe with the exception of faq

Some command ideas:

  • @bleatbot faq <topic>
    • AV whitelists, attaching the logs, link to discord?, etc.
  • @bleatbot closeAfter <time>
    • Close the issue if the author doesn't interact with it after the specified time (e.g. 24h)
  • Maybe a lint command if we start linting DIPs?

Any ideas for functionality we'd want?

@NotNite
Copy link
Contributor Author

NotNite commented May 29, 2022

Also, @bleatbot needs a profile picture. Suggest one!

@NotNite
Copy link
Contributor Author

NotNite commented May 30, 2022

It has now occured to me that while I know how to reply to issues, the only way I know how to find issues is to repeatedly scrape an API.

Is there a GitHub Action or some sort of feature in the API that will signal to us whenever we get mentioned in a PR, or is constantly checking just the only good way?

@NotNite
Copy link
Contributor Author

NotNite commented May 30, 2022

Is there a GitHub Action or some sort of feature in the API that will signal to us whenever we get mentioned in a PR, or is constantly checking just the only good way?

A friend in another Discord server has provided me the answer: webhooks!

Webhooks can be assigned organization wide, repo wide, or with a specific GitHub App. I'm not sure which one sounds easier to use (probably repo wide) - I don't particularly want to make a GitHub App, sounds like a lot of work.

The event we want to mainly target is this one.

@philpax
Copy link
Contributor

philpax commented Jun 9, 2022

Just popping in to say I think that this is a good idea and would tie in well with other initiatives, especially around Caprine Operator/DIP17. Can you put together a proper list of features / expected behaviours? Doesn't need to be complete, just enough to get started.

Might also be worth looking over how past GH interactions have gone to see if there's anything we can improve on. Caprine Operator integration for keeping track of plugins / managing approvals would be a great idea.

@NotNite
Copy link
Contributor Author

NotNite commented Jun 9, 2022

I detailed my ideas for Franzbot-styled FAQ pages and a command to auto close issues, but here's some more:

  • Maybe for stale PRs like DalamudPlugins, mention the plugin review committee in case the Caprine Operator fails
  • Auto-checking plugin PRs for matching metadata, similar to how Caprine Operator does it
  • Command to auto-merge DIPs when the review process ends, and have reminders a day before DIPs get merged?
    Since you're active in DIPs a lot, any more ideas how it can help on that front?

@philpax
Copy link
Contributor

philpax commented Jun 9, 2022

Sorry, to be clear, I meant a single list of all of your ideas so that we could start making a DIP out of it.

Command to auto-merge DIPs when the review process ends, and have reminders a day before DIPs get merged? Since you're active in DIPs a lot, any more ideas how it can help on that front?

Onboard with that! Also has overlap with #2 and #30.

@NotNite
Copy link
Contributor Author

NotNite commented Jun 9, 2022

Sorry, to be clear, I meant a single list of all of your ideas so that we could start making a DIP out of it.

Ah, sorry! Well, everything I've thought of so far, in one big list:

  • Franzbot-styled FAQ commands
  • Command to auto-close support issues after 24 hours
  • Tag plugin review committee on stale DalamudPlugins PRs
  • Leave comment if DalamudPlugins PR has an issue (similar to how Caprine Operator does it)
  • Auto merge DIP command, and posting a reminder 24 hours before DIP gets merged for last-minute reviews
  • Some system to send events to the Operator

That should be good enough to start a DIP with - we can revise with more suggestions later.

@karashiiro
Copy link
Contributor

Still waiting for @ayyaruq to finish refactoring my messes before I make new ones, but if this exposes an events API we might be able to have a direct feed from this to the Operator that could be used for additional reports. We could potentially also have the reverse (or both), not sure if that would be as useful, though.

@NotNite
Copy link
Contributor Author

NotNite commented Jun 9, 2022

I'd be fine with having an events API. Bet it'll be fun wrangling that together without being spaghetti, though... not very good at writing clean code.

@NotNite
Copy link
Contributor Author

NotNite commented Jun 9, 2022

Also, any ideas on the profile picture? Who wants to go searching for a photo of a goat we can legally use?

@philpax
Copy link
Contributor

philpax commented Jun 9, 2022

some of these almost work
image

@NotNite
Copy link
Contributor Author

NotNite commented Jun 10, 2022

Big fan of some of those images - but are we allowed to use those? Maybe I can just draw something shitty in mspaint.

@NadyaNayme
Copy link

Copyright law surrounding AI-generates images is a bit of a gray area. Dalle-E Mini doesn't have any statement from the creator(s) but Dall-E 2 does, although even with them providing permission it's still a gray area.

We don’t claim ownership of the content you create with the DALL-E discrete VAE, so it is yours to do with as you please. We only ask that you use the model responsibly and clearly indicate that it was used.

https://www.findlaw.com/legalblogs/technologist/who-owns-the-copyright-for-ai-art/

Personally I follow the U.S Ninth Circuit Court of Appeals ruling - Copyright Act protects the creative work of humans and an AI is distinctly not human.

@Zi-SH
Copy link

Zi-SH commented Jun 10, 2022

It maybe true that AI aren't recognized and that the creator(s) reserve no right, but a lot of these AI images can end up quite similar or heavily sample an image. For that reason it can still be risky.

@NotNite
Copy link
Contributor Author

NotNite commented Jun 11, 2022

Following in the footsteps of the Caprine Operator, I've written a proof-of-concept before actually writing the DIP! https://github.com/NotNite/bleatbot

We've also got a lovely icon on the bot, which settles that issue. I'll probably start work on the DIP later - I'm kind of TypeScript'd out right now.

@NotNite NotNite mentioned this issue Jun 11, 2022
@NotNite
Copy link
Contributor Author

NotNite commented Jun 11, 2022

I've made a PR (see above). Going to go eat lunch and maybe fix it up a bit.

@ayyaruq
Copy link

ayyaruq commented Jun 14, 2022

Still waiting for @ayyaruq to finish refactoring my messes before I make new ones

I completely forgot, derp.

Couple of questions which may be better in the PR:

  • Why not reuse Caprine Operator for this?
  • Given the operator is written in Go (despite not actually being an operator), there's some libraries for GH stuff since a lot of projects have these kinda bots, easy to integrate, I'll link some when I remember
  • Notifications - I think pinging on mention in Discord is kinda unwieldy, just setup proper GH notifications (but then again I missed the one here so ehhh)
  • It reads a lot like there's heavy overlap between GH bot features and Discord features, I'd strongly suggest separating these to avoid overloading the codebase with largely unrelated functions (looking at the FranzBot style FAQ mostly)

@philpax
Copy link
Contributor

philpax commented Aug 19, 2022

Closing in favour of the PR #41

@philpax philpax closed this as completed Aug 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants