{"id":20641940,"url":"https://github.com/clechasseur/auxiliaire","last_synced_at":"2025-04-16T01:37:13.465Z","repository":{"id":233526848,"uuid":"787357385","full_name":"clechasseur/auxiliaire","owner":"clechasseur","description":"Your friendly Exercism assistant","archived":false,"fork":false,"pushed_at":"2025-04-07T03:26:38.000Z","size":360,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-10T04:48:24.244Z","etag":null,"topics":["cli","exercism","rust","rust-lang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clechasseur.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-16T11:23:16.000Z","updated_at":"2025-04-07T03:25:34.000Z","dependencies_parsed_at":"2025-01-10T15:35:10.573Z","dependency_job_id":"d1cd0208-0430-49e9-9b88-620c19ff7288","html_url":"https://github.com/clechasseur/auxiliaire","commit_stats":null,"previous_names":["clechasseur/auxiliaire"],"tags_count":7,"template":false,"template_full_name":"clechasseur/exsb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clechasseur%2Fauxiliaire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clechasseur%2Fauxiliaire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clechasseur%2Fauxiliaire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clechasseur%2Fauxiliaire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clechasseur","download_url":"https://codeload.github.com/clechasseur/auxiliaire/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249182784,"owners_count":21226123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","exercism","rust","rust-lang"],"created_at":"2024-11-16T16:07:19.824Z","updated_at":"2025-04-16T01:37:13.459Z","avatar_url":"https://github.com/clechasseur.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# auxiliaire\n\n[![CI](https://github.com/clechasseur/auxiliaire/actions/workflows/ci.yml/badge.svg?branch=main\u0026event=push)](https://github.com/clechasseur/auxiliaire/actions/workflows/ci.yml) [![codecov](https://codecov.io/gh/clechasseur/auxiliaire/graph/badge.svg?token=roYWrCvQVx)](https://codecov.io/gh/clechasseur/auxiliaire) [![Security audit](https://github.com/clechasseur/auxiliaire/actions/workflows/audit-check.yml/badge.svg?branch=main)](https://github.com/clechasseur/auxiliaire/actions/workflows/audit-check.yml) [![crates.io](https://img.shields.io/crates/v/auxiliaire.svg)](https://crates.io/crates/auxiliaire) [![downloads](https://img.shields.io/crates/d/auxiliaire.svg)](https://crates.io/crates/auxiliaire) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n`auxiliaire` is a command-line tool designed to provide utilities to users of the [Exercism.org](https://exercism.org) website, like solutions backup, etc.\n\n## Exerci-what?\n\n[Exercism](https://exercism.org) is a free, not-for-profit platform to learn new programming languages.\nIt supports a web editor for solving exercises, mentoring with real humans and a lot more.\nFor more information, see [its about page](https://exercism.org/about).\n\n## Installing\n\nInstalling and using `auxiliaire` can be done simply by downloading the executable appropriate for your platform from the [project's Releases page](https://github.com/clechasseur/auxiliaire/releases) and saving it to a location in your PATH.\n\nIf you have Rust **1.83.0** or greater installed, you can also compile and install `auxiliaire` from source via `cargo`:\n\n```sh\ncargo install auxiliaire --locked\n```\n\nIf you have [`cargo-binstall`](https://github.com/cargo-bins/cargo-binstall), you can use it to download and install `auxiliaire` from binaries:\n\n```sh\ncargo binstall auxiliaire\n```\n\n## Usage\n\nTo see all commands supported by `auxiliaire`, simply run it with `-h` (for short help) or `--help` (for long help).\n\n### `backup` command\n\nThis command can be used to download all solutions you submitted to the Exercism platform for backup.\n\n```sh\n% auxiliaire backup -h\nDownload Exercism.org solutions for backup\n\nUsage: auxiliaire backup [OPTIONS] \u003cPATH\u003e\n\nArguments:\n  \u003cPATH\u003e  Path where to store the downloaded solutions\n\nOptions:\n      --token \u003cTOKEN\u003e\n          Exercism.org API token; if unspecified, CLI token will be used instead\n  -v, --verbose...\n          Increase logging verbosity\n  -q, --quiet...\n          Decrease logging verbosity\n  -t, --track \u003cTRACK\u003e\n          Only download solutions in the given track(s) (can be used multiple times)\n  -e, --exercise \u003cEXERCISE\u003e\n          Only download solutions for the given exercise(s) (can be used multiple times)\n  -s, --status \u003cSTATUS\u003e\n          Only download solutions with the given status (or greater) [default: any] [possible values: any, submitted, completed, published]\n  -o, --overwrite \u003cOVERWRITE\u003e\n          How to handle solutions that already exist on disk [default: if-newer] [possible values: always, if-newer, never]\n  -i, --iterations \u003cITERATIONS_SYNC_POLICY\u003e\n          Whether to also back up iterations and how [default: do-not-sync] [possible values: do-not-sync, new, full-sync, clean-up]\n      --dry-run\n          Determine what solutions to back up without downloading them\n  -m, --max-downloads \u003cMAX_DOWNLOADS\u003e\n          Maximum number of concurrent downloads [default: 4]\n  -h, --help\n          Print help (see more with '--help')\n```\n\nBy default, using this command will download all submitted solutions, for all exercises, for all tracks.\nIt's possible to narrow the solutions to back up via the command-line arguments (see above).\n\nWhen `auxiliaire` downloads a solution, it stores a backup state file in the solution folder in the `.auxiliaire` directory.\nThis file is used to determine whether a solution has been updated with (a) new iteration(s).\nWhen this occurs, by default, `auxiliaire` will download the new version; this can be controlled via the `--overwrite` argument.\n\nIt is also possible to download _every_ iteration of each solution via the `--iterations` argument.\nIterations will be stored in a subdirectory called `_iterations`.\nAll iterations submitted will be downloaded, unless `--status published` is used, in which case only published iterations will be kept.\n\nIn order to communicate with the Exercism platform, `auxiliaire` needs an API token.\nBy default, if the [Exercism CLI tool](https://exercism.org/docs/using/solving-exercises/working-locally) is installed, `auxiliaire` will reuse the API token configured for it.\nIf the Exercism CLI is not installed, a valid API token will need to be passed to `auxiliaire` via the `--token` argument.\nThis token can be found in the [Exercism Settings](https://exercism.org/settings/api_cli).\n\n## Questions? Comments?\n\n`auxiliaire` is still in development, so issues may arise.\nFor instructions on filing bug reports or feature requests, see [CONTRIBUTING](./CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclechasseur%2Fauxiliaire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclechasseur%2Fauxiliaire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclechasseur%2Fauxiliaire/lists"}