Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yash-garg/keymanager

Android application to manage SSH and GPG keys on GitHub, written in Jetpack Compose.
https://github.com/yash-garg/keymanager

android github gpg jetpack-compose key-manager kotlin material3 mvvm oauth2 retrofit2 ssh

Last synced: about 11 hours ago
JSON representation

Android application to manage SSH and GPG keys on GitHub, written in Jetpack Compose.

Awesome Lists containing this project

README

        

# KeyManager
[![Android CI](https://github.com/Yash-Garg/KeyManager/actions/workflows/pr_ci.yml/badge.svg)](https://github.com/Yash-Garg/KeyManager/actions/workflows/pr_ci.yml)

An application to manage your SSH and GPG keys on [GitHub](https://github.com/settings/keys) written in Kotlin & Jetpack Compose.

## Download


Get it on Google Play


Get it on IzzyOnDroid

## Screenshots

![Feature Graphic](images/feature-graphic.png)

## Building

You will need to add your credentials in the [`Secrets.kt`](https://github.com/Yash-Garg/KeyManager/blob/develop/app/src/main/kotlin/dev/yash/keymanager/data/utils/Secrets.kt) file.
This file will contain your GitHub OAuth app credentials.

## How to generate access token?

Go to [GitHub Developer Settings](https://github.com/settings/tokens) and generate a new **classic** token with the following scopes:

- `admin:public_key` (Full control of user public keys)
- `write:public_key` (Write user public keys)
- `read:public_key` (Read user public keys)

- `admin:gpg_key` (Full control of public user GPG keys)
- `write:gpg_key` (Write public user GPG keys)
- `read:gpg_key` (Read public user GPG keys)

- `admin:ssh_signing_key` (Full control of public user SSH signing keys)
- `write:ssh_signing_key` (Write public user SSH signing keys)
- `read:ssh_signing_key` (Read public user SSH signing keys)

## Third Party Libraries

- [openid/AppAuth-Android](https://github.com/openid/AppAuth-Android)
- [ChuckerTeam/chucker](https://github.com/ChuckerTeam/chucker)
- [dagger/hilt](https://dagger.dev/hilt/)
- [square/leakcanary](https://github.com/square/leakcanary/)
- [square/moshi](https://github.com/square/moshi)
- [MoshiX/moshi-metadata-reflect](https://github.com/ZacSweers/MoshiX/tree/main/moshi-metadata-reflect)
- [michaelbull/kotlin-result](https://github.com/michaelbull/kotlin-result)
- [square/okhttp](https://github.com/square/okhttp)
- [square/retrofit](https://github.com/square/retrofit)

## License

```
Copyright (c) 2021 Yash Garg

Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:

The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
```