Skip to content

Commit 1e7780c

Browse files
Release 1.9.0: migrate to coinbase/prime-sdk-java
Point SCM and docs at the canonical pub repo. Add GitHub Actions, CODEOWNERS, DEPLOY.md, and bump version for repository migration with no API changes. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent aae5b99 commit 1e7780c

14 files changed

Lines changed: 285 additions & 15 deletions

File tree

‎.github/CODEOWNERS‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @coinbase/prime-sdk-java-write @coinbase/prime-sdk-java-admin

‎.github/PULL_REQUEST_TEMPLATE.md‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## Description
2+
3+
<!-- Describe the change and why it's being made. Include any relevant context, motivation, or background. -->
4+
5+
## Type of Change
6+
7+
<!-- Check all that apply. -->
8+
9+
- [ ] Bug fix
10+
- [ ] New feature
11+
- [ ] Breaking change
12+
- [ ] Dependency update
13+
- [ ] Refactor / cleanup
14+
- [ ] Other (describe below)
15+
16+
## Checklist
17+
18+
- [ ] Tests included / updated
19+
- [ ] Changelog updated
20+
- [ ] Version bump if needed

‎.github/workflows/format.yml‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: format
2+
on: [pull_request]
3+
4+
permissions:
5+
contents: read
6+
7+
jobs:
8+
format:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Harden the runner (Audit all outbound calls)
13+
uses: step-security/harden-runner@002fdce3c6a235733a90a27c80493a3241e56863 # v2.12.1
14+
with:
15+
egress-policy: audit
16+
17+
- name: Checkout
18+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
19+
20+
- name: Setup Java
21+
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
22+
with:
23+
distribution: temurin
24+
java-version: "11"
25+
cache: maven
26+
27+
- name: Verify formatting
28+
run: mvn -B spotless:check

‎.github/workflows/lint.yml‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: lint
2+
on: [pull_request]
3+
4+
permissions:
5+
contents: read
6+
7+
jobs:
8+
lint:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Harden the runner (Audit all outbound calls)
13+
uses: step-security/harden-runner@002fdce3c6a235733a90a27c80493a3241e56863 # v2.12.1
14+
with:
15+
egress-policy: audit
16+
17+
- name: Checkout
18+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
19+
20+
- name: Setup Java
21+
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
22+
with:
23+
distribution: temurin
24+
java-version: "11"
25+
cache: maven
26+
27+
- name: Compile
28+
run: mvn -B compile

‎.github/workflows/publish.yml‎

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Publish release artifacts to Maven Central when a GitHub Release is created,
2+
# or when this workflow is run manually from the Actions tab.
3+
# See DEPLOY.md for required release environment secrets and release process.
4+
name: publish
5+
6+
on:
7+
release:
8+
types: [created]
9+
workflow_dispatch:
10+
inputs:
11+
tag:
12+
description: Release tag to publish (for example v1.2.0)
13+
required: true
14+
type: string
15+
16+
permissions:
17+
contents: read
18+
19+
jobs:
20+
publish:
21+
runs-on: ubuntu-latest
22+
environment: release
23+
24+
steps:
25+
- name: Harden the runner (Audit all outbound calls)
26+
uses: step-security/harden-runner@002fdce3c6a235733a90a27c80493a3241e56863 # v2.12.1
27+
with:
28+
egress-policy: audit
29+
30+
- name: Checkout release tag
31+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
32+
with:
33+
ref: ${{ github.event.release.tag_name || github.event.inputs.tag }}
34+
35+
- name: Setup Java and Maven Central credentials
36+
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
37+
with:
38+
distribution: temurin
39+
java-version: "11"
40+
cache: maven
41+
server-id: central
42+
server-username: MAVEN_USERNAME
43+
server-password: MAVEN_CENTRAL_TOKEN
44+
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
45+
gpg-passphrase: MAVEN_GPG_PASSPHRASE
46+
47+
- name: Set project version from release tag
48+
run: |
49+
VERSION="${TAG_NAME#v}"
50+
if [ -z "$VERSION" ]; then
51+
echo "Release tag must be vX.Y.Z (for example v1.2.0)" >&2
52+
exit 1
53+
fi
54+
mvn -B org.apache.maven.plugins:maven-versions-plugin:2.17.1:set \
55+
-DnewVersion="$VERSION" \
56+
-DgenerateBackupPoms=false
57+
env:
58+
TAG_NAME: ${{ github.event.release.tag_name || github.event.inputs.tag }}
59+
60+
- name: Verify formatting
61+
run: mvn -B spotless:check
62+
63+
- name: Test
64+
run: mvn -B test
65+
66+
- name: Publish to Maven Central
67+
run: mvn -B clean deploy -Dgpg.keyname="${GPG_KEY_ID}"
68+
env:
69+
MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
70+
MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
71+
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
72+
GPG_KEY_ID: ${{ secrets.MAVEN_GPG_KEY_ID }}

‎.github/workflows/salus-scan.yml‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Salus Security Scan
2+
on: [pull_request, push]
3+
4+
permissions:
5+
contents: read
6+
7+
jobs:
8+
scan:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Harden the runner (Audit all outbound calls)
12+
uses: step-security/harden-runner@002fdce3c6a235733a90a27c80493a3241e56863 # v2.12.1
13+
with:
14+
egress-policy: audit
15+
16+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
17+
- name: Salus Scan
18+
id: salus_scan
19+
uses: federacy/scan-action@4303a88eba7fe183a9a2d9ca9a13af11203cb835 # 0.1.5
20+
with:
21+
active_scanners: "\n - PatternSearch\n - Semgrep\n - Trufflehog"

‎.github/workflows/test.yml‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: test
2+
on: [pull_request]
3+
4+
permissions:
5+
contents: read
6+
7+
jobs:
8+
test:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Harden the runner (Audit all outbound calls)
13+
uses: step-security/harden-runner@002fdce3c6a235733a90a27c80493a3241e56863 # v2.12.1
14+
with:
15+
egress-policy: audit
16+
17+
- name: Checkout
18+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
19+
20+
- name: Setup Java
21+
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
22+
with:
23+
distribution: temurin
24+
java-version: "11"
25+
cache: maven
26+
27+
- name: Test
28+
run: mvn -B test

‎CHANGELOG.md‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# Changelog
22

3+
## [1.9.0] - 2026-06-03
4+
5+
### Changed
6+
7+
- Moved the canonical repository to [coinbase/prime-sdk-java](https://github.com/coinbase/prime-sdk-java).
8+
- Added GitHub Actions for format, lint, test, Salus security scan, and Maven Central publish.
9+
- Added `.github/CODEOWNERS` for `@coinbase/prime-sdk-java-write` and `@coinbase/prime-sdk-java-admin`.
10+
11+
### Notes
12+
13+
- No intentional API breaking changes; minor bump signals repository migration.
14+
- Spotless (Google Java Format) was introduced in **1.8.1**; this release adds CI that runs `spotless:check`.
15+
- Equivalent to **1.8.0** on coinbase-samples aside from repository, tooling, and formatting.
16+
317
## [1.8.1] - 2026-06-03
418

519
### Changed

‎DEPLOY.md‎

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Coinbase Prime Java SDK — Deploy
2+
3+
Canonical repository: [coinbase/prime-sdk-java](https://github.com/coinbase/prime-sdk-java).
4+
5+
This project publishes through the [Sonatype Central Portal](https://central.sonatype.org/publish/publish-portal-maven/) (`central-publishing-maven-plugin` with server id `central`).
6+
7+
## Prerequisites
8+
9+
- JDK 11+
10+
- Maven 3.8+
11+
- GPG key configured (`gpg.keyname` in Maven settings or `pom.xml` properties)
12+
- Sonatype Central user token ([generate in the portal](https://central.sonatype.com/account); use server id `central` in `~/.m2/settings.xml`)
13+
14+
## Publish with GitHub Actions
15+
16+
Creating a [GitHub Release](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release) runs [`.github/workflows/publish.yml`](.github/workflows/publish.yml). You can also run the workflow manually from **Actions → publish → Run workflow**, providing the release tag (for example `v1.9.0`).
17+
18+
The workflow checks out the release tag, aligns `pom.xml` version with the tag (for example `v1.9.0` → `1.9.0`), runs Spotless and tests, then runs `mvn clean deploy`.
19+
20+
### Trigger manually from the CLI
21+
22+
Use the [GitHub CLI](https://cli.github.com/) (`gh auth login` if needed). From a clone of this repo:
23+
24+
```bash
25+
gh workflow run publish -f tag=v1.9.0
26+
```
27+
28+
From another directory, pass the repository explicitly:
29+
30+
```bash
31+
gh workflow run publish --repo coinbase/prime-sdk-java -f tag=v1.9.0
32+
```
33+
34+
Watch the latest run or list recent publish runs:
35+
36+
```bash
37+
gh run watch
38+
gh run list --workflow=publish
39+
```
40+
41+
### Release environment secrets
42+
43+
Configure these under **Settings → Environments → release → Environment secrets** (the publish job uses the `release` environment):
44+
45+
| Secret | Description |
46+
|--------|-------------|
47+
| `MAVEN_CENTRAL_USERNAME` | Sonatype Central token username |
48+
| `MAVEN_CENTRAL_TOKEN` | Sonatype Central token password |
49+
| `MAVEN_GPG_PRIVATE_KEY` | ASCII-armored GPG secret key (`gpg --armor --export-secret-keys KEY_ID`) |
50+
| `MAVEN_GPG_PASSPHRASE` | Passphrase for that key |
51+
| `MAVEN_GPG_KEY_ID` | GPG key id used by `maven-gpg-plugin` (`gpg.keyname`) |
52+
53+
### Release checklist
54+
55+
1. Bump `<version>` on `main` (or rely on the workflow to set it from the tag).
56+
2. Create and push an annotated tag: `git tag v1.9.0 && git push origin v1.9.0`
57+
3. Create a GitHub Release for that tag (event type **created** triggers publish).
58+
4. Confirm the workflow succeeded and the artifact appears on [Maven Central](https://central.sonatype.com/artifact/com.coinbase.prime/coinbase-prime-sdk-java).

‎README.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# Coinbase Prime Java SDK
22

3-
The canonical source repository is **[coinbase/prime-sdk-java](https://github.com/coinbase/prime-sdk-java)**. The former [coinbase-samples/prime-sdk-java](https://github.com/coinbase-samples/prime-sdk-java) repository is deprecated. Maven Central releases **1.9.0+** are published from the canonical repository.
4-
53
[![Maven Central](https://img.shields.io/maven-central/v/com.coinbase.prime/coinbase-prime-sdk-java.svg)](https://central.sonatype.com/artifact/com.coinbase.prime/coinbase-prime-sdk-java)
64
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
75

86
## Overview
97

108
The *Coinbase Prime Java SDK* is a sample library that demonstrates the usage of the [Coinbase Prime](https://prime.coinbase.com/) API via its [REST APIs](https://docs.cdp.coinbase.com/prime/reference).
119

10+
**Repository:** [coinbase/prime-sdk-java](https://github.com/coinbase/prime-sdk-java)
11+
1212
## License
1313

1414
The *Coinbase Prime Java SDK* sample library is free and open source and released under the [Apache License, Version 2.0](LICENSE).
@@ -182,4 +182,4 @@ Release history and API changes are documented in [CHANGELOG.md](CHANGELOG.md).
182182

183183
If you discover a security vulnerability within this SDK, please see our [Security Policy](SECURITY.md) for disclosure information.
184184

185-
For non-security bugs and feature requests, use [GitHub Issues](https://github.com/coinbase-samples/prime-sdk-java/issues).
185+
For non-security bugs and feature requests, use [GitHub Issues](https://github.com/coinbase/prime-sdk-java/issues).

0 commit comments

Comments
 (0)