Tasty CLI on the outside, simple integration with GitHub's API on the inside.

I wanted to build a CLI tool for interacting with the GitHub API. I created Reposier, a tool that could transfer starred repositories between accounts, and create a clean looking pdf list of all the starred repositories on an account.

[object Object]

As I wanted this tool to be easily available, I put it out on the NPM registry.

[object Object]

Users can easily follow a set of prompts when they launch the program for the first time, and their information will be saved to their machine so they don't have to authenticate each time the run the program.

[object Object]

The user can generate a markdown list or a pdf list of the starred repositories on their GitHub account.

[object Object]

I also wanted to give the ability to transfer starred repositories between accounts. I had 2 different GitHub accounts, and I wanted all of my starred repositories from one account to be on the other. I was surprised there wasn't already an option to do this with GitHub, so I decided to bake it into Reposier.

Learning Experiences

Working with a CLI is both rewarding and challenging. You don't have all the debugging tools and visibility of data as you do in the Web Browser.

What worked well?

Each feature that I set out to create worked as expected, and looked pretty at the end.

The landing page/documentation page created with Docsify, looked really good and I was very satisfied with them.

What didn't work well?

Authentication sometimes didn't work as expected, and the CLI itself was fairly slow at times.


What would I do differently?

I would refactor the tool in order to be more performant - perhaps making use of more CLI libraries.

A Git Hit

This was a very fun tool to make. It was my first shot at a CLI tool, and it served as a stepping stone for other smaller CLI tools that I made in the future on smaller projects.