Thank you for your interest in contributing to G-SSO! This guide will help you get started.
- Code of Conduct
- Getting Started
- Development Setup
- Branching Strategy (Git Flow)
- Making Changes
- Pull Request Process
- Quality Standards
- Reporting Bugs
- Requesting Features
- Getting Help
By participating in this project, you agree to treat all contributors with respect and maintain a welcoming, inclusive environment. See CODE_OF_CONDUCT.md for details.
G-SSO SDK is a universal multi-chain wallet authentication SDK for decentralised Single Sign-On. It's built with TypeScript, bundled with Rollup, and supports vanilla JS, React, Vue, and WordPress integrations.
Before contributing, please:
- Check existing issues to avoid duplicating work
- For new features: Open an issue first to discuss your approach before writing code
- For small fixes (typos, docs improvements): You can go straight to a PR
- Node.js >= 18.x
- npm (included with Node.js)
- Git
# Fork the repo on GitHub, then clone your fork
git clone https://github.com/<your-username>/g-sso-client.git
cd g-sso-client
# Add the upstream remote
git remote add upstream https://github.com/go2gloryltd/g-sso-client.git
# Install dependencies
npm install
# Copy environment config
cp .env.example .env
# Edit .env with your local settingsg-sso-client/
├── src/ # Source code (TypeScript)
├── cdn/ # CDN distribution files
├── demo/ # Demo applications
├── scripts/ # Build and utility scripts
├── .github/
│ └── workflows/ # GitHub Actions CI/CD
├── rollup.config.js # Rollup bundler configuration
├── tsconfig.json # TypeScript configuration
└── package.json
# Build the SDK
npm run buildWe follow Git Flow:
main ← Production releases only (tagged versions)
└── develop ← Active development (PRs merge here)
├── feature/xxx ← New features
├── fix/xxx ← Bug fixes
└── docs/xxx ← Documentation changes
mainis the stable release branch. Only release merges go here. Never commit directly.developis the active development branch. All PRs targetdevelop.- Feature/fix branches are created from
developand merged back intodevelop. - Releases are cut from
develop→ merged intomainand tagged.
# Always start from develop
git checkout develop
git pull upstream develop
git checkout -b feature/your-feature-name
# For bug fixes
git checkout -b fix/describe-the-bug
# For documentation
git checkout -b docs/what-you-changedWe follow Conventional Commits. This format enables automated changelogs and clear history.
type: short description
Optional longer explanation of what and why.
Types:
| Prefix | Use for |
|---|---|
feat: |
New feature |
fix: |
Bug fix |
docs: |
Documentation only |
chore: |
Maintenance, dependencies, CI/CD |
refactor: |
Code restructuring (no new feature or fix) |
Examples:
feat: add Ledger hardware wallet support
fix: resolve token refresh race condition
docs: update React integration example
chore: update rollup to v4.x- Build must pass — run
npm run buildwith zero errors - No TypeScript errors — the build will catch these
- If you changed an API, update the README or relevant documentation
- Target the
developbranch — notmain
- Push your branch to your fork
- Open a PR from your branch →
go2gloryltd/g-sso-client:develop - Fill out the PR template completely
- Link any related issues (use "Closes #123")
- A maintainer will review your PR, usually within a few days
- One approval required from a maintainer to merge
- Be responsive to feedback — we may request changes
- Once approved, a maintainer will merge your PR
These are the checks your PR must pass:
| Check | Required | Notes |
|---|---|---|
npm run build succeeds |
✅ Yes | Non-negotiable |
| No TypeScript errors | ✅ Yes | Caught by the build |
| Conventional Commits format | ✅ Yes | For all commit messages |
| Documentation updated | Recommended | Required if you changed any public API |
We're actively working on adding automated testing and linting. These will become required checks once implemented.
Found a bug? Please open an issue with:
- Description — what happened vs. what you expected
- Steps to reproduce — minimal steps to trigger the bug
- Environment — browser, OS, Node.js version, SDK version
- Code sample — minimal reproduction if possible
- Screenshots/logs — if applicable
Security vulnerabilities should be reported privately. See SECURITY.md.
Have an idea? Open an issue with:
- Problem — what use case are you trying to solve?
- Proposed solution — how do you think it should work?
- Alternatives considered — any other approaches you thought of?
Please open an issue and get feedback before building a large feature. This saves everyone's time.
- 💬 GitHub Discussions: Ask questions and discuss ideas — best place for support and general questions
- 📧 Email: support@go2glory.com — for private enquiries
- 🐛 Issues: GitHub Issues — for bugs and feature requests
By contributing to G-SSO SDK, you agree that your contributions will be licensed under the same MIT License as the project.
Thank you for helping make G-SSO better! 🚀