Skip to content

Commit 5e87ccb

Browse files
committed
feat(abg)!: replace data class perks by code generation in bindings
1 parent 8895541 commit 5e87ccb

15 files changed

+1324
-298
lines changed

action-binding-generator/src/main/kotlin/io/github/typesafegithub/workflows/actionbindinggenerator/generation/Generation.kt

Lines changed: 299 additions & 50 deletions
Large diffs are not rendered by default.

action-binding-generator/src/test/kotlin/io/github/typesafegithub/workflows/actionbindinggenerator/bindingsfromunittests/ActionWithAllTypesOfInputsBindingV2.kt

Lines changed: 209 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
// This file was generated using action-binding-generator. Don't change it by hand, otherwise your
22
// changes will be overwritten with the next binding code regeneration.
33
// See https://github.com/typesafegithub/github-workflows-kt for more info.
4-
@file:Suppress(
5-
"DataClassPrivateConstructor",
6-
"UNUSED_PARAMETER",
7-
)
4+
@file:Suppress("UNUSED_PARAMETER")
85

96
package io.github.typesafegithub.workflows.actions.johnsmith
107

118
import io.github.typesafegithub.workflows.domain.actions.Action
129
import io.github.typesafegithub.workflows.domain.actions.RegularAction
1310
import java.util.LinkedHashMap
11+
import java.util.Objects
12+
import kotlin.Any
1413
import kotlin.Boolean
15-
import kotlin.ExposedCopyVisibility
1614
import kotlin.Float
1715
import kotlin.Int
1816
import kotlin.String
@@ -59,8 +57,8 @@ import kotlin.collections.toTypedArray
5957
* @param _customVersion Allows overriding action's version, for example to use a specific minor
6058
* version, or a newer version that the binding doesn't yet know about
6159
*/
62-
@ExposedCopyVisibility
63-
public data class ActionWithAllTypesOfInputsBindingV2 private constructor(
60+
public class ActionWithAllTypesOfInputsBindingV2(
61+
vararg pleaseUseNamedArguments: Unit,
6462
/**
6563
* <required> Short description
6664
*/
@@ -247,44 +245,6 @@ public data class ActionWithAllTypesOfInputsBindingV2 private constructor(
247245
}
248246
}
249247

250-
public constructor(
251-
vararg pleaseUseNamedArguments: Unit,
252-
fooBar: String? = null,
253-
fooBar_Untyped: String? = null,
254-
bazGoo: Boolean? = null,
255-
bazGoo_Untyped: String? = null,
256-
binKin: Boolean? = null,
257-
binKin_Untyped: String? = null,
258-
intPint: Int? = null,
259-
intPint_Untyped: String? = null,
260-
floPint: Float? = null,
261-
floPint_Untyped: String? = null,
262-
finBin: ActionWithAllTypesOfInputsBindingV2.Bin? = null,
263-
finBin_Untyped: String? = null,
264-
gooZen: ActionWithAllTypesOfInputsBindingV2.Zen? = null,
265-
gooZen_Untyped: String? = null,
266-
bahEnum: ActionWithAllTypesOfInputsBindingV2.BahEnum? = null,
267-
bahEnum_Untyped: String? = null,
268-
listStrings: List<String>? = null,
269-
listStrings_Untyped: String? = null,
270-
listInts: List<Int>? = null,
271-
listInts_Untyped: String? = null,
272-
listEnums: List<ActionWithAllTypesOfInputsBindingV2.MyEnum>? = null,
273-
listEnums_Untyped: String? = null,
274-
listIntSpecial: List<ActionWithAllTypesOfInputsBindingV2.MyInt>? = null,
275-
listIntSpecial_Untyped: String? = null,
276-
_customInputs: Map<String, String> = mapOf(),
277-
_customVersion: String? = null,
278-
) : this(fooBar = fooBar, fooBar_Untyped = fooBar_Untyped, bazGoo = bazGoo, bazGoo_Untyped =
279-
bazGoo_Untyped, binKin = binKin, binKin_Untyped = binKin_Untyped, intPint = intPint,
280-
intPint_Untyped = intPint_Untyped, floPint = floPint, floPint_Untyped = floPint_Untyped,
281-
finBin = finBin, finBin_Untyped = finBin_Untyped, gooZen = gooZen, gooZen_Untyped =
282-
gooZen_Untyped, bahEnum = bahEnum, bahEnum_Untyped = bahEnum_Untyped, listStrings =
283-
listStrings, listStrings_Untyped = listStrings_Untyped, listInts = listInts,
284-
listInts_Untyped = listInts_Untyped, listEnums = listEnums, listEnums_Untyped =
285-
listEnums_Untyped, listIntSpecial = listIntSpecial, listIntSpecial_Untyped =
286-
listIntSpecial_Untyped, _customInputs = _customInputs, _customVersion = _customVersion)
287-
288248
@Suppress("SpreadOperator")
289249
override fun toYamlArguments(): LinkedHashMap<String, String> = linkedMapOf(
290250
*listOfNotNull(
@@ -317,6 +277,210 @@ public data class ActionWithAllTypesOfInputsBindingV2 private constructor(
317277
).toTypedArray()
318278
)
319279

280+
override fun equals(other: Any?): Boolean {
281+
if (this === other) return true
282+
if (javaClass != other?.javaClass) return false
283+
other as ActionWithAllTypesOfInputsBindingV2
284+
return fooBar == other.fooBar &&
285+
fooBar_Untyped == other.fooBar_Untyped &&
286+
bazGoo == other.bazGoo &&
287+
bazGoo_Untyped == other.bazGoo_Untyped &&
288+
binKin == other.binKin &&
289+
binKin_Untyped == other.binKin_Untyped &&
290+
intPint == other.intPint &&
291+
intPint_Untyped == other.intPint_Untyped &&
292+
floPint == other.floPint &&
293+
floPint_Untyped == other.floPint_Untyped &&
294+
finBin == other.finBin &&
295+
finBin_Untyped == other.finBin_Untyped &&
296+
gooZen == other.gooZen &&
297+
gooZen_Untyped == other.gooZen_Untyped &&
298+
bahEnum == other.bahEnum &&
299+
bahEnum_Untyped == other.bahEnum_Untyped &&
300+
listStrings == other.listStrings &&
301+
listStrings_Untyped == other.listStrings_Untyped &&
302+
listInts == other.listInts &&
303+
listInts_Untyped == other.listInts_Untyped &&
304+
listEnums == other.listEnums &&
305+
listEnums_Untyped == other.listEnums_Untyped &&
306+
listIntSpecial == other.listIntSpecial &&
307+
listIntSpecial_Untyped == other.listIntSpecial_Untyped &&
308+
_customInputs == other._customInputs &&
309+
_customVersion == other._customVersion
310+
}
311+
312+
override fun hashCode(): Int = Objects.hash(
313+
fooBar,
314+
fooBar_Untyped,
315+
bazGoo,
316+
bazGoo_Untyped,
317+
binKin,
318+
binKin_Untyped,
319+
intPint,
320+
intPint_Untyped,
321+
floPint,
322+
floPint_Untyped,
323+
finBin,
324+
finBin_Untyped,
325+
gooZen,
326+
gooZen_Untyped,
327+
bahEnum,
328+
bahEnum_Untyped,
329+
listStrings,
330+
listStrings_Untyped,
331+
listInts,
332+
listInts_Untyped,
333+
listEnums,
334+
listEnums_Untyped,
335+
listIntSpecial,
336+
listIntSpecial_Untyped,
337+
_customInputs,
338+
_customVersion,
339+
)
340+
341+
override fun toString(): String = buildString {
342+
append("ActionWithAllTypesOfInputsBindingV2(")
343+
append("""fooBar=$fooBar""")
344+
append(", ")
345+
append("""fooBar_Untyped=$fooBar_Untyped""")
346+
append(", ")
347+
append("""bazGoo=$bazGoo""")
348+
append(", ")
349+
append("""bazGoo_Untyped=$bazGoo_Untyped""")
350+
append(", ")
351+
append("""binKin=$binKin""")
352+
append(", ")
353+
append("""binKin_Untyped=$binKin_Untyped""")
354+
append(", ")
355+
append("""intPint=$intPint""")
356+
append(", ")
357+
append("""intPint_Untyped=$intPint_Untyped""")
358+
append(", ")
359+
append("""floPint=$floPint""")
360+
append(", ")
361+
append("""floPint_Untyped=$floPint_Untyped""")
362+
append(", ")
363+
append("""finBin=$finBin""")
364+
append(", ")
365+
append("""finBin_Untyped=$finBin_Untyped""")
366+
append(", ")
367+
append("""gooZen=$gooZen""")
368+
append(", ")
369+
append("""gooZen_Untyped=$gooZen_Untyped""")
370+
append(", ")
371+
append("""bahEnum=$bahEnum""")
372+
append(", ")
373+
append("""bahEnum_Untyped=$bahEnum_Untyped""")
374+
append(", ")
375+
append("""listStrings=$listStrings""")
376+
append(", ")
377+
append("""listStrings_Untyped=$listStrings_Untyped""")
378+
append(", ")
379+
append("""listInts=$listInts""")
380+
append(", ")
381+
append("""listInts_Untyped=$listInts_Untyped""")
382+
append(", ")
383+
append("""listEnums=$listEnums""")
384+
append(", ")
385+
append("""listEnums_Untyped=$listEnums_Untyped""")
386+
append(", ")
387+
append("""listIntSpecial=$listIntSpecial""")
388+
append(", ")
389+
append("""listIntSpecial_Untyped=$listIntSpecial_Untyped""")
390+
append(", ")
391+
append("""_customInputs=$_customInputs""")
392+
append(", ")
393+
append("""_customVersion=$_customVersion""")
394+
append(")")
395+
}
396+
397+
/**
398+
* @param fooBar &lt;required&gt; Short description
399+
* @param fooBar_Untyped &lt;required&gt; Short description
400+
* @param bazGoo &lt;required&gt; First boolean input!
401+
* @param bazGoo_Untyped &lt;required&gt; First boolean input!
402+
* @param binKin Boolean and nullable
403+
* @param binKin_Untyped Boolean and nullable
404+
* @param intPint &lt;required&gt; Integer
405+
* @param intPint_Untyped &lt;required&gt; Integer
406+
* @param floPint &lt;required&gt; Float
407+
* @param floPint_Untyped &lt;required&gt; Float
408+
* @param finBin &lt;required&gt; Enumeration
409+
* @param finBin_Untyped &lt;required&gt; Enumeration
410+
* @param gooZen &lt;required&gt; Integer with special value
411+
* @param gooZen_Untyped &lt;required&gt; Integer with special value
412+
* @param bahEnum &lt;required&gt; Enum with custom naming
413+
* @param bahEnum_Untyped &lt;required&gt; Enum with custom naming
414+
* @param listStrings List of strings
415+
* @param listStrings_Untyped List of strings
416+
* @param listInts List of integers
417+
* @param listInts_Untyped List of integers
418+
* @param listEnums List of enums
419+
* @param listEnums_Untyped List of enums
420+
* @param listIntSpecial List of integer with special values
421+
* @param listIntSpecial_Untyped List of integer with special values
422+
* @param _customInputs Type-unsafe map where you can put any inputs that are not yet supported
423+
* by the binding
424+
* @param _customVersion Allows overriding action's version, for example to use a specific minor
425+
* version, or a newer version that the binding doesn't yet know about
426+
*/
427+
public fun copy(
428+
vararg pleaseUseNamedArguments: Unit,
429+
fooBar: String? = this.fooBar,
430+
fooBar_Untyped: String? = this.fooBar_Untyped,
431+
bazGoo: Boolean? = this.bazGoo,
432+
bazGoo_Untyped: String? = this.bazGoo_Untyped,
433+
binKin: Boolean? = this.binKin,
434+
binKin_Untyped: String? = this.binKin_Untyped,
435+
intPint: Int? = this.intPint,
436+
intPint_Untyped: String? = this.intPint_Untyped,
437+
floPint: Float? = this.floPint,
438+
floPint_Untyped: String? = this.floPint_Untyped,
439+
finBin: ActionWithAllTypesOfInputsBindingV2.Bin? = this.finBin,
440+
finBin_Untyped: String? = this.finBin_Untyped,
441+
gooZen: ActionWithAllTypesOfInputsBindingV2.Zen? = this.gooZen,
442+
gooZen_Untyped: String? = this.gooZen_Untyped,
443+
bahEnum: ActionWithAllTypesOfInputsBindingV2.BahEnum? = this.bahEnum,
444+
bahEnum_Untyped: String? = this.bahEnum_Untyped,
445+
listStrings: List<String>? = this.listStrings,
446+
listStrings_Untyped: String? = this.listStrings_Untyped,
447+
listInts: List<Int>? = this.listInts,
448+
listInts_Untyped: String? = this.listInts_Untyped,
449+
listEnums: List<ActionWithAllTypesOfInputsBindingV2.MyEnum>? = this.listEnums,
450+
listEnums_Untyped: String? = this.listEnums_Untyped,
451+
listIntSpecial: List<ActionWithAllTypesOfInputsBindingV2.MyInt>? = this.listIntSpecial,
452+
listIntSpecial_Untyped: String? = this.listIntSpecial_Untyped,
453+
_customInputs: Map<String, String> = this._customInputs,
454+
_customVersion: String? = this._customVersion,
455+
): ActionWithAllTypesOfInputsBindingV2 = ActionWithAllTypesOfInputsBindingV2(
456+
fooBar = fooBar,
457+
fooBar_Untyped = fooBar_Untyped,
458+
bazGoo = bazGoo,
459+
bazGoo_Untyped = bazGoo_Untyped,
460+
binKin = binKin,
461+
binKin_Untyped = binKin_Untyped,
462+
intPint = intPint,
463+
intPint_Untyped = intPint_Untyped,
464+
floPint = floPint,
465+
floPint_Untyped = floPint_Untyped,
466+
finBin = finBin,
467+
finBin_Untyped = finBin_Untyped,
468+
gooZen = gooZen,
469+
gooZen_Untyped = gooZen_Untyped,
470+
bahEnum = bahEnum,
471+
bahEnum_Untyped = bahEnum_Untyped,
472+
listStrings = listStrings,
473+
listStrings_Untyped = listStrings_Untyped,
474+
listInts = listInts,
475+
listInts_Untyped = listInts_Untyped,
476+
listEnums = listEnums,
477+
listEnums_Untyped = listEnums_Untyped,
478+
listIntSpecial = listIntSpecial,
479+
listIntSpecial_Untyped = listIntSpecial_Untyped,
480+
_customInputs = _customInputs,
481+
_customVersion = _customVersion,
482+
)
483+
320484
override fun buildOutputObject(stepId: String): Outputs = Outputs(stepId)
321485

322486
public sealed class Bin(

0 commit comments

Comments
 (0)