Skip to content

Commit c4ec327

Browse files
Add scanning validity checks (#3026)
Fixes: #3006.
1 parent fb8a83d commit c4ec327

File tree

8 files changed

+97
-12
lines changed

8 files changed

+97
-12
lines changed

github/enterprise_code_security_and_analysis.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ type EnterpriseSecurityAnalysisSettings struct {
1616
SecretScanningEnabledForNewRepositories *bool `json:"secret_scanning_enabled_for_new_repositories,omitempty"`
1717
SecretScanningPushProtectionEnabledForNewRepositories *bool `json:"secret_scanning_push_protection_enabled_for_new_repositories,omitempty"`
1818
SecretScanningPushProtectionCustomLink *string `json:"secret_scanning_push_protection_custom_link,omitempty"`
19+
SecretScanningValidityChecksEnabled *bool `json:"secret_scanning_validity_checks_enabled,omitempty"`
1920
}
2021

2122
// GetCodeSecurityAndAnalysis gets code security and analysis features for an enterprise.

github/enterprise_code_security_and_analysis_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ func TestEnterpriseService_GetCodeSecurityAndAnalysis(t *testing.T) {
2727
"advanced_security_enabled_for_new_repositories": true,
2828
"secret_scanning_enabled_for_new_repositories": true,
2929
"secret_scanning_push_protection_enabled_for_new_repositories": true,
30-
"secret_scanning_push_protection_custom_link": "https://github.com/test-org/test-repo/blob/main/README.md"
30+
"secret_scanning_push_protection_custom_link": "https://github.com/test-org/test-repo/blob/main/README.md",
31+
"secret_scanning_validity_checks_enabled": true
3132
}`)
3233
})
3334

@@ -44,6 +45,7 @@ func TestEnterpriseService_GetCodeSecurityAndAnalysis(t *testing.T) {
4445
SecretScanningEnabledForNewRepositories: Bool(true),
4546
SecretScanningPushProtectionEnabledForNewRepositories: Bool(true),
4647
SecretScanningPushProtectionCustomLink: String("https://github.com/test-org/test-repo/blob/main/README.md"),
48+
SecretScanningValidityChecksEnabled: Bool(true),
4749
}
4850

4951
if !cmp.Equal(settings, want) {
@@ -73,6 +75,7 @@ func TestEnterpriseService_UpdateCodeSecurityAndAnalysis(t *testing.T) {
7375
SecretScanningEnabledForNewRepositories: Bool(true),
7476
SecretScanningPushProtectionEnabledForNewRepositories: Bool(true),
7577
SecretScanningPushProtectionCustomLink: String("https://github.com/test-org/test-repo/blob/main/README.md"),
78+
SecretScanningValidityChecksEnabled: Bool(true),
7679
}
7780

7881
mux.HandleFunc("/enterprises/e/code_security_and_analysis", func(w http.ResponseWriter, r *http.Request) {

github/github-accessors.go

Lines changed: 32 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

github/github-accessors_test.go

Lines changed: 37 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

github/github-stringify_test.go

Lines changed: 11 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

github/orgs.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ type Organization struct {
9595
SecretScanningEnabledForNewRepos *bool `json:"secret_scanning_enabled_for_new_repositories,omitempty"`
9696
// SecretScanningPushProtectionEnabledForNewRepos toggles whether secret scanning push protection is enabled on new repositories.
9797
SecretScanningPushProtectionEnabledForNewRepos *bool `json:"secret_scanning_push_protection_enabled_for_new_repositories,omitempty"`
98+
// SecretScanningValidityChecksEnabled toggles whether secret scanning validity check is enabled.
99+
SecretScanningValidityChecksEnabled *bool `json:"secret_scanning_validity_checks_enabled,omitempty"`
98100

99101
// API URLs
100102
URL *string `json:"url,omitempty"`

github/repos.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ type SecurityAndAnalysis struct {
198198
SecretScanning *SecretScanning `json:"secret_scanning,omitempty"`
199199
SecretScanningPushProtection *SecretScanningPushProtection `json:"secret_scanning_push_protection,omitempty"`
200200
DependabotSecurityUpdates *DependabotSecurityUpdates `json:"dependabot_security_updates,omitempty"`
201+
SecretScanningValidityChecks *SecretScanningValidityChecks `json:"secret_scanning_validity_checks,omitempty"`
201202
}
202203

203204
func (s SecurityAndAnalysis) String() string {
@@ -248,6 +249,13 @@ func (d DependabotSecurityUpdates) String() string {
248249
return Stringify(d)
249250
}
250251

252+
// SecretScanningValidityChecks represents the state of secret scanning validity checks on a repository.
253+
//
254+
// GitHub API docs: https://docs.github.com/en/enterprise-cloud@latest/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#allowing-validity-checks-for-partner-patterns-in-a-repository
255+
type SecretScanningValidityChecks struct {
256+
Status *string `json:"status,omitempty"`
257+
}
258+
251259
// List calls either RepositoriesService.ListByUser or RepositoriesService.ListByAuthenticatedUser
252260
// depending on whether user is empty.
253261
//

github/repos_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ func TestRepositoriesService_Get(t *testing.T) {
360360
mux.HandleFunc("/repos/o/r", func(w http.ResponseWriter, r *http.Request) {
361361
testMethod(t, r, "GET")
362362
testHeader(t, r, "Accept", strings.Join(wantAcceptHeaders, ", "))
363-
fmt.Fprint(w, `{"id":1,"name":"n","description":"d","owner":{"login":"l"},"license":{"key":"mit"},"security_and_analysis":{"advanced_security":{"status":"enabled"},"secret_scanning":{"status":"enabled"},"secret_scanning_push_protection":{"status":"enabled"},"dependabot_security_updates":{"status": "enabled"}}}`)
363+
fmt.Fprint(w, `{"id":1,"name":"n","description":"d","owner":{"login":"l"},"license":{"key":"mit"},"security_and_analysis":{"advanced_security":{"status":"enabled"},"secret_scanning":{"status":"enabled"},"secret_scanning_push_protection":{"status":"enabled"},"dependabot_security_updates":{"status": "enabled"}, "secret_scanning_validity_checks":{"status":"enabled"}}}`)
364364
})
365365

366366
ctx := context.Background()
@@ -369,7 +369,7 @@ func TestRepositoriesService_Get(t *testing.T) {
369369
t.Errorf("Repositories.Get returned error: %v", err)
370370
}
371371

372-
want := &Repository{ID: Int64(1), Name: String("n"), Description: String("d"), Owner: &User{Login: String("l")}, License: &License{Key: String("mit")}, SecurityAndAnalysis: &SecurityAndAnalysis{AdvancedSecurity: &AdvancedSecurity{Status: String("enabled")}, SecretScanning: &SecretScanning{String("enabled")}, SecretScanningPushProtection: &SecretScanningPushProtection{String("enabled")}, DependabotSecurityUpdates: &DependabotSecurityUpdates{String("enabled")}}}
372+
want := &Repository{ID: Int64(1), Name: String("n"), Description: String("d"), Owner: &User{Login: String("l")}, License: &License{Key: String("mit")}, SecurityAndAnalysis: &SecurityAndAnalysis{AdvancedSecurity: &AdvancedSecurity{Status: String("enabled")}, SecretScanning: &SecretScanning{String("enabled")}, SecretScanningPushProtection: &SecretScanningPushProtection{String("enabled")}, DependabotSecurityUpdates: &DependabotSecurityUpdates{String("enabled")}, SecretScanningValidityChecks: &SecretScanningValidityChecks{String("enabled")}}}
373373
if !cmp.Equal(got, want) {
374374
t.Errorf("Repositories.Get returned %+v, want %+v", got, want)
375375
}

0 commit comments

Comments
 (0)