dandi / dandisets

730 Dandisets, 807.1 TB total. DataLad super-dataset of all Dandisets from https://github.com/dandisets
10 stars 0 forks source link

Design a "bot" to assist "managing" of the dandisets by authorized users #360

Open yarikoptic opened 10 months ago

yarikoptic commented 10 months ago

DataLad dandisets are not "sources", they are automagically updated by a cron service running on drogon. As such we should not give any write permissions to original authors/owners of the dandisets as known to the DANDI system.

Only DANDI archive has information about which users have write access to the original dandiset, and thus should be capable e.g. to

It will be responsibility of the bot to first verify that the author of the command is among authors of the dandiset to operate on the command.

Such bot service might also help to show/seek confirmation from the authors for some scheduled/mass maintenance tasks etc as we mind stormed with @rly during ODIN, e.g.

Some extra "cron" jobs which might need to be performed but not necessary need to be a part of "bot" I guess:

TODOs (yet to be finalized)

refs:

yarikoptic commented 10 months ago

FWIW https://github.com/dependabot is a great bot/project/resource to checkout .Since it is quite modular and configurable, I even started to wonder if we could build on top of it even if for some jobs...

rly commented 10 months ago

The JOSS editorial-bot https://github.com/openjournals/buffy might also be a good bot/project/resource to check out.

jwodder commented 9 months ago

Preliminary research:


Next step: Search PyPI and elsewhere for pre-existing GitHub App frameworks

jwodder commented 9 months ago

FWIW https://github.com/dependabot is a great bot/project/resource to checkout .Since it is quite modular and configurable, I even started to wonder if we could build on top of it even if for some jobs...

I'm pretty sure that Dependabot's modularity & configurability is all oriented around updating dependencies; e.g., you can add a module for looking up packages in a new package source, but you can't add a module for operating on dandisets. Also, it's written in Ruby, which I don't know and I don't think anyone else on the team knows.

jwodder commented 9 months ago

[Work in Progress]

Features to judge packages on:

Relevant (to varying degrees) Python packages found so far:

GitHub apps written in Python: