Skip to content

Latest commit

 

History

History
120 lines (84 loc) · 4.79 KB

File metadata and controls

120 lines (84 loc) · 4.79 KB

GSYGithubAPP

An open-source, cross-platform GitHub client built with React Native. It aims to provide a richer feature set and a better daily experience for managing and browsing GitHub.

Companion implementations in other stacks:

Developed with React Native, supporting both Android and iOS.

This project is also suitable for hands-on React Native learning, covering usage across various libraries and interactions with native modules.

Features and UX are improved from time to time based on usage and feedback. Issues and suggestions are welcome.

Github Actions GitHub stars GitHub forks GitHub issues GitHub license

RN 0.80.2

Build and Run

  1. Set up the React Native development environment.

  2. Clone the repository and run npm install in the project root.

  3. Create app/config/ignoreConfig.js and fill in your GitHub client_id and client_secret:

    export const CLIENT_ID = "xxxx"; export const CLIENT_SECRET = "xxxx";

    Optional (for Qiniu upload):

    export const ACCESS_KEY = "xxxx"; export const SECRET_KEY = "xxx"; export const QN_HOST = "xxxx"; export const SCOPE = "xxxx";

    Register a GitHub OAuth App

  4. If using secure authorization login, set the Authorization callback URL to gsygithubapp://authed in your GitHub App settings.

  1. Open Xcode to run iOS, or execute react-native run-android for Android.
  2. Important: Log in with your GitHub username, not your email.

Download

Type QR Code
Apk
iOS Not publicly available.
An internal iOS IPA exists but is not an enterprise build; UDID is required.

Articles (Chinese)

Demo

Architecture

  • System Architecture:
  • Navigation Structure:
  • Authorization Flow:
  • Data Flow:

Third-party Libraries

FAQ

  • Xcode builds can be time-consuming the first time due to downloading React Native and Realm-related dependencies. See: Boost and other iOS build deps for RN >= 0.45
  • On Windows, if npm has issues, try deleting the .lock file before re-running npm install.

LICENSE

CarGuo/GSYGithubAPP is licensed under the
Apache License 2.0

A permissive license whose main conditions require preservation of copyright and license notices.
Contributors provide an express grant of patent rights.
Licensed works, modifications, and larger works may be distributed under different terms and without source code.