Doggone is a cli tool to corral one-off infrastructure resources back into state with the rest of the herd. It leverages Pulumi's automation API and GitHub provider.
Sure, "Operation: Click-Ops" achieves the same goal. However, resource imports can be tedious, error-prone, and often lack proper (if any) documentation. Doggone solves these challenges with:
- Automated Code Generation: Add well-formatted code to your declarative Pulumi files
- GitHub Integration: Create feature branches and pull requests for each import
- Audit Trail: Document who imported what and when with detailed PRs
- Python 3.8 or higher
- Pulumi CLI
- Git
- GitHub personal access token (for PR creation)
git clone https://github.com/bassg0navy/doggone.git
cd doggone
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -e .
export GITHUB_TOKEN=your_github_token
Configure doggone
doggone context --project <pulumi project name> --stack <pulumi stack name: defaults to 'dev'> --git-repo <username/repo-name>
Import with GitHub integration
doggone import --resource-type <bucket> --resource-name <resource name> --resource-id <OCID, ARN, etc.> --file <__main__.py>
Successful Pulumi stack update

WARNING: This repository does not follow all best practices and should not be used in a production environment. It is more/less a demonstration of a strong use-case for Pulumi's automation API and fairly stout GitHub integration. It does not account for a plethora of important concerns:
- Multi-cloud: OCI (Oracle Cloud Infrastructure) is the only supported provider
- Variety of languages: supports infra code written in Python only
- Resource types: supports import of object storage buckets only

