choiminyeong 50d1b41f47 TASK-029: OAuth refresh-token support, stop re-prompting for consent
The app captured Gitea's OAuth refresh token on login but never used it --
an expired access token forced a full new browser-based login (and consent
screen) every time. Now silently exchanges the stored refresh token for a
new access token in the background, proactively before it goes stale,
shared via one AuthSession singleton across all five features' API clients
instead of each independently reading a possibly-stale token.

Verified Gitea's refresh_token grant shape against its own source
(routers/web/auth/oauth2_provider.go) before implementing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-27 22:52:03 +09:00
2026-08-25 21:42:50 +09:00

UBGitea

Android client for the Ubisam Paju Gitea instance.

The repository currently contains the engineering harness that governs collaborative development by Codex and Claude. Product code will be bootstrapped through the tasks under tasks/.

Start here

  1. Read AGENTS.md.
  2. Read docs/product.md and docs/architecture.md.
  3. Select one task from tasks/.
  4. Assign one writer and one independent reviewer.
  5. Record build and test evidence before marking the task complete.

OAuth uses Authorization Code with PKCE and does not use a client secret.

Local checks

Open the repository root in Android Studio, or use JDK 17 with Android SDK 36 installed and run:

./gradlew assembleDebug
./gradlew testDebugUnitTest
./gradlew lintDebug

The application uses ID com.ubisam.ubgitea and supports Android 9 (API 28) and later. See ADR-001.

Description
No description provided
Readme 88 MiB
Languages
Kotlin 99.5%
PowerShell 0.5%