Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add OpenJS Foundation accounts to our services used #21

Open
3 of 5 tasks
achrinza opened this issue Mar 13, 2022 · 2 comments
Open
3 of 5 tasks

Add OpenJS Foundation accounts to our services used #21

achrinza opened this issue Mar 13, 2022 · 2 comments
Labels
openjsf related to OpenJS Foundation

Comments

@achrinza
Copy link
Member

achrinza commented Mar 13, 2022

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:

  • Azure (From Azure Open Source Credits program)
@achrinza achrinza added the openjsf related to OpenJS Foundation label Mar 13, 2022
@achrinza
Copy link
Member Author

achrinza commented Apr 21, 2022

@achrinza
Copy link
Member Author

achrinza commented Apr 22, 2022

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

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

{"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
  • cicd
  • explorer.loopback.io
  • loopback-blog
  • loopback-connector
  • loopback-connector-cassandra
  • loopback-connector-cloudant
  • loopback-connector-dashdb
  • loopback-connector-db2
  • loopback-connector-elastic-search
  • loopback-connector-grpc
  • loopback-connector-ibmi
  • loopback-connector-kv-redis
  • loopback-connector-mongodb
  • loopback-connector-mssql
  • loopback-connector-mysql
  • loopback-connector-openapi
  • loopback-connector-oracle
  • loopback-connector-postgresql
  • loopback-connector-redis
  • loopback-connector-rest
  • loopback-datasource-juggler
  • loopback-governance
  • loopback-next
  • loopback.io
  • loopback4-example-kafka
  • loopback4-example-shopping
  • loopback4-extension-grpc
  • project-contacts
  • starter
  • strong-error-handler
  • strong-soap

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
openjsf related to OpenJS Foundation
Projects
None yet
Development

No branches or pull requests

1 participant