Thank you for considering contributing to the Ping Orchestration SDK for Android! We appreciate your time and effort.
This document outlines the guidelines for contributing to this project. Please read it before getting started.
- A GitHub account with Git installed locally.
- The latest stable version of Android Studio.
- Android API level 29 or higher.
- A PingOne and Ping AIC tenants or PingAM instance — see the documentation for setup instructions.
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/ping-android-sdk.git cd ping-android-sdk - Open the project in Android Studio. Gradle will resolve dependencies automatically.
- Verify the build before making any changes:
./gradlew clean build
The SDK is organised into focused modules. For a full description of each module, see the Modules section in the README.
Before submitting any changes, ensure the project builds and all tests pass.
./gradlew --rerun-tasks testDebugUnitTestCoverage --stacktrace --no-daemonYou can target individual modules to speed up your feedback loop. Replace <module> with the Gradle path shown in the project structure above (e.g. :davinci, :foundation:oidc, :mfa:oath).
./gradlew :<module>:testDebugUnitTestCoverage --stacktrace --no-daemonSome common examples:
# Core orchestration and OIDC
./gradlew :foundation:orchestrate:testDebugUnitTestCoverage --no-daemon
./gradlew :foundation:oidc:testDebugUnitTestCoverage --no-daemon
# DaVinci and Journey
./gradlew :davinci:testDebugUnitTestCoverage --no-daemon
./gradlew :journey:testDebugUnitTestCoverage --no-daemon
# MFA
./gradlew :mfa:oath:testDebugUnitTestCoverage --no-daemon
./gradlew :mfa:push:testDebugUnitTestCoverage --no-daemon
./gradlew :mfa:binding:testDebugUnitTestCoverage --no-daemon
# Protect
./gradlew :protect:testDebugUnitTestCoverage --no-daemonEnsure that all existing tests pass and that you add new tests for any new functionality you introduce.
The project uses Dokka to generate API reference documentation. Run the following command from the root of the project:
./gradlew dokkaGenerateThe generated HTML output will be placed in build/dokka/.
This project follows the internal standards maintained by the Ping Identity SDK team. Please review and adhere to these guidelines before submitting any code:
In general, try to match the style of the existing code in the project.
Always branch off from develop. Avoid committing directly to develop or main.
git checkout -b feature/my-new-featureWrite clean, readable code. Add tests for new functionality and update documentation where relevant.
Commits must be signed. See the GitHub docs for setup instructions.
Use the following commit message format:
[TYPE] Short description of the changes
| Type | When to use |
|---|---|
feat |
A new feature |
fix |
A bug fix |
docs |
Documentation changes only |
refactor |
Code restructuring with no behaviour change |
test |
Adding or modifying tests |
Example:
git commit -S -m "feat: add TOTP token refresh support"git push origin feature/my-new-featureOpen a Pull Request targeting the develop branch of the original repository. Fill out the PR template, which includes:
- A clear description of what was changed and why.
- A link to the related JIRA ticket, if applicable.
- Any relevant context, screenshots, or notes about breaking changes.
Your PR will be reviewed by the project maintainers. Be prepared to address feedback and keep your branch up to date with develop.
By contributing to the Ping Identity Android SDK, you agree that your contributions will be licensed under the MIT License that covers the project.
© Copyright 2025-2026 Ping Identity Corporation. All Rights Reserved.