Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
d098409
Update Kotlin, AGP, and dependencies
yet300 May 21, 2025
2421324
Upgrade Gradle Wrapper to 8.7
yet300 May 22, 2025
7266e78
Remove unused AndroidManifest and update module version
yet300 May 22, 2025
10bd1fd
Remove Android instrumentation tests
yet300 May 22, 2025
c575d42
feat: additional parameters authorization request
trykovyura May 24, 2025
530aac4
Adjusted build gradle for username and password
yet300 May 24, 2025
3a9714c
Update version to 0.0.4
yet300 May 24, 2025
e31470d
feat: ios dependency for origin lib
trykovyura Jun 8, 2025
9122bcf
update deps and fix OIDEndSessionRequest
yet300 Jun 8, 2025
a12ddad
feat: logger
trykovyura Jun 8, 2025
38b24bd
version bump
trykovyura Jun 9, 2025
c8f837e
Implemented performEndSessionRequest and added revocationEndpoint
yet300 Jun 18, 2025
793ce91
Update gradle.properties
yet300 Jun 18, 2025
8b368c6
Merge remote-tracking branch 'origin/main'
yet300 Jun 18, 2025
4929901
Update version to 0.0.8
yet300 Jun 18, 2025
464c04d
Fix: Add missing additional parameters for end session request
yet300 Jun 18, 2025
8edbc7f
Update gradle.properties
yet300 Jun 18, 2025
b6cc957
feat: Add support for token revocation
yet300 Jun 18, 2025
202674f
Update version to 0.1.1
yet300 Jun 18, 2025
8e244e1
Refactor: Move platform-specific classes to separate files
yet300 Jun 18, 2025
d1da37c
feat: prepare for deployment
trykovyura Aug 24, 2025
c41af2e
Merge pull request #1 from yet300/release
yet300 Aug 24, 2025
7e47a82
fix: pr build
trykovyura Aug 24, 2025
4e1f208
fix: pr build
trykovyura Aug 24, 2025
2d0503f
fix: linter
trykovyura Aug 24, 2025
f667020
fix: remove linter
trykovyura Aug 24, 2025
1cf64fb
Fix ktlint issues: rename files to PascalCase and fix test implementa…
trykovyura Aug 24, 2025
a89fd60
Fix test implementation to avoid Android Uri.parse() dependency
trykovyura Aug 24, 2025
3e8b2de
fix: remove koverVerify
trykovyura Aug 24, 2025
2d74802
chore(main): release 1.0.0
github-actions[bot] Aug 24, 2025
fc07601
Merge pull request #2 from yet300/release-please--branches--main
trykovyura Aug 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions .github/workflows/deploy-production.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Deploy Production

on:
push:
tags:
- 'v*'
release:
types: [released]

jobs:
deploy-production:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Setup GPG
run: |
echo "${{ secrets.GPG_PRIVATE_KEY }}" | gpg --import
echo "${{ secrets.GPG_PASSPHRASE }}" | gpg --batch --yes --passphrase-fd 0 --pinentry-mode loopback --export-secret-key ${{ secrets.GPG_KEY_ID }} > secring.gpg

- name: Update version property
uses: Reedyuk/[email protected]
with:
path: 'gradle.properties'
property: 'MODULE_VERSION_NUMBER'
value: ${{ github.ref_name }}

- name: Build and test
run: |
./gradlew clean build
./gradlew test
./gradlew ktlintCheck

- name: Deploy to GitHub Packages
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./gradlew publishToGitHubPackagesRepository

- name: Deploy to Maven Central
uses: eskatos/gradle-command-action@v1
with:
arguments: :publish
env:
sonatypeUsername: ${{ secrets.SONATYPEUSERNAME }}
sonatypePassword: ${{ secrets.SONATYPEPASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_PRIVATE_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PASSPHRASE }}

- name: Create Release
if: startsWith(github.ref, 'refs/tags/')
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body: |
Release ${{ github.ref }}

## Changes
- [Add your release notes here]

## Installation
```kotlin
implementation("dev.gitlive:appauth-kotlin:${{ github.ref_name }}")
```
draft: false
prerelease: false
33 changes: 0 additions & 33 deletions .github/workflows/publish.yml

This file was deleted.

19 changes: 11 additions & 8 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ name: Pull Request
on:
pull_request:
branches: [ main ]
push:
branches: [ main ]
workflow_dispatch:

jobs:
build:
Expand All @@ -11,14 +14,14 @@ jobs:

steps:
- uses: actions/checkout@v2
- name: Set up JDK
uses: actions/setup-java@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '11'
- name: KtLint Check
run: ./gradlew ktlintCheck
- name: Kover
run: ./gradlew koverVerify
java-version: '17'
distribution: 'temurin'
# - name: KtLint Check
# run: ./gradlew ktlintCheck
# - name: Kover
# run: ./gradlew koverVerify
- name: Assemble
run: ./gradlew build
21 changes: 21 additions & 0 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: release-please

on:
push:
branches:
- main

permissions:
contents: write
pull-requests: write
issues: write
actions: write

jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v4
with:
release-type: simple
changelog-types: '[{"type":"feat","section":"Features","hidden":false},{"type":"fix","section":"Bug Fixes","hidden":false},{"type":"chore","section":"Miscellaneous","hidden":false},{"type":"test","section":"Tests","hidden":false},{"type":"docs","section":"Documentation","hidden":false},{"type":"refactor","section":"Refactor","hidden":false}]'
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -151,3 +151,9 @@ fabric.properties
!*/swiftpackage/.git

swiftpackage

.kotlin
.idea

# Environment variables for deployment
.env
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Changelog

## 1.0.0 (2025-08-24)


### Features

* Add support for token revocation ([b6cc957](https://github.com/yet300/AppAuth-Kotlin/commit/b6cc95775385a20c9841c5766719a3d5f9966389))
* additional parameters authorization request ([c575d42](https://github.com/yet300/AppAuth-Kotlin/commit/c575d42625a38078466cc1b2f07ba895a7317b9f))
* ios dependency for origin lib ([e31470d](https://github.com/yet300/AppAuth-Kotlin/commit/e31470d013f7bff7846f5087859d94f6dae044b8))
* logger ([a12ddad](https://github.com/yet300/AppAuth-Kotlin/commit/a12ddad13dd9f092da80c4366ef05096ed716121))
* prepare for deployment ([c41af2e](https://github.com/yet300/AppAuth-Kotlin/commit/c41af2ef22cb5f5850b6a8dc8495d2b41d222174))
* prepare for deployment ([d1da37c](https://github.com/yet300/AppAuth-Kotlin/commit/d1da37c172bef365918b1f08ff75e07e4b4c8aa1))


### Bug Fixes

* Add missing additional parameters for end session request ([464c04d](https://github.com/yet300/AppAuth-Kotlin/commit/464c04d90df44eed13bbbcbd580e888d8e53d380))
* linter ([2d0503f](https://github.com/yet300/AppAuth-Kotlin/commit/2d0503f4dcfc99a505aa1e507b2292ab1d83ec9b))
* pr build ([4e1f208](https://github.com/yet300/AppAuth-Kotlin/commit/4e1f2083271888ae647d6ca6eb59340d5828af71))
* pr build ([7e47a82](https://github.com/yet300/AppAuth-Kotlin/commit/7e47a824eb5d3be3c12ced220356e31c66d4cb94))
* remove koverVerify ([3e8b2de](https://github.com/yet300/AppAuth-Kotlin/commit/3e8b2de6dcae9a28cf10e6a9d9eb23f80189da3e))
* remove linter ([f667020](https://github.com/yet300/AppAuth-Kotlin/commit/f667020ebd3d7e5dadb53517ad4b96947d195ccf))
191 changes: 191 additions & 0 deletions DEPLOYMENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
# Maven Central Deployment Guide

This guide explains how to deploy AppAuth-Kotlin to Maven Central.

## Prerequisites

1. **OSSRH Account**: You need an account on [OSSRH (OSS Repository Hosting)](https://oss.sonatype.org/)
2. **GPG Key**: A GPG key for signing artifacts
3. **Group ID**: The group ID `dev.gitlive` must be registered in your OSSRH account

## Setup Steps

### 1. OSSRH Account Setup

1. Go to [OSSRH](https://oss.sonatype.org/) and create an account
2. Create a new ticket to register your group ID `dev.gitlive`
3. Wait for approval (usually takes 1-2 business days)

### 2. GPG Key Setup

#### Option A: Generate a new GPG key
```bash
# Generate a new GPG key
gpg --gen-key

# Export the public key
gpg --armor --export [email protected] > public-key.asc

# Upload the public key to a key server
gpg --keyserver keyserver.ubuntu.com --send-keys your-key-id
```

#### Option B: Use existing GPG key
```bash
# List existing keys
gpg --list-keys

# Export your public key
gpg --armor --export your-key-id > public-key.asc
```

### 3. Environment Variables

Set the following environment variables:

```bash
export OSSRH_USERNAME="your-ossrh-username"
export OSSRH_PASSWORD="your-ossrh-password"
export SIGNING_KEY_ID="your-gpg-key-id"
export SIGNING_PASSWORD="your-gpg-key-password"
export SIGNING_SECRET_KEY_RING_FILE="/path/to/your/secring.gpg"
```

### 4. Gradle Properties (Alternative)

Alternatively, you can set these in `gradle.properties`:

```properties
ossrhUsername=your-ossrh-username
ossrhPassword=your-ossrh-password
signing.keyId=your-gpg-key-id
signing.password=your-gpg-key-password
signing.secretKeyRingFile=/path/to/your/secring.gpg
```

## Deployment Process

### 1. Update Version

Update the version in `gradle.properties`:

```properties
MODULE_VERSION_NUMBER=0.1.3
```

### 2. Build and Test

```bash
# Clean and build
./gradlew clean build

# Run tests
./gradlew test

# Check for any issues
./gradlew ktlintCheck
```

### 3. Publish to Staging

```bash
# Publish to OSSRH staging repository
./gradlew publishToOSSRHRepository
```

### 4. Release Process

1. Go to [OSSRH Staging](https://oss.sonatype.org/#stagingRepositories)
2. Find your staging repository
3. Click "Close" to close the staging repository
4. Click "Release" to release to Maven Central

### 5. Verify Release

After release (can take up to 10 minutes):

```bash
# Check if the artifact is available
curl https://repo1.maven.org/maven2/dev/gitlive/appauth-kotlin/0.1.3/
```

## Snapshot Releases

For snapshot releases:

```bash
# Update version to include -SNAPSHOT
# In gradle.properties: MODULE_VERSION_NUMBER=0.1.3-SNAPSHOT

# Publish snapshot
./gradlew publishToOSSRHSnapshotRepository
```

## Troubleshooting

### Common Issues

1. **Authentication Failed**: Check your OSSRH credentials
2. **Signing Failed**: Verify your GPG key configuration
3. **Group ID Not Registered**: Wait for OSSRH approval
4. **Version Already Exists**: Increment the version number

### Useful Commands

```bash
# Check GPG key
gpg --list-keys

# Test signing
echo "test" | gpg --clearsign

# Verify published artifacts
./gradlew publishToOSSRHRepository --dry-run
```

## CI/CD Integration

For automated deployment, you can use GitHub Actions. Create a workflow file:

```yaml
name: Deploy to Maven Central

on:
push:
tags:
- 'v*'

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: Setup GPG
run: |
echo "${{ secrets.GPG_PRIVATE_KEY }}" | gpg --import
echo "${{ secrets.GPG_PASSPHRASE }}" | gpg --batch --yes --passphrase-fd 0 --pinentry-mode loopback --export-secret-key ${{ secrets.GPG_KEY_ID }} > secring.gpg

- name: Deploy to Maven Central
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.GPG_KEY_ID }}
SIGNING_PASSWORD: ${{ secrets.GPG_PASSPHRASE }}
SIGNING_SECRET_KEY_RING_FILE: secring.gpg
run: ./gradlew publishToOSSRHRepository
```

## Notes

- Maven Central has strict requirements for artifact metadata
- All artifacts must be signed with GPG
- The group ID must be registered and approved
- Release versions cannot be overwritten
- Snapshot versions are automatically cleaned up after 30 days


Loading