diff --git a/.gitignore b/.gitignore index 17cdaceaa..b96433705 100644 --- a/.gitignore +++ b/.gitignore @@ -107,6 +107,8 @@ contributors_file* ##documentation scripts/sort_contibutors/.env scripts/sort_contibutors/contributors_file.* +scripts/sort_contibutors/.tools/ +scripts/sort_contibutors/bin/ #optimizations .github/scripts/binary_version.txt diff --git a/scripts/sort_contibutors/Makefile b/scripts/sort_contibutors/Makefile index fb91374f9..333c63fb8 100644 --- a/scripts/sort_contibutors/Makefile +++ b/scripts/sort_contibutors/Makefile @@ -25,13 +25,13 @@ vet: $(GO) vet ./... security: - @command -v gosec >/dev/null 2>&1 || { \ + @if command -v gosec >/dev/null 2>&1; then \ + gosec ./...; \ + else \ echo "gosec not found. Installing with: go install github.com/securego/gosec/v2/cmd/gosec@latest"; \ GOBIN=$$(pwd)/.tools $(GO) install github.com/securego/gosec/v2/cmd/gosec@latest || exit 1; \ PATH=$$(pwd)/.tools:$$PATH gosec ./...; \ - exit $$?; \ - } - gosec ./... + fi clean: rm -rf $(BUILD_DIR) .tools diff --git a/scripts/sort_contibutors/main.go b/scripts/sort_contibutors/main.go index 62e1cb91b..74376622b 100644 --- a/scripts/sort_contibutors/main.go +++ b/scripts/sort_contibutors/main.go @@ -67,6 +67,8 @@ var excludedContributors = map[string]struct{}{ "commjoen": {}, "bendehaan": {}, "benno001": {}, + "copilot": {}, + "copilot-swe-agent": {}, } var knownNames = map[string]string{ diff --git a/scripts/sort_contibutors/main_test.go b/scripts/sort_contibutors/main_test.go index cd61b3293..85c0baed5 100644 --- a/scripts/sort_contibutors/main_test.go +++ b/scripts/sort_contibutors/main_test.go @@ -147,3 +147,23 @@ func TestWriteFile(t *testing.T) { t.Fatalf("unexpected file content: %s", string(b)) } } + +func TestParseContributorListExcludesAutomatedAccounts(t *testing.T) { + t.Parallel() + + a := &app{nameCache: map[string]string{}} + input := []contributorAPI{ + {Login: "some[bot]", Contributions: 10}, + {Login: "copilot", Contributions: 10}, + {Login: "copilot-swe-agent", Contributions: 10}, + {Login: "f3rn0s", Contributions: 5}, + } + + got := a.parseContributorList(input) + if len(got) != 1 { + t.Fatalf("expected 1 contributor after filtering, got %d", len(got)) + } + if got[0].Username != "f3rn0s" { + t.Fatalf("expected f3rn0s to remain, got %+v", got[0]) + } +}