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

Create tool for removing org members #2052

Open
nikhita opened this issue Jul 21, 2020 · 36 comments
Open

Create tool for removing org members #2052

nikhita opened this issue Jul 21, 2020 · 36 comments
Assignees
Labels
area/github-management Issues or PRs related to GitHub Management subproject help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience.
Milestone

Comments

@nikhita
Copy link
Member

nikhita commented Jul 21, 2020

We intend to start doing a regular cleanup of inactive members (#2013, #2047).

Removing org members means removing them from the config files in this repo. Removing them manually is tedious so we need to create an automated tool that can help us do that.

EDIT(spiffxp): #2458 merged the prior art we have in in bash, but we would rather have a tool written in something more testable, less brittle (e.g. Go)

@nikhita nikhita added the area/github-management Issues or PRs related to GitHub Management subproject label Jul 21, 2020
@nikhita nikhita added this to To Triage in ContribEx: github-management subproject via automation Jul 21, 2020
@nikhita nikhita added the sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. label Jul 21, 2020
@nikhita nikhita moved this from To Triage to Sorted Backlog in ContribEx: github-management subproject Jul 21, 2020
@guineveresaenger
Copy link

/assign

I'd like to take this on!

@zouyee
Copy link
Member

zouyee commented Aug 11, 2020

great

@ameukam
Copy link
Member

ameukam commented Aug 28, 2020

/assign

@guineveresaenger
Copy link

🙌

@ameukam
Copy link
Member

ameukam commented Aug 28, 2020

@nikhita @mrbobbytables How the list of inactive members will be provided to the new tool ?

@mrbobbytables mrbobbytables moved this from Sorted Backlog to In progress in ContribEx: github-management subproject Sep 21, 2020
@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 26, 2020
@zouyee
Copy link
Member

zouyee commented Nov 30, 2020

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 30, 2020
@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 28, 2021
@nikhita
Copy link
Member Author

nikhita commented Feb 28, 2021 via email

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 28, 2021
@dims
Copy link
Member

dims commented Feb 28, 2021

@nikhita is this something we can turn into a GSoC project?

@mrbobbytables
Copy link
Member

@dims this is probably too much of a little project. It's essentially to convert this bash script to go: #2458

@dims
Copy link
Member

dims commented Feb 28, 2021

Ack @mrbobbytables

@spiffxp
Copy link
Member

spiffxp commented Mar 10, 2021

It's essentially to convert this bash script to go: #2458

To me, that sounds like enough for...

/help
/kind cleanup
/priority important-longterm

@k8s-ci-robot
Copy link
Contributor

@spiffxp:
This request has been marked as needing help from a contributor.

Please ensure the request meets the requirements listed here.

If this request no longer meets these requirements, the label can be removed
by commenting with the /remove-help command.

In response to this:

It's essentially to convert this bash script to go: #2458

To me, that sounds like enough for...

/help
/kind cleanup
/priority important-longterm

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot k8s-ci-robot added kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. labels Mar 10, 2021
@k8s-ci-robot k8s-ci-robot modified the milestones: v1.22, v1.23 Aug 17, 2021
@pacoxu
Copy link
Member

pacoxu commented Sep 9, 2021

This is only about how to remove member by a script. But how to provide the list of inactive members?

The docs only say that we can check inactive members on devstats.cncf.io. But there is no simple query for that.

I was reminded to check inactive members per kubernetes/kubernetes#104848 (comment)

@mkumatag
Copy link
Member

devstats.cncf.io

I see devstats give us the list of contributors based on the period like last 1year, 2 year etc.. based on the time limit we can get that list and negate with the total list to find the list of members we need to remove.

@mrbobbytables
Copy link
Member

What we've done in the past is pull the stats for each release cycle which gives us an explicit period of time to track contributions, so if a person has not done anything in the past 5 releases (20 months now that releases are 4 months), we can safely remove.

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 28, 2021
@zouyee
Copy link
Member

zouyee commented Jan 7, 2022

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 7, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Apr 7, 2022
@ameukam
Copy link
Member

ameukam commented Apr 7, 2022

/remove-lifecycle stale
This is still needed.
/milestone v1.25

@k8s-ci-robot
Copy link
Contributor

@ameukam: The provided milestone is not valid for this repository. Milestones in this repository: [v1.21, v1.22, v1.23]

Use /milestone clear to clear the milestone.

In response to this:

/remove-lifecycle stale
This is still needed.
/milestone v1.25

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Apr 7, 2022
@ameukam ameukam modified the milestones: v1.23, v1.25 Apr 7, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 6, 2022
@palnabarun
Copy link
Member

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 28, 2022
@nikhita
Copy link
Member Author

nikhita commented Oct 11, 2022 via email

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Mark this PR as fresh with /remove-lifecycle stale
  • Close this PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 8, 2023
@nikhita
Copy link
Member Author

nikhita commented Feb 8, 2023 via email

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 8, 2023
@ezzoueidi
Copy link
Contributor

I can help with this. Looks like we need to add a function RemoveInactiveMembers in korg.go. We can fetch the needed list of inactive members from devstat API.

Then to keep this automated, we can define a periodic prow job that runs every 2 years or so.

What do you think folks? I don't want to submit a PR right away maybe someone has been working on that.

@blaisep
Copy link

blaisep commented Mar 8, 2023

I wanted to offer to adapt a github action that some of us built over in:
https://github.com/cucumber/action-retire-inactive-contributors/actions/runs/4361276398/jobs/7625018582

The description of the features is in:
https://github.com/cucumber/action-retire-inactive-contributors/tree/main/features

and a general diagram is at:
https://github.com/cucumber/action-retire-inactive-contributors#now-as-a-github-action

@Priyankasaggu11929
Copy link
Member

Ppart of the requested functionality was added recently in (thanks @palnabarun):

from: #2052 (comment)

Then to keep this automated, we can define a periodic prow job that runs every 2 years or so.

@palnabarun, is this the only part left for implementation here?

@palnabarun
Copy link
Member

I don't think we should run a Prow job for doing the audit. A lot of actions done in the process require human knowledge and intervention.

@Priyankasaggu11929
Copy link
Member

I don't think we should run a Prow job for doing the audit. A lot of actions done in the process require human knowledge and intervention.

I was thinking about having a Prow job, for just opening an issue with a list of inactive org members per year.

And then GH admins do the manual process for reviewing the list & actual removal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/github-management Issues or PRs related to GitHub Management subproject help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience.
Development

Successfully merging a pull request may close this issue.