Doggone!
This is a submission for the Pulumi Deploy and Document Challenge: Get Creative with Pulumi and GitHub What I Built I built a command line tool to help import manually created infrastructure. The tool not only automates the import, but also the important, (yet annoying) administrative tasks associated with the import. Project Repo Check out the repo here! My Journey The process of creating doggone was fairly straightforward after reaching from my own experiences for a "real-world" problem to solve with Pulumi and GitHub. This has been a pain point for many an engineer over the years and I've personally never seen a tool dedicated to it. Using Pulumi with GitHub This was my first experience with Pulumi and its Automation API. I've been aware of its premise; an IaC management tool with real programming language support. This is one of those scenarios where it just leaves other IaC platforms in the dust. Terraform is my first love

This is a submission for the Pulumi Deploy and Document Challenge: Get Creative with Pulumi and GitHub
What I Built
I built a command line tool to help import manually created infrastructure. The tool not only automates the import, but also the important, (yet annoying) administrative tasks associated with the import.
Project Repo
Check out the repo here!
My Journey
The process of creating doggone was fairly straightforward after reaching from my own experiences for a "real-world" problem to solve with Pulumi and GitHub. This has been a pain point for many an engineer over the years and I've personally never seen a tool dedicated to it.
Using Pulumi with GitHub
This was my first experience with Pulumi and its Automation API. I've been aware of its premise; an IaC management tool with real programming language support. This is one of those scenarios where it just leaves other IaC platforms in the dust. Terraform is my first love <3, but HCL (Hashicorp Language) could never!
After going through a brief indoctrination period, I was able to pretty quickly get to writing some code thanks to the very familiar Python SDK provide by Pulumi. To put it simply, the automation and pulumi_oci libraries handle all of the import operations for Oracle Cloud Infrastructure resources.
I used Python's click library (another cherry popped) to generate a bare bones command line interface. I then started working on the GitHub integration. This was where I really hit a wall as I realized although generally very useful for creating and modifying long-lived resources, the Pulumi GitHub provider was a poor choice for lower-level git functions like listing repositories, getting user information, etc. The time elapsed would make the command line tool almost unusable, so I made the tradeoff to query the GitHub API directly (using Python's PyGitHub and GitPython libraries) when it made sense.
Conclusion
Overall, I had a blast working on this. By no means is this a fully fleshed out tool ready for anybody's production environment. Proceed with caution and feel free to fork and iterate for your own purposes. In addition, I'm so excited to have finally given Pulumi a chance, because there are so many use cases where I can see it running laps around Terraform. Good luck to all who are participating. I can't wait to see what you're creating!
Would love feedback, if any!