GoctoBot is a command-line interface (CLI) tool to manage your followers and the people you follow on GitHub. Tired of OctoCat hogging the spotlight? GoctoBot is here to help automate some common social interactions on the platform.
This project is based on the original OctoBot repository.
- List Counts: Shows the number of followers you have and the number of users you are following.
- Follow Back: Follows users who follow you, but you don't follow back yet.
- Unfollow: Unfollows users who don't follow you back.
- Allow and Deny List: Allows you to specify users who should never be unfollowed (allow list) or who should never be followed (deny list) through a JSON configuration file.
To get started with GoctoBot, you need to clone the repository and build the project.
# Clone the repository
gh repo clone 0bvim/goctobot
# Or use git clone
git clone [email protected]:0bvim/goctobot.git
# Enter the project directory
cd goctobot
# Compile the executable
makeBefore using GoctoBot, you need to configure your GitHub Personal Access Token.
-
Create a file named
.envin the project's root directory. GoctoBot automatically loads environment variables from this file. -
Add your token to the
.envfile as follows:PERSONAL_GITHUB_TOKEN="your_token_here"
GoctoBot requires the
PERSONAL_GITHUB_TOKENenvironment variable to authenticate with the GitHub API. You can generate a new Personal Access Token in your GitHub account's developer settings.
The main executable is goctobot. Commands are run as follows:
./goctobot <command>-
list: Displays your current follower and following counts../goctobot list
-
follow: Follows all users who follow you but you don't follow back../goctobot follow
-
unfollow: Unfollows users you follow who do not follow you back../goctobot unfollow
You can prevent GoctoBot from unfollowing important accounts (like Linus Torvalds) or following unwanted accounts. To do this, create a userlist.json file at the following path: internal/app/model/userlist.json.
Add the usernames in the following JSON format:
{
"user1": "Deny",
"user2": "Allow",
"user3": "Allow"
}- Allow: Users on this list will not be unfollowed by the
unfollowcommand, even if they don't follow you back. - Deny: Users on this list will not be followed by the
followcommand.
This project uses Dependabot to keep the Go Modules dependencies up to date. Checks are performed weekly.