39 releases (7 breaking)
new 0.8.8 | Oct 14, 2024 |
---|---|
0.8.6 | Sep 30, 2024 |
#166 in Command line utilities
975 downloads per month
28KB
149 lines
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.
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.
Dependencies
~21–35MB
~650K SLoC