Skip to content

Resonaa/gfas

Repository files navigation

gfas

gfas (GitHub Following Auto Synchronization) manipulates your GitHub following list to match your followers, enabling you to follow back and unfollow back automatically. It runs on CLI and can be scheduled with GitHub Actions.

GitHub Actions Coverage Crates.io Downloads License

Usage

GitHub Actions

  • Copy-paste the Sync workflow to any of your repositories. You can just fork this repository for convenience.
  • Create a personal access token with the user:follow permission.
  • Create an secret named TOKEN in the repository containing the token value.
  • Customize your workflow, e.g. modify the scheduled time (defaults to every 6 hours).
  • Maybe you want to trigger it manually to see the effect.

CLI

Archives of precompiled binaries for gfas are available for Windows, macOS and Linux. Linux and Windows binaries are static executables. Users of platforms not explicitly mentioned below are advised to download one of these archives.

If you're a Rust programmer, gfas can be installed with cargo. Note that the minimum supported version of Rust for gfas is 1.77.0, although gfas may work with older versions.

$ cargo install gfas

Alternatively, one can use cargo binstall to install a gfas binary directly from GitHub:

$ cargo binstall gfas

After installation, run gfas --help for all commands and options.

API

The gfas-api crate exports some GitHub API bindings which can be used to build your application.

$ cargo add gfas-api
use gfas_api::GitHub;

let github = GitHub::new(String::from("<TOKEN>"))?;

github.explore("<USER-TO-EXPLORE>", true).await?;

Building

gfas is written in Rust, so you'll need to grab a Rust installation in order to compile it. gfas compiles with Rust 1.77.0 (stable) or newer. In general, gfas tracks the latest stable release of the Rust compiler.

To build gfas:

$ git clone https://github.com/Resonaa/gfas
$ cd gfas
$ cargo build --release
$ ./target/release/gfas --help

Running tests

gfas is relatively well-tested, including both unit tests and integration tests. To run the full test suite, use:

$ cargo test

from the repository root.

Contributing

See CONTRIBUTING.md.

License

This project is licensed under the Unlicense.