# Slack Free-Tier Garbage Collector [![Build Status](https://travis-ci.com/reynisdrangar/slack-gc.svg?branch=master)](https://travis-ci.com/reynisdrangar/slack-gc) [![Build status](https://ci.appveyor.com/api/projects/status/mk232jjryfh9j7il/branch/master?svg=true)](https://ci.appveyor.com/project/reynisdrangar/slack-gc/branch/master) Slack's free tier is wonderful if you have friends that have moved all over the world who still want to keep in touch. Unfortunately, though, their shared file storage is capped at 5GB and retention policies are only available to paying customers (totally understandable). Since I can't ask everyone I know to pay eight bucks a month to hang out, and I can't afford to pay for all of that myself, I wrote this little garbage collector to clean up files older than a configurable number of days using each user's "Legacy Token" for the Slack API. ## Building Everything ought to "Just go" with cargo, as you'd expect: ``` cargo test --all cargo build --release --all ``` The only curveball here is that I generally expect you'll have clippy around, and rustfmt too. Commit messages are also expected to be in conventional style, which is enforced in CI on pull requests. If you want to locally run clippy, you'll need it installed: * rustup install nightly * cargo +nightly install clippy ## Contributing Please format your commits with a conventional tag (feat/fix/chore), and expect me to squash them when I merge your PR. If it helps, feel free to rebase and rewrite history in your local branch until it makes sense. The linter, and clippy, are configured to be pretty overproctective of this repo, in large part since I'm learning rust still too, and it helps me. That means Travis is also going to be pretty militant about failing out valid, but not idiomatic code. Please bear with me and play along. Beyond that, know that this code is [licensed MIT](LICENSE.md), and your contributions are a part of that whole. That means other people can make money from it, change it, or even repackage it under a new name if they'd like. I'd have released this to the public domain if that weren't such an anglocentric approach, so consider this choice of license "the freest thing I could come up with." Know also that I've adopted the contributor covenant, a common code of conduct which requires that everyone in the orbit of this code behave with basic human decency toward one another. It also requires that as this project's maintainer, I promise to uphold it. The [full text](CODE_OF_CONDUCT.md) is in the top level of the repository.