# gfas **G**itHub **F**ollowing **A**uto **S**ynchronization [![GitHub Actions](https://img.shields.io/github/actions/workflow/status/jwcub/gfas/build.yml?style=flat-square)](https://github.com/jwcub/gfas/actions) [![Crates.io](https://img.shields.io/crates/v/gfas?style=flat-square)](https://crates.io/crates/gfas) [![Downloads](https://img.shields.io/crates/d/gfas?style=flat-square)](https://crates.io/crates/gfas) [![License](https://img.shields.io/github/license/jwcub/gfas?style=flat-square)](https://github.com/jwcub/gfas/blob/main/LICENSE) [![GitHub repo size](https://img.shields.io/github/repo-size/jwcub/gfas?style=flat-square)](https://github.com/jwcub/gfas) [![GitHub Repo stars](https://img.shields.io/github/stars/jwcub/gfas?style=flat-square&color=yellow)](https://github.com/jwcub/gfas/stargazers) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/jwcub/gfas?style=flat-square)](https://github.com/jwcub/gfas/commits/main/) [![GitHub contributors](https://img.shields.io/github/contributors/jwcub/gfas?style=flat-square)](https://github.com/jwcub/gfas/graphs/contributors)
## Overview `gfas` synchronizes your GitHub followings to your followers. It runs on CLI and can be scheduled automatically with GitHub Actions. ## Usage ### GitHub Actions - Fork this repository. - Create a personal access token with the `user:follow` permission. - Set an action secret named `TOKEN` in the repository containing the token value. - You are ready to follow back automatically! - (Optional) Modify the scheduled time in `.github/workflow/sync.yml`. By default, it runs at 0 minutes past the hour every 6 hours. - (Optional) Maybe you want to trigger the `Sync` workflow manually to see the effect. ### CLI ```sh $ cargo install gfas $ gfas --help Sync GitHub followings to followers Usage: gfas.exe [OPTIONS] --user --token Options: -u, --user Current user -t, --token Access token -v, --verbose... Increase logging verbosity -q, --quiet... Decrease logging verbosity -h, --help Print help -V, --version Print version ``` ### API This crate also exports some GitHub API bindings which can be used to build your application. ```sh $ cargo add gfas ``` ```rust use gfas::GitHub; let github = GitHub::with_token("")?; github.follow("").await?; ``` Refer to the [Documentation](https://docs.rs/gfas/latest/gfas/) for more information. ## Development ```sh $ git clone https://github.com/jwcub/gfas.git $ cd gfas $ cargo build --release $ ./target/release/gfas --help ``` ## Contributing Before pushing your commits, be sure to run through all the checks: ```sh $ cargo clippy $ cargo fmt $ cargo build $ cargo doc --no-deps --lib ``` ## License This project is licensed under the [Unlicense](https://github.com/jwcub/gfas/blob/main/LICENSE).