#oauth #refresh-token #github

bin+lib github-device-flow

Binary and library for performing the GitHub Device Flow

6 releases

0.2.0 Jan 26, 2024
0.1.4 Jun 16, 2023
0.1.3 Sep 2, 2022
0.1.2 Aug 19, 2022

#8 in #o-auth

Download history 526/week @ 2024-07-24 663/week @ 2024-07-31 595/week @ 2024-08-07 612/week @ 2024-08-14 697/week @ 2024-08-21 427/week @ 2024-08-28 283/week @ 2024-09-04 318/week @ 2024-09-11 275/week @ 2024-09-18 233/week @ 2024-09-25 271/week @ 2024-10-02 234/week @ 2024-10-09 422/week @ 2024-10-16 309/week @ 2024-10-23 357/week @ 2024-10-30 304/week @ 2024-11-06

1,408 downloads per month

MIT license

17KB
306 lines

gh-device-flow

Crate that implements the GitHub Device Flow for authenticating with GitHub Apps.

It also implements the refresh mechanism for GitHub Apps that use GitHub's token expiration feature.

Usage

To use the CLI, download the binary for your architecture/OS from the latest release.

Once extracted, execute the command providing the Client ID for your App:

github-device-flow --client-id Iv1.8675309ABCDEFGH

This will prompt you to open a browser window and provide the generated device code. Once completed, your access token will be printed to STDOUT as a JSON object. If your App requests refresh tokens one will also be printed.

To refresh your OAuth Access using a Refresh Token, pass it as a --refresh flag:

github-device-flow --client-id Iv1.8675309ABCDEFGH --refresh thisisnotarefreshtoken

To view the full help, pass the --help flag:

$ github-device-flow --help
github-device-flow 0.1.2
Binary and library for performing the GitHub Device Flow

USAGE:
    github-device-flow [OPTIONS] --client-id <CLIENT_ID>

OPTIONS:
    -c, --client-id <CLIENT_ID>    Client ID
    -h, --host <HOST>              The host to authenticate with
        --help                     Print help information
    -r, --refresh <REFRESH>        A Refresh Token to exchange
    -V, --version                  Print version information

Dependencies

~7–19MB
~257K SLoC