Skip to content

Commit

Permalink
Check entity is initialize before checking rules inside (#45)
Browse files Browse the repository at this point in the history
* change all rule to same format

* change to cb policy

* change builder to build valid object

* merge

* repository builder

* fix 2 test files

* fix all other files

* add consts

* fix pipeline test

* change tests description

* move consts to testutils, rewrite debug file

* remove debug file

* add is organinztion fetched to utils

* change details to be in 1 object

* change all statuses to consts

* move to consts

* move details to const

* move to go funk

* rename functions

* handle repository data fetching failed + check if pul request

* check if the information is avalible before checking the rules

* reorder consts
  • Loading branch information
MorAlon1 authored Jul 4, 2022
1 parent 1dd9214 commit 8f8de31
Show file tree
Hide file tree
Showing 21 changed files with 208 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,16 @@ import (

func TestAccessToArtifactsChecker(t *testing.T) {
tests := []testutils.CheckTest{
{
Name: "should return unknown when registry was not fetched",
Data: &checkmodels.CheckData{
AssetsMetadata: builders.NewAssetsDataBuilder().WithNoRegistryData().Build(),
},
Expected: []*checkmodels.CheckRunResult{
checkmodels.ToCheckRunResult("4.2.3", checksMetadata.Checks["4.2.3"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_registry_data_is_missing}),
checkmodels.ToCheckRunResult("4.2.5", checksMetadata.Checks["4.2.5"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_registry_data_is_missing}),
},
},
{
Name: "should return unknown with explanation when there are no org settings permissions",
Data: &checkmodels.CheckData{
Expand Down Expand Up @@ -43,6 +53,17 @@ func TestAccessToArtifactsChecker(t *testing.T) {
checkmodels.ToCheckRunResult("4.2.3", checksMetadata.Checks["4.2.3"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Failed}),
},
},
{
Name: "Should fail when the user have package registry with 1 public package under private repo",
Data: &checkmodels.CheckData{
AssetsMetadata: builders.NewAssetsDataBuilder().
WithPackageRegistry(builders.NewRegistryBuilder().WithTwoFactorAuthenticationEnabled(false).Build()).
Build(),
},
Expected: []*checkmodels.CheckRunResult{
checkmodels.ToCheckRunResult("4.2.3", checksMetadata.Checks["4.2.3"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Failed}),
},
},
{
Name: "Should fail when the user have package registry with 1 public package under private repo",
Data: &checkmodels.CheckData{
Expand Down
10 changes: 10 additions & 0 deletions internal/checks/artifacts/access-to-artifacts/rules.rego
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package main

import data.common.consts as constsLib
import data.common.permissions as permissionslib
import data.generic.utils as utilsLib
import future.keywords.in

is_two_factor_authentication_disabled_in_registry {
Expand All @@ -20,22 +21,31 @@ is_registry_packages_allows_anonymous_access[unauth_packages] {
}

CbPolicy[msg] {
utilsLib.is_registry_data_missing
msg := {"ids": ["4.2.3", "4.2.5"], "status": constsLib.status.Unknown, "details": constsLib.details.registry_data_is_missing}
}

CbPolicy[msg] {
not utilsLib.is_registry_data_missing
permissionslib.is_missing_org_settings_permission
msg := {"ids": ["4.2.3"], "status": constsLib.status.Unknown, "details": constsLib.details.organization_missing_minimal_permissions}
}

CbPolicy[msg] {
not utilsLib.is_registry_data_missing
permissionslib.is_missing_org_packages_permission
msg := {"ids": ["4.2.5"], "status": constsLib.status.Unknown, "details": constsLib.details.organization_packages_missing_minimal_permissions}
}

CbPolicy[msg] {
not utilsLib.is_registry_data_missing
not permissionslib.is_missing_org_settings_permission
is_two_factor_authentication_disabled_in_registry
msg := {"ids": ["4.2.3"], "status": constsLib.status.Failed}
}

CbPolicy[msg] {
not utilsLib.is_registry_data_missing
not permissionslib.is_missing_org_packages_permission
unauth_packages := is_registry_packages_allows_anonymous_access[i]
details := sprintf("%v %v", [format_int(unauth_packages, 10), "anonymous accessed packages"])
Expand Down
9 changes: 9 additions & 0 deletions internal/checks/artifacts/package-registries/rules.rego
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package main

import data.common.consts as constsLib
import data.common.permissions as permissionslib
import data.generic.utils as utilsLib
import future.keywords.in

is_org_have_unsucured_hooks[unsecuredHooks] {
Expand All @@ -18,13 +19,21 @@ is_org_have_unsucured_hooks[unsecuredHooks] {
unsecuredHooks > 0
}

CbPolicy[msg] {
utilsLib.is_repository_data_missing
utilsLib.is_organization_data_missing
msg := {"ids": ["4.3.4"], "status": constsLib.status.Unknown}
}

CbPolicy[msg] {
permissionslib.is_missing_hooks_permission
msg := {"ids": ["4.3.4"], "status": constsLib.status.Unknown, "details": constsLib.details.hooks_missing_minimal_permissions}
}

#Looking for organization 2mfa enforcements that is disabled
CbPolicy[msg] {
not utilsLib.is_repository_data_missing
not utilsLib.is_organization_data_missing
not permissionslib.is_missing_hooks_permission
unsecuredHooks := is_org_have_unsucured_hooks[i]
details := sprintf("%v %v", [format_int(unsecuredHooks, 10), "unsecured webhooks"])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ func TestBuildChecker(t *testing.T) {
AssetsMetadata: builders.NewAssetsDataBuilder().WithNoPipelinesData().Build(),
},
Expected: []*checkmodels.CheckRunResult{
checkmodels.ToCheckRunResult("2.3.1", checksMetadata.Checks["2.3.1"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("2.3.7", checksMetadata.Checks["2.3.7"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("2.3.8", checksMetadata.Checks["2.3.8"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("2.3.1", checksMetadata.Checks["2.3.1"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_pipeline_are_missing}),
checkmodels.ToCheckRunResult("2.3.7", checksMetadata.Checks["2.3.7"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_pipeline_are_missing}),
checkmodels.ToCheckRunResult("2.3.8", checksMetadata.Checks["2.3.8"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_pipeline_are_missing}),
},
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ is_build_job_missing {
# In case pipelines weren't fetched
CbPolicy[msg] {
utilsLib.is_pipelines_data_missing
msg = {"ids": pipelineRuleIds, "status": constsLib.status.Unknown}
msg = {"ids": pipelineRuleIds, "status": constsLib.status.Unknown, "details": constsLib.details.pipeline_data_is_missing}
}

# In case there are no pipelines
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ func TestBuildChecker(t *testing.T) {
AssetsMetadata: builders.NewAssetsDataBuilder().WithNoPipelinesData().Build(),
},
Expected: []*checkmodels.CheckRunResult{
checkmodels.ToCheckRunResult("2.4.2", checksMetadata.Checks["2.4.2"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("2.4.6", checksMetadata.Checks["2.4.6"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("2.4.2", checksMetadata.Checks["2.4.2"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_pipeline_are_missing}),
checkmodels.ToCheckRunResult("2.4.6", checksMetadata.Checks["2.4.6"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_pipeline_are_missing}),
},
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ are_there_pipelines_without_sbom[pipelinesWithoutSBOM] {
# In case pipelines weren't fetched
CbPolicy[msg] {
utilsLib.is_pipelines_data_missing
msg = {"ids": ruleIds, "status": constsLib.status.Unknown}
msg = {"ids": ruleIds, "status": constsLib.status.Unknown, "details": constsLib.details.pipeline_data_is_missing}
}

# In case there are no pipelines
Expand Down
9 changes: 6 additions & 3 deletions internal/checks/common/assets/consts.rego
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,22 @@ package common.consts
details := details {
details := {
"organization_missing_minimal_permissions": "Organization is missing minimal permissions",
"repository_missing_minimal_permissions": "Repository is missing minimal permissions",
"organization_not_fetched": "Organization is not fetched",
"organization_packages_missing_minimal_permissions": "Organization Packages is missing minimal permissions",
"organization_premissive_default_repository_permissions": "Organization default permissions are too permissive",
"repository_missing_minimal_permissions": "Repository is missing minimal permissions",
"repository_data_is_missing": "Repository is not fetched",
"hooks_missing_minimal_permissions": "Organization & Repository Hooks is missing minimal permissions",
"linear_history_merge_commit_enabled": "MergeCommit is enabled for repository",
"linear_history_require_rebase_or_squash_commit_enabled": "Repository is not configured to allow rebase or squash merge",
"pipeline_no_pipelines_found": "No pipelines were found",
"pipeline_no_build_job": "No build job was found in pipelines",
"organization_premissive_default_repository_permissions": "Organization default permissions are too permissive",
"pipeline_data_is_missing": "Pipelines are not fetched",
"pipeline_pipelines_not_scanned_for_vulnerabilities": "Pipelines are not scanned for vulnerabilities",
"organization_not_fetched": "Organization is not fetched",
"pipeline_repository_not_scanned_for_secrets": "Repository is not scanned for secrets",
"dependencies_pipelines_not_scanned_for_vulnerabilities": "Pipeline dependencies are not scanned for vulnerabilities",
"dependencies_pipelines_not_scanned_for_licenses": "Pipeline dependencies are not scanned for licenses",
"registry_data_is_missing": "Registry is not fetched",
}
}

Expand Down
8 changes: 8 additions & 0 deletions internal/checks/common/assets/utils.rego
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,11 @@ is_pipelines_list_empty {
is_organization_data_missing {
input.Organization == null
}

is_registry_data_missing {
input.Registry == null
}

is_repository_data_missing {
input.Repository == null
}
3 changes: 3 additions & 0 deletions internal/checks/consts/details.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,7 @@ var (
Details_pipeline_repositoryNotScannedForSecrets = "Repository is not scanned for secrets"
Details_pipeline_noPipelinesFound = "No pipelines were found"
Details_pipeline_noBuildJob = "No build job was found in pipelines"
Details_registry_data_is_missing = "Registry is not fetched"
Details_pipeline_are_missing = "Pipelines are not fetched"
Details_repository_is_missing = "Repository is not fetched"
)
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ are_there_unpinned_deps[unpinnedDepsCount] {

CbPolicy[msg] {
utilsLib.is_pipelines_data_missing
msg = {"ids": ["3.1.7"], "status": constsLib.status.Unknown}
msg = {"ids": ["3.1.7"], "status": constsLib.status.Unknown, "details": constsLib.details.pipeline_data_is_missing}
}

# In case there are no pipelines
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func TestBuildChecker(t *testing.T) {
AssetsMetadata: builders.NewAssetsDataBuilder().WithNoPipelinesData().Build(),
},
Expected: []*checkmodels.CheckRunResult{
checkmodels.ToCheckRunResult("3.1.7", checksMetadata.Checks["3.1.7"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("3.1.7", checksMetadata.Checks["3.1.7"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_pipeline_are_missing}),
},
},
{
Expand Down
2 changes: 1 addition & 1 deletion internal/checks/dependencies/validate_packages/rules.rego
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ are_pipelines_dependencies_scanned_for_licenses {

CbPolicy[msg] {
utilsLib.is_pipelines_data_missing
msg = {"ids": ["3.2.2", "3.2.3"], "status": constsLib.status.Unknown}
msg = {"ids": ["3.2.2", "3.2.3"], "status": constsLib.status.Unknown, "details": constsLib.details.pipeline_data_is_missing}
}

# In case there are no pipelines
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ func TestBuildChecker(t *testing.T) {
AssetsMetadata: builders.NewAssetsDataBuilder().WithNoPipelinesData().Build(),
},
Expected: []*checkmodels.CheckRunResult{
checkmodels.ToCheckRunResult("3.2.2", checksMetadata.Checks["3.2.2"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("3.2.3", checksMetadata.Checks["3.2.3"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("3.2.2", checksMetadata.Checks["3.2.2"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_pipeline_are_missing}),
checkmodels.ToCheckRunResult("3.2.3", checksMetadata.Checks["3.2.3"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_pipeline_are_missing}),
},
},
{
Expand Down
48 changes: 35 additions & 13 deletions internal/checks/source-code/code-changes/code_changes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,19 +38,41 @@ func TestCodeChangesChecker(t *testing.T) {
AssetsMetadata: builders.NewAssetsDataBuilder().WithRepository(builders.NewRepositoryBuilder().WithNoRepoPemissions().Build()).Build(),
},
Expected: []*checkmodels.CheckRunResult{
checkmodels.ToCheckRunResult("1.1.3", checksMetadata.Checks["1.1.3"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.4", checksMetadata.Checks["1.1.4"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.5", checksMetadata.Checks["1.1.5"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.6", checksMetadata.Checks["1.1.6"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.9", checksMetadata.Checks["1.1.9"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.10", checksMetadata.Checks["1.1.10"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.11", checksMetadata.Checks["1.1.11"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.12", checksMetadata.Checks["1.1.12"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.13", checksMetadata.Checks["1.1.13"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.14", checksMetadata.Checks["1.1.14"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.15", checksMetadata.Checks["1.1.15"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.16", checksMetadata.Checks["1.1.16"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.17", checksMetadata.Checks["1.1.17"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown}),
checkmodels.ToCheckRunResult("1.1.3", checksMetadata.Checks["1.1.3"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.4", checksMetadata.Checks["1.1.4"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.5", checksMetadata.Checks["1.1.5"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.6", checksMetadata.Checks["1.1.6"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.9", checksMetadata.Checks["1.1.9"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.10", checksMetadata.Checks["1.1.10"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.11", checksMetadata.Checks["1.1.11"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.12", checksMetadata.Checks["1.1.12"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.13", checksMetadata.Checks["1.1.13"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.14", checksMetadata.Checks["1.1.14"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.15", checksMetadata.Checks["1.1.15"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.16", checksMetadata.Checks["1.1.16"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
checkmodels.ToCheckRunResult("1.1.17", checksMetadata.Checks["1.1.17"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_missing_minimal_permissions}),
},
},
{
Name: "Couldnt get repostiroty data because of missing permissions or wrong url",
Data: &checkmodels.CheckData{
AssetsMetadata: builders.NewAssetsDataBuilder().WithNoRepositoryData().Build(),
},
Expected: []*checkmodels.CheckRunResult{
checkmodels.ToCheckRunResult("1.1.3", checksMetadata.Checks["1.1.3"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.4", checksMetadata.Checks["1.1.4"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.5", checksMetadata.Checks["1.1.5"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.6", checksMetadata.Checks["1.1.6"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.8", checksMetadata.Checks["1.1.8"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.9", checksMetadata.Checks["1.1.9"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.10", checksMetadata.Checks["1.1.10"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.11", checksMetadata.Checks["1.1.11"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.12", checksMetadata.Checks["1.1.12"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.13", checksMetadata.Checks["1.1.13"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.14", checksMetadata.Checks["1.1.14"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.15", checksMetadata.Checks["1.1.15"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.16", checksMetadata.Checks["1.1.16"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
checkmodels.ToCheckRunResult("1.1.17", checksMetadata.Checks["1.1.17"], checksMetadata.Url, &checkmodels.CheckResult{Status: checkmodels.Unknown, Details: consts.Details_repository_is_missing}),
},
},
{
Expand Down
Loading

0 comments on commit 8f8de31

Please sign in to comment.