loopbackio / loopback-governance

A place for discussing "meta" topics around LoopBack project governance and team management
Other
0 stars 0 forks source link

Add OpenJS Foundation accounts to our services used #21

Open achrinza opened 2 years ago

achrinza commented 2 years ago

From the OpenJS Foundation (OpenJSF) Infrastructure Menu:

For all project services, please add an OpenJS Foundation account at an owner or highest-level of permission access. This helps ensure continuity by reducing the bus factor on the project, and ensures you are never locked out. It is also required in order for the OpenJS Foundation to pay service fees on behalf of your project. Access to the OpenJS Foundation administrator/owner account will never be shared with others, and will only be granted to operations, IT, and finance staff at the Linux Foundation.

If you don’t know the name of the OpenJS Foundation account for a service, please contact operations@openjsf.org.

and

The OpenJS Foundation admin account must be added as administrator for each repository.

Currently know list of services used:

Service that may be upcoming:

achrinza commented 2 years ago

I've gotten confirmation that the GitHub account is @/thelinuxfoundation.

see: https://openjs-foundation.slack.com/archives/C025TFXG665/p1650564288931369?thread_ts=1650557676.640539&cid=C025TFXG665

achrinza commented 2 years ago

There were issues with using repository-level permissions as we weren't able to add outside collaborators to private repositories due to the need of a paid plan. See the same thread referenced above.

The old invite has been deleted:

$ gh repo list loopbackio --jq=.[].nameWithOwner --json=nameWithOwner | \
  sort | \
  xargs -I{} \
    gh api \
      --jq='if (.[].invitee.login == "thelinuxfoundation") then "repos/{}/invitations/" + (.[].id|tostring) end' \
      repos/{}/invitations \
  >thelinuxfoundation_old_invites

$ cat thelinuxfoundation_old_invites 

repos/loopbackio/cicd/invitations/125584998
repos/loopbackio/explorer.loopback.io/invitations/125589326
repos/loopbackio/loopback-blog/invitations/125589337
repos/loopbackio/loopback-connector/invitations/125589353
repos/loopbackio/loopback-connector-cassandra/invitations/125589358
repos/loopbackio/loopback-connector-cloudant/invitations/125589372
repos/loopbackio/loopback-connector-dashdb/invitations/125589385
repos/loopbackio/loopback-connector-db2/invitations/125589393
repos/loopbackio/loopback-connector-elastic-search/invitations/125589405
repos/loopbackio/loopback-connector-grpc/invitations/125589419
repos/loopbackio/loopback-connector-ibmi/invitations/125589431
repos/loopbackio/loopback-connector-kv-redis/invitations/125589447
repos/loopbackio/loopback-connector-mongodb/invitations/125589460
repos/loopbackio/loopback-connector-mssql/invitations/125589475
repos/loopbackio/loopback-connector-mysql/invitations/125589484
repos/loopbackio/loopback-connector-openapi/invitations/125589495
repos/loopbackio/loopback-connector-oracle/invitations/125589513
repos/loopbackio/loopback-connector-postgresql/invitations/125589523
repos/loopbackio/loopback-connector-redis/invitations/125589537
repos/loopbackio/loopback-connector-rest/invitations/125589549
repos/loopbackio/loopback-datasource-juggler/invitations/125589566
repos/loopbackio/loopback-governance/invitations/125589576
repos/loopbackio/loopback-next/invitations/125589589
repos/loopbackio/loopback.io/invitations/125589601
repos/loopbackio/loopback4-example-kafka/invitations/125589615
repos/loopbackio/loopback4-example-shopping/invitations/125589625
repos/loopbackio/loopback4-extension-grpc/invitations/125589635
repos/loopbackio/starter/invitations/125589652
repos/loopbackio/strong-error-handler/invitations/125589662
repos/loopbackio/strong-soap/invitations/125589676

$ cat thelinuxfoundation_old_invites | xargs -I{} gh api --method=DELETE {}

I've kept the old automation script info below for preservation and future reference:

Old automation script and its output ### Automation script ```sh gh repo list loopbackio --jq=.[].name --json=name | \ sort | \ xargs -I{} \ gh api \ --field=permission=admin \ --jq='{repo: .repository.full_name, url}' \ --method=PUT \ repos/loopbackio/{}/collaborators/thelinuxfoundation ``` ### Script output ```sh {"repo":"loopbackio/cicd","url":"https://api.github.com/user/repository_invitations/125584998"} {"repo":"loopbackio/explorer.loopback.io","url":"https://api.github.com/user/repository_invitations/125589326"} {"repo":"loopbackio/loopback-blog","url":"https://api.github.com/user/repository_invitations/125589337"} {"repo":"loopbackio/loopback-connector","url":"https://api.github.com/user/repository_invitations/125589353"} {"repo":"loopbackio/loopback-connector-cassandra","url":"https://api.github.com/user/repository_invitations/125589358"} {"repo":"loopbackio/loopback-connector-cloudant","url":"https://api.github.com/user/repository_invitations/125589372"} {"repo":"loopbackio/loopback-connector-dashdb","url":"https://api.github.com/user/repository_invitations/125589385"} {"repo":"loopbackio/loopback-connector-db2","url":"https://api.github.com/user/repository_invitations/125589393"} {"repo":"loopbackio/loopback-connector-elastic-search","url":"https://api.github.com/user/repository_invitations/125589405"} {"repo":"loopbackio/loopback-connector-grpc","url":"https://api.github.com/user/repository_invitations/125589419"} {"repo":"loopbackio/loopback-connector-ibmi","url":"https://api.github.com/user/repository_invitations/125589431"} {"repo":"loopbackio/loopback-connector-kv-redis","url":"https://api.github.com/user/repository_invitations/125589447"} {"repo":"loopbackio/loopback-connector-mongodb","url":"https://api.github.com/user/repository_invitations/125589460"} {"repo":"loopbackio/loopback-connector-mssql","url":"https://api.github.com/user/repository_invitations/125589475"} {"repo":"loopbackio/loopback-connector-mysql","url":"https://api.github.com/user/repository_invitations/125589484"} {"repo":"loopbackio/loopback-connector-openapi","url":"https://api.github.com/user/repository_invitations/125589495"} {"repo":"loopbackio/loopback-connector-oracle","url":"https://api.github.com/user/repository_invitations/125589513"} {"repo":"loopbackio/loopback-connector-postgresql","url":"https://api.github.com/user/repository_invitations/125589523"} {"repo":"loopbackio/loopback-connector-redis","url":"https://api.github.com/user/repository_invitations/125589537"} {"repo":"loopbackio/loopback-connector-rest","url":"https://api.github.com/user/repository_invitations/125589549"} {"repo":"loopbackio/loopback-datasource-juggler","url":"https://api.github.com/user/repository_invitations/125589566"} {"repo":"loopbackio/loopback-governance","url":"https://api.github.com/user/repository_invitations/125589576"} {"repo":"loopbackio/loopback-next","url":"https://api.github.com/user/repository_invitations/125589589"} {"repo":"loopbackio/loopback.io","url":"https://api.github.com/user/repository_invitations/125589601"} {"repo":"loopbackio/loopback4-example-kafka","url":"https://api.github.com/user/repository_invitations/125589615"} {"repo":"loopbackio/loopback4-example-shopping","url":"https://api.github.com/user/repository_invitations/125589625"} {"repo":"loopbackio/loopback4-extension-grpc","url":"https://api.github.com/user/repository_invitations/125589635"} {"repo":"loopbackio/starter","url":"https://api.github.com/user/repository_invitations/125589652"} {"repo":"loopbackio/strong-error-handler","url":"https://api.github.com/user/repository_invitations/125589662"} {"repo":"loopbackio/strong-soap","url":"https://api.github.com/user/repository_invitations/125589676"} ```
Old GitHub repo invites sent - [x] cicd - [x] explorer.loopback.io - [x] loopback-blog - [x] loopback-connector - [x] loopback-connector-cassandra - [x] loopback-connector-cloudant - [x] loopback-connector-dashdb - [x] loopback-connector-db2 - [x] loopback-connector-elastic-search - [x] loopback-connector-grpc - [x] loopback-connector-ibmi - [x] loopback-connector-kv-redis - [x] loopback-connector-mongodb - [x] loopback-connector-mssql - [x] loopback-connector-mysql - [x] loopback-connector-openapi - [x] loopback-connector-oracle - [x] loopback-connector-postgresql - [x] loopback-connector-redis - [x] loopback-connector-rest - [x] loopback-datasource-juggler - [x] loopback-governance - [x] loopback-next - [x] loopback.io - [x] loopback4-example-kafka - [x] loopback4-example-shopping - [x] loopback4-extension-grpc - [ ] project-contacts - [x] starter - [x] strong-error-handler - [x] strong-soap