cartography 0.96.1__tar.gz → 0.96.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cartography might be problematic. Click here for more details.
- {cartography-0.96.1 → cartography-0.96.2}/PKG-INFO +1 -1
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/cve/feed.py +25 -23
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/github/repos.py +80 -62
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/github/users.py +2 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/github/util.py +2 -1
- {cartography-0.96.1 → cartography-0.96.2}/cartography.egg-info/PKG-INFO +1 -1
- {cartography-0.96.1 → cartography-0.96.2}/setup.py +1 -1
- {cartography-0.96.1 → cartography-0.96.2}/LICENSE +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/README.md +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/__main__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/cli.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/client/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/client/aws/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/client/aws/iam.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/client/core/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/client/core/tx.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/config.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/indexes.cypher +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_ec2_asset_exposure.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_ec2_iaminstance.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_ec2_iaminstanceprofile.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_ec2_keypair_analysis.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_eks_asset_exposure.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_foreign_accounts.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_lambda_ecr.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_s3acl_analysis.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/gcp_compute_asset_inet_exposure.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/gcp_gke_asset_exposure.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/gcp_gke_basic_auth.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/gsuite_human_link.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_account_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_apigateway_details.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_dns_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_account_access_key_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_apigateway_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_config_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_ec2_launch_configurations_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_ec2_security_groupinfo_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_ecr_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_ecs_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_elastic_ip_addresses_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_elasticache_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_es_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_groups_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_groups_membership_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_groups_policy_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_identity_center_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_internet_gateways_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_kms_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_lambda_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_principals_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_rds_clusters_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_rds_instances_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_rds_snapshots_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_redshift_clusters_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_reserved_instances_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_roles_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_roles_policy_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_s3_acl_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_s3_buckets_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_secrets_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_securityhub_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_snapshots_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_sqs_queues_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_tags_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_tgw_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_users_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_vpc_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_vpc_peering_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_ingest_ec2_auto_scaling_groups_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_ingest_load_balancers_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_ingest_load_balancers_v2_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_ingest_subnets_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_kms_details.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_post_ingestion_principals_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_s3_details.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_cosmosdb_cassandra_keyspace_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_cosmosdb_cors_details.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_cosmosdb_mongodb_database_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_cosmosdb_sql_database_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_cosmosdb_table_resources_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_database_account_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_import_disks_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_import_snapshots_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_import_virtual_machines_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_sql_server_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_storage_account_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_subscriptions_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_tenant_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/crowdstrike_import_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/digitalocean_droplet_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/digitalocean_project_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_compute_firewall_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_compute_forwarding_rules_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_compute_instance_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_compute_vpc_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_compute_vpc_subnet_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_crm_folder_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_crm_organization_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_crm_project_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_dns_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_gke_cluster_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_storage_bucket_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/github_org_and_users_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/github_repos_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gsuite_ingest_groups_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gsuite_ingest_users_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/jamf_import_computers_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/kubernetes_import_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/oci_import_compartments_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/oci_import_groups_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/oci_import_groups_membership_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/oci_import_policies_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/oci_import_users_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/oci_tenancy_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/okta_groups_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/okta_import_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/pagerduty_import_cleanup.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/scoped_analysis/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/scoped_analysis/semgrep_sca_risk_analysis.json +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/data/permission_relationships.yaml +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/__main__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/add_shortcut.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/cli.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/config.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/detect_deviations.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/get_states.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/model.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/reporter.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/serializers.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/shortcut.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/storage.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/driftdetect/util.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/graph/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/graph/cleanupbuilder.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/graph/context.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/graph/job.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/graph/querybuilder.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/graph/statement.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/analysis.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/apigateway.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/config.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/dynamodb.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/auto_scaling_groups.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/elastic_ip_addresses.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/images.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/instances.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/internet_gateways.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/key_pairs.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/launch_templates.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/load_balancer_v2s.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/load_balancers.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/network_acls.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/network_interfaces.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/reserved_instances.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/security_groups.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/snapshots.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/subnets.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/tgw.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/util.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/volumes.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/vpc.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ec2/vpc_peerings.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ecr.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ecs.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/eks.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/elasticache.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/elasticsearch.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/emr.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/iam.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/identitycenter.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/inspector.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/kms.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/lambda_function.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/organizations.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/permission_relationships.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/rds.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/redshift.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/resourcegroupstaggingapi.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/resources.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/route53.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/s3.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/secretsmanager.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/securityhub.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/sqs.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/ssm.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/util/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/util/arns.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/aws/util/common.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/azure/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/azure/compute.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/azure/cosmosdb.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/azure/sql.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/azure/storage.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/azure/subscription.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/azure/tenant.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/azure/util/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/azure/util/credentials.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/bigfix/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/bigfix/computers.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/create_indexes.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/crowdstrike/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/crowdstrike/endpoints.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/crowdstrike/spotlight.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/crowdstrike/util.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/cve/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/digitalocean/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/digitalocean/compute.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/digitalocean/management.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/digitalocean/platform.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/dns.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/duo/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/duo/api_host.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/duo/endpoints.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/duo/groups.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/duo/phones.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/duo/tokens.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/duo/users.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/duo/web_authn_credentials.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/gcp/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/gcp/compute.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/gcp/crm.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/gcp/dns.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/gcp/gke.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/gcp/storage.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/github/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/github/teams.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/gsuite/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/gsuite/api.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/jamf/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/jamf/computers.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/jamf/util.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/kandji/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/kandji/devices.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/kubernetes/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/kubernetes/namespaces.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/kubernetes/pods.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/kubernetes/secrets.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/kubernetes/services.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/kubernetes/util.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/lastpass/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/lastpass/users.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/oci/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/oci/iam.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/oci/organizations.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/oci/utils.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/okta/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/okta/applications.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/okta/awssaml.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/okta/factors.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/okta/groups.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/okta/organization.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/okta/origins.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/okta/roles.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/okta/sync_state.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/okta/users.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/okta/utils.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/pagerduty/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/pagerduty/escalation_policies.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/pagerduty/schedules.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/pagerduty/services.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/pagerduty/teams.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/pagerduty/users.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/pagerduty/vendors.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/semgrep/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/semgrep/dependencies.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/semgrep/deployment.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/semgrep/findings.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/snipeit/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/snipeit/asset.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/snipeit/user.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/intel/snipeit/util.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/dynamodb/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/dynamodb/gsi.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/dynamodb/tables.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/auto_scaling_groups.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/images.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/instances.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/keypairs.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/launch_configurations.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/launch_template_versions.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/launch_templates.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/loadbalancerv2.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/network_acl_rules.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/network_acls.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/networkinterface_instance.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/networkinterfaces.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/privateip_networkinterface.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/reservations.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/securitygroup_instance.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/securitygroup_networkinterface.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/subnet_instance.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/subnet_networkinterface.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ec2/volumes.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/eks/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/eks/clusters.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/emr.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/identitycenter/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/identitycenter/awsidentitycenter.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/identitycenter/awspermissionset.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/identitycenter/awsssouser.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/inspector/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/inspector/findings.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/inspector/packages.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ssm/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ssm/instance_information.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/aws/ssm/instance_patch.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/bigfix/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/bigfix/bigfix_computer.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/bigfix/bigfix_root.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/core/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/core/common.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/core/nodes.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/core/relationships.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/cve/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/cve/cve.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/cve/cve_feed.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/duo/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/duo/api_host.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/duo/endpoint.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/duo/group.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/duo/phone.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/duo/token.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/duo/user.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/duo/web_authn_credential.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/github/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/github/orgs.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/github/teams.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/github/users.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/kandji/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/kandji/device.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/kandji/tenant.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/lastpass/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/lastpass/tenant.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/lastpass/user.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/semgrep/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/semgrep/dependencies.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/semgrep/deployment.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/semgrep/findings.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/semgrep/locations.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/snipeit/__init__.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/snipeit/asset.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/snipeit/tenant.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/models/snipeit/user.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/py.typed +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/stats.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/sync.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography/util.py +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography.egg-info/SOURCES.txt +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography.egg-info/dependency_links.txt +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography.egg-info/entry_points.txt +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography.egg-info/requires.txt +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/cartography.egg-info/top_level.txt +0 -0
- {cartography-0.96.1 → cartography-0.96.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cartography
|
|
3
|
-
Version: 0.96.
|
|
3
|
+
Version: 0.96.2
|
|
4
4
|
Summary: Explore assets and their relationships across your technical infrastructure.
|
|
5
5
|
Home-page: https://www.github.com/cartography-cncf/cartography
|
|
6
6
|
Maintainer: Cartography Contributors
|
|
@@ -85,30 +85,32 @@ def _call_cves_api(url: str, api_key: str | None, params: Dict[str, Any]) -> Dic
|
|
|
85
85
|
)
|
|
86
86
|
results: Dict[Any, Any] = dict()
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
88
|
+
with requests.Session() as session:
|
|
89
|
+
while params["resultsPerPage"] > 0 or params["startIndex"] < totalResults:
|
|
90
|
+
logger.info(f"Calling NIST NVD API at {url} with params {params}")
|
|
91
|
+
try:
|
|
92
|
+
res = session.get(
|
|
93
|
+
url, params=params, headers=headers, timeout=CONNECT_AND_READ_TIMEOUT,
|
|
94
|
+
)
|
|
95
|
+
res.raise_for_status()
|
|
96
|
+
data = res.json()
|
|
97
|
+
except requests.exceptions.HTTPError:
|
|
98
|
+
logger.error(
|
|
99
|
+
f"Failed to get CVE data from NIST NVD API {res.status_code} : {res.text}",
|
|
100
|
+
)
|
|
101
|
+
retries += 1
|
|
102
|
+
if retries >= MAX_RETRIES:
|
|
103
|
+
raise
|
|
104
|
+
# Exponential backoff
|
|
105
|
+
sleep_time *= 2
|
|
106
|
+
time.sleep(sleep_time)
|
|
107
|
+
continue
|
|
108
|
+
_map_cve_dict(results, data)
|
|
109
|
+
totalResults = data["totalResults"]
|
|
110
|
+
params["resultsPerPage"] = data["resultsPerPage"]
|
|
111
|
+
params["startIndex"] += data["resultsPerPage"]
|
|
112
|
+
retries = 0
|
|
103
113
|
time.sleep(sleep_time)
|
|
104
|
-
continue
|
|
105
|
-
data = res.json()
|
|
106
|
-
_map_cve_dict(results, data)
|
|
107
|
-
totalResults = data["totalResults"]
|
|
108
|
-
params["resultsPerPage"] = data["resultsPerPage"]
|
|
109
|
-
params["startIndex"] += data["resultsPerPage"]
|
|
110
|
-
retries = 0
|
|
111
|
-
time.sleep(sleep_time)
|
|
112
114
|
return results
|
|
113
115
|
|
|
114
116
|
|
|
@@ -140,22 +140,40 @@ def _get_repo_collaborators_inner_func(
|
|
|
140
140
|
org: str,
|
|
141
141
|
api_url: str,
|
|
142
142
|
token: str,
|
|
143
|
-
|
|
143
|
+
repo_raw_data: list[dict[str, Any]],
|
|
144
144
|
affiliation: str,
|
|
145
145
|
collab_users: list[dict[str, Any]],
|
|
146
146
|
collab_permission: list[str],
|
|
147
|
-
) ->
|
|
148
|
-
|
|
149
|
-
|
|
147
|
+
) -> dict[str, list[UserAffiliationAndRepoPermission]]:
|
|
148
|
+
result: dict[str, list[UserAffiliationAndRepoPermission]] = {}
|
|
149
|
+
|
|
150
|
+
for repo in repo_raw_data:
|
|
151
|
+
repo_name = repo['name']
|
|
152
|
+
repo_url = repo['url']
|
|
153
|
+
|
|
154
|
+
if ((affiliation == 'OUTSIDE' and repo['outsideCollaborators']['totalCount'] == 0) or
|
|
155
|
+
(affiliation == 'DIRECT' and repo['directCollaborators']['totalCount'] == 0)):
|
|
156
|
+
# repo has no collabs of the affiliation type we're looking for, so don't waste time making an API call
|
|
157
|
+
result[repo_url] = []
|
|
158
|
+
continue
|
|
159
|
+
|
|
160
|
+
logger.info(f"Loading {affiliation} collaborators for repo {repo_name}.")
|
|
161
|
+
collaborators = _get_repo_collaborators(token, api_url, org, repo_name, affiliation)
|
|
150
162
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
163
|
+
# nodes and edges are expected to always be present given that we only call for them if totalCount is > 0
|
|
164
|
+
# however sometimes GitHub returns None, as in issue 1334 and 1404.
|
|
165
|
+
for collab in collaborators.nodes or []:
|
|
166
|
+
collab_users.append(collab)
|
|
155
167
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
168
|
+
# The `or []` is because `.edges` can be None.
|
|
169
|
+
for perm in collaborators.edges or []:
|
|
170
|
+
collab_permission.append(perm['permission'])
|
|
171
|
+
|
|
172
|
+
result[repo_url] = [
|
|
173
|
+
UserAffiliationAndRepoPermission(user, permission, affiliation)
|
|
174
|
+
for user, permission in zip(collab_users, collab_permission)
|
|
175
|
+
]
|
|
176
|
+
return result
|
|
159
177
|
|
|
160
178
|
|
|
161
179
|
def _get_repo_collaborators_for_multiple_repos(
|
|
@@ -175,39 +193,24 @@ def _get_repo_collaborators_for_multiple_repos(
|
|
|
175
193
|
:param token: The Github API token as string.
|
|
176
194
|
:return: A dictionary of repo URL to list of UserAffiliationAndRepoPermission
|
|
177
195
|
"""
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
backoff_handler,
|
|
197
|
-
)(
|
|
198
|
-
org=org,
|
|
199
|
-
api_url=api_url,
|
|
200
|
-
token=token,
|
|
201
|
-
repo_name=repo_name,
|
|
202
|
-
affiliation=affiliation,
|
|
203
|
-
collab_users=collab_users,
|
|
204
|
-
collab_permission=collab_permission,
|
|
205
|
-
)
|
|
206
|
-
|
|
207
|
-
result[repo_url] = [
|
|
208
|
-
UserAffiliationAndRepoPermission(user, permission, affiliation)
|
|
209
|
-
for user, permission in zip(collab_users, collab_permission)
|
|
210
|
-
]
|
|
196
|
+
logger.info(f'Retrieving repo collaborators for affiliation "{affiliation}" on org "{org}".')
|
|
197
|
+
collab_users: List[dict[str, Any]] = []
|
|
198
|
+
collab_permission: List[str] = []
|
|
199
|
+
|
|
200
|
+
result: dict[str, list[UserAffiliationAndRepoPermission]] = retries_with_backoff(
|
|
201
|
+
_get_repo_collaborators_inner_func,
|
|
202
|
+
TypeError,
|
|
203
|
+
5,
|
|
204
|
+
backoff_handler,
|
|
205
|
+
)(
|
|
206
|
+
org=org,
|
|
207
|
+
api_url=api_url,
|
|
208
|
+
token=token,
|
|
209
|
+
repo_raw_data=repo_raw_data,
|
|
210
|
+
affiliation=affiliation,
|
|
211
|
+
collab_users=collab_users,
|
|
212
|
+
collab_permission=collab_permission,
|
|
213
|
+
)
|
|
211
214
|
return result
|
|
212
215
|
|
|
213
216
|
|
|
@@ -260,8 +263,9 @@ def get(token: str, api_url: str, organization: str) -> List[Dict]:
|
|
|
260
263
|
|
|
261
264
|
|
|
262
265
|
def transform(
|
|
263
|
-
|
|
264
|
-
|
|
266
|
+
repos_json: List[Dict],
|
|
267
|
+
direct_collaborators: dict[str, List[UserAffiliationAndRepoPermission]],
|
|
268
|
+
outside_collaborators: dict[str, List[UserAffiliationAndRepoPermission]],
|
|
265
269
|
) -> Dict:
|
|
266
270
|
"""
|
|
267
271
|
Parses the JSON returned from GitHub API to create data for graph ingestion
|
|
@@ -289,16 +293,24 @@ def transform(
|
|
|
289
293
|
_transform_repo_languages(repo_object['url'], repo_object, transformed_repo_languages)
|
|
290
294
|
_transform_repo_objects(repo_object, transformed_repo_list)
|
|
291
295
|
_transform_repo_owners(repo_object['owner']['url'], repo_object, transformed_repo_owners)
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
296
|
+
|
|
297
|
+
# Allow sync to continue if we didn't have permissions to list collaborators
|
|
298
|
+
repo_url = repo_object['url']
|
|
299
|
+
if repo_url in outside_collaborators:
|
|
300
|
+
_transform_collaborators(
|
|
301
|
+
repo_object['url'],
|
|
302
|
+
outside_collaborators[repo_object['url']],
|
|
303
|
+
transformed_outside_collaborators,
|
|
304
|
+
)
|
|
305
|
+
if repo_url in direct_collaborators:
|
|
306
|
+
_transform_collaborators(
|
|
307
|
+
repo_object['url'],
|
|
308
|
+
direct_collaborators[repo_object['url']],
|
|
309
|
+
transformed_direct_collaborators,
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
_transform_requirements_txt(repo_object['requirements'], repo_url, transformed_requirements_files)
|
|
313
|
+
_transform_setup_cfg_requirements(repo_object['setupCfg'], repo_url, transformed_requirements_files)
|
|
302
314
|
results = {
|
|
303
315
|
'repos': transformed_repo_list,
|
|
304
316
|
'repo_languages': transformed_repo_languages,
|
|
@@ -737,12 +749,18 @@ def sync(
|
|
|
737
749
|
"""
|
|
738
750
|
logger.info("Syncing GitHub repos")
|
|
739
751
|
repos_json = get(github_api_key, github_url, organization)
|
|
740
|
-
direct_collabs =
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
752
|
+
direct_collabs: dict[str, list[UserAffiliationAndRepoPermission]] = {}
|
|
753
|
+
outside_collabs: dict[str, list[UserAffiliationAndRepoPermission]] = {}
|
|
754
|
+
try:
|
|
755
|
+
direct_collabs = _get_repo_collaborators_for_multiple_repos(
|
|
756
|
+
repos_json, "DIRECT", organization, github_url, github_api_key,
|
|
757
|
+
)
|
|
758
|
+
outside_collabs = _get_repo_collaborators_for_multiple_repos(
|
|
759
|
+
repos_json, "OUTSIDE", organization, github_url, github_api_key,
|
|
760
|
+
)
|
|
761
|
+
except TypeError:
|
|
762
|
+
# due to permission errors or transient network error or some other nonsense
|
|
763
|
+
logger.warning('Unable to list repo collaborators due to permission errors; continuing on.', exc_info=True)
|
|
746
764
|
repo_data = transform(repos_json, direct_collabs, outside_collabs)
|
|
747
765
|
load(neo4j_session, common_job_parameters, repo_data)
|
|
748
766
|
run_cleanup_job('github_repos_cleanup.json', neo4j_session, common_job_parameters)
|
|
@@ -90,6 +90,7 @@ def get_users(token: str, api_url: str, organization: str) -> Tuple[List[Dict],
|
|
|
90
90
|
2. data on the owning GitHub organization
|
|
91
91
|
see tests.data.github.users.GITHUB_USER_DATA for shape of both
|
|
92
92
|
"""
|
|
93
|
+
logger.info(f"Retrieving users from GitHub organization {organization}")
|
|
93
94
|
users, org = fetch_all(
|
|
94
95
|
token,
|
|
95
96
|
api_url,
|
|
@@ -112,6 +113,7 @@ def get_enterprise_owners(token: str, api_url: str, organization: str) -> Tuple[
|
|
|
112
113
|
3. data on the owning GitHub organization
|
|
113
114
|
see tests.data.github.users.GITHUB_ENTERPRISE_OWNER_DATA for shape
|
|
114
115
|
"""
|
|
116
|
+
logger.info(f"Retrieving enterprise owners from GitHub organization {organization}")
|
|
115
117
|
owners, org = fetch_all(
|
|
116
118
|
token,
|
|
117
119
|
api_url,
|
|
@@ -163,7 +163,8 @@ def fetch_all(
|
|
|
163
163
|
|
|
164
164
|
if retry >= retries:
|
|
165
165
|
logger.error(
|
|
166
|
-
f"GitHub: Could not retrieve page of resource `{resource_type}` due to HTTP error
|
|
166
|
+
f"GitHub: Could not retrieve page of resource `{resource_type}` due to HTTP error "
|
|
167
|
+
f"after {retry} retries. Raising exception.",
|
|
167
168
|
exc_info=True,
|
|
168
169
|
)
|
|
169
170
|
raise exc
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cartography
|
|
3
|
-
Version: 0.96.
|
|
3
|
+
Version: 0.96.2
|
|
4
4
|
Summary: Explore assets and their relationships across your technical infrastructure.
|
|
5
5
|
Home-page: https://www.github.com/cartography-cncf/cartography
|
|
6
6
|
Maintainer: Cartography Contributors
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_ec2_asset_exposure.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_ec2_iaminstance.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_eks_asset_exposure.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_foreign_accounts.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_lambda_ecr.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/aws_s3acl_analysis.json
RENAMED
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/gcp_gke_asset_exposure.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/gcp_gke_basic_auth.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/analysis/gsuite_human_link.json
RENAMED
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_account_cleanup.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_apigateway_details.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_dns_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_ecr_cleanup.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_ecs_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_es_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_kms_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_tags_cleanup.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_tgw_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_import_vpc_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/aws_kms_details.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/azure_tenant_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_compute_vpc_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_crm_folder_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_crm_project_cleanup.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_dns_cleanup.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/gcp_gke_cluster_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/github_repos_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/oci_tenancy_cleanup.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/okta_groups_cleanup.json
RENAMED
|
File without changes
|
{cartography-0.96.1 → cartography-0.96.2}/cartography/data/jobs/cleanup/okta_import_cleanup.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|