Container and file artifact promotion tooling for the Kubernetes project
CNCF Technical Advisory Group on Contributor Strategy -- maintainer relations, building up contributors, governance, graduation, and more.
OpenID Connect (OIDC) identity and OAuth 2.0 provider with pluggable connectors
build(deps): Bump github/codeql-action from 2.2.1 to 2.2.2 (#79)
Bumps github/codeql-action from 2.2.1 to 2.2.2.
updated-dependencies:
Signed-off-by: dependabot[bot] support@github.com Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps github/codeql-action from 2.2.1 to 2.2.2.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Signed-off-by: Stephen Augustus foo@auggie.dev
workflows: Add peribolos dry-run postsubmit (#174)
Signed-off-by: Stephen Augustus foo@auggie.dev
workflows: Add peribolos dry-run postsubmit
Signed-off-by: Stephen Augustus foo@auggie.dev
[DROP] workflows: Test peribolos run w/ read-all
permissions
Signed-off-by: Stephen Augustus foo@auggie.dev
Signed-off-by: Stephen Augustus foo@auggie.dev
config: Split orgs into component subdirectories based on teams (#173)
Signed-off-by: Stephen Augustus foo@auggie.dev
Signed-off-by: Stephen Augustus foo@auggie.dev
This gets the configs into a similar structure as https://github.com/kubernetes/org/tree/main/config, namely:
config/{org1,org2}/org.yaml
config/org1/{group1,group2}/teams.yaml
Here's what that looks like:
❯ ./admin/update.sh --github-token-path ~/.github-token --confirm
+++ dirname ./admin/update.sh
++ cd ./admin/..
++ pwd -P
+ REPO_ROOT=/Users/augustus/prj/uwu-tools/peribolos
+ readonly REPO_ROOT
+ admins=('auggie-bot' 'cpanato' 'justaugustus')
+ readonly admins
+ readonly min_admins=3
+ min_admins=3
+ readonly config_path=config
+ config_path=config
+ cd /Users/augustus/prj/uwu-tools/peribolos
+ make update-prep
go build -v -o /Users/augustus/prj/uwu-tools/peribolos/_output/bin/peribolos
github.com/uwu-tools/peribolos
+ cmd=/Users/augustus/prj/uwu-tools/peribolos/_output/bin/peribolos
+ args=(--config-path="$config_path" --fix-org --fix-org-members --fix-teams --fix-team-members --fix-team-repos --min-admins="$min_admins" "${admins[@]/#/--required-admins=}")
+ /Users/augustus/prj/uwu-tools/peribolos/_output/bin/peribolos --config-path=config --fix-org --fix-org-members --fix-teams --fix-team-members --fix-team-repos --min-admins=3 --required-admins=auggie-bot --required-admins=cpanato --required-admins=justaugustus --github-token-path /Users/augustus/.github-token --confirm
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"Throttle(300, 100, *)","severity":"info","time":"2023-02-02T13:47:34-05:00"}
{"component":"unset","file":"/Users/augustus/prj/uwu-tools/peribolos/cmd/main.go:114","func":"github.com/uwu-tools/peribolos/cmd.rootCmd","level":"info","msg":"Adding config for org: relengfam","severity":"info","time":"2023-02-02T13:47:34-05:00"}
{"component":"unset","file":"/Users/augustus/prj/uwu-tools/peribolos/cmd/main.go:114","func":"github.com/uwu-tools/peribolos/cmd.rootCmd","level":"info","msg":"Adding config for org: uwu-tools","severity":"info","time":"2023-02-02T13:47:34-05:00"}
orgs:
relengfam:
admins:
- auggie-bot
- cpanato
- justaugustus
billing_email: fake@example.com
company: ""
default_repository_permission: read
description: ""
email: ""
has_organization_projects: true
has_repository_projects: true
location: ""
members_can_create_repositories: true
name: ""
uwu-tools:
admins:
- auggie-bot
- cpanato
- justaugustus
- sethmccombs
billing_email: foo@auggie.dev
company: ""
default_repository_permission: read
description: ""
email: ""
has_organization_projects: true
has_repository_projects: true
location: ""
members:
- detiber
members_can_create_repositories: true
name: ""
teams:
gh-jira-issue-sync-admins:
description: ""
maintainers:
- justaugustus
members:
- detiber
privacy: closed
repos:
gh-jira-issue-sync: admin
gh-jira-issue-sync-maintainers:
description: ""
maintainers:
- justaugustus
members:
- detiber
privacy: closed
repos:
gh-jira-issue-sync: maintain
peribolos-admins:
description: ""
maintainers:
- justaugustus
- cpanato
members:
- detiber
privacy: closed
repos:
peribolos: admin
peribolos-maintainers:
description: ""
maintainers:
- justaugustus
- cpanato
members:
- detiber
privacy: closed
repos:
peribolos: maintain
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"GetOrg(relengfam)","severity":"info","time":"2023-02-02T13:47:34-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:34-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListOrgInvitations(relengfam)","severity":"info","time":"2023-02-02T13:47:35-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:35-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"User()","severity":"info","time":"2023-02-02T13:47:35-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:35-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListOrgMembers(relengfam, admin)","severity":"info","time":"2023-02-02T13:47:35-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:35-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListOrgMembers(relengfam, member)","severity":"info","time":"2023-02-02T13:47:35-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:35-05:00"}
{"component":"unset","file":"/Users/augustus/prj/uwu-tools/peribolos/org/org.go:52","func":"github.com/uwu-tools/peribolos/org.Configure","level":"info","msg":"Skipping org repositories configuration","severity":"info","time":"2023-02-02T13:47:36-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeams(relengfam)","severity":"info","time":"2023-02-02T13:47:36-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:36-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"GetOrg(uwu-tools)","severity":"info","time":"2023-02-02T13:47:36-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:36-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListOrgInvitations(uwu-tools)","severity":"info","time":"2023-02-02T13:47:37-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:37-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListOrgMembers(uwu-tools, admin)","severity":"info","time":"2023-02-02T13:47:37-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:37-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListOrgMembers(uwu-tools, member)","severity":"info","time":"2023-02-02T13:47:37-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:37-05:00"}
{"component":"unset","file":"/Users/augustus/prj/uwu-tools/peribolos/org/org.go:52","func":"github.com/uwu-tools/peribolos/org.Configure","level":"info","msg":"Skipping org repositories configuration","severity":"info","time":"2023-02-02T13:47:38-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeams(uwu-tools)","severity":"info","time":"2023-02-02T13:47:38-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:38-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamMembersBySlug(uwu-tools, gh-jira-issue-sync-admins, member)","severity":"info","time":"2023-02-02T13:47:38-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:38-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamMembersBySlug(uwu-tools, gh-jira-issue-sync-admins, maintainer)","severity":"info","time":"2023-02-02T13:47:38-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:38-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamInvitationsBySlug(uwu-tools, gh-jira-issue-sync-admins)","severity":"info","time":"2023-02-02T13:47:39-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:39-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamReposBySlug(uwu-tools, gh-jira-issue-sync-admins)","severity":"info","time":"2023-02-02T13:47:39-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:39-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamMembersBySlug(uwu-tools, gh-jira-issue-sync-maintainers, member)","severity":"info","time":"2023-02-02T13:47:39-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:39-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamMembersBySlug(uwu-tools, gh-jira-issue-sync-maintainers, maintainer)","severity":"info","time":"2023-02-02T13:47:39-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:39-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamInvitationsBySlug(uwu-tools, gh-jira-issue-sync-maintainers)","severity":"info","time":"2023-02-02T13:47:40-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:40-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamReposBySlug(uwu-tools, gh-jira-issue-sync-maintainers)","severity":"info","time":"2023-02-02T13:47:40-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:40-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamMembersBySlug(uwu-tools, peribolos-admins, member)","severity":"info","time":"2023-02-02T13:47:40-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:40-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamMembersBySlug(uwu-tools, peribolos-admins, maintainer)","severity":"info","time":"2023-02-02T13:47:40-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:40-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamInvitationsBySlug(uwu-tools, peribolos-admins)","severity":"info","time":"2023-02-02T13:47:41-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:41-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamReposBySlug(uwu-tools, peribolos-admins)","severity":"info","time":"2023-02-02T13:47:41-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:41-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamMembersBySlug(uwu-tools, peribolos-maintainers, member)","severity":"info","time":"2023-02-02T13:47:41-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:41-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamMembersBySlug(uwu-tools, peribolos-maintainers, maintainer)","severity":"info","time":"2023-02-02T13:47:41-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:41-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamInvitationsBySlug(uwu-tools, peribolos-maintainers)","severity":"info","time":"2023-02-02T13:47:42-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:42-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeamReposBySlug(uwu-tools, peribolos-maintainers)","severity":"info","time":"2023-02-02T13:47:42-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T13:47:42-05:00"}
{"component":"unset","file":"/Users/augustus/prj/uwu-tools/peribolos/cmd/main.go:142","func":"github.com/uwu-tools/peribolos/cmd.rootCmd","level":"info","msg":"Finished syncing configuration.","severity":"info","time":"2023-02-02T13:47:42-05:00"}
build(deps): bump sigs.k8s.io/yaml from 1.2.0 to 1.3.0 (#11)
build(deps): bump github.com/google/go-cmp from 0.5.6 to 0.5.7 (#13)
initial conversion to run on actions
Signed-off-by: cpanato ctadeu@gmail.com
.github: Initial config for CodeQL & Scorecard
Signed-off-by: Stephen Augustus foo@auggie.dev
Merge pull request #17 from cpanato/actions
Initial conversion to run on actions
ko: Use apko v0.1.2 as base image (#18)
Signed-off-by: Stephen Augustus foo@auggie.dev
.github: Harden Action runners (#19)
Signed-off-by: Stephen Augustus foo@auggie.dev
fix ci
Signed-off-by: cpanato ctadeu@gmail.com
remove test to work in new test case suite
Signed-off-by: cpanato ctadeu@gmail.com
Merge pull request #20 from cpanato/test
fix ci
make peribolos run locally and as github actions
Signed-off-by: cpanato ctadeu@gmail.com
Line-wrap flags for readability
Signed-off-by: Stephen Augustus foo@auggie.dev
Use constants for flag names
Signed-off-by: Stephen Augustus foo@auggie.dev
Move parsing from Action input to separate method
Signed-off-by: Stephen Augustus foo@auggie.dev
Fix handling for Actions environments
Signed-off-by: Stephen Augustus foo@auggie.dev
Merge pull request #21 from cpanato/work-as-binaryu
Allow local runs and simulating GitHub Actions environment
build(deps): bump actions/setup-go from 2.2.0 to 3 (#23)
Encapsulate run logic in a separate function
Signed-off-by: Stephen Augustus foo@auggie.dev
Move options logic to separate file
Signed-off-by: Stephen Augustus foo@auggie.dev
Infer if peribolos is running in a GitHub Action from env vars
Signed-off-by: Stephen Augustus foo@auggie.dev
Perform config merges if specified config path is a directory (#172)
The merge
command primarily exists as a preprocessor.
Together with bash and Makefile targets, it:
This change internalizes that preprocessing when it recognizes that peribolos is being run against a config dir, instead of an individual YAML config file.
The specified config dir can be named anything, but the nested org configs will be expected to have the following form:
<config-dir>/<org-name>/org.yaml
The merge
subcommand may be removed in a future iteration.
Signed-off-by: Stephen Augustus foo@auggie.dev
The merge
command primarily exists as a preprocessor. Together with bash and Makefile targets, it:
This change internalizes that preprocessing when it recognizes that peribolos is being run against a config dir, instead of an individual YAML config file.
The specified config dir can be named anything, but the nested org configs will be expected to have the following form:
<config-dir>/<org-name>/org.yaml
The merge
subcommand may be removed in a future iteration.
Signed-off-by: Stephen Augustus foo@auggie.dev
Example command:
peribolos --config-path=config --fix-org --fix-org-members --fix-teams --fix-team-members --min-admins=3 --required-admins=auggie-bot --required-admins=cpanato --required-admins=justaugustus --github-token-path /Users/augustus/.github-token
Example output:
❯ ./admin/update.sh --github-token-path ~/.github-token
+++ dirname ./admin/update.sh
++ cd ./admin/..
++ pwd -P
+ REPO_ROOT=/Users/augustus/prj/uwu-tools/peribolos
+ readonly REPO_ROOT
+ admins=('auggie-bot' 'cpanato' 'justaugustus')
+ readonly admins
+ readonly min_admins=3
+ min_admins=3
+ readonly config_path=config
+ config_path=config
+ cd /Users/augustus/prj/uwu-tools/peribolos
+ make update-prep
go build -v -o /Users/augustus/prj/uwu-tools/peribolos/_output/bin/peribolos
github.com/uwu-tools/peribolos
+ cmd=/Users/augustus/prj/uwu-tools/peribolos/_output/bin/peribolos
+ args=(--config-path="$config_path" --fix-org --fix-org-members --fix-teams --fix-team-members --min-admins="$min_admins" "${admins[@]/#/--required-admins=}")
+ /Users/augustus/prj/uwu-tools/peribolos/_output/bin/peribolos --config-path=config --fix-org --fix-org-members --fix-teams --fix-team-members --min-admins=3 --required-admins=auggie-bot --required-admins=cpanato --required-admins=justaugustus --github-token-path /Users/augustus/.github-token
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"Throttle(300, 100, *)","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"component":"unset","file":"/Users/augustus/prj/uwu-tools/peribolos/cmd/main.go:114","func":"github.com/uwu-tools/peribolos/cmd.rootCmd","level":"info","msg":"Adding config for org: relengfam","severity":"info","time":"2023-02-02T06:34:53-05:00"}
orgs:
relengfam:
admins:
- auggie-bot
- cpanato
- justaugustus
billing_email: fake@example.com
company: ""
default_repository_permission: read
description: ""
email: ""
has_organization_projects: true
has_repository_projects: true
location: ""
members_can_create_repositories: true
name: ""
repos:
.allstar:
default_branch: main
has_projects: true
artifacts:
default_branch: main
description: Kubernetes artifact promotion configurations
has_projects: true
homepage: https://artifacts.k8s.io/
discuss-test:
default_branch: main
has_projects: true
private: true
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"GetOrg(relengfam)","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListOrgInvitations(relengfam)","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"User()","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListOrgMembers(relengfam, admin)","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListOrgMembers(relengfam, member)","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"component":"unset","file":"/Users/augustus/prj/uwu-tools/peribolos/org/org.go:52","func":"github.com/uwu-tools/peribolos/org.Configure","level":"info","msg":"Skipping org repositories configuration","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:918","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeams(relengfam)","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20230130201249-27b8435f1305/prow/github/client.go:1191","func":"k8s.io/test-infra/prow/github.(*client).doRequest","level":"info","msg":"Using GitHub REST API Version: 2022-11-28","severity":"info","time":"2023-02-02T06:34:53-05:00"}
{"component":"unset","file":"/Users/augustus/prj/uwu-tools/peribolos/cmd/main.go:142","func":"github.com/uwu-tools/peribolos/cmd.rootCmd","level":"info","msg":"Finished syncing configuration.","severity":"info","time":"2023-02-02T06:34:54-05:00"}
Running a dump yields the following:
go run main.go --dump uwu-tools --github-token-path ~/.github-token | tee uwu-tools.yaml
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20220701081723-ad3e4ab74c32/prow/github/client.go:910","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"Throttle(300, 100, *)","severity":"info","time":"2022-07-06T07:24:29-04:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20220701081723-ad3e4ab74c32/prow/github/client.go:910","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"GetOrg(uwu-tools)","severity":"info","time":"2022-07-06T07:24:29-04:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20220701081723-ad3e4ab74c32/prow/github/client.go:910","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"User()","severity":"info","time":"2022-07-06T07:24:29-04:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20220701081723-ad3e4ab74c32/prow/github/client.go:910","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListOrgMembers(uwu-tools, admin)","severity":"info","time":"2022-07-06T07:24:30-04:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20220701081723-ad3e4ab74c32/prow/github/client.go:910","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListOrgMembers(uwu-tools, member)","severity":"info","time":"2022-07-06T07:24:30-04:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20220701081723-ad3e4ab74c32/prow/github/client.go:910","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"ListTeams(uwu-tools)","severity":"info","time":"2022-07-06T07:24:30-04:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20220701081723-ad3e4ab74c32/prow/github/client.go:910","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"GetRepos(uwu-tools, false)","severity":"info","time":"2022-07-06T07:24:30-04:00"}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20220701081723-ad3e4ab74c32/prow/github/client.go:910","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"GetRepo(uwu-tools, go-ghcrawl)","severity":"info","time":"2022-07-06T07:24:30-04:00"}
{"component":"unset","file":"/Users/augustus/prj/relengfam/peribolos/cmd/main.go:84","func":"github.com/relengfam/peribolos/cmd.rootCmd","level":"info","msg":"Dumping orgs[\"uwu-tools\"]:","severity":"info","time":"2022-07-06T07:24:30-04:00"}
admins:
- auggie-bot
- justaugustus
- sethmccombs
billing_email: ***@example.com
company: ""
default_repository_permission: read
description: ""
email: ""
has_organization_projects: true
has_repository_projects: true
location: ""
members_can_create_repositories: true
name: ""
repos:
go-ghcrawl:
default_branch: main
has_projects: true
Now, let's try a merge
:
./admin/update.sh --github-token-path ~/.github-token
+++ dirname ./admin/update.sh
++ cd ./admin/..
++ pwd -P
+ REPO_ROOT=/Users/augustus/prj/relengfam/peribolos
+ readonly REPO_ROOT
+ admins=('cpanato' 'justaugustus')
+ readonly admins
+ cd /Users/augustus/prj/relengfam/peribolos
+ make update-prep
cat: imagerefs: No such file or directory
make: Circular merge <- merge dependency dropped.
mkdir -p "/Users/augustus/prj/relengfam/peribolos/_output"
/Users/augustus/prj/relengfam/peribolos/_output/bin/peribolos merge \
--merge-teams \
--org-part=uwu-tools=config/uwu-tools/org.yaml \
> /Users/augustus/prj/relengfam/peribolos/_output/gen-config.yaml
+ cmd=/Users/augustus/prj/relengfam/peribolos/_output/bin/peribolos
+ args=(--config-path="${REPO_ROOT}/_output/gen-config.yaml" --fix-org --fix-org-members --fix-teams --fix-team-members "${admins[@]/#/--required-admins=}")
+ /Users/augustus/prj/relengfam/peribolos/_output/bin/peribolos --config-path=/Users/augustus/prj/relengfam/peribolos/_output/gen-config.yaml --fix-org --fix-org-members --fix-teams --fix-team-members --required-admins=cpanato --required-admins=justaugustus --github-token-path /Users/augustus/.github-token
{}
{"client":"github","component":"unset","file":"/Users/augustus/go/pkg/mod/k8s.io/test-infra@v0.0.0-20211221011455-3d87616db8ae/prow/github/client.go:889","func":"k8s.io/test-infra/prow/github.(*client).log","level":"info","msg":"Throttle(300, 100, *)","severity":"info","time":"2022-07-06T07:35:05-04:00"}
{"component":"unset","file":"/Users/augustus/prj/relengfam/peribolos/cmd/main.go:106","func":"github.com/relengfam/peribolos/cmd.rootCmd","level":"info","msg":"Finished syncing configuration.","severity":"info","time":"2022-07-06T07:35:05-04:00"}
Let's look at the output:
❯ cat _output/gen-config.yaml
_output/gen-config.yaml:
{}
orgs:
uwu-tools:
admins:
- auggie-bot
- cpanato
- justaugustus
- sethmccombs
billing_email: ***@example.com
company: ""
default_repository_permission: read
description: ""
email: ""
has_organization_projects: true
has_repository_projects: true
location: ""
members_can_create_repositories: true
name: ""
repos:
go-ghcrawl:
default_branch: main
has_projects: true
The above file is not a valid yaml document.
Note the following at the top of the file:
{}
Note the same when using the --help
flag:
./admin/update.sh --github-token-path ~/.github-token --help
+++ dirname ./admin/update.sh
++ cd ./admin/..
++ pwd -P
+ REPO_ROOT=/Users/augustus/prj/relengfam/peribolos
+ readonly REPO_ROOT
+ admins=('cpanato' 'justaugustus')
+ readonly admins
+ cd /Users/augustus/prj/relengfam/peribolos
+ make update-prep
cat: imagerefs: No such file or directory
make: Circular merge <- merge dependency dropped.
mkdir -p "/Users/augustus/prj/relengfam/peribolos/_output"
/Users/augustus/prj/relengfam/peribolos/_output/bin/peribolos merge \
--merge-teams \
--org-part=uwu-tools=config/uwu-tools/org.yaml \
> /Users/augustus/prj/relengfam/peribolos/_output/gen-config.yaml
+ cmd=/Users/augustus/prj/relengfam/peribolos/_output/bin/peribolos
+ args=(--config-path="${REPO_ROOT}/_output/gen-config.yaml" --fix-org --fix-org-members --fix-teams --fix-team-members "${admins[@]/#/--required-admins=}")
+ /Users/augustus/prj/relengfam/peribolos/_output/bin/peribolos --config-path=/Users/augustus/prj/relengfam/peribolos/_output/gen-config.yaml --fix-org --fix-org-members --fix-teams --fix-team-members --required-admins=cpanato --required-admins=justaugustus --github-token-path /Users/augustus/.github-token --help
{}
Usage:
[flags]
[command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
merge
version Prints the version
Flags:
--allow-repo-archival If set, archiving repos is allowed while updating repos
--allow-repo-publish If set, making private repos public is allowed while updating repos
--config-path string Path to org config.yaml
--confirm Mutate github if set
<snip>
Use " [command] --help" for more information about a command.
It looks like this actually was fixed by https://github.com/uwu-tools/peribolos/pull/161, so closing. Will reopen if needed.
Perform config merges if specified config path is a directory
The merge
command primarily exists as a preprocessor.
Together with bash and Makefile targets, it:
This change internalizes that preprocessing when it recognizes that peribolos is being run against a config dir, instead of an individual YAML config file.
The specified config dir can be named anything, but the nested org configs will be expected to have the following form:
<config-dir>/<org-name>/org.yaml
The merge
subcommand may be removed in a future iteration.
Signed-off-by: Stephen Augustus foo@auggie.dev
The merge
command primarily exists as a preprocessor. Together with bash and Makefile targets, it:
This change internalizes that preprocessing when it recognizes that peribolos is being run against a config dir, instead of an individual YAML config file.
The specified config dir can be named anything, but the nested org configs will be expected to have the following form:
<config-dir>/<org-name>/org.yaml
The merge
subcommand may be removed in a future iteration.
Signed-off-by: Stephen Augustus foo@auggie.dev
Perform config merges if specified config path is a directory
The merge
command primarily exists as a preprocessor.
Together with bash and Makefile targets, it:
This change internalizes that preprocessing when it recognizes that peribolos is being run against a config dir, instead of an individual YAML config file.
The specified config dir can be named anything, but the nested org configs will be expected to have the following form:
<config-dir>/<org-name>/org.yaml
The merge
subcommand may be removed in a future iteration.
Signed-off-by: Stephen Augustus foo@auggie.dev
Apply suggestions from code review
Signed-off-by: Stephen Augustus (he/him) justaugustus@users.noreply.github.com