Skip to content

neusacodes/github-pulumi-cli

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐙 GitHub CLI with Pulumi ESC — A Secure and Interactive CLI Tool

GitHub Pulumi CLI is a simple, interactive command-line tool for managing GitHub resources — built using the Pulumi ESC (Environment-Specific Configuration) system to keep your secrets secure and centralized.

This CLI allows you to create, update, and inspect GitHub repositories using the GitHub API, while securely retrieving credentials and configurations from Pulumi ESC. It's a great way to explore the potential of Pulumi's secrets management platform in a real, usable context.

📖 Table of Contents

📦 Project Overview

  • 🔐 Uses Pulumi ESC to manage GitHub tokens securely
  • 🧠 Written in TypeScript with an interactive Inquirer-based CLI
  • 🔧 Interfaces directly with the GitHub REST API
  • 🧪 A great starting point for building DevOps automation with Pulumi

🔐 Why Pulumi ESC?

This project uses Pulumi ESC to securely manage secrets like GitHub tokens. ESC lets you:

  • ✅ Store secrets securely and centrally
  • ✅ Share secrets across teams and projects
  • ✅ Rotate and update secrets without code changes
  • ✅ Avoid hardcoding or exposing tokens locally

Pulumi ESC is a great solution for modern cloud apps that need reliable and flexible secrets management — and this project shows one way it can be used in real dev workflows.

✅ Features

  • Interactive CLI for GitHub repository management
  • View GitHub repository details and insights
  • Manage GitHub teams and their members (coming soon!)
  • Create and manage GitHub issues (coming soon!)
  • Manage pull requests (coming soon!)
  • Manage workflows and GitHub Actions (coming soon!)

🚀 Getting Started

  1. Install Pulumi ESC
curl -fsSL https://get.esc.dev | bash
  1. Initialize your environment
esc env init github-pulumi/dev
  1. Set your GitHub token (securely stored in ESC)
esc env set github_token --env github-pulumi/dev <token> --secret
  1. Configure your local environment
# Copy the example env file to .env
cp .env.example .env

# Set the environment variables in .env file
ORG=<your_org>

All setup! You can now use the Github Pulumi CLI to manage your GitHub resources.

💻 Usage

Running Interactive Menu

# Start the CLI
npm run dev

# You’ll be presented with an interactive menu:
📚 GitHub CLI Menu - Choose an action
❯ 📦 Repositories Menu
  ❌ Exit

From there, you can explore available features such as:

  • Listing repositories
  • Viewing insights and details
  • Creating, updating, or deleting repositories

📂 Repository Listing Example

📦 REPOSITORY LIST:

🔹 Repo #1
   📌 Name: .github
   📝 Description: BoilerLabs is your go-to source for reusable, high-quality boilerplates and code templates.
   👤 Owner: boilerlabs
   ⭐ Stars: 0   🍴 Forks: 0
   🔒 Private: No
   🔗 URL: https://github.com/boilerlabs/.github

🔍 Repository Details Example

📦 REPOSITORY DETAILS:

   📌 Name: backend-challenges
   📝 Description: A collection of coding challenges for back-end developers.
   👤 Owner: boilerlabs
   ⭐ Stars: 32   🍴 Forks: 5
   🔒 Private: No
   🔗 URL: https://github.com/boilerlabs/backend-challenges

🤝 Contributing

Contributions are welcome! If you have any suggestions or improvements, please open an issue or a pull request.

📄 License

This project is licensed under the MIT License. See the LICENSE file for more details.

🙌 Acknowledgments

This project was built as a submission to the Pulumi Deploy and Document Challenge, under the "Shhh, It's a Secret!" category — highlighting secure configuration and secret management using Pulumi ESC.

Thanks to the Pulumi team and the DEV community for putting together such a fun and educational challenge!

About

Github Pulumi CLI is a command line interface for managing GitHub resources using Pulumi.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%