Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Correia-jpv/github-follow-bot

🤖 Automated follow/unfollow bot for GitHub. Follow from multiple sources. Choose which users to unfollow. Custom options to control bot speed and maximum actions.
https://github.com/Correia-jpv/github-follow-bot

auto-follow auto-unfollow automatic automation bot bots follow follow-bot follow-unfollow follower-robot followers following github github-api github-automation github-bot python unfollow unfollow-bot unfollow-users

Last synced: 3 months ago
JSON representation

🤖 Automated follow/unfollow bot for GitHub. Follow from multiple sources. Choose which users to unfollow. Custom options to control bot speed and maximum actions.

Awesome Lists containing this project

README

        

GitHub Follow Bot

 

Table of Contents

- [Disclaimer](#disclaimer)
- [Getting Started](#getting-started)
- [Install Requirements](#install-requirements)
- [Authenticate](#authenticate)
- [Get a GitHub Personal Access Token](#get-a-github-personal-access-token)
- [Add your GitHub username and PAT to `.env` file](#add-your-github-username-and-pat-to-env-file)
- [How to Use](#how-to-use)
- [Follow](#follow)
- [Target user's followers](#target-users-followers)
- [Followers of the most popular users from a country](#followers-of-the-most-popular-users-from-a-country)
- [From a file](#from-a-file)
- [Unfollow](#unfollow)
- [All](#all)
- [Followers](#followers)
- [Non-followers](#non-followers)
- [From a file](#from-a-file-1)
- [Options](#options)
- [Maximum follows/unfollows](#maximum-followsunfollows)
- [Speed](#speed)
- [Future Implementation](#future-implementation)
- [Contributing](#contributing)
- [Resources](#resources)

## Disclaimer

**This is a PoC and was developed for educational purposes only. You may get your account banned. Use at your own risk.**

> ### Spam and Inauthentic Activity on GitHub
> Automated excessive bulk activity and coordinated inauthentic activity, such as spamming, are prohibited on GitHub. Prohibited activities include:
> - (...)
> - inauthentic interactions, such as fake accounts and automated inauthentic activity
> - rank abuse, such as automated starring or following

[From GitHub Acceptable Use Policies](https://docs.github.com/en/github/site-policy/github-acceptable-use-policies#4-spam-and-inauthentic-activity-on-github)

## Getting Started

### Install Requirements

```
pip install -r requirements.txt
```

### Authenticate

#### Get a GitHub Personal Access Token

Make sure to enable the `user` scope and all subscopes inside of that permission.

[How to get your GitHub PAT](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)

#### Add your GitHub username and PAT to `.env` file

Create a `.env` file on the project's root directory or edit `.env.sample` (rename to `.env`) and add your username and PAT.

```
GITHUB_USER=YOUR_GITHUB_USERNAME
TOKEN=YOUR_GITHUB_PERSONAL_ACCESS_TOKEN
```

## How to Use

### Follow

#### Target user's followers
```
python bot_follow.py -t
```
#### Followers of the most popular users from a country
([list of valid countries](https://github.com/gayanvoice/top-github-users#readme))
```
python bot_follow.py -p
```
#### From a file
Follow users from a pre-generated file (JSON)
```
python bot_follow.py -f
```

### Unfollow

note: Unfollow order is FIFO, as in the most recently followed user will be the last to be unfollowed.

#### All
Unfollow all your followings
```
python bot_unfollow.py -a
```
#### Followers
Only unfollow users who already follow you
```
python bot_unfollow.py -fo
```
#### Non-followers
Only unfollow users who don't follow you back
```
python bot_unfollow.py -nf
```
#### From a file
Unfollow users from a pre-generated file (JSON)
```
python bot_unfollow.py -f
```

### Options

#### Maximum follows/unfollows
Set the maximum number of follow/unfollow actions
```
-m 300
```

#### Speed

A random delay (in seconds) is performed after follow/unfollow actions or when the account is rate limited.
You can change these delays to your liking with the following arguments:

- Minimum delay between actions
```
-smin 20
```
- Maximum delay between actions
```
-smax 120
```
- Minimum delay when rate limited
```
-slmin 600
```
- Maximum delay when rate limited
```
-slmin 1500
```

## Future Implementation

- Schedule - Bot only performs actions between set time and sleeps after off-schedule
- Max follow per source - Follow max `n` per popular user
- Add follow source - Follow users per topic
- Add follow source - Grab followers from users listed in a file
- Email followed users - Send an email to followed users with templates (colaboration, follow back or custom)
- Star `n` repositories of followed users

## Contributing

Contributions are welcome! Read the [contribution guidelines](https://github.com/Correia-jpv/.github/blob/main/CONTRIBUTING.md#contributing) first.

Wish there was another feature? Feel free to open an [feature request issue](/../../issues/new?assignees=Correia-jpv&labels=enhancement&template=feature-request.md&title=%5BREQUEST%5D) with your suggestion!

If you find a bug, kindly open an [bug report issue](/../../issues/new?assignees=Correia-jpv&labels=bug&template=bug_report.md&title=%5BBUG%5D) as described in the contribution guidelines.

## Resources

- [GitHub API](https://docs.github.com/en/rest)
- [Top GitHub Users By Country](https://github.com/gayanvoice/top-github-users)
- [GitHub-Follow-Bot](https://github.com/TheDarkAssassins/Github-Follow-Bot)