Skip to content

Commit 9f82218

Browse files
authored
Merge pull request #11 from openstandia/feat-residency
feat: add configurable endpoint URL for EMU data residency support
2 parents 73f4320 + 1813476 commit 9f82218

6 files changed

Lines changed: 85 additions & 4849 deletions

File tree

.github/workflows/pull_request.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ jobs:
1010
runs-on: ubuntu-latest
1111
if: "!contains(github.event.head_commit.message, '[ci skip]')"
1212
steps:
13-
- uses: actions/checkout@v3
13+
- name: Checkout sources
14+
uses: actions/checkout@v4
15+
1416
- name: Set up JDK 11
15-
uses: actions/setup-java@v3
17+
uses: actions/setup-java@v4
1618
with:
1719
distribution: 'corretto'
1820
java-version: 11
@@ -22,12 +24,15 @@ jobs:
2224
server-password: OSSRH_JIRA_PASSWORD
2325
gpg-private-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
2426
gpg-passphrase: OSSRH_GPG_SECRET_KEY_PASSWORD
27+
2528
- name: Build with Maven
2629
run: mvn -B package
30+
2731
- name: Deploy SNAPSHOT version
2832
run: mvn -B -DskipTests deploy
2933
env:
3034
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3135
OSSRH_JIRA_USERNAME: ${{ secrets.OSSRH_JIRA_USERNAME }}
3236
OSSRH_JIRA_PASSWORD: ${{ secrets.OSSRH_JIRA_PASSWORD }}
33-
OSSRH_GPG_SECRET_KEY_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
37+
OSSRH_GPG_SECRET_KEY_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
38+

.github/workflows/release.yml

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,15 @@ jobs:
1111
runs-on: ubuntu-latest
1212
if: "!contains(github.event.head_commit.message, '[ci skip]')"
1313
steps:
14-
- uses: actions/checkout@v3
14+
- name: Checkout sources
15+
uses: actions/checkout@v4
16+
with:
17+
# Disabling shallow clone is needed for correctly determing next release with semantic release
18+
fetch-depth: 0
19+
persist-credentials: false
20+
1521
- name: Set up JDK
16-
uses: actions/setup-java@v3
22+
uses: actions/setup-java@v4
1723
with:
1824
distribution: 'corretto'
1925
java-version: 11
@@ -23,28 +29,22 @@ jobs:
2329
server-password: OSSRH_JIRA_PASSWORD
2430
gpg-private-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
2531
gpg-passphrase: OSSRH_GPG_SECRET_KEY_PASSWORD
26-
- name: Setup node
27-
uses: actions/setup-node@v3
28-
with:
29-
node-version: '16'
30-
cache: 'yarn'
31-
- name: Setup semantic-release
32-
run: |
33-
yarn global add @conveyal/maven-semantic-release@v4.5.0 semantic-release@15
34-
echo "$(yarn global bin)" >> $GITHUB_PATH
32+
3533
- name: Test
3634
run: mvn -B test
37-
- name: Release
38-
# maven-semantic-release requires "maven-settings.xml" in the workspace directory
39-
run: |
40-
mv ~/.m2/settings.xml maven-settings.xml
41-
semantic-release --branch main --prepare @conveyal/maven-semantic-release \
42-
--publish @semantic-release/github,@conveyal/maven-semantic-release \
43-
--verify-conditions @semantic-release/github,@conveyal/maven-semantic-release \
44-
--verify-release @conveyal/maven-semantic-release\
45-
--use-conveyal-workflow
35+
36+
- name: Semantic release
37+
id: semantic
38+
uses: cycjimmy/semantic-release-action@v4
39+
with:
40+
semantic_version: 23
41+
extra_plugins: |
42+
@semantic-release/changelog@6
43+
@terrestris/maven-semantic-release@2
44+
@semantic-release/git@10
4645
env:
4746
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4847
OSSRH_JIRA_USERNAME: ${{ secrets.OSSRH_JIRA_USERNAME }}
4948
OSSRH_JIRA_PASSWORD: ${{ secrets.OSSRH_JIRA_PASSWORD }}
50-
OSSRH_GPG_SECRET_KEY_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
49+
OSSRH_GPG_SECRET_KEY_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
50+

.releaserc

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"branches": [
3+
"main"
4+
],
5+
"plugins": [
6+
"@semantic-release/commit-analyzer",
7+
"@semantic-release/release-notes-generator",
8+
"@semantic-release/changelog",
9+
[
10+
"@terrestris/maven-semantic-release",
11+
{
12+
"mavenTarget": "deploy",
13+
"clean": false,
14+
"updateSnapshotVersion": true,
15+
"settingsPath": "/home/runner/.m2/settings.xml",
16+
"processAllModules": true
17+
}
18+
],
19+
[
20+
"@semantic-release/git",
21+
{
22+
"assets": [
23+
"CHANGELOG.md", "pom.xml", "**/pom.xml"
24+
],
25+
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
26+
}
27+
],
28+
[
29+
"@semantic-release/github",
30+
{
31+
"successComment": false,
32+
"failTitle": false
33+
}
34+
]
35+
]
36+
}

src/main/java/jp/openstandia/connector/github/GitHubEMUConfiguration.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public class GitHubEMUConfiguration extends AbstractGitHubConfiguration {
2828

2929
private String enterpriseSlug;
3030
private GuardedString accessToken;
31+
private String endpointURL;
3132

3233
@ConfigurationProperty(
3334
order = 1,
@@ -57,6 +58,20 @@ public void setAccessToken(GuardedString accessToken) {
5758
this.accessToken = accessToken;
5859
}
5960

61+
@ConfigurationProperty(
62+
order = 3,
63+
displayMessageKey = "Endpoint URL",
64+
helpMessageKey = "Set GitHub endpoint URL (Default: https://api.github.com).",
65+
required = false,
66+
confidential = false)
67+
public String getEndpointURL() {
68+
return endpointURL;
69+
}
70+
71+
public void setEndpointURL(String endpointURL) {
72+
this.endpointURL = endpointURL;
73+
}
74+
6075
@Override
6176
public void validate() {
6277
}

src/main/java/jp/openstandia/connector/github/rest/GitHubEMURESTClient.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import jp.openstandia.connector.github.GitHubEMUConfiguration;
2020
import jp.openstandia.connector.github.GitHubEMUSchema;
2121
import jp.openstandia.connector.util.QueryHandler;
22+
import org.identityconnectors.common.StringUtil;
2223
import org.identityconnectors.common.logging.Log;
2324
import org.identityconnectors.framework.common.exceptions.*;
2425
import org.identityconnectors.framework.common.objects.Name;
@@ -96,6 +97,10 @@ public void auth() {
9697
.withConnector(new OkHttpConnector(createClient(configuration)))
9798
.withOAuthToken(accessToken.get());
9899

100+
if (!StringUtil.isEmpty(configuration.getEndpointURL())) {
101+
builder = builder.withEndpoint(configuration.getEndpointURL());
102+
}
103+
99104
apiClient = GitHubExt.build(builder);
100105
lastAuthenticated = System.currentTimeMillis();
101106

0 commit comments

Comments
 (0)