{"id":22002953,"url":"https://github.com/rssnyder/cuddly-dollop","last_synced_at":"2026-04-29T11:03:01.089Z","repository":{"id":187273510,"uuid":"673891655","full_name":"rssnyder/cuddly-dollop","owner":"rssnyder","description":"E","archived":false,"fork":false,"pushed_at":"2024-09-10T13:56:34.000Z","size":72,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-28T12:39:46.122Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rssnyder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":"governance_export.py","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-02T16:54:39.000Z","updated_at":"2024-09-10T14:00:17.000Z","dependencies_parsed_at":"2023-12-12T16:28:26.728Z","dependency_job_id":"4c17ed3a-5bf3-4357-ac87-c299a8a2a458","html_url":"https://github.com/rssnyder/cuddly-dollop","commit_stats":null,"previous_names":["rssnyder/cuddly-dollop"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssnyder%2Fcuddly-dollop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssnyder%2Fcuddly-dollop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssnyder%2Fcuddly-dollop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssnyder%2Fcuddly-dollop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rssnyder","download_url":"https://codeload.github.com/rssnyder/cuddly-dollop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245061390,"owners_count":20554563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T23:42:07.992Z","updated_at":"2026-04-29T11:02:56.040Z","avatar_url":"https://github.com/rssnyder.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ccm-python\ncreate cloud connectors and cost categories using python\n\n# csv files\n\nthese scripts expect csv files. if you are using the excel file format you will need to save it as a csv (comma delimited)\n\n# authentication\n\nthe following environment variables should be set:\n\nHARNESS_PLATFORM_API_KEY: a harness api key\n\nHARNESS_ACCOUNT_ID: your harness account identifier\n\n# cost_categories.py\n\ncreate cost categories in harness based on csvs for each cloud\n\nusage: `python3 cost_catagories.py \"Unit Group\" BU [csv #1] [csv #2] [csv #3]`\n\n# cost_categories_xlsx.py\n\ncreate cost categories in harness based on xlsx for each cloud\n\nusage: `python3 cost_catagories.py \"Unit Group\" Owners BU [xlsx #1] [xlsx #2] [xlsx #3]`\n\n# get_cost_categories.py\n\nget a CSV report of a cost category\n\nusage: `python3 get_cost_categories.py [cc name]`\n\n# core_tags_cost_category.py\n\ncreate the core tags cost category\n\nusage: `usage: core_tags_cost_catagory.py [core tags cc name] [xlsx]`\n\n# cloud_connectors.py\n\ncreate cloud connectors based on csv file\n\n[cross account role name] == role name in aws that trusts harness\n[tenant id] == azure tenant id\n[service account email] == gcp service account email given in harness ui when creating a gcp connector\n\nusage: `cloud_connectors.py [cross account role name] [tenant id] [service account email] [csv #1] [csv #2] [csv #3]`\n\n# cluster_connectors.py\n\ncreate k8s and k8s ccm connectors for delegates seen at the account level\n\nusage: `cluster_connectors.py`\n\nBy adding anything to the end of the command, we instead just get a list of delegates in your account\n\nusage: `cluster_connectors.py list`\n\n# get_cloud_connectors.py\n\nget the status of all AWS, Azure, and GCP cloud connectors, output into a csv\n\nusage: `get_cloud_connectors.py`\n\n# governance_export.py\n\nget all the governance evaluations for a month, output into a csv\n\nusage: `governance_export.py`\n\nto run for the previous month, specify how many months to go back, example for 2 months ago (in August now, want to get data for June):\n\nusage: `governance_export.py 2`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frssnyder%2Fcuddly-dollop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frssnyder%2Fcuddly-dollop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frssnyder%2Fcuddly-dollop/lists"}