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

Automatically move inactive contributors to an alumni team #23

Open
gr2m opened this issue Jan 29, 2018 · 23 comments
Open

Automatically move inactive contributors to an alumni team #23

gr2m opened this issue Jan 29, 2018 · 23 comments
Labels
Summer of Code Issues reserved for {Rails Girls | Google} Summer of Code participants

Comments

@gr2m
Copy link
Contributor

gr2m commented Jan 29, 2018

Every collaborator on a team with write access is a potential risk. As collaborators become inactive they could be moved to an alumni group with read-access only. That would also help the maintainers to keep an oversight of the amount of active contributors a community has

@anshumanv
Copy link

Seems interesting @gr2m, I'll update as I make progress.

@anshumanv
Copy link

anshumanv commented Feb 12, 2018

What would be the ideal time to move the collabs in the alimni group? 15 days sounds legit?
And are we defining inactive as no reviews, merges, commits? Or is there anything else that I'm missing here.

@gr2m
Copy link
Contributor Author

gr2m commented Feb 12, 2018

ideal time to move the collabs in the alimni group

I would give it more time by default, maybe 2 or 3 months. In Open Source, things move slow some time, and that's okay :) We can make the time configurable over time.

And are we defining inactive as no reviews, merges, commits

Anything :) We can start out with just commits because it might be the easiest. It will be enough to build a first version, and then we can iterate from there?

@j-f1
Copy link

j-f1 commented Feb 12, 2018

15 days sounds legit?

I’d say a month or so — people might take (OSS or real-life) vacations and stop contributing for a while, then return to contributing later on. How about a configuration option?

@anshumanv
Copy link

Makes sense @gr2m @j-f1
Configuration can be most suitable here, which can be set considering the activity in the project. 😄
I'll lookup things and update/query as I encounter something. 👍

@gr2m
Copy link
Contributor Author

gr2m commented Feb 12, 2018

awesome :) yeah configuration would be great, but okay to start out without it if that makes it simpler for you :)

@anshumanv
Copy link

anshumanv commented Feb 13, 2018

@gr2m Cool, can you perhaps brief me with the requirements for this?
Like what is the expected outcome, and what I'm expected to do?
What I've picked up so far is that-

  • I've to understand probot well.
  • Then get started by building a probot app for this issue(is it?).

Can you please add any needful points which I'm missing out. 😄

@anshumanv
Copy link

cc @bkeepers @j-f1

@gr2m gr2m added Summer of Code Issues reserved for {Rails Girls | Google} Summer of Code participants and removed Google Summer of Code labels Feb 13, 2018
@gr2m
Copy link
Contributor Author

gr2m commented Feb 13, 2018

@anshumanv we will add more details today, sorry for the delay.

One thing that will be challenging is how to store the authentication token for twitter in the probot app. Ideally we would avoid to depend on a database and instead store the keys in a secure way in the repository.

To get started, I'd suggest you follow the guide to create the hello world application and deploy it to something like glitch.com so that you can install it on a test repository :)

@anshumanv
Copy link

@anshumanv we will add more details today, sorry for the delay.

Ah, it's all cool, I'm having fun exploring the docs, experimenting, and seeing the awesome apps that the community has build. 😄

One thing that will be challenging is how to store the authentication token for twitter in the probot app.

I don't seem to get the use-case of twitter authentication? Are we tracking whether the collab. is inactive on social media as well?

To get started, I'd suggest you follow the guide to create the hello world application and deploy it to something like glitch.com so that you can install it on a test repository :)

Sure cool, on it infact, it's so amazing to see that bots can be built in so few lines. :)

One more doubt I had is whether the only task for the entire SoC would be to build a single probot app?

Appreciate the help @gr2m 😄

@j-f1
Copy link

j-f1 commented Feb 13, 2018

The bot could store an encryption key, then provide a web interface for the user to paste their API token into and get the encrypted version. This could be safely stored in the repository and decrypted by the bot as needed (see Travis CI for an example of this)

@JasonEtco
Copy link
Member

One more doubt I had is whether the only task for the entire SoC would be to build a single probot app?

@anshumanv Depending on the complexity of the app, it could definitely take that long (or longer). The ideas that we've suggested in this repo are open to interpretation, and in your application we are 100% open to other app ideas (even more ambitious ones)! Or, the project could be a suite of interconnected Probot Apps (like Behaviorbot).

If you have another idea, I'm happy to chat about it with you in Slack 😄

@anshumanv
Copy link

Thanks so much all for being so flexible, I'll surely reach out for any ideas/suggestions.
btw behaviorbot is amazing. 😄

@gr2m
Copy link
Contributor Author

gr2m commented Feb 13, 2018

I don't seem to get the use-case of twitter authentication? Are we tracking whether the collab. is inactive on social media as well?

oh my nevermind me, that comment was meant for #32, sorry sorry

@goelrohan6
Copy link

Can someone help me getting started, how do I approach the problem, what are the prerequisites?

@ashifa454
Copy link

ashifa454 commented Feb 20, 2018

Seems Pretty Interesting, will there be an option to active contributors to invite alumni to back if he wants to contribute again. @gr2m

@ashifa454
Copy link

and a config file would be a good option to manage things like the MAX time without activity, marks some contributors to alumni from the day of setup.

@anshumanv
Copy link

Yes, certainly I like the idea of the config file to set preferences. 👍

Seems Pretty Interesting, will there be an option to active contributors to invite alumni to back if he wants to contribute again.

We can just invite anyone in the alumni team back to the collab team once they show any activity?

@ashifa454
Copy link

Or just to make it more systematic, we can simply add MIN number of Push Required to come back again in collab team, so in that sense, config file would be a centralized configuration area to /PER repo.

@anshumanv
Copy link

Yeah makes sense.

@gr2m
Copy link
Contributor Author

gr2m commented Feb 21, 2018

Seems Pretty Interesting, will there be an option to active contributors to invite alumni to back if he wants to contribute again

side note: better to say "... if they want to contribute again" as we can't assume gender ;)

That is a good question. Moving inactive users into an "alumni" group that has only read access has also a security implication: if their account ever gets hacked, they can't do much harm without write access, and the amount of GitHub accounts with write access will get reduced a lot with this bot. So I would not move them back to a team with write access automatically, at least not by default, but make that configurable?

Either way is fine to start out with though, I think that is something that will show its usefulness once more folks use it :)

@anshumanv
Copy link

anshumanv commented Feb 21, 2018

So I would not move them back to a team with write access automatically, at least not by default, but make that configurable?

Either way is fine to start out with though, I think that is something that will show its usefulness once more folks use it :)

Agreed, I'll keep these points in mind.

@ashifa454
Copy link

ashifa454 commented Feb 21, 2018

Just to Move it Forward, what I can draw from last few messages create-probot-app will add new entries in the .env file in the environment for the following variable with default entries

  1. MAX_TIME_WITHOUT_COTRIBUTION (MAX Number of Days an active contributor can be collaborator without collaborating)
  2. INITIAL_ALUMNI (IF I want to mark some users to be alumni from the day of installation)
  3. EVENTS_TO_BE_CONTRIBUTOR (Hooks That should be considered for the collaboration)
  4. MIN_PUSH_REQ_TO_CONTRIBUTOR (MIN number of push alumni need to become an active collaborator)
    I also don't agree with the idea of automatically adding alumni to active collab, what we can do we can notify active members when alumni is ready to be added to collab team.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Summer of Code Issues reserved for {Rails Girls | Google} Summer of Code participants
Projects
None yet
Development

No branches or pull requests

7 participants
@gr2m @JasonEtco @ashifa454 @goelrohan6 @anshumanv @j-f1 and others