Skip to content

Commit f903ebd

Browse files
authored
chore(scripts): factor git repo id (#499)
1 parent 57f0edd commit f903ebd

File tree

9 files changed

+40
-117
lines changed

9 files changed

+40
-117
lines changed

config/clients.config.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"java": {
33
"folder": "clients/algoliasearch-client-java-2",
4+
"gitRepoId": "algoliasearch-client-java-2",
45
"packageVersion": "0.0.1",
56
"modelFolder": "algoliasearch-core/src/main/java/com/algolia/model",
67
"apiFolder": "algoliasearch-core/src/main/java/com/algolia/api",
@@ -12,6 +13,7 @@
1213
},
1314
"javascript": {
1415
"folder": "clients/algoliasearch-client-javascript",
16+
"gitRepoId": "algoliasearch-client-javascript",
1517
"modelFolder": "model",
1618
"apiFolder": "src",
1719
"customGenerator": "algolia-javascript",
@@ -22,6 +24,7 @@
2224
},
2325
"php": {
2426
"folder": "clients/algoliasearch-client-php",
27+
"gitRepoId": "algoliasearch-client-php",
2528
"packageVersion": "0.0.1",
2629
"modelFolder": "lib/Model",
2730
"customGenerator": "algolia-php",

config/openapitools.json

Lines changed: 0 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
"version": "5.4.0",
44
"generators": {
55
"javascript-search": {
6-
"apiPackage": "src",
76
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-search",
8-
"gitRepoId": "algoliasearch-client-javascript",
97
"reservedWordsMappings": "queryParameters=queryParameters,requestOptions=requestOptions",
108
"additionalProperties": {
119
"npmName": "@experimental-api-clients-automation/client-search",
@@ -16,9 +14,7 @@
1614
}
1715
},
1816
"javascript-algoliasearch-lite": {
19-
"apiPackage": "src",
2017
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/algoliasearch-lite",
21-
"gitRepoId": "algoliasearch-client-javascript",
2218
"reservedWordsMappings": "queryParameters=queryParameters,requestOptions=requestOptions",
2319
"additionalProperties": {
2420
"npmName": "@experimental-api-clients-automation/algoliasearch-lite",
@@ -29,9 +25,7 @@
2925
}
3026
},
3127
"javascript-recommend": {
32-
"apiPackage": "src",
3328
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/recommend",
34-
"gitRepoId": "algoliasearch-client-javascript",
3529
"reservedWordsMappings": "queryParameters=queryParameters",
3630
"additionalProperties": {
3731
"npmName": "@experimental-api-clients-automation/recommend",
@@ -42,9 +36,7 @@
4236
}
4337
},
4438
"javascript-personalization": {
45-
"apiPackage": "src",
4639
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-personalization",
47-
"gitRepoId": "algoliasearch-client-javascript",
4840
"additionalProperties": {
4941
"npmName": "@experimental-api-clients-automation/client-personalization",
5042
"buildFile": "client-personalization",
@@ -55,9 +47,7 @@
5547
}
5648
},
5749
"javascript-analytics": {
58-
"apiPackage": "src",
5950
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-analytics",
60-
"gitRepoId": "algoliasearch-client-javascript",
6151
"additionalProperties": {
6252
"npmName": "@experimental-api-clients-automation/client-analytics",
6353
"buildFile": "client-analytics",
@@ -68,9 +58,7 @@
6858
}
6959
},
7060
"javascript-insights": {
71-
"apiPackage": "src",
7261
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-insights",
73-
"gitRepoId": "algoliasearch-client-javascript",
7462
"additionalProperties": {
7563
"npmName": "@experimental-api-clients-automation/client-insights",
7664
"buildFile": "client-insights",
@@ -81,9 +69,7 @@
8169
}
8270
},
8371
"javascript-abtesting": {
84-
"apiPackage": "src",
8572
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-abtesting",
86-
"gitRepoId": "algoliasearch-client-javascript",
8773
"additionalProperties": {
8874
"npmName": "@experimental-api-clients-automation/client-abtesting",
8975
"buildFile": "client-abtesting",
@@ -94,9 +80,7 @@
9480
}
9581
},
9682
"javascript-query-suggestions": {
97-
"apiPackage": "src",
9883
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-query-suggestions",
99-
"gitRepoId": "algoliasearch-client-javascript",
10084
"additionalProperties": {
10185
"npmName": "@experimental-api-clients-automation/client-query-suggestions",
10286
"buildFile": "client-query-suggestions",
@@ -107,9 +91,7 @@
10791
}
10892
},
10993
"javascript-sources": {
110-
"apiPackage": "src",
11194
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-sources",
112-
"gitRepoId": "algoliasearch-client-javascript",
11395
"additionalProperties": {
11496
"npmName": "@experimental-api-clients-automation/client-sources",
11597
"buildFile": "client-sources",
@@ -121,9 +103,7 @@
121103
},
122104
"javascript-predict": {
123105
"templateDir": "#{cwd}/templates/javascript/",
124-
"apiPackage": "src",
125106
"output": "#{cwd}/clients/algoliasearch-client-javascript/packages/client-predict",
126-
"gitRepoId": "algoliasearch-client-javascript",
127107
"additionalProperties": {
128108
"npmName": "@experimental-api-clients-automation/client-predict",
129109
"buildFile": "client-predict",
@@ -135,127 +115,81 @@
135115
},
136116
"java-search": {
137117
"output": "#{cwd}/clients/algoliasearch-client-java-2",
138-
"groupId": "com.algolia",
139-
"apiPackage": "com.algolia.api",
140-
"invokerPackage": "com.algolia",
141118
"modelPackage": "com.algolia.model.search",
142-
"library": "okhttp-gson",
143-
"gitRepoId": "algoliasearch-client-java-2",
144119
"additionalProperties": {
145120
"packageName": "algoliasearch-client-java"
146121
}
147122
},
148123
"java-recommend": {
149124
"output": "#{cwd}/clients/algoliasearch-client-java-2",
150-
"groupId": "com.algolia",
151-
"apiPackage": "com.algolia.api",
152-
"invokerPackage": "com.algolia",
153125
"modelPackage": "com.algolia.model.recommend",
154-
"library": "okhttp-gson",
155-
"gitRepoId": "algoliasearch-client-java-2",
156126
"additionalProperties": {
157127
"packageName": "algoliasearch-client-java"
158128
}
159129
},
160130
"java-personalization": {
161131
"output": "#{cwd}/clients/algoliasearch-client-java-2",
162-
"groupId": "com.algolia",
163-
"apiPackage": "com.algolia.api",
164-
"invokerPackage": "com.algolia",
165132
"modelPackage": "com.algolia.model.personalization",
166-
"library": "okhttp-gson",
167-
"gitRepoId": "algoliasearch-client-java-2",
168133
"additionalProperties": {
169134
"packageName": "algoliasearch-client-java",
170135
"hasRegionalHost": true
171136
}
172137
},
173138
"java-analytics": {
174139
"output": "#{cwd}/clients/algoliasearch-client-java-2",
175-
"groupId": "com.algolia",
176-
"apiPackage": "com.algolia.api",
177-
"invokerPackage": "com.algolia",
178140
"modelPackage": "com.algolia.model.analytics",
179-
"library": "okhttp-gson",
180-
"gitRepoId": "algoliasearch-client-java-2",
181141
"additionalProperties": {
182142
"packageName": "algoliasearch-client-java",
183143
"hasRegionalHost": true
184144
}
185145
},
186146
"java-insights": {
187147
"output": "#{cwd}/clients/algoliasearch-client-java-2",
188-
"groupId": "com.algolia",
189-
"apiPackage": "com.algolia.api",
190-
"invokerPackage": "com.algolia",
191148
"modelPackage": "com.algolia.model.insights",
192-
"library": "okhttp-gson",
193-
"gitRepoId": "algoliasearch-client-java-2",
194149
"additionalProperties": {
195150
"packageName": "algoliasearch-client-java",
196151
"hasRegionalHost": true
197152
}
198153
},
199154
"java-abtesting": {
200155
"output": "#{cwd}/clients/algoliasearch-client-java-2",
201-
"groupId": "com.algolia",
202-
"apiPackage": "com.algolia.api",
203-
"invokerPackage": "com.algolia",
204156
"modelPackage": "com.algolia.model.abtesting",
205-
"library": "okhttp-gson",
206-
"gitRepoId": "algoliasearch-client-java-2",
207157
"additionalProperties": {
208158
"packageName": "algoliasearch-client-java",
209159
"hasRegionalHost": true
210160
}
211161
},
212162
"java-query-suggestions": {
213163
"output": "#{cwd}/clients/algoliasearch-client-java-2",
214-
"groupId": "com.algolia",
215-
"apiPackage": "com.algolia.api",
216-
"invokerPackage": "com.algolia",
217164
"modelPackage": "com.algolia.model.querySuggestions",
218-
"library": "okhttp-gson",
219-
"gitRepoId": "algoliasearch-client-java-2",
220165
"additionalProperties": {
221166
"packageName": "algoliasearch-client-java",
222167
"hasRegionalHost": true
223168
}
224169
},
225170
"java-predict": {
226171
"output": "#{cwd}/clients/algoliasearch-client-java-2",
227-
"groupId": "com.algolia",
228-
"apiPackage": "com.algolia.api",
229-
"invokerPackage": "com.algolia",
230172
"modelPackage": "com.algolia.model.predict",
231-
"library": "okhttp-gson",
232-
"gitRepoId": "algoliasearch-client-java-2",
233173
"additionalProperties": {
234174
"packageName": "algoliasearch-client-java"
235175
}
236176
},
237177
"php-search": {
238178
"output": "#{cwd}/clients/algoliasearch-client-php",
239-
"gitRepoId": "algoliasearch-client-php",
240-
"invokerPackage": "Algolia\\AlgoliaSearch",
241179
"modelPackage": "Model\\Search",
242180
"additionalProperties": {
243181
"packageName": "algoliasearch-client-php"
244182
}
245183
},
246184
"php-recommend": {
247185
"output": "#{cwd}/clients/algoliasearch-client-php",
248-
"gitRepoId": "algoliasearch-client-php",
249-
"invokerPackage": "Algolia\\AlgoliaSearch",
250186
"modelPackage": "Model\\Recommend",
251187
"additionalProperties": {
252188
"packageName": "algoliasearch-client-php"
253189
}
254190
},
255191
"php-personalization": {
256192
"output": "#{cwd}/clients/algoliasearch-client-php",
257-
"gitRepoId": "algoliasearch-client-php",
258-
"invokerPackage": "Algolia\\AlgoliaSearch",
259193
"modelPackage": "Model\\Personalization",
260194
"additionalProperties": {
261195
"packageName": "algoliasearch-client-php",
@@ -264,8 +198,6 @@
264198
},
265199
"php-analytics": {
266200
"output": "#{cwd}/clients/algoliasearch-client-php",
267-
"gitRepoId": "algoliasearch-client-php",
268-
"invokerPackage": "Algolia\\AlgoliaSearch",
269201
"modelPackage": "Model\\Analytics",
270202
"additionalProperties": {
271203
"packageName": "algoliasearch-client-php",
@@ -274,8 +206,6 @@
274206
},
275207
"php-insights": {
276208
"output": "#{cwd}/clients/algoliasearch-client-php",
277-
"gitRepoId": "algoliasearch-client-php",
278-
"invokerPackage": "Algolia\\AlgoliaSearch",
279209
"modelPackage": "Model\\Insights",
280210
"additionalProperties": {
281211
"packageName": "algoliasearch-client-php",
@@ -284,24 +214,14 @@
284214
},
285215
"php-abtesting": {
286216
"output": "#{cwd}/clients/algoliasearch-client-php",
287-
"gitRepoId": "algoliasearch-client-php",
288-
"invokerPackage": "Algolia\\AlgoliaSearch",
289217
"modelPackage": "Model\\Abtesting",
290218
"additionalProperties": {
291219
"packageName": "algoliasearch-client-php",
292220
"hasRegionalHost": true
293221
}
294222
},
295223
"php-query-suggestions": {
296-
"config": "#{cwd}/openapitools.json",
297-
"gitHost": "algolia",
298-
"gitUserId": "algolia",
299-
"glob": "specs/bundled/query-suggestions.yml",
300-
"templateDir": "#{cwd}/templates/php/",
301-
"generatorName": "algolia-php",
302224
"output": "#{cwd}/clients/algoliasearch-client-php",
303-
"gitRepoId": "algoliasearch-client-php",
304-
"invokerPackage": "Algolia\\AlgoliaSearch",
305225
"modelPackage": "Model\\QuerySuggestions",
306226
"additionalProperties": {
307227
"packageName": "algoliasearch-client-php"

generators/src/main/java/com/algolia/codegen/AlgoliaJavaGenerator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,11 @@ public String getHelp() {
111111
public void processOpts() {
112112
// generator specific options
113113
setDateLibrary("java8");
114+
setLibrary("okhttp-gson");
114115
setSourceFolder("algoliasearch-core/src/main/java");
115-
setInvokerPackage("com.algolia");
116+
setGroupId("com.algolia");
117+
additionalProperties.put("invokerPackage", "com.algolia");
118+
setApiPackage("com.algolia.api");
116119
setApiNameSuffix(Utils.API_SUFFIX);
117120

118121
super.processOpts();

generators/src/main/java/com/algolia/codegen/AlgoliaJavascriptGenerator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public void processOpts() {
2626
// generator specific options
2727
setSupportsES6(true);
2828
setModelPropertyNaming("original");
29-
29+
setApiPackage("src");
3030
// clear all supported files to avoid unwanted ones
3131
supportingFiles.clear();
3232
// model
@@ -60,6 +60,7 @@ private void setDefaultGeneratorOptions() {
6060
additionalProperties.put("apiName", apiName);
6161
additionalProperties.put("capitalizedApiName", Utils.capitalize(apiName));
6262
additionalProperties.put("userAgent", Utils.capitalize(CLIENT));
63+
additionalProperties.put("gitRepoId", "algoliasearch-client-javascript");
6364
}
6465

6566
/** Provides an opportunity to inspect and modify operation data before the code is generated. */

generators/src/main/java/com/algolia/codegen/AlgoliaPhpGenerator.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ public void processOpts() {
7272
// generator specific options
7373
setApiNameSuffix(Utils.API_SUFFIX);
7474
setParameterNamingConvention("camelCase");
75+
additionalProperties.put("invokerPackage", "Algolia\\AlgoliaSearch");
7576

7677
super.processOpts();
7778

@@ -88,4 +89,8 @@ public void processOpts() {
8889
)
8990
);
9091
}
92+
93+
public String getComposerPackageName() {
94+
return "algolia/algoliasearch-client-php";
95+
}
9196
}

scripts/common.ts

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -86,36 +86,6 @@ export function splitGeneratorKey(
8686
return { language, client, key: generatorKey };
8787
}
8888

89-
type GitHubUrl = (
90-
lang: string,
91-
options?: {
92-
token?: string;
93-
}
94-
) => string;
95-
96-
export const getGitHubUrl: GitHubUrl = (
97-
lang: string,
98-
{ token } = {}
99-
): string => {
100-
const entry = Object.entries(openapiConfig['generator-cli'].generators).find(
101-
(_entry) => _entry[0].startsWith(`${lang}-`)
102-
);
103-
104-
if (!entry) {
105-
throw new Error(`\`${lang}\` is not found from \`openapitools.json\`.`);
106-
}
107-
const { gitRepoId } = entry[1];
108-
109-
// GitHub Action provides a default token for authentication
110-
// https://docs.github.com/en/actions/security-guides/automatic-token-authentication
111-
// But it has access to only the self repository.
112-
// If we want to do something like pushing commits to other repositories,
113-
// we need to specify a token with more access.
114-
return token
115-
? `https://${token}:${token}@github.com/algolia/${gitRepoId}`
116-
: `https://github.com/algolia/${gitRepoId}`;
117-
};
118-
11989
export function createGeneratorKey({
12090
language,
12191
client,

scripts/config.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,19 @@ export function getPackageVersionDefault(language: Language): string {
3535
}
3636
return clientsConfig[language].packageVersion;
3737
}
38+
39+
export function getGitHubUrl(
40+
language: Language,
41+
options?: { token: string }
42+
): string {
43+
const { gitRepoId } = clientsConfig[language];
44+
45+
// GitHub Action provides a default token for authentication
46+
// https://docs.github.com/en/actions/security-guides/automatic-token-authentication
47+
// But it has access to only the self repository.
48+
// If we want to do something like pushing commits to other repositories,
49+
// we need to specify a token with more access.
50+
return options?.token
51+
? `https://${options.token}:${options.token}@github.com/algolia/${gitRepoId}`
52+
: `https://github.com/algolia/${gitRepoId}`;
53+
}

0 commit comments

Comments
 (0)