From ea6114a5d94a41b9a991aa4f137fcdbba022a0a0 Mon Sep 17 00:00:00 2001 From: Ruben Koster Date: Fri, 1 Dec 2023 16:44:42 +0100 Subject: [PATCH 01/76] Update contributors.yml Remove markthemarkest (user no longer exists). Fixes: https://github.com/cloudfoundry/community/actions/runs/7051615756/job/19194922807#step:10:36 --- org/contributors.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/org/contributors.yml b/org/contributors.yml index f77931a4..43ead8fe 100644 --- a/org/contributors.yml +++ b/org/contributors.yml @@ -367,7 +367,6 @@ contributors: - MarcPaquette - mariash - markstokan -- markthemarkest - Markus-Ehrnsperger - martyspiewak - matt-royal From bb4132fbfa272d21fee607162f173f340d099d38 Mon Sep 17 00:00:00 2001 From: Amelia Downs Date: Fri, 1 Dec 2023 16:30:12 -0500 Subject: [PATCH 02/76] Update audit event names in readiness healthcheck RFC Rename app process audit events to better match the liveness healthcheck --- toc/rfc/rfc-0020-readiness-healthchecks.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/toc/rfc/rfc-0020-readiness-healthchecks.md b/toc/rfc/rfc-0020-readiness-healthchecks.md index 375a737d..67e9b1bf 100644 --- a/toc/rfc/rfc-0020-readiness-healthchecks.md +++ b/toc/rfc/rfc-0020-readiness-healthchecks.md @@ -157,11 +157,14 @@ to route pool". When AI readiness healthcheck fails a log line is printed to AI logs: "Container failed the readiness health check. Container marked not ready and removed from route pool". -#### App events +#### App Audit events -When AI readiness healthcheck succeeds a new application event is emitted: -"app.ready". When AI readiness healthcheck fails a new event is emitted: -"app.notready". +When the liveness healthchecks fail, it results in the following audit events: +`audit.app.process.crash` and `audit.app.process.rescheduling`. + +Similarly, when AI readiness healthcheck succeeds a new application event should be emitted: +`audit.app.process.ready`. And when AI readiness healthcheck fails a new event should be emitted: +`audit.app.process.notready`. ### Open Questions * What metrics would be helpful for app devs and operators? From 7d7b5015ab6b0f8fb77521ca865facf643e8ff1d Mon Sep 17 00:00:00 2001 From: Kevin Ortega Date: Sat, 2 Dec 2023 15:52:54 -0500 Subject: [PATCH 03/76] Update contributors.yml --- org/contributors.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/org/contributors.yml b/org/contributors.yml index f77931a4..f09e4be9 100644 --- a/org/contributors.yml +++ b/org/contributors.yml @@ -328,6 +328,7 @@ contributors: - KeepAustinWired - kejadlen - KevinJCross +- kevin-ortega - Kiemes - kieron-dev - kimago From 3ae4f24357b95c69904cde2bf639ca1718a35538 Mon Sep 17 00:00:00 2001 From: Matthias Vach Date: Mon, 4 Dec 2023 08:41:51 +0100 Subject: [PATCH 04/76] Add bosh-ali-storage-cli project - This project allows BOSH to use Alibaba blobstores. Same as bosh-s3cli allows BOSH to use AWS blobstores. --- org/cloudfoundry.yml | 4 ++++ toc/working-groups/foundational-infrastructure.md | 1 + 2 files changed, 5 insertions(+) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index a3c595f3..9fdd6d81 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -172,6 +172,10 @@ orgs: description: Go CLI for Azure storage has_projects: true default_branch: main + bosh-ali-storage-cli: + description: Go CLI for Alibaba storage + has_projects: true + default_branch: main bosh-backup-and-restore: has_projects: true homepage: https://docs.cloudfoundry.org/bbr diff --git a/toc/working-groups/foundational-infrastructure.md b/toc/working-groups/foundational-infrastructure.md index 1e0ebfa3..9fd21240 100644 --- a/toc/working-groups/foundational-infrastructure.md +++ b/toc/working-groups/foundational-infrastructure.md @@ -251,6 +251,7 @@ areas: - cloudfoundry/bosh-aws-light-stemcell-builder - cloudfoundry/bosh-azure-cpi-release - cloudfoundry/bosh-azure-storage-cli + - cloudfoundry/bosh-ali-storage-cli - cloudfoundry/bosh-bbl-ci-envs - cloudfoundry/bosh-bootloader - cloudfoundry/bosh-bootloader-ci-envs From 1b45b09f67b80eb8ff2660d9c2ae1e1f55dfe4c7 Mon Sep 17 00:00:00 2001 From: Klaus Kiefer Date: Mon, 4 Dec 2023 14:26:11 +0100 Subject: [PATCH 05/76] promote klaus-sap to Approver --- toc/working-groups/foundational-infrastructure.md | 1 - 1 file changed, 1 deletion(-) diff --git a/toc/working-groups/foundational-infrastructure.md b/toc/working-groups/foundational-infrastructure.md index 1e0ebfa3..aa35bc4c 100644 --- a/toc/working-groups/foundational-infrastructure.md +++ b/toc/working-groups/foundational-infrastructure.md @@ -122,7 +122,6 @@ areas: github: Tallicia - name: Adrian Hoelzl github: adrianhoelzl-sap - reviewers: - name: Klaus Kiefer github: klaus-sap repositories: From 8572e15505952b1b57c7199595dbec951666e34d Mon Sep 17 00:00:00 2001 From: Brayan Henao Date: Mon, 4 Dec 2023 14:02:31 -0500 Subject: [PATCH 06/76] Update app-runtime-interfaces.md --- toc/working-groups/app-runtime-interfaces.md | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/toc/working-groups/app-runtime-interfaces.md b/toc/working-groups/app-runtime-interfaces.md index 28a27248..3360541a 100644 --- a/toc/working-groups/app-runtime-interfaces.md +++ b/toc/working-groups/app-runtime-interfaces.md @@ -71,8 +71,6 @@ areas: - name: Buildpacks Docs approvers: - - name: Ryan Moran - github: ryanmoran - name: Forest Eckhardt github: ForestEckhardt - name: Victoria Campbell @@ -83,8 +81,8 @@ areas: - name: Buildpacks Go approvers: - - name: Ryan Moran - github: ryanmoran + - name: Brayan Henao + github: brayanhenao - name: Forest Eckhardt github: ForestEckhardt - name: Rob Dimsdale-Zucker @@ -142,8 +140,8 @@ areas: - name: Buildpacks Node.js approvers: - - name: Ryan Moran - github: ryanmoran + - name: Brayan Henao + github: brayanhenao - name: Tim Hitchener github: thitch97 - name: Victoria Campbell @@ -186,8 +184,8 @@ areas: - name: Buildpacks Ruby approvers: - - name: Ryan Moran - github: ryanmoran + - name: Brayan Henao + github: brayanhenao - name: Sophie Wigmore github: sophiewigmore - name: Rob Dimsdale-Zucker @@ -212,8 +210,8 @@ areas: - name: Buildpacks Tooling approvers: - - name: Ryan Moran - github: ryanmoran + - name: Brayan Henao + github: brayanhenao - name: Forest Eckhardt github: ForestEckhardt - name: Sophie Wigmore @@ -235,8 +233,6 @@ areas: - name: Buildpacks Utilities approvers: - - name: Ryan Moran - github: ryanmoran - name: Arjun Sreedharan github: arjun024 - name: Daniel Mikusa From 53a3062943e8ddec8ea17886d1869cadba9df013 Mon Sep 17 00:00:00 2001 From: Kevin Ortega Date: Mon, 4 Dec 2023 17:31:34 -0500 Subject: [PATCH 07/76] Add Kevin Ortega as approver --- toc/working-groups/app-runtime-interfaces.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/toc/working-groups/app-runtime-interfaces.md b/toc/working-groups/app-runtime-interfaces.md index 7b9f187b..2457ec96 100644 --- a/toc/working-groups/app-runtime-interfaces.md +++ b/toc/working-groups/app-runtime-interfaces.md @@ -99,6 +99,8 @@ areas: github: dmikusa - name: David O'Sullivan github: pivotal-david-osullivan + - name: Kevin Ortega (IBM) + github: kevin-ortega reviewers: - name: Anthony Dahanne github: anthonydahanne From 7c6441b888cb63fb2cd13581f1345833f842b93c Mon Sep 17 00:00:00 2001 From: Amelia Downs Date: Tue, 5 Dec 2023 07:07:18 -0500 Subject: [PATCH 08/76] Update toc/rfc/rfc-0020-readiness-healthchecks.md --- toc/rfc/rfc-0020-readiness-healthchecks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toc/rfc/rfc-0020-readiness-healthchecks.md b/toc/rfc/rfc-0020-readiness-healthchecks.md index 67e9b1bf..2a56706f 100644 --- a/toc/rfc/rfc-0020-readiness-healthchecks.md +++ b/toc/rfc/rfc-0020-readiness-healthchecks.md @@ -157,7 +157,7 @@ to route pool". When AI readiness healthcheck fails a log line is printed to AI logs: "Container failed the readiness health check. Container marked not ready and removed from route pool". -#### App Audit events +#### App Audit Events When the liveness healthchecks fail, it results in the following audit events: `audit.app.process.crash` and `audit.app.process.rescheduling`. From 319e9ddcec62b9ff1cb63d552fa5e85fd24c8a58 Mon Sep 17 00:00:00 2001 From: Amelia Downs Date: Tue, 5 Dec 2023 07:10:08 -0500 Subject: [PATCH 09/76] Update toc/rfc/rfc-0020-readiness-healthchecks.md --- toc/rfc/rfc-0020-readiness-healthchecks.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/toc/rfc/rfc-0020-readiness-healthchecks.md b/toc/rfc/rfc-0020-readiness-healthchecks.md index 2a56706f..ae2f5622 100644 --- a/toc/rfc/rfc-0020-readiness-healthchecks.md +++ b/toc/rfc/rfc-0020-readiness-healthchecks.md @@ -162,9 +162,8 @@ and removed from route pool". When the liveness healthchecks fail, it results in the following audit events: `audit.app.process.crash` and `audit.app.process.rescheduling`. -Similarly, when AI readiness healthcheck succeeds a new application event should be emitted: -`audit.app.process.ready`. And when AI readiness healthcheck fails a new event should be emitted: -`audit.app.process.notready`. +Similarly, when an AI readiness healthcheck succeeds an `audit.app.process.ready` event should be emitted. +And when an AI readiness healthcheck fails an `audit.app.process.notready` event should be emitted. ### Open Questions * What metrics would be helpful for app devs and operators? From 9d1ad1be8351da24b44f8779d536d1fa9aed51db Mon Sep 17 00:00:00 2001 From: Stephan Merker Date: Wed, 6 Dec 2023 10:48:36 +0100 Subject: [PATCH 10/76] Remove tarpinian from contributors --- org/contributors.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/org/contributors.yml b/org/contributors.yml index 2fb2d749..3d71bf7a 100644 --- a/org/contributors.yml +++ b/org/contributors.yml @@ -584,7 +584,6 @@ contributors: - tanzeeb - tanzu-backstage-bot - Tallicia -- tarpinian - tas-runtime-bot - tcdowney - teddyking From e69d7577caf42a630b9e1b05f280737d8ff30b61 Mon Sep 17 00:00:00 2001 From: Shwetha Gururaj Date: Wed, 6 Dec 2023 18:28:46 +0530 Subject: [PATCH 11/76] Add gururajsh to cli approver list --- toc/working-groups/app-runtime-interfaces.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/toc/working-groups/app-runtime-interfaces.md b/toc/working-groups/app-runtime-interfaces.md index 2457ec96..a7887fc1 100644 --- a/toc/working-groups/app-runtime-interfaces.md +++ b/toc/working-groups/app-runtime-interfaces.md @@ -354,6 +354,8 @@ areas: github: moleske - name: Cristhian github: ccjaimes + - name: Shwetha Gururaj + github: gururajsh reviewers: - name: George Gelashvili github: pivotalgeorge From c9058906e244c5109cab0cb41b035ae8e3401a4b Mon Sep 17 00:00:00 2001 From: Brandon Roberson Date: Wed, 6 Dec 2023 18:05:27 +0000 Subject: [PATCH 12/76] Request for Networking Approver status --- toc/working-groups/app-runtime-platform.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/toc/working-groups/app-runtime-platform.md b/toc/working-groups/app-runtime-platform.md index b37665f4..0f1c7f04 100644 --- a/toc/working-groups/app-runtime-platform.md +++ b/toc/working-groups/app-runtime-platform.md @@ -285,6 +285,8 @@ areas: github: b1tamara - name: Benjamin Fuller github: Benjamintf1 + - name: Brandon Roberson + github: ebroberson - name: Carson Long github: ctlong - name: Dominik Froehlich From 644dc7aa5e2f321113e6c814a02ad3954c329c3f Mon Sep 17 00:00:00 2001 From: Plamen Dimov Doychev Date: Wed, 6 Dec 2023 18:14:06 +0200 Subject: [PATCH 13/76] Promote V. Savchenko as diego approver --- toc/working-groups/app-runtime-platform.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/toc/working-groups/app-runtime-platform.md b/toc/working-groups/app-runtime-platform.md index 0f1c7f04..88286a7d 100644 --- a/toc/working-groups/app-runtime-platform.md +++ b/toc/working-groups/app-runtime-platform.md @@ -77,11 +77,11 @@ areas: github: dsabeti - name: Marc Paquette github: marcpaquette + - name: Vladimir Savchenko + github: vlast3k reviewers: - name: Plamen Doychev github: PlamenDoychev - - name: Vladimir Savchenko - github: vlast3k repositories: - cloudfoundry/archiver - cloudfoundry/auction @@ -317,11 +317,11 @@ areas: github: maxmoehl - name: Marc Paquette github: MarcPaquette + - name: Vladimir Savchenko + github: vlast3k reviewers: - name: Plamen Doychev github: PlamenDoychev - - name: Vladimir Savchenko - github: vlast3k repositories: - cloudfoundry/cf-networking-helpers - cloudfoundry/cf-networking-onboarding From 158cb9a861640719f7df2a4ff91ba22dcf29bc4d Mon Sep 17 00:00:00 2001 From: Carson Long <12767276+ctlong@users.noreply.github.com> Date: Thu, 7 Dec 2023 14:58:13 -0800 Subject: [PATCH 14/76] Add default branch for otel-collector-release Default branch for otel-collector-release is main. Because the default branch assumed by the branch protection automation is `master`, if we don't set this property we don't get any branch protection on our default branch in the otel-collector-release. --- org/cloudfoundry.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index 9fdd6d81..b620c3bf 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -1860,6 +1860,7 @@ orgs: in Vancouver ' has_projects: true otel-collector-release: + default_branch: main description: BOSH release for the OpenTelemetry Collector has_projects: false overview-broker: From 570be0d0b140ca5582477bc18baf78439ceb341e Mon Sep 17 00:00:00 2001 From: Brayan Henao Date: Mon, 11 Dec 2023 11:33:18 -0500 Subject: [PATCH 15/76] Remove Ryan from contributors.yml --- org/contributors.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/org/contributors.yml b/org/contributors.yml index f77931a4..3ec450c1 100644 --- a/org/contributors.yml +++ b/org/contributors.yml @@ -521,7 +521,6 @@ contributors: - rroberts2222 - rszumlakowski - runtime-ci -- ryanmoran - ryanwittrup - s4heid - salzmannsusan From 2661b939608c313766b69c4d153fd4b7d1b3e590 Mon Sep 17 00:00:00 2001 From: Amelia Downs Date: Mon, 11 Dec 2023 16:24:02 -0500 Subject: [PATCH 16/76] Update toc/rfc/rfc-0020-readiness-healthchecks.md --- toc/rfc/rfc-0020-readiness-healthchecks.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/toc/rfc/rfc-0020-readiness-healthchecks.md b/toc/rfc/rfc-0020-readiness-healthchecks.md index ae2f5622..9d89dd4e 100644 --- a/toc/rfc/rfc-0020-readiness-healthchecks.md +++ b/toc/rfc/rfc-0020-readiness-healthchecks.md @@ -159,8 +159,7 @@ and removed from route pool". #### App Audit Events -When the liveness healthchecks fail, it results in the following audit events: -`audit.app.process.crash` and `audit.app.process.rescheduling`. +When a liveness healthcheck fails, it results in the `audit.app.process.crash` audit event. Similarly, when an AI readiness healthcheck succeeds an `audit.app.process.ready` event should be emitted. And when an AI readiness healthcheck fails an `audit.app.process.notready` event should be emitted. From b67409d2486a954edf2305c8e975eae1b1282749 Mon Sep 17 00:00:00 2001 From: ramonskie Date: Tue, 12 Dec 2023 14:46:37 +0100 Subject: [PATCH 17/76] add bosh-apt-resourcers repo --- org/cloudfoundry.yml | 4 ++++ toc/working-groups/foundational-infrastructure.md | 1 + 2 files changed, 5 insertions(+) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index 9fdd6d81..8c55359f 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -176,6 +176,10 @@ orgs: description: Go CLI for Alibaba storage has_projects: true default_branch: main + bosh-apt-resources: + description: Builds debian packages for public bosh apt repository + has_projects: false + has_wiki: false bosh-backup-and-restore: has_projects: true homepage: https://docs.cloudfoundry.org/bbr diff --git a/toc/working-groups/foundational-infrastructure.md b/toc/working-groups/foundational-infrastructure.md index 9fd21240..9f377df5 100644 --- a/toc/working-groups/foundational-infrastructure.md +++ b/toc/working-groups/foundational-infrastructure.md @@ -252,6 +252,7 @@ areas: - cloudfoundry/bosh-azure-cpi-release - cloudfoundry/bosh-azure-storage-cli - cloudfoundry/bosh-ali-storage-cli + - cloudfoundry/bosh-apt-resources - cloudfoundry/bosh-bbl-ci-envs - cloudfoundry/bosh-bootloader - cloudfoundry/bosh-bootloader-ci-envs From f3a88970782af3f673daddfa8a8c98867741448b Mon Sep 17 00:00:00 2001 From: Amelia Downs Date: Tue, 12 Dec 2023 14:24:43 -0500 Subject: [PATCH 18/76] Promote Eric to execution lead for ARP --- toc/working-groups/app-runtime-platform.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/toc/working-groups/app-runtime-platform.md b/toc/working-groups/app-runtime-platform.md index 88286a7d..19cda28c 100644 --- a/toc/working-groups/app-runtime-platform.md +++ b/toc/working-groups/app-runtime-platform.md @@ -37,6 +37,8 @@ name: App Runtime Platform execution_leads: - name: Amelia Downs github: ameowlia +- name: Eric Malm + github: emalm technical_leads: - name: Amelia Downs github: ameowlia From b634be809318821511cc3eae8ac5b49399406d36 Mon Sep 17 00:00:00 2001 From: ifindlay-cci Date: Tue, 5 Dec 2023 14:59:11 +0000 Subject: [PATCH 19/76] Added Cryogenics-CI to the bot group --- toc/working-groups/app-runtime-platform.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/toc/working-groups/app-runtime-platform.md b/toc/working-groups/app-runtime-platform.md index 88286a7d..3f5e1b4b 100644 --- a/toc/working-groups/app-runtime-platform.md +++ b/toc/working-groups/app-runtime-platform.md @@ -49,6 +49,8 @@ bots: github: cf-logging-metrics-bot - name: Metric Store Bot github: svcboteos +- name: Cryogenics CI bot + github: Cryogenics-CI config: generate_rfc0015_branch_protection_rules: true github_project_sync: From 038208ff3943667d3b883125ce0a4222fe09d2f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Weisbarth?= Date: Thu, 14 Dec 2023 16:48:26 +0100 Subject: [PATCH 20/76] Removes Anubhav and add Sumit; --- toc/working-groups/app-runtime-interfaces.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/toc/working-groups/app-runtime-interfaces.md b/toc/working-groups/app-runtime-interfaces.md index a7887fc1..2f27d763 100644 --- a/toc/working-groups/app-runtime-interfaces.md +++ b/toc/working-groups/app-runtime-interfaces.md @@ -61,8 +61,8 @@ areas: reviewers: - name: Susanne Salzmann github: salzmannsusan - - name: Anubhav Gupta - github: anubhav-gupta1 + - name: Sumit Kulhadia + github: kulhadia repositories: - cloudfoundry/app-autoscaler-release - cloudfoundry/app-autoscaler-cli-plugin From b0a8225ec6015b2eba023b26188529639f5a1bee Mon Sep 17 00:00:00 2001 From: Patrick Lowin Date: Wed, 13 Dec 2023 09:30:33 +0100 Subject: [PATCH 21/76] Add temporary networking-admins team --- org/cloudfoundry.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index 74a73e63..8121c782 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -2515,4 +2515,14 @@ orgs: multiapps: admin multiapps-controller: admin multiapps-cli-plugin: admin - + temp-arp-networking-admins: + description: "Temporary team for managing GitHub integrations for automation/concourse." + maintainers: + - plowin + - domdom82 + members: [] + privacy: closed + repos: + haproxy-boshrelease: admin + pcap-release: admin + pcap: admin From 949dd557b96cfcaf907c7fa58263c62f69930ef6 Mon Sep 17 00:00:00 2001 From: UzYav <38292887+Yavor16@users.noreply.github.com> Date: Fri, 22 Dec 2023 15:12:38 +0200 Subject: [PATCH 22/76] Add Yavor16 to app-runtime-interfaces.md --- toc/working-groups/app-runtime-interfaces.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/toc/working-groups/app-runtime-interfaces.md b/toc/working-groups/app-runtime-interfaces.md index a7887fc1..66efd366 100644 --- a/toc/working-groups/app-runtime-interfaces.md +++ b/toc/working-groups/app-runtime-interfaces.md @@ -416,6 +416,8 @@ areas: github: nvvalchev - name: Vasil Bogdanov github: VRBogdanov + - name: Yavor Uzunov + github: Yavor16 repositories: - cloudfoundry/multiapps-controller - cloudfoundry/multiapps-cli-plugin From b1f308040a5ae67ea48ee426420a042db0748194 Mon Sep 17 00:00:00 2001 From: UzYav <38292887+Yavor16@users.noreply.github.com> Date: Fri, 22 Dec 2023 15:38:39 +0200 Subject: [PATCH 23/76] Update contributors.yml --- org/contributors.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/org/contributors.yml b/org/contributors.yml index 3d71bf7a..f02746cd 100644 --- a/org/contributors.yml +++ b/org/contributors.yml @@ -655,3 +655,4 @@ contributors: - radoslav-tomov - VRBogdanov - klaus-sap +- Yavor16 From 0d200d02a24e1da60e1035067f2753e1313e0ce6 Mon Sep 17 00:00:00 2001 From: Jochen Ehret Date: Wed, 3 Jan 2024 11:33:31 +0100 Subject: [PATCH 24/76] New repo for performance tests BOSH errand --- org/cloudfoundry.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index 8121c782..613fae30 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -667,6 +667,10 @@ orgs: cf-performance-tests: default_branch: main has_projects: true + cf-performance-tests-release: + description: BOSH errand for running cf-performance-tests + default_branch: main + has_projects: true cf-performance-tests-pipeline: default_branch: main has_projects: true From ed833d9a1d41e78c611c5d0f1cbc0e90487bd39d Mon Sep 17 00:00:00 2001 From: Jochen Ehret Date: Wed, 3 Jan 2024 13:17:54 +0100 Subject: [PATCH 25/76] Add new cf-performance-tests-release repo * this repo will host a BOSH errand for running the performance tests --- toc/working-groups/app-runtime-interfaces.md | 1 + 1 file changed, 1 insertion(+) diff --git a/toc/working-groups/app-runtime-interfaces.md b/toc/working-groups/app-runtime-interfaces.md index 66f5c52a..fd0d3ee0 100644 --- a/toc/working-groups/app-runtime-interfaces.md +++ b/toc/working-groups/app-runtime-interfaces.md @@ -328,6 +328,7 @@ areas: - cloudfoundry/capi-env-pool - cloudfoundry/capi-team-checklists - cloudfoundry/cf-performance-tests + - cloudfoundry/cf-performance-tests-release - cloudfoundry/cf-performance-tests-pipeline - cloudfoundry/tps - cloudfoundry/cc-uploader From 9ca1a476d579540e973f49810fce4fc01eb06f73 Mon Sep 17 00:00:00 2001 From: Brandon Roberson Date: Mon, 18 Dec 2023 18:19:44 +0000 Subject: [PATCH 26/76] Request for Diego Approver status --- toc/working-groups/app-runtime-platform.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/toc/working-groups/app-runtime-platform.md b/toc/working-groups/app-runtime-platform.md index d2f5fb9a..d84a6d85 100644 --- a/toc/working-groups/app-runtime-platform.md +++ b/toc/working-groups/app-runtime-platform.md @@ -65,6 +65,8 @@ areas: github: acrmp - name: Benjamin Fuller github: Benjamintf1 + - name: Brandon Roberson + github: ebroberson - name: Geoff Franks github: geofffranks - name: Josh Russett From dd6259d655e1b7b87d6fed685488b5d828205404 Mon Sep 17 00:00:00 2001 From: Anita Flegg Date: Thu, 7 Dec 2023 06:51:31 -0800 Subject: [PATCH 27/76] remove members who have left VMware --- toc/working-groups/docs.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/toc/working-groups/docs.md b/toc/working-groups/docs.md index ea421a3c..ff620781 100644 --- a/toc/working-groups/docs.md +++ b/toc/working-groups/docs.md @@ -48,10 +48,6 @@ areas: github: fifthposition - name: Ajayan Borys github: HenryBorys - - name: Bob Graczyk - github: bobbygeeze - - name: Lora Boe - github: blora1 repositories: - cloudfoundry/docs-book-cloudfoundry From 9d32e30cecfd5556ee77567db9de5a302d3a1a4a Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Mon, 11 Dec 2023 10:14:40 +0100 Subject: [PATCH 28/76] Remove members from the contributors.yml --- org/contributors.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/org/contributors.yml b/org/contributors.yml index 39f7dd5b..b87c8112 100644 --- a/org/contributors.yml +++ b/org/contributors.yml @@ -79,8 +79,6 @@ contributors: - Birdrock - bkeelapudi - blgm -- blora1 -- bobbygeeze - bonzofenix - bosh-admin-bot - bosh-ci-push-pull From f46c2d32bfdc9c9d884c32a9fa1c368148bc66a8 Mon Sep 17 00:00:00 2001 From: geigerj0 <112163019+geigerj0@users.noreply.github.com> Date: Tue, 9 Jan 2024 15:59:06 +0100 Subject: [PATCH 29/76] add myself as reviewer --- toc/working-groups/app-runtime-interfaces.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/toc/working-groups/app-runtime-interfaces.md b/toc/working-groups/app-runtime-interfaces.md index 383d70ae..8641a6ad 100644 --- a/toc/working-groups/app-runtime-interfaces.md +++ b/toc/working-groups/app-runtime-interfaces.md @@ -63,6 +63,8 @@ areas: github: salzmannsusan - name: Sumit Kulhadia github: kulhadia + - name: Josua Geiger + github: geigerj0 repositories: - cloudfoundry/app-autoscaler-release - cloudfoundry/app-autoscaler-cli-plugin From 20a23999520cd0d195e6019ab2801a80b3e2dfaa Mon Sep 17 00:00:00 2001 From: Josh Russett Date: Wed, 10 Jan 2024 18:55:17 +0000 Subject: [PATCH 30/76] Enable merge commits in diego/garden/netwrk repos This commit removes the restrictions on using the `Merge commit` strategy to accept PRs in the repos managed by the following working groups: - Diego - Garden Containers - Networking My understanding is that at some point someone manually disabled merge commits for (some of) our repos because they felt like it. This happened before the repo settings were managed by the TOC / the cf community repo tooling, then these settings were persisted. This config will enable merge commits so we don't have to rebase or squash every single PR. --- org/cloudfoundry.yml | 55 -------------------------------------------- 1 file changed, 55 deletions(-) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index 613fae30..0ca0ad17 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -67,17 +67,14 @@ orgs: archived: true has_projects: true archiver: - allow_merge_commit: false description: Utilities for extracting and compressing tgz and zip files. has_issues: false has_projects: true auction: - allow_merge_commit: false description: Auction encodes Diego's long-running-process distribution algorithm has_issues: false has_projects: true auctioneer: - allow_merge_commit: false description: Runs diego auctions has_issues: false has_projects: true @@ -94,12 +91,10 @@ orgs: description: a concourse resource for manipulating bbl states has_projects: true bbs: - allow_merge_commit: false description: Internal API to access the database for Diego. has_issues: false has_projects: true benchmarkbbs: - allow_merge_commit: false description: Diego BBS Benchmark has_issues: false has_projects: true @@ -465,12 +460,10 @@ orgs: has_projects: true private: true bytefmt: - allow_merge_commit: false description: Human readable byte formatter has_issues: false has_projects: true cacheddownloader: - allow_merge_commit: false description: A cached HTTP blob downloader has_issues: false has_projects: true @@ -535,7 +528,6 @@ orgs: default_branch: main has_projects: true certsplitter: - allow_merge_commit: false has_issues: false has_projects: true cf-acceptance-tests: @@ -644,7 +636,6 @@ orgs: has_wiki: false private: true cf-networking-helpers: - allow_merge_commit: false default_branch: main description: Shared libraries for the CF Networking team has_projects: false @@ -655,7 +646,6 @@ orgs: area of CF has_projects: true cf-networking-release: - allow_merge_commit: false default_branch: develop description: Container Networking for CloudFoundry has_projects: true @@ -678,7 +668,6 @@ orgs: default_branch: main has_projects: true cf-routing-test-helpers: - allow_merge_commit: false default_branch: main has_projects: true cf-slackin: @@ -693,7 +682,6 @@ orgs: default_branch: main has_projects: true cf-tcp-router: - allow_merge_commit: false default_branch: main description: TCP Router repository for Cloud Foundry has_projects: true @@ -762,7 +750,6 @@ orgs: cfcd-prep: has_projects: true cfdot: - allow_merge_commit: false description: A command-line tool to interact with a Cloud Foundry Diego deployment. has_issues: false has_projects: true @@ -779,7 +766,6 @@ orgs: has_projects: true private: true cfhttp: - allow_merge_commit: false description: Wrapper for official go http package has_issues: false has_projects: true @@ -843,7 +829,6 @@ orgs: has_projects: true has_wiki: false clock: - allow_merge_commit: false default_branch: main description: time provider & rich fake for Go has_issues: false @@ -898,7 +883,6 @@ orgs: default_branch: main has_projects: true consuladapter: - allow_merge_commit: false description: Consul client adapter and test cluster runner has_issues: false has_projects: true @@ -961,7 +945,6 @@ orgs: archived: true has_projects: true debugserver: - allow_merge_commit: false has_issues: false has_projects: true delayed_job_sequel: @@ -1011,7 +994,6 @@ orgs: has_projects: true private: true diego-acceptance: - allow_merge_commit: false description: Diego PM acceptance notes and tools has_projects: true private: true @@ -1026,16 +1008,13 @@ orgs: description: Diego Architectural Design Musings and Explications has_projects: true diego-dockerfiles: - allow_merge_commit: false has_issues: false has_projects: false has_wiki: false diego-logging-client: - allow_merge_commit: false has_issues: false has_projects: true diego-notes: - allow_merge_commit: false description: Diego Notes has_projects: true diego-perf-release: @@ -1043,12 +1022,10 @@ orgs: a Diego(+Runtime) deployment has_projects: true diego-release: - allow_merge_commit: false default_branch: develop description: BOSH Release for Diego has_projects: true diego-ssh: - allow_merge_commit: false description: Access Diego containers with ssh has_issues: false has_projects: true @@ -1056,7 +1033,6 @@ orgs: description: Diego Stress Tests has_projects: true diego-team: - allow_merge_commit: false description: Checklists for the Diego team has_projects: true private: true @@ -1083,11 +1059,9 @@ orgs: docker_driver_integration_tests: has_projects: true dockerapplifecycle: - allow_merge_commit: false description: Code that runs inside of containers, for docker-based apps has_projects: true dockerdriver: - allow_merge_commit: false has_issues: false has_projects: true docs-bbr: @@ -1171,11 +1145,9 @@ orgs: has_projects: true private: true durationjson: - allow_merge_commit: false has_issues: false has_projects: true ecrhelper: - allow_merge_commit: false has_issues: false has_projects: true eirini: @@ -1218,13 +1190,11 @@ orgs: has_projects: true archived: true eventhub: - allow_merge_commit: false has_issues: false has_projects: true example-sidecar-buildpack: has_projects: true executor: - allow_merge_commit: false description: thy will be done has_issues: false has_projects: true @@ -1238,7 +1208,6 @@ orgs: filelock: has_projects: true fileserver: - allow_merge_commit: false description: 'Bob Loblaw''s file server ' has_issues: false has_projects: true @@ -1379,7 +1348,6 @@ orgs: archived: true has_projects: true gorouter: - allow_merge_commit: false default_branch: main description: CF Router has_projects: true @@ -1421,7 +1389,6 @@ orgs: description: A BOSH release for haproxy (based on cf-release's haproxy job) has_projects: true healthcheck: - allow_merge_commit: false description: Common healthcheck for buildpacks and docker has_issues: false has_projects: true @@ -1470,7 +1437,6 @@ orgs: has_wiki: false private: true inigo: - allow_merge_commit: false description: diego integration tests has_issues: false has_projects: true @@ -1576,7 +1542,6 @@ orgs: default_branch: main has_projects: false lager: - allow_merge_commit: false description: An opinionated logger for Go. has_projects: true lamb-ci-tools: @@ -1609,15 +1574,12 @@ orgs: archived: true has_projects: true localdriver: - allow_merge_commit: false has_issues: false has_projects: true localip: - allow_merge_commit: false has_issues: false has_projects: true locket: - allow_merge_commit: false has_issues: false has_projects: true log-cache: @@ -1775,13 +1737,11 @@ orgs: mysql-monitoring-release: has_projects: true nats-release: - allow_merge_commit: false default_branch: develop has_projects: true netplugin-shim: has_projects: true networking-oss-deployments: - allow_merge_commit: false default_branch: main description: bbl state store for networking oss deployments has_projects: true @@ -1852,7 +1812,6 @@ orgs: archived: true has_projects: true operationq: - allow_merge_commit: false description: processes multiple queues in parallel has_issues: false has_projects: true @@ -1988,7 +1947,6 @@ orgs: has_projects: true private: true rep: - allow_merge_commit: false description: Representative bids on tasks and schedules them on an associated Executor has_issues: false @@ -2000,28 +1958,23 @@ orgs: has_projects: true archived: true route-emitter: - allow_merge_commit: false description: Registers and unregisters processes running on executors with the gorouter has_issues: false has_projects: true route-registrar: - allow_merge_commit: false default_branch: main description: A standalone executable written in golang that continuously broadcasts a route using NATS to the CF router. has_projects: true routing-acceptance-tests: - allow_merge_commit: false default_branch: main has_projects: true routing-api: - allow_merge_commit: false default_branch: main has_projects: false has_wiki: false routing-api-cli: - allow_merge_commit: false default_branch: main has_projects: true routing-ci: @@ -2035,18 +1988,15 @@ orgs: has_projects: true private: true routing-info: - allow_merge_commit: false default_branch: main description: Routing information helpers for CF / Diego has_projects: true routing-perf-release: - allow_merge_commit: false default_branch: main description: A BOSH release for routing performance tests has_projects: false has_wiki: false routing-release: - allow_merge_commit: false default_branch: develop description: This is the BOSH release for cloud foundry routers has_projects: true @@ -2172,7 +2122,6 @@ orgs: for Cloud Foundry. has_projects: true silk-release: - allow_merge_commit: false default_branch: develop description: Silk - CNI plugin BOSH release for Cloud Foundry has_projects: true @@ -2319,7 +2268,6 @@ orgs: test-log-emitter-release: has_projects: true tlsconfig: - allow_merge_commit: false description: build tls configurations has_projects: false has_wiki: false @@ -2396,12 +2344,10 @@ orgs: has_projects: true has_wiki: false vizzini: - allow_merge_commit: false description: 'Vizzini: Inconceivable Tests' has_issues: false has_projects: true volman: - allow_merge_commit: false has_issues: false has_projects: true volume-mount-options: @@ -2448,7 +2394,6 @@ orgs: default_branch: develop has_projects: true workpool: - allow_merge_commit: false has_issues: false has_projects: true yagnats: From f6f40a6d865215adf4aa9eafed562a43ac1ca41a Mon Sep 17 00:00:00 2001 From: Josh Russett Date: Wed, 10 Jan 2024 23:22:44 +0000 Subject: [PATCH 31/76] Add healthchecker-release & runtime-ci-pools repos Follow up to: https://github.com/cloudfoundry/community/pull/505 We ended up renaming these repos but never added them to org/cloudfoundry.yml Also cloudfoundry/diego-ci-pools should be deleted (it's empty and will be empty). --- org/cloudfoundry.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index 0ca0ad17..a18864a4 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -1000,10 +1000,6 @@ orgs: diego-checkman: has_projects: true private: true - diego-ci-pools: - allow_merge_commit: false - description: Lock pools for Diego CI - has_projects: true diego-design-notes: description: Diego Architectural Design Musings and Explications has_projects: true @@ -1392,6 +1388,10 @@ orgs: description: Common healthcheck for buildpacks and docker has_issues: false has_projects: true + healthchecker-release: + description: 'A BOSH release for vendoring the healtchecker BOSH package' + has_issues: true + has_projects: true homebrew-tap: description: Cloud Foundry Homebrew packages has_projects: true @@ -2023,6 +2023,10 @@ orgs: runtime-ci: default_branch: main has_projects: true + runtime-ci-pools: + description: Lock pools for the runtime CI + has_projects: true + has_issues: false runtime-credentials: has_projects: true private: true From bf2ec5fbbf2853889ddd6fb9e94e05619cb00893 Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Mon, 11 Dec 2023 10:14:40 +0100 Subject: [PATCH 32/76] Remove members from the contributors.yml --- .../vulnerability-management.md | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/toc/working-groups/vulnerability-management.md b/toc/working-groups/vulnerability-management.md index a0d67a67..153c6d48 100644 --- a/toc/working-groups/vulnerability-management.md +++ b/toc/working-groups/vulnerability-management.md @@ -31,10 +31,29 @@ Provides discreet management of security vulnerabilities issues relevant for act - [Mathias Essenpreis](https://github.com/Essenpreis) - [Prateek Mehrotra](https://github.com/mehrotra-prateek) -## Technical Assets +## Roles & Technical Assets Security process and broadcast channels for security disclosures. * [Security Advisories](https://www.cloudfoundry.org/foundryblog/security-advisory/) * [#security](https://cloudfoundry.slack.com/archives/C0DEQSW9W) * [cff-security-pre-disclosure@cloudfoundry.org](mailto:cff-security-pre-disclosure@cloudfoundry.org) + + +```yaml +name: Vulnerability Management +execution_leads: +- name: Monty Ijzerman + github: ijzerman +- name: Khushboo Soni + github: skhushboo-vm +- name: Mathias Essenpreis + github: Essenpreis +- name: Prateek Mehrotra + github: mehrotra-prateek +technical_leads: +- name: Paul Warren + github: paulcwarren +bots: [] +areas: [] +``` \ No newline at end of file From e0717544e50b143a6bdd6b725f155392797d238d Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Thu, 11 Jan 2024 08:21:47 +0100 Subject: [PATCH 33/76] Remove inactive users in VM WG --- toc/working-groups/vulnerability-management.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/toc/working-groups/vulnerability-management.md b/toc/working-groups/vulnerability-management.md index 153c6d48..2d12771c 100644 --- a/toc/working-groups/vulnerability-management.md +++ b/toc/working-groups/vulnerability-management.md @@ -22,14 +22,12 @@ Provides discreet management of security vulnerabilities issues relevant for act * Add security-related features to Cloud Foundry projects. -## Technical Lead(s): +## Technical Lead(s): - [Paul Warren](https://github.com/paulcwarren) ## Execution Lead(s): - [Monty Ijzerman](https://github.com/ijzerman) - [Khushboo Soni](https://github.com/skhushboo-vm) -- [Mathias Essenpreis](https://github.com/Essenpreis) -- [Prateek Mehrotra](https://github.com/mehrotra-prateek) ## Roles & Technical Assets @@ -47,10 +45,6 @@ execution_leads: github: ijzerman - name: Khushboo Soni github: skhushboo-vm -- name: Mathias Essenpreis - github: Essenpreis -- name: Prateek Mehrotra - github: mehrotra-prateek technical_leads: - name: Paul Warren github: paulcwarren From e667f27001dad1b276645baea8c9fb8915f7eb02 Mon Sep 17 00:00:00 2001 From: Brandon Roberson Date: Thu, 11 Jan 2024 21:09:53 +0000 Subject: [PATCH 34/76] Archive garden-windows-ci repo --- org/cloudfoundry.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index 0ca0ad17..81f61daa 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -1266,6 +1266,7 @@ orgs: private: true garden-windows-ci: has_projects: true + archived: true garden-windows-tools-release: has_projects: true git-release-notes: From dc0e02fd0623e8e5917b58b5e4ebcd54c9c51f3b Mon Sep 17 00:00:00 2001 From: Marc Paquette Date: Thu, 11 Jan 2024 16:18:19 -0500 Subject: [PATCH 35/76] Archive garden-dockerfiles https://github.com/cloudfoundry/wg-app-platform-runtime-ci has been created to aggregate all docker images and pipelines in the Application Runtime Group. --- org/cloudfoundry.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index 0ca0ad17..c0ed682d 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -1247,6 +1247,7 @@ orgs: has_projects: true garden-dockerfiles: has_projects: true + archived: true garden-dotfiles: has_projects: true garden-dotfiles-archived: From 7599b0f8ba9a291fe5fd054243b2f46689b2f2fa Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Fri, 12 Jan 2024 09:12:16 +0100 Subject: [PATCH 36/76] Clean roles of removed users ryanmoran has been removed from the cloudfoundry org with this [pr](https://github.com/cloudfoundry/community/pull/719). The is still a role assigned to him which fails the org automation --- org/cloudfoundry.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index 0ca0ad17..6a519ead 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -2412,7 +2412,6 @@ orgs: maintainers: - arjun024 - brayanhenao - - ryanmoran - sophiewigmore members: [] privacy: closed From b6b8f84a6989d8ddb7bcc23d54d66d09632b665d Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Mon, 20 Nov 2023 16:17:04 +0100 Subject: [PATCH 37/76] Implement inactive user management --- org/org_user_management.py | 57 ++++++++++++++++++++++++++++++++++++++ org/requirements.txt | 3 +- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 org/org_user_management.py diff --git a/org/org_user_management.py b/org/org_user_management.py new file mode 100644 index 00000000..2506f10f --- /dev/null +++ b/org/org_user_management.py @@ -0,0 +1,57 @@ +import requests +import argparse +import datetime + + +class InactiveUserHandler: + def __init__( + self, + github_org: [str], + activity_date: [str], + github_token: [str], + ): + self.github_org = github_org + self.activity_date = activity_date + self.github_token = github_token + + def _execute_query(self, query): + headers = {"Authorization": "Bearer {}".format(self.github_token)} + request = requests.post('https://api.github.com/graphql', json={'query': query}, headers=headers) + if request.status_code == 200: + return request.json() + else: + raise Exception("Query execution failed with status code of {}. {}".format(request.status_code, query)) + + def is_user(self, user): + query = """ + { + user(login: \"""" + user + """\") { + contributionsCollection(organizationID: \"""" + self.github_org + """\", from: \"""" + self.activity_date + """\") { + hasAnyContributions + } + } + } + """ + + result = self._execute_query(query) + return result["data"]["user"]["contributionsCollection"]["hasAnyContributions"] + + +if __name__ == "__main__": + one_years_before = (datetime.datetime.now() - datetime.timedelta(days=365)).strftime('%Y-%m-%dT%H:%M:%SZ') + + parser = argparse.ArgumentParser(description="Cloud Foundry Org Inactive User Handler") + parser.add_argument("-go", "--githuborg", default="O_kgDOAAl8sg", help="Cloud Foundry Github org ID") + parser.add_argument("-sd", "--sincedate", default=one_years_before, help="Since when the activity should be analyze. Date forma in '%Y-%m-%dT%H:%M:%SZ'") + parser.add_argument("-gt", "--githubtoken", default="", help="Github API access token") + args = parser.parse_args() + + print("Analyzing Cloud Foundry org user activity.") + # Get all users who are not part of any WG here + + userHandler = InactiveUserHandler(args.githuborg, args.sincedate, args.githubtoken) + # Iterate over the users here and collect inactive users + result = userHandler.is_user("") + + print("Is user inactive result - {}".format(result)) + # Create a pr wiht inactive users diff --git a/org/requirements.txt b/org/requirements.txt index da942623..dd4cca62 100644 --- a/org/requirements.txt +++ b/org/requirements.txt @@ -1,2 +1,3 @@ pyyaml -jsonschema \ No newline at end of file +jsonschema +requests \ No newline at end of file From e42f7a8d13321537e641025ca209f1a32e552b9c Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Tue, 28 Nov 2023 16:12:13 +0100 Subject: [PATCH 38/76] Use graphql APIs for the org instead per user --- org/org_management.py | 9 ++++ org/org_user_management.py | 91 +++++++++++++++++++++++++++++++------- 2 files changed, 84 insertions(+), 16 deletions(-) diff --git a/org/org_management.py b/org/org_management.py index 1b318bcd..3496574d 100644 --- a/org/org_management.py +++ b/org/org_management.py @@ -85,6 +85,15 @@ def load_from_project(self): if wg: self.working_groups.append(wg) + def get_contributors(self) -> Set[str]: + return set(self.contributors) + + def get_community_members_with_role(self) -> Set[str]: + result = set(self.toc) + for wg in self.working_groups: + result |= OrgGenerator._wg_github_users(wg) + return result + def generate_org_members(self): org_members = set(self.org_cfg["orgs"]["cloudfoundry"]["members"]) # just in case, should be empty list org_members |= self.contributors diff --git a/org/org_user_management.py b/org/org_user_management.py index 2506f10f..3e2b1aff 100644 --- a/org/org_user_management.py +++ b/org/org_user_management.py @@ -1,47 +1,92 @@ import requests import argparse import datetime +import json + +from org_management import OrgGenerator class InactiveUserHandler: def __init__( self, github_org: [str], + github_org_id: [str], activity_date: [str], github_token: [str], ): self.github_org = github_org + self.github_org_id = github_org_id self.activity_date = activity_date self.github_token = github_token - def _execute_query(self, query): - headers = {"Authorization": "Bearer {}".format(self.github_token)} - request = requests.post('https://api.github.com/graphql', json={'query': query}, headers=headers) + def _get_request_headrs(self): + return {"Authorization": f"Bearer {self.github_token}"} + + def _process_request_result(self, request): if request.status_code == 200: return request.json() else: - raise Exception("Query execution failed with status code of {}. {}".format(request.status_code, query)) + raise Exception(f"Query execution failed with status code of {request.status_code}. {request.status_code}") + + def _execute_query(self, query): + request = requests.post('https://api.github.com/graphql', json={'query': query}, headers=self._get_request_headrs()) + return self._process_request_result(request) + + def _build_query(self, after_cursor_value=None): + after_cursor = "null" + if after_cursor_value: + after_cursor = '"{}"'.format(after_cursor_value) + else: + after_cursor = "null" - def is_user(self, user): query = """ { - user(login: \"""" + user + """\") { - contributionsCollection(organizationID: \"""" + self.github_org + """\", from: \"""" + self.activity_date + """\") { - hasAnyContributions + organization(login: \"""" + self.github_org + """\") { + membersWithRole(first: 50, after:""" + after_cursor + """) { + pageInfo { + hasNextPage + endCursor + } + nodes { + login + contributionsCollection(organizationID: \"""" + self.github_org_id + """\", from: \"""" + self.activity_date +"""\") { + hasAnyContributions + } + } } } } """ + return query + + def get_inactive_users(self): + inactive_users = set() + has_next_page = True + afeter_cursor_value = None + while has_next_page: + result = self._execute_query(self._build_query(afeter_cursor_value)) + print( f"Result is '{result}'") + for user_node in result["data"]["organization"]["membersWithRole"]["nodes"]: + user = user_node["login"] + activity_value = user_node["contributionsCollection"]["hasAnyContributions"] + print( f"The user '{user}' has activity value {activity_value} contirbutions") + if not user_node["contributionsCollection"]["hasAnyContributions"]: + print( f"Adding user '{user}' as inactive") + inactive_users.add(user) - result = self._execute_query(query) - return result["data"]["user"]["contributionsCollection"]["hasAnyContributions"] + + has_next_page = result["data"]["organization"]["membersWithRole"]["pageInfo"]["hasNextPage"] + afeter_cursor_value = result["data"]["organization"]["membersWithRole"]["pageInfo"]["endCursor"] + + return inactive_users if __name__ == "__main__": one_years_before = (datetime.datetime.now() - datetime.timedelta(days=365)).strftime('%Y-%m-%dT%H:%M:%SZ') parser = argparse.ArgumentParser(description="Cloud Foundry Org Inactive User Handler") - parser.add_argument("-go", "--githuborg", default="O_kgDOAAl8sg", help="Cloud Foundry Github org ID") + parser.add_argument("-goid", "--githuborgid", default="O_kgDOAAl8sg", help="Cloud Foundry Github org ID") + parser.add_argument("-go", "--githuborg", default="cloudfoundry", help="Cloud Foundry Github org name") parser.add_argument("-sd", "--sincedate", default=one_years_before, help="Since when the activity should be analyze. Date forma in '%Y-%m-%dT%H:%M:%SZ'") parser.add_argument("-gt", "--githubtoken", default="", help="Github API access token") args = parser.parse_args() @@ -49,9 +94,23 @@ def is_user(self, user): print("Analyzing Cloud Foundry org user activity.") # Get all users who are not part of any WG here - userHandler = InactiveUserHandler(args.githuborg, args.sincedate, args.githubtoken) - # Iterate over the users here and collect inactive users - result = userHandler.is_user("") + print("Generating cloudfoundry org configuration.") + generator = OrgGenerator() + generator.load_from_project() + contributors = generator.get_contributors() + community_members_with_role = generator.get_community_members_with_role() + + users_to_analyze = contributors - community_members_with_role + + + userHandler = InactiveUserHandler(args.githuborg, args.githuborgid, args.sincedate, args.githubtoken) + inactive_users = userHandler.get_inactive_users() + + print(f"Inactive users length is {len(inactive_users)} and inactive users are {inactive_users}") + users_to_delete = inactive_users - community_members_with_role + inactive_users_with_role = community_members_with_role.intersection(inactive_users) + + print(f"Users to delete length is {len(users_to_delete)} and users are {users_to_delete}") + print(f"Inactive users with role length is {len(inactive_users_with_role)} and users are {inactive_users_with_role}") - print("Is user inactive result - {}".format(result)) - # Create a pr wiht inactive users + # Create an issue wiht inactive users From 661756cf4d2fcfdf03a7278c4b75682781977ca1 Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Tue, 5 Dec 2023 15:49:51 +0100 Subject: [PATCH 39/76] Add github issue creation --- org/org_user_management.py | 63 ++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/org/org_user_management.py b/org/org_user_management.py index 3e2b1aff..7aa69a5e 100644 --- a/org/org_user_management.py +++ b/org/org_user_management.py @@ -10,11 +10,15 @@ class InactiveUserHandler: def __init__( self, github_org: [str], + github_repo: [str], + github_repo_owner: [str], github_org_id: [str], activity_date: [str], github_token: [str], ): self.github_org = github_org + self.github_repo = github_repo + self.github_repo_owner = github_repo_owner self.github_org_id = github_org_id self.activity_date = activity_date self.github_token = github_token @@ -23,40 +27,35 @@ def _get_request_headrs(self): return {"Authorization": f"Bearer {self.github_token}"} def _process_request_result(self, request): - if request.status_code == 200: + if request.status_code == 200 or request.status_code == 201: return request.json() else: - raise Exception(f"Query execution failed with status code of {request.status_code}. {request.status_code}") + raise Exception(f"Request execution failed with status code of {request.status_code}. {request.status_code}") def _execute_query(self, query): request = requests.post('https://api.github.com/graphql', json={'query': query}, headers=self._get_request_headrs()) return self._process_request_result(request) def _build_query(self, after_cursor_value=None): - after_cursor = "null" - if after_cursor_value: - after_cursor = '"{}"'.format(after_cursor_value) - else: - after_cursor = "null" - + after_cursor = '"{}"'.format(after_cursor_value) if after_cursor_value else "null" query = """ { - organization(login: \"""" + self.github_org + """\") { - membersWithRole(first: 50, after:""" + after_cursor + """) { + organization(login: \"%s\") { + membersWithRole(first: 50, after:%s) { pageInfo { hasNextPage endCursor } nodes { login - contributionsCollection(organizationID: \"""" + self.github_org_id + """\", from: \"""" + self.activity_date +"""\") { + contributionsCollection(organizationID: \"%s\", from: \"%s\") { hasAnyContributions } } } } } - """ + """ % (self.github_org, after_cursor, self.github_org_id, self.activity_date) return query def get_inactive_users(self): @@ -65,12 +64,11 @@ def get_inactive_users(self): afeter_cursor_value = None while has_next_page: result = self._execute_query(self._build_query(afeter_cursor_value)) - print( f"Result is '{result}'") for user_node in result["data"]["organization"]["membersWithRole"]["nodes"]: user = user_node["login"] - activity_value = user_node["contributionsCollection"]["hasAnyContributions"] - print( f"The user '{user}' has activity value {activity_value} contirbutions") - if not user_node["contributionsCollection"]["hasAnyContributions"]: + activity = user_node["contributionsCollection"]["hasAnyContributions"] + print( f"The user '{user}' has activity value {activity} contirbutions") + if not activity: print( f"Adding user '{user}' as inactive") inactive_users.add(user) @@ -80,6 +78,19 @@ def get_inactive_users(self): return inactive_users + def create_github_deletion_issue(self, users_to_delete): + rfc = 'https://github.com/cloudfoundry/community/blob/main/toc/rfc/rfc-0025-define-criteria-and-removal-process-for-inactive-members.md' + rfc_revocation_rules = 'https://github.com/cloudfoundry/community/blob/main/toc/rfc/rfc-0025-define-criteria-and-removal-process-for-inactive-members.md#remove-the-membership-to-the-cloud-foundry-github-organization' + title = "Inactive users to be deleted" + users_as_list = "\n".join(str(s) for s in users_to_delete) + body = f"Acording to the rolues for inactivity defined in [RFC-0025]({rfc}) following users will be deleted:\n" \ + f"{users_as_list}\nPer the [revocation policy in the RFC]({rfc_revocation_rules}), users have two weeks to refute this revocation, if they wish." + issue = {'title': title, + 'body': body} + repository_url = f"https://api.github.com/repos/{self.github_repo_owner}/{self.github_repo}/issues" + request = requests.post(repository_url, json.dumps(issue), headers=self._get_request_headrs()) + return self._process_request_result(request) + if __name__ == "__main__": one_years_before = (datetime.datetime.now() - datetime.timedelta(days=365)).strftime('%Y-%m-%dT%H:%M:%SZ') @@ -87,30 +98,24 @@ def get_inactive_users(self): parser = argparse.ArgumentParser(description="Cloud Foundry Org Inactive User Handler") parser.add_argument("-goid", "--githuborgid", default="O_kgDOAAl8sg", help="Cloud Foundry Github org ID") parser.add_argument("-go", "--githuborg", default="cloudfoundry", help="Cloud Foundry Github org name") + parser.add_argument("-gr", "--githubrepo", default="community", help="Cloud Foundry Github community repository") + parser.add_argument("-gro", "--githubrepoowner", default="cloudfoundry", help="Cloud Foundry Github community repository owner") parser.add_argument("-sd", "--sincedate", default=one_years_before, help="Since when the activity should be analyze. Date forma in '%Y-%m-%dT%H:%M:%SZ'") parser.add_argument("-gt", "--githubtoken", default="", help="Github API access token") args = parser.parse_args() - print("Analyzing Cloud Foundry org user activity.") - # Get all users who are not part of any WG here - - print("Generating cloudfoundry org configuration.") + print('Get information about community users') generator = OrgGenerator() generator.load_from_project() - contributors = generator.get_contributors() community_members_with_role = generator.get_community_members_with_role() - users_to_analyze = contributors - community_members_with_role - - - userHandler = InactiveUserHandler(args.githuborg, args.githuborgid, args.sincedate, args.githubtoken) + print('Analyzing Cloud Foundry org user activity.') + userHandler = InactiveUserHandler(args.githuborg, args.githubrepo, args.githubrepoowner, args.githuborgid, args.sincedate, args.githubtoken) inactive_users = userHandler.get_inactive_users() print(f"Inactive users length is {len(inactive_users)} and inactive users are {inactive_users}") users_to_delete = inactive_users - community_members_with_role - inactive_users_with_role = community_members_with_role.intersection(inactive_users) + userHandler.create_github_deletion_issue(users_to_delete) - print(f"Users to delete length is {len(users_to_delete)} and users are {users_to_delete}") + inactive_users_with_role = community_members_with_role.intersection(inactive_users) print(f"Inactive users with role length is {len(inactive_users_with_role)} and users are {inactive_users_with_role}") - - # Create an issue wiht inactive users From d0d13cc0f3d7b3c511f0113b81b2390e87a0e4fb Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Tue, 12 Dec 2023 12:25:33 +0100 Subject: [PATCH 40/76] Add pr creation for inactive users --- .../org-inactive-user-management.yml | 32 ++++++++++++++ org/org_user_management.py | 43 +++++++++++++------ 2 files changed, 63 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/org-inactive-user-management.yml diff --git a/.github/workflows/org-inactive-user-management.yml b/.github/workflows/org-inactive-user-management.yml new file mode 100644 index 00000000..2c6d85f9 --- /dev/null +++ b/.github/workflows/org-inactive-user-management.yml @@ -0,0 +1,32 @@ +name: 'Delete Inactive Users in Github Organization' + +on: + schedule: + - cron: '0 0 1 * *' + +jobs: + org-config-generation-check: + runs-on: ubuntu-latest + steps: + - uses: actions/setup-python@v4 + with: + python-version: 3.9 + - uses: actions/checkout@v3 + with: + path: community + - name: Clean inactive github org users + id: uds + run: | + python -m pip install --upgrade pip + pip install -r community/org/requirements.txt + python community/org/org_user_management.py -gt ${{ secrets.GH_TOKEN }} + - name: Create Pull Request + if: ${{ steps.uds.outputs.inactive_users_pr_description }} + uses: peter-evans/create-pull-request@v4 + with: + path: community + add-paths: org/contributors.yml + commit-message: Delete inactive users + branch: delete-inactive-users + title: 'Inactive users to be deleted' + body: ${{ steps.uds.outputs.inactive_users_pr_description }} diff --git a/org/org_user_management.py b/org/org_user_management.py index 7aa69a5e..9ac01080 100644 --- a/org/org_user_management.py +++ b/org/org_user_management.py @@ -2,9 +2,12 @@ import argparse import datetime import json +import yaml +import os from org_management import OrgGenerator +_SCRIPT_PATH = os.path.dirname(os.path.abspath(__file__)) class InactiveUserHandler: def __init__( @@ -78,29 +81,43 @@ def get_inactive_users(self): return inactive_users - def create_github_deletion_issue(self, users_to_delete): + def _load_yaml_file(self, path): + with open(path, "r") as stream: + return yaml.safe_load(stream) + + def _write_yaml_file(self, path, data): + with open(path, "w") as f: + yaml.dump(data, f) + + + def delete_inactive_contributors(self, users_to_delete): + path = f"{_SCRIPT_PATH}/contributors.yml" + contributors_yaml = self._load_yaml_file(path) + for user in users_to_delete: + updated_contributors = list(filter(lambda item: item!=user, contributors_yaml['contributors'])) + contributors_yaml['contributors'] = updated_contributors + self._write_yaml_file(path, contributors_yaml) + + def add_inactive_users_output(self, users_to_delete): rfc = 'https://github.com/cloudfoundry/community/blob/main/toc/rfc/rfc-0025-define-criteria-and-removal-process-for-inactive-members.md' rfc_revocation_rules = 'https://github.com/cloudfoundry/community/blob/main/toc/rfc/rfc-0025-define-criteria-and-removal-process-for-inactive-members.md#remove-the-membership-to-the-cloud-foundry-github-organization' - title = "Inactive users to be deleted" users_as_list = "\n".join(str(s) for s in users_to_delete) - body = f"Acording to the rolues for inactivity defined in [RFC-0025]({rfc}) following users will be deleted:\n" \ - f"{users_as_list}\nPer the [revocation policy in the RFC]({rfc_revocation_rules}), users have two weeks to refute this revocation, if they wish." - issue = {'title': title, - 'body': body} - repository_url = f"https://api.github.com/repos/{self.github_repo_owner}/{self.github_repo}/issues" - request = requests.post(repository_url, json.dumps(issue), headers=self._get_request_headrs()) - return self._process_request_result(request) + out_value = f"Acording to the rolues for inactivity defined in [RFC-0025]({rfc}) following users will be deleted:\n" \ + f"{users_as_list}\nAccording to the [revocation policy in the RFC]({rfc_revocation_rules}), users have two weeks to refute this revocation, if they wish." + with open(os.environ['GITHUB_OUTPUT'], 'a') as env: + print(f'inactive_users_pr_description={out_value}', file=env) + print(f"inactive_users_value is {out_value}") if __name__ == "__main__": - one_years_before = (datetime.datetime.now() - datetime.timedelta(days=365)).strftime('%Y-%m-%dT%H:%M:%SZ') + one_year_back = (datetime.datetime.now() - datetime.timedelta(days=365)).strftime('%Y-%m-%dT%H:%M:%SZ') parser = argparse.ArgumentParser(description="Cloud Foundry Org Inactive User Handler") parser.add_argument("-goid", "--githuborgid", default="O_kgDOAAl8sg", help="Cloud Foundry Github org ID") parser.add_argument("-go", "--githuborg", default="cloudfoundry", help="Cloud Foundry Github org name") parser.add_argument("-gr", "--githubrepo", default="community", help="Cloud Foundry Github community repository") parser.add_argument("-gro", "--githubrepoowner", default="cloudfoundry", help="Cloud Foundry Github community repository owner") - parser.add_argument("-sd", "--sincedate", default=one_years_before, help="Since when the activity should be analyze. Date forma in '%Y-%m-%dT%H:%M:%SZ'") + parser.add_argument("-sd", "--sincedate", default=one_year_back, help="Since when the activity should be analyze. Date forma in '%Y-%m-%dT%H:%M:%SZ'") parser.add_argument("-gt", "--githubtoken", default="", help="Github API access token") args = parser.parse_args() @@ -115,7 +132,9 @@ def create_github_deletion_issue(self, users_to_delete): print(f"Inactive users length is {len(inactive_users)} and inactive users are {inactive_users}") users_to_delete = inactive_users - community_members_with_role - userHandler.create_github_deletion_issue(users_to_delete) + if users_to_delete: + userHandler.delete_inactive_contributors(users_to_delete) + userHandler.add_inactive_users_output(users_to_delete) inactive_users_with_role = community_members_with_role.intersection(inactive_users) print(f"Inactive users with role length is {len(inactive_users_with_role)} and users are {inactive_users_with_role}") From d2d50b3ad8829d33d948a6d28e7b1abc5b63da42 Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Wed, 13 Dec 2023 15:28:58 +0100 Subject: [PATCH 41/76] Fix typos and formatting issues --- org/org_user_management.py | 64 ++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 26 deletions(-) diff --git a/org/org_user_management.py b/org/org_user_management.py index 9ac01080..78ccaa0d 100644 --- a/org/org_user_management.py +++ b/org/org_user_management.py @@ -1,7 +1,6 @@ import requests import argparse import datetime -import json import yaml import os @@ -9,6 +8,7 @@ _SCRIPT_PATH = os.path.dirname(os.path.abspath(__file__)) + class InactiveUserHandler: def __init__( self, @@ -36,7 +36,7 @@ def _process_request_result(self, request): raise Exception(f"Request execution failed with status code of {request.status_code}. {request.status_code}") def _execute_query(self, query): - request = requests.post('https://api.github.com/graphql', json={'query': query}, headers=self._get_request_headrs()) + request = requests.post("https://api.github.com/graphql", json={"query": query}, headers=self._get_request_headrs()) return self._process_request_result(request) def _build_query(self, after_cursor_value=None): @@ -58,76 +58,88 @@ def _build_query(self, after_cursor_value=None): } } } - """ % (self.github_org, after_cursor, self.github_org_id, self.activity_date) + """ % ( + self.github_org, + after_cursor, + self.github_org_id, + self.activity_date, + ) return query def get_inactive_users(self): inactive_users = set() has_next_page = True - afeter_cursor_value = None + after_cursor_value = None while has_next_page: - result = self._execute_query(self._build_query(afeter_cursor_value)) + result = self._execute_query(self._build_query(after_cursor_value)) for user_node in result["data"]["organization"]["membersWithRole"]["nodes"]: user = user_node["login"] activity = user_node["contributionsCollection"]["hasAnyContributions"] - print( f"The user '{user}' has activity value {activity} contirbutions") + print(f"The user '{user}' has activity value {activity} contributions") if not activity: - print( f"Adding user '{user}' as inactive") + print(f"Adding user '{user}' as inactive") inactive_users.add(user) - has_next_page = result["data"]["organization"]["membersWithRole"]["pageInfo"]["hasNextPage"] - afeter_cursor_value = result["data"]["organization"]["membersWithRole"]["pageInfo"]["endCursor"] + after_cursor_value = result["data"]["organization"]["membersWithRole"]["pageInfo"]["endCursor"] return inactive_users def _load_yaml_file(self, path): - with open(path, "r") as stream: - return yaml.safe_load(stream) + with open(path, "r") as stream: + return yaml.safe_load(stream) def _write_yaml_file(self, path, data): with open(path, "w") as f: yaml.dump(data, f) - def delete_inactive_contributors(self, users_to_delete): path = f"{_SCRIPT_PATH}/contributors.yml" contributors_yaml = self._load_yaml_file(path) - for user in users_to_delete: - updated_contributors = list(filter(lambda item: item!=user, contributors_yaml['contributors'])) - contributors_yaml['contributors'] = updated_contributors + contributors_yaml["contributors"] = [c for c in contributors_yaml["contributors"] if c not in users_to_delete] self._write_yaml_file(path, contributors_yaml) def add_inactive_users_output(self, users_to_delete): - rfc = 'https://github.com/cloudfoundry/community/blob/main/toc/rfc/rfc-0025-define-criteria-and-removal-process-for-inactive-members.md' - rfc_revocation_rules = 'https://github.com/cloudfoundry/community/blob/main/toc/rfc/rfc-0025-define-criteria-and-removal-process-for-inactive-members.md#remove-the-membership-to-the-cloud-foundry-github-organization' + rfc = ( + "https://github.com/cloudfoundry/community/blob/main/toc/rfc/" + "rfc-0025-define-criteria-and-removal-process-for-inactive-members.md" + ) + rfc_revocation_rules = ( + "https://github.com/cloudfoundry/community/blob/main/toc/rfc/rfc-0025-define-" + "criteria-and-removal-process-for-inactive-members.md#remove-the-membership-to-the-cloud-foundry-github-organization" + ) users_as_list = "\n".join(str(s) for s in users_to_delete) - out_value = f"Acording to the rolues for inactivity defined in [RFC-0025]({rfc}) following users will be deleted:\n" \ - f"{users_as_list}\nAccording to the [revocation policy in the RFC]({rfc_revocation_rules}), users have two weeks to refute this revocation, if they wish." - with open(os.environ['GITHUB_OUTPUT'], 'a') as env: - print(f'inactive_users_pr_description={out_value}', file=env) + out_value = ( + f"According to the rolues for inactivity defined in [RFC-0025]({rfc}) following users will be deleted:\n" + f"{users_as_list}\nAccording to the [revocation policy in the RFC]({rfc_revocation_rules}), users have" + " two weeks to refute this revocation, if they wish." + ) + with open(os.environ["GITHUB_OUTPUT"], "a") as env: + print(f"inactive_users_pr_description={out_value}", file=env) print(f"inactive_users_value is {out_value}") if __name__ == "__main__": - one_year_back = (datetime.datetime.now() - datetime.timedelta(days=365)).strftime('%Y-%m-%dT%H:%M:%SZ') + one_year_back = (datetime.datetime.now() - datetime.timedelta(days=365)).strftime("%Y-%m-%dT%H:%M:%SZ") parser = argparse.ArgumentParser(description="Cloud Foundry Org Inactive User Handler") parser.add_argument("-goid", "--githuborgid", default="O_kgDOAAl8sg", help="Cloud Foundry Github org ID") parser.add_argument("-go", "--githuborg", default="cloudfoundry", help="Cloud Foundry Github org name") parser.add_argument("-gr", "--githubrepo", default="community", help="Cloud Foundry Github community repository") parser.add_argument("-gro", "--githubrepoowner", default="cloudfoundry", help="Cloud Foundry Github community repository owner") - parser.add_argument("-sd", "--sincedate", default=one_year_back, help="Since when the activity should be analyze. Date forma in '%Y-%m-%dT%H:%M:%SZ'") + parser.add_argument("-sd", "--sincedate", default=one_year_back, help="Since when to analyze in format '%Y-%m-%dT%H:%M:%SZ'") parser.add_argument("-gt", "--githubtoken", default="", help="Github API access token") args = parser.parse_args() - print('Get information about community users') + print("Get information about community users") generator = OrgGenerator() generator.load_from_project() community_members_with_role = generator.get_community_members_with_role() - print('Analyzing Cloud Foundry org user activity.') - userHandler = InactiveUserHandler(args.githuborg, args.githubrepo, args.githubrepoowner, args.githuborgid, args.sincedate, args.githubtoken) + print("Analyzing Cloud Foundry org user activity.") + userHandler = InactiveUserHandler( + args.githuborg, args.githubrepo, args.githubrepoowner, args.githuborgid, args.sincedate, args.githubtoken + ) inactive_users = userHandler.get_inactive_users() print(f"Inactive users length is {len(inactive_users)} and inactive users are {inactive_users}") From 52833580193c4a9b8e2a21407e9995b921840c36 Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Wed, 13 Dec 2023 16:00:23 +0100 Subject: [PATCH 42/76] Implement dry-run option --- org/org_user_management.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/org/org_user_management.py b/org/org_user_management.py index 78ccaa0d..c7362a40 100644 --- a/org/org_user_management.py +++ b/org/org_user_management.py @@ -99,7 +99,7 @@ def delete_inactive_contributors(self, users_to_delete): contributors_yaml["contributors"] = [c for c in contributors_yaml["contributors"] if c not in users_to_delete] self._write_yaml_file(path, contributors_yaml) - def add_inactive_users_output(self, users_to_delete): + def get_inactive_users_msg(self, users_to_delete): rfc = ( "https://github.com/cloudfoundry/community/blob/main/toc/rfc/" "rfc-0025-define-criteria-and-removal-process-for-inactive-members.md" @@ -109,14 +109,11 @@ def add_inactive_users_output(self, users_to_delete): "criteria-and-removal-process-for-inactive-members.md#remove-the-membership-to-the-cloud-foundry-github-organization" ) users_as_list = "\n".join(str(s) for s in users_to_delete) - out_value = ( + return ( f"According to the rolues for inactivity defined in [RFC-0025]({rfc}) following users will be deleted:\n" f"{users_as_list}\nAccording to the [revocation policy in the RFC]({rfc_revocation_rules}), users have" " two weeks to refute this revocation, if they wish." ) - with open(os.environ["GITHUB_OUTPUT"], "a") as env: - print(f"inactive_users_pr_description={out_value}", file=env) - print(f"inactive_users_value is {out_value}") if __name__ == "__main__": @@ -129,6 +126,7 @@ def add_inactive_users_output(self, users_to_delete): parser.add_argument("-gro", "--githubrepoowner", default="cloudfoundry", help="Cloud Foundry Github community repository owner") parser.add_argument("-sd", "--sincedate", default=one_year_back, help="Since when to analyze in format '%Y-%m-%dT%H:%M:%SZ'") parser.add_argument("-gt", "--githubtoken", default="", help="Github API access token") + parser.add_argument("-dr", "--dryrun", default=False, help="Dry run execution") args = parser.parse_args() print("Get information about community users") @@ -144,9 +142,14 @@ def add_inactive_users_output(self, users_to_delete): print(f"Inactive users length is {len(inactive_users)} and inactive users are {inactive_users}") users_to_delete = inactive_users - community_members_with_role - if users_to_delete: + inactive_users_msg = userHandler.get_inactive_users_msg(users_to_delete) + if args.dryrun: + print(f"Dry-run mode.\nInactive_users_msg is: {inactive_users_msg}") + print(f"Following users will be deleted: {inactive_users}") + elif users_to_delete: userHandler.delete_inactive_contributors(users_to_delete) - userHandler.add_inactive_users_output(users_to_delete) + with open(os.environ["GITHUB_OUTPUT"], "a") as env: + print(f"inactive_users_pr_description={inactive_users_msg}", file=env) inactive_users_with_role = community_members_with_role.intersection(inactive_users) print(f"Inactive users with role length is {len(inactive_users_with_role)} and users are {inactive_users_with_role}") From 64ec7e79b34b3924330f0e2c256be0fb3b62cc35 Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Wed, 13 Dec 2023 16:06:30 +0100 Subject: [PATCH 43/76] Remove unused arg options --- org/org_user_management.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/org/org_user_management.py b/org/org_user_management.py index c7362a40..139837bc 100644 --- a/org/org_user_management.py +++ b/org/org_user_management.py @@ -13,15 +13,11 @@ class InactiveUserHandler: def __init__( self, github_org: [str], - github_repo: [str], - github_repo_owner: [str], github_org_id: [str], activity_date: [str], github_token: [str], ): self.github_org = github_org - self.github_repo = github_repo - self.github_repo_owner = github_repo_owner self.github_org_id = github_org_id self.activity_date = activity_date self.github_token = github_token @@ -122,8 +118,6 @@ def get_inactive_users_msg(self, users_to_delete): parser = argparse.ArgumentParser(description="Cloud Foundry Org Inactive User Handler") parser.add_argument("-goid", "--githuborgid", default="O_kgDOAAl8sg", help="Cloud Foundry Github org ID") parser.add_argument("-go", "--githuborg", default="cloudfoundry", help="Cloud Foundry Github org name") - parser.add_argument("-gr", "--githubrepo", default="community", help="Cloud Foundry Github community repository") - parser.add_argument("-gro", "--githubrepoowner", default="cloudfoundry", help="Cloud Foundry Github community repository owner") parser.add_argument("-sd", "--sincedate", default=one_year_back, help="Since when to analyze in format '%Y-%m-%dT%H:%M:%SZ'") parser.add_argument("-gt", "--githubtoken", default="", help="Github API access token") parser.add_argument("-dr", "--dryrun", default=False, help="Dry run execution") @@ -135,9 +129,7 @@ def get_inactive_users_msg(self, users_to_delete): community_members_with_role = generator.get_community_members_with_role() print("Analyzing Cloud Foundry org user activity.") - userHandler = InactiveUserHandler( - args.githuborg, args.githubrepo, args.githubrepoowner, args.githuborgid, args.sincedate, args.githubtoken - ) + userHandler = InactiveUserHandler(args.githuborg, args.githuborgid, args.sincedate, args.githubtoken) inactive_users = userHandler.get_inactive_users() print(f"Inactive users length is {len(inactive_users)} and inactive users are {inactive_users}") From 726e818ca4c4c5f06f59e42e0cd29f413ac3b8d7 Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Wed, 13 Dec 2023 16:13:45 +0100 Subject: [PATCH 44/76] Add documentation to the readme --- org/readme.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/org/readme.md b/org/readme.md index d3ae1690..006f6770 100644 --- a/org/readme.md +++ b/org/readme.md @@ -73,6 +73,11 @@ Limitations: - The branchprotector doesn't support wildcards for branch rules. I.e. every version branch gets its own rule. - The branchprotector doesn't delete unneeded branch protection rules e.g. when a version branch got deleted. +### Inactive User Management +Inactive users according to the criteria defined in +[rfc-0025-define-criteria-and-removal-process-for-inactive-members](https://github.com/cloudfoundry/community/blob/main/toc/rfc/rfc-0025-define-criteria-and-removal-process-for-inactive-members.md) are identified by an automation which opens a pull-request to delete those. + + ## Development Requires Python 3.9. From b435358df6e95a7312dd2189ad325578ac3e190f Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Thu, 14 Dec 2023 16:27:29 +0100 Subject: [PATCH 45/76] Add user tagging, add env var option for token and dry_run --- .../org-inactive-user-management.yml | 2 +- org/org_user_management.py | 30 +++++++++++++++---- org/readme.md | 23 ++++++++++++++ 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/.github/workflows/org-inactive-user-management.yml b/.github/workflows/org-inactive-user-management.yml index 2c6d85f9..80d415a8 100644 --- a/.github/workflows/org-inactive-user-management.yml +++ b/.github/workflows/org-inactive-user-management.yml @@ -19,7 +19,7 @@ jobs: run: | python -m pip install --upgrade pip pip install -r community/org/requirements.txt - python community/org/org_user_management.py -gt ${{ secrets.GH_TOKEN }} + python community/org/org_user_management.py - name: Create Pull Request if: ${{ steps.uds.outputs.inactive_users_pr_description }} uses: peter-evans/create-pull-request@v4 diff --git a/org/org_user_management.py b/org/org_user_management.py index 139837bc..f3327713 100644 --- a/org/org_user_management.py +++ b/org/org_user_management.py @@ -95,7 +95,7 @@ def delete_inactive_contributors(self, users_to_delete): contributors_yaml["contributors"] = [c for c in contributors_yaml["contributors"] if c not in users_to_delete] self._write_yaml_file(path, contributors_yaml) - def get_inactive_users_msg(self, users_to_delete): + def get_inactive_users_msg(self, users_to_delete, tagusers): rfc = ( "https://github.com/cloudfoundry/community/blob/main/toc/rfc/" "rfc-0025-define-criteria-and-removal-process-for-inactive-members.md" @@ -104,13 +104,18 @@ def get_inactive_users_msg(self, users_to_delete): "https://github.com/cloudfoundry/community/blob/main/toc/rfc/rfc-0025-define-" "criteria-and-removal-process-for-inactive-members.md#remove-the-membership-to-the-cloud-foundry-github-organization" ) - users_as_list = "\n".join(str(s) for s in users_to_delete) + user_tagging_prefix = "@" if tagusers else "" + users_as_list = "\n".join(str(user_tagging_prefix + s) for s in users_to_delete) return ( f"According to the rolues for inactivity defined in [RFC-0025]({rfc}) following users will be deleted:\n" f"{users_as_list}\nAccording to the [revocation policy in the RFC]({rfc_revocation_rules}), users have" " two weeks to refute this revocation, if they wish." ) + @staticmethod + def _get_bool_env_var(env_var_name, default): + return os.getenv(env_var_name, default).lower() == "true" + if __name__ == "__main__": one_year_back = (datetime.datetime.now() - datetime.timedelta(days=365)).strftime("%Y-%m-%dT%H:%M:%SZ") @@ -118,9 +123,22 @@ def get_inactive_users_msg(self, users_to_delete): parser = argparse.ArgumentParser(description="Cloud Foundry Org Inactive User Handler") parser.add_argument("-goid", "--githuborgid", default="O_kgDOAAl8sg", help="Cloud Foundry Github org ID") parser.add_argument("-go", "--githuborg", default="cloudfoundry", help="Cloud Foundry Github org name") - parser.add_argument("-sd", "--sincedate", default=one_year_back, help="Since when to analyze in format '%Y-%m-%dT%H:%M:%SZ'") - parser.add_argument("-gt", "--githubtoken", default="", help="Github API access token") - parser.add_argument("-dr", "--dryrun", default=False, help="Dry run execution") + parser.add_argument("-sd", "--sincedate", default=one_year_back, help="Since when to analyze in format 'Y-m-dTH:M:SZ'") + parser.add_argument( + "-gt", "--githubtoken", default=os.environ.get("GH_TOKEN"), help="Github API access token. Supported also as env var 'GH_TOKEN'" + ) + parser.add_argument( + "-dr", + "--dryrun", + default=InactiveUserHandler._get_bool_env_var("INACTIVE_USER_MANAGEMENT_DRY_RUN", "False"), + help="Dry run execution. Supported also as env var 'INACTIVE_USER_MANAGEMENT_DRY_RUN'", + ) + parser.add_argument( + "-tu", + "--tagusers", + default=InactiveUserHandler._get_bool_env_var("INACTIVE_USER_MANAGEMENT_TAG_USERS", "True"), + help="Tag users to be notified. Supported also as env var 'INACTIVE_USER_MANAGEMENT_TAG_USERS'", + ) args = parser.parse_args() print("Get information about community users") @@ -134,7 +152,7 @@ def get_inactive_users_msg(self, users_to_delete): print(f"Inactive users length is {len(inactive_users)} and inactive users are {inactive_users}") users_to_delete = inactive_users - community_members_with_role - inactive_users_msg = userHandler.get_inactive_users_msg(users_to_delete) + inactive_users_msg = userHandler.get_inactive_users_msg(users_to_delete, args.tagusers) if args.dryrun: print(f"Dry-run mode.\nInactive_users_msg is: {inactive_users_msg}") print(f"Following users will be deleted: {inactive_users}") diff --git a/org/readme.md b/org/readme.md index 006f6770..13d2819c 100644 --- a/org/readme.md +++ b/org/readme.md @@ -87,6 +87,7 @@ How to run locally: cd ./org pip install -r requirements.txt python -m org_management --help +python -m org_user_management --help ``` Usage: @@ -103,6 +104,28 @@ optional arguments: output file for generated branch protection rules ``` +``` +python -m org_user_management --help +usage: org_user_management.py [-h] [-goid GITHUBORGID] [-go GITHUBORG] [-sd SINCEDATE] [-gt GITHUBTOKEN] [-dr DRYRUN] [-tu TAGUSERS] + +Cloud Foundry Org Inactive User Handler + +options: + -h, --help show this help message and exit + -goid GITHUBORGID, --githuborgid GITHUBORGID + Cloud Foundry Github org ID + -go GITHUBORG, --githuborg GITHUBORG + Cloud Foundry Github org name + -sd SINCEDATE, --sincedate SINCEDATE + Since when to analyze in format 'Y-m-dTH:M:SZ' + -gt GITHUBTOKEN, --githubtoken GITHUBTOKEN + Github API access token. Supported also as env var 'GH_TOKEN' + -dr DRYRUN, --dryrun DRYRUN + Dry run execution. Supported also as env var 'INACTIVE_USER_MANAGEMENT_DRY_RUN' + -tu TAGUSERS, --tagusers TAGUSERS + Tag users to be notified. Supported also as env var 'INACTIVE_USER_MANAGEMENT_TAG_USERS' +``` + How to run tests: ``` cd ./org From aab3bbd980ce53038e2a3ae7bbb10a89e351de3c Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Mon, 18 Dec 2023 10:34:42 +0100 Subject: [PATCH 46/76] Add manual trigger and make args bool typ --- .github/workflows/org-inactive-user-management.yml | 1 + org/org_user_management.py | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/org-inactive-user-management.yml b/.github/workflows/org-inactive-user-management.yml index 80d415a8..9180804c 100644 --- a/.github/workflows/org-inactive-user-management.yml +++ b/.github/workflows/org-inactive-user-management.yml @@ -3,6 +3,7 @@ name: 'Delete Inactive Users in Github Organization' on: schedule: - cron: '0 0 1 * *' + workflow_dispatch: jobs: org-config-generation-check: diff --git a/org/org_user_management.py b/org/org_user_management.py index f3327713..a7418f49 100644 --- a/org/org_user_management.py +++ b/org/org_user_management.py @@ -130,13 +130,13 @@ def _get_bool_env_var(env_var_name, default): parser.add_argument( "-dr", "--dryrun", - default=InactiveUserHandler._get_bool_env_var("INACTIVE_USER_MANAGEMENT_DRY_RUN", "False"), + action="store_true", help="Dry run execution. Supported also as env var 'INACTIVE_USER_MANAGEMENT_DRY_RUN'", ) parser.add_argument( "-tu", "--tagusers", - default=InactiveUserHandler._get_bool_env_var("INACTIVE_USER_MANAGEMENT_TAG_USERS", "True"), + action="store_true", help="Tag users to be notified. Supported also as env var 'INACTIVE_USER_MANAGEMENT_TAG_USERS'", ) args = parser.parse_args() @@ -152,8 +152,9 @@ def _get_bool_env_var(env_var_name, default): print(f"Inactive users length is {len(inactive_users)} and inactive users are {inactive_users}") users_to_delete = inactive_users - community_members_with_role - inactive_users_msg = userHandler.get_inactive_users_msg(users_to_delete, args.tagusers) - if args.dryrun: + tagusers = args.tagusers or InactiveUserHandler._get_bool_env_var("INACTIVE_USER_MANAGEMENT_TAG_USERS", "False") + inactive_users_msg = userHandler.get_inactive_users_msg(users_to_delete, tagusers) + if args.dryrun or InactiveUserHandler._get_bool_env_var("INACTIVE_USER_MANAGEMENT_DRY_RUN", "False"): print(f"Dry-run mode.\nInactive_users_msg is: {inactive_users_msg}") print(f"Following users will be deleted: {inactive_users}") elif users_to_delete: From a92067a899c016651d33fb39d65ed84920085eb5 Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Tue, 19 Dec 2023 14:02:07 +0100 Subject: [PATCH 47/76] Add push trigger for testing --- .github/workflows/org-inactive-user-management.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/org-inactive-user-management.yml b/.github/workflows/org-inactive-user-management.yml index 9180804c..7a15957e 100644 --- a/.github/workflows/org-inactive-user-management.yml +++ b/.github/workflows/org-inactive-user-management.yml @@ -4,6 +4,9 @@ on: schedule: - cron: '0 0 1 * *' workflow_dispatch: + push: + branches: + - "test-add-inactive-user-removal-automation" jobs: org-config-generation-check: From 6032888ab2e14ad3025332374e3ea78205b2d170 Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Tue, 19 Dec 2023 14:18:20 +0100 Subject: [PATCH 48/76] Pass takone as env var to gh action --- .github/workflows/org-inactive-user-management.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/org-inactive-user-management.yml b/.github/workflows/org-inactive-user-management.yml index 7a15957e..678deaa2 100644 --- a/.github/workflows/org-inactive-user-management.yml +++ b/.github/workflows/org-inactive-user-management.yml @@ -24,6 +24,8 @@ jobs: python -m pip install --upgrade pip pip install -r community/org/requirements.txt python community/org/org_user_management.py + env: + GH_TOKEN: ${{ secrets.GH_TOKEN }} - name: Create Pull Request if: ${{ steps.uds.outputs.inactive_users_pr_description }} uses: peter-evans/create-pull-request@v4 From 7fc310e421c3c8242f8d065f4010a6aa85723043 Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Tue, 19 Dec 2023 14:29:24 +0100 Subject: [PATCH 49/76] Change to multi line string in the output --- .github/workflows/org-inactive-user-management.yml | 2 +- org/org_user_management.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/org-inactive-user-management.yml b/.github/workflows/org-inactive-user-management.yml index 678deaa2..91a93818 100644 --- a/.github/workflows/org-inactive-user-management.yml +++ b/.github/workflows/org-inactive-user-management.yml @@ -6,7 +6,7 @@ on: workflow_dispatch: push: branches: - - "test-add-inactive-user-removal-automation" + - "add-inactive-user-removal-automation" jobs: org-config-generation-check: diff --git a/org/org_user_management.py b/org/org_user_management.py index a7418f49..ad2687ae 100644 --- a/org/org_user_management.py +++ b/org/org_user_management.py @@ -3,6 +3,7 @@ import datetime import yaml import os +import uuid from org_management import OrgGenerator @@ -160,7 +161,9 @@ def _get_bool_env_var(env_var_name, default): elif users_to_delete: userHandler.delete_inactive_contributors(users_to_delete) with open(os.environ["GITHUB_OUTPUT"], "a") as env: - print(f"inactive_users_pr_description={inactive_users_msg}", file=env) + separator = uuid.uuid1() + step_output_name = "inactive_users_pr_description" + print(f"{step_output_name}<<{separator}\n{inactive_users_msg}\n{separator}", file=env) inactive_users_with_role = community_members_with_role.intersection(inactive_users) print(f"Inactive users with role length is {len(inactive_users_with_role)} and users are {inactive_users_with_role}") From af415c214c31dc1488a67c361cc643e47c24f610 Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Fri, 12 Jan 2024 09:37:32 +0100 Subject: [PATCH 50/76] Add Vulnerability Management WG contributors With [pr](https://github.com/cloudfoundry/community/pull/746) we introduced roles yaml for the VM WG. We missed to add the members as contributors with that pr. --- org/contributors.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/org/contributors.yml b/org/contributors.yml index b87c8112..bfc089f3 100644 --- a/org/contributors.yml +++ b/org/contributors.yml @@ -265,6 +265,7 @@ contributors: - ifindlay-cci - IgorBelyi - ihcsim +- ijzerman - ikasarov - ilackarms - iplay88keys @@ -544,6 +545,7 @@ contributors: - simonjjones - simonleung8 - skibum55 +- skhushboo-vm - smoser-ibm - snneji - Soha-Albaghdady From db6c25e2becfb94ae0e33b748ba15f39dec1a04b Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Fri, 12 Jan 2024 10:02:58 +0100 Subject: [PATCH 51/76] Activate user tagging in inactive user automation --- .github/workflows/org-inactive-user-management.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/org-inactive-user-management.yml b/.github/workflows/org-inactive-user-management.yml index 91a93818..83c8dc03 100644 --- a/.github/workflows/org-inactive-user-management.yml +++ b/.github/workflows/org-inactive-user-management.yml @@ -26,6 +26,7 @@ jobs: python community/org/org_user_management.py env: GH_TOKEN: ${{ secrets.GH_TOKEN }} + INACTIVE_USER_MANAGEMENT_TAG_USERS: ${{ secrets.INACTIVE_USER_MANAGEMENT_TAG_USERS }} - name: Create Pull Request if: ${{ steps.uds.outputs.inactive_users_pr_description }} uses: peter-evans/create-pull-request@v4 From dacd3c85117c010e86881515b749a275c1ad762a Mon Sep 17 00:00:00 2001 From: Beyhan Veli Date: Fri, 12 Jan 2024 11:16:50 +0100 Subject: [PATCH 52/76] Compare users case insensitive The users returned by Github and listed in our contributors.yml are not equal regarding case sensitivity. That is why a case insensitive comparison is required. --- org/org_user_management.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/org/org_user_management.py b/org/org_user_management.py index ad2687ae..70eb6ccb 100644 --- a/org/org_user_management.py +++ b/org/org_user_management.py @@ -93,7 +93,8 @@ def _write_yaml_file(self, path, data): def delete_inactive_contributors(self, users_to_delete): path = f"{_SCRIPT_PATH}/contributors.yml" contributors_yaml = self._load_yaml_file(path) - contributors_yaml["contributors"] = [c for c in contributors_yaml["contributors"] if c not in users_to_delete] + users_to_delete_lower = [user.lower() for user in users_to_delete] + contributors_yaml["contributors"] = [c for c in contributors_yaml["contributors"] if c.lower() not in users_to_delete_lower] self._write_yaml_file(path, contributors_yaml) def get_inactive_users_msg(self, users_to_delete, tagusers): From 5007b94e4d5f955af1f0bfde13ba27abb65ac690 Mon Sep 17 00:00:00 2001 From: Brandon Roberson Date: Tue, 16 Jan 2024 15:26:23 +0000 Subject: [PATCH 53/76] Remove from list of working group projects as well --- toc/working-groups/app-runtime-platform.md | 1 - 1 file changed, 1 deletion(-) diff --git a/toc/working-groups/app-runtime-platform.md b/toc/working-groups/app-runtime-platform.md index d84a6d85..27b5ec5a 100644 --- a/toc/working-groups/app-runtime-platform.md +++ b/toc/working-groups/app-runtime-platform.md @@ -192,7 +192,6 @@ areas: - cloudfoundry/garden-performance-acceptance-tests - cloudfoundry/garden-runc-release - cloudfoundry/garden-wiki - - cloudfoundry/garden-windows-ci - cloudfoundry/garden-windows-tools-release - cloudfoundry/groot - cloudfoundry/groot-windows From f54ed840608dd15dd30b108a246a7226eb16f833 Mon Sep 17 00:00:00 2001 From: Jeanette Booher Date: Tue, 9 Jan 2024 09:56:01 -0700 Subject: [PATCH 54/76] add new teammates --- org/contributors.yml | 19 +++++++++++ toc/working-groups/app-runtime-platform.md | 38 ++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/org/contributors.yml b/org/contributors.yml index bfc089f3..c991e933 100644 --- a/org/contributors.yml +++ b/org/contributors.yml @@ -18,6 +18,7 @@ contributors: - acrmp - acvwilson - addytripathi +- aditya267vmware - adobley - aduffeck - advpetc @@ -129,6 +130,7 @@ contributors: - cf-zapier - cfdocs-bot - cfryanr +- chaitanyamullangi - chaomonica - christianang - christo4ferris @@ -171,6 +173,7 @@ contributors: - devtdeng - dgolds - dhrapson +- dibya1947 - djac - djavos-bot - dlresende @@ -187,11 +190,13 @@ contributors: - draganm - drich10 - dsabeti +- dsanand22 - dsboulder - dsharp-pivotal - dsyer - dtillman - dtimm +- dubeyshefali - dumez-k - ebroberson - edespino @@ -297,6 +302,7 @@ contributors: - jkjell - jkonicki - jmarrero +- jmervinnirma - jncd - jochenehret - joeeltgroth @@ -317,8 +323,10 @@ contributors: - julian-hj - Justin-W - k1tm +- kabathla - KaiHofstetter - kaleo211 +- karthikseshadri - kartiklunkad26 - kathap - kauana @@ -339,6 +347,7 @@ contributors: - knm3000 - kohara88 - korifi-bot +- kpujadev - kreinecke - kriscott - krook @@ -357,6 +366,7 @@ contributors: - loganloganlogan - lterminasyan - lwoydziak +- m-thavaf - maheshkumarvs - malba - malik-altaf @@ -403,12 +413,14 @@ contributors: - mrdavidlaing - mrosecrance - msmykowski +- mukeshkhicher-br - mvach - mvalliath - myeghiazarya - N00BEST - n4wei - nader-ziada +- nakulogale-cb - nand2 - natalieparellano - navdeep-pama @@ -485,6 +497,7 @@ contributors: - qibobo - qu1queee - rade +- radhavmwtnz - radito3 - ragaskar - rahulkj @@ -517,11 +530,13 @@ contributors: - rosenhouse - roshan-a - routing-ci +- rpranay1 - rroberts2222 - rszumlakowski - runtime-ci - ryanwittrup - s4heid +- saloni-sshah - salzmannsusan - sampeinado - Samze @@ -536,11 +551,14 @@ contributors: - selzoc - services-api-ci - sethboyles +- sg038444 - shamus - Shanfan - shanks3012 - shaun7pan - shilpachandrashekara +- shrisha-c +- siddarthalk - silvestre - simonjjones - simonleung8 @@ -556,6 +574,7 @@ contributors: - squeedee - ssapra - ssisil +- ssunka - st3v - staylor14 - stefanlay diff --git a/toc/working-groups/app-runtime-platform.md b/toc/working-groups/app-runtime-platform.md index d84a6d85..44afbdb3 100644 --- a/toc/working-groups/app-runtime-platform.md +++ b/toc/working-groups/app-runtime-platform.md @@ -272,6 +272,44 @@ areas: approvers: - name: Jeanette Booher github: jbooherl + - name: Aditya Choudhary + github: aditya267vmware + - name: Chaitanya Krishna Mullangi + github: chaitanyamullangi + - name: Dibyajyoti Mohapatra + github: dibya1947 + - name: Kanika Bathla + github: kabathla + - name: Karthik Seshadri + github: karthikseshadri + - name: Mervin Nirmal John M W + github: jmervinnirma + - name: Mohammed Thavaf A R + github: m-thavaf + - name: Mukesh Khicher + github: mukeshkhicher-br + - name: Nakul Ogale + github: nakulogale-cb + - name: Pranay Raj + github: rpranay1 + - name: Puja Kumari + github: kpujadev + - name: Radhakrishnan Devarajan + github: radhavmwtnz + - name: Saloni Shah + github: saloni-sshah + - name: Sanand Dange + github: dsanand22 + - name: Shefali Dubey + github: dubeyshefali + - name: Shrisha Chandrashekar + github: shrisha-c + - name: Siddartha Laxman Karibhimanvar + github: siddarthalk + - name: Srinivas Sunka + github: ssunka + - name: Sudharsan G V + github: sg038444 - name: Hovhannes Manukyan github: hmanukyanVMw - name: Gevorg Gevorgyan From 3db212c5639c1250a6f66356ec153248dd1b1e0a Mon Sep 17 00:00:00 2001 From: Daniel Mikusa Date: Wed, 17 Jan 2024 00:09:58 -0500 Subject: [PATCH 55/76] Add roles yaml section to Paketo WG Signed-off-by: Daniel Mikusa --- toc/working-groups/paketo.md | 276 ++++++++++++++++++++++++++++++++++- 1 file changed, 274 insertions(+), 2 deletions(-) diff --git a/toc/working-groups/paketo.md b/toc/working-groups/paketo.md index 6fea98c9..e0269d05 100644 --- a/toc/working-groups/paketo.md +++ b/toc/working-groups/paketo.md @@ -4,7 +4,6 @@ Provides Paketo buildpacks for servers, languages, and frameworks popular with application developers. - ## Goals - Provides end users with stable, reliable and performant buildpacks with which to build their application. @@ -31,10 +30,283 @@ Provides Paketo buildpacks for servers, languages, and frameworks popular with a [Working group membership](https://github.com/paketo-buildpacks/community/blob/main/TEAMS.md) -## Technical Assets +## Roles & Technical Assets Technical assets for the Paketo working group are contained in the following Github Organizations: - [github.com/paketo-buildpacks](https://github.com/paketo-buildpacks) - [github.com/paketo-community](https://github.com/paketo-community) +```yaml +name: Paketo +execution_leads: +- name: Forest Eckhardt + github: ForestEckhardt +- name: Daniel Mikusa + github: dmikusa +- name: Jan von Löwenstein + github: loewenstein +technical_leads: +- name: Forest Eckhardt + github: ForestEckhardt +- name: Daniel Mikusa + github: dmikusa +- name: Jan von Löwenstein + github: loewenstein +bots: +- name: paketo-bot + github: paketo-bot +- name: paketo-bot-reviewer + github: paketo-bot-reviewer +areas: +- name: App Monitoring + approvers: + - name: Daniel Mikusa + github: dmikusa + - name: Joshua Casey + github: joshuatcasey + - name: David O'Sullivan + github: pivotal-david-osullivan + reviewers: +- name: Builders + approvers: + - name: Forest Eckhardt + github: ForestEckhardt + - name: Rob Dimsdale-Zucker + github: robdimsdale + reviewers: + - name: Arjun Sreedharan + github: arjun024 + - name: Tim Hitchener + github: thitch97 + - name: Jerico Pena + github: jericop + - name: Sophie Wigmore + github: sophiewigmore +- name: Content + approvers: + - name: Forest Eckhardt + github: ForestEckhardt + - name: Victoria Campbell + github: TisVictress + reviewers: + - name: Arjun Sreedharan + github: arjun024 + - name: Daniel Mikusa + github: dmikusa + - name: Tim Hitchener + github: thitch97 + - name: Rob Dimsdale-Zucker + github: robdimsdale + - name: Sophie Wigmore + github: sophiewigmore +- name: Dependencies + approvers: + - name: Rob Dimsdale-Zucker + github: robdimsdale + - name: Brayan Henao + github: brayanhenao + - name: Sophie Wigmore + github: sophiewigmore + reviewers: + - name: Arjun Sreedharan + github: arjun024 + - name: Tim Hitchener + github: thitch97 + - name: Forest Eckhardt + github: ForestEckhardt + - name: Joshua Casey + github: joshuatcasey +- name: Dotnet Core + approvers: + - name: Forest Eckhardt + github: ForestEckhardt + - name: Sophie Wigmore + github: sophiewigmore + reviewers: + - name: Arjun Sreedharan + github: arjun024 + - name: Tim Hitchener + github: thitch97 + - name: Joshua Casey + github: joshuatcasey +- name: Go + approvers: + - name: Forest Eckhardt + github: ForestEckhardt + - name: Rob Dimsdale-Zucker + github: robdimsdale + reviewers: + - name: Arjun Sreedharan + github: arjun024 + - name: Tim Hitchener + github: thitch97 + - name: Genevieve L'Esperance + github: genevieve + - name: Sophie Wigmore + github: sophiewigmore + - name: Victoria Campbell + github: TisVictress +- name: Java + approvers: + - name: Daniel Mikusa + github: dmikusa + - name: Anthony Dahanne + github: anthonydahanne + - name: David O'Sullivan + github: pivotal-david-osullivan + reviewers: + - name: Ralf Pannemans + github: c0d1ngm0nk3y + - name: Johannes Dillmann + github: modulo11 + - name: Kevin Ortega + github: kevin-ortega + - name: Hank Ibell + github: hibell +- name: NodeJS + approvers: + - name: Tim Hitchener + github: thitch97 + - name: Brayan Henao + github: brayanhenao + - name: Victoria Campbell + github: TisVictress + reviewers: + - name: Arjun Sreedharan + github: arjun024 + - name: Rob Dimsdale-Zucker + github: robdimsdale + - name: Ames + github: accrazed + - name: Ralf Pannemans + github: c0d1ngm0nk3y + - name: Forest Eckhardt + github: ForestEckhardt + - name: Sophie Wigmore + github: sophiewigmore + - name: Frankie G-J + github: fg-j + - name: Emily Johnson + github: emmjohnson +- name: PHP + approvers: + - name: Sophie Wigmore + github: sophiewigmore + - name: Arjun Sreedharan + github: arjun024 + - name: Tim Hitchener + github: thitch97 + reviewers: + - name: Rob Dimsdale-Zucker + github: robdimsdale + - name: Forest Eckhardt + github: ForestEckhardt + - name: Frankie G-J + github: fg-j + - name: Victoria Campbell + github: TisVictress + - name: Joshua Casey + github: joshuatcasey +- name: Python + approvers: + - name: Arjun Sreedharan + github: arjun024 + - name: Tim Hitchener + github: thitch97 + - name: Rob Dimsdale-Zucker + github: robdimsdale + - name: Brayan Henao + github: brayanhenao + - name: Joshua Casey + github: joshuatcasey + reviewers: + - name: Sophie Wigmore + github: sophiewigmore + - name: Forest Eckhardt + github: ForestEckhardt + - name: Victoria Campbell + github: TisVictress + - name: Emily Johnson + github: emmjohnson +- name: Ruby + approvers: + - name: Arjun Sreedharan + github: arjun024 + - name: Rob Dimsdale-Zucker + github: robdimsdale + - name: Sophie Wigmore + github: sophiewigmore + reviewers: + - name: Tim Hitchener + github: thitch97 + - name: Forest Eckhardt + github: ForestEckhardt + - name: Frankie G-J + github: fg-j + - name: Genevieve L'Esperance + github: genevieve +- name: Rust + approvers: + reviewers: +- name: Stacks + approvers: + - name: Daniel Mikusa + github: dmikusa + - name: Forest Eckhardt + github: ForestEckhardt + reviewers: +- name: Tooling + approvers: + - name: Forest Eckhardt + github: ForestEckhardt + - name: Rob Dimsdale-Zucker + github: robdimsdale + - name: Sophie Wigmore + github: sophiewigmore + reviewers: + - name: Arjun Sreedharan + github: arjun024 + - name: Daniel Mikusa + github: dmikusa + - name: Tim Hitchener + github: thitch97 + - name: Philipp Stehle + github: phil9909 +- name: Utilities + approvers: + - name: Arjun Sreedharan + github: arjun024 + - name: Daniel Mikusa + github: dmikusa + - name: Tim Hitchener + github: thitch97 + - name: Forest Eckhardt + github: ForestEckhardt + - name: David O'Sullivan + github: pivotal-david-osullivan + reviewers: + - name: Sophie Wigmore + github: sophiewigmore + - name: Frankie G-J + github: fg-j + - name: Emily Johnson + github: emmjohnson +- name: Web Servers + approvers: + - name: Arjun Sreedharan + github: arjun024 + - name: Tim Hitchener + github: thitch97 + - name: Forest Eckhardt + github: ForestEckhardt + - name: Victoria Campbell + github: TisVictress + reviewers: + - name: Rob Dimsdale-Zucker + github: robdimsdale + - name: Sophie Wigmore + github: sophiewigmore + - name: Frankie G-J + github: fg-j +``` \ No newline at end of file From 1321e248c8aa5052599b6e987aa96c9f5fd85b36 Mon Sep 17 00:00:00 2001 From: Daniel Mikusa Date: Wed, 17 Jan 2024 12:03:32 -0500 Subject: [PATCH 56/76] Add missing contributors and fix issues with paketo users Signed-off-by: Daniel Mikusa --- org/contributors.yml | 37 ++++++++++++++++++++++-------------- toc/working-groups/paketo.md | 20 +++++++++++++++---- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/org/contributors.yml b/org/contributors.yml index c991e933..bdb4e71c 100644 --- a/org/contributors.yml +++ b/org/contributors.yml @@ -1,5 +1,6 @@ contributors: - a-b +- a-hassanin - a-peek4 - a-shan - a-sudarsanan @@ -20,6 +21,7 @@ contributors: - addytripathi - aditya267vmware - adobley +- adrianhoelzl-sap - aduffeck - advpetc - aemengo @@ -48,11 +50,11 @@ contributors: - animatedmax - ankeesler - anoopjb -- anthonydahanne -- antonina-kyoseva - ansd - ansergit - anshrupani +- anthonydahanne +- antonina-kyoseva - app-autoscaler-ci-bot - APShirley - aqan213 @@ -65,7 +67,6 @@ contributors: - atwoosnam - avade - awmartin -- a-hassanin - bbr-ci - bclozel - beckermarc @@ -97,6 +98,7 @@ contributors: - bsoroushian - bwinter - C-Otto +- c0d1ngm0nk3y - cagiti - caijj - camilalonart @@ -206,6 +208,7 @@ contributors: - ekcasey - elsony - emalm +- emmjohnson - EngineerBetterCI - erabil - ericbottard @@ -237,6 +240,7 @@ contributors: - gbandres98 - gcapizzi - gdankov +- genevieve - geofffranks - georgethebeatle - georgi-lozev @@ -258,8 +262,10 @@ contributors: - HeavyWombat - heidmotron - hemarsai +- HenryBorys - herrjulz - heyjcollins +- hibell - hmanukyanVMw - hnandiwada - hoegaarden @@ -282,13 +288,14 @@ contributors: - james-masson - jamieklassen - jamiemonserrate -- jandubois +- jandubois - jaristiz - jbooherl - jchenry - jdeppe-pivotal - jdgonzaleza - jeff-hobbs +- jericop - jerrybelmonte - jessepye - jgawor @@ -334,8 +341,8 @@ contributors: - kcboyle - KeepAustinWired - kejadlen -- KevinJCross - kevin-ortega +- KevinJCross - Kiemes - kieron-dev - kimago @@ -343,6 +350,7 @@ contributors: - klakin-pivotal - klapkov - KlapTrap +- klaus-sap - kmarkwardt-vmware - knm3000 - kohara88 @@ -405,6 +413,7 @@ contributors: - MMisoch - MoatazBM - modelseer +- modulo11 - moggibear - moleske - monadic @@ -452,6 +461,8 @@ contributors: - pabloarodas - pabloschuhmacher - paigecalvert +- paketo-bot +- paketo-bot-reviewer - paltanmoy - paulcwarren - pcf-core-services @@ -465,6 +476,7 @@ contributors: - peterhaochen47 - petersca - petewall +- phil9909 - philippthun - phschon - piachakra @@ -499,6 +511,7 @@ contributors: - rade - radhavmwtnz - radito3 +- radoslav-tomov - ragaskar - rahulkj - rainmaker @@ -562,8 +575,8 @@ contributors: - silvestre - simonjjones - simonleung8 -- skibum55 - skhushboo-vm +- skibum55 - smoser-ibm - snneji - Soha-Albaghdady @@ -591,17 +604,17 @@ contributors: - svkrieger - swalchemist - swalner-pivotal -- swati1102 - swati-nair +- swati1102 - sykesm - syslxg - tack-sap +- Tallicia - tamaovmware - tanayk2610 - tanglisha - tanzeeb - tanzu-backstage-bot -- Tallicia - tas-runtime-bot - tcdowney - teddyking @@ -639,6 +652,7 @@ contributors: - vkalapov - VMWare-JasonAndrew - voelzmo +- VRBogdanov - wattersjames - wayneadams - WeiQuan0605 @@ -658,6 +672,7 @@ contributors: - xtremerui - yaelharel - yatzek +- Yavor16 - ystros - yyzjateen - zhang-hua @@ -668,9 +683,3 @@ contributors: - zucchinidev - zyjiaobj - zzori-theoriginal -- HenryBorys -- adrianhoelzl-sap -- radoslav-tomov -- VRBogdanov -- klaus-sap -- Yavor16 diff --git a/toc/working-groups/paketo.md b/toc/working-groups/paketo.md index e0269d05..745a5787 100644 --- a/toc/working-groups/paketo.md +++ b/toc/working-groups/paketo.md @@ -67,7 +67,7 @@ areas: github: joshuatcasey - name: David O'Sullivan github: pivotal-david-osullivan - reviewers: + reviewers: [] - name: Builders approvers: - name: Forest Eckhardt @@ -247,15 +247,27 @@ areas: - name: Genevieve L'Esperance github: genevieve - name: Rust - approvers: - reviewers: -- name: Stacks approvers: - name: Daniel Mikusa github: dmikusa - name: Forest Eckhardt github: ForestEckhardt + reviewers: [] +- name: Stacks + approvers: + - name: Rob Dimsdale-Zucker + github: robdimsdale + - name: Sophie Wigmore + github: sophiewigmore + - name: Brayan Henao + github: brayanhenao reviewers: + - name: Arjun Sreedharan + github: arjun024 + - name: Jerico Pena + github: jericop + - name: Frankie G-J + github: fg-j - name: Tooling approvers: - name: Forest Eckhardt From c88715dfe01517b0434d13a515905ced1298fc99 Mon Sep 17 00:00:00 2001 From: Daniel Mikusa Date: Wed, 17 Jan 2024 13:00:49 -0500 Subject: [PATCH 57/76] Add missing repositories list Signed-off-by: Daniel Mikusa --- toc/working-groups/paketo.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/toc/working-groups/paketo.md b/toc/working-groups/paketo.md index 745a5787..3dfc8c0e 100644 --- a/toc/working-groups/paketo.md +++ b/toc/working-groups/paketo.md @@ -68,6 +68,7 @@ areas: - name: David O'Sullivan github: pivotal-david-osullivan reviewers: [] + repositories: [] - name: Builders approvers: - name: Forest Eckhardt @@ -83,6 +84,7 @@ areas: github: jericop - name: Sophie Wigmore github: sophiewigmore + repositories: [] - name: Content approvers: - name: Forest Eckhardt @@ -100,6 +102,7 @@ areas: github: robdimsdale - name: Sophie Wigmore github: sophiewigmore + repositories: [] - name: Dependencies approvers: - name: Rob Dimsdale-Zucker @@ -117,6 +120,7 @@ areas: github: ForestEckhardt - name: Joshua Casey github: joshuatcasey + repositories: [] - name: Dotnet Core approvers: - name: Forest Eckhardt @@ -130,6 +134,7 @@ areas: github: thitch97 - name: Joshua Casey github: joshuatcasey + repositories: [] - name: Go approvers: - name: Forest Eckhardt @@ -147,6 +152,7 @@ areas: github: sophiewigmore - name: Victoria Campbell github: TisVictress + repositories: [] - name: Java approvers: - name: Daniel Mikusa @@ -164,6 +170,7 @@ areas: github: kevin-ortega - name: Hank Ibell github: hibell + repositories: [] - name: NodeJS approvers: - name: Tim Hitchener @@ -189,6 +196,7 @@ areas: github: fg-j - name: Emily Johnson github: emmjohnson + repositories: [] - name: PHP approvers: - name: Sophie Wigmore @@ -208,6 +216,7 @@ areas: github: TisVictress - name: Joshua Casey github: joshuatcasey + repositories: [] - name: Python approvers: - name: Arjun Sreedharan @@ -229,6 +238,7 @@ areas: github: TisVictress - name: Emily Johnson github: emmjohnson + repositories: [] - name: Ruby approvers: - name: Arjun Sreedharan @@ -246,6 +256,7 @@ areas: github: fg-j - name: Genevieve L'Esperance github: genevieve + repositories: [] - name: Rust approvers: - name: Daniel Mikusa @@ -253,6 +264,7 @@ areas: - name: Forest Eckhardt github: ForestEckhardt reviewers: [] + repositories: [] - name: Stacks approvers: - name: Rob Dimsdale-Zucker @@ -268,6 +280,7 @@ areas: github: jericop - name: Frankie G-J github: fg-j + repositories: [] - name: Tooling approvers: - name: Forest Eckhardt @@ -285,6 +298,7 @@ areas: github: thitch97 - name: Philipp Stehle github: phil9909 + repositories: [] - name: Utilities approvers: - name: Arjun Sreedharan @@ -304,6 +318,7 @@ areas: github: fg-j - name: Emily Johnson github: emmjohnson + repositories: [] - name: Web Servers approvers: - name: Arjun Sreedharan @@ -321,4 +336,5 @@ areas: github: sophiewigmore - name: Frankie G-J github: fg-j + repositories: [] ``` \ No newline at end of file From 9138d66e639fca926e36939b633183fd02004a13 Mon Sep 17 00:00:00 2001 From: Greg Cobb Date: Wed, 17 Jan 2024 10:07:38 -0800 Subject: [PATCH 58/76] Add Stephan as ARI execution lead --- toc/working-groups/app-runtime-interfaces.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/toc/working-groups/app-runtime-interfaces.md b/toc/working-groups/app-runtime-interfaces.md index 383d70ae..1dec8c8b 100644 --- a/toc/working-groups/app-runtime-interfaces.md +++ b/toc/working-groups/app-runtime-interfaces.md @@ -35,8 +35,8 @@ Components from the App Autoscaler, CAPI, CLI, Java Tools, MultiApps, and Notifi ```yaml name: App Runtime Interfaces execution_leads: -- name: Greg Cobb - github: gerg +- name: Stephan Merker + github: stephanme technical_leads: - name: Greg Cobb github: gerg From c98c9978f397e7cb2cefdddf0d905fd53b2f899a Mon Sep 17 00:00:00 2001 From: Geoff Franks Date: Thu, 18 Jan 2024 20:33:46 +0000 Subject: [PATCH 59/76] Add dry-run for github action to remove individual access to repos Signed-off-by: Amelia Downs Co-authored-by: Amelia Downs --- .../workflows/remove-individual-access.yml | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/remove-individual-access.yml diff --git a/.github/workflows/remove-individual-access.yml b/.github/workflows/remove-individual-access.yml new file mode 100644 index 00000000..1d477482 --- /dev/null +++ b/.github/workflows/remove-individual-access.yml @@ -0,0 +1,29 @@ +name: 'Remove individual access to repos' +on: + push: + branches: + - main + schedule: + - cron: '0 */1 * * *' + +permissions: read-all +jobs: + remove-individual-access-to-repos: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + path: community + - name: Generate github org configuration + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + set -e + set -o pipefail + + community/org/generate_working_group_projects_sync_config.sh | jq -r .[].repositories[].name | grep -E "^cloudfoundry/" | while read -r repo; do + gh api "repos/${repo}/collaborators?affiliation=direct" | jq -r .[].login | while read -r user; do + echo "remove ${user} from ${repo}" + # gh api -X delete "/repos/${repo}/collaborators/${user}" + done + done From 1e7ee614d6aa6d1b250e2ecec0a7cb335e67c7d6 Mon Sep 17 00:00:00 2001 From: Geoff Franks Date: Thu, 18 Jan 2024 21:02:59 +0000 Subject: [PATCH 60/76] try accessing a non collaborator endpoint Signed-off-by: Amelia Downs Co-authored-by: Amelia Downs --- .github/workflows/remove-individual-access.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/remove-individual-access.yml b/.github/workflows/remove-individual-access.yml index 1d477482..a243273a 100644 --- a/.github/workflows/remove-individual-access.yml +++ b/.github/workflows/remove-individual-access.yml @@ -21,6 +21,7 @@ jobs: set -e set -o pipefail + gh api "repos/${repo}" community/org/generate_working_group_projects_sync_config.sh | jq -r .[].repositories[].name | grep -E "^cloudfoundry/" | while read -r repo; do gh api "repos/${repo}/collaborators?affiliation=direct" | jq -r .[].login | while read -r user; do echo "remove ${user} from ${repo}" From 662b85201c2078601b7ca37d63a6fe1a71156a55 Mon Sep 17 00:00:00 2001 From: Geoff Franks Date: Thu, 18 Jan 2024 21:23:04 +0000 Subject: [PATCH 61/76] try GH_TOKEN Signed-off-by: Amelia Downs Co-authored-by: Amelia Downs --- .github/workflows/remove-individual-access.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/remove-individual-access.yml b/.github/workflows/remove-individual-access.yml index a243273a..b666a5c1 100644 --- a/.github/workflows/remove-individual-access.yml +++ b/.github/workflows/remove-individual-access.yml @@ -6,7 +6,6 @@ on: schedule: - cron: '0 */1 * * *' -permissions: read-all jobs: remove-individual-access-to-repos: runs-on: ubuntu-latest @@ -16,7 +15,7 @@ jobs: path: community - name: Generate github org configuration env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_TOKEN: ${{ secrets.GH_TOKEN }} run: | set -e set -o pipefail From aef3e9cfa8ef1cdb7458fb189edcbaf6b92e7ed3 Mon Sep 17 00:00:00 2001 From: Geoff Franks Date: Thu, 18 Jan 2024 21:25:37 +0000 Subject: [PATCH 62/76] update remove individual access action Signed-off-by: Amelia Downs Co-authored-by: Amelia Downs --- .github/workflows/remove-individual-access.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/remove-individual-access.yml b/.github/workflows/remove-individual-access.yml index b666a5c1..498da8db 100644 --- a/.github/workflows/remove-individual-access.yml +++ b/.github/workflows/remove-individual-access.yml @@ -20,7 +20,6 @@ jobs: set -e set -o pipefail - gh api "repos/${repo}" community/org/generate_working_group_projects_sync_config.sh | jq -r .[].repositories[].name | grep -E "^cloudfoundry/" | while read -r repo; do gh api "repos/${repo}/collaborators?affiliation=direct" | jq -r .[].login | while read -r user; do echo "remove ${user} from ${repo}" From 06634e212fa8bc51be8b24a5b1a1b82677e10bef Mon Sep 17 00:00:00 2001 From: Geoff Franks Date: Thu, 18 Jan 2024 21:29:30 +0000 Subject: [PATCH 63/76] update remove individual access action to actually remove individiual access Signed-off-by: Amelia Downs Co-authored-by: Amelia Downs --- .github/workflows/remove-individual-access.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/remove-individual-access.yml b/.github/workflows/remove-individual-access.yml index 498da8db..e82a88fc 100644 --- a/.github/workflows/remove-individual-access.yml +++ b/.github/workflows/remove-individual-access.yml @@ -23,6 +23,6 @@ jobs: community/org/generate_working_group_projects_sync_config.sh | jq -r .[].repositories[].name | grep -E "^cloudfoundry/" | while read -r repo; do gh api "repos/${repo}/collaborators?affiliation=direct" | jq -r .[].login | while read -r user; do echo "remove ${user} from ${repo}" - # gh api -X delete "/repos/${repo}/collaborators/${user}" + gh api -X delete "/repos/${repo}/collaborators/${user}" done done From 5a1ae5ba7d6e65a09613e17f8d75eefa21e2e64c Mon Sep 17 00:00:00 2001 From: Greg Cobb Date: Thu, 18 Jan 2024 16:17:57 -0800 Subject: [PATCH 64/76] Add Stephan as ARI lead in WORKING-GROUPS.md --- toc/working-groups/WORKING-GROUPS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/toc/working-groups/WORKING-GROUPS.md b/toc/working-groups/WORKING-GROUPS.md index efdc23ec..25976556 100644 --- a/toc/working-groups/WORKING-GROUPS.md +++ b/toc/working-groups/WORKING-GROUPS.md @@ -81,6 +81,7 @@ The GitHub repos this WG manages in the `cloudfoundry` GitHub organization are t |   | Leads | Company | Profile | | -------------------------------------------------------- | ---------------- | ------- | ---------------------------------------- | | | Greg Cobb | VMware | [@Gerg](https://github.com/Gerg) | +| | Stephan Merker | SAP | [@stephanme](https://github.com/stephanme) | ## App Runtime Platform From 00f86768ac6bbf2d3f7f31baa69a04efc2ff4803 Mon Sep 17 00:00:00 2001 From: Amelia Downs Date: Fri, 19 Jan 2024 12:00:39 +0000 Subject: [PATCH 65/76] fix github action step name --- .github/workflows/remove-individual-access.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/remove-individual-access.yml b/.github/workflows/remove-individual-access.yml index e82a88fc..6329b6d8 100644 --- a/.github/workflows/remove-individual-access.yml +++ b/.github/workflows/remove-individual-access.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v3 with: path: community - - name: Generate github org configuration + - name: Remove individual access to repos env: GH_TOKEN: ${{ secrets.GH_TOKEN }} run: | From d4fe53662575f9c38be9e42106fb7b7ebe702dfe Mon Sep 17 00:00:00 2001 From: Amelia Downs Date: Fri, 19 Jan 2024 17:28:00 +0000 Subject: [PATCH 66/76] get ALL repos in remove individual access github action Signed-off-by: Geoff Franks --- .github/workflows/remove-individual-access.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/remove-individual-access.yml b/.github/workflows/remove-individual-access.yml index 498da8db..b337dd0c 100644 --- a/.github/workflows/remove-individual-access.yml +++ b/.github/workflows/remove-individual-access.yml @@ -13,14 +13,14 @@ jobs: - uses: actions/checkout@v3 with: path: community - - name: Generate github org configuration + - name: Remove individual access to repos env: GH_TOKEN: ${{ secrets.GH_TOKEN }} run: | set -e set -o pipefail - community/org/generate_working_group_projects_sync_config.sh | jq -r .[].repositories[].name | grep -E "^cloudfoundry/" | while read -r repo; do + ./community/toc/working-groups/parsable-working-groups.sh | jq -r .[].areas[].repositories[] | grep -E '^cloudfoundry/' | while read -r repo; do gh api "repos/${repo}/collaborators?affiliation=direct" | jq -r .[].login | while read -r user; do echo "remove ${user} from ${repo}" # gh api -X delete "/repos/${repo}/collaborators/${user}" From e9a9e6160221d76e9170a7e1d0cc352f0b23b233 Mon Sep 17 00:00:00 2001 From: Geoff Franks Date: Fri, 19 Jan 2024 17:32:49 +0000 Subject: [PATCH 67/76] run remove individual access action against all repos, not just cf org ones Signed-off-by: Amelia Downs --- .github/workflows/remove-individual-access.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/remove-individual-access.yml b/.github/workflows/remove-individual-access.yml index b337dd0c..0dd51dce 100644 --- a/.github/workflows/remove-individual-access.yml +++ b/.github/workflows/remove-individual-access.yml @@ -20,7 +20,7 @@ jobs: set -e set -o pipefail - ./community/toc/working-groups/parsable-working-groups.sh | jq -r .[].areas[].repositories[] | grep -E '^cloudfoundry/' | while read -r repo; do + ./community/toc/working-groups/parsable-working-groups.sh | jq -r .[].areas[].repositories[] | while read -r repo; do gh api "repos/${repo}/collaborators?affiliation=direct" | jq -r .[].login | while read -r user; do echo "remove ${user} from ${repo}" # gh api -X delete "/repos/${repo}/collaborators/${user}" From 49904d8d51eca70da127b17d28443d24370217e8 Mon Sep 17 00:00:00 2001 From: Amelia Downs Date: Fri, 19 Jan 2024 17:35:43 +0000 Subject: [PATCH 68/76] Revert "run remove individual access action against all repos, not just cf org ones" This reverts commit e9a9e6160221d76e9170a7e1d0cc352f0b23b233. --- .github/workflows/remove-individual-access.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/remove-individual-access.yml b/.github/workflows/remove-individual-access.yml index 0dd51dce..b337dd0c 100644 --- a/.github/workflows/remove-individual-access.yml +++ b/.github/workflows/remove-individual-access.yml @@ -20,7 +20,7 @@ jobs: set -e set -o pipefail - ./community/toc/working-groups/parsable-working-groups.sh | jq -r .[].areas[].repositories[] | while read -r repo; do + ./community/toc/working-groups/parsable-working-groups.sh | jq -r .[].areas[].repositories[] | grep -E '^cloudfoundry/' | while read -r repo; do gh api "repos/${repo}/collaborators?affiliation=direct" | jq -r .[].login | while read -r user; do echo "remove ${user} from ${repo}" # gh api -X delete "/repos/${repo}/collaborators/${user}" From fc61c97477a2c95acc6643fdfc3daf16bc0643dc Mon Sep 17 00:00:00 2001 From: Greg Cobb Date: Thu, 18 Jan 2024 16:04:59 -0800 Subject: [PATCH 69/76] Update ARI artifacts in WORKING-GROUPS.md --- toc/working-groups/WORKING-GROUPS.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/toc/working-groups/WORKING-GROUPS.md b/toc/working-groups/WORKING-GROUPS.md index efdc23ec..050a0af5 100644 --- a/toc/working-groups/WORKING-GROUPS.md +++ b/toc/working-groups/WORKING-GROUPS.md @@ -73,10 +73,10 @@ The GitHub repos this WG manages in the `cloudfoundry` GitHub organization are t | Artifact | Link | | -------------------------- | ---- | | Charter | [app-runtime-interfaces.md](./app-runtime-interfaces.md) | -| Forum | TBD | -| Community Meeting Calendar | TBD | -| Meeting Notes | TBD | -| Slack Channel | TBD | +| Forum | [Zoom](https://zoom.us/j/91942841881?pwd=V0Z1RWE0NmIwN0xwdTdUNlVhczhPZz09) | +| Community Meeting Calendar | [Monthly on the 4th Tuesday at 9:00 US Pacific](https://www.google.com/calendar/event?eid=NjhscXR0anFmZDhpN2VwMXJjc3I5ZHBnNW5fMjAyNDAxMjNUMTcwMDAwWiBjbG91ZGZvdW5kcnkub3JnX29lZGIwaWxvdGc1dWRzcGRsdjMyYTV2Yzc4QGc&ctz=America/New_York) | +| Meeting Notes | [ARI Meeting Notes](https://docs.google.com/document/d/1wP21mVwaoZw45eU2YoDJg6KbvYJuD5ATrrhSY6_yHmM/edit?usp=sharing) | +| Slack Channel | [#wg-app-runtime-interfaces](https://cloudfoundry.slack.com/archives/C02HNDJB31R) | |   | Leads | Company | Profile | | -------------------------------------------------------- | ---------------- | ------- | ---------------------------------------- | From 9c7467dd08607904d5fc15ea879f323b95efd3fc Mon Sep 17 00:00:00 2001 From: Jochen Ehret Date: Tue, 23 Jan 2024 13:12:29 +0100 Subject: [PATCH 70/76] Add "ARI WG Git Bot" to bots list --- toc/working-groups/app-runtime-interfaces.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/toc/working-groups/app-runtime-interfaces.md b/toc/working-groups/app-runtime-interfaces.md index 8641a6ad..7d6a7a57 100644 --- a/toc/working-groups/app-runtime-interfaces.md +++ b/toc/working-groups/app-runtime-interfaces.md @@ -47,6 +47,8 @@ bots: github: cf-buildpacks-eng - name: capi-bot github: capi-bot +- name: ARI WG Git Bot + github: ari-wg-gitbot areas: - name: Autoscaler approvers: From 87044e9e1549d44edbbaa5c84eb537b8ec49b751 Mon Sep 17 00:00:00 2001 From: Stephan Merker Date: Wed, 24 Jan 2024 18:19:05 +0100 Subject: [PATCH 71/76] Run peribolos and branchprotector in separate jobs - combined runtime exceeds 6h, the max possible runtime of a github action job - reduce scheduled frequency --- .github/workflows/org-management.yml | 43 +++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/.github/workflows/org-management.yml b/.github/workflows/org-management.yml index a3847a9d..caa5a2ef 100644 --- a/.github/workflows/org-management.yml +++ b/.github/workflows/org-management.yml @@ -9,7 +9,7 @@ on: - 'toc/working-groups/*.md' - '.github/workflows/org-management.yml' schedule: - - cron: '0 */5 * * *' + - cron: '0 */7 * * *' jobs: peribolos: @@ -73,6 +73,47 @@ jobs: --fix-team-members --fix-team-repos --allow-repo-archival + branchprotector: + needs: peribolos + runs-on: ubuntu-latest + concurrency: + group: peribolos + services: + ghproxy: + image: rkoster/ghproxy + options: >- + --mount type=bind,source=/etc/passwd,target=/etc/passwd,readonly + --mount type=bind,source=/etc/group,target=/etc/group,readonly + ports: + - 8888:8888 + volumes: + - ${{ github.workspace }}/ghproxy-cache:/cache + steps: + - name: ghproxy-cache + uses: actions/cache@v3 + with: + path: ${{ github.workspace }}/ghproxy-cache + key: ghproxy-cache-${{ github.run_number }} + restore-keys: | + ghproxy-cache- + - uses: actions/setup-python@v4 + with: + python-version: 3.9 + - uses: actions/checkout@v3 + with: + path: community + - name: Generate github org configuration + run: | + python -m pip install --upgrade pip + pip install -r community/org/requirements.txt + python community/org/org_management.py -o cloudfoundry.out.yml -b branchprotection.out.yml + - name: write github private key + run: | + echo "${GH_PRIVATE_KEY}" > private_key + echo "${GH_TOKEN}" > token + env: + GH_TOKEN: ${{ secrets.GH_TOKEN }} + GH_PRIVATE_KEY: ${{ secrets.GH_PRIVATE_KEY }} - name: branchprotector id: branchprotector uses: docker://gcr.io/k8s-prow/branchprotector From 37ee69fbff2208a7c14418a7b7d6617d01720e64 Mon Sep 17 00:00:00 2001 From: Marc Paquette Date: Thu, 25 Jan 2024 10:26:20 -0500 Subject: [PATCH 72/76] Remove garden-dockerfiles from Runtime garden-dockerfiles is being archived and should be removed from the Runtime WG https://github.com/cloudfoundry/community/pull/751 --- toc/working-groups/app-runtime-platform.md | 1 - 1 file changed, 1 deletion(-) diff --git a/toc/working-groups/app-runtime-platform.md b/toc/working-groups/app-runtime-platform.md index 9b05de6b..0534139b 100644 --- a/toc/working-groups/app-runtime-platform.md +++ b/toc/working-groups/app-runtime-platform.md @@ -186,7 +186,6 @@ areas: - cloudfoundry/garden - cloudfoundry/garden-ci - cloudfoundry/garden-ci-artifacts-release - - cloudfoundry/garden-dockerfiles - cloudfoundry/garden-dotfiles - cloudfoundry/garden-integration-tests - cloudfoundry/garden-performance-acceptance-tests From 6521588c1c3f2ca35fdf82b4ac0b5ade1bbdf92f Mon Sep 17 00:00:00 2001 From: Geoff Franks Date: Thu, 25 Jan 2024 20:51:03 +0000 Subject: [PATCH 73/76] Archive the vanta-blackbox-release --- org/cloudfoundry.yml | 1 + toc/working-groups/app-runtime-platform.md | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index 2af41407..a0e12bff 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -2343,6 +2343,7 @@ orgs: usn-resource: has_projects: true vantablackbox-release: + archived: true has_projects: true vcap-common: archived: true diff --git a/toc/working-groups/app-runtime-platform.md b/toc/working-groups/app-runtime-platform.md index 9b05de6b..a64c5761 100644 --- a/toc/working-groups/app-runtime-platform.md +++ b/toc/working-groups/app-runtime-platform.md @@ -203,7 +203,6 @@ areas: - cloudfoundry/netplugin-shim - cloudfoundry/test-log-emitter - cloudfoundry/test-log-emitter-release - - cloudfoundry/vantablackbox-release - cloudfoundry/winc - cloudfoundry/winc-release - cloudfoundry/windows-regression-tests From 0f72b16ab3d807095501ad5a743e8bb2316dfce7 Mon Sep 17 00:00:00 2001 From: Stephan Merker Date: Mon, 29 Jan 2024 14:10:07 +0100 Subject: [PATCH 74/76] Bump version of github actions To get rid of deprecated nodejs 16. - checkout: v3->v4 - cache: v3->v4 - setup-python: v4->v5 - create-pull-request: v4->v5 --- .github/workflows/org-inactive-user-management.yml | 6 +++--- .github/workflows/org-management-check-prs.yml | 4 ++-- .github/workflows/org-management-peribolos-dump.yml | 6 +++--- .github/workflows/org-management.yml | 12 ++++++------ .github/workflows/project-sync.yml | 2 +- .github/workflows/remove-individual-access.yml | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/org-inactive-user-management.yml b/.github/workflows/org-inactive-user-management.yml index 83c8dc03..9e307c0d 100644 --- a/.github/workflows/org-inactive-user-management.yml +++ b/.github/workflows/org-inactive-user-management.yml @@ -12,10 +12,10 @@ jobs: org-config-generation-check: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: 3.9 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: path: community - name: Clean inactive github org users @@ -29,7 +29,7 @@ jobs: INACTIVE_USER_MANAGEMENT_TAG_USERS: ${{ secrets.INACTIVE_USER_MANAGEMENT_TAG_USERS }} - name: Create Pull Request if: ${{ steps.uds.outputs.inactive_users_pr_description }} - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v5 with: path: community add-paths: org/contributors.yml diff --git a/.github/workflows/org-management-check-prs.yml b/.github/workflows/org-management-check-prs.yml index 83d204f7..6e77dc6b 100644 --- a/.github/workflows/org-management-check-prs.yml +++ b/.github/workflows/org-management-check-prs.yml @@ -10,10 +10,10 @@ jobs: org-config-generation-check: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: 3.9 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: path: community - name: Generate github org configuration diff --git a/.github/workflows/org-management-peribolos-dump.yml b/.github/workflows/org-management-peribolos-dump.yml index 302e86c8..4dec4ab8 100644 --- a/.github/workflows/org-management-peribolos-dump.yml +++ b/.github/workflows/org-management-peribolos-dump.yml @@ -19,13 +19,13 @@ jobs: - ${{ github.workspace }}/ghproxy-cache:/cache steps: - name: ghproxy-cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ github.workspace }}/ghproxy-cache key: ghproxy-cache-${{ github.run_number }} restore-keys: | ghproxy-cache- - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 # full clone so a PR can be created if needed path: community @@ -44,7 +44,7 @@ jobs: # args: --dump-full --dump cloudfoundry --github-app-id=${{ secrets.GH_APP_ID }} --github-app-private-key-path=private_key > org/cloudfoundry.yml args: -c "/ko-app/peribolos --dump-full --dump cloudfoundry --github-endpoint http://ghproxy:8888 --github-token-path=token > community/org/cloudfoundry.yml" - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v5 with: path: community add-paths: org/cloudfoundry.yml diff --git a/.github/workflows/org-management.yml b/.github/workflows/org-management.yml index caa5a2ef..8219901e 100644 --- a/.github/workflows/org-management.yml +++ b/.github/workflows/org-management.yml @@ -28,16 +28,16 @@ jobs: - ${{ github.workspace }}/ghproxy-cache:/cache steps: - name: ghproxy-cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ github.workspace }}/ghproxy-cache key: ghproxy-cache-${{ github.run_number }} restore-keys: | ghproxy-cache- - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: 3.9 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: path: community - name: Generate github org configuration @@ -90,16 +90,16 @@ jobs: - ${{ github.workspace }}/ghproxy-cache:/cache steps: - name: ghproxy-cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ github.workspace }}/ghproxy-cache key: ghproxy-cache-${{ github.run_number }} restore-keys: | ghproxy-cache- - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: 3.9 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: path: community - name: Generate github org configuration diff --git a/.github/workflows/project-sync.yml b/.github/workflows/project-sync.yml index bcc9de6b..9564cc43 100644 --- a/.github/workflows/project-sync.yml +++ b/.github/workflows/project-sync.yml @@ -8,7 +8,7 @@ jobs: configs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: matrix run: | echo "::set-output name=matrix::$(./org/generate_working_group_projects_sync_config.sh)" diff --git a/.github/workflows/remove-individual-access.yml b/.github/workflows/remove-individual-access.yml index b337dd0c..29166c2b 100644 --- a/.github/workflows/remove-individual-access.yml +++ b/.github/workflows/remove-individual-access.yml @@ -10,7 +10,7 @@ jobs: remove-individual-access-to-repos: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: path: community - name: Remove individual access to repos From c3eaab4bc8fba9ff87876fefc2c01e31f182ddf7 Mon Sep 17 00:00:00 2001 From: beyhan Date: Fri, 12 Jan 2024 10:20:33 +0000 Subject: [PATCH 75/76] Delete inactive users Resoloving merge conflicts manually because there were many changes in the mean time. --- org/contributors.yml | 451 ------------------------------------------- 1 file changed, 451 deletions(-) diff --git a/org/contributors.yml b/org/contributors.yml index bdb4e71c..5d0d9d9a 100644 --- a/org/contributors.yml +++ b/org/contributors.yml @@ -1,685 +1,234 @@ contributors: - a-b - a-hassanin -- a-peek4 -- a-shan -- a-sudarsanan -- aaronshurley -- ab-pivot -- AbelHu - abg - abh1kg - ablease -- abubakarm94 -- AccraZed -- achasveachas -- aclark801 -- aclement - acosta11 - acrmp -- acvwilson -- addytripathi - aditya267vmware -- adobley - adrianhoelzl-sap -- aduffeck -- advpetc -- aemengo -- ahrtr -- aiswarianair -- ajackson -- akazantsau -- akodali18 - akrishna90 -- Albertoimpl - alejandra-lara -- altonf4 -- amakhija -- amartiro1979 - ameowlia -- andreas-kupries -- AndreasSchoesser -- andrew-edgar -- andrew-su - andrewdriver123 -- andrewedstrom -- andy-paine - anEXPer -- anfernee -- angelachin - animatedmax -- ankeesler - anoopjb -- ansd -- ansergit - anshrupani - anthonydahanne - antonina-kyoseva - app-autoscaler-ci-bot -- APShirley -- aqan213 - aramprice - ard-wg-gitbot - arjun024 -- asahil9009 - asalan316 -- ashvinmoro -- atwoosnam -- avade -- awmartin - bbr-ci -- bclozel -- beckermarc - Benjamintf1 -- bepotts -- berlin-ab - beyhan - bgandon -- bhh1893 -- bikramnehra -- bingosummer - Birdrock -- bkeelapudi - blgm -- bonzofenix - bosh-admin-bot -- bosh-ci-push-pull - bosh-init-concourse - bosh-windows-ci - boyan-velinov -- boyang9527 -- brannon - brayanhenao -- BrianMMcClain -- briannebrown - bruce-ricard -- brunssen -- bsnchan -- bsoroushian -- bwinter -- C-Otto - c0d1ngm0nk3y -- cagiti -- caijj -- camilalonart -- carlo-colombo -- ccemeraldeyes - ccjaimes -- cdlliuy -- cf-blobstore-eng - cf-bosh-ci-bot - cf-buildpacks-eng -- cf-ci-push-pull - cf-cli-eng -- cf-cli-pools -- cf-commercial -- cf-datadog - cf-final-release-election-bot -- cf-frameworks - cf-frontend - cf-gitbot - cf-identity -- cf-identity-service - cf-infra-bot -- cf-london - cf-rabbit-bot -- cf-rel-int-cf-for-k8s-pr-bot - cf-release-notes-bot -- cf-services -- cf-sprout -- cf-toolsmiths -- cf-uaa -- cf-zapier -- cfdocs-bot -- cfryanr - chaitanyamullangi -- chaomonica -- christianang -- christo4ferris -- ChunyiLyu -- ciriarte -- ClaudeFaundry -- claurence - clintyoshimura -- cobyrne -- cobyrne-pivot - colins - combor -- cornelius -- cphi-vmw -- cppforlife - crhntr -- crsimmons - Cryogenics-CI -- cshollingsworth -- csterwa - ctlong - cunnie -- cwang-pivotal - dalvarado - danail-branekov -- danhigham - danielfor -- DanielJonesEB -- danyoung - davewalter -- david-akhsakhalyan -- davidcurrie -- davidschachner -- dbasner - dbuchko - ddonchev -- degaurab -- DennisDenuto -- derwei -- devtdeng -- dgolds -- dhrapson - dibya1947 -- djac -- djavos-bot - dlresende - dmikusa -- dmutreja - domdom82 -- dominicrobertsc -- donacarr -- dpb587-pivotal -- dpdavis -- dprotaso -- dpruitt2 -- dpw -- draganm -- drich10 - dsabeti - dsanand22 - dsboulder -- dsharp-pivotal -- dsyer -- dtillman - dtimm - dubeyshefali -- dumez-k - ebroberson -- edespino -- edwardecook -- edwardstudy - eirinici -- ekcasey -- elsony - emalm - emmjohnson -- EngineerBetterCI -- erabil -- ericbottard - evanfarrar -- Everlag -- f0rmiga -- farmermel -- fcioanca -- fcohen26 - FelisiaM -- fg-j -- fhanik - fifthposition -- flawedmatrix -- flintstonecf -- FlorentFlament -- FlorianNachtigall - FloThinksPi - ForestEckhardt -- fredwangwang -- friegger -- frodenas -- gab-satchi -- galenhammond -- gaowa0215 -- GarfieldLinux -- GarimaSharma -- garrying -- gbandres98 - gcapizzi -- gdankov - genevieve - geofffranks - georgethebeatle -- georgi-lozev - Gerg -- gertd - gggevorgyan -- git-narya -- gmrodgers -- gossion -- GowriRegistry -- graeme-davison -- grahamlutz -- gsiener -- gu-bin - gururajsh -- harshah -- haydonryan -- hcf-bot -- HeavyWombat -- heidmotron -- hemarsai - HenryBorys -- herrjulz -- heyjcollins - hibell - hmanukyanVMw -- hnandiwada -- hoegaarden - hsinn0 -- hyakuhei - iaftab-alam -- idoru - ifindlay-cci -- IgorBelyi -- ihcsim - ijzerman - ikasarov -- ilackarms -- iplay88keys - IvanBorislavovDimitrov -- ivanhristov98 -- jackfengibm -- jacksoncvm -- JacquesPerrault -- james-masson -- jamieklassen -- jamiemonserrate -- jandubois - jaristiz - jbooherl -- jchenry -- jdeppe-pivotal - jdgonzaleza -- jeff-hobbs - jericop -- jerrybelmonte -- jessepye -- jgawor -- jhasu - jhvhs -- jianqiu -- jimbo459 - jimconner -- jimmykarily - jintusebastian -- jkjell -- jkonicki -- jmarrero - jmervinnirma -- jncd - jochenehret -- joeeltgroth - joefitzgerald -- joeldsa - joergdw - johha -- johncornish -- JordanICollier -- josephgee -- joshlong -- joshuatcasey - jpalermo -- jpatel-pivotal -- jpmcb - jrussett -- jsampson1 - julian-hj -- Justin-W -- k1tm - kabathla -- KaiHofstetter -- kaleo211 - karthikseshadri -- kartiklunkad26 - kathap -- kauana -- KauzClay -- kcboyle -- KeepAustinWired -- kejadlen - kevin-ortega - KevinJCross - Kiemes - kieron-dev - kimago -- kirederik - klakin-pivotal - klapkov -- KlapTrap - klaus-sap - kmarkwardt-vmware -- knm3000 - kohara88 - korifi-bot - kpujadev -- kreinecke -- kriscott -- krook -- ktchen14 -- ktollivervmw -- ktpv -- kushmerick -- langered -- lbarncord -- leeporte -- lenapivotal -- lisamburns -- LizClaireMorris - lnguyen - loewenstein -- loganloganlogan -- lterminasyan -- lwoydziak - m-thavaf -- maheshkumarvs -- malba -- malik-altaf -- malston -- mamachanko -- Manifaust -- manno - MarcPaquette - mariash -- markstokan -- Markus-Ehrnsperger -- martyspiewak - matt-royal -- mattcui -- mattmcneeney -- mauromorales - max-soe -- maximilien -- mcwumbly -- menicosia - MerricdeLauney -- metatype - metric-store-ci -- mfine30 -- mgibson1121 -- michaelklishin -- miguelverissimo -- mihaibuzgau - MirahImage -- mjgutermuth -- mjj209 -- mkjelland -- mklanjsek - mkocher -- mkuratczyk -- MMisoch -- MoatazBM -- modelseer - modulo11 - moggibear - moleske -- monadic -- monamohebbi -- mook-as -- mrdavidlaing - mrosecrance -- msmykowski - mukeshkhicher-br - mvach -- mvalliath - myeghiazarya -- N00BEST -- n4wei -- nader-ziada - nakulogale-cb - nand2 -- natalieparellano -- navdeep-pama - nebhale -- nedenwalker -- neil-hickey -- nguerette -- nhsieh -- nickjameswebb -- nickstreet -- nicregez -- nierajsingh -- nimakaviani -- Nino-K -- nkguy -- nmaslarski - notrepo05 - nouseforaname - nvvalchev -- nwmac -- objectfox -- ograves-pivotal - ohkyle -- ojhughes -- omerbensaadon -- oppegard -- OpusDude -- ozbasarir - pabloarodas -- pabloschuhmacher -- paigecalvert - paketo-bot - paketo-bot-reviewer -- paltanmoy - paulcwarren - pcf-core-services -- pcf-core-services-writer -- pcfdev-bot -- pcfrabbitmq-concourse-ci -- perm-ci-bot - PeteLevineA -- PeterEltgroth -- petergtz - peterhaochen47 -- petersca -- petewall - phil9909 - philippthun -- phschon -- piachakra - Pivotal-Christopher-Wong - pivotal-david-osullivan -- pivotal-lyle-murphy - pivotal-marcela-campo -- pivotal-maya-kenedy -- pivotal-rd-admins -- pivotal-so -- pivotal-todd-ritchie - pivotalgeorge -- pivotaljohn -- piyalibanerjee -- pkvatvmware - plowin -- pnikonowicz -- poconnor1 - Pooja-08 -- pradyutsarma -- Proplex -- pspinrad -- pubtools-docs-helper -- pulkit-chandra - PureMunky -- pvaramballypivot -- pvtl-shane -- pws-team-admin-client -- pydctw -- qibobo -- qu1queee -- rade - radhavmwtnz - radito3 - radoslav-tomov - ragaskar -- rahulkj -- rainmaker -- rajasekharatvmware -- rajdeepd -- ram-pivot - ramonskie -- rboykin - reedr3 - reneighbor -- rhall-pivotal -- rheaton -- RiaMahoney -- ricardo-vm - richard-cox -- RichardJJG -- rickfarmer -- rizwanreza - rlewis24 -- rmorgan -- rnandi - robdimsdale -- robertjsullivan -- robmee -- rogerluo410 -- rohitsakala -- rohitsharma04 -- romswo -- rosenhouse -- roshan-a - routing-ci - rpranay1 - rroberts2222 -- rszumlakowski -- runtime-ci - ryanwittrup -- s4heid - saloni-sshah - salzmannsusan -- sampeinado -- Samze -- sanagaraj-pivotal -- satiar - sboyajyan -- schaefm-ibm -- sclevine -- scothis -- scottfrederick -- sebGilR - selzoc - services-api-ci - sethboyles - sg038444 -- shamus -- Shanfan -- shanks3012 - shaun7pan - shilpachandrashekara - shrisha-c - siddarthalk - silvestre -- simonjjones -- simonleung8 - skhushboo-vm -- skibum55 -- smoser-ibm - snneji - Soha-Albaghdady - sophiewigmore -- spaungam - spgreenberg -- spikymonkey -- squeedee -- ssapra -- ssisil - ssunka -- st3v - staylor14 - stefanlay -- StefanWutz - strehle -- stuart-pollock -- suhlig -- sujeetv -- sunjayBhatia -- sunnytoolsmiths - suprajanarasimhan -- suraiyasuliman -- svennam92 - svkrieger - swalchemist -- swalner-pivotal -- swati-nair - swati1102 -- sykesm - syslxg - tack-sap - Tallicia -- tamaovmware -- tanayk2610 -- tanglisha -- tanzeeb -- tanzu-backstage-bot - tas-runtime-bot - tcdowney -- teddyking -- Tejuvmware -- tekul - ten4o -- test-12341234 - theghost5800 -- thepeterstone -- thisisnotashwin - thitch97 -- thomas1206 -- tinygrasshopper - TisVictress - tjvman -- tmegan1 - toabctl -- tom-collings -- tomkennedy513 - torsten-sap - totherme -- tracker-common -- trevormarshall -- trisberg -- troytop -- tylerphelan -- tylerschultz -- valeriap -- vgogate -- videlov -- vikafed - vinaybheri -- viovanov - visargsoneji - vkalapov - VMWare-JasonAndrew -- voelzmo - VRBogdanov -- wattersjames -- wayneadams - WeiQuan0605 -- weymanf -- willmadison - winkingturtle-vmw - xandroc -- xiongli -- xtreme-andrei-dinin -- xtreme-bozhidar-lenchov - xtreme-conor-nosal -- xtreme-debbie-chen -- xtreme-jason-smith - xtreme-nitin-ravindran -- xtreme-sameer-vohra -- xtreme-vikram-yadav - xtremerui -- yaelharel -- yatzek - Yavor16 - ystros -- yyzjateen -- zhang-hua -- zhanggbj -- zhangtbj -- zhongyi-zhang -- zrob - zucchinidev -- zyjiaobj -- zzori-theoriginal From be6a8a75b6ff4a12ed0de8e471473aaec023592c Mon Sep 17 00:00:00 2001 From: Marcela Campo Date: Wed, 6 Dec 2023 16:56:27 +0000 Subject: [PATCH 76/76] Add temporary group for area bot with admin permissions This bot bumps dependencies regularly and requires admin credentials. We are putting this group in place until we are able to implement another strategy (e.g. PR workflow). [#184640225](https://www.pivotaltracker.com/story/show/184640225) --- org/cloudfoundry.yml | 17 +++++++++++++++++ org/contributors.yml | 1 + 2 files changed, 18 insertions(+) diff --git a/org/cloudfoundry.yml b/org/cloudfoundry.yml index 2af41407..a32b3976 100644 --- a/org/cloudfoundry.yml +++ b/org/cloudfoundry.yml @@ -2479,3 +2479,20 @@ orgs: haproxy-boshrelease: admin pcap-release: admin pcap: admin + temp-sm-csb-bots-admins: + description: "Temporary team to allow for bots driven dependency bumps until we implement another strategy" + maintainers: + - pivotal-marcela-campo + members: + - servicesenablement + privacy: closed + repos: + cloud-service-broker: admin + csb-brokerpak-azure: admin + csb-brokerpak-aws: admin + csb-brokerpak-gcp: admin + jdbctestapp: admin + upgrade-all-services-cli-plugin: admin + terraform-provider-csbpg: admin + terraform-provider-csbmysql: admin + terraform-provider-csbsqlserver: admin diff --git a/org/contributors.yml b/org/contributors.yml index bdb4e71c..d4bba25f 100644 --- a/org/contributors.yml +++ b/org/contributors.yml @@ -563,6 +563,7 @@ contributors: - sebGilR - selzoc - services-api-ci +- servicesenablement - sethboyles - sg038444 - shamus