#github #app #access-token #private-key #key-id

deprecated github-app-auth

Library for authenticating as a GitHub app

10 stable releases

3.0.1 Mar 17, 2024
3.0.0 Oct 25, 2021
2.3.0 Sep 5, 2021
2.2.0 Apr 30, 2020
1.0.1 Aug 27, 2019

#7 in #key-id

Download history 4/week @ 2024-02-22 3/week @ 2024-02-29 4/week @ 2024-03-07 130/week @ 2024-03-14 16/week @ 2024-03-21 84/week @ 2024-03-28 92/week @ 2024-04-04

354 downloads per month


156 lines


This tool is no longer under active development. If you are interested in taking over or repurposing the name on crates.io, feel free to contact me: nbishop@nbishop.net

crates.io Documentation

This is a small library for authenticating with the GitHub API as a GitHub app.

Documentation on the overall flow: https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps


This crate provides a library for authenticating with the GitHub API as a GitHub app. See Authenticating with GitHub Apps for details about the authentication flow.


use github_app_auth::{GithubAuthParams, InstallationAccessToken};

// The token is mutable because the installation access token must be
// periodically refreshed. See the `GithubAuthParams` documentation
// for details on how to get the private key and the two IDs.
let mut token = InstallationAccessToken::new(GithubAuthParams {
    user_agent: "my-cool-user-agent".into(),
    private_key: b"my private key".to_vec(),
    app_id: 1234,
    installation_id: 5678,
}).await.expect("failed to get installation access token");

// Getting the authentication header will automatically refresh
// the token if necessary, but of course this operation can fail.
let header = token.header().await.expect("failed to get authentication header");



~496K SLoC