Scan timing: clone 1.52s · analysis 7.8s · 0.8 MB · GitHub API rate-limit (preflight)
https://github.com/terraform-google-modules/terraform-google-project-factory
· scanned 2026-06-05 22:56 UTC (4 days, 7 hours ago)
· 10 languages
131 raw signals (103 security + 28 graph) System graph score 98 (lower by 28)
Last scanned 4 days, 7 hours ago · v2 · 82 actionable findings from 2 signal sources. 12 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
40.0 | 0.15 | 6.00 |
security_score |
55.0 | 0.25 | 13.75 |
testing_score |
90.0 | 0.20 | 18.00 |
documentation_score |
97.0 | 0.15 | 14.55 |
practices_score |
65.0 | 0.15 | 9.75 |
code_quality |
76.3 | 0.10 | 7.62 |
| Overall | 1.00 | 69.7 |
All 479 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
metadata.yaml |
software | healthy | metadata.yaml |
.kitchen.yml |
software | healthy | .kitchen.yml |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
main.tf |
software | healthy | main.tf |
variables.tf |
software | healthy | variables.tf |
versions.tf |
software | healthy | versions.tf |
.pre-commit-config.yaml |
software | healthy | .pre-commit-config.yaml |
metadata.display.yaml |
software | healthy | metadata.display.yaml |
Makefile |
software | healthy | Makefile |
outputs.tf |
software | healthy | outputs.tf |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
go.mod |
software | healthy | test/integration/go.mod |
discover_test.go |
software | healthy | test/integration/discover_test.go |
quota_project_test.go |
software | healthy | test/integration/quota_project/quota_project_test.go |
inspec.yml |
software | healthy | test/integration/minimal/inspec.yml |
minimal.rb |
software | healthy | test/integration/minimal/controls/minimal.rb |
inspec.yml |
software | healthy | test/integration/vpc_sc_project/inspec.yml |
vpc_sc_project.rb |
software | healthy | test/integration/vpc_sc_project/controls/vpc_sc_project.rb |
inspec.yml |
software | healthy | test/integration/budget/inspec.yml |
budget.rb |
software | healthy | test/integration/budget/controls/budget.rb |
inspec.yml |
software | healthy | test/integration/full/inspec.yml |
gsuite.rb |
software | healthy | test/integration/full/controls/gsuite.rb |
project-factory.rb |
software | healthy | test/integration/full/controls/project-factory.rb |
shared-vpc.rb |
software | healthy | test/integration/full/controls/shared-vpc.rb |
inspec.yml |
software | healthy | test/integration/dynamic_shared_vpc/inspec.yml |
svpc.rb |
software | healthy | test/integration/dynamic_shared_vpc/controls/svpc.rb |
tags_project_test.go |
software | healthy | test/integration/tags_project/tags_project_test.go |
inspec.yml |
software | healthy | test/integration/fabric_project/inspec.yml |
project_fabric.rb |
software | healthy | test/integration/fabric_project/controls/project_fabric.rb |
essential_contacts_test.go |
software | healthy | test/integration/essential_contacts/essential_contacts_test… |
inspec.yml |
software | healthy | test/integration/app_engine/inspec.yml |
app-engine.rb |
software | healthy | test/integration/app_engine/controls/app-engine.rb |
inspec.yml |
software | healthy | test/integration/shared_vpc_no_subnets/inspec.yml |
gcloud.rb |
software | healthy | test/integration/shared_vpc_no_subnets/controls/gcloud.rb |
gcp.rb |
software | healthy | test/integration/shared_vpc_no_subnets/controls/gcp.rb |
README.md |
software | healthy | test/fixtures/minimal/README.md |
main.tf |
software | healthy | test/fixtures/minimal/main.tf |
variables.tf |
software | healthy | test/fixtures/minimal/variables.tf |
outputs.tf |
software | healthy | test/fixtures/minimal/outputs.tf |
main.tf |
software | healthy | test/fixtures/vpc_sc_project/main.tf |
variables.tf |
software | healthy | test/fixtures/vpc_sc_project/variables.tf |
versions.tf |
software | healthy | test/fixtures/vpc_sc_project/versions.tf |
outputs.tf |
software | healthy | test/fixtures/vpc_sc_project/outputs.tf |
main.tf |
software | healthy | test/fixtures/budget/main.tf |
variables.tf |
software | healthy | test/fixtures/budget/variables.tf |
outputs.tf |
software | healthy | test/fixtures/budget/outputs.tf |
README.md |
software | healthy | test/fixtures/full/README.md |
main.tf |
software | healthy | test/fixtures/full/main.tf |
variables.tf |
software | healthy | test/fixtures/full/variables.tf |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
k8s::BlueprintMetadata::metadata.yaml |
hardware | healthy | metadata.yaml |
k8s::BlueprintMetadata::metadata.display.yaml |
hardware | healthy | metadata.display.yaml |
k8s::BlueprintMetadata::modules/svpc_service_project/metada… |
hardware | healthy | modules/svpc_service_project/metadata.yaml |
k8s::BlueprintMetadata::modules/svpc_service_project/metada… |
hardware | healthy | modules/svpc_service_project/metadata.display.yaml |
k8s::BlueprintMetadata::modules/budget/metadata.yaml |
hardware | healthy | modules/budget/metadata.yaml |
k8s::BlueprintMetadata::modules/budget/metadata.display.yaml |
hardware | healthy | modules/budget/metadata.display.yaml |
k8s::BlueprintMetadata::modules/fabric-project/metadata.yaml |
hardware | healthy | modules/fabric-project/metadata.yaml |
k8s::BlueprintMetadata::modules/fabric-project/metadata.dis… |
hardware | healthy | modules/fabric-project/metadata.display.yaml |
k8s::BlueprintMetadata::modules/project_services/metadata.y… |
hardware | healthy | modules/project_services/metadata.yaml |
k8s::BlueprintMetadata::modules/project_services/metadata.d… |
hardware | healthy | modules/project_services/metadata.display.yaml |
k8s::BlueprintMetadata::modules/shared_vpc_access/metadata.… |
hardware | healthy | modules/shared_vpc_access/metadata.yaml |
k8s::BlueprintMetadata::modules/shared_vpc_access/metadata.… |
hardware | healthy | modules/shared_vpc_access/metadata.display.yaml |
k8s::BlueprintMetadata::modules/gsuite_enabled/metadata.yaml |
hardware | healthy | modules/gsuite_enabled/metadata.yaml |
k8s::BlueprintMetadata::modules/gsuite_enabled/metadata.dis… |
hardware | healthy | modules/gsuite_enabled/metadata.display.yaml |
k8s::BlueprintMetadata::modules/essential_contacts/metadata… |
hardware | healthy | modules/essential_contacts/metadata.yaml |
k8s::BlueprintMetadata::modules/essential_contacts/metadata… |
hardware | healthy | modules/essential_contacts/metadata.display.yaml |
k8s::BlueprintMetadata::modules/quota_manager/metadata.yaml |
hardware | healthy | modules/quota_manager/metadata.yaml |
k8s::BlueprintMetadata::modules/quota_manager/metadata.disp… |
hardware | healthy | modules/quota_manager/metadata.display.yaml |
tf::google_service_account::extra_service_account |
hardware | healthy | test/fixtures/full/main.tf |
tf::google_project_iam_member::additive_sa_role |
hardware | healthy | test/fixtures/full/main.tf |
tf::google_project_iam_member::additive_shared_vpc_role |
hardware | healthy | test/fixtures/full/main.tf |
tf::google_service_account_iam_member::additive_service_acc… |
hardware | healthy | test/fixtures/full/main.tf |
tf::random_id::folder_rand |
hardware | healthy | test/setup/main.tf |
tf::google_folder::ci_pfactory_folder |
hardware | healthy | test/setup/main.tf |
tf::random_id::random_string_for_testing |
hardware | healthy | test/setup/main.tf |
tf::time_sleep::wait_180_seconds |
hardware | healthy | test/setup/main.tf |
tf::google_service_account::int_test |
hardware | healthy | test/setup/iam.tf |
tf::google_project_iam_member::int_test_project |
hardware | healthy | test/setup/iam.tf |
tf::google_folder_iam_member::int_test_folder |
hardware | healthy | test/setup/iam.tf |
tf::google_organization_iam_member::int_test_org |
hardware | healthy | test/setup/iam.tf |
tf::google_service_account_key::int_test |
hardware | healthy | test/setup/iam.tf |
tf::google_billing_account_iam_member::int_billing_admin |
hardware | healthy | test/setup/iam.tf |
tf::random_string::key_suffix |
hardware | healthy | test/setup/tags.tf |
tf::google_tags_tag_key::key |
hardware | healthy | test/setup/tags.tf |
tf::google_tags_tag_value::value |
hardware | healthy | test/setup/tags.tf |
tf::google_billing_budget::budget |
hardware | healthy | modules/budget/main.tf |
tf::google_project::project |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_project_service::project_services |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_project_iam_member::owners |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_project_iam_member::editors |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_project_iam_member::viewers |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_compute_project_metadata_item::oslogin_meta |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_project_iam_member::oslogin_admins |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_project_iam_member::oslogin_users |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_project_iam_member::oslogin_sa_users |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_project_iam_member::oslogin_viewers |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_project_iam_custom_role::roles |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_project_iam_binding::extra |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_resource_manager_lien::lien |
hardware | healthy | modules/fabric-project/main.tf |
tf::google_project_iam_member::gce_service_account |
hardware | healthy | modules/fabric-project/main.tf |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
setUp |
software | healthy | test/scripts/preconditions/test_preconditions.py:30 |
test_is_satisfied |
software | healthy | test/scripts/preconditions/test_preconditions.py:40 |
test_extra_is_satisfied |
software | healthy | test/scripts/preconditions/test_preconditions.py:61 |
test_is_not_satisfied |
software | healthy | test/scripts/preconditions/test_preconditions.py:84 |
test_empty_required |
software | healthy | test/scripts/preconditions/test_preconditions.py:98 |
test_base_permissions |
software | healthy | test/scripts/preconditions/test_preconditions.py:135 |
test_shared_vpc_permissions |
software | healthy | test/scripts/preconditions/test_preconditions.py:114 |
test_parent_permissions |
software | healthy | test/scripts/preconditions/test_preconditions.py:139 |
setUp |
software | healthy | test/helpers/test_migrate.py:219 |
test_moves |
software | healthy | test/helpers/test_migrate.py:193 |
test_no_moves_of_data_sources |
software | healthy | test/helpers/test_migrate.py:197 |
test_no_moves_of_unmigrated_resources |
software | healthy | test/helpers/test_migrate.py:203 |
test_no_moves_outside_of_module |
software | healthy | test/helpers/test_migrate.py:209 |
test_has_resource |
software | healthy | test/helpers/test_migrate.py:229 |
test_has_resource_empty |
software | healthy | test/helpers/test_migrate.py:235 |
test_get_resources |
software | healthy | test/helpers/test_migrate.py:239 |
test_get_resources_empty |
software | healthy | test/helpers/test_migrate.py:245 |
test_root_resource_from_path |
software | healthy | test/helpers/test_migrate.py:251 |
test_module_resource_from_path |
software | healthy | test/helpers/test_migrate.py:258 |
test_invalid_resource_from_path |
software | healthy | test/helpers/test_migrate.py:265 |
test_resource_init |
software | healthy | test/helpers/test_migrate.py:271 |
test_resource_path_no_module |
software | healthy | test/helpers/test_migrate.py:277 |
test_resource_path_with_module |
software | healthy | test/helpers/test_migrate.py:281 |
__init__ |
software | healthy | helpers/migrate.py:257 |
moves |
software | healthy | helpers/migrate.py:138 |
targets |
software | healthy | helpers/migrate.py:158 |
get_resources |
software | healthy | helpers/migrate.py:188 |
has_resource |
software | healthy | helpers/migrate.py:207 |
__repr__ |
software | healthy | helpers/migrate.py:274 |
from_path |
software | healthy | helpers/migrate.py:242 |
path |
software | healthy | helpers/migrate.py:265 |
group_by_module |
software | healthy | helpers/migrate.py:282 |
read_state |
software | healthy | helpers/migrate.py:300 |
state_changes_for_module |
software | healthy | helpers/migrate.py:314 |
migrate |
software | healthy | helpers/migrate.py:330 |
main |
software | healthy | helpers/migrate.py:373 |
argparser |
software | healthy | helpers/migrate.py:385 |
__init__ |
software | healthy | helpers/migrate4.py:185 |
moves |
software | healthy | helpers/migrate4.py:46 |
targets |
software | healthy | helpers/migrate4.py:85 |
get_resources |
software | healthy | helpers/migrate4.py:115 |
has_resource |
software | healthy | helpers/migrate4.py:135 |
__repr__ |
software | healthy | helpers/migrate4.py:202 |
from_path |
software | healthy | helpers/migrate4.py:170 |
path |
software | healthy | helpers/migrate4.py:193 |
group_by_module |
software | healthy | helpers/migrate4.py:210 |
read_state |
software | healthy | helpers/migrate4.py:228 |
read_resource_value |
software | healthy | helpers/migrate4.py:242 |
state_changes_for_module |
software | healthy | helpers/migrate4.py:261 |
migrate |
software | healthy | helpers/migrate4.py:279 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
test |
software | healthy | test |
integration |
software | healthy | test/integration |
quota_project |
software | healthy | test/integration/quota_project |
minimal |
software | healthy | test/integration/minimal |
controls |
software | healthy | test/integration/minimal/controls |
vpc_sc_project |
software | healthy | test/integration/vpc_sc_project |
controls |
software | healthy | test/integration/vpc_sc_project/controls |
budget |
software | healthy | test/integration/budget |
controls |
software | healthy | test/integration/budget/controls |
full |
software | healthy | test/integration/full |
controls |
software | healthy | test/integration/full/controls |
dynamic_shared_vpc |
software | healthy | test/integration/dynamic_shared_vpc |
controls |
software | healthy | test/integration/dynamic_shared_vpc/controls |
tags_project |
software | healthy | test/integration/tags_project |
fabric_project |
software | healthy | test/integration/fabric_project |
controls |
software | healthy | test/integration/fabric_project/controls |
essential_contacts |
software | healthy | test/integration/essential_contacts |
app_engine |
software | healthy | test/integration/app_engine |
controls |
software | healthy | test/integration/app_engine/controls |
shared_vpc_no_subnets |
software | healthy | test/integration/shared_vpc_no_subnets |
controls |
software | healthy | test/integration/shared_vpc_no_subnets/controls |
fixtures |
software | healthy | test/fixtures |
minimal |
software | healthy | test/fixtures/minimal |
vpc_sc_project |
software | healthy | test/fixtures/vpc_sc_project |
budget |
software | healthy | test/fixtures/budget |
full |
software | healthy | test/fixtures/full |
dynamic_shared_vpc |
software | healthy | test/fixtures/dynamic_shared_vpc |
fabric_project |
software | healthy | test/fixtures/fabric_project |
app_engine |
software | healthy | test/fixtures/app_engine |
shared_vpc_no_subnets |
software | healthy | test/fixtures/shared_vpc_no_subnets |
scripts |
software | healthy | test/scripts |
preconditions |
software | healthy | test/scripts/preconditions |
helpers |
software | healthy | test/helpers |
setup |
software | healthy | test/setup |
docs |
software | healthy | docs |
helpers |
software | healthy | helpers |
preconditions |
software | healthy | helpers/preconditions |
modules |
software | healthy | modules |
svpc_service_project |
software | healthy | modules/svpc_service_project |
budget |
software | healthy | modules/budget |
fabric-project |
software | healthy | modules/fabric-project |
gsuite_group |
software | healthy | modules/gsuite_group |
core_project_factory |
software | healthy | modules/core_project_factory |
project_services |
software | healthy | modules/project_services |
shared_vpc_access |
software | healthy | modules/shared_vpc_access |
gsuite_enabled |
software | healthy | modules/gsuite_enabled |
essential_contacts |
software | healthy | modules/essential_contacts |
app_engine |
software | healthy | modules/app_engine |
quota_manager |
software | healthy | modules/quota_manager |
examples |
software | healthy | examples |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestRequirements |
software | healthy | test/scripts/preconditions/test_preconditions.py:29 |
TestOrgPermissions |
software | healthy | test/scripts/preconditions/test_preconditions.py:109 |
TestFolderPermissions |
software | healthy | test/scripts/preconditions/test_preconditions.py:134 |
TestGSuiteMigration |
software | healthy | test/helpers/test_migrate.py:181 |
TestTerraformModule |
software | healthy | test/helpers/test_migrate.py:218 |
TestTerraformResource |
software | healthy | test/helpers/test_migrate.py:250 |
GSuiteMigration |
software | healthy | helpers/migrate.py:129 |
TerraformModule |
software | healthy | helpers/migrate.py:176 |
TerraformResource |
software | healthy | helpers/migrate.py:230 |
ProjectServicesMigration |
software | healthy | helpers/migrate4.py:35 |
TerraformModule |
software | healthy | helpers/migrate4.py:103 |
TerraformResource |
software | healthy | helpers/migrate4.py:158 |
Requirements |
software | healthy | helpers/preconditions/preconditions.py:47 |
OrgPermissions |
software | healthy | helpers/preconditions/preconditions.py:82 |
FolderPermissions |
software | healthy | helpers/preconditions/preconditions.py:157 |
SharedVpcProjectPermissions |
software | healthy | helpers/preconditions/preconditions.py:200 |
SeedProjectServices |
software | healthy | helpers/preconditions/preconditions.py:234 |
BillingAccount |
software | healthy | helpers/preconditions/preconditions.py:277 |
EmptyStrAction |
software | healthy | helpers/preconditions/preconditions.py:379 |
| Label | Layer | Status | Path |
|---|---|---|---|
stale |
cicd | healthy | .github/workflows/stale.yml |
lint |
cicd | healthy | .github/workflows/lint.yaml |
commitlint |
cicd | healthy | .github/workflows/lint.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::stale |
cicd | healthy | .github/workflows/stale.yml |
gha::lint |
cicd | healthy | .github/workflows/lint.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-liq4ihqe |
software | healthy | /tmp/repobility-clone-liq4ihqe |
| Label | Layer | Status | Path |
|---|---|---|---|
pubsub |
data | healthy | metadata.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::gcp |
hardware | healthy | .kitchen.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
GITHUB_TOKEN |
cicd | healthy | — |
This page is publicly accessible at:
https://repobility.com/scan/be5d5d5d-c671-4215-9637-667cc16b6a20/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/be5d5d5d-c671-4215-9637-667cc16b6a20/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.