Updated on 2026-08-14
This commit is contained in:
parent
f69ee8bece
commit
090e0964d4
10 changed files with 33 additions and 9 deletions
|
|
@ -2,16 +2,18 @@
|
||||||
|
|
||||||
## Branch Naming
|
## Branch Naming
|
||||||
|
|
||||||
| Type | Format | Example |
|
| Type | Format | Example |
|
||||||
|------|--------|---------|
|
|---------|-------------------------------------|-------------------------------------|
|
||||||
| Feature | `feature/AND-xxx_short_description` | `feature/AND-13391_balance_fetcher` |
|
| Feature | `feature/AND-xxx_short_description` | `feature/AND-13391_balance_fetcher` |
|
||||||
| Bugfix | `bugfix/AND-xxx_short_description` | `bugfix/AND-14000_fix_crash` |
|
| Bugfix | `bugfix/AND-xxx_short_description` | `bugfix/AND-14000_fix_crash` |
|
||||||
| Pre-release | `x.x_pre_release` | `5.36_pre_release` |
|
| Release | `releases/x.xx` | `releases/5.36` |
|
||||||
|
| Hotfix | `releases/x.xx.x` | `releases/5.36.1` |
|
||||||
|
|
||||||
**Key branches:**
|
**Key branches:**
|
||||||
|
|
||||||
- `develop` — main integration branch, all feature/bugfix branches merge here
|
- `develop` — main integration branch, all feature/bugfix branches merge here
|
||||||
- `x.x_pre_release` — branched from `develop` on the last day of sprint for the upcoming release; receives regression bugfixes and additional release items
|
- `releases/x.xx` — release branches, branched from `develop`
|
||||||
- `release` — merging into this branch triggers appTester build and production artifacts; PRs come from `x.x_pre_release`
|
- `releases/x.xx.x` — hotfix branches, branched from `releases/x.xx`
|
||||||
|
|
||||||
## Commit Messages
|
## Commit Messages
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,10 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||||
|
|
||||||
**Build types:** `debug`, `mocked`, `internal`, `external`, `release`.
|
**Build types:** `debug`, `mocked`, `internal`, `external`, `release`.
|
||||||
|
|
||||||
|
## Branching
|
||||||
|
|
||||||
|
See @.claude/rules/git-rules.md
|
||||||
|
|
||||||
## Architecture Overview
|
## Architecture Overview
|
||||||
|
|
||||||
### Module Layers
|
### Module Layers
|
||||||
|
|
|
||||||
|
|
@ -48,8 +48,9 @@ internal class DefaultAuthProvider(
|
||||||
ApiEnvironment.DEV_2,
|
ApiEnvironment.DEV_2,
|
||||||
ApiEnvironment.DEV_3,
|
ApiEnvironment.DEV_3,
|
||||||
-> environmentConfig.tangemApiKeyDev
|
-> environmentConfig.tangemApiKeyDev
|
||||||
ApiEnvironment.STAGE_2,
|
|
||||||
ApiEnvironment.STAGE,
|
ApiEnvironment.STAGE,
|
||||||
|
ApiEnvironment.STAGE_2,
|
||||||
|
ApiEnvironment.STAGE_3,
|
||||||
-> environmentConfig.tangemApiKeyStage
|
-> environmentConfig.tangemApiKeyStage
|
||||||
ApiEnvironment.PROD -> environmentConfig.tangemApiKey
|
ApiEnvironment.PROD -> environmentConfig.tangemApiKey
|
||||||
} ?: error("No tangem tech api config provided")
|
} ?: error("No tangem tech api config provided")
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,9 @@ enum class ApiEnvironment {
|
||||||
@Json(name = "STAGE_2")
|
@Json(name = "STAGE_2")
|
||||||
STAGE_2,
|
STAGE_2,
|
||||||
|
|
||||||
|
@Json(name = "STAGE_3")
|
||||||
|
STAGE_3,
|
||||||
|
|
||||||
@Json(name = "MOCK")
|
@Json(name = "MOCK")
|
||||||
MOCK,
|
MOCK,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ internal class Express(
|
||||||
createDev3Environment(),
|
createDev3Environment(),
|
||||||
createStageEnvironment(),
|
createStageEnvironment(),
|
||||||
createStage2Environment(),
|
createStage2Environment(),
|
||||||
|
createStage3Environment(),
|
||||||
createMockedEnvironment(),
|
createMockedEnvironment(),
|
||||||
createProdEnvironment(),
|
createProdEnvironment(),
|
||||||
)
|
)
|
||||||
|
|
@ -80,6 +81,12 @@ internal class Express(
|
||||||
headers = createHeaders(isProd = false),
|
headers = createHeaders(isProd = false),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private fun createStage3Environment(): ApiEnvironmentConfig = ApiEnvironmentConfig(
|
||||||
|
environment = ApiEnvironment.STAGE_3,
|
||||||
|
baseUrl = "[REDACTED_ENV_URL]",
|
||||||
|
headers = createHeaders(isProd = false),
|
||||||
|
)
|
||||||
|
|
||||||
private fun createMockedEnvironment(): ApiEnvironmentConfig = ApiEnvironmentConfig(
|
private fun createMockedEnvironment(): ApiEnvironmentConfig = ApiEnvironmentConfig(
|
||||||
environment = ApiEnvironment.MOCK,
|
environment = ApiEnvironment.MOCK,
|
||||||
baseUrl = "[REDACTED_ENV_URL]",
|
baseUrl = "[REDACTED_ENV_URL]",
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,7 @@ internal sealed class TangemPay(
|
||||||
ApiEnvironment.PROD -> environmentConfig.bffStaticToken
|
ApiEnvironment.PROD -> environmentConfig.bffStaticToken
|
||||||
ApiEnvironment.STAGE,
|
ApiEnvironment.STAGE,
|
||||||
ApiEnvironment.STAGE_2,
|
ApiEnvironment.STAGE_2,
|
||||||
|
ApiEnvironment.STAGE_3,
|
||||||
ApiEnvironment.DEV_2,
|
ApiEnvironment.DEV_2,
|
||||||
ApiEnvironment.DEV_3,
|
ApiEnvironment.DEV_3,
|
||||||
-> null
|
-> null
|
||||||
|
|
@ -84,6 +85,7 @@ internal sealed class TangemPay(
|
||||||
ApiEnvironment.DEV_3,
|
ApiEnvironment.DEV_3,
|
||||||
ApiEnvironment.STAGE,
|
ApiEnvironment.STAGE,
|
||||||
ApiEnvironment.STAGE_2,
|
ApiEnvironment.STAGE_2,
|
||||||
|
ApiEnvironment.STAGE_3,
|
||||||
-> error("Unknown environment: $apiEnvironment")
|
-> error("Unknown environment: $apiEnvironment")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -102,6 +104,7 @@ internal sealed class TangemPay(
|
||||||
ApiEnvironment.DEV_3,
|
ApiEnvironment.DEV_3,
|
||||||
ApiEnvironment.STAGE,
|
ApiEnvironment.STAGE,
|
||||||
ApiEnvironment.STAGE_2,
|
ApiEnvironment.STAGE_2,
|
||||||
|
ApiEnvironment.STAGE_3,
|
||||||
-> error("Unknown environment: $apiEnvironment")
|
-> error("Unknown environment: $apiEnvironment")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,7 @@ internal class YieldSupply(
|
||||||
ApiEnvironment.DEV_3,
|
ApiEnvironment.DEV_3,
|
||||||
ApiEnvironment.STAGE,
|
ApiEnvironment.STAGE,
|
||||||
ApiEnvironment.STAGE_2,
|
ApiEnvironment.STAGE_2,
|
||||||
|
ApiEnvironment.STAGE_3,
|
||||||
-> environmentConfig.yieldModuleApiKeyDev
|
-> environmentConfig.yieldModuleApiKeyDev
|
||||||
ApiEnvironment.PROD -> environmentConfig.yieldModuleApiKey
|
ApiEnvironment.PROD -> environmentConfig.yieldModuleApiKey
|
||||||
} ?: error("No tangem tech api config provided")
|
} ?: error("No tangem tech api config provided")
|
||||||
|
|
|
||||||
|
|
@ -334,6 +334,7 @@ internal class DefaultTangemPayCardDetailsRepository @Inject constructor(
|
||||||
ApiEnvironment.DEV_3,
|
ApiEnvironment.DEV_3,
|
||||||
ApiEnvironment.STAGE,
|
ApiEnvironment.STAGE,
|
||||||
ApiEnvironment.STAGE_2,
|
ApiEnvironment.STAGE_2,
|
||||||
|
ApiEnvironment.STAGE_3,
|
||||||
ApiEnvironment.MOCK,
|
ApiEnvironment.MOCK,
|
||||||
-> visaLibLoader.getOrCreateConfig().rainRSAPublicKey.dev
|
-> visaLibLoader.getOrCreateConfig().rainRSAPublicKey.dev
|
||||||
ApiEnvironment.PROD -> visaLibLoader.getOrCreateConfig().rainRSAPublicKey.prod
|
ApiEnvironment.PROD -> visaLibLoader.getOrCreateConfig().rainRSAPublicKey.prod
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,7 @@ internal class DefaultVisaActivationRepository @AssistedInject constructor(
|
||||||
ApiEnvironment.DEV_3,
|
ApiEnvironment.DEV_3,
|
||||||
ApiEnvironment.STAGE,
|
ApiEnvironment.STAGE,
|
||||||
ApiEnvironment.STAGE_2,
|
ApiEnvironment.STAGE_2,
|
||||||
|
ApiEnvironment.STAGE_3,
|
||||||
ApiEnvironment.MOCK,
|
ApiEnvironment.MOCK,
|
||||||
-> rsaPublicKey.dev
|
-> rsaPublicKey.dev
|
||||||
ApiEnvironment.PROD -> rsaPublicKey.prod
|
ApiEnvironment.PROD -> rsaPublicKey.prod
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,9 @@ internal object ApiEnvironmentComparator : Comparator<ApiEnvironmentConfig> {
|
||||||
ApiEnvironment.DEV_3 -> 2
|
ApiEnvironment.DEV_3 -> 2
|
||||||
ApiEnvironment.STAGE -> 3
|
ApiEnvironment.STAGE -> 3
|
||||||
ApiEnvironment.STAGE_2 -> 4
|
ApiEnvironment.STAGE_2 -> 4
|
||||||
ApiEnvironment.MOCK -> 5
|
ApiEnvironment.STAGE_3 -> 5
|
||||||
ApiEnvironment.PROD -> 6
|
ApiEnvironment.MOCK -> 6
|
||||||
|
ApiEnvironment.PROD -> 7
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue