From 3c864822e02715554f1c9467866175342b34d583 Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 22:29:49 +0300 Subject: [PATCH 01/15] build(site): run the site build on the JDK the project pins MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Everything scripts/site.sh runs — mdoc, Laika through scala-cli, and scaladoc — is launched through Coursier rather than through Mill, so each one inherited whatever `java` happened to be first on PATH. The classpath they are handed is Java 25 bytecode, because build.mill sets `-java-output-version:25`. On a machine whose ambient java is older, the two met two steps into the build as: UnsupportedClassVersionError: com/worxbend/codeberg4s/auth/Auth has been compiled by a more recent version of the Java Runtime (class file version 69.0) … which names neither this script, nor the version pin, nor what to do next. CI never hit it: the toolchain action installs JDK 25 globally, so the ambient java there is already correct. The failure was reserved for a contributor on their first local run — the reader least equipped to decode it. The script now reads .mill-jvm-version, which is already the one place this project records which JDK it builds with, and either confirms the ambient java satisfies that pin or resolves exactly that JDK through Coursier. Coursier's JVM index is the same one Mill uses to honour the pin, so wherever ./mill has run the JDK is already unpacked in the cache and the lookup takes milliseconds. The version number is derived from the pin file and never written literally, so there is still a single source of truth. When the ambient java already satisfies the pin nothing is exported, which is the path CI takes — it keeps the JDK it installed and downloads no second copy. Resolving is announced with a `note` rather than an `announce`, because `announce` numbers the pipeline steps and those numbers are referenced by name in site/README.md and in --help. --- scripts/site.sh | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/scripts/site.sh b/scripts/site.sh index 149f8cd..dcc607f 100755 --- a/scripts/site.sh +++ b/scripts/site.sh @@ -117,6 +117,65 @@ need cs need jq need java +# -------------------------------------------------------------------------- +# The JDK. +# +# Everything below runs OUTSIDE Mill — mdoc, Laika via scala-cli, and scaladoc +# are all launched through Coursier — so each one inherits whatever `java` is +# first on PATH. The classpath they are handed, meanwhile, is Java 25 bytecode +# (`-java-output-version:25` in build.mill). On a machine whose ambient java is +# older, that mismatch surfaces two steps later as +# +# UnsupportedClassVersionError: … class file version 69.0 … up to 65.0 +# +# which names neither this script, nor the pin, nor what to do about it. CI +# never sees it, because the toolchain action installs the pinned JDK globally +# — so the failure only ever hits a contributor, on their first run. +# +# `.mill-jvm-version` is the one place this project says which JDK it builds +# with. Read it, and either confirm the ambient java already satisfies it or +# resolve exactly that JDK through Coursier — the same JVM index Mill itself +# uses for the pin, so on any checkout where `./mill` has run, the JDK is +# already unpacked in the Coursier cache and the lookup costs milliseconds. +# +# The version is never written literally here: it is derived from the pin file, +# so the pin keeps a single source of truth. When the ambient java already +# satisfies the pin nothing is exported, which is the CI path — CI keeps the +# JDK `actions/setup-java` installed and downloads no second copy. +# +# Note this block sits above the `./mill` call in the next step, so an exported +# JAVA_HOME reaches Mill too. That is harmless — Mill honours +# `.mill-jvm-version` itself and lands on the same JDK — but it is deliberate +# rather than accidental, and worth knowing before moving this block. +readonly JVM_PIN_FILE="$ROOT/.mill-jvm-version" +[[ -f "$JVM_PIN_FILE" ]] || die "$JVM_PIN_FILE is missing, and this script takes its JDK from that file" + +jvm_pin=$(tr -d '[:space:]' < "$JVM_PIN_FILE") +# `temurin:25` -> `25`, and `temurin:25.0.2` -> `25`: bash arithmetic below +# compares whole numbers, and a patch component would be a syntax error. +jvm_want=${jvm_pin##*:} +jvm_want=${jvm_want%%.*} + +# Captured, not piped. `set -o pipefail` is on, so `java -version | head` would +# abort the whole script if `head` exited first and `java` took SIGPIPE — a +# script-fatal edge in the guard meant to make the script friendlier. `|| true` +# covers a `java` that exists but exits non-zero; `sed -n …p` yields empty +# rather than echoing the line back when the first line is not a version banner. +jvm_raw=$(java -version 2>&1 || true) +jvm_have=$(printf '%s\n' "$jvm_raw" | sed -nE '1s/.*"([0-9]+).*/\1/p') + +if [[ "$jvm_want" =~ ^[0-9]+$ ]] && [[ "$jvm_have" =~ ^[0-9]+$ ]] && (( jvm_have >= jvm_want )); then + : # ambient java satisfies the pin; leave PATH alone +else + jvm_home=$(cs java-home --jvm "$jvm_pin") || die \ + "could not resolve the JDK pinned in .mill-jvm-version ($jvm_pin), and the ambient java is ${jvm_have:-none}. The library compiles to Java $jvm_want bytecode, so mdoc and scaladoc cannot load it on anything older. Put a JDK $jvm_want on PATH, or make 'cs java-home --jvm $jvm_pin' work — it needs network access on its first run." + export JAVA_HOME="$jvm_home" + export PATH="$JAVA_HOME/bin:$PATH" + # Deliberately not an `announce`: that helper numbers the pipeline steps, and + # the numbering is referenced by name in site/README.md and in --help. + note "ambient java is ${jvm_have:-none}; using the pinned $jvm_pin from $JAVA_HOME" +fi + if $clean; then rm -rf "$SITE_OUT" fi From 70dd55f1d3c491d02f7971811a52c9afef81ae20 Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 22:31:07 +0300 Subject: [PATCH 02/15] docs: describe the compile-time literal constructors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The identifier types gained compile-time constructors, so a literal now goes straight in: `Owner("forgejo")` is checked while the code compiles and *is* the `Owner`, with no `Either` to unwrap. `Owner.from` is unchanged and is still the way in for a value known only at run time. Seven places in the documentation still said the opposite — that `Owner("forgejo")` "does not compile" because the types are opaque and have no public apply. That was true when it was written and is now false. mdoc compiles every tagged Scala snippet on the site against the real library, which is what caught the stale *imports* in the previous commit, but prose and Scaladoc are not compiled, so these rotted silently. One of them was actively harmful rather than merely stale: the troubleshooting table listed the compile error "Owner does not take parameters" and told the reader to replace `Owner("x")` with `Owner.from("x")` — instructions for repairing code that now works. It is replaced by the two errors the literal constructor can actually produce, both quoted verbatim from SegmentLiteral: "not a valid owner: …" for an invalid literal, and "has to be a string literal; use `.from`" for a run-time value handed to the literal form. The rule is stated the same way everywhere: a literal gets the constructor and is the value, a run-time value gets `from` and an `Either`, an invalid literal is a compile error, and the literal form refuses surrounding whitespace where `from` trims it. The two example programs keep using `from`, with the Scaladoc now saying why that is the right choice there — their values come from the environment. --- .../codeberg4s/examples/CreatingAnIssue.scala | 6 ++++-- .../codeberg4s/examples/HelloCodeberg.scala | 5 +++-- site/src/getting-started.md | 11 ++++++++--- site/src/guides/01-getting-started.md | 19 ++++++++++++------- site/src/guides/10-troubleshooting.md | 3 ++- site/src/landing-page.md | 8 +++++--- site/src/reference/glossary.md | 15 ++++++++++++--- 7 files changed, 46 insertions(+), 21 deletions(-) diff --git a/modules/examples/src/com/worxbend/codeberg4s/examples/CreatingAnIssue.scala b/modules/examples/src/com/worxbend/codeberg4s/examples/CreatingAnIssue.scala index f6da880..7f3661d 100644 --- a/modules/examples/src/com/worxbend/codeberg4s/examples/CreatingAnIssue.scala +++ b/modules/examples/src/com/worxbend/codeberg4s/examples/CreatingAnIssue.scala @@ -116,8 +116,10 @@ object CreatingAnIssue: /** Turns three strings into validated domain values and a command. * * Every smart constructor here returns `Either[ValidationError, _]`, so they compose in one `for`-comprehension and - * the first failure short-circuits with a stable field name — `"apiToken"`, `"owner"`, `"repoName"`, `"title"`. Note - * that `Owner("…")` does not compile: the identifier types are opaque and `from` is the only way in. + * the first failure short-circuits with a stable field name — `"apiToken"`, `"owner"`, `"repoName"`, `"title"`. + * `from` is the right constructor here precisely because these three values come from the environment: the + * compile-time form `Owner("forgejo")` only accepts a literal, and handing it a run-time `String` is itself a + * compile error. * * The optional base URI is folded in afterwards rather than in the comprehension, because "absent" and "invalid" are * different answers and only the second is an error. diff --git a/modules/examples/src/com/worxbend/codeberg4s/examples/HelloCodeberg.scala b/modules/examples/src/com/worxbend/codeberg4s/examples/HelloCodeberg.scala index 7771ac1..3eed76b 100644 --- a/modules/examples/src/com/worxbend/codeberg4s/examples/HelloCodeberg.scala +++ b/modules/examples/src/com/worxbend/codeberg4s/examples/HelloCodeberg.scala @@ -50,8 +50,9 @@ object HelloCodeberg: /** The repository this program reads: Forgejo's own, on Codeberg. * * `Owner.from` and `RepoName.from` return `Either` rather than the value, because a string containing `/` would - * forge a request path. `Owner("forgejo")` does not compile — the types are opaque and have no public apply. The two - * are combined in a `for`-comprehension, which is how validated values are usually assembled. + * forge a request path. Both names here are literals, so `Owner("forgejo")` would also do and would skip the + * `Either` entirely; `from` is shown because it is the shape a value read from a config file or an argument needs. + * The two are combined in a `for`-comprehension, which is how validated values are usually assembled. */ private val target: Either[ValidationError, (Owner, RepoName)] = for diff --git a/site/src/getting-started.md b/site/src/getting-started.md index 7988b9a..42cd1a3 100644 --- a/site/src/getting-started.md +++ b/site/src/getting-started.md @@ -55,9 +55,14 @@ close the backend, because you own it. ## Your first request -Identifiers are opaque types with `Either`-returning smart constructors. -`Owner("forgejo")` does not compile. This is not ceremony: a string containing -a `/` would otherwise forge a request path. +Identifiers are opaque types that validate what goes into them. This is not +ceremony: a string containing a `/` would otherwise forge a request path. + +When you write the value down yourself, `Owner("forgejo")` is checked while the +code compiles and hands you the `Owner` directly — `Owner("forgejo/forgejo")` is +a compile error. When the value is only known at run time, `Owner.from(raw)` +returns `Either[ValidationError, Owner]`, which is what the snippet below +shows. ```scala mdoc:compile-only import com.worxbend.codeberg4s.{CodebergClient, Owner, RepoName, ValidationError} diff --git a/site/src/guides/01-getting-started.md b/site/src/guides/01-getting-started.md index c0e8907..90e3090 100644 --- a/site/src/guides/01-getting-started.md +++ b/site/src/guides/01-getting-started.md @@ -17,9 +17,10 @@ Two things shape everything else in these guides: - **Every call returns a `scala.concurrent.Future`.** No effect system is required of you, and none is added to your classpath. ([ADR-0005](../project/adr/0005-future-public-api.md) explains why.) -- **Identifiers are validated types, not `String`s.** `Owner.from("forgejo")` - returns an `Either`, and there is no way to build an `Owner` that would forge - a request path. +- **Identifiers are validated types, not `String`s.** A literal is checked at + compile time — `Owner("forgejo")` — and a run-time value goes through + `Owner.from`, which returns an `Either`. Neither can build an `Owner` that + would forge a request path. ## Adding the dependency @@ -177,10 +178,14 @@ val target: Either[ValidationError, (Owner, RepoName)] = yield (owner, name) ``` -`Owner.from` and `RepoName.from` return `Either[ValidationError, …]`. There is no -`Owner("forgejo")` constructor — that line does not compile — because a value -that reached a request path unchecked could contain a `/` and address a -different endpoint than the one you meant. The `for` comprehension above is +`Owner.from` and `RepoName.from` return `Either[ValidationError, …]`, because a +value that reached a request path unchecked could contain a `/` and address a +different endpoint than the one you meant. + +The two names above are literals, so they do not need the `Either` at all: +`Owner("forgejo")` is checked while the code compiles and is the `Owner`. The +comprehension is shown with `from` because that is the shape you need for a +value read from a config file or an argument. The `for` comprehension above is Scala's way of chaining several such checks: if any one of them fails, the whole expression is the first `Left` and nothing further runs. diff --git a/site/src/guides/10-troubleshooting.md b/site/src/guides/10-troubleshooting.md index 94ffb10..a752ff5 100644 --- a/site/src/guides/10-troubleshooting.md +++ b/site/src/guides/10-troubleshooting.md @@ -16,7 +16,8 @@ then read the section it points at. | A count is zero and should not be | `Page.totalCount` was `None` and got treated as zero | [Pagination](./04-pagination.md) | | `RejectedExecutionException` from the scheduler | the client was used after `close()` | [Using a closed client](#using-a-closed-client) | | Compile error: "could not find an implicit ExecutionContext" | no `given ExecutionContext` in scope | [Getting started](./01-getting-started.md) | -| Compile error: "Owner does not take parameters" | `Owner("x")` instead of `Owner.from("x")` | [Getting started](./01-getting-started.md) | +| Compile error: "not a valid owner: …" | the literal really is invalid — a `/`, a control character, `.` or `..`, or stray surrounding whitespace, which the literal check refuses rather than trims | [Getting started](./01-getting-started.md) | +| Compile error: "has to be a string literal; use `.from`" | `Owner(value)` on a run-time `String`; use `Owner.from(value)` and handle the `Either` | [Getting started](./01-getting-started.md) | ## First, print the failure diff --git a/site/src/landing-page.md b/site/src/landing-page.md index ce7d7b6..5bd5572 100644 --- a/site/src/landing-page.md +++ b/site/src/landing-page.md @@ -23,9 +23,11 @@ first with its failure channel materialised, so the two cannot drift apart. Pick one per call site, not per project. **Illegal requests are unrepresentable.** Owners, repository names, branches, -labels, tokens, base URIs and page sizes are opaque types whose only -constructors return `Either`. `Owner("forgejo")` does not compile; -`Owner.from("forgejo")` gives you an `Either[ValidationError, Owner]`. A string +labels, tokens, base URIs and page sizes are opaque types that validate what +goes into them. `Owner("forgejo")` is checked while the code compiles and *is* +the `Owner`; an invalid literal is a compile error pointing at the literal. +`Owner.from(raw)` is the way in for a value known only at run time, and gives +you an `Either[ValidationError, Owner]`. A string that would forge a request path is rejected before a client is involved, and a malformed token never reaches a request header. diff --git a/site/src/reference/glossary.md b/site/src/reference/glossary.md index 9ede777..624c3fc 100644 --- a/site/src/reference/glossary.md +++ b/site/src/reference/glossary.md @@ -12,9 +12,12 @@ The user *or* organisation that owns a repository — the first segment of `owner/name`. Answers "who does this repository belong to?", and the answer may be either kind of account. -`Owner.from("forgejo")` returns `Either[ValidationError, Owner]`. It rejects a -blank value, a `/`, and control characters, because an `Owner` is interpolated -into a request path. +`Owner("forgejo")` checks the literal while the code compiles and is the +`Owner`. `Owner.from("forgejo")` returns `Either[ValidationError, Owner]` and is +for a value known only at run time. Both reject a blank value, a `/`, control +characters and the traversal segments `.` and `..`, because an `Owner` is +interpolated into a request path; the literal form additionally refuses +surrounding whitespace instead of trimming it. ### `Username` @@ -265,6 +268,12 @@ a public constructor that trusts you. Here they are called `from` (`Owner.from`, `MergePullRequest.using`), and they return `Either[ValidationError, A]` when they can fail. +The identifiers that validate as URI path segments — `Owner`, `RepoName`, +`BranchName`, `TagName`, `Username`, `OrgName` and the rest — also take a string +literal directly: `Owner("forgejo")`. That is the same rule, checked by the +compiler instead of at run time, so there is no `Either` to unwrap and an +invalid literal fails the build. + ### ADT *Algebraic data type* — a type defined as a closed set of alternatives, each with From 86816ade3668cb070a1c3deda5e8b4e4f7cdc4be Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 22:32:12 +0300 Subject: [PATCH 03/15] docs: correct the CodebergError case count to six MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `CodebergError` has six cases. `WalkTruncated` — a walk over every page stopped at its page cap with pages still to come — is one of them, and it carries no `CallContext` because nothing went wrong on the wire. Five documents still said five and listed only the other five: the landing page heading and its family list, Getting Started, the errors guide, RELEASING.md's breaking-change checklist, and CONTRIBUTING.md's Scaladoc rule. README.md was already correct at six, which is how the discrepancy showed up. The errors guide was the worst of them. It said "There is no sixth, and the compiler will tell you if you forget one in a match" — a promise that is exactly backwards for a reader writing an exhaustive match, since the compiler will indeed tell them, about the case the guide told them did not exist. Its table gains the missing row. RELEASING.md matters for a different reason: it lists adding an `enum` case as a breaking change, so an undercount there understates what a future case costs. --- CONTRIBUTING.md | 2 +- RELEASING.md | 6 +++--- site/src/getting-started.md | 6 +++--- site/src/guides/03-errors.md | 7 ++++--- site/src/landing-page.md | 4 ++-- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3d7c853..808752f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -305,7 +305,7 @@ repeat is a no-op. **7. Scaladoc it, with the error contract.** Every public member. Say which `CodebergError` cases the operation can produce and what a `404` means for this -operation specifically — the ADT has only five cases and none of them is +operation specifically — the ADT has only six cases and none of them is `NotFound`, so "the repository does not exist" has to be spelled out as `Api(ctx, 404, body)`. diff --git a/RELEASING.md b/RELEASING.md index c432923..c6daee9 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -122,10 +122,10 @@ Two things this exemption does **not** cover: the whole cost is one filter line for that model. Those filters are lines to write, not releases to renumber, because no external caller can have compiled against the member being filtered. -- **Adding a case to a closed `enum`.** `CodebergError` has exactly five +- **Adding a case to a closed `enum`.** `CodebergError` has exactly six cases — `Transport`, `Api`, `DecodingFailed`, `Validation`, - `RetriesExhausted` — and every consumer that matches on it exhaustively - stops compiling when a sixth appears. There is deliberately no `NotFound` + `RetriesExhausted`, `WalkTruncated` — and every consumer that matches on it + exhaustively stops compiling when a seventh appears. There is deliberately no `NotFound` and no `RateLimited`; a `404` is `Api(ctx, 404, body)` and a `429` is `Api(ctx, 429, body)` or a `RetriesExhausted` wrapping one. Keeping it that way is a compatibility decision, not only a modelling one. diff --git a/site/src/getting-started.md b/site/src/getting-started.md index 42cd1a3..1989441 100644 --- a/site/src/getting-started.md +++ b/site/src/getting-started.md @@ -156,9 +156,9 @@ def attemptRead( client.repos.attempt.get(owner, name) ``` -`CodebergError` has exactly five cases — `Transport`, `Api`, `DecodingFailed`, -`Validation`, `RetriesExhausted`. **There is no `NotFound` and no -`RateLimited`.** A `404` is `Api(ctx, 404, body)`; a `429` is +`CodebergError` has exactly six cases — `Transport`, `Api`, `DecodingFailed`, +`Validation`, `RetriesExhausted`, `WalkTruncated`. **There is no `NotFound` and +no `RateLimited`.** A `404` is `Api(ctx, 404, body)`; a `429` is `Api(ctx, 429, body)`, or a `RetriesExhausted` wrapping one after the retry policy gives up. Matching on a case that does not exist is the most common mistake made against this library. diff --git a/site/src/guides/03-errors.md b/site/src/guides/03-errors.md index 0d56ee2..afd70da 100644 --- a/site/src/guides/03-errors.md +++ b/site/src/guides/03-errors.md @@ -6,9 +6,9 @@ each of the five failures means, which of the two error rails to use, and how a ## Everything that can go wrong, as one closed family -`com.worxbend.codeberg4s.CodebergError` is a Scala 3 `enum` with exactly five -cases. There is no sixth, and the compiler will tell you if you forget one in a -match. +`com.worxbend.codeberg4s.CodebergError` is a Scala 3 `enum` with exactly six +cases. There is no seventh, and the compiler will tell you if you forget one in +a match. | Case | What happened | What to do | | --- | --- | --- | @@ -17,6 +17,7 @@ match. | `DecodingFailed(ctx, snippet, path, cause)` | a 2xx payload did not match the model | retrying will not help; `path` and `snippet` are what a bug report needs | | `Validation(error)` | a smart constructor rejected an argument, before any request was built | fix the argument | | `RetriesExhausted(ctx, attempts, last)` | the retry engine gave up | react to `last`; it is preserved verbatim | +| `WalkTruncated(pagesVisited, resumeFrom)` | a walk over every page hit its page cap while the server was still offering another | walk again from `resumeFrom`, or narrow the query | Two things are deliberately absent, and getting this wrong is the single most common mistake when writing against this library: diff --git a/site/src/landing-page.md b/site/src/landing-page.md index 5bd5572..af6a632 100644 --- a/site/src/landing-page.md +++ b/site/src/landing-page.md @@ -71,10 +71,10 @@ The measured evidence for this, and for five other divergences between the pinned spec and what Codeberg actually returns, is in [Hazards](project/HAZARDS.md). -## Errors have exactly five shapes +## Errors have exactly six shapes `CodebergError` is a closed family: `Transport`, `Api`, `DecodingFailed`, -`Validation`, `RetriesExhausted`. +`Validation`, `RetriesExhausted`, `WalkTruncated`. There is no `NotFound` case and no `RateLimited` case. A `404` is `Api(ctx, 404, body)`; a `429` is `Api(ctx, 429, body)`, or a From ba92effe8bb787bec169108806e9e4291aab552b Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 22:32:43 +0300 Subject: [PATCH 04/15] docs(changelog): record the pre-release renames and literal constructors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The pre-release quality pass changed the public surface in four ways and the changelog recorded none of them. That entry is the release note the 0.1.0 tag will carry, and its own preamble says the "Changed" section exists for anyone who built against a 0.1.0-SNAPSHOT jar before the surface froze — which is exactly the audience these four affect. Added: the compile-time literal constructors for path identifiers, and the root re-exports that make `import com.worxbend.codeberg4s.*` enough for the quick start. Changed: `Owner` and `RepoName` moving to the package root, `pageParams` becoming `params`, and the six `RepositoryApi` sub-resource listings losing their `list` prefix. The six method names are taken from the rename commit rather than reconstructed from the new names, and the entry says which `list…` methods were deliberately left alone, so a reader can tell the rename was scoped rather than partial. --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 312116b..5e9d9f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -79,12 +79,42 @@ changed deliberately *before* the freeze, and anyone who built against a statement and 100.00 % branch coverage, `core` 96.59 % / 92.48 %, `codec` 95.20 % / 91.47 %, and the CRAP gate reports a worst method of 28.0 over 2,217 methods against a limit of 30. +- **Compile-time constructors for the path identifiers.** Each identifier that + is validated as a URI path segment — `Owner`, `RepoName`, `BranchName`, + `TagName`, `Username`, `OrgName` and the rest — now takes a string literal + directly. `Owner("forgejo")` is checked while the code compiles and *is* the + `Owner`, with no `Either` to unwrap, and an invalid literal is a compile + error naming the field: `not a valid owner: "forgejo/forgejo"`. `from` is + unchanged and remains the way in for a value known only at run time; handing + one to the literal constructor is itself a compile error. The check is + `inline` and folds away, so it reaches no bytecode. One deliberate + difference between the two: the literal form refuses surrounding whitespace + where `from` trims it. +- **A single import for the everyday surface.** `Auth`, `Page`, `PageParams` + and `PageSize` are re-exported from the package root, so + `import com.worxbend.codeberg4s.*` covers building an `Auth`, constructing a + client, calling an operation and paging through a listing. The quick start + needed six import lines before. ### Changed Every item here is a breaking change against the `0.1.0-SNAPSHOT` builds, taken now because the tag is what freezes the surface. +- **`Owner` and `RepoName` moved to the package root.** They were in + `com.worxbend.codeberg4s.repositories`, which meant the two types needed + before *any* request could be made lived in a sub-package a caller had no + other reason to know about. Import them from `com.worxbend.codeberg4s`, or + use the single wildcard import above. +- **Every `PageParams` parameter is named `params`, not `pageParams`.** The old + name restated the type instead of saying anything. Only call sites that pass + the argument by name need an edit. +- **`RepositoryApi`'s sub-resource listings are bare nouns.** `listBranches`, + `listTags`, `listCommits`, `listReleases`, `listTopics` and `listForks` + became `branches`, `tags`, `commits`, `releases`, `topics` and `forks`: the + `list` prefix repeated what `client.repos.` had already established. The + `list…` names on `IssueApi`, `RepositoryAccessApi` and `PullRequestApi` are + unchanged, because there the prefix still distinguishes the operation. - **Response models cannot be constructed from outside the library.** All 131 response types — `Repository`, `Issue`, `PullRequest`, `User`, `Organization`, `NotificationThread`, `ServerVersion`, `ApiErrorBody` and the From 2e59f42b6ea5ad09d7a0b0074c081b0e3cdcc33e Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 22:34:50 +0300 Subject: [PATCH 05/15] docs(site): drop the landing-page teasers, keep the prose MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The landing page opened with four teaser cards and then, immediately below them on the same screen, the section "The four properties that matter" — the same four claims, same order, same titles, written twice. A reader scrolled past the argument, then past a compressed copy of the argument. The prose is the version worth keeping. It is a strict superset: it carries the `Owner("forgejo")` versus `Owner.from(raw)` contrast, the "pick one per call site, not per project" instruction, and the in-page link to the clamp hazard. A Helium `Teaser` is a title and a description rendered as plain text, so it can carry none of those — it cannot even link to the guide it summarises. Cutting the prose down to card-sized blurbs instead would have deleted exactly the material that turns a claim into something a reader can act on, and would have moved front-page copy out of a Markdown file a prose contributor can edit into a Scala string literal in the build driver. The header still offers three entry points — Get started, Examples, API reference — so the fold is not left empty. The teasers had also gone stale: the third one still described the identifier types as having "Either-returning smart constructors", which stopped being the whole truth when the compile-time literal constructors landed. That is one fewer copy of a claim to keep in step. `body > main` takes 56px of top padding where it had 8px, because the teaser band supplied that gap and is gone. The dead `.teasers`/`.teaser` rules and their two responsive blocks are removed with it, and the `landingPage` call keeps a note saying why `teasers` is absent, so the next person to read it does not restore them as an oversight. --- site/assets/css/site.css | 86 +++------------------------------------- site/build/laika.scala | 53 ++++++------------------- 2 files changed, 18 insertions(+), 121 deletions(-) diff --git a/site/assets/css/site.css b/site/assets/css/site.css index a8175df..f3b95d9 100644 --- a/site/assets/css/site.css +++ b/site/assets/css/site.css @@ -357,7 +357,7 @@ main pre { /* Helium centres the header's two columns as a group, which leaves the hero's left edge somewhere other than the left * edge of everything below it. There is no wrapper element inside #header to constrain, so the shell is emulated with - * padding: half the leftover width, plus the same 28px gutter .teasers and main use. Below the shell width the calc + * padding: half the leftover width, plus the same 28px gutter the prose uses. Below the shell width the calc * goes negative and max() falls back to the gutter, so it degrades to a normal narrow-screen layout. */ #header { background-image: none; @@ -564,67 +564,14 @@ main pre { } /* ============================================================================ - Landing page — teaser cards - ============================================================================ */ - -.teasers { - max-width: var(--c4s-shell); - padding: 0 28px; - margin: 0 auto; - display: grid; - grid-template-columns: 1fr; - gap: 18px; - text-align: left; -} - -/* First row opens the band, last row closes it. Helium emits one .teasers per row of up to three. */ -.teasers:first-of-type { - padding-top: 56px; -} - -.teasers:last-of-type { - padding-bottom: 56px; -} - -.teaser { - flex: none; - margin: 0; - padding: 22px 24px; - background-color: var(--c4s-surface); - border: 1px solid var(--c4s-border); - border-radius: var(--c4s-radius); - transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease; -} - -.teaser:hover { - border-color: var(--c4s-accent); - transform: translateY(-2px); - box-shadow: var(--c4s-shadow); -} - -.teaser h2 { - color: var(--text-color); - font-size: 17px; - font-weight: 700; - letter-spacing: -0.01em; - line-height: 1.3; - margin: 0 0 8px; -} - -.teaser p { - color: var(--c4s-muted); - font-size: 14.5px; - line-height: 1.6; - margin: 0; -} - -/* ============================================================================ - Landing page — prose below the teasers + Landing page — prose ============================================================================ */ +/* 56px of top padding, not the 8px this used to carry: the teaser band that + sat between the header and this prose supplied the gap, and it is gone. */ body > main { max-width: var(--c4s-shell); - padding: 8px 28px 90px; + padding: 56px 28px 90px; } body > main > * { @@ -655,26 +602,6 @@ footer { Responsive ============================================================================ */ -@media (min-width: 700px) { - .teasers { - grid-template-columns: 1fr 1fr; - } -} - -@media (min-width: 1000px) { - .teasers { - display: grid; - justify-content: initial; - align-items: initial; - padding: 0 28px; - } - - .teaser { - margin: 0; - padding: 22px 24px; - } -} - @media (max-width: 699px) { #header { padding: 56px 22px 48px; @@ -694,9 +621,6 @@ footer { gap: 10px; } - .teasers { - padding: 0 22px; - } body > main { padding: 8px 22px 64px; diff --git a/site/build/laika.scala b/site/build/laika.scala index 7289b14..5dce497 100644 --- a/site/build/laika.scala +++ b/site/build/laika.scala @@ -47,7 +47,6 @@ import laika.helium.config.ColorQuintet import laika.helium.config.Favicon import laika.helium.config.HeliumIcon import laika.helium.config.IconLink -import laika.helium.config.Teaser import laika.helium.config.TextLink import laika.io.syntax.* import laika.theme.ThemeProvider @@ -130,36 +129,6 @@ object Palette: Color.hex("7fd3ff"), // type names ) -/** The four claims the landing page is built around. They are the same four the README opens with, deliberately: a - * reader who arrives from either direction should be told the same thing. - */ -object Teasers: - - val all: Seq[Teaser] = Seq( - Teaser( - "A Future API, and nothing else", - "The public API is scala.concurrent.Future. No effect system leaks into your code and none is added to your " - + "classpath — the dependency list is sttp client4 and jsoniter-scala.", - ), - Teaser( - "Two error rails", - "Every operation exists twice. client.repos.get fails the Future with a CodebergException; " - + "client.repos.attempt.get returns Either[CodebergError, Repository]. Same implementation underneath, so " - + "the two cannot drift.", - ), - Teaser( - "Illegal requests are unrepresentable", - "Owners, repository names, branches, tokens and page sizes are opaque types with Either-returning smart " - + "constructors. A value that would forge a request path is rejected before a client is involved.", - ), - Teaser( - "Pagination you cannot get wrong by accident", - "No operation returns an unbounded List. Every listing hands back a Page[A] whose nextPage comes from the " - + "RFC 5988 Link header — never from how many items came back, which is the trap Forgejo's silent limit " - + "clamp sets for you.", - ), - ) - /** Command-line arguments, parsed rather than positional so the shell script reads clearly. */ final case class Args( in: String, @@ -298,7 +267,7 @@ object Site: // The design lives in site/assets/css/site.css, not here. // // Helium exposes its palette and its metrics as configuration — that is everything above — but not its component - // shapes: the header is a centred block, the teasers are bare text, a code block is a rectangle with no border. + // shapes: the header is a centred block, a code block is a rectangle with no border, a table has no rules. // Those are CSS, so they are changed in CSS, and `internalCSS` points at a directory in the input tree whose // stylesheets are linked after Helium's own. Later in the cascade, same specificity, so an override is an override // and nothing needs `!important`. @@ -340,7 +309,7 @@ object Site: .site .pageNavigation(depth = 3) - // Everything below the header and the teaser rows is the prose of `site/src/landing-page.md`. That file has no + // Everything below the header is the prose of `site/src/landing-page.md`. That file has no // top-level heading of its own on purpose: `title` here already renders "codeberg4s" directly above it, and a // second `

codeberg4s

` under it said the same word twice. // @@ -349,25 +318,29 @@ object Site: // that is not "scroll to the bottom and hope", and these three cover the three things anyone arrives wanting. withChrome.site .landingPage( - title = Some(SiteInfo.title), - subtitle = Some("A Scala 3 client for the Codeberg / Forgejo REST API v1"), - titleLinks = Seq( + title = Some(SiteInfo.title), + subtitle = Some("A Scala 3 client for the Codeberg / Forgejo REST API v1"), + titleLinks = Seq( ButtonLink.internal(Root / "getting-started.md", "Get started"), TextLink.internal(Root / "examples.md", "Examples"), TextLink.internal(Args.apiPath, "API reference"), IconLink.external(SiteInfo.sourceUrl, HeliumIcon.github), ), - latestReleases = Seq(ReleaseLine.current(args.version)), - license = Some(SiteInfo.licence), + latestReleases = Seq(ReleaseLine.current(args.version)), + license = Some(SiteInfo.licence), // No `documentationLinks`. Helium renders them as a boxed panel in the header's right-hand column, and every // entry it would hold is already a button in `titleLinks` two inches to the left. Saying the same three things // twice in one header is worse than saying them once, and the panel was tall enough to leave the left-hand // column looking abandoned next to it. - projectLinks = Seq( + projectLinks = Seq( TextLink.external(SiteInfo.sourceUrl, "Source"), TextLink.external(s"${SiteInfo.sourceUrl}/issues", "Issues"), ), - teasers = Teasers.all, + // No `teasers`. The four they held were the four bold paragraphs of `landing-page.md` in compressed form, so + // a reader met the same four claims twice on one screen. The prose is the version worth keeping: it is the one + // with the `Owner`/`Owner.from` contrast, the "pick one per call site" instruction and the link to the clamp + // hazard in it, and a Helium `Teaser` is a (title, description) pair rendered as plain text, so it can carry + // none of those. `teasers` defaults to `Nil`. ) .site .footer( From 57c468bcc7eeeead3f9b9b9201ea56115d4f86a0 Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 22:52:00 +0300 Subject: [PATCH 06/15] build: merge same-prefix imports instead of exploding them MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `OrganizeImports` was set to `groupedImports = Explode`, which writes one import per line. When the shared codec helpers were promoted into common modules, that turned 108 files in `codec` into 108 copies of the same seven-line preamble. PMD's copy-paste detector has no import filter for Scala, so it counted every pair of those preambles as duplicated code. The duplication gate in verify.sh went from 363 groups to 408 — above its baseline, so `--with-slow` was failing — while the duplication that actually matters went *down*: measured at the baseline commit and at HEAD with the same tool, groups containing real code fell from 222 to 183. Of the 408, 324 contained nothing but a package clause and imports. The gate had stopped measuring what it claims to measure. `Merge` collects several names from one package into one braced import. That is still the explicit style SCALA_CODE_STYLE.md asks for — every name is written out, no wildcards appear, and `removeUnused` still prunes names inside the braces, so an unused helper stays visible. The count drops to 161, comfortably below the recorded baseline. `trailingCommas` moves from `multiple` to `keep` because the two formatters otherwise rewrite each other: scalafix emits a merged import with no trailing comma, scalafmt adds one to any list long enough to wrap, and `mill __.fix --check` removes it again — a gate that fails whichever order its steps run in. `keep` preserves what is written rather than adding or removing, so they converge. It costs the automatic enforcement the old setting gave on newly written multiline lists; every list already in the tree keeps its comma, so no existing code changes. --- .scalafix.conf | 18 +++++++++++++++++- .scalafmt.conf | 16 +++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/.scalafix.conf b/.scalafix.conf index 8bdca49..2b6e3c8 100644 --- a/.scalafix.conf +++ b/.scalafix.conf @@ -57,11 +57,27 @@ DisableSyntax { } // Order per SCALA_CODE_STYLE.md § Imports: worxbend, ecosystem, third-party, scala, java. +// +// `groupedImports = Merge` — several names from one package are collected into a +// single braced import rather than exploded onto one line each. +// +// MEASURED, NOT PREFERRED. Under `Explode`, promoting the shared codec helpers +// gave 108 files in `codec` the same seven-line preamble, and PMD CPD — which +// has no import filter for Scala — counted every pair of them as duplication. +// 324 of 408 reported groups contained no code beyond the file preamble, so the +// duplication gate in verify.sh was mostly measuring imports. `Merge` collapses +// each preamble to one line per package and the count falls below the recorded +// baseline, which is what makes the gate mean something again. +// +// This is still the explicit-import style SCALA_CODE_STYLE.md § Imports asks +// for: every name is written out, no wildcards are introduced, and +// `removeUnused` still prunes names inside the braces, so an unused helper +// stays visible. OrganizeImports { targetDialect = Scala3 removeUnused = true expandRelative = true - groupedImports = Explode + groupedImports = Merge importsOrder = Ascii blankLines = Auto groups = [ diff --git a/.scalafmt.conf b/.scalafmt.conf index e9ac6e1..4ece25e 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -170,7 +170,21 @@ literals.float = Lower literals.double = Lower literals.scientific = Lower -trailingCommas = multiple # required in multiline lists +# `keep`, not `multiple`, because two tools have to agree here. +# +# Scalafix's OrganizeImports emits a merged import with no trailing comma. +# Under `trailingCommas = multiple`, scalafmt added one back to every import +# list long enough to wrap, and `mill __.fix --check` then removed it again — +# the two steps of the verification gate rewriting each other's output, which +# fails the gate no matter which order they run in. +# +# `keep` preserves whatever is written rather than adding or removing, so the +# two converge. It costs the automatic enforcement the previous setting gave: +# a new multiline list written without a trailing comma is no longer corrected +# for you. The style is still what SCALA_CODE_STYLE.md asks for, and every +# multiline list in the tree already carries its comma — this changes no +# existing code, only what is added on your behalf in future. +trailingCommas = keep # --------------------------------------------------------------------------- # Project scope From 9c878e68f101ef41b1462603efe588cfb145fb6e Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 22:52:09 +0300 Subject: [PATCH 07/15] style: apply the merged-import formatting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mechanical output of `./mill __.fix && ./mill __.reformat` after the previous commit changed `groupedImports` to `Merge`. No logic changes. 309 files, 967 lines shorter overall. Verified mechanical rather than trusted: for all 307 changed Scala files, the set of fully-qualified names each file imports is byte-identical before and after, so nothing was dropped or added — including any `given`, whose loss would change implicit resolution rather than fail the build. `./verify.sh` passes, with the same 3604 tests. --- .../worxbend/codeberg4s/CodebergClient.scala | 15 +--- .../com/worxbend/codeberg4s/VersionApi.scala | 6 +- .../codeberg4s/client/FutureExec.scala | 9 +-- .../codeberg4s/client/FutureTimer.scala | 26 +++---- .../codeberg4s/client/GuardedTelemetry.scala | 10 +-- .../codeberg4s/client/WireDecode.scala | 4 +- .../worxbend/codeberg4s/issues/IssueApi.scala | 35 ++++----- .../issues/IssueAttachmentApi.scala | 19 +---- .../codeberg4s/issues/IssueCommentApi.scala | 20 ++--- .../codeberg4s/issues/IssueDecoders.scala | 28 +++---- .../codeberg4s/issues/IssueLabelApi.scala | 18 +---- .../codeberg4s/issues/IssueMilestoneApi.scala | 13 +--- .../codeberg4s/issues/IssueReactionApi.scala | 20 ++--- .../codeberg4s/issues/IssueRequests.scala | 3 +- .../issues/IssueSubscriptionApi.scala | 14 +--- .../codeberg4s/issues/IssueTimeApi.scala | 20 ++--- .../miscellaneous/MiscellaneousApi.scala | 36 ++++----- .../codeberg4s/miscellaneous/PlainText.scala | 3 +- .../notifications/NotificationApi.scala | 21 ++---- .../organizations/OrganizationApi.scala | 24 ++---- .../organizations/OrganizationDecoders.scala | 21 +++--- .../organizations/OrganizationHookApi.scala | 20 ++--- .../organizations/OrganizationLabelApi.scala | 23 ++---- .../organizations/OrganizationQuotaApi.scala | 8 +- .../organizations/OrganizationTeamApi.scala | 22 ++---- .../actions/OrganizationActionApi.scala | 57 +++++++-------- .../actions/OrganizationActionDecoders.scala | 28 ++++--- .../worxbend/codeberg4s/paging/PageWalk.scala | 6 +- .../codeberg4s/pulls/PullRequestApi.scala | 53 ++++++-------- .../repositories/RepositoryApi.scala | 22 +++--- .../repositories/RepositoryDecoders.scala | 22 +++--- .../access/RepositoryAccessApi.scala | 34 ++++----- .../access/RepositoryAccessDecoders.scala | 13 ++-- .../actions/ActionDownloadApi.scala | 11 +-- .../actions/RepositoryActionApi.scala | 29 +++----- .../actions/RepositoryActionDecoders.scala | 27 +++---- .../admin/RepositoryAdminApi.scala | 52 +++++-------- .../admin/RepositoryAdminDecoders.scala | 43 +++++------ .../gitdata/GitDataDecoders.scala | 25 ++++--- .../gitdata/RepositoryGitApi.scala | 25 ++----- .../hooks/RepositoryFlagApi.scala | 11 +-- .../hooks/RepositoryHookApi.scala | 17 +---- .../hooks/RepositoryHookDecoders.scala | 22 +++--- .../hooks/RepositoryIssueConfigApi.scala | 9 +-- .../hooks/RepositoryWikiApi.scala | 16 +--- .../publishing/PublishingDecoders.scala | 9 +-- .../publishing/RepositoryPublishingApi.scala | 50 ++++++------- .../worxbend/codeberg4s/users/UserApi.scala | 35 ++++----- .../users/account/UserAccountApi.scala | 19 ++--- .../users/account/UserAccountDecoders.scala | 43 ++++++----- .../users/account/UserActionApi.scala | 55 +++++++------- .../users/account/UserApplicationApi.scala | 18 ++--- .../users/account/UserHookApi.scala | 20 ++--- .../users/account/UserQuotaApi.scala | 8 +- .../users/social/SocialDecoders.scala | 25 +++---- .../codeberg4s/users/social/UserKeyApi.scala | 28 +++---- .../users/social/UserSocialApi.scala | 20 ++--- .../users/social/UserTokenApi.scala | 15 +--- .../com/worxbend/codeberg4s/codec/Json.scala | 11 +-- .../worxbend/codeberg4s/codec/JsonValue.scala | 4 +- .../codeberg4s/codec/Timestamps.scala | 4 +- .../com/worxbend/codeberg4s/codec/Wire.scala | 3 +- .../issues/wire/AddTimeOptionDto.scala | 5 +- .../issues/wire/AttachmentDto.scala | 10 +-- .../codeberg4s/issues/wire/CommentDto.scala | 9 +-- .../wire/CreateIssueCommentOptionDto.scala | 3 +- .../issues/wire/CreateIssueOptionDto.scala | 5 +- .../issues/wire/CreateLabelOptionDto.scala | 3 +- .../issues/wire/EditAttachmentOptionDto.scala | 3 +- .../issues/wire/EditDeadlineOptionDto.scala | 4 +- .../wire/EditIssueCommentOptionDto.scala | 4 +- .../issues/wire/EditIssueOptionDto.scala | 5 +- .../issues/wire/EditLabelOptionDto.scala | 3 +- .../issues/wire/EditReactionOptionDto.scala | 3 +- .../issues/wire/IssueDeadlineDto.scala | 4 +- .../codeberg4s/issues/wire/IssueDto.scala | 10 +-- .../issues/wire/IssueLabelsOptionDto.scala | 9 +-- .../codeberg4s/issues/wire/IssueMetaDto.scala | 4 +- .../codeberg4s/issues/wire/IssueQueries.scala | 17 +++-- .../issues/wire/IssueSubscriptionDto.scala | 4 +- .../codeberg4s/issues/wire/LabelDto.scala | 9 +-- .../codeberg4s/issues/wire/MilestoneDto.scala | 10 +-- .../issues/wire/MilestoneOptionDto.scala | 7 +- .../codeberg4s/issues/wire/ReactionDto.scala | 9 +-- .../issues/wire/RepositoryMetaDto.scala | 6 +- .../issues/wire/TimelineCommentDto.scala | 9 +-- .../issues/wire/TrackedTimeDto.scala | 12 +-- .../wire/GitignoreTemplateDto.scala | 4 +- .../wire/LicenseTemplateDto.scala | 4 +- .../wire/LicenseTemplateSummaryDto.scala | 8 +- .../wire/MarkdownOptionDto.scala | 3 +- .../miscellaneous/wire/MarkupOptionDto.scala | 3 +- .../miscellaneous/wire/NodeInfoDto.scala | 10 +-- .../wire/ServerApiSettingsDto.scala | 4 +- .../wire/ServerAttachmentSettingsDto.scala | 3 +- .../wire/ServerRepositorySettingsDto.scala | 3 +- .../wire/ServerUiSettingsDto.scala | 3 +- .../miscellaneous/wire/TemplateLabelDto.scala | 5 +- .../wire/NotificationCountDto.scala | 4 +- .../wire/NotificationQueries.scala | 3 +- .../wire/NotificationSubjectDto.scala | 7 +- .../wire/NotificationThreadDto.scala | 9 +-- .../organizations/wire/BlockedUserDto.scala | 9 +-- .../organizations/wire/OrganizationDto.scala | 9 +-- .../wire/OrganizationOptionDto.scala | 7 +- .../wire/OrganizationPermissionsDto.scala | 3 +- .../wire/OrganizationQueries.scala | 3 +- .../organizations/wire/QuotaInfoDto.scala | 23 +++--- .../organizations/wire/QuotaUsedDto.scala | 9 +-- .../organizations/wire/TeamDto.scala | 9 +-- .../organizations/wire/TeamOptionDto.scala | 7 +- .../pulls/wire/ChangedFileDto.scala | 5 +- .../wire/CreatePullRequestOptionDto.scala | 5 +- .../wire/CreatePullReviewOptionsDto.scala | 3 +- .../wire/DismissPullReviewOptionsDto.scala | 3 +- .../pulls/wire/EditPullRequestOptionDto.scala | 5 +- .../wire/MergePullRequestOptionDto.scala | 3 +- .../pulls/wire/NewReviewCommentDto.scala | 4 +- .../pulls/wire/PullRequestBranchDto.scala | 7 +- .../pulls/wire/PullRequestDto.scala | 13 +--- .../pulls/wire/PullRequestQueries.scala | 4 +- .../wire/PullReviewRequestOptionsDto.scala | 4 +- .../pulls/wire/ReviewCommentDto.scala | 10 +-- .../codeberg4s/pulls/wire/ReviewDto.scala | 10 +-- .../wire/SubmitPullReviewOptionsDto.scala | 3 +- .../wire/AddCollaboratorOptionDto.scala | 3 +- .../access/wire/BranchProtectionDto.scala | 6 +- .../wire/BranchProtectionOptionDto.scala | 13 ++-- .../access/wire/CollaboratorAccessDto.scala | 4 +- .../access/wire/CreateKeyOptionDto.scala | 3 +- .../access/wire/DeployKeyDto.scala | 9 +-- .../access/wire/TagProtectionDto.scala | 9 +-- .../access/wire/TagProtectionOptionDto.scala | 6 +- .../actions/wire/ActionArtifactDto.scala | 10 +-- .../actions/wire/ActionQueries.scala | 14 ++-- .../actions/wire/ActionRepoRefDto.scala | 6 +- .../actions/wire/ActionRunDto.scala | 9 +-- .../actions/wire/ActionRunJobDto.scala | 10 +-- .../actions/wire/ActionRunnerDto.scala | 9 +-- .../actions/wire/ActionSecretDto.scala | 9 +-- .../actions/wire/ActionTaskDto.scala | 9 +-- .../actions/wire/ActionVariableDto.scala | 8 +- .../actions/wire/ActionWire.scala | 3 +- .../wire/DispatchWorkflowOptionDto.scala | 3 +- .../wire/DispatchedWorkflowRunDto.scala | 6 +- .../wire/RegisterRunnerOptionDto.scala | 3 +- .../actions/wire/RegisteredRunnerDto.scala | 8 +- .../actions/wire/RegistrationTokenDto.scala | 4 +- .../actions/wire/SecretOptionDto.scala | 3 +- .../actions/wire/VariableOptionDto.scala | 6 +- .../repositories/admin/wire/ActivityDto.scala | 10 +-- .../admin/wire/BranchOptionDto.scala | 7 +- .../admin/wire/FileOptionsDto.scala | 22 +++--- .../admin/wire/FilesResponseDto.scala | 8 +- .../admin/wire/LanguageStatisticsDto.scala | 3 +- .../admin/wire/MigrateRepoOptionsDto.scala | 7 +- .../admin/wire/PushMirrorDto.scala | 9 +-- .../admin/wire/RepositoryOptionDto.scala | 15 ++-- .../admin/wire/SyncForkInfoDto.scala | 6 +- .../admin/wire/TopicSummaryDto.scala | 9 +-- .../admin/wire/WatchInfoDto.scala | 4 +- .../gitdata/wire/AnnotatedTagDto.scala | 11 +-- .../gitdata/wire/CombinedStatusDto.scala | 8 +- .../gitdata/wire/CommitStatusDto.scala | 8 +- .../gitdata/wire/CompareDto.scala | 7 +- .../gitdata/wire/DiffPatchOptionsDto.scala | 7 +- .../gitdata/wire/EditorConfigDto.scala | 4 +- .../gitdata/wire/FileCommitDto.scala | 9 +-- .../gitdata/wire/FileResponseDto.scala | 7 +- .../gitdata/wire/GitBlobDto.scala | 7 +- .../gitdata/wire/GitDataQueries.scala | 4 +- .../gitdata/wire/GitEntryDto.scala | 10 +-- .../gitdata/wire/GitObjectDto.scala | 7 +- .../gitdata/wire/GitTreeDto.scala | 4 +- .../repositories/gitdata/wire/NoteDto.scala | 4 +- .../gitdata/wire/NoteOptionsDto.scala | 3 +- .../gitdata/wire/ReferenceDto.scala | 7 +- .../repositories/hooks/wire/GitHookDto.scala | 8 +- .../hooks/wire/HookOptionDto.scala | 9 +-- .../repositories/hooks/wire/HookWire.scala | 3 +- .../hooks/wire/IssueConfigDto.scala | 9 +-- .../hooks/wire/IssueTemplateDto.scala | 9 +-- .../hooks/wire/RepositoryFlagWire.scala | 4 +- .../repositories/hooks/wire/WebhookDto.scala | 11 +-- .../repositories/hooks/wire/WikiPageDto.scala | 12 +-- .../hooks/wire/WikiPageOptionsDto.scala | 6 +- .../publishing/wire/CreateForkOptionDto.scala | 3 +- .../wire/CreateReleaseOptionDto.scala | 3 +- .../publishing/wire/CreateTagOptionDto.scala | 3 +- .../wire/EditAttachmentOptionsDto.scala | 3 +- .../wire/EditReleaseOptionDto.scala | 3 +- .../wire/GenerateRepoOptionDto.scala | 3 +- .../publishing/wire/RepoTopicOptionsDto.scala | 3 +- .../wire/ArchiveDownloadCountDto.scala | 3 +- .../repositories/wire/BranchDto.scala | 7 +- .../wire/CommitAffectedFileDto.scala | 7 +- .../repositories/wire/CommitDto.scala | 9 +-- .../repositories/wire/CommitMetaDto.scala | 8 +- .../repositories/wire/CommitStatsDto.scala | 3 +- .../repositories/wire/ContentEntryDto.scala | 12 +-- .../repositories/wire/GitIdentityDto.scala | 4 +- .../wire/InternalTrackerDto.scala | 3 +- .../repositories/wire/PayloadCommitDto.scala | 8 +- .../repositories/wire/PermissionDto.scala | 3 +- .../repositories/wire/ReleaseAssetDto.scala | 5 +- .../repositories/wire/ReleaseDto.scala | 10 +-- .../repositories/wire/RepoCommitDto.scala | 4 +- .../wire/RepositoryContentDto.scala | 5 +- .../repositories/wire/RepositoryDto.scala | 12 +-- .../codeberg4s/repositories/wire/TagDto.scala | 8 +- .../repositories/wire/TopicNamesDto.scala | 3 +- .../repositories/wire/VerificationDto.scala | 3 +- .../users/account/wire/AccountOptionDto.scala | 19 ++--- .../users/account/wire/AccountQueries.scala | 3 +- .../users/account/wire/EmailDto.scala | 8 +- .../account/wire/OAuth2ApplicationDto.scala | 10 +-- .../users/account/wire/QuotaInfoDto.scala | 9 +-- .../users/account/wire/QuotaUsageDto.scala | 14 ++-- .../users/account/wire/UserSettingsDto.scala | 3 +- .../users/social/wire/AccessTokenDto.scala | 12 +-- .../users/social/wire/BlockedUserDto.scala | 9 +-- .../users/social/wire/GpgKeyDto.scala | 11 +-- .../users/social/wire/HeatmapEntryDto.scala | 5 +- .../users/social/wire/KeyOptionDtos.scala | 7 +- .../users/social/wire/SocialQueries.scala | 6 +- .../users/social/wire/StopWatchDto.scala | 13 +--- .../users/social/wire/TokenOptionDtos.scala | 7 +- .../codeberg4s/users/wire/PublicKeyDto.scala | 5 +- .../codeberg4s/users/wire/UserDto.scala | 8 +- .../codeberg4s/wire/ServerVersionDto.scala | 7 +- .../codeberg4s/core/ApiPipeline.scala | 11 +-- .../codeberg4s/core/CodebergResponse.scala | 3 +- .../com/worxbend/codeberg4s/core/Pages.scala | 3 +- .../codeberg4s/core/ResponseBody.scala | 6 +- .../codeberg4s/core/RetryEngine.scala | 11 +-- .../codeberg4s/core/StatusMapping.scala | 4 +- .../worxbend/codeberg4s/core/Telemetry.scala | 3 +- .../worxbend/codeberg4s/CodebergConfig.scala | 3 +- .../worxbend/codeberg4s/SegmentLiteral.scala | 5 +- .../codeberg4s/issues/AttachmentId.scala | 3 +- .../codeberg4s/issues/CommentId.scala | 3 +- .../codeberg4s/issues/IssueNumber.scala | 3 +- .../worxbend/codeberg4s/issues/IssueRef.scala | 3 +- .../worxbend/codeberg4s/issues/LabelId.scala | 3 +- .../codeberg4s/issues/MilestoneId.scala | 3 +- .../codeberg4s/issues/TrackedTimeId.scala | 3 +- .../codeberg4s/issues/UploadAttachment.scala | 3 +- .../notifications/NotificationThreadId.scala | 3 +- .../organizations/BlockedUser.scala | 3 +- .../codeberg4s/organizations/OrgName.scala | 4 +- .../codeberg4s/organizations/TeamId.scala | 3 +- .../codeberg4s/pulls/CreatePullRequest.scala | 3 +- .../codeberg4s/pulls/EditPullRequest.scala | 4 +- .../codeberg4s/pulls/PullRequest.scala | 3 +- .../codeberg4s/pulls/PullRequestBranch.scala | 4 +- .../codeberg4s/pulls/PullRequestNumber.scala | 3 +- .../codeberg4s/pulls/PullRequestQuery.scala | 4 +- .../codeberg4s/pulls/ReviewCommentId.scala | 3 +- .../worxbend/codeberg4s/pulls/ReviewId.scala | 3 +- .../codeberg4s/repositories/BranchName.scala | 4 +- .../codeberg4s/repositories/ContentPath.scala | 4 +- .../codeberg4s/repositories/ReleaseId.scala | 3 +- .../codeberg4s/repositories/RepoSlug.scala | 3 +- .../codeberg4s/repositories/TagName.scala | 4 +- .../repositories/access/AccessIds.scala | 3 +- .../repositories/access/AccessNames.scala | 4 +- .../repositories/actions/ActionIds.scala | 3 +- .../repositories/actions/ActionNames.scala | 4 +- .../repositories/actions/ActionRun.scala | 3 +- .../repositories/admin/AdminIds.scala | 5 +- .../repositories/admin/FileCommands.scala | 6 +- .../admin/MigrateRepository.scala | 3 +- .../repositories/gitdata/AnnotatedTag.scala | 6 +- .../gitdata/CombinedCommitStatus.scala | 3 +- .../gitdata/CommitComparison.scala | 3 +- .../repositories/gitdata/CompareRange.scala | 3 +- .../repositories/gitdata/FileChange.scala | 3 +- .../repositories/gitdata/FileCommit.scala | 4 +- .../repositories/gitdata/GitBlob.scala | 3 +- .../repositories/gitdata/GitTreeEntry.scala | 3 +- .../repositories/gitdata/RefName.scala | 4 +- .../repositories/hooks/HookIds.scala | 5 +- .../repositories/hooks/RepositoryFlag.scala | 4 +- .../repositories/hooks/WikiCommit.scala | 3 +- .../repositories/hooks/WikiPageName.scala | 4 +- .../repositories/publishing/AssetId.scala | 3 +- .../repositories/publishing/CreateFork.scala | 3 +- .../publishing/GenerateRepository.scala | 3 +- .../repositories/publishing/Topic.scala | 4 +- .../repositories/publishing/UploadAsset.scala | 3 +- .../codeberg4s/retry/RetryPolicy.scala | 4 +- .../worxbend/codeberg4s/users/Username.scala | 4 +- .../codeberg4s/users/account/AccountIds.scala | 3 +- .../codeberg4s/users/social/AccessToken.scala | 4 +- .../users/social/SocialFilters.scala | 3 +- .../codeberg4s/users/social/SocialIds.scala | 3 +- .../codeberg4s/examples/Authenticating.scala | 14 +--- .../codeberg4s/examples/CreatingAnIssue.scala | 23 ++---- .../codeberg4s/examples/HandlingErrors.scala | 25 +++---- .../codeberg4s/examples/HelloCodeberg.scala | 13 +--- .../examples/ObservingRequests.scala | 23 +++--- .../codeberg4s/examples/SharingABackend.scala | 11 +-- .../codeberg4s/examples/WalkingPages.scala | 23 ++---- .../codeberg4s/it/ForgejoBootstrap.scala | 14 +--- .../codeberg4s/it/IntegrationConfig.scala | 7 +- .../worxbend/codeberg4s/it/LiveSmoke.scala | 6 +- .../codeberg4s/transport/SttpHttpPort.scala | 73 +++++++++---------- 307 files changed, 976 insertions(+), 1973 deletions(-) diff --git a/modules/client/src/com/worxbend/codeberg4s/CodebergClient.scala b/modules/client/src/com/worxbend/codeberg4s/CodebergClient.scala index fe524a1..4a2caf3 100644 --- a/modules/client/src/com/worxbend/codeberg4s/CodebergClient.scala +++ b/modules/client/src/com/worxbend/codeberg4s/CodebergClient.scala @@ -1,19 +1,13 @@ package com.worxbend.codeberg4s -import com.worxbend.codeberg4s.client.FutureExec -import com.worxbend.codeberg4s.client.FutureTimer -import com.worxbend.codeberg4s.client.GuardedTelemetry +import com.worxbend.codeberg4s.client.{FutureExec, FutureTimer, GuardedTelemetry} import com.worxbend.codeberg4s.codec.ApiErrorBodyCodec -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.BinaryHttpPort -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.Telemetry +import com.worxbend.codeberg4s.core.{ApiPipeline, BinaryHttpPort, Exec, Telemetry} import com.worxbend.codeberg4s.issues.IssueApi import com.worxbend.codeberg4s.miscellaneous.MiscellaneousApi import com.worxbend.codeberg4s.notifications.NotificationApi import com.worxbend.codeberg4s.organizations.OrganizationApi -import com.worxbend.codeberg4s.paging.PageNumber -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.paging.{PageNumber, PageParams} import com.worxbend.codeberg4s.pulls.PullRequestApi import com.worxbend.codeberg4s.repositories.RepositoryApi import com.worxbend.codeberg4s.repositories.actions.ActionDownloadApi @@ -23,8 +17,7 @@ import com.worxbend.codeberg4s.users.UserApi import sttp.client4.Backend -import scala.concurrent.ExecutionContext -import scala.concurrent.Future +import scala.concurrent.{ExecutionContext, Future} import java.util.concurrent.atomic.AtomicBoolean diff --git a/modules/client/src/com/worxbend/codeberg4s/VersionApi.scala b/modules/client/src/com/worxbend/codeberg4s/VersionApi.scala index 94452de..f699e6c 100644 --- a/modules/client/src/com/worxbend/codeberg4s/VersionApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/VersionApi.scala @@ -2,11 +2,7 @@ package com.worxbend.codeberg4s import com.worxbend.codeberg4s.client.WireDecode import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Decode, Exec, RetryEligibility} import com.worxbend.codeberg4s.wire.ServerVersionDto import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/client/FutureExec.scala b/modules/client/src/com/worxbend/codeberg4s/client/FutureExec.scala index a1b92d2..67b745e 100644 --- a/modules/client/src/com/worxbend/codeberg4s/client/FutureExec.scala +++ b/modules/client/src/com/worxbend/codeberg4s/client/FutureExec.scala @@ -1,13 +1,10 @@ package com.worxbend.codeberg4s.client -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.CodebergException import com.worxbend.codeberg4s.core.Exec +import com.worxbend.codeberg4s.{CodebergError, CodebergException} -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success +import scala.concurrent.{ExecutionContext, Future} +import scala.util.{Failure, Success} /** The [[com.worxbend.codeberg4s.core.Exec]] instance the published client runs on. * diff --git a/modules/client/src/com/worxbend/codeberg4s/client/FutureTimer.scala b/modules/client/src/com/worxbend/codeberg4s/client/FutureTimer.scala index 255db25..3412560 100644 --- a/modules/client/src/com/worxbend/codeberg4s/client/FutureTimer.scala +++ b/modules/client/src/com/worxbend/codeberg4s/client/FutureTimer.scala @@ -3,20 +3,18 @@ package com.worxbend.codeberg4s.client import com.worxbend.codeberg4s.core.Timer import com.worxbend.codeberg4s.syntax.discard -import scala.concurrent.Future -import scala.concurrent.Promise -import scala.concurrent.duration.Duration -import scala.concurrent.duration.FiniteDuration -import scala.util.Failure -import scala.util.Success -import scala.util.Try - -import java.util.concurrent.CancellationException -import java.util.concurrent.Delayed -import java.util.concurrent.RunnableScheduledFuture -import java.util.concurrent.ScheduledThreadPoolExecutor -import java.util.concurrent.ThreadFactory -import java.util.concurrent.TimeUnit +import scala.concurrent.duration.{Duration, FiniteDuration} +import scala.concurrent.{Future, Promise} +import scala.util.{Failure, Success, Try} + +import java.util.concurrent.{ + CancellationException, + Delayed, + RunnableScheduledFuture, + ScheduledThreadPoolExecutor, + ThreadFactory, + TimeUnit +} /** The [[com.worxbend.codeberg4s.core.Timer]] the published client runs on. * diff --git a/modules/client/src/com/worxbend/codeberg4s/client/GuardedTelemetry.scala b/modules/client/src/com/worxbend/codeberg4s/client/GuardedTelemetry.scala index 70a5698..aab0f88 100644 --- a/modules/client/src/com/worxbend/codeberg4s/client/GuardedTelemetry.scala +++ b/modules/client/src/com/worxbend/codeberg4s/client/GuardedTelemetry.scala @@ -1,15 +1,11 @@ package com.worxbend.codeberg4s.client -import com.worxbend.codeberg4s.CallContext -import com.worxbend.codeberg4s.CodebergError import com.worxbend.codeberg4s.core.Telemetry +import com.worxbend.codeberg4s.{CallContext, CodebergError} -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.util.Failure -import scala.util.Success -import scala.util.Try +import scala.concurrent.{ExecutionContext, Future} import scala.util.control.NonFatal +import scala.util.{Failure, Success, Try} import java.util.concurrent.ExecutionException diff --git a/modules/client/src/com/worxbend/codeberg4s/client/WireDecode.scala b/modules/client/src/com/worxbend/codeberg4s/client/WireDecode.scala index efa6ef4..fdde4de 100644 --- a/modules/client/src/com/worxbend/codeberg4s/client/WireDecode.scala +++ b/modules/client/src/com/worxbend/codeberg4s/client/WireDecode.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.client import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.core.ResponseBody +import com.worxbend.codeberg4s.core.{Decode, DecodeFailure, ResponseBody} /** Joins the two halves of reading a response: parse the wire DTO, then project it into the domain. * diff --git a/modules/client/src/com/worxbend/codeberg4s/issues/IssueApi.scala b/modules/client/src/com/worxbend/codeberg4s/issues/IssueApi.scala index 5f251f3..a44461d 100644 --- a/modules/client/src/com/worxbend/codeberg4s/issues/IssueApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/issues/IssueApi.scala @@ -1,27 +1,18 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.bodiless -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.removeWithBody -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.issues.wire.CreateIssueCommentOptionDto -import com.worxbend.codeberg4s.issues.wire.CreateIssueOptionDto -import com.worxbend.codeberg4s.issues.wire.CreateLabelOptionDto -import com.worxbend.codeberg4s.issues.wire.EditDeadlineOptionDto -import com.worxbend.codeberg4s.issues.wire.EditIssueOptionDto -import com.worxbend.codeberg4s.issues.wire.IssueMetaDto -import com.worxbend.codeberg4s.issues.wire.IssueQueries -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.CodebergRequest.{bodiless, read, remove, removeWithBody, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.issues.wire.{ + CreateIssueCommentOptionDto, + CreateIssueOptionDto, + CreateLabelOptionDto, + EditDeadlineOptionDto, + EditIssueOptionDto, + IssueMetaDto, + IssueQueries +} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/issues/IssueAttachmentApi.scala b/modules/client/src/com/worxbend/codeberg4s/issues/IssueAttachmentApi.scala index a0b8d55..f98b1b1 100644 --- a/modules/client/src/com/worxbend/codeberg4s/issues/IssueAttachmentApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/issues/IssueAttachmentApi.scala @@ -1,20 +1,9 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.upload -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RequestBody -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.issues.wire.EditAttachmentOptionDto -import com.worxbend.codeberg4s.issues.wire.IssueQueries +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, upload, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RequestBody, RetryEligibility} +import com.worxbend.codeberg4s.issues.wire.{EditAttachmentOptionDto, IssueQueries} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/issues/IssueCommentApi.scala b/modules/client/src/com/worxbend/codeberg4s/issues/IssueCommentApi.scala index 4c476d6..146a690 100644 --- a/modules/client/src/com/worxbend/codeberg4s/issues/IssueCommentApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/issues/IssueCommentApi.scala @@ -1,20 +1,10 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.issues.wire.EditIssueCommentOptionDto -import com.worxbend.codeberg4s.issues.wire.IssueQueries -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.issues.wire.{EditIssueCommentOptionDto, IssueQueries} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/issues/IssueDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/issues/IssueDecoders.scala index 8ac2820..39b00ee 100644 --- a/modules/client/src/com/worxbend/codeberg4s/issues/IssueDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/issues/IssueDecoders.scala @@ -1,20 +1,20 @@ package com.worxbend.codeberg4s.issues import com.worxbend.codeberg4s.client.WireDecode -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.ResponseBody -import com.worxbend.codeberg4s.issues.wire.AttachmentDto -import com.worxbend.codeberg4s.issues.wire.CommentDto -import com.worxbend.codeberg4s.issues.wire.IssueDeadlineDto -import com.worxbend.codeberg4s.issues.wire.IssueDto -import com.worxbend.codeberg4s.issues.wire.IssueSubscriptionDto -import com.worxbend.codeberg4s.issues.wire.LabelDto -import com.worxbend.codeberg4s.issues.wire.MilestoneDto -import com.worxbend.codeberg4s.issues.wire.ReactionDto -import com.worxbend.codeberg4s.issues.wire.TimelineCommentDto -import com.worxbend.codeberg4s.issues.wire.TrackedTimeDto +import com.worxbend.codeberg4s.codec.{ArrayElements, Json} +import com.worxbend.codeberg4s.core.{Decode, ResponseBody} +import com.worxbend.codeberg4s.issues.wire.{ + AttachmentDto, + CommentDto, + IssueDeadlineDto, + IssueDto, + IssueSubscriptionDto, + LabelDto, + MilestoneDto, + ReactionDto, + TimelineCommentDto, + TrackedTimeDto +} import com.worxbend.codeberg4s.users.User import com.worxbend.codeberg4s.users.wire.UserDto diff --git a/modules/client/src/com/worxbend/codeberg4s/issues/IssueLabelApi.scala b/modules/client/src/com/worxbend/codeberg4s/issues/IssueLabelApi.scala index 3e65127..7d5b4d7 100644 --- a/modules/client/src/com/worxbend/codeberg4s/issues/IssueLabelApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/issues/IssueLabelApi.scala @@ -1,19 +1,9 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.removeWithBody -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.issues.wire.EditLabelOptionDto -import com.worxbend.codeberg4s.issues.wire.IssueLabelsOptionDto +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, removeWithBody, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.issues.wire.{EditLabelOptionDto, IssueLabelsOptionDto} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/issues/IssueMilestoneApi.scala b/modules/client/src/com/worxbend/codeberg4s/issues/IssueMilestoneApi.scala index 21f2a12..b3fdea4 100644 --- a/modules/client/src/com/worxbend/codeberg4s/issues/IssueMilestoneApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/issues/IssueMilestoneApi.scala @@ -1,16 +1,9 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.CodebergRequest.{remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} import com.worxbend.codeberg4s.issues.wire.MilestoneOptionDto +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/issues/IssueReactionApi.scala b/modules/client/src/com/worxbend/codeberg4s/issues/IssueReactionApi.scala index 6e1bee8..647988e 100644 --- a/modules/client/src/com/worxbend/codeberg4s/issues/IssueReactionApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/issues/IssueReactionApi.scala @@ -1,20 +1,10 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.removeWithBody -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.issues.wire.EditReactionOptionDto -import com.worxbend.codeberg4s.issues.wire.IssueQueries -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.CodebergRequest.{read, removeWithBody, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.issues.wire.{EditReactionOptionDto, IssueQueries} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/issues/IssueRequests.scala b/modules/client/src/com/worxbend/codeberg4s/issues/IssueRequests.scala index fe80867..d28a6b6 100644 --- a/modules/client/src/com/worxbend/codeberg4s/issues/IssueRequests.scala +++ b/modules/client/src/com/worxbend/codeberg4s/issues/IssueRequests.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName +import com.worxbend.codeberg4s.{Owner, RepoName} /** The path prefixes every sub-API of the issue group builds on, so that `/repos/{owner}/{repo}/issues` is spelled once * rather than eight times. diff --git a/modules/client/src/com/worxbend/codeberg4s/issues/IssueSubscriptionApi.scala b/modules/client/src/com/worxbend/codeberg4s/issues/IssueSubscriptionApi.scala index f8b260b..3567bc4 100644 --- a/modules/client/src/com/worxbend/codeberg4s/issues/IssueSubscriptionApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/issues/IssueSubscriptionApi.scala @@ -1,19 +1,11 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RequestBody -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RequestBody, RetryEligibility} import com.worxbend.codeberg4s.issues.wire.IssueQueries -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.users.User +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/issues/IssueTimeApi.scala b/modules/client/src/com/worxbend/codeberg4s/issues/IssueTimeApi.scala index 71e06d7..5a43a4b 100644 --- a/modules/client/src/com/worxbend/codeberg4s/issues/IssueTimeApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/issues/IssueTimeApi.scala @@ -1,20 +1,10 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.issues.wire.AddTimeOptionDto -import com.worxbend.codeberg4s.issues.wire.IssueQueries -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.issues.wire.{AddTimeOptionDto, IssueQueries} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/miscellaneous/MiscellaneousApi.scala b/modules/client/src/com/worxbend/codeberg4s/miscellaneous/MiscellaneousApi.scala index efe64a3..89a141d 100644 --- a/modules/client/src/com/worxbend/codeberg4s/miscellaneous/MiscellaneousApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/miscellaneous/MiscellaneousApi.scala @@ -1,30 +1,26 @@ package com.worxbend.codeberg4s.miscellaneous -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod import com.worxbend.codeberg4s.client.WireDecode import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RequestBody -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.miscellaneous.wire.GitignoreTemplateDto -import com.worxbend.codeberg4s.miscellaneous.wire.LicenseTemplateDto -import com.worxbend.codeberg4s.miscellaneous.wire.LicenseTemplateSummaryDto -import com.worxbend.codeberg4s.miscellaneous.wire.MarkdownOptionDto -import com.worxbend.codeberg4s.miscellaneous.wire.MarkupOptionDto -import com.worxbend.codeberg4s.miscellaneous.wire.NodeInfoDto -import com.worxbend.codeberg4s.miscellaneous.wire.ServerApiSettingsDto -import com.worxbend.codeberg4s.miscellaneous.wire.ServerAttachmentSettingsDto -import com.worxbend.codeberg4s.miscellaneous.wire.ServerRepositorySettingsDto -import com.worxbend.codeberg4s.miscellaneous.wire.ServerUiSettingsDto -import com.worxbend.codeberg4s.miscellaneous.wire.TemplateLabelDto -import com.worxbend.codeberg4s.miscellaneous.wire.TemplateNamesDto +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Decode, Exec, RequestBody, RetryEligibility} +import com.worxbend.codeberg4s.miscellaneous.wire.{ + GitignoreTemplateDto, + LicenseTemplateDto, + LicenseTemplateSummaryDto, + MarkdownOptionDto, + MarkupOptionDto, + NodeInfoDto, + ServerApiSettingsDto, + ServerAttachmentSettingsDto, + ServerRepositorySettingsDto, + ServerUiSettingsDto, + TemplateLabelDto, + TemplateNamesDto +} import com.worxbend.codeberg4s.repositories.actions.ActionRun import com.worxbend.codeberg4s.repositories.actions.wire.ActionRunDto +import com.worxbend.codeberg4s.{CodebergError, HttpMethod} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/miscellaneous/PlainText.scala b/modules/client/src/com/worxbend/codeberg4s/miscellaneous/PlainText.scala index d388dd0..12206cb 100644 --- a/modules/client/src/com/worxbend/codeberg4s/miscellaneous/PlainText.scala +++ b/modules/client/src/com/worxbend/codeberg4s/miscellaneous/PlainText.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.miscellaneous -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.ResponseBody +import com.worxbend.codeberg4s.core.{Decode, ResponseBody} /** The identity [[com.worxbend.codeberg4s.core.Decode]]: a response body, unchanged. * diff --git a/modules/client/src/com/worxbend/codeberg4s/notifications/NotificationApi.scala b/modules/client/src/com/worxbend/codeberg4s/notifications/NotificationApi.scala index a8d5837..879d3a7 100644 --- a/modules/client/src/com/worxbend/codeberg4s/notifications/NotificationApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/notifications/NotificationApi.scala @@ -1,23 +1,12 @@ package com.worxbend.codeberg4s.notifications -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName import com.worxbend.codeberg4s.client.WireDecode import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.bodiless -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.notifications.wire.NotificationCountDto -import com.worxbend.codeberg4s.notifications.wire.NotificationQueries -import com.worxbend.codeberg4s.notifications.wire.NotificationThreadDto -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.CodebergRequest.{bodiless, read} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Decode, Exec, RetryEligibility} +import com.worxbend.codeberg4s.notifications.wire.{NotificationCountDto, NotificationQueries, NotificationThreadDto} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationApi.scala b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationApi.scala index 9bb3377..155387f 100644 --- a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationApi.scala @@ -1,26 +1,16 @@ package com.worxbend.codeberg4s.organizations -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.bodiless -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.CodebergRequest.{bodiless, read, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} import com.worxbend.codeberg4s.organizations.actions.OrganizationActionApi -import com.worxbend.codeberg4s.organizations.wire.OrganizationOptionDto -import com.worxbend.codeberg4s.organizations.wire.OrganizationQueries -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.organizations.wire.{OrganizationOptionDto, OrganizationQueries} +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.repositories.Repository -import com.worxbend.codeberg4s.repositories.admin.CreateRepository -import com.worxbend.codeberg4s.repositories.admin.RepositoryActivity import com.worxbend.codeberg4s.repositories.admin.wire.RepositoryOptionDto -import com.worxbend.codeberg4s.users.User -import com.worxbend.codeberg4s.users.Username +import com.worxbend.codeberg4s.repositories.admin.{CreateRepository, RepositoryActivity} import com.worxbend.codeberg4s.users.account.AvatarImage +import com.worxbend.codeberg4s.users.{User, Username} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationDecoders.scala index 0cebfd8..ce206b1 100644 --- a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationDecoders.scala @@ -2,19 +2,20 @@ package com.worxbend.codeberg4s.organizations import com.worxbend.codeberg4s.JsonPath import com.worxbend.codeberg4s.client.WireDecode -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.Json +import com.worxbend.codeberg4s.codec.{ArrayElements, Json} import com.worxbend.codeberg4s.core.Decode import com.worxbend.codeberg4s.issues.Label import com.worxbend.codeberg4s.issues.wire.LabelDto -import com.worxbend.codeberg4s.organizations.wire.BlockedUserDto -import com.worxbend.codeberg4s.organizations.wire.OrganizationDto -import com.worxbend.codeberg4s.organizations.wire.OrganizationPermissionsDto -import com.worxbend.codeberg4s.organizations.wire.QuotaArtifactDto -import com.worxbend.codeberg4s.organizations.wire.QuotaAttachmentDto -import com.worxbend.codeberg4s.organizations.wire.QuotaInfoDto -import com.worxbend.codeberg4s.organizations.wire.QuotaPackageDto -import com.worxbend.codeberg4s.organizations.wire.TeamDto +import com.worxbend.codeberg4s.organizations.wire.{ + BlockedUserDto, + OrganizationDto, + OrganizationPermissionsDto, + QuotaArtifactDto, + QuotaAttachmentDto, + QuotaInfoDto, + QuotaPackageDto, + TeamDto +} import com.worxbend.codeberg4s.repositories.Repository import com.worxbend.codeberg4s.repositories.admin.RepositoryActivity import com.worxbend.codeberg4s.repositories.admin.wire.ActivityDto diff --git a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationHookApi.scala b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationHookApi.scala index c188572..1a57a5a 100644 --- a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationHookApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationHookApi.scala @@ -1,22 +1,12 @@ package com.worxbend.codeberg4s.organizations -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.bodiless -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.CodebergRequest.{bodiless, read, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} import com.worxbend.codeberg4s.organizations.wire.OrganizationQueries -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.hooks.CreateHook -import com.worxbend.codeberg4s.repositories.hooks.EditHook -import com.worxbend.codeberg4s.repositories.hooks.HookId -import com.worxbend.codeberg4s.repositories.hooks.Webhook +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.repositories.hooks.wire.HookOptionDto +import com.worxbend.codeberg4s.repositories.hooks.{CreateHook, EditHook, HookId, Webhook} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationLabelApi.scala b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationLabelApi.scala index a14d0fa..cdf351a 100644 --- a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationLabelApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationLabelApi.scala @@ -1,23 +1,12 @@ package com.worxbend.codeberg4s.organizations -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.bodiless -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.issues.CreateLabel -import com.worxbend.codeberg4s.issues.EditLabel -import com.worxbend.codeberg4s.issues.Label -import com.worxbend.codeberg4s.issues.LabelId -import com.worxbend.codeberg4s.issues.wire.CreateLabelOptionDto -import com.worxbend.codeberg4s.issues.wire.EditLabelOptionDto +import com.worxbend.codeberg4s.core.CodebergRequest.{bodiless, read, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.issues.wire.{CreateLabelOptionDto, EditLabelOptionDto} +import com.worxbend.codeberg4s.issues.{CreateLabel, EditLabel, Label, LabelId} import com.worxbend.codeberg4s.organizations.wire.OrganizationQueries -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationQuotaApi.scala b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationQuotaApi.scala index 0cb7beb..24a2b61 100644 --- a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationQuotaApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationQuotaApi.scala @@ -1,14 +1,10 @@ package com.worxbend.codeberg4s.organizations import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} import com.worxbend.codeberg4s.organizations.wire.OrganizationQueries -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.paging.{Page, PageParams} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationTeamApi.scala b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationTeamApi.scala index 413a6d6..24bf7d2 100644 --- a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationTeamApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationTeamApi.scala @@ -1,23 +1,13 @@ package com.worxbend.codeberg4s.organizations -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.bodiless -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.organizations.wire.OrganizationQueries -import com.worxbend.codeberg4s.organizations.wire.TeamOptionDto -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.CodebergRequest.{bodiless, read, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.organizations.wire.{OrganizationQueries, TeamOptionDto} +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.repositories.Repository import com.worxbend.codeberg4s.repositories.admin.RepositoryActivity -import com.worxbend.codeberg4s.users.User -import com.worxbend.codeberg4s.users.Username +import com.worxbend.codeberg4s.users.{User, Username} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/organizations/actions/OrganizationActionApi.scala b/modules/client/src/com/worxbend/codeberg4s/organizations/actions/OrganizationActionApi.scala index 2472540..452b90b 100644 --- a/modules/client/src/com/worxbend/codeberg4s/organizations/actions/OrganizationActionApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/organizations/actions/OrganizationActionApi.scala @@ -1,36 +1,33 @@ package com.worxbend.codeberg4s.organizations.actions -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} import com.worxbend.codeberg4s.organizations.OrgName -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.actions.ActionRunJob -import com.worxbend.codeberg4s.repositories.actions.ActionRunner -import com.worxbend.codeberg4s.repositories.actions.ActionSecret -import com.worxbend.codeberg4s.repositories.actions.ActionVariable -import com.worxbend.codeberg4s.repositories.actions.CreateVariable -import com.worxbend.codeberg4s.repositories.actions.RegisterRunner -import com.worxbend.codeberg4s.repositories.actions.RegisteredRunner -import com.worxbend.codeberg4s.repositories.actions.RunnerId -import com.worxbend.codeberg4s.repositories.actions.RunnerLabel -import com.worxbend.codeberg4s.repositories.actions.RunnerRegistrationToken -import com.worxbend.codeberg4s.repositories.actions.RunnerVisibility -import com.worxbend.codeberg4s.repositories.actions.SecretName -import com.worxbend.codeberg4s.repositories.actions.SecretValue -import com.worxbend.codeberg4s.repositories.actions.UpdateVariable -import com.worxbend.codeberg4s.repositories.actions.VariableName -import com.worxbend.codeberg4s.repositories.actions.wire.ActionQueries -import com.worxbend.codeberg4s.repositories.actions.wire.RegisterRunnerOptionDto -import com.worxbend.codeberg4s.repositories.actions.wire.SecretOptionDto -import com.worxbend.codeberg4s.repositories.actions.wire.VariableOptionDto +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.repositories.actions.wire.{ + ActionQueries, + RegisterRunnerOptionDto, + SecretOptionDto, + VariableOptionDto +} +import com.worxbend.codeberg4s.repositories.actions.{ + ActionRunJob, + ActionRunner, + ActionSecret, + ActionVariable, + CreateVariable, + RegisterRunner, + RegisteredRunner, + RunnerId, + RunnerLabel, + RunnerRegistrationToken, + RunnerVisibility, + SecretName, + SecretValue, + UpdateVariable, + VariableName +} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/organizations/actions/OrganizationActionDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/organizations/actions/OrganizationActionDecoders.scala index 5c06619..69cd2f4 100644 --- a/modules/client/src/com/worxbend/codeberg4s/organizations/actions/OrganizationActionDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/organizations/actions/OrganizationActionDecoders.scala @@ -3,18 +3,22 @@ package com.worxbend.codeberg4s.organizations.actions import com.worxbend.codeberg4s.client.WireDecode import com.worxbend.codeberg4s.codec.Json import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.repositories.actions.ActionRunJob -import com.worxbend.codeberg4s.repositories.actions.ActionRunner -import com.worxbend.codeberg4s.repositories.actions.ActionSecret -import com.worxbend.codeberg4s.repositories.actions.ActionVariable -import com.worxbend.codeberg4s.repositories.actions.RegisteredRunner -import com.worxbend.codeberg4s.repositories.actions.RunnerRegistrationToken -import com.worxbend.codeberg4s.repositories.actions.wire.ActionRunJobDto -import com.worxbend.codeberg4s.repositories.actions.wire.ActionRunnerDto -import com.worxbend.codeberg4s.repositories.actions.wire.ActionSecretDto -import com.worxbend.codeberg4s.repositories.actions.wire.ActionVariableDto -import com.worxbend.codeberg4s.repositories.actions.wire.RegisteredRunnerDto -import com.worxbend.codeberg4s.repositories.actions.wire.RegistrationTokenDto +import com.worxbend.codeberg4s.repositories.actions.wire.{ + ActionRunJobDto, + ActionRunnerDto, + ActionSecretDto, + ActionVariableDto, + RegisteredRunnerDto, + RegistrationTokenDto +} +import com.worxbend.codeberg4s.repositories.actions.{ + ActionRunJob, + ActionRunner, + ActionSecret, + ActionVariable, + RegisteredRunner, + RunnerRegistrationToken +} /** Every response shape [[OrganizationActionApi]] can receive, decoded once and shared. * diff --git a/modules/client/src/com/worxbend/codeberg4s/paging/PageWalk.scala b/modules/client/src/com/worxbend/codeberg4s/paging/PageWalk.scala index 5adab78..5da9391 100644 --- a/modules/client/src/com/worxbend/codeberg4s/paging/PageWalk.scala +++ b/modules/client/src/com/worxbend/codeberg4s/paging/PageWalk.scala @@ -1,11 +1,9 @@ package com.worxbend.codeberg4s.paging -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.CodebergException +import com.worxbend.codeberg4s.{CodebergError, CodebergException} import scala.collection.immutable.VectorBuilder -import scala.concurrent.ExecutionContext -import scala.concurrent.Future +import scala.concurrent.{ExecutionContext, Future} /** Walks a paged endpoint without every listing having to grow its own `listAll`. * diff --git a/modules/client/src/com/worxbend/codeberg4s/pulls/PullRequestApi.scala b/modules/client/src/com/worxbend/codeberg4s/pulls/PullRequestApi.scala index 66ef8de..1ae248a 100644 --- a/modules/client/src/com/worxbend/codeberg4s/pulls/PullRequestApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/pulls/PullRequestApi.scala @@ -1,40 +1,29 @@ package com.worxbend.codeberg4s.pulls -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName import com.worxbend.codeberg4s.client.WireDecode -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RequestBody -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.codec.{ArrayElements, Json} +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Decode, Exec, RequestBody, RetryEligibility} import com.worxbend.codeberg4s.miscellaneous.PlainText -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.pulls.wire.ChangedFileDto -import com.worxbend.codeberg4s.pulls.wire.CreatePullRequestOptionDto -import com.worxbend.codeberg4s.pulls.wire.CreatePullReviewOptionsDto -import com.worxbend.codeberg4s.pulls.wire.DismissPullReviewOptionsDto -import com.worxbend.codeberg4s.pulls.wire.EditPullRequestOptionDto -import com.worxbend.codeberg4s.pulls.wire.MergePullRequestOptionDto -import com.worxbend.codeberg4s.pulls.wire.NewReviewCommentDto -import com.worxbend.codeberg4s.pulls.wire.PullRequestDto -import com.worxbend.codeberg4s.pulls.wire.PullRequestQueries -import com.worxbend.codeberg4s.pulls.wire.PullReviewRequestOptionsDto -import com.worxbend.codeberg4s.pulls.wire.ReviewCommentDto -import com.worxbend.codeberg4s.pulls.wire.ReviewDto -import com.worxbend.codeberg4s.pulls.wire.SubmitPullReviewOptionsDto -import com.worxbend.codeberg4s.repositories.BranchName -import com.worxbend.codeberg4s.repositories.Commit +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.pulls.wire.{ + ChangedFileDto, + CreatePullRequestOptionDto, + CreatePullReviewOptionsDto, + DismissPullReviewOptionsDto, + EditPullRequestOptionDto, + MergePullRequestOptionDto, + NewReviewCommentDto, + PullRequestDto, + PullRequestQueries, + PullReviewRequestOptionsDto, + ReviewCommentDto, + ReviewDto, + SubmitPullReviewOptionsDto +} import com.worxbend.codeberg4s.repositories.wire.CommitDto +import com.worxbend.codeberg4s.repositories.{BranchName, Commit} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/RepositoryApi.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/RepositoryApi.scala index 69b025d..313e425 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/RepositoryApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/RepositoryApi.scala @@ -1,25 +1,21 @@ package com.worxbend.codeberg4s.repositories -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName import com.worxbend.codeberg4s.codec.PagingQuery -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.repositories.access.RepositoryAccessApi import com.worxbend.codeberg4s.repositories.actions.RepositoryActionApi import com.worxbend.codeberg4s.repositories.admin.RepositoryAdminApi import com.worxbend.codeberg4s.repositories.gitdata.RepositoryGitApi -import com.worxbend.codeberg4s.repositories.hooks.RepositoryFlagApi -import com.worxbend.codeberg4s.repositories.hooks.RepositoryHookApi -import com.worxbend.codeberg4s.repositories.hooks.RepositoryIssueConfigApi -import com.worxbend.codeberg4s.repositories.hooks.RepositoryWikiApi +import com.worxbend.codeberg4s.repositories.hooks.{ + RepositoryFlagApi, + RepositoryHookApi, + RepositoryIssueConfigApi, + RepositoryWikiApi +} import com.worxbend.codeberg4s.repositories.publishing.RepositoryPublishingApi +import com.worxbend.codeberg4s.{CodebergError, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/RepositoryDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/RepositoryDecoders.scala index 37f0b7f..40ee425 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/RepositoryDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/RepositoryDecoders.scala @@ -2,17 +2,17 @@ package com.worxbend.codeberg4s.repositories import com.worxbend.codeberg4s.JsonPath import com.worxbend.codeberg4s.client.WireDecode -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.wire.BranchDto -import com.worxbend.codeberg4s.repositories.wire.CommitDto -import com.worxbend.codeberg4s.repositories.wire.ReleaseDto -import com.worxbend.codeberg4s.repositories.wire.RepositoryContentDto -import com.worxbend.codeberg4s.repositories.wire.RepositoryDto -import com.worxbend.codeberg4s.repositories.wire.TagDto -import com.worxbend.codeberg4s.repositories.wire.TopicNamesDto +import com.worxbend.codeberg4s.codec.{ArrayElements, Json} +import com.worxbend.codeberg4s.core.{Decode, DecodeFailure} +import com.worxbend.codeberg4s.repositories.wire.{ + BranchDto, + CommitDto, + ReleaseDto, + RepositoryContentDto, + RepositoryDto, + TagDto, + TopicNamesDto +} import com.worxbend.codeberg4s.wire.SearchEnvelopeDto /** Every response shape [[RepositoryApi]] can receive, decoded once and shared. diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/access/RepositoryAccessApi.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/access/RepositoryAccessApi.scala index d8d55eb..c6b9d6a 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/access/RepositoryAccessApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/access/RepositoryAccessApi.scala @@ -1,27 +1,19 @@ package com.worxbend.codeberg4s.repositories.access -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} import com.worxbend.codeberg4s.organizations.Team -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.access.wire.AccessQueries -import com.worxbend.codeberg4s.repositories.access.wire.AddCollaboratorOptionDto -import com.worxbend.codeberg4s.repositories.access.wire.CreateBranchProtectionOptionDto -import com.worxbend.codeberg4s.repositories.access.wire.CreateKeyOptionDto -import com.worxbend.codeberg4s.repositories.access.wire.EditBranchProtectionOptionDto -import com.worxbend.codeberg4s.repositories.access.wire.TagProtectionOptionDto -import com.worxbend.codeberg4s.users.User -import com.worxbend.codeberg4s.users.Username +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.repositories.access.wire.{ + AccessQueries, + AddCollaboratorOptionDto, + CreateBranchProtectionOptionDto, + CreateKeyOptionDto, + EditBranchProtectionOptionDto, + TagProtectionOptionDto +} +import com.worxbend.codeberg4s.users.{User, Username} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/access/RepositoryAccessDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/access/RepositoryAccessDecoders.scala index 4f8b83d..25a7ff9 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/access/RepositoryAccessDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/access/RepositoryAccessDecoders.scala @@ -1,15 +1,16 @@ package com.worxbend.codeberg4s.repositories.access import com.worxbend.codeberg4s.client.WireDecode -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.Json +import com.worxbend.codeberg4s.codec.{ArrayElements, Json} import com.worxbend.codeberg4s.core.Decode import com.worxbend.codeberg4s.organizations.Team import com.worxbend.codeberg4s.organizations.wire.TeamDto -import com.worxbend.codeberg4s.repositories.access.wire.BranchProtectionDto -import com.worxbend.codeberg4s.repositories.access.wire.CollaboratorAccessDto -import com.worxbend.codeberg4s.repositories.access.wire.DeployKeyDto -import com.worxbend.codeberg4s.repositories.access.wire.TagProtectionDto +import com.worxbend.codeberg4s.repositories.access.wire.{ + BranchProtectionDto, + CollaboratorAccessDto, + DeployKeyDto, + TagProtectionDto +} import com.worxbend.codeberg4s.users.User import com.worxbend.codeberg4s.users.wire.UserDto diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/actions/ActionDownloadApi.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/actions/ActionDownloadApi.scala index 00898ce..fbfd38b 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/actions/ActionDownloadApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/actions/ActionDownloadApi.scala @@ -1,14 +1,7 @@ package com.worxbend.codeberg4s.repositories.actions -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.BinaryHttpPort -import com.worxbend.codeberg4s.core.BinaryResponse -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.Exec +import com.worxbend.codeberg4s.core.{ApiPipeline, BinaryHttpPort, BinaryResponse, CodebergRequest, Exec} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/actions/RepositoryActionApi.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/actions/RepositoryActionApi.scala index 6233311..f87025f 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/actions/RepositoryActionApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/actions/RepositoryActionApi.scala @@ -1,23 +1,16 @@ package com.worxbend.codeberg4s.repositories.actions -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.actions.wire.ActionQueries -import com.worxbend.codeberg4s.repositories.actions.wire.DispatchWorkflowOptionDto -import com.worxbend.codeberg4s.repositories.actions.wire.RegisterRunnerOptionDto -import com.worxbend.codeberg4s.repositories.actions.wire.SecretOptionDto -import com.worxbend.codeberg4s.repositories.actions.wire.VariableOptionDto +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.repositories.actions.wire.{ + ActionQueries, + DispatchWorkflowOptionDto, + RegisterRunnerOptionDto, + SecretOptionDto, + VariableOptionDto +} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/actions/RepositoryActionDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/actions/RepositoryActionDecoders.scala index e9fb86c..54e37e0 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/actions/RepositoryActionDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/actions/RepositoryActionDecoders.scala @@ -3,20 +3,21 @@ package com.worxbend.codeberg4s.repositories.actions import com.worxbend.codeberg4s.JsonPath import com.worxbend.codeberg4s.client.WireDecode import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.ResponseBody +import com.worxbend.codeberg4s.core.{Decode, ResponseBody} import com.worxbend.codeberg4s.miscellaneous.PlainText -import com.worxbend.codeberg4s.repositories.actions.wire.ActionArtifactDto -import com.worxbend.codeberg4s.repositories.actions.wire.ActionRunDto -import com.worxbend.codeberg4s.repositories.actions.wire.ActionRunJobDto -import com.worxbend.codeberg4s.repositories.actions.wire.ActionRunnerDto -import com.worxbend.codeberg4s.repositories.actions.wire.ActionSecretDto -import com.worxbend.codeberg4s.repositories.actions.wire.ActionTaskDto -import com.worxbend.codeberg4s.repositories.actions.wire.ActionVariableDto -import com.worxbend.codeberg4s.repositories.actions.wire.DispatchedWorkflowRunDto -import com.worxbend.codeberg4s.repositories.actions.wire.RegisteredRunnerDto -import com.worxbend.codeberg4s.repositories.actions.wire.RegistrationTokenDto -import com.worxbend.codeberg4s.repositories.actions.wire.WorkflowRunsEnvelopeDto +import com.worxbend.codeberg4s.repositories.actions.wire.{ + ActionArtifactDto, + ActionRunDto, + ActionRunJobDto, + ActionRunnerDto, + ActionSecretDto, + ActionTaskDto, + ActionVariableDto, + DispatchedWorkflowRunDto, + RegisteredRunnerDto, + RegistrationTokenDto, + WorkflowRunsEnvelopeDto +} /** Every response shape [[RepositoryActionApi]] can receive, decoded once and shared. * diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/admin/RepositoryAdminApi.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/admin/RepositoryAdminApi.scala index ac174e9..a602c29 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/admin/RepositoryAdminApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/admin/RepositoryAdminApi.scala @@ -1,41 +1,25 @@ package com.worxbend.codeberg4s.repositories.admin -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.removeWithBody -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.issues.Issue -import com.worxbend.codeberg4s.issues.TrackedTime -import com.worxbend.codeberg4s.issues.TrackedTimeQuery +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, removeWithBody, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} import com.worxbend.codeberg4s.issues.wire.IssueQueries +import com.worxbend.codeberg4s.issues.{Issue, TrackedTime, TrackedTimeQuery} import com.worxbend.codeberg4s.miscellaneous.SigningKey -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.Branch -import com.worxbend.codeberg4s.repositories.BranchName -import com.worxbend.codeberg4s.repositories.ContentEntry -import com.worxbend.codeberg4s.repositories.ContentPath -import com.worxbend.codeberg4s.repositories.Repository -import com.worxbend.codeberg4s.repositories.admin.wire.AdminQueries -import com.worxbend.codeberg4s.repositories.admin.wire.AvatarOptionDto -import com.worxbend.codeberg4s.repositories.admin.wire.BranchOptionDto -import com.worxbend.codeberg4s.repositories.admin.wire.FileOptionsDto -import com.worxbend.codeberg4s.repositories.admin.wire.MigrateRepoOptionsDto -import com.worxbend.codeberg4s.repositories.admin.wire.PushMirrorOptionDto -import com.worxbend.codeberg4s.repositories.admin.wire.RepositoryOptionDto -import com.worxbend.codeberg4s.repositories.admin.wire.TransferRepoOptionDto -import com.worxbend.codeberg4s.repositories.gitdata.FileChange -import com.worxbend.codeberg4s.repositories.gitdata.RefName -import com.worxbend.codeberg4s.users.User -import com.worxbend.codeberg4s.users.Username +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.repositories.admin.wire.{ + AdminQueries, + AvatarOptionDto, + BranchOptionDto, + FileOptionsDto, + MigrateRepoOptionsDto, + PushMirrorOptionDto, + RepositoryOptionDto, + TransferRepoOptionDto +} +import com.worxbend.codeberg4s.repositories.gitdata.{FileChange, RefName} +import com.worxbend.codeberg4s.repositories.{Branch, BranchName, ContentEntry, ContentPath, Repository} +import com.worxbend.codeberg4s.users.{User, Username} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/admin/RepositoryAdminDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/admin/RepositoryAdminDecoders.scala index 1a06d8c..7c54e91 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/admin/RepositoryAdminDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/admin/RepositoryAdminDecoders.scala @@ -2,33 +2,26 @@ package com.worxbend.codeberg4s.repositories.admin import com.worxbend.codeberg4s.JsonPath import com.worxbend.codeberg4s.client.WireDecode -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.issues.Issue -import com.worxbend.codeberg4s.issues.TrackedTime -import com.worxbend.codeberg4s.issues.wire.IssueDto -import com.worxbend.codeberg4s.issues.wire.TrackedTimeDto -import com.worxbend.codeberg4s.miscellaneous.PlainText -import com.worxbend.codeberg4s.miscellaneous.SigningKey -import com.worxbend.codeberg4s.repositories.Branch -import com.worxbend.codeberg4s.repositories.ContentEntry -import com.worxbend.codeberg4s.repositories.Repository -import com.worxbend.codeberg4s.repositories.admin.wire.ActivityDto -import com.worxbend.codeberg4s.repositories.admin.wire.FilesResponseDto -import com.worxbend.codeberg4s.repositories.admin.wire.IssuePinsAllowedDto -import com.worxbend.codeberg4s.repositories.admin.wire.LanguageStatisticsDto -import com.worxbend.codeberg4s.repositories.admin.wire.PushMirrorDto -import com.worxbend.codeberg4s.repositories.admin.wire.SyncForkInfoDto -import com.worxbend.codeberg4s.repositories.admin.wire.TopicSearchEnvelopeDto -import com.worxbend.codeberg4s.repositories.admin.wire.TopicSummaryDto -import com.worxbend.codeberg4s.repositories.admin.wire.WatchInfoDto +import com.worxbend.codeberg4s.codec.{ArrayElements, Json} +import com.worxbend.codeberg4s.core.{Decode, DecodeFailure} +import com.worxbend.codeberg4s.issues.wire.{IssueDto, TrackedTimeDto} +import com.worxbend.codeberg4s.issues.{Issue, TrackedTime} +import com.worxbend.codeberg4s.miscellaneous.{PlainText, SigningKey} +import com.worxbend.codeberg4s.repositories.admin.wire.{ + ActivityDto, + FilesResponseDto, + IssuePinsAllowedDto, + LanguageStatisticsDto, + PushMirrorDto, + SyncForkInfoDto, + TopicSearchEnvelopeDto, + TopicSummaryDto, + WatchInfoDto +} import com.worxbend.codeberg4s.repositories.gitdata.FileChange import com.worxbend.codeberg4s.repositories.gitdata.wire.FileResponseDto -import com.worxbend.codeberg4s.repositories.wire.BranchDto -import com.worxbend.codeberg4s.repositories.wire.ContentEntryDto -import com.worxbend.codeberg4s.repositories.wire.RepositoryDto +import com.worxbend.codeberg4s.repositories.wire.{BranchDto, ContentEntryDto, RepositoryDto} +import com.worxbend.codeberg4s.repositories.{Branch, ContentEntry, Repository} import com.worxbend.codeberg4s.users.User import com.worxbend.codeberg4s.users.wire.UserDto diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/gitdata/GitDataDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/gitdata/GitDataDecoders.scala index 41e9c16..639dd70 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/gitdata/GitDataDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/gitdata/GitDataDecoders.scala @@ -1,23 +1,24 @@ package com.worxbend.codeberg4s.repositories.gitdata import com.worxbend.codeberg4s.client.WireDecode -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.Json +import com.worxbend.codeberg4s.codec.{ArrayElements, Json} import com.worxbend.codeberg4s.core.Decode import com.worxbend.codeberg4s.miscellaneous.PlainText import com.worxbend.codeberg4s.pulls.PullRequest import com.worxbend.codeberg4s.pulls.wire.PullRequestDto import com.worxbend.codeberg4s.repositories.Commit -import com.worxbend.codeberg4s.repositories.gitdata.wire.AnnotatedTagDto -import com.worxbend.codeberg4s.repositories.gitdata.wire.CombinedStatusDto -import com.worxbend.codeberg4s.repositories.gitdata.wire.CommitStatusDto -import com.worxbend.codeberg4s.repositories.gitdata.wire.CompareDto -import com.worxbend.codeberg4s.repositories.gitdata.wire.EditorConfigDto -import com.worxbend.codeberg4s.repositories.gitdata.wire.FileResponseDto -import com.worxbend.codeberg4s.repositories.gitdata.wire.GitBlobDto -import com.worxbend.codeberg4s.repositories.gitdata.wire.GitTreeDto -import com.worxbend.codeberg4s.repositories.gitdata.wire.NoteDto -import com.worxbend.codeberg4s.repositories.gitdata.wire.ReferenceDto +import com.worxbend.codeberg4s.repositories.gitdata.wire.{ + AnnotatedTagDto, + CombinedStatusDto, + CommitStatusDto, + CompareDto, + EditorConfigDto, + FileResponseDto, + GitBlobDto, + GitTreeDto, + NoteDto, + ReferenceDto +} import com.worxbend.codeberg4s.repositories.wire.CommitDto /** Every response shape [[RepositoryGitApi]] can receive, decoded once and shared. diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/gitdata/RepositoryGitApi.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/gitdata/RepositoryGitApi.scala index 94bc7db..ace8eb8 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/gitdata/RepositoryGitApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/gitdata/RepositoryGitApi.scala @@ -1,25 +1,12 @@ package com.worxbend.codeberg4s.repositories.gitdata -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.pulls.PullRequest -import com.worxbend.codeberg4s.repositories.Commit -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.ContentPath -import com.worxbend.codeberg4s.repositories.gitdata.wire.DiffPatchOptionsDto -import com.worxbend.codeberg4s.repositories.gitdata.wire.GitDataQueries -import com.worxbend.codeberg4s.repositories.gitdata.wire.NoteOptionsDto +import com.worxbend.codeberg4s.repositories.gitdata.wire.{DiffPatchOptionsDto, GitDataQueries, NoteOptionsDto} +import com.worxbend.codeberg4s.repositories.{Commit, CommitSha, ContentPath} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlagApi.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlagApi.scala index 97e03ea..49d4b59 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlagApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlagApi.scala @@ -1,15 +1,8 @@ package com.worxbend.codeberg4s.repositories.hooks -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RequestBody -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RequestBody, RetryEligibility} import com.worxbend.codeberg4s.repositories.hooks.wire.RepositoryFlagWire +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryHookApi.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryHookApi.scala index 2d8a377..c6b802c 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryHookApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryHookApi.scala @@ -1,18 +1,9 @@ package com.worxbend.codeberg4s.repositories.hooks -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RequestBody -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.hooks.wire.HookOptionDto -import com.worxbend.codeberg4s.repositories.hooks.wire.HookQueries +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RequestBody, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.repositories.hooks.wire.{HookOptionDto, HookQueries} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryHookDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryHookDecoders.scala index 167b8c1..24a9a13 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryHookDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryHookDecoders.scala @@ -4,16 +4,18 @@ import com.worxbend.codeberg4s.JsonPath import com.worxbend.codeberg4s.client.WireDecode import com.worxbend.codeberg4s.codec.Json import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.repositories.hooks.wire.GitHookDto -import com.worxbend.codeberg4s.repositories.hooks.wire.IssueConfigDto -import com.worxbend.codeberg4s.repositories.hooks.wire.IssueConfigValidationDto -import com.worxbend.codeberg4s.repositories.hooks.wire.IssueTemplateDto -import com.worxbend.codeberg4s.repositories.hooks.wire.RepositoryFlagWire -import com.worxbend.codeberg4s.repositories.hooks.wire.WebhookDto -import com.worxbend.codeberg4s.repositories.hooks.wire.WikiCommitDto -import com.worxbend.codeberg4s.repositories.hooks.wire.WikiCommitListDto -import com.worxbend.codeberg4s.repositories.hooks.wire.WikiPageDto -import com.worxbend.codeberg4s.repositories.hooks.wire.WikiPageMetaDto +import com.worxbend.codeberg4s.repositories.hooks.wire.{ + GitHookDto, + IssueConfigDto, + IssueConfigValidationDto, + IssueTemplateDto, + RepositoryFlagWire, + WebhookDto, + WikiCommitDto, + WikiCommitListDto, + WikiPageDto, + WikiPageMetaDto +} /** Every response shape the four API classes of this package can receive, decoded once and shared. * diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryIssueConfigApi.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryIssueConfigApi.scala index f03f6a8..3672b3b 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryIssueConfigApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryIssueConfigApi.scala @@ -1,12 +1,7 @@ package com.worxbend.codeberg4s.repositories.hooks -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.{CodebergError, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryWikiApi.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryWikiApi.scala index 2785454..67b1073 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryWikiApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryWikiApi.scala @@ -1,17 +1,9 @@ package com.worxbend.codeberg4s.repositories.hooks -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.hooks.wire.HookQueries -import com.worxbend.codeberg4s.repositories.hooks.wire.WikiPageOptionsDto +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.repositories.hooks.wire.{HookQueries, WikiPageOptionsDto} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/publishing/PublishingDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/publishing/PublishingDecoders.scala index 562e447..aede8d4 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/publishing/PublishingDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/publishing/PublishingDecoders.scala @@ -2,13 +2,10 @@ package com.worxbend.codeberg4s.repositories.publishing import com.worxbend.codeberg4s.JsonPath import com.worxbend.codeberg4s.client.WireDecode -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.Json +import com.worxbend.codeberg4s.codec.{ArrayElements, Json} import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.repositories.ReleaseAsset -import com.worxbend.codeberg4s.repositories.Tag -import com.worxbend.codeberg4s.repositories.wire.ReleaseAssetDto -import com.worxbend.codeberg4s.repositories.wire.TagDto +import com.worxbend.codeberg4s.repositories.wire.{ReleaseAssetDto, TagDto} +import com.worxbend.codeberg4s.repositories.{ReleaseAsset, Tag} /** The response shapes [[RepositoryPublishingApi]] can receive that no other group already decodes. * diff --git a/modules/client/src/com/worxbend/codeberg4s/repositories/publishing/RepositoryPublishingApi.scala b/modules/client/src/com/worxbend/codeberg4s/repositories/publishing/RepositoryPublishingApi.scala index c07d521..d59aabd 100644 --- a/modules/client/src/com/worxbend/codeberg4s/repositories/publishing/RepositoryPublishingApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/repositories/publishing/RepositoryPublishingApi.scala @@ -1,34 +1,28 @@ package com.worxbend.codeberg4s.repositories.publishing -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName import com.worxbend.codeberg4s.codec.PagingQuery -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RequestBody -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.Release -import com.worxbend.codeberg4s.repositories.ReleaseAsset -import com.worxbend.codeberg4s.repositories.ReleaseId -import com.worxbend.codeberg4s.repositories.Repository -import com.worxbend.codeberg4s.repositories.RepositoryDecoders -import com.worxbend.codeberg4s.repositories.Tag -import com.worxbend.codeberg4s.repositories.TagName -import com.worxbend.codeberg4s.repositories.publishing.wire.CreateForkOptionDto -import com.worxbend.codeberg4s.repositories.publishing.wire.CreateReleaseOptionDto -import com.worxbend.codeberg4s.repositories.publishing.wire.CreateTagOptionDto -import com.worxbend.codeberg4s.repositories.publishing.wire.EditAttachmentOptionsDto -import com.worxbend.codeberg4s.repositories.publishing.wire.EditReleaseOptionDto -import com.worxbend.codeberg4s.repositories.publishing.wire.GenerateRepoOptionDto -import com.worxbend.codeberg4s.repositories.publishing.wire.RepoTopicOptionsDto +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RequestBody, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.repositories.publishing.wire.{ + CreateForkOptionDto, + CreateReleaseOptionDto, + CreateTagOptionDto, + EditAttachmentOptionsDto, + EditReleaseOptionDto, + GenerateRepoOptionDto, + RepoTopicOptionsDto +} +import com.worxbend.codeberg4s.repositories.{ + Release, + ReleaseAsset, + ReleaseId, + Repository, + RepositoryDecoders, + Tag, + TagName +} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/users/UserApi.scala b/modules/client/src/com/worxbend/codeberg4s/users/UserApi.scala index d4b8251..e1ac150 100644 --- a/modules/client/src/com/worxbend/codeberg4s/users/UserApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/users/UserApi.scala @@ -1,32 +1,23 @@ package com.worxbend.codeberg4s.users -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.JsonPath import com.worxbend.codeberg4s.client.WireDecode -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.PagingQuery -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest +import com.worxbend.codeberg4s.codec.{Json, PagingQuery} import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Decode, DecodeFailure, Exec, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.repositories.Repository import com.worxbend.codeberg4s.repositories.wire.RepositoryDto -import com.worxbend.codeberg4s.users.account.UserAccountApi -import com.worxbend.codeberg4s.users.account.UserActionApi -import com.worxbend.codeberg4s.users.account.UserApplicationApi -import com.worxbend.codeberg4s.users.account.UserHookApi -import com.worxbend.codeberg4s.users.account.UserQuotaApi -import com.worxbend.codeberg4s.users.social.UserKeyApi -import com.worxbend.codeberg4s.users.social.UserSocialApi -import com.worxbend.codeberg4s.users.social.UserTokenApi -import com.worxbend.codeberg4s.users.wire.PublicKeyDto -import com.worxbend.codeberg4s.users.wire.UserDto +import com.worxbend.codeberg4s.users.account.{ + UserAccountApi, + UserActionApi, + UserApplicationApi, + UserHookApi, + UserQuotaApi +} +import com.worxbend.codeberg4s.users.social.{UserKeyApi, UserSocialApi, UserTokenApi} +import com.worxbend.codeberg4s.users.wire.{PublicKeyDto, UserDto} import com.worxbend.codeberg4s.wire.SearchEnvelopeDto +import com.worxbend.codeberg4s.{CodebergError, JsonPath} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/users/account/UserAccountApi.scala b/modules/client/src/com/worxbend/codeberg4s/users/account/UserAccountApi.scala index b9b5313..f24e4d4 100644 --- a/modules/client/src/com/worxbend/codeberg4s/users/account/UserAccountApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/users/account/UserAccountApi.scala @@ -1,21 +1,12 @@ package com.worxbend.codeberg4s.users.account -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.removeWithBody -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, removeWithBody, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} import com.worxbend.codeberg4s.organizations.Team -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.repositories.Repository -import com.worxbend.codeberg4s.users.account.wire.AccountOptionDto -import com.worxbend.codeberg4s.users.account.wire.AccountQueries +import com.worxbend.codeberg4s.users.account.wire.{AccountOptionDto, AccountQueries} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/users/account/UserAccountDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/users/account/UserAccountDecoders.scala index 60e710d..5a18e5c 100644 --- a/modules/client/src/com/worxbend/codeberg4s/users/account/UserAccountDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/users/account/UserAccountDecoders.scala @@ -1,32 +1,37 @@ package com.worxbend.codeberg4s.users.account import com.worxbend.codeberg4s.client.WireDecode -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.Json +import com.worxbend.codeberg4s.codec.{ArrayElements, Json} import com.worxbend.codeberg4s.core.Decode import com.worxbend.codeberg4s.organizations.Team import com.worxbend.codeberg4s.organizations.wire.TeamDto import com.worxbend.codeberg4s.repositories.Repository -import com.worxbend.codeberg4s.repositories.actions.ActionRunJob -import com.worxbend.codeberg4s.repositories.actions.ActionRunner -import com.worxbend.codeberg4s.repositories.actions.ActionVariable -import com.worxbend.codeberg4s.repositories.actions.RegisteredRunner -import com.worxbend.codeberg4s.repositories.actions.RunnerRegistrationToken -import com.worxbend.codeberg4s.repositories.actions.wire.ActionRunJobDto -import com.worxbend.codeberg4s.repositories.actions.wire.ActionRunnerDto -import com.worxbend.codeberg4s.repositories.actions.wire.ActionVariableDto -import com.worxbend.codeberg4s.repositories.actions.wire.RegisteredRunnerDto -import com.worxbend.codeberg4s.repositories.actions.wire.RegistrationTokenDto +import com.worxbend.codeberg4s.repositories.actions.wire.{ + ActionRunJobDto, + ActionRunnerDto, + ActionVariableDto, + RegisteredRunnerDto, + RegistrationTokenDto +} +import com.worxbend.codeberg4s.repositories.actions.{ + ActionRunJob, + ActionRunner, + ActionVariable, + RegisteredRunner, + RunnerRegistrationToken +} import com.worxbend.codeberg4s.repositories.hooks.Webhook import com.worxbend.codeberg4s.repositories.hooks.wire.WebhookDto import com.worxbend.codeberg4s.repositories.wire.RepositoryDto -import com.worxbend.codeberg4s.users.account.wire.EmailDto -import com.worxbend.codeberg4s.users.account.wire.OAuth2ApplicationDto -import com.worxbend.codeberg4s.users.account.wire.QuotaInfoDto -import com.worxbend.codeberg4s.users.account.wire.QuotaUsedArtifactDto -import com.worxbend.codeberg4s.users.account.wire.QuotaUsedAttachmentDto -import com.worxbend.codeberg4s.users.account.wire.QuotaUsedPackageDto -import com.worxbend.codeberg4s.users.account.wire.UserSettingsDto +import com.worxbend.codeberg4s.users.account.wire.{ + EmailDto, + OAuth2ApplicationDto, + QuotaInfoDto, + QuotaUsedArtifactDto, + QuotaUsedAttachmentDto, + QuotaUsedPackageDto, + UserSettingsDto +} /** Every response shape the five API classes of this package can receive, decoded once and shared. * diff --git a/modules/client/src/com/worxbend/codeberg4s/users/account/UserActionApi.scala b/modules/client/src/com/worxbend/codeberg4s/users/account/UserActionApi.scala index 5ab7c0e..a6fcaad 100644 --- a/modules/client/src/com/worxbend/codeberg4s/users/account/UserActionApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/users/account/UserActionApi.scala @@ -1,34 +1,31 @@ package com.worxbend.codeberg4s.users.account -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.actions.ActionRunJob -import com.worxbend.codeberg4s.repositories.actions.ActionRunner -import com.worxbend.codeberg4s.repositories.actions.ActionVariable -import com.worxbend.codeberg4s.repositories.actions.CreateVariable -import com.worxbend.codeberg4s.repositories.actions.RegisterRunner -import com.worxbend.codeberg4s.repositories.actions.RegisteredRunner -import com.worxbend.codeberg4s.repositories.actions.RunnerId -import com.worxbend.codeberg4s.repositories.actions.RunnerLabel -import com.worxbend.codeberg4s.repositories.actions.RunnerRegistrationToken -import com.worxbend.codeberg4s.repositories.actions.RunnerVisibility -import com.worxbend.codeberg4s.repositories.actions.SecretName -import com.worxbend.codeberg4s.repositories.actions.SecretValue -import com.worxbend.codeberg4s.repositories.actions.UpdateVariable -import com.worxbend.codeberg4s.repositories.actions.VariableName -import com.worxbend.codeberg4s.repositories.actions.wire.ActionQueries -import com.worxbend.codeberg4s.repositories.actions.wire.RegisterRunnerOptionDto -import com.worxbend.codeberg4s.repositories.actions.wire.SecretOptionDto -import com.worxbend.codeberg4s.repositories.actions.wire.VariableOptionDto +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.repositories.actions.wire.{ + ActionQueries, + RegisterRunnerOptionDto, + SecretOptionDto, + VariableOptionDto +} +import com.worxbend.codeberg4s.repositories.actions.{ + ActionRunJob, + ActionRunner, + ActionVariable, + CreateVariable, + RegisterRunner, + RegisteredRunner, + RunnerId, + RunnerLabel, + RunnerRegistrationToken, + RunnerVisibility, + SecretName, + SecretValue, + UpdateVariable, + VariableName +} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/users/account/UserApplicationApi.scala b/modules/client/src/com/worxbend/codeberg4s/users/account/UserApplicationApi.scala index 48b9630..44ca192 100644 --- a/modules/client/src/com/worxbend/codeberg4s/users/account/UserApplicationApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/users/account/UserApplicationApi.scala @@ -1,18 +1,10 @@ package com.worxbend.codeberg4s.users.account -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.users.account.wire.AccountOptionDto -import com.worxbend.codeberg4s.users.account.wire.AccountQueries +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.users.account.wire.{AccountOptionDto, AccountQueries} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/users/account/UserHookApi.scala b/modules/client/src/com/worxbend/codeberg4s/users/account/UserHookApi.scala index 3736347..b37e813 100644 --- a/modules/client/src/com/worxbend/codeberg4s/users/account/UserHookApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/users/account/UserHookApi.scala @@ -1,22 +1,12 @@ package com.worxbend.codeberg4s.users.account -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.hooks.CreateHook -import com.worxbend.codeberg4s.repositories.hooks.EditHook -import com.worxbend.codeberg4s.repositories.hooks.HookId -import com.worxbend.codeberg4s.repositories.hooks.Webhook +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.repositories.hooks.wire.HookOptionDto +import com.worxbend.codeberg4s.repositories.hooks.{CreateHook, EditHook, HookId, Webhook} import com.worxbend.codeberg4s.users.account.wire.AccountQueries +import com.worxbend.codeberg4s.{CodebergError, HttpMethod} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/users/account/UserQuotaApi.scala b/modules/client/src/com/worxbend/codeberg4s/users/account/UserQuotaApi.scala index f9a4178..90c484a 100644 --- a/modules/client/src/com/worxbend/codeberg4s/users/account/UserQuotaApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/users/account/UserQuotaApi.scala @@ -1,13 +1,9 @@ package com.worxbend.codeberg4s.users.account import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.users.account.wire.AccountQueries import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/users/social/SocialDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/users/social/SocialDecoders.scala index c55f16e..fe90203 100644 --- a/modules/client/src/com/worxbend/codeberg4s/users/social/SocialDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/users/social/SocialDecoders.scala @@ -2,11 +2,8 @@ package com.worxbend.codeberg4s.users.social import com.worxbend.codeberg4s.JsonPath import com.worxbend.codeberg4s.client.WireDecode -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.core.ResponseBody +import com.worxbend.codeberg4s.codec.{ArrayElements, Json} +import com.worxbend.codeberg4s.core.{Decode, DecodeFailure, ResponseBody} import com.worxbend.codeberg4s.issues.TrackedTime import com.worxbend.codeberg4s.issues.wire.TrackedTimeDto import com.worxbend.codeberg4s.miscellaneous.PlainText @@ -14,15 +11,15 @@ import com.worxbend.codeberg4s.repositories.Repository import com.worxbend.codeberg4s.repositories.admin.RepositoryActivity import com.worxbend.codeberg4s.repositories.admin.wire.ActivityDto import com.worxbend.codeberg4s.repositories.wire.RepositoryDto -import com.worxbend.codeberg4s.users.PublicKey -import com.worxbend.codeberg4s.users.User -import com.worxbend.codeberg4s.users.social.wire.AccessTokenDto -import com.worxbend.codeberg4s.users.social.wire.BlockedUserDto -import com.worxbend.codeberg4s.users.social.wire.GpgKeyDto -import com.worxbend.codeberg4s.users.social.wire.HeatmapEntryDto -import com.worxbend.codeberg4s.users.social.wire.StopWatchDto -import com.worxbend.codeberg4s.users.wire.PublicKeyDto -import com.worxbend.codeberg4s.users.wire.UserDto +import com.worxbend.codeberg4s.users.social.wire.{ + AccessTokenDto, + BlockedUserDto, + GpgKeyDto, + HeatmapEntryDto, + StopWatchDto +} +import com.worxbend.codeberg4s.users.wire.{PublicKeyDto, UserDto} +import com.worxbend.codeberg4s.users.{PublicKey, User} /** Every response shape [[UserSocialApi]], [[UserKeyApi]] and [[UserTokenApi]] can receive, decoded once and shared. * diff --git a/modules/client/src/com/worxbend/codeberg4s/users/social/UserKeyApi.scala b/modules/client/src/com/worxbend/codeberg4s/users/social/UserKeyApi.scala index f51da92..6de8666 100644 --- a/modules/client/src/com/worxbend/codeberg4s/users/social/UserKeyApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/users/social/UserKeyApi.scala @@ -1,22 +1,16 @@ package com.worxbend.codeberg4s.users.social -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.CodebergRequest.remove -import com.worxbend.codeberg4s.core.CodebergRequest.write -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.users.PublicKey -import com.worxbend.codeberg4s.users.Username -import com.worxbend.codeberg4s.users.social.wire.CreateGpgKeyOptionDto -import com.worxbend.codeberg4s.users.social.wire.CreateKeyOptionDto -import com.worxbend.codeberg4s.users.social.wire.SocialQueries -import com.worxbend.codeberg4s.users.social.wire.VerifyGpgKeyOptionDto +import com.worxbend.codeberg4s.core.CodebergRequest.{read, remove, write} +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} +import com.worxbend.codeberg4s.users.social.wire.{ + CreateGpgKeyOptionDto, + CreateKeyOptionDto, + SocialQueries, + VerifyGpgKeyOptionDto +} +import com.worxbend.codeberg4s.users.{PublicKey, Username} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/users/social/UserSocialApi.scala b/modules/client/src/com/worxbend/codeberg4s/users/social/UserSocialApi.scala index 3b90e94..cebf20f 100644 --- a/modules/client/src/com/worxbend/codeberg4s/users/social/UserSocialApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/users/social/UserSocialApi.scala @@ -1,24 +1,14 @@ package com.worxbend.codeberg4s.users.social -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest import com.worxbend.codeberg4s.core.CodebergRequest.read -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RequestBody -import com.worxbend.codeberg4s.core.RetryEligibility +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RequestBody, RetryEligibility} import com.worxbend.codeberg4s.issues.TrackedTime -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.repositories.Repository import com.worxbend.codeberg4s.repositories.admin.RepositoryActivity -import com.worxbend.codeberg4s.users.User -import com.worxbend.codeberg4s.users.Username -import com.worxbend.codeberg4s.users.social.wire.RemoteFollowOptionDto -import com.worxbend.codeberg4s.users.social.wire.SocialQueries +import com.worxbend.codeberg4s.users.social.wire.{RemoteFollowOptionDto, SocialQueries} +import com.worxbend.codeberg4s.users.{User, Username} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod, Owner, RepoName} import scala.concurrent.Future diff --git a/modules/client/src/com/worxbend/codeberg4s/users/social/UserTokenApi.scala b/modules/client/src/com/worxbend/codeberg4s/users/social/UserTokenApi.scala index 132592d..8108785 100644 --- a/modules/client/src/com/worxbend/codeberg4s/users/social/UserTokenApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/users/social/UserTokenApi.scala @@ -1,17 +1,10 @@ package com.worxbend.codeberg4s.users.social -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.core.ApiPipeline -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.Exec -import com.worxbend.codeberg4s.core.RequestBody -import com.worxbend.codeberg4s.core.RetryEligibility -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.{ApiPipeline, CodebergRequest, Exec, RequestBody, RetryEligibility} +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.users.Username -import com.worxbend.codeberg4s.users.social.wire.CreateAccessTokenOptionDto -import com.worxbend.codeberg4s.users.social.wire.SocialQueries +import com.worxbend.codeberg4s.users.social.wire.{CreateAccessTokenOptionDto, SocialQueries} +import com.worxbend.codeberg4s.{CodebergError, HttpMethod} import scala.concurrent.Future diff --git a/modules/codec/src/com/worxbend/codeberg4s/codec/Json.scala b/modules/codec/src/com/worxbend/codeberg4s/codec/Json.scala index 98a6aac..4bc5e45 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/codec/Json.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/codec/Json.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.codec import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.core.Decode -import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.core.ResponseBody - -import com.github.plokhotnyuk.jsoniter_scala.core.ReaderConfig -import com.github.plokhotnyuk.jsoniter_scala.core.readFromArray -import com.github.plokhotnyuk.jsoniter_scala.core.readFromString -import com.github.plokhotnyuk.jsoniter_scala.core.writeToString +import com.worxbend.codeberg4s.core.{Decode, DecodeFailure, ResponseBody} + +import com.github.plokhotnyuk.jsoniter_scala.core.{ReaderConfig, readFromArray, readFromString, writeToString} import scala.util.control.NonFatal diff --git a/modules/codec/src/com/worxbend/codeberg4s/codec/JsonValue.scala b/modules/codec/src/com/worxbend/codeberg4s/codec/JsonValue.scala index 4c8240f..bab87aa 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/codec/JsonValue.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/codec/JsonValue.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.codec -import com.github.plokhotnyuk.jsoniter_scala.core.JsonReader -import com.github.plokhotnyuk.jsoniter_scala.core.JsonValueCodec -import com.github.plokhotnyuk.jsoniter_scala.core.JsonWriter +import com.github.plokhotnyuk.jsoniter_scala.core.{JsonReader, JsonValueCodec, JsonWriter} import scala.annotation.tailrec diff --git a/modules/codec/src/com/worxbend/codeberg4s/codec/Timestamps.scala b/modules/codec/src/com/worxbend/codeberg4s/codec/Timestamps.scala index 93099d8..f0e5ee7 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/codec/Timestamps.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/codec/Timestamps.scala @@ -3,11 +3,9 @@ package com.worxbend.codeberg4s.codec import scala.annotation.tailrec import scala.util.Try -import java.time.Instant -import java.time.OffsetDateTime -import java.time.Year import java.time.format.DateTimeFormatter import java.time.temporal.ChronoUnit +import java.time.{Instant, OffsetDateTime, Year} /** Turns Forgejo's timestamp strings into instants, sentinels included. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/codec/Wire.scala b/modules/codec/src/com/worxbend/codeberg4s/codec/Wire.scala index ef22a45..8b1e8b1 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/codec/Wire.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/codec/Wire.scala @@ -1,8 +1,7 @@ package com.worxbend.codeberg4s.codec -import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.ValidationError import com.worxbend.codeberg4s.core.DecodeFailure +import com.worxbend.codeberg4s.{JsonPath, ValidationError} /** The `wire → domain` half of a DTO conversion. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/AddTimeOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/AddTimeOptionDto.scala index ac02471..ac9ffa6 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/AddTimeOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/AddTimeOptionDto.scala @@ -1,9 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.WireValues +import com.worxbend.codeberg4s.codec.{Json, JsonValue, Timestamps, WireValues} import com.worxbend.codeberg4s.issues.AddTrackedTime /** Forgejo's `AddTimeOption` request model — the body of `POST /repos/{owner}/{repo}/issues/{index}/times`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/AttachmentDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/AttachmentDto.scala index bb8f845..fdd3823 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/AttachmentDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/AttachmentDto.scala @@ -1,15 +1,9 @@ package com.worxbend.codeberg4s.issues.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.issues.AttachmentId -import com.worxbend.codeberg4s.issues.AttachmentKind -import com.worxbend.codeberg4s.issues.IssueAttachment +import com.worxbend.codeberg4s.issues.{AttachmentId, AttachmentKind, IssueAttachment} /** Forgejo's `Attachment` model, field for field — the response of all ten attachment endpoints in this group. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CommentDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CommentDto.scala index b929b2c..bb3baf8 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CommentDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CommentDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.issues.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.issues.Comment -import com.worxbend.codeberg4s.issues.CommentId +import com.worxbend.codeberg4s.issues.{Comment, CommentId} import com.worxbend.codeberg4s.users.wire.UserDto /** Forgejo's `Comment` model, field for field. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateIssueCommentOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateIssueCommentOptionDto.scala index e0f24b9..ab6e5f7 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateIssueCommentOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateIssueCommentOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.issues.CreateComment /** Forgejo's `CreateIssueCommentOption` request model — the body of diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateIssueOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateIssueOptionDto.scala index 1f5917d..3778229 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateIssueOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateIssueOptionDto.scala @@ -1,9 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.WireValues +import com.worxbend.codeberg4s.codec.{Json, JsonValue, Timestamps, WireValues} import com.worxbend.codeberg4s.issues.CreateIssue /** Forgejo's `CreateIssueOption` request model — the body of `POST /repos/{owner}/{repo}/issues`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateLabelOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateLabelOptionDto.scala index 374e27e..fcca278 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateLabelOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/CreateLabelOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.issues.CreateLabel /** Forgejo's `CreateLabelOption` request model — the body of `POST /repos/{owner}/{repo}/labels`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditAttachmentOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditAttachmentOptionDto.scala index 7d0e6c1..9fe2c85 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditAttachmentOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditAttachmentOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.issues.EditAttachment /** Forgejo's `EditAttachmentOptions` request model — the body of `PATCH …/issues/{index}/assets/{attachment_id}` and of diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditDeadlineOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditDeadlineOptionDto.scala index 09e5acf..0d39332 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditDeadlineOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditDeadlineOptionDto.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.Timestamps +import com.worxbend.codeberg4s.codec.{Json, JsonValue, Timestamps} import java.time.Instant diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditIssueCommentOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditIssueCommentOptionDto.scala index 99a8924..830623d 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditIssueCommentOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditIssueCommentOptionDto.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.Timestamps +import com.worxbend.codeberg4s.codec.{Json, JsonValue, Timestamps} import com.worxbend.codeberg4s.issues.EditComment /** Forgejo's `EditIssueCommentOption` request model — the body of `PATCH /repos/{owner}/{repo}/issues/comments/{id}` diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditIssueOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditIssueOptionDto.scala index 5fa5921..ae01aeb 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditIssueOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditIssueOptionDto.scala @@ -1,9 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.WireValues +import com.worxbend.codeberg4s.codec.{Json, JsonValue, Timestamps, WireValues} import com.worxbend.codeberg4s.issues.EditIssue /** Forgejo's `EditIssueOption` request model — the body of `PATCH /repos/{owner}/{repo}/issues/{index}`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditLabelOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditLabelOptionDto.scala index a1b4377..cc091f6 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditLabelOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditLabelOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.issues.EditLabel /** Forgejo's `EditLabelOption` request model — the body of `PATCH /repos/{owner}/{repo}/labels/{id}`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditReactionOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditReactionOptionDto.scala index abca48d..c52ad28 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditReactionOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/EditReactionOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.issues.ReactionContent /** Forgejo's `EditReactionOption` request model — the body of every reaction call, whether it adds or removes. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueDeadlineDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueDeadlineDto.scala index 5bae1bf..ac6738f 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueDeadlineDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueDeadlineDto.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.issues.IssueDeadline diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueDto.scala index 0b5d3fb..5185e56 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueDto.scala @@ -1,15 +1,9 @@ package com.worxbend.codeberg4s.issues.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.issues.Issue -import com.worxbend.codeberg4s.issues.IssueNumber -import com.worxbend.codeberg4s.issues.LifecycleState +import com.worxbend.codeberg4s.issues.{Issue, IssueNumber, LifecycleState} import com.worxbend.codeberg4s.users.User import com.worxbend.codeberg4s.users.wire.UserDto diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueLabelsOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueLabelsOptionDto.scala index 225bdf0..20c20dd 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueLabelsOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueLabelsOptionDto.scala @@ -1,12 +1,7 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.WireValues -import com.worxbend.codeberg4s.issues.LabelRef -import com.worxbend.codeberg4s.issues.LabelRemoval -import com.worxbend.codeberg4s.issues.LabelUpdate +import com.worxbend.codeberg4s.codec.{Json, JsonValue, Timestamps, WireValues} +import com.worxbend.codeberg4s.issues.{LabelRef, LabelRemoval, LabelUpdate} /** Forgejo's `IssueLabelsOption` and `DeleteLabelsOption` request models — the bodies of the four per-issue label * calls. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueMetaDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueMetaDto.scala index a4bfea5..ae7a2b6 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueMetaDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueMetaDto.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.WireValues +import com.worxbend.codeberg4s.codec.{Json, JsonValue, WireValues} import com.worxbend.codeberg4s.issues.IssueRef /** Forgejo's `IssueMeta` request model — the body of all six blocking and dependency calls. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueQueries.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueQueries.scala index 14aedc6..895ec38 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueQueries.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueQueries.scala @@ -1,13 +1,14 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.PagingQuery -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.issues.CommentQuery -import com.worxbend.codeberg4s.issues.IssueQuery -import com.worxbend.codeberg4s.issues.IssueSearchQuery -import com.worxbend.codeberg4s.issues.StateFilter -import com.worxbend.codeberg4s.issues.TrackedTimeQuery -import com.worxbend.codeberg4s.issues.UploadAttachment +import com.worxbend.codeberg4s.codec.{PagingQuery, Timestamps} +import com.worxbend.codeberg4s.issues.{ + CommentQuery, + IssueQuery, + IssueSearchQuery, + StateFilter, + TrackedTimeQuery, + UploadAttachment +} import com.worxbend.codeberg4s.paging.PageParams /** The query strings this group's listing endpoints send. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueSubscriptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueSubscriptionDto.scala index 0fef9c5..2574d60 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueSubscriptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/IssueSubscriptionDto.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.issues.IssueSubscription diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/LabelDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/LabelDto.scala index 90f820f..47440b7 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/LabelDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/LabelDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.issues.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.issues.Label -import com.worxbend.codeberg4s.issues.LabelColor -import com.worxbend.codeberg4s.issues.LabelId +import com.worxbend.codeberg4s.issues.{Label, LabelColor, LabelId} /** Forgejo's `Label` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/MilestoneDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/MilestoneDto.scala index a50d577..b632af4 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/MilestoneDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/MilestoneDto.scala @@ -1,15 +1,9 @@ package com.worxbend.codeberg4s.issues.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.issues.LifecycleState -import com.worxbend.codeberg4s.issues.Milestone -import com.worxbend.codeberg4s.issues.MilestoneId +import com.worxbend.codeberg4s.issues.{LifecycleState, Milestone, MilestoneId} /** Forgejo's `Milestone` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/MilestoneOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/MilestoneOptionDto.scala index 56660ab..6bbd299 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/MilestoneOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/MilestoneOptionDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.issues.CreateMilestone -import com.worxbend.codeberg4s.issues.EditMilestone +import com.worxbend.codeberg4s.codec.{Json, JsonValue, Timestamps} +import com.worxbend.codeberg4s.issues.{CreateMilestone, EditMilestone} /** Forgejo's `CreateMilestoneOption` and `EditMilestoneOption` request models — the bodies of * `POST /repos/{owner}/{repo}/milestones` and `PATCH /repos/{owner}/{repo}/milestones/{id}`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/ReactionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/ReactionDto.scala index edda8e5..68338dc 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/ReactionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/ReactionDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.issues.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.issues.Reaction -import com.worxbend.codeberg4s.issues.ReactionContent +import com.worxbend.codeberg4s.issues.{Reaction, ReactionContent} import com.worxbend.codeberg4s.users.wire.UserDto /** Forgejo's `Reaction` model, field for field. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/RepositoryMetaDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/RepositoryMetaDto.scala index a21f560..f021735 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/RepositoryMetaDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/RepositoryMetaDto.scala @@ -1,10 +1,8 @@ package com.worxbend.codeberg4s.issues.wire -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.repositories.RepoSlug +import com.worxbend.codeberg4s.{Owner, RepoName} /** Forgejo's `RepositoryMeta` model — the four-key object an `Issue` carries under `repository`. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/TimelineCommentDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/TimelineCommentDto.scala index 58ca1e5..c8946bc 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/TimelineCommentDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/TimelineCommentDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.issues.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.issues.CommentId -import com.worxbend.codeberg4s.issues.TimelineEvent +import com.worxbend.codeberg4s.issues.{CommentId, TimelineEvent} import com.worxbend.codeberg4s.users.wire.UserDto /** Forgejo's `TimelineComment` model — one element of `GET /repos/{owner}/{repo}/issues/{index}/timeline`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/TrackedTimeDto.scala b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/TrackedTimeDto.scala index 2321c72..3b211f0 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/issues/wire/TrackedTimeDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/issues/wire/TrackedTimeDto.scala @@ -1,17 +1,11 @@ package com.worxbend.codeberg4s.issues.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.issues.TrackedTime -import com.worxbend.codeberg4s.issues.TrackedTimeId +import com.worxbend.codeberg4s.issues.{TrackedTime, TrackedTimeId} -import scala.concurrent.duration.DurationLong -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{DurationLong, FiniteDuration} /** Forgejo's `TrackedTime` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/GitignoreTemplateDto.scala b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/GitignoreTemplateDto.scala index 7137cd0..9cfe1e6 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/GitignoreTemplateDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/GitignoreTemplateDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.miscellaneous.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.miscellaneous.GitignoreTemplate diff --git a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/LicenseTemplateDto.scala b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/LicenseTemplateDto.scala index d8e1fdb..ae45880 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/LicenseTemplateDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/LicenseTemplateDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.miscellaneous.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.miscellaneous.LicenseTemplate diff --git a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/LicenseTemplateSummaryDto.scala b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/LicenseTemplateSummaryDto.scala index 031d274..33d2119 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/LicenseTemplateSummaryDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/LicenseTemplateSummaryDto.scala @@ -1,13 +1,9 @@ package com.worxbend.codeberg4s.miscellaneous.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.miscellaneous.LicenseTemplateSummary -import com.worxbend.codeberg4s.miscellaneous.TemplateName +import com.worxbend.codeberg4s.miscellaneous.{LicenseTemplateSummary, TemplateName} /** Forgejo's `LicensesTemplateListEntry` model — one element of `GET /licenses`. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/MarkdownOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/MarkdownOptionDto.scala index c9c66e8..09e6c8e 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/MarkdownOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/MarkdownOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.miscellaneous.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.miscellaneous.MarkdownRenderRequest /** Forgejo's `MarkdownOption` model — the '''request''' body of `POST /markdown`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/MarkupOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/MarkupOptionDto.scala index cd75563..0c26f89 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/MarkupOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/MarkupOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.miscellaneous.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.miscellaneous.MarkupRenderRequest /** Forgejo's `MarkupOption` model — the '''request''' body of `POST /markup`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/NodeInfoDto.scala b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/NodeInfoDto.scala index 7852fc8..3d14158 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/NodeInfoDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/NodeInfoDto.scala @@ -1,15 +1,9 @@ package com.worxbend.codeberg4s.miscellaneous.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.miscellaneous.NodeInfo -import com.worxbend.codeberg4s.miscellaneous.NodeInfoServices -import com.worxbend.codeberg4s.miscellaneous.NodeInfoSoftware -import com.worxbend.codeberg4s.miscellaneous.NodeInfoUsage -import com.worxbend.codeberg4s.miscellaneous.NodeInfoUsers +import com.worxbend.codeberg4s.miscellaneous.{NodeInfo, NodeInfoServices, NodeInfoSoftware, NodeInfoUsage, NodeInfoUsers} /** Forgejo's `NodeInfo` model — the body of `GET /nodeinfo`. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerApiSettingsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerApiSettingsDto.scala index b1ddb0d..bcc1a95 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerApiSettingsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerApiSettingsDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.miscellaneous.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.miscellaneous.ServerApiSettings diff --git a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerAttachmentSettingsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerAttachmentSettingsDto.scala index f5b6b98..935f754 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerAttachmentSettingsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerAttachmentSettingsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.miscellaneous.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.miscellaneous.ServerAttachmentSettings diff --git a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerRepositorySettingsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerRepositorySettingsDto.scala index 5c9d0fe..9676a4f 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerRepositorySettingsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerRepositorySettingsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.miscellaneous.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.miscellaneous.ServerRepositorySettings diff --git a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerUiSettingsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerUiSettingsDto.scala index 7e40dee..2df5ecb 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerUiSettingsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/ServerUiSettingsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.miscellaneous.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.miscellaneous.ServerUiSettings diff --git a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/TemplateLabelDto.scala b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/TemplateLabelDto.scala index 6ae2d2c..13322ef 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/TemplateLabelDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/miscellaneous/wire/TemplateLabelDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.miscellaneous.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.issues.LabelColor import com.worxbend.codeberg4s.miscellaneous.TemplateLabel diff --git a/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationCountDto.scala b/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationCountDto.scala index 8767c06..768cb9a 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationCountDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationCountDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.notifications.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.notifications.UnreadCount diff --git a/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationQueries.scala b/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationQueries.scala index ed56dec..b2e5ef2 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationQueries.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationQueries.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.notifications.wire -import com.worxbend.codeberg4s.codec.PagingQuery -import com.worxbend.codeberg4s.codec.Timestamps +import com.worxbend.codeberg4s.codec.{PagingQuery, Timestamps} import com.worxbend.codeberg4s.notifications.NotificationQuery import com.worxbend.codeberg4s.paging.PageParams diff --git a/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationSubjectDto.scala b/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationSubjectDto.scala index 94edc40..9334b82 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationSubjectDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationSubjectDto.scala @@ -1,12 +1,9 @@ package com.worxbend.codeberg4s.notifications.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.notifications.NotificationSubject -import com.worxbend.codeberg4s.notifications.NotificationSubjectType +import com.worxbend.codeberg4s.notifications.{NotificationSubject, NotificationSubjectType} /** Forgejo's `NotificationSubject` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationThreadDto.scala b/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationThreadDto.scala index 5497128..e59717f 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationThreadDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/notifications/wire/NotificationThreadDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.notifications.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.notifications.NotificationThread -import com.worxbend.codeberg4s.notifications.NotificationThreadId +import com.worxbend.codeberg4s.notifications.{NotificationThread, NotificationThreadId} import com.worxbend.codeberg4s.repositories.wire.RepositoryDto /** Forgejo's `NotificationThread` model, field for field. diff --git a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/BlockedUserDto.scala b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/BlockedUserDto.scala index f60d0fe..e23555c 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/BlockedUserDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/BlockedUserDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.organizations.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.organizations.BlockId -import com.worxbend.codeberg4s.organizations.BlockedUser +import com.worxbend.codeberg4s.organizations.{BlockId, BlockedUser} /** Forgejo's `BlockedUser` model, field for field — both of its fields. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationDto.scala b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationDto.scala index d8f44e6..d8ed84a 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.organizations.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.organizations.OrgName -import com.worxbend.codeberg4s.organizations.Organization +import com.worxbend.codeberg4s.organizations.{OrgName, Organization} import com.worxbend.codeberg4s.users.UserVisibility /** Forgejo's `Organization` model, field for field. diff --git a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationOptionDto.scala index 0b63cc7..0ed1582 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationOptionDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.organizations.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.organizations.CreateOrganization -import com.worxbend.codeberg4s.organizations.EditOrganization -import com.worxbend.codeberg4s.organizations.OrgName +import com.worxbend.codeberg4s.codec.{Json, JsonValue} +import com.worxbend.codeberg4s.organizations.{CreateOrganization, EditOrganization, OrgName} import com.worxbend.codeberg4s.users.account.AvatarImage /** Forgejo's `CreateOrgOption`, `EditOrgOption`, `RenameOrgOption` and `UpdateUserAvatarOption` request models. diff --git a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationPermissionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationPermissionsDto.scala index 2cff7c9..84b17cd 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationPermissionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationPermissionsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.organizations.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.organizations.OrganizationPermissions diff --git a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationQueries.scala b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationQueries.scala index 1e5cb61..568013e 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationQueries.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/OrganizationQueries.scala @@ -1,8 +1,7 @@ package com.worxbend.codeberg4s.organizations.wire import com.worxbend.codeberg4s.codec.PagingQuery -import com.worxbend.codeberg4s.organizations.OrganizationLabelSort -import com.worxbend.codeberg4s.organizations.QuotaSubject +import com.worxbend.codeberg4s.organizations.{OrganizationLabelSort, QuotaSubject} import com.worxbend.codeberg4s.paging.PageParams import java.time.LocalDate diff --git a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/QuotaInfoDto.scala b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/QuotaInfoDto.scala index 2bedb53..d9a9adb 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/QuotaInfoDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/QuotaInfoDto.scala @@ -1,17 +1,18 @@ package com.worxbend.codeberg4s.organizations.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.organizations.QuotaAssetSizes -import com.worxbend.codeberg4s.organizations.QuotaAttachmentSizes -import com.worxbend.codeberg4s.organizations.QuotaGitSizes -import com.worxbend.codeberg4s.organizations.QuotaGroup -import com.worxbend.codeberg4s.organizations.QuotaInfo -import com.worxbend.codeberg4s.organizations.QuotaRepositorySizes -import com.worxbend.codeberg4s.organizations.QuotaRule -import com.worxbend.codeberg4s.organizations.QuotaSizes -import com.worxbend.codeberg4s.organizations.QuotaUsage +import com.worxbend.codeberg4s.organizations.{ + QuotaAssetSizes, + QuotaAttachmentSizes, + QuotaGitSizes, + QuotaGroup, + QuotaInfo, + QuotaRepositorySizes, + QuotaRule, + QuotaSizes, + QuotaUsage +} /** Forgejo's `QuotaInfo` model and the seven definitions nested inside it. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/QuotaUsedDto.scala b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/QuotaUsedDto.scala index 194ef1c..1cfe856 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/QuotaUsedDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/QuotaUsedDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.organizations.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.organizations.QuotaArtifact -import com.worxbend.codeberg4s.organizations.QuotaAttachment -import com.worxbend.codeberg4s.organizations.QuotaAttachmentContext -import com.worxbend.codeberg4s.organizations.QuotaPackage +import com.worxbend.codeberg4s.organizations.{QuotaArtifact, QuotaAttachment, QuotaAttachmentContext, QuotaPackage} /** Forgejo's `QuotaUsedArtifact`, `QuotaUsedAttachment` and `QuotaUsedPackage` models — the elements of the three quota * usage listings. diff --git a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/TeamDto.scala b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/TeamDto.scala index e7e5daf..5a28a1b 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/TeamDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/TeamDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.organizations.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.organizations.Team -import com.worxbend.codeberg4s.organizations.TeamId -import com.worxbend.codeberg4s.organizations.TeamPermission +import com.worxbend.codeberg4s.organizations.{Team, TeamId, TeamPermission} /** Forgejo's `Team` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/TeamOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/TeamOptionDto.scala index e93f864..eca7410 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/TeamOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/TeamOptionDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.organizations.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.organizations.CreateTeam -import com.worxbend.codeberg4s.organizations.EditTeam -import com.worxbend.codeberg4s.organizations.TeamPermission +import com.worxbend.codeberg4s.codec.{Json, JsonValue} +import com.worxbend.codeberg4s.organizations.{CreateTeam, EditTeam, TeamPermission} /** Forgejo's `CreateTeamOption` and `EditTeamOption` request models — the bodies of `POST /orgs/{org}/teams` and * `PATCH /teams/{id}`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ChangedFileDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ChangedFileDto.scala index 1749368..bf43d80 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ChangedFileDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ChangedFileDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.pulls.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.pulls.ChangedFile import com.worxbend.codeberg4s.repositories.CommitFileStatus diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/CreatePullRequestOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/CreatePullRequestOptionDto.scala index c6ac796..3249e6c 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/CreatePullRequestOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/CreatePullRequestOptionDto.scala @@ -1,9 +1,6 @@ package com.worxbend.codeberg4s.pulls.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.WireValues +import com.worxbend.codeberg4s.codec.{Json, JsonValue, Timestamps, WireValues} import com.worxbend.codeberg4s.pulls.CreatePullRequest /** Forgejo's `CreatePullRequestOption` request model — the body of `POST /repos/{owner}/{repo}/pulls`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/CreatePullReviewOptionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/CreatePullReviewOptionsDto.scala index 925fc67..7984425 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/CreatePullReviewOptionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/CreatePullReviewOptionsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.pulls.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.pulls.CreateReview /** Forgejo's `CreatePullReviewOptions` request model — the body of `POST /repos/{owner}/{repo}/pulls/{index}/reviews`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/DismissPullReviewOptionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/DismissPullReviewOptionsDto.scala index 000a5d8..446d8bd 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/DismissPullReviewOptionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/DismissPullReviewOptionsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.pulls.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.pulls.DismissReview /** Forgejo's `DismissPullReviewOptions` request model — the body of diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/EditPullRequestOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/EditPullRequestOptionDto.scala index 8cb3d61..80ac314 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/EditPullRequestOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/EditPullRequestOptionDto.scala @@ -1,9 +1,6 @@ package com.worxbend.codeberg4s.pulls.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.WireValues +import com.worxbend.codeberg4s.codec.{Json, JsonValue, Timestamps, WireValues} import com.worxbend.codeberg4s.pulls.EditPullRequest /** Forgejo's `EditPullRequestOption` request model — the body of `PATCH /repos/{owner}/{repo}/pulls/{index}`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/MergePullRequestOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/MergePullRequestOptionDto.scala index b193e3e..8fb42a8 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/MergePullRequestOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/MergePullRequestOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.pulls.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.pulls.MergePullRequest /** Forgejo's `MergePullRequestOption` request model — the body of `POST /repos/{owner}/{repo}/pulls/{index}/merge`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/NewReviewCommentDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/NewReviewCommentDto.scala index b4e6865..7b1b44b 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/NewReviewCommentDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/NewReviewCommentDto.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.pulls.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.WireValues +import com.worxbend.codeberg4s.codec.{Json, JsonValue, WireValues} import com.worxbend.codeberg4s.pulls.NewReviewComment /** Forgejo's `CreatePullReviewComment` request model. diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestBranchDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestBranchDto.scala index 7eb6fc1..9cef5df 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestBranchDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestBranchDto.scala @@ -1,14 +1,11 @@ package com.worxbend.codeberg4s.pulls.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.pulls.PullRequestBranch -import com.worxbend.codeberg4s.repositories.BranchName -import com.worxbend.codeberg4s.repositories.CommitSha import com.worxbend.codeberg4s.repositories.wire.RepositoryDto +import com.worxbend.codeberg4s.repositories.{BranchName, CommitSha} /** Forgejo's `PRBranchInfo` model, field for field — the `base` and `head` objects of a pull request. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestDto.scala index 6b2aff6..2367f6e 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestDto.scala @@ -1,17 +1,10 @@ package com.worxbend.codeberg4s.pulls.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.issues.wire.LabelDto -import com.worxbend.codeberg4s.issues.wire.MilestoneDto -import com.worxbend.codeberg4s.pulls.PullRequest -import com.worxbend.codeberg4s.pulls.PullRequestNumber -import com.worxbend.codeberg4s.pulls.PullRequestState +import com.worxbend.codeberg4s.issues.wire.{LabelDto, MilestoneDto} +import com.worxbend.codeberg4s.pulls.{PullRequest, PullRequestNumber, PullRequestState} import com.worxbend.codeberg4s.repositories.CommitSha import com.worxbend.codeberg4s.users.User import com.worxbend.codeberg4s.users.wire.UserDto diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestQueries.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestQueries.scala index f72e37f..36f8433 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestQueries.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullRequestQueries.scala @@ -2,9 +2,7 @@ package com.worxbend.codeberg4s.pulls.wire import com.worxbend.codeberg4s.codec.PagingQuery import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.pulls.DiffRequest -import com.worxbend.codeberg4s.pulls.PullRequestQuery -import com.worxbend.codeberg4s.pulls.UpdateStyle +import com.worxbend.codeberg4s.pulls.{DiffRequest, PullRequestQuery, UpdateStyle} /** The query strings this group's listing endpoints send. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullReviewRequestOptionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullReviewRequestOptionsDto.scala index 1899b28..f5f7fc1 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullReviewRequestOptionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/PullReviewRequestOptionsDto.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.pulls.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.WireValues +import com.worxbend.codeberg4s.codec.{Json, JsonValue, WireValues} import com.worxbend.codeberg4s.pulls.ReviewRequest /** Forgejo's `PullReviewRequestOptions` request model — the body of '''both''' the `POST` and the `DELETE` on diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ReviewCommentDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ReviewCommentDto.scala index fbc8183..75d90ce 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ReviewCommentDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ReviewCommentDto.scala @@ -1,15 +1,9 @@ package com.worxbend.codeberg4s.pulls.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.pulls.ReviewComment -import com.worxbend.codeberg4s.pulls.ReviewCommentId -import com.worxbend.codeberg4s.pulls.ReviewId +import com.worxbend.codeberg4s.pulls.{ReviewComment, ReviewCommentId, ReviewId} import com.worxbend.codeberg4s.repositories.CommitSha import com.worxbend.codeberg4s.users.wire.UserDto diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ReviewDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ReviewDto.scala index f4e3dce..93f45a2 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ReviewDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/ReviewDto.scala @@ -1,15 +1,9 @@ package com.worxbend.codeberg4s.pulls.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.pulls.Review -import com.worxbend.codeberg4s.pulls.ReviewId -import com.worxbend.codeberg4s.pulls.ReviewState +import com.worxbend.codeberg4s.pulls.{Review, ReviewId, ReviewState} import com.worxbend.codeberg4s.repositories.CommitSha import com.worxbend.codeberg4s.users.wire.UserDto diff --git a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/SubmitPullReviewOptionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/SubmitPullReviewOptionsDto.scala index fa4f5f3..c50e7a9 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/SubmitPullReviewOptionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/pulls/wire/SubmitPullReviewOptionsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.pulls.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.pulls.SubmitReview /** Forgejo's `SubmitPullReviewOptions` request model — the body of diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/AddCollaboratorOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/AddCollaboratorOptionDto.scala index ea91c08..577ee7c 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/AddCollaboratorOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/AddCollaboratorOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.access.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.access.CollaboratorPermission /** Forgejo's `AddCollaboratorOption` request model — the body of diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/BranchProtectionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/BranchProtectionDto.scala index a05abf5..83c11c1 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/BranchProtectionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/BranchProtectionDto.scala @@ -1,11 +1,7 @@ package com.worxbend.codeberg4s.repositories.access.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.access.BranchProtection diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/BranchProtectionOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/BranchProtectionOptionDto.scala index 6d011ad..d586edc 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/BranchProtectionOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/BranchProtectionOptionDto.scala @@ -1,11 +1,12 @@ package com.worxbend.codeberg4s.repositories.access.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.repositories.access.ApprovalCount -import com.worxbend.codeberg4s.repositories.access.BranchProtectionSettings -import com.worxbend.codeberg4s.repositories.access.CreateBranchProtection -import com.worxbend.codeberg4s.repositories.access.EditBranchProtection +import com.worxbend.codeberg4s.codec.{Json, JsonValue} +import com.worxbend.codeberg4s.repositories.access.{ + ApprovalCount, + BranchProtectionSettings, + CreateBranchProtection, + EditBranchProtection +} import com.worxbend.codeberg4s.users.Username /** The twenty-three tunables both branch protection request models share, rendered once. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/CollaboratorAccessDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/CollaboratorAccessDto.scala index 37c4ab3..3185315 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/CollaboratorAccessDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/CollaboratorAccessDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.repositories.access.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.organizations.TeamPermission import com.worxbend.codeberg4s.repositories.access.CollaboratorAccess diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/CreateKeyOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/CreateKeyOptionDto.scala index 6c14c17..2eabfcd 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/CreateKeyOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/CreateKeyOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.access.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.access.CreateDeployKey /** Forgejo's `CreateKeyOption` request model — the body of `POST /repos/{owner}/{repo}/keys`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/DeployKeyDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/DeployKeyDto.scala index 65251c0..28a1329 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/DeployKeyDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/DeployKeyDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.repositories.access.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.access.DeployKey -import com.worxbend.codeberg4s.repositories.access.DeployKeyId +import com.worxbend.codeberg4s.repositories.access.{DeployKey, DeployKeyId} import com.worxbend.codeberg4s.repositories.wire.RepositoryDto /** The wire spelling of every property a deploy key has, written down exactly once. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/TagProtectionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/TagProtectionDto.scala index 37b454b..980cc6b 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/TagProtectionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/TagProtectionDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.repositories.access.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.access.TagProtection -import com.worxbend.codeberg4s.repositories.access.TagProtectionId +import com.worxbend.codeberg4s.repositories.access.{TagProtection, TagProtectionId} /** The wire spelling of every property a tag protection rule has, written down exactly once. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/TagProtectionOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/TagProtectionOptionDto.scala index 14c654e..d6096ec 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/TagProtectionOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/access/wire/TagProtectionOptionDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.repositories.access.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.repositories.access.CreateTagProtection -import com.worxbend.codeberg4s.repositories.access.EditTagProtection +import com.worxbend.codeberg4s.codec.{Json, JsonValue} +import com.worxbend.codeberg4s.repositories.access.{CreateTagProtection, EditTagProtection} import com.worxbend.codeberg4s.users.Username /** Forgejo's `CreateTagProtectionOption` and `EditTagProtectionOption` request models — the bodies of `POST` on diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionArtifactDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionArtifactDto.scala index e178246..cc0a782 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionArtifactDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionArtifactDto.scala @@ -1,15 +1,9 @@ package com.worxbend.codeberg4s.repositories.actions.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.actions.ActionArtifact -import com.worxbend.codeberg4s.repositories.actions.ArtifactId -import com.worxbend.codeberg4s.repositories.actions.RunId +import com.worxbend.codeberg4s.repositories.actions.{ActionArtifact, ArtifactId, RunId} /** Forgejo's `ActionArtifact` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionQueries.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionQueries.scala index a184004..dd6f1cc 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionQueries.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionQueries.scala @@ -2,12 +2,14 @@ package com.worxbend.codeberg4s.repositories.actions.wire import com.worxbend.codeberg4s.codec.PagingQuery import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.actions.ActionRunQuery -import com.worxbend.codeberg4s.repositories.actions.ActionTaskQuery -import com.worxbend.codeberg4s.repositories.actions.ArtifactQuery -import com.worxbend.codeberg4s.repositories.actions.JobAttempt -import com.worxbend.codeberg4s.repositories.actions.RunnerLabel -import com.worxbend.codeberg4s.repositories.actions.RunnerVisibility +import com.worxbend.codeberg4s.repositories.actions.{ + ActionRunQuery, + ActionTaskQuery, + ArtifactQuery, + JobAttempt, + RunnerLabel, + RunnerVisibility +} /** The query strings this group's endpoints send. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRepoRefDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRepoRefDto.scala index c6fbc25..51d17c6 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRepoRefDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRepoRefDto.scala @@ -1,10 +1,8 @@ package com.worxbend.codeberg4s.repositories.actions.wire -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.repositories.RepoSlug +import com.worxbend.codeberg4s.{Owner, RepoName} /** The `repository` object embedded in an `ActionRun`, read down to the two things a caller needs from it. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunDto.scala index a181d82..95f72f3 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.repositories.actions.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.actions.ActionRun -import com.worxbend.codeberg4s.repositories.actions.RunId +import com.worxbend.codeberg4s.repositories.actions.{ActionRun, RunId} import com.worxbend.codeberg4s.users.wire.UserDto import scala.concurrent.duration.FiniteDuration diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunJobDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunJobDto.scala index 66a59fd..0714f80 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunJobDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunJobDto.scala @@ -1,15 +1,9 @@ package com.worxbend.codeberg4s.repositories.actions.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.actions.ActionRunJob -import com.worxbend.codeberg4s.repositories.actions.JobAttempt -import com.worxbend.codeberg4s.repositories.actions.JobId -import com.worxbend.codeberg4s.repositories.actions.RunId +import com.worxbend.codeberg4s.repositories.actions.{ActionRunJob, JobAttempt, JobId, RunId} /** Forgejo's `ActionRunJob` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunnerDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunnerDto.scala index 2260b14..23ab2d2 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunnerDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionRunnerDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.repositories.actions.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.actions.ActionRunner -import com.worxbend.codeberg4s.repositories.actions.RunnerId -import com.worxbend.codeberg4s.repositories.actions.RunnerStatus +import com.worxbend.codeberg4s.repositories.actions.{ActionRunner, RunnerId, RunnerStatus} /** Forgejo's `ActionRunner` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionSecretDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionSecretDto.scala index dc6757b..4577188 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionSecretDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionSecretDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.repositories.actions.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.actions.ActionSecret -import com.worxbend.codeberg4s.repositories.actions.SecretName +import com.worxbend.codeberg4s.repositories.actions.{ActionSecret, SecretName} /** Forgejo's `Secret` model — two keys, and neither of them is the secret. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionTaskDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionTaskDto.scala index 8629782..75d173d 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionTaskDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionTaskDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.repositories.actions.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.actions.ActionTask -import com.worxbend.codeberg4s.repositories.actions.TaskId +import com.worxbend.codeberg4s.repositories.actions.{ActionTask, TaskId} /** Forgejo's `ActionTask` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionVariableDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionVariableDto.scala index 311d413..a0e02b1 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionVariableDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionVariableDto.scala @@ -1,13 +1,9 @@ package com.worxbend.codeberg4s.repositories.actions.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.actions.ActionVariable -import com.worxbend.codeberg4s.repositories.actions.VariableName +import com.worxbend.codeberg4s.repositories.actions.{ActionVariable, VariableName} /** Forgejo's `ActionVariable` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionWire.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionWire.scala index de63135..cff7325 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionWire.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/ActionWire.scala @@ -2,8 +2,7 @@ package com.worxbend.codeberg4s.repositories.actions.wire import com.worxbend.codeberg4s.codec.JsonFields import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.actions.ActionStatus -import com.worxbend.codeberg4s.repositories.actions.WorkflowFileName +import com.worxbend.codeberg4s.repositories.actions.{ActionStatus, WorkflowFileName} /** The three readings this group's DTOs share, written once because getting any of them wrong twice would be silent. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/DispatchWorkflowOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/DispatchWorkflowOptionDto.scala index 2768d4c..3c8ab8b 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/DispatchWorkflowOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/DispatchWorkflowOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.actions.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.actions.DispatchWorkflow /** Forgejo's `DispatchWorkflowOption` request model — the body of diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/DispatchedWorkflowRunDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/DispatchedWorkflowRunDto.scala index 7ee2e91..1b55eaf 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/DispatchedWorkflowRunDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/DispatchedWorkflowRunDto.scala @@ -1,10 +1,8 @@ package com.worxbend.codeberg4s.repositories.actions.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.actions.DispatchedWorkflowRun -import com.worxbend.codeberg4s.repositories.actions.RunId +import com.worxbend.codeberg4s.repositories.actions.{DispatchedWorkflowRun, RunId} /** Forgejo's `DispatchWorkflowRun` model — what a dispatch reports when it was asked to report anything. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegisterRunnerOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegisterRunnerOptionDto.scala index 7d58825..cba36cb 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegisterRunnerOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegisterRunnerOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.actions.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.actions.RegisterRunner /** Forgejo's `RegisterRunnerOptions` request model — the body of `POST /repos/{owner}/{repo}/actions/runners`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegisteredRunnerDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegisteredRunnerDto.scala index c69cba4..72976ba 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegisteredRunnerDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegisteredRunnerDto.scala @@ -1,13 +1,9 @@ package com.worxbend.codeberg4s.repositories.actions.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.actions.RegisteredRunner -import com.worxbend.codeberg4s.repositories.actions.RunnerId -import com.worxbend.codeberg4s.repositories.actions.RunnerRegistrationToken +import com.worxbend.codeberg4s.repositories.actions.{RegisteredRunner, RunnerId, RunnerRegistrationToken} /** Forgejo's `RegisterRunnerResponse` model — what a successful runner registration hands back. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegistrationTokenDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegistrationTokenDto.scala index f5a694c..4d74a29 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegistrationTokenDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/RegistrationTokenDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.repositories.actions.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.actions.RunnerRegistrationToken diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/SecretOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/SecretOptionDto.scala index 6fe8328..cff7909 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/SecretOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/SecretOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.actions.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.actions.SecretValue /** Forgejo's `CreateOrUpdateSecretOption` request model — the body of diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/VariableOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/VariableOptionDto.scala index 4934989..b627f70 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/VariableOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/actions/wire/VariableOptionDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.repositories.actions.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.repositories.actions.CreateVariable -import com.worxbend.codeberg4s.repositories.actions.UpdateVariable +import com.worxbend.codeberg4s.codec.{Json, JsonValue} +import com.worxbend.codeberg4s.repositories.actions.{CreateVariable, UpdateVariable} /** Forgejo's `CreateVariableOption` and `UpdateVariableOption` request models — the bodies of `POST` and `PUT` on * `/repos/{owner}/{repo}/actions/variables/{variablename}`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/ActivityDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/ActivityDto.scala index 3e0fe47..4e1e4cb 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/ActivityDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/ActivityDto.scala @@ -1,16 +1,10 @@ package com.worxbend.codeberg4s.repositories.admin.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.issues.wire.CommentDto -import com.worxbend.codeberg4s.repositories.admin.ActivityId -import com.worxbend.codeberg4s.repositories.admin.ActivityOperation -import com.worxbend.codeberg4s.repositories.admin.RepositoryActivity +import com.worxbend.codeberg4s.repositories.admin.{ActivityId, ActivityOperation, RepositoryActivity} import com.worxbend.codeberg4s.repositories.wire.RepositoryDto import com.worxbend.codeberg4s.users.wire.UserDto diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/BranchOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/BranchOptionDto.scala index a3ec471..bf2796d 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/BranchOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/BranchOptionDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.repositories.admin.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.repositories.admin.AvatarImage -import com.worxbend.codeberg4s.repositories.admin.CreateBranch -import com.worxbend.codeberg4s.repositories.admin.RenameBranch +import com.worxbend.codeberg4s.codec.{Json, JsonValue} +import com.worxbend.codeberg4s.repositories.admin.{AvatarImage, CreateBranch, RenameBranch} /** Forgejo's `CreateBranchRepoOption` and `UpdateBranchRepoOption` request models — the bodies of * `POST /repos/{owner}/{repo}/branches` and `PATCH /repos/{owner}/{repo}/branches/{branch}`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/FileOptionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/FileOptionsDto.scala index fe7d647..e7a99b4 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/FileOptionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/FileOptionsDto.scala @@ -1,16 +1,16 @@ package com.worxbend.codeberg4s.repositories.admin.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.repositories.admin.ChangeFiles -import com.worxbend.codeberg4s.repositories.admin.CommitDates -import com.worxbend.codeberg4s.repositories.admin.CommitIdentity -import com.worxbend.codeberg4s.repositories.admin.CommitOptions -import com.worxbend.codeberg4s.repositories.admin.CreateFile -import com.worxbend.codeberg4s.repositories.admin.DeleteFile -import com.worxbend.codeberg4s.repositories.admin.FileOperation -import com.worxbend.codeberg4s.repositories.admin.UpdateFile +import com.worxbend.codeberg4s.codec.{Json, JsonValue, Timestamps} +import com.worxbend.codeberg4s.repositories.admin.{ + ChangeFiles, + CommitDates, + CommitIdentity, + CommitOptions, + CreateFile, + DeleteFile, + FileOperation, + UpdateFile +} /** Forgejo's four contents-write request models — `CreateFileOptions`, `UpdateFileOptions`, `DeleteFileOptions` and * `ChangeFilesOptions`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/FilesResponseDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/FilesResponseDto.scala index 8dc2389..0d7b13e 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/FilesResponseDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/FilesResponseDto.scala @@ -1,15 +1,11 @@ package com.worxbend.codeberg4s.repositories.admin.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.admin.FileChangeSet import com.worxbend.codeberg4s.repositories.gitdata.wire.FileCommitDto -import com.worxbend.codeberg4s.repositories.wire.ContentEntryDto -import com.worxbend.codeberg4s.repositories.wire.VerificationDto +import com.worxbend.codeberg4s.repositories.wire.{ContentEntryDto, VerificationDto} /** Forgejo's `FilesResponse` — what `POST /repos/{owner}/{repo}/contents` answers with. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/LanguageStatisticsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/LanguageStatisticsDto.scala index 3c17e1d..30fec4e 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/LanguageStatisticsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/LanguageStatisticsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.admin.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.repositories.admin.LanguageBreakdown /** Forgejo's `LanguageStatistics` response — a bare object with no fixed keys. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/MigrateRepoOptionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/MigrateRepoOptionsDto.scala index 5cef6bf..3f8e7a6 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/MigrateRepoOptionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/MigrateRepoOptionsDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.repositories.admin.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.repositories.admin.CreatePushMirror -import com.worxbend.codeberg4s.repositories.admin.MigrateRepository -import com.worxbend.codeberg4s.repositories.admin.TransferRepository +import com.worxbend.codeberg4s.codec.{Json, JsonValue} +import com.worxbend.codeberg4s.repositories.admin.{CreatePushMirror, MigrateRepository, TransferRepository} /** Forgejo's `MigrateRepoOptions` request model — the body of `POST /repos/migrate`. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/PushMirrorDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/PushMirrorDto.scala index 3d2e14f..76695d2 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/PushMirrorDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/PushMirrorDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.repositories.admin.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.admin.MirrorName -import com.worxbend.codeberg4s.repositories.admin.PushMirror +import com.worxbend.codeberg4s.repositories.admin.{MirrorName, PushMirror} /** Forgejo's `PushMirror` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/RepositoryOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/RepositoryOptionDto.scala index c47d50c..580f04e 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/RepositoryOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/RepositoryOptionDto.scala @@ -1,12 +1,13 @@ package com.worxbend.codeberg4s.repositories.admin.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.repositories.admin.CreateRepository -import com.worxbend.codeberg4s.repositories.admin.EditRepository -import com.worxbend.codeberg4s.repositories.admin.ExternalTrackerSettings -import com.worxbend.codeberg4s.repositories.admin.ExternalWikiSettings -import com.worxbend.codeberg4s.repositories.admin.InternalTrackerSettings +import com.worxbend.codeberg4s.codec.{Json, JsonValue} +import com.worxbend.codeberg4s.repositories.admin.{ + CreateRepository, + EditRepository, + ExternalTrackerSettings, + ExternalWikiSettings, + InternalTrackerSettings +} /** Forgejo's `CreateRepoOption` and `EditRepoOption` request models — the bodies of `POST /user/repos` and * `PATCH /repos/{owner}/{repo}`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/SyncForkInfoDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/SyncForkInfoDto.scala index 9bb1928..45a739c 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/SyncForkInfoDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/SyncForkInfoDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.repositories.admin.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.repositories.admin.ForkSyncInfo -import com.worxbend.codeberg4s.repositories.admin.IssuePinsAllowed +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} +import com.worxbend.codeberg4s.repositories.admin.{ForkSyncInfo, IssuePinsAllowed} /** Forgejo's `SyncForkInfo` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/TopicSummaryDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/TopicSummaryDto.scala index 912625b..c639af6 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/TopicSummaryDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/TopicSummaryDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.repositories.admin.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.admin.TopicId -import com.worxbend.codeberg4s.repositories.admin.TopicSummary +import com.worxbend.codeberg4s.repositories.admin.{TopicId, TopicSummary} /** Forgejo's `TopicResponse` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/WatchInfoDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/WatchInfoDto.scala index eb09ab2..3787dd8 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/WatchInfoDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/admin/wire/WatchInfoDto.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories.admin.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps} import com.worxbend.codeberg4s.repositories.admin.WatchStatus /** Forgejo's `WatchInfo` model, field for field. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/AnnotatedTagDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/AnnotatedTagDto.scala index 7ff3171..0bd1095 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/AnnotatedTagDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/AnnotatedTagDto.scala @@ -1,16 +1,11 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.TagName import com.worxbend.codeberg4s.repositories.gitdata.AnnotatedTag -import com.worxbend.codeberg4s.repositories.wire.ArchiveDownloadCountDto -import com.worxbend.codeberg4s.repositories.wire.GitIdentityDto -import com.worxbend.codeberg4s.repositories.wire.VerificationDto +import com.worxbend.codeberg4s.repositories.wire.{ArchiveDownloadCountDto, GitIdentityDto, VerificationDto} +import com.worxbend.codeberg4s.repositories.{CommitSha, TagName} /** Forgejo's `AnnotatedTag` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CombinedStatusDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CombinedStatusDto.scala index 7c91265..1affb62 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CombinedStatusDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CombinedStatusDto.scala @@ -1,14 +1,10 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.gitdata.CombinedCommitStatus -import com.worxbend.codeberg4s.repositories.gitdata.CommitStatusState +import com.worxbend.codeberg4s.repositories.gitdata.{CombinedCommitStatus, CommitStatusState} import com.worxbend.codeberg4s.repositories.wire.RepositoryDto /** Forgejo's `CombinedStatus` model, field for field. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CommitStatusDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CommitStatusDto.scala index a9991b3..5c526d3 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CommitStatusDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CommitStatusDto.scala @@ -1,13 +1,9 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.gitdata.CommitStatus -import com.worxbend.codeberg4s.repositories.gitdata.CommitStatusState +import com.worxbend.codeberg4s.repositories.gitdata.{CommitStatus, CommitStatusState} import com.worxbend.codeberg4s.users.wire.UserDto /** Forgejo's `CommitStatus` model, field for field. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CompareDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CompareDto.scala index fe84694..6802438 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CompareDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/CompareDto.scala @@ -1,13 +1,10 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.gitdata.CommitComparison -import com.worxbend.codeberg4s.repositories.wire.CommitAffectedFileDto -import com.worxbend.codeberg4s.repositories.wire.CommitDto +import com.worxbend.codeberg4s.repositories.wire.{CommitAffectedFileDto, CommitDto} /** Forgejo's `Compare` model — three keys, all of them arrays or counts. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/DiffPatchOptionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/DiffPatchOptionsDto.scala index 87e5721..95e6ab4 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/DiffPatchOptionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/DiffPatchOptionsDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.repositories.gitdata.ApplyDiffPatch -import com.worxbend.codeberg4s.repositories.gitdata.GitAuthor +import com.worxbend.codeberg4s.codec.{Json, JsonValue, Timestamps} +import com.worxbend.codeberg4s.repositories.gitdata.{ApplyDiffPatch, GitAuthor} import java.time.Instant diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/EditorConfigDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/EditorConfigDto.scala index a8bde30..a2926d4 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/EditorConfigDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/EditorConfigDto.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, JsonValue} import com.worxbend.codeberg4s.repositories.gitdata.EditorConfigDefinitions /** The body of `GET /repos/{owner}/{repo}/editorconfig/{filepath}` — a bare object of property names to values. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/FileCommitDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/FileCommitDto.scala index 63a2423..abb7408 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/FileCommitDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/FileCommitDto.scala @@ -1,16 +1,11 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.CommitSha import com.worxbend.codeberg4s.repositories.gitdata.FileCommit -import com.worxbend.codeberg4s.repositories.wire.CommitMetaDto -import com.worxbend.codeberg4s.repositories.wire.GitIdentityDto +import com.worxbend.codeberg4s.repositories.wire.{CommitMetaDto, GitIdentityDto} /** Forgejo's `FileCommitResponse` — the commit an editing endpoint reports it wrote. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/FileResponseDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/FileResponseDto.scala index f4e1eaf..0c95377 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/FileResponseDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/FileResponseDto.scala @@ -1,13 +1,10 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.gitdata.FileChange -import com.worxbend.codeberg4s.repositories.wire.ContentEntryDto -import com.worxbend.codeberg4s.repositories.wire.VerificationDto +import com.worxbend.codeberg4s.repositories.wire.{ContentEntryDto, VerificationDto} /** Forgejo's `FileResponse` — what `POST /repos/{owner}/{repo}/diffpatch` answers with. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitBlobDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitBlobDto.scala index 3039fff..b8a0534 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitBlobDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitBlobDto.scala @@ -1,13 +1,10 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.FileContent import com.worxbend.codeberg4s.repositories.gitdata.GitBlob +import com.worxbend.codeberg4s.repositories.{CommitSha, FileContent} /** Forgejo's `GitBlob` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitDataQueries.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitDataQueries.scala index be17f6c..5d08ede 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitDataQueries.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitDataQueries.scala @@ -2,9 +2,7 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.codec.PagingQuery import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.repositories.gitdata.CommitInclude -import com.worxbend.codeberg4s.repositories.gitdata.CommitStatusQuery -import com.worxbend.codeberg4s.repositories.gitdata.RefName +import com.worxbend.codeberg4s.repositories.gitdata.{CommitInclude, CommitStatusQuery, RefName} /** The query strings the raw-git endpoints send. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitEntryDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitEntryDto.scala index 465659d..161330b 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitEntryDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitEntryDto.scala @@ -1,14 +1,10 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.ContentPath -import com.worxbend.codeberg4s.repositories.gitdata.GitObjectKind -import com.worxbend.codeberg4s.repositories.gitdata.GitTreeEntry +import com.worxbend.codeberg4s.repositories.gitdata.{GitObjectKind, GitTreeEntry} +import com.worxbend.codeberg4s.repositories.{CommitSha, ContentPath} /** Forgejo's `GitEntry` — one element of a tree listing's `tree` array. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitObjectDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitObjectDto.scala index 0328421..87a2807 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitObjectDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitObjectDto.scala @@ -1,13 +1,10 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.gitdata.GitObjectKind -import com.worxbend.codeberg4s.repositories.gitdata.GitObjectRef +import com.worxbend.codeberg4s.repositories.gitdata.{GitObjectKind, GitObjectRef} /** Forgejo's `GitObject`, and its identical twin `AnnotatedTagObject`. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitTreeDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitTreeDto.scala index 31b7921..bf11448 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitTreeDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/GitTreeDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.gitdata.GitTreeEntry diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/NoteDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/NoteDto.scala index 3285227..386e44a 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/NoteDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/NoteDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.gitdata.GitNote import com.worxbend.codeberg4s.repositories.wire.CommitDto diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/NoteOptionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/NoteOptionsDto.scala index c117242..6bea5c2 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/NoteOptionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/NoteOptionsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} /** Forgejo's `NoteOptions` request model — the body of `POST /repos/{owner}/{repo}/git/notes/{sha}`. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/ReferenceDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/ReferenceDto.scala index f0bbe57..a49d26c 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/ReferenceDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/gitdata/wire/ReferenceDto.scala @@ -1,12 +1,9 @@ package com.worxbend.codeberg4s.repositories.gitdata.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.gitdata.GitReference -import com.worxbend.codeberg4s.repositories.gitdata.RefName +import com.worxbend.codeberg4s.repositories.gitdata.{GitReference, RefName} /** Forgejo's `Reference` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/GitHookDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/GitHookDto.scala index cd45739..bd2b10d 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/GitHookDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/GitHookDto.scala @@ -1,13 +1,9 @@ package com.worxbend.codeberg4s.repositories.hooks.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.hooks.GitHook -import com.worxbend.codeberg4s.repositories.hooks.GitHookName +import com.worxbend.codeberg4s.repositories.hooks.{GitHook, GitHookName} /** Forgejo's `GitHook` model — one script the instance runs when a push arrives. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/HookOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/HookOptionDto.scala index 78e00c2..ec6e081 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/HookOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/HookOptionDto.scala @@ -1,12 +1,7 @@ package com.worxbend.codeberg4s.repositories.hooks.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.repositories.hooks.CreateHook -import com.worxbend.codeberg4s.repositories.hooks.EditGitHook -import com.worxbend.codeberg4s.repositories.hooks.EditHook -import com.worxbend.codeberg4s.repositories.hooks.HookConfig -import com.worxbend.codeberg4s.repositories.hooks.HookSecret +import com.worxbend.codeberg4s.codec.{Json, JsonValue} +import com.worxbend.codeberg4s.repositories.hooks.{CreateHook, EditGitHook, EditHook, HookConfig, HookSecret} /** Forgejo's `CreateHookOption`, `EditHookOption` and `EditGitHookOption` request models. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/HookWire.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/HookWire.scala index a246de3..128e574 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/HookWire.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/HookWire.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.hooks.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{Json, JsonFields} import com.worxbend.codeberg4s.repositories.hooks.HookEvent /** The readings this group's DTOs share, written once because getting any of them wrong twice would be silent. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/IssueConfigDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/IssueConfigDto.scala index 14128ab..0b54e7a 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/IssueConfigDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/IssueConfigDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.repositories.hooks.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.hooks.IssueConfig -import com.worxbend.codeberg4s.repositories.hooks.IssueConfigValidation -import com.worxbend.codeberg4s.repositories.hooks.IssueContactLink +import com.worxbend.codeberg4s.repositories.hooks.{IssueConfig, IssueConfigValidation, IssueContactLink} /** Forgejo's `IssueConfigContactLink` model — one alternative to opening an issue. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/IssueTemplateDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/IssueTemplateDto.scala index f62d387..f3873b8 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/IssueTemplateDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/IssueTemplateDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.repositories.hooks.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.hooks.IssueFormField -import com.worxbend.codeberg4s.repositories.hooks.IssueFormFieldType -import com.worxbend.codeberg4s.repositories.hooks.IssueTemplate +import com.worxbend.codeberg4s.repositories.hooks.{IssueFormField, IssueFormFieldType, IssueTemplate} /** Forgejo's `IssueFormField` model — one control of an issue form template. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/RepositoryFlagWire.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/RepositoryFlagWire.scala index 5020ccf..3bd96cd 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/RepositoryFlagWire.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/RepositoryFlagWire.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.repositories.hooks.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{ArrayElements, Json, JsonValue} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.hooks.RepositoryFlag diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WebhookDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WebhookDto.scala index f5ab7e6..3f01e30 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WebhookDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WebhookDto.scala @@ -1,16 +1,9 @@ package com.worxbend.codeberg4s.repositories.hooks.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.hooks.HookConfig -import com.worxbend.codeberg4s.repositories.hooks.HookId -import com.worxbend.codeberg4s.repositories.hooks.HookType -import com.worxbend.codeberg4s.repositories.hooks.Webhook +import com.worxbend.codeberg4s.repositories.hooks.{HookConfig, HookId, HookType, Webhook} /** Forgejo's `Hook` model — one repository webhook. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WikiPageDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WikiPageDto.scala index b215522..223faa8 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WikiPageDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WikiPageDto.scala @@ -1,17 +1,11 @@ package com.worxbend.codeberg4s.repositories.hooks.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.FileContent -import com.worxbend.codeberg4s.repositories.hooks.WikiCommit -import com.worxbend.codeberg4s.repositories.hooks.WikiPage -import com.worxbend.codeberg4s.repositories.hooks.WikiPageMeta +import com.worxbend.codeberg4s.repositories.hooks.{WikiCommit, WikiPage, WikiPageMeta} import com.worxbend.codeberg4s.repositories.wire.GitIdentityDto +import com.worxbend.codeberg4s.repositories.{CommitSha, FileContent} /** Forgejo's `WikiCommit` model — one revision of a wiki page. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WikiPageOptionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WikiPageOptionsDto.scala index 67942d1..df9bd51 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WikiPageOptionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/hooks/wire/WikiPageOptionsDto.scala @@ -1,10 +1,8 @@ package com.worxbend.codeberg4s.repositories.hooks.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.FileContent -import com.worxbend.codeberg4s.repositories.hooks.CreateWikiPage -import com.worxbend.codeberg4s.repositories.hooks.EditWikiPage +import com.worxbend.codeberg4s.repositories.hooks.{CreateWikiPage, EditWikiPage} /** Forgejo's `CreateWikiPageOptions` request model — the body of both `POST /repos/{owner}/{repo}/wiki/new` and * `PATCH /repos/{owner}/{repo}/wiki/page/{pageName}`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateForkOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateForkOptionDto.scala index 9d3f751..006d5c3 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateForkOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateForkOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.publishing.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.publishing.CreateFork /** Forgejo's `CreateForkOption` request model — the body of `POST /repos/{owner}/{repo}/forks`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateReleaseOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateReleaseOptionDto.scala index 0c182b1..84a3a1d 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateReleaseOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateReleaseOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.publishing.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.publishing.CreateRelease /** Forgejo's `CreateReleaseOption` request model — the body of `POST /repos/{owner}/{repo}/releases`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateTagOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateTagOptionDto.scala index da88dab..ebc7e3d 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateTagOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/CreateTagOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.publishing.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.publishing.CreateTag /** Forgejo's `CreateTagOption` request model — the body of `POST /repos/{owner}/{repo}/tags`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/EditAttachmentOptionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/EditAttachmentOptionsDto.scala index a5552c5..48739ec 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/EditAttachmentOptionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/EditAttachmentOptionsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.publishing.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.publishing.EditAsset /** Forgejo's `EditAttachmentOptions` request model — the body of diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/EditReleaseOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/EditReleaseOptionDto.scala index e27e859..7bc6cba 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/EditReleaseOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/EditReleaseOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.publishing.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.publishing.EditRelease /** Forgejo's `EditReleaseOption` request model — the body of `PATCH /repos/{owner}/{repo}/releases/{id}`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/GenerateRepoOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/GenerateRepoOptionDto.scala index e56336b..73864ce 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/GenerateRepoOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/GenerateRepoOptionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.publishing.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.publishing.GenerateRepository /** Forgejo's `GenerateRepoOption` request model — the body of `POST /repos/{template_owner}/{template_repo}/generate`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/RepoTopicOptionsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/RepoTopicOptionsDto.scala index b6e7f74..d483175 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/RepoTopicOptionsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/publishing/wire/RepoTopicOptionsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.publishing.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.publishing.Topic /** Forgejo's `RepoTopicOptions` request model — the body of `PUT /repos/{owner}/{repo}/topics`. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ArchiveDownloadCountDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ArchiveDownloadCountDto.scala index 0a9013a..5a8af69 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ArchiveDownloadCountDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ArchiveDownloadCountDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.repositories.ArchiveDownloadCount /** Forgejo's `TagArchiveDownloadCount` — the `archive_download_count` object on a tag or a release. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/BranchDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/BranchDto.scala index 87419f0..1d42fca 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/BranchDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/BranchDto.scala @@ -1,12 +1,9 @@ package com.worxbend.codeberg4s.repositories.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.Branch -import com.worxbend.codeberg4s.repositories.BranchName +import com.worxbend.codeberg4s.repositories.{Branch, BranchName} /** Forgejo's `Branch` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitAffectedFileDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitAffectedFileDto.scala index d422b3d..34ce1e6 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitAffectedFileDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitAffectedFileDto.scala @@ -1,12 +1,9 @@ package com.worxbend.codeberg4s.repositories.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.CommitFile -import com.worxbend.codeberg4s.repositories.CommitFileStatus +import com.worxbend.codeberg4s.repositories.{CommitFile, CommitFileStatus} /** Forgejo's `CommitAffectedFiles` — one element of a commit's `files` array. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitDto.scala index e48c9bb..c2b4dec 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.repositories.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.Commit -import com.worxbend.codeberg4s.repositories.CommitSha +import com.worxbend.codeberg4s.repositories.{Commit, CommitSha} import com.worxbend.codeberg4s.users.wire.UserDto /** Forgejo's `Commit` model, field for field. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitMetaDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitMetaDto.scala index 97fb46a..2c461cf 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitMetaDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitMetaDto.scala @@ -1,13 +1,9 @@ package com.worxbend.codeberg4s.repositories.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.CommitRef -import com.worxbend.codeberg4s.repositories.CommitSha +import com.worxbend.codeberg4s.repositories.{CommitRef, CommitSha} /** Forgejo's `CommitMeta` — a commit or tree referenced by id. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitStatsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitStatsDto.scala index 8fa67af..faab991 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitStatsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/CommitStatsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.repositories.CommitStats /** Forgejo's `CommitStats` — the `stats` object on a commit. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ContentEntryDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ContentEntryDto.scala index 6dbb4cd..9fd0ef5 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ContentEntryDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ContentEntryDto.scala @@ -1,17 +1,9 @@ package com.worxbend.codeberg4s.repositories.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.ContentEntry -import com.worxbend.codeberg4s.repositories.ContentKind -import com.worxbend.codeberg4s.repositories.ContentMeta -import com.worxbend.codeberg4s.repositories.ContentPath -import com.worxbend.codeberg4s.repositories.FileContent +import com.worxbend.codeberg4s.repositories.{CommitSha, ContentEntry, ContentKind, ContentMeta, ContentPath, FileContent} /** Forgejo's `ContentsResponse` — one entry of a repository's contents. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/GitIdentityDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/GitIdentityDto.scala index 5393179..8d6e5d5 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/GitIdentityDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/GitIdentityDto.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps} import com.worxbend.codeberg4s.repositories.GitIdentity /** The author or committer recorded in a Git object. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/InternalTrackerDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/InternalTrackerDto.scala index 87b982e..389d9f3 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/InternalTrackerDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/InternalTrackerDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} /** Forgejo's `InternalTracker` model — the `internal_tracker` object embedded in a repository. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/PayloadCommitDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/PayloadCommitDto.scala index b2b3e3e..6bc28a9 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/PayloadCommitDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/PayloadCommitDto.scala @@ -1,13 +1,9 @@ package com.worxbend.codeberg4s.repositories.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.CommitSummary +import com.worxbend.codeberg4s.repositories.{CommitSha, CommitSummary} /** Forgejo's `PayloadCommit` — the `commit` object a branch carries. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/PermissionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/PermissionDto.scala index 182ac70..93ac1d4 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/PermissionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/PermissionDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.repositories.RepositoryPermissions /** Forgejo's `Permission` model — the `permissions` object embedded in a repository. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ReleaseAssetDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ReleaseAssetDto.scala index 0d655c3..517d493 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ReleaseAssetDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ReleaseAssetDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.repositories.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.ReleaseAsset diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ReleaseDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ReleaseDto.scala index 622101b..a8506c8 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ReleaseDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/ReleaseDto.scala @@ -1,15 +1,9 @@ package com.worxbend.codeberg4s.repositories.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.Release -import com.worxbend.codeberg4s.repositories.ReleaseId -import com.worxbend.codeberg4s.repositories.TagName +import com.worxbend.codeberg4s.repositories.{Release, ReleaseId, TagName} import com.worxbend.codeberg4s.users.wire.UserDto /** Forgejo's `Release` model, field for field. diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepoCommitDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepoCommitDto.scala index 457e78f..dae8718 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepoCommitDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepoCommitDto.scala @@ -1,9 +1,7 @@ package com.worxbend.codeberg4s.repositories.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.CommitDetails diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepositoryContentDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepositoryContentDto.scala index 7c49b32..ec352ba 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepositoryContentDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepositoryContentDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.repositories.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, JsonValue} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.RepositoryContent diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepositoryDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepositoryDto.scala index 9e22928..d8f63f8 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepositoryDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/RepositoryDto.scala @@ -1,16 +1,10 @@ package com.worxbend.codeberg4s.repositories.wire -import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.RepoSlug -import com.worxbend.codeberg4s.repositories.Repository +import com.worxbend.codeberg4s.repositories.{RepoSlug, Repository} import com.worxbend.codeberg4s.users.wire.UserDto +import com.worxbend.codeberg4s.{JsonPath, Owner, RepoName} /** Forgejo's `Repository` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/TagDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/TagDto.scala index 67ba22d..96a44e0 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/TagDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/TagDto.scala @@ -1,13 +1,9 @@ package com.worxbend.codeberg4s.repositories.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.Tag -import com.worxbend.codeberg4s.repositories.TagName +import com.worxbend.codeberg4s.repositories.{CommitSha, Tag, TagName} /** Forgejo's `Tag` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/TopicNamesDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/TopicNamesDto.scala index 47b7bc4..8a5445b 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/TopicNamesDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/TopicNamesDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} /** Forgejo's `TopicNames` — the body of `GET /repos/{owner}/{repo}/topics`. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/VerificationDto.scala b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/VerificationDto.scala index 3fb9bb4..8ba1b9a 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/VerificationDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/repositories/wire/VerificationDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.repositories.CommitVerification /** Forgejo's `PayloadCommitVerification` — the `verification` object on a commit. diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/AccountOptionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/AccountOptionDto.scala index 5a5195f..d69f7b2 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/AccountOptionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/AccountOptionDto.scala @@ -1,16 +1,17 @@ package com.worxbend.codeberg4s.users.account.wire import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.BranchName -import com.worxbend.codeberg4s.users.account.AvatarImage -import com.worxbend.codeberg4s.users.account.CreateRepository -import com.worxbend.codeberg4s.users.account.EmailAddress -import com.worxbend.codeberg4s.users.account.OAuth2ApplicationDefinition -import com.worxbend.codeberg4s.users.account.ObjectFormat -import com.worxbend.codeberg4s.users.account.TrustModel -import com.worxbend.codeberg4s.users.account.UpdateUserSettings +import com.worxbend.codeberg4s.users.account.{ + AvatarImage, + CreateRepository, + EmailAddress, + OAuth2ApplicationDefinition, + ObjectFormat, + TrustModel, + UpdateUserSettings +} /** Every request body the `/user` account endpoints send, rendered in one place. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/AccountQueries.scala b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/AccountQueries.scala index 90a80ee..aab691e 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/AccountQueries.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/AccountQueries.scala @@ -2,8 +2,7 @@ package com.worxbend.codeberg4s.users.account.wire import com.worxbend.codeberg4s.codec.PagingQuery import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.users.account.QuotaSubject -import com.worxbend.codeberg4s.users.account.RepositoryOrder +import com.worxbend.codeberg4s.users.account.{QuotaSubject, RepositoryOrder} /** The query strings the `/user` account endpoints send. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/EmailDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/EmailDto.scala index 7bd06bc..2651edb 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/EmailDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/EmailDto.scala @@ -1,13 +1,9 @@ package com.worxbend.codeberg4s.users.account.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.users.account.Email -import com.worxbend.codeberg4s.users.account.EmailAddress +import com.worxbend.codeberg4s.users.account.{Email, EmailAddress} /** Forgejo's `Email` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/OAuth2ApplicationDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/OAuth2ApplicationDto.scala index 09acc11..8c15c89 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/OAuth2ApplicationDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/OAuth2ApplicationDto.scala @@ -1,15 +1,9 @@ package com.worxbend.codeberg4s.users.account.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.users.account.ClientSecret -import com.worxbend.codeberg4s.users.account.OAuth2Application -import com.worxbend.codeberg4s.users.account.OAuth2ApplicationId +import com.worxbend.codeberg4s.users.account.{ClientSecret, OAuth2Application, OAuth2ApplicationId} /** Forgejo's `OAuth2Application` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/QuotaInfoDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/QuotaInfoDto.scala index b51ba72..590febd 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/QuotaInfoDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/QuotaInfoDto.scala @@ -1,13 +1,8 @@ package com.worxbend.codeberg4s.users.account.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.users.account.QuotaGroup -import com.worxbend.codeberg4s.users.account.QuotaInfo -import com.worxbend.codeberg4s.users.account.QuotaRule -import com.worxbend.codeberg4s.users.account.QuotaSubject -import com.worxbend.codeberg4s.users.account.QuotaUsedSize +import com.worxbend.codeberg4s.users.account.{QuotaGroup, QuotaInfo, QuotaRule, QuotaSubject, QuotaUsedSize} /** Forgejo's `QuotaInfo` model, and the four definitions nested inside it. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/QuotaUsageDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/QuotaUsageDto.scala index f2a61b3..0f45140 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/QuotaUsageDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/QuotaUsageDto.scala @@ -1,14 +1,14 @@ package com.worxbend.codeberg4s.users.account.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.users.account.AttachmentContainer -import com.worxbend.codeberg4s.users.account.QuotaUsedArtifact -import com.worxbend.codeberg4s.users.account.QuotaUsedAttachment -import com.worxbend.codeberg4s.users.account.QuotaUsedPackage +import com.worxbend.codeberg4s.users.account.{ + AttachmentContainer, + QuotaUsedArtifact, + QuotaUsedAttachment, + QuotaUsedPackage +} /** Forgejo's `QuotaUsedArtifact` model — one artifact counting towards the quota. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/UserSettingsDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/UserSettingsDto.scala index a14ad35..c5fad67 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/UserSettingsDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/account/wire/UserSettingsDto.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.users.account.wire -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.users.account.UserSettings diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/AccessTokenDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/AccessTokenDto.scala index dcb38f9..055cb48 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/AccessTokenDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/AccessTokenDto.scala @@ -2,19 +2,11 @@ package com.worxbend.codeberg4s.users.social.wire import com.worxbend.codeberg4s.JsonPath import com.worxbend.codeberg4s.auth.ApiToken -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.issues.wire.RepositoryMetaDto import com.worxbend.codeberg4s.repositories.RepoSlug -import com.worxbend.codeberg4s.users.social.AccessToken -import com.worxbend.codeberg4s.users.social.AccessTokenId -import com.worxbend.codeberg4s.users.social.AccessTokenName -import com.worxbend.codeberg4s.users.social.CreatedAccessToken -import com.worxbend.codeberg4s.users.social.TokenScope +import com.worxbend.codeberg4s.users.social.{AccessToken, AccessTokenId, AccessTokenName, CreatedAccessToken, TokenScope} /** Forgejo's `AccessToken` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/BlockedUserDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/BlockedUserDto.scala index 3f4df0e..feaae6c 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/BlockedUserDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/BlockedUserDto.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.users.social.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.users.social.BlockId -import com.worxbend.codeberg4s.users.social.BlockedUser +import com.worxbend.codeberg4s.users.social.{BlockId, BlockedUser} /** Forgejo's `BlockedUser` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/GpgKeyDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/GpgKeyDto.scala index d33ff69..df5a71f 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/GpgKeyDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/GpgKeyDto.scala @@ -1,16 +1,9 @@ package com.worxbend.codeberg4s.users.social.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.users.social.GpgKey -import com.worxbend.codeberg4s.users.social.GpgKeyEmail -import com.worxbend.codeberg4s.users.social.GpgKeyId -import com.worxbend.codeberg4s.users.social.OpenPgpKeyId +import com.worxbend.codeberg4s.users.social.{GpgKey, GpgKeyEmail, GpgKeyId, OpenPgpKeyId} /** Forgejo's `GPGKeyEmail` model — an address a GPG key claims, and whether the instance confirmed it. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/HeatmapEntryDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/HeatmapEntryDto.scala index b6ce886..eab1feb 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/HeatmapEntryDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/HeatmapEntryDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.users.social.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.users.social.HeatmapEntry diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/KeyOptionDtos.scala b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/KeyOptionDtos.scala index 62b731d..fb5b3ba 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/KeyOptionDtos.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/KeyOptionDtos.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.users.social.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue -import com.worxbend.codeberg4s.users.social.CreateGpgKey -import com.worxbend.codeberg4s.users.social.CreateSshKey -import com.worxbend.codeberg4s.users.social.VerifyGpgKey +import com.worxbend.codeberg4s.codec.{Json, JsonValue} +import com.worxbend.codeberg4s.users.social.{CreateGpgKey, CreateSshKey, VerifyGpgKey} /** Forgejo's `CreateKeyOption` request model — the body of `POST /user/keys`. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/SocialQueries.scala b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/SocialQueries.scala index 8a987ba..be148be 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/SocialQueries.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/SocialQueries.scala @@ -1,10 +1,8 @@ package com.worxbend.codeberg4s.users.social.wire -import com.worxbend.codeberg4s.codec.PagingQuery -import com.worxbend.codeberg4s.codec.Timestamps +import com.worxbend.codeberg4s.codec.{PagingQuery, Timestamps} import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.users.social.ActivityFeedQuery -import com.worxbend.codeberg4s.users.social.TrackedTimeWindow +import com.worxbend.codeberg4s.users.social.{ActivityFeedQuery, TrackedTimeWindow} import java.time.format.DateTimeFormatter diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/StopWatchDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/StopWatchDto.scala index 0fb295d..d89530d 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/StopWatchDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/StopWatchDto.scala @@ -1,19 +1,12 @@ package com.worxbend.codeberg4s.users.social.wire -import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.codec.ArrayElements -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.repositories.RepoSlug import com.worxbend.codeberg4s.users.social.StopWatch +import com.worxbend.codeberg4s.{JsonPath, Owner, RepoName} -import scala.concurrent.duration.DurationLong -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{DurationLong, FiniteDuration} /** Forgejo's `StopWatch` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/TokenOptionDtos.scala b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/TokenOptionDtos.scala index bab1060..ab469e5 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/TokenOptionDtos.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/social/wire/TokenOptionDtos.scala @@ -1,11 +1,8 @@ package com.worxbend.codeberg4s.users.social.wire -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} import com.worxbend.codeberg4s.repositories.RepoSlug -import com.worxbend.codeberg4s.users.social.CreateAccessToken -import com.worxbend.codeberg4s.users.social.RemoteFollowTarget -import com.worxbend.codeberg4s.users.social.TokenScope +import com.worxbend.codeberg4s.users.social.{CreateAccessToken, RemoteFollowTarget, TokenScope} /** Forgejo's `CreateAccessTokenOption` request model — the body of `POST /users/{username}/tokens`. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/wire/PublicKeyDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/wire/PublicKeyDto.scala index 499739a..da72be2 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/wire/PublicKeyDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/wire/PublicKeyDto.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s.users.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure import com.worxbend.codeberg4s.users.PublicKey diff --git a/modules/codec/src/com/worxbend/codeberg4s/users/wire/UserDto.scala b/modules/codec/src/com/worxbend/codeberg4s/users/wire/UserDto.scala index 05eb2b3..3bc4d3f 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/users/wire/UserDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/users/wire/UserDto.scala @@ -1,13 +1,9 @@ package com.worxbend.codeberg4s.users.wire import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Timestamps -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Timestamps, Wire} import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.users.User -import com.worxbend.codeberg4s.users.UserVisibility +import com.worxbend.codeberg4s.users.{User, UserVisibility} /** Forgejo's `User` model, field for field. * diff --git a/modules/codec/src/com/worxbend/codeberg4s/wire/ServerVersionDto.scala b/modules/codec/src/com/worxbend/codeberg4s/wire/ServerVersionDto.scala index 70ca171..6bb9eb8 100644 --- a/modules/codec/src/com/worxbend/codeberg4s/wire/ServerVersionDto.scala +++ b/modules/codec/src/com/worxbend/codeberg4s/wire/ServerVersionDto.scala @@ -1,11 +1,8 @@ package com.worxbend.codeberg4s.wire -import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.ServerVersion -import com.worxbend.codeberg4s.codec.JsonDecoder -import com.worxbend.codeberg4s.codec.JsonFields -import com.worxbend.codeberg4s.codec.Wire +import com.worxbend.codeberg4s.codec.{JsonDecoder, JsonFields, Wire} import com.worxbend.codeberg4s.core.DecodeFailure +import com.worxbend.codeberg4s.{JsonPath, ServerVersion} /** The body of `GET /version`, verbatim. * diff --git a/modules/core/src/com/worxbend/codeberg4s/core/ApiPipeline.scala b/modules/core/src/com/worxbend/codeberg4s/core/ApiPipeline.scala index 42ad65c..bfd7f16 100644 --- a/modules/core/src/com/worxbend/codeberg4s/core/ApiPipeline.scala +++ b/modules/core/src/com/worxbend/codeberg4s/core/ApiPipeline.scala @@ -1,14 +1,9 @@ package com.worxbend.codeberg4s.core -import com.worxbend.codeberg4s.ApiErrorBody -import com.worxbend.codeberg4s.CallContext -import com.worxbend.codeberg4s.CodebergConfig -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.core.Exec.flatMap -import com.worxbend.codeberg4s.core.Exec.map -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.core.Exec.{flatMap, map} +import com.worxbend.codeberg4s.paging.{Page, PageParams} import com.worxbend.codeberg4s.syntax.discard +import com.worxbend.codeberg4s.{ApiErrorBody, CallContext, CodebergConfig, CodebergError} import scala.concurrent.duration.FiniteDuration import scala.util.Try diff --git a/modules/core/src/com/worxbend/codeberg4s/core/CodebergResponse.scala b/modules/core/src/com/worxbend/codeberg4s/core/CodebergResponse.scala index d62a76a..26bf272 100644 --- a/modules/core/src/com/worxbend/codeberg4s/core/CodebergResponse.scala +++ b/modules/core/src/com/worxbend/codeberg4s/core/CodebergResponse.scala @@ -2,8 +2,7 @@ package com.worxbend.codeberg4s.core import com.worxbend.codeberg4s.paging.PageNumber -import scala.concurrent.duration.DurationInt -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{DurationInt, FiniteDuration} import java.util.Locale diff --git a/modules/core/src/com/worxbend/codeberg4s/core/Pages.scala b/modules/core/src/com/worxbend/codeberg4s/core/Pages.scala index 8036feb..bef2d9f 100644 --- a/modules/core/src/com/worxbend/codeberg4s/core/Pages.scala +++ b/modules/core/src/com/worxbend/codeberg4s/core/Pages.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.core -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageParams +import com.worxbend.codeberg4s.paging.{Page, PageParams} /** Turns a decoded item list plus a response's paging headers into a [[com.worxbend.codeberg4s.paging.Page]]. * diff --git a/modules/core/src/com/worxbend/codeberg4s/core/ResponseBody.scala b/modules/core/src/com/worxbend/codeberg4s/core/ResponseBody.scala index a36ee89..a89d3ed 100644 --- a/modules/core/src/com/worxbend/codeberg4s/core/ResponseBody.scala +++ b/modules/core/src/com/worxbend/codeberg4s/core/ResponseBody.scala @@ -3,10 +3,8 @@ package com.worxbend.codeberg4s.core import scala.annotation.tailrec import scala.util.Try -import java.nio.charset.Charset -import java.nio.charset.StandardCharsets -import java.util.Arrays -import java.util.Locale +import java.nio.charset.{Charset, StandardCharsets} +import java.util.{Arrays, Locale} /** A response body exactly as it came off the socket — the bytes, and the charset the response declared for them. * diff --git a/modules/core/src/com/worxbend/codeberg4s/core/RetryEngine.scala b/modules/core/src/com/worxbend/codeberg4s/core/RetryEngine.scala index f8219fb..8ab2954 100644 --- a/modules/core/src/com/worxbend/codeberg4s/core/RetryEngine.scala +++ b/modules/core/src/com/worxbend/codeberg4s/core/RetryEngine.scala @@ -1,15 +1,10 @@ package com.worxbend.codeberg4s.core -import com.worxbend.codeberg4s.CallContext -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.HttpMethod -import com.worxbend.codeberg4s.TransportCause import com.worxbend.codeberg4s.core.Exec.flatMap -import com.worxbend.codeberg4s.retry.Jitter -import com.worxbend.codeberg4s.retry.RetryPolicy +import com.worxbend.codeberg4s.retry.{Jitter, RetryPolicy} +import com.worxbend.codeberg4s.{CallContext, CodebergError, HttpMethod, TransportCause} -import scala.concurrent.duration.DurationLong -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{DurationLong, FiniteDuration} /** Repeats a failed call according to a [[com.worxbend.codeberg4s.retry.RetryPolicy]]. * diff --git a/modules/core/src/com/worxbend/codeberg4s/core/StatusMapping.scala b/modules/core/src/com/worxbend/codeberg4s/core/StatusMapping.scala index c8f3e8f..910cf8f 100644 --- a/modules/core/src/com/worxbend/codeberg4s/core/StatusMapping.scala +++ b/modules/core/src/com/worxbend/codeberg4s/core/StatusMapping.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.core -import com.worxbend.codeberg4s.ApiErrorBody -import com.worxbend.codeberg4s.CallContext -import com.worxbend.codeberg4s.CodebergError +import com.worxbend.codeberg4s.{ApiErrorBody, CallContext, CodebergError} /** What an HTTP status means to this library. * diff --git a/modules/core/src/com/worxbend/codeberg4s/core/Telemetry.scala b/modules/core/src/com/worxbend/codeberg4s/core/Telemetry.scala index 8e70d53..31f36d6 100644 --- a/modules/core/src/com/worxbend/codeberg4s/core/Telemetry.scala +++ b/modules/core/src/com/worxbend/codeberg4s/core/Telemetry.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.core -import com.worxbend.codeberg4s.CallContext -import com.worxbend.codeberg4s.CodebergError +import com.worxbend.codeberg4s.{CallContext, CodebergError} /** Observation hooks for applications that want to see what the client is doing. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/CodebergConfig.scala b/modules/domain/src/com/worxbend/codeberg4s/CodebergConfig.scala index 54ebd69..2ddc9bf 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/CodebergConfig.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/CodebergConfig.scala @@ -4,8 +4,7 @@ import com.worxbend.codeberg4s.auth.Auth import com.worxbend.codeberg4s.paging.PageSize import com.worxbend.codeberg4s.retry.RetryPolicy -import scala.concurrent.duration.DurationInt -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{DurationInt, FiniteDuration} /** Everything a client needs to talk to one Forgejo deployment. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/SegmentLiteral.scala b/modules/domain/src/com/worxbend/codeberg4s/SegmentLiteral.scala index 18c76df..23d6c7d 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/SegmentLiteral.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/SegmentLiteral.scala @@ -1,10 +1,7 @@ package com.worxbend.codeberg4s -import scala.compiletime.codeOf -import scala.compiletime.constValue -import scala.compiletime.constValueOpt -import scala.compiletime.error import scala.compiletime.ops.string.Matches +import scala.compiletime.{codeOf, constValue, constValueOpt, error} /** The compile-time half of [[PathSegment]] — the same rules, checked while the code compiles. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/AttachmentId.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/AttachmentId.scala index ce62ae8..ba0bb89 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/AttachmentId.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/AttachmentId.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-wide identifier of an [[IssueAttachment]] — the `{attachment_id}` of * `/repos/{owner}/{repo}/issues/{index}/assets/{attachment_id}` and of the matching comment route. diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/CommentId.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/CommentId.scala index c77b69a..1a4f2b2 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/CommentId.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/CommentId.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-wide identifier of a [[Comment]]. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/IssueNumber.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/IssueNumber.scala index 0d997ba..d59163e 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/IssueNumber.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/IssueNumber.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The number a repository gives an issue — the `{index}` of `/repos/{owner}/{repo}/issues/{index}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/IssueRef.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/IssueRef.scala index 4ef516b..e931694 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/IssueRef.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/IssueRef.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName +import com.worxbend.codeberg4s.{Owner, RepoName} /** One issue named from outside its own repository — Forgejo's `IssueMeta`, and the body of every blocking and * dependency call. diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/LabelId.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/LabelId.scala index ad9ab70..b67e324 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/LabelId.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/LabelId.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-wide identifier of a [[Label]] — the `{id}` of `/repos/{owner}/{repo}/labels/{id}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/MilestoneId.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/MilestoneId.scala index 38610cd..cd91472 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/MilestoneId.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/MilestoneId.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-wide identifier of a [[Milestone]] — the `{id}` of `/repos/{owner}/{repo}/milestones/{id}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/TrackedTimeId.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/TrackedTimeId.scala index e48af0a..832c550 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/TrackedTimeId.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/TrackedTimeId.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-wide identifier of one [[TrackedTime]] entry — the `{id}` of * `/repos/{owner}/{repo}/issues/{index}/times/{id}`. diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/UploadAttachment.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/UploadAttachment.scala index 0ae373b..ec899a2 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/UploadAttachment.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/UploadAttachment.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.issues -import com.worxbend.codeberg4s.ContentType -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{ContentType, ValidationError} import java.time.Instant import java.util.Arrays diff --git a/modules/domain/src/com/worxbend/codeberg4s/notifications/NotificationThreadId.scala b/modules/domain/src/com/worxbend/codeberg4s/notifications/NotificationThreadId.scala index db8fe87..ab72ead 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/notifications/NotificationThreadId.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/notifications/NotificationThreadId.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.notifications -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-wide identifier of a [[NotificationThread]] — the `{id}` of `/notifications/threads/{id}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/organizations/BlockedUser.scala b/modules/domain/src/com/worxbend/codeberg4s/organizations/BlockedUser.scala index c9f9e9f..2ca7511 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/organizations/BlockedUser.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/organizations/BlockedUser.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.organizations -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} import java.time.Instant diff --git a/modules/domain/src/com/worxbend/codeberg4s/organizations/OrgName.scala b/modules/domain/src/com/worxbend/codeberg4s/organizations/OrgName.scala index 6c05685..85e0f69 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/organizations/OrgName.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/organizations/OrgName.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.organizations -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} /** The handle that names an organisation — the `{org}` of `/orgs/{org}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/organizations/TeamId.scala b/modules/domain/src/com/worxbend/codeberg4s/organizations/TeamId.scala index cc35ca1..a83c64f 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/organizations/TeamId.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/organizations/TeamId.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.organizations -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-wide identifier of a team, as `GET /teams/{id}` takes it. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/pulls/CreatePullRequest.scala b/modules/domain/src/com/worxbend/codeberg4s/pulls/CreatePullRequest.scala index f857775..a38fe20 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/pulls/CreatePullRequest.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/pulls/CreatePullRequest.scala @@ -1,8 +1,7 @@ package com.worxbend.codeberg4s.pulls import com.worxbend.codeberg4s.ValidationError -import com.worxbend.codeberg4s.issues.LabelId -import com.worxbend.codeberg4s.issues.MilestoneId +import com.worxbend.codeberg4s.issues.{LabelId, MilestoneId} import com.worxbend.codeberg4s.repositories.BranchName import java.time.Instant diff --git a/modules/domain/src/com/worxbend/codeberg4s/pulls/EditPullRequest.scala b/modules/domain/src/com/worxbend/codeberg4s/pulls/EditPullRequest.scala index 33f9e37..f7e753f 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/pulls/EditPullRequest.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/pulls/EditPullRequest.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.pulls -import com.worxbend.codeberg4s.issues.IssueStateChange -import com.worxbend.codeberg4s.issues.LabelId -import com.worxbend.codeberg4s.issues.MilestoneId +import com.worxbend.codeberg4s.issues.{IssueStateChange, LabelId, MilestoneId} import com.worxbend.codeberg4s.repositories.BranchName import java.time.Instant diff --git a/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequest.scala b/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequest.scala index 2b9b10a..4c96a2e 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequest.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequest.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.pulls -import com.worxbend.codeberg4s.issues.Label -import com.worxbend.codeberg4s.issues.Milestone +import com.worxbend.codeberg4s.issues.{Label, Milestone} import com.worxbend.codeberg4s.repositories.CommitSha import com.worxbend.codeberg4s.users.User diff --git a/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestBranch.scala b/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestBranch.scala index e23c919..70567a0 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestBranch.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestBranch.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.pulls -import com.worxbend.codeberg4s.repositories.BranchName -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.Repository +import com.worxbend.codeberg4s.repositories.{BranchName, CommitSha, Repository} /** One end of a pull request: the branch it merges into, or the branch it merges from. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestNumber.scala b/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestNumber.scala index 0856283..a6ed34f 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestNumber.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestNumber.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.pulls -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The number a repository gives a pull request — the `{index}` of `/repos/{owner}/{repo}/pulls/{index}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestQuery.scala b/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestQuery.scala index 8a759ed..3f244d8 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestQuery.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/pulls/PullRequestQuery.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.pulls -import com.worxbend.codeberg4s.issues.LabelId -import com.worxbend.codeberg4s.issues.MilestoneId -import com.worxbend.codeberg4s.issues.StateFilter +import com.worxbend.codeberg4s.issues.{LabelId, MilestoneId, StateFilter} import com.worxbend.codeberg4s.repositories.BranchName /** The filters `GET /repos/{owner}/{repo}/pulls` accepts, as one value rather than as seven parameters. diff --git a/modules/domain/src/com/worxbend/codeberg4s/pulls/ReviewCommentId.scala b/modules/domain/src/com/worxbend/codeberg4s/pulls/ReviewCommentId.scala index 6e29130..6adf486 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/pulls/ReviewCommentId.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/pulls/ReviewCommentId.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.pulls -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-wide identifier of a [[ReviewComment]] — the `{comment}` of * `/repos/{owner}/{repo}/pulls/{index}/reviews/{id}/comments/{comment}`. diff --git a/modules/domain/src/com/worxbend/codeberg4s/pulls/ReviewId.scala b/modules/domain/src/com/worxbend/codeberg4s/pulls/ReviewId.scala index 4dab094..d7e2c94 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/pulls/ReviewId.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/pulls/ReviewId.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.pulls -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-wide identifier of a [[Review]] — the `{id}` of `/repos/{owner}/{repo}/pulls/{index}/reviews/{id}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/BranchName.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/BranchName.scala index 2895027..c5cc7cb 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/BranchName.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/BranchName.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} /** The name of a branch, as `GET /repos/{owner}/{repo}/branches/{branch}` spells it. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/ContentPath.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/ContentPath.scala index 0aee619..8565cf8 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/ContentPath.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/ContentPath.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} /** A path to a file or directory inside a repository, as `GET /repos/{owner}/{repo}/contents/{filepath}` spells it. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/ReleaseId.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/ReleaseId.scala index 947ecf4..665165d 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/ReleaseId.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/ReleaseId.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-local identifier of a release, as `GET /repos/{owner}/{repo}/releases/{id}` takes it. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/RepoSlug.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/RepoSlug.scala index fb10f7c..a2b7469 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/RepoSlug.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/RepoSlug.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName +import com.worxbend.codeberg4s.{Owner, RepoName} /** The `owner/name` pair that identifies a repository. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/TagName.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/TagName.scala index dab1d0c..7b53c74 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/TagName.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/TagName.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} /** The name of a Git tag — `v16.0.2` on `golden/repository/tags-list.json`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessIds.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessIds.scala index 53ead4b..867d4c7 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessIds.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessIds.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.access -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The identifier of one tag protection rule — the `{id}` of `/repos/{owner}/{repo}/tag_protections/{id}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala index a7820de..acf36b5 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories.access -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} /** The name that addresses one branch protection rule — the `{name}` of * `/repos/{owner}/{repo}/branch_protections/{name}`, and the `rule_name` a rule reports. diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionIds.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionIds.scala index 8183110..377cdc2 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionIds.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionIds.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.actions -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-wide identifier of one Actions run — the `{run_id}` of `/repos/{owner}/{repo}/actions/runs/{run_id}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala index de596bd..085a746 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories.actions -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} /** The identifier of a registered runner, as the runner endpoints take it in a path. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionRun.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionRun.scala index 6ae14b7..c66d597 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionRun.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionRun.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.actions -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.RepoSlug +import com.worxbend.codeberg4s.repositories.{CommitSha, RepoSlug} import com.worxbend.codeberg4s.users.User import scala.concurrent.duration.FiniteDuration diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala index 0d70a94..6f32917 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala @@ -1,9 +1,6 @@ package com.worxbend.codeberg4s.repositories.admin -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, PositiveId, SegmentLiteral, ValidationError} /** The instance-wide identifier of a repository — the `{id}` of `GET /repositories/{id}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/FileCommands.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/FileCommands.scala index e6026cb..f551686 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/FileCommands.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/FileCommands.scala @@ -1,11 +1,7 @@ package com.worxbend.codeberg4s.repositories.admin -import com.worxbend.codeberg4s.repositories.BranchName -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.CommitVerification -import com.worxbend.codeberg4s.repositories.ContentEntry -import com.worxbend.codeberg4s.repositories.ContentPath import com.worxbend.codeberg4s.repositories.gitdata.FileCommit +import com.worxbend.codeberg4s.repositories.{BranchName, CommitSha, CommitVerification, ContentEntry, ContentPath} import java.time.Instant diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/MigrateRepository.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/MigrateRepository.scala index d62501e..7d34185 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/MigrateRepository.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/MigrateRepository.scala @@ -1,8 +1,7 @@ package com.worxbend.codeberg4s.repositories.admin -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName import com.worxbend.codeberg4s.organizations.TeamId +import com.worxbend.codeberg4s.{Owner, RepoName} /** Everything `POST /repos/migrate` may be told, as one value. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/AnnotatedTag.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/AnnotatedTag.scala index 28d1f7a..1e872db 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/AnnotatedTag.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/AnnotatedTag.scala @@ -1,10 +1,6 @@ package com.worxbend.codeberg4s.repositories.gitdata -import com.worxbend.codeberg4s.repositories.ArchiveDownloadCount -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.CommitVerification -import com.worxbend.codeberg4s.repositories.GitIdentity -import com.worxbend.codeberg4s.repositories.TagName +import com.worxbend.codeberg4s.repositories.{ArchiveDownloadCount, CommitSha, CommitVerification, GitIdentity, TagName} /** A Git tag '''object''' — `GET /repos/{owner}/{repo}/git/tags/{sha}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CombinedCommitStatus.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CombinedCommitStatus.scala index f5ebf94..ba0d4ec 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CombinedCommitStatus.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CombinedCommitStatus.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.gitdata -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.Repository +import com.worxbend.codeberg4s.repositories.{CommitSha, Repository} /** Every status on a commit, plus the instance's single verdict over all of them — `GET /commits/{ref}/status`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CommitComparison.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CommitComparison.scala index eff469a..2dad2f5 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CommitComparison.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CommitComparison.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.gitdata -import com.worxbend.codeberg4s.repositories.Commit -import com.worxbend.codeberg4s.repositories.CommitFile +import com.worxbend.codeberg4s.repositories.{Commit, CommitFile} /** What separates two refs — `GET /repos/{owner}/{repo}/compare/{basehead}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CompareRange.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CompareRange.scala index f1c7fa9..2a5c838 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CompareRange.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/CompareRange.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.gitdata -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, ValidationError} /** The `basehead` path parameter of `GET /repos/{owner}/{repo}/compare/{basehead}` — two refs joined by `...`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/FileChange.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/FileChange.scala index 7a34d5b..7d6d553 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/FileChange.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/FileChange.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.gitdata -import com.worxbend.codeberg4s.repositories.CommitVerification -import com.worxbend.codeberg4s.repositories.ContentEntry +import com.worxbend.codeberg4s.repositories.{CommitVerification, ContentEntry} /** What an editing endpoint answers with: the commit it wrote, and the file as it now stands. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/FileCommit.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/FileCommit.scala index cfece28..27fc881 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/FileCommit.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/FileCommit.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories.gitdata -import com.worxbend.codeberg4s.repositories.CommitRef -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.GitIdentity +import com.worxbend.codeberg4s.repositories.{CommitRef, CommitSha, GitIdentity} import java.time.Instant diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/GitBlob.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/GitBlob.scala index 359d796..88e0168 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/GitBlob.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/GitBlob.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.gitdata -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.FileContent +import com.worxbend.codeberg4s.repositories.{CommitSha, FileContent} /** A Git blob read by its object id — `GET /repos/{owner}/{repo}/git/blobs/{sha}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/GitTreeEntry.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/GitTreeEntry.scala index e02074e..c42deaf 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/GitTreeEntry.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/GitTreeEntry.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.gitdata -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.ContentPath +import com.worxbend.codeberg4s.repositories.{CommitSha, ContentPath} /** One entry of a tree listing — `GET /repos/{owner}/{repo}/git/trees/{sha}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala index 19fc488..66fca34 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories.gitdata -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} /** The name of a Git reference, whole or partial — `refs/heads/main`, `heads/main`, `tags/v1.2`, `main`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala index c063df8..0ba5829 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala @@ -1,9 +1,6 @@ package com.worxbend.codeberg4s.repositories.hooks -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, PositiveId, SegmentLiteral, ValidationError} /** The instance-wide identifier of one webhook — the `{id}` of `/repos/{owner}/{repo}/hooks/{id}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala index c5f8dea..6b9e4ca 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories.hooks -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} /** One administrative flag attached to a repository — the `{flag}` of `/repos/{owner}/{repo}/flags/{flag}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiCommit.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiCommit.scala index 007ea37..aa80a58 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiCommit.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiCommit.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.hooks -import com.worxbend.codeberg4s.repositories.CommitSha -import com.worxbend.codeberg4s.repositories.GitIdentity +import com.worxbend.codeberg4s.repositories.{CommitSha, GitIdentity} /** One revision of a wiki page — a commit in the repository's `.wiki` Git repository. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala index 14ac09c..6790f94 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories.hooks -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} /** The name of a wiki page, as `GET /repos/{owner}/{repo}/wiki/page/{pageName}` spells it. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/AssetId.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/AssetId.scala index e91382d..5052591 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/AssetId.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/AssetId.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.publishing -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-local identifier of a release attachment, as `/releases/{id}/assets/{attachment_id}` takes it. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/CreateFork.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/CreateFork.scala index 2b96a33..bd96316 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/CreateFork.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/CreateFork.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.publishing -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName +import com.worxbend.codeberg4s.{Owner, RepoName} /** Everything `POST /repos/{owner}/{repo}/forks` may be told, as one value. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/GenerateRepository.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/GenerateRepository.scala index d66e9c8..334f461 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/GenerateRepository.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/GenerateRepository.scala @@ -1,8 +1,7 @@ package com.worxbend.codeberg4s.repositories.publishing -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName import com.worxbend.codeberg4s.repositories.BranchName +import com.worxbend.codeberg4s.{Owner, RepoName} /** Everything `POST /repos/{template_owner}/{template_repo}/generate` may be told, as one value. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/Topic.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/Topic.scala index 6e81cb2..3b85480 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/Topic.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/Topic.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.repositories.publishing -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} /** One repository topic — `forge`, `forgejo`, `git`, `self-hosted` on `golden/repository/topics.json`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/UploadAsset.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/UploadAsset.scala index 0a6281f..73c88a0 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/UploadAsset.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/publishing/UploadAsset.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.repositories.publishing -import com.worxbend.codeberg4s.ContentType -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{ContentType, ValidationError} import java.util.Arrays diff --git a/modules/domain/src/com/worxbend/codeberg4s/retry/RetryPolicy.scala b/modules/domain/src/com/worxbend/codeberg4s/retry/RetryPolicy.scala index f7ba9af..30062f1 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/retry/RetryPolicy.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/retry/RetryPolicy.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.retry -import scala.concurrent.duration.Duration -import scala.concurrent.duration.DurationInt -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{Duration, DurationInt, FiniteDuration} /** When and how often a failed call is attempted again. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/users/Username.scala b/modules/domain/src/com/worxbend/codeberg4s/users/Username.scala index 091c7f5..d9cd3db 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/users/Username.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/users/Username.scala @@ -1,8 +1,6 @@ package com.worxbend.codeberg4s.users -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} /** The handle that names a person — the `{username}` of `/users/{username}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/users/account/AccountIds.scala b/modules/domain/src/com/worxbend/codeberg4s/users/account/AccountIds.scala index 207e93c..6f560fd 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/users/account/AccountIds.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/users/account/AccountIds.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.users.account -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The instance-wide identifier of one OAuth2 application — the `{id}` of `/user/applications/oauth2/{id}`. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/users/social/AccessToken.scala b/modules/domain/src/com/worxbend/codeberg4s/users/social/AccessToken.scala index 71af73a..2d72a0d 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/users/social/AccessToken.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/users/social/AccessToken.scala @@ -1,10 +1,8 @@ package com.worxbend.codeberg4s.users.social -import com.worxbend.codeberg4s.PathSegment -import com.worxbend.codeberg4s.SegmentLiteral -import com.worxbend.codeberg4s.ValidationError import com.worxbend.codeberg4s.auth.ApiToken import com.worxbend.codeberg4s.repositories.RepoSlug +import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} import java.time.Instant diff --git a/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialFilters.scala b/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialFilters.scala index adede4e..8a07d47 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialFilters.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialFilters.scala @@ -2,8 +2,7 @@ package com.worxbend.codeberg4s.users.social import com.worxbend.codeberg4s.ValidationError -import java.time.Instant -import java.time.LocalDate +import java.time.{Instant, LocalDate} /** The remote account `POST /user/activitypub/follow` is asked to follow. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialIds.scala b/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialIds.scala index ca88d59..4a60562 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialIds.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialIds.scala @@ -1,7 +1,6 @@ package com.worxbend.codeberg4s.users.social -import com.worxbend.codeberg4s.PositiveId -import com.worxbend.codeberg4s.ValidationError +import com.worxbend.codeberg4s.{PositiveId, ValidationError} /** The row identifier of one registered SSH key — the `{id}` of `/user/keys/{id}`. * diff --git a/modules/examples/src/com/worxbend/codeberg4s/examples/Authenticating.scala b/modules/examples/src/com/worxbend/codeberg4s/examples/Authenticating.scala index be7e950..563014b 100644 --- a/modules/examples/src/com/worxbend/codeberg4s/examples/Authenticating.scala +++ b/modules/examples/src/com/worxbend/codeberg4s/examples/Authenticating.scala @@ -1,17 +1,11 @@ package com.worxbend.codeberg4s.examples -import com.worxbend.codeberg4s.CodebergClient -import com.worxbend.codeberg4s.CodebergConfig -import com.worxbend.codeberg4s.ValidationError -import com.worxbend.codeberg4s.auth.ApiToken -import com.worxbend.codeberg4s.auth.Auth -import com.worxbend.codeberg4s.auth.Password +import com.worxbend.codeberg4s.auth.{ApiToken, Auth, Password} import com.worxbend.codeberg4s.users.User +import com.worxbend.codeberg4s.{CodebergClient, CodebergConfig, ValidationError} -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.duration.DurationInt -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{DurationInt, FiniteDuration} +import scala.concurrent.{Await, ExecutionContext} /** The three ways this library authenticates, and what happens when the credential is malformed. * diff --git a/modules/examples/src/com/worxbend/codeberg4s/examples/CreatingAnIssue.scala b/modules/examples/src/com/worxbend/codeberg4s/examples/CreatingAnIssue.scala index 7f3661d..db65ad5 100644 --- a/modules/examples/src/com/worxbend/codeberg4s/examples/CreatingAnIssue.scala +++ b/modules/examples/src/com/worxbend/codeberg4s/examples/CreatingAnIssue.scala @@ -1,22 +1,11 @@ package com.worxbend.codeberg4s.examples -import com.worxbend.codeberg4s.BaseUri -import com.worxbend.codeberg4s.CodebergClient -import com.worxbend.codeberg4s.CodebergConfig -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.ValidationError -import com.worxbend.codeberg4s.auth.ApiToken -import com.worxbend.codeberg4s.auth.Auth -import com.worxbend.codeberg4s.issues.CreateIssue -import com.worxbend.codeberg4s.issues.Issue - -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.concurrent.duration.DurationInt -import scala.concurrent.duration.FiniteDuration +import com.worxbend.codeberg4s.auth.{ApiToken, Auth} +import com.worxbend.codeberg4s.issues.{CreateIssue, Issue} +import com.worxbend.codeberg4s.{BaseUri, CodebergClient, CodebergConfig, CodebergError, Owner, RepoName, ValidationError} + +import scala.concurrent.duration.{DurationInt, FiniteDuration} +import scala.concurrent.{Await, ExecutionContext, Future} /** A write path end to end: validate the inputs, build the command, create the issue, read it back. * diff --git a/modules/examples/src/com/worxbend/codeberg4s/examples/HandlingErrors.scala b/modules/examples/src/com/worxbend/codeberg4s/examples/HandlingErrors.scala index 172e53b..752e336 100644 --- a/modules/examples/src/com/worxbend/codeberg4s/examples/HandlingErrors.scala +++ b/modules/examples/src/com/worxbend/codeberg4s/examples/HandlingErrors.scala @@ -1,20 +1,19 @@ package com.worxbend.codeberg4s.examples -import com.worxbend.codeberg4s.CodebergClient -import com.worxbend.codeberg4s.CodebergConfig -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.CodebergException -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.ValidationError import com.worxbend.codeberg4s.auth.Auth import com.worxbend.codeberg4s.repositories.Repository - -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.concurrent.duration.DurationInt -import scala.concurrent.duration.FiniteDuration +import com.worxbend.codeberg4s.{ + CodebergClient, + CodebergConfig, + CodebergError, + CodebergException, + Owner, + RepoName, + ValidationError +} + +import scala.concurrent.duration.{DurationInt, FiniteDuration} +import scala.concurrent.{Await, ExecutionContext, Future} /** The two error rails, side by side on the same failing call, and every case of the error ADT. * diff --git a/modules/examples/src/com/worxbend/codeberg4s/examples/HelloCodeberg.scala b/modules/examples/src/com/worxbend/codeberg4s/examples/HelloCodeberg.scala index 3eed76b..792c062 100644 --- a/modules/examples/src/com/worxbend/codeberg4s/examples/HelloCodeberg.scala +++ b/modules/examples/src/com/worxbend/codeberg4s/examples/HelloCodeberg.scala @@ -1,18 +1,11 @@ package com.worxbend.codeberg4s.examples -import com.worxbend.codeberg4s.CodebergClient -import com.worxbend.codeberg4s.CodebergConfig -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.ServerVersion -import com.worxbend.codeberg4s.ValidationError import com.worxbend.codeberg4s.auth.Auth import com.worxbend.codeberg4s.repositories.Repository +import com.worxbend.codeberg4s.{CodebergClient, CodebergConfig, Owner, RepoName, ServerVersion, ValidationError} -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.duration.DurationInt -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{DurationInt, FiniteDuration} +import scala.concurrent.{Await, ExecutionContext} /** The smallest complete codeberg4s program: two anonymous reads against the public Codeberg instance. * diff --git a/modules/examples/src/com/worxbend/codeberg4s/examples/ObservingRequests.scala b/modules/examples/src/com/worxbend/codeberg4s/examples/ObservingRequests.scala index 321c380..45a87bb 100644 --- a/modules/examples/src/com/worxbend/codeberg4s/examples/ObservingRequests.scala +++ b/modules/examples/src/com/worxbend/codeberg4s/examples/ObservingRequests.scala @@ -1,20 +1,19 @@ package com.worxbend.codeberg4s.examples -import com.worxbend.codeberg4s.CallContext -import com.worxbend.codeberg4s.CodebergClient -import com.worxbend.codeberg4s.CodebergConfig -import com.worxbend.codeberg4s.CodebergError -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.ValidationError import com.worxbend.codeberg4s.auth.Auth import com.worxbend.codeberg4s.core.Telemetry +import com.worxbend.codeberg4s.{ + CallContext, + CodebergClient, + CodebergConfig, + CodebergError, + Owner, + RepoName, + ValidationError +} -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.concurrent.duration.DurationInt -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{DurationInt, FiniteDuration} +import scala.concurrent.{Await, ExecutionContext, Future} /** Seeing what the client does, by implementing the one observation port it offers. * diff --git a/modules/examples/src/com/worxbend/codeberg4s/examples/SharingABackend.scala b/modules/examples/src/com/worxbend/codeberg4s/examples/SharingABackend.scala index 9e4532b..bfee02a 100644 --- a/modules/examples/src/com/worxbend/codeberg4s/examples/SharingABackend.scala +++ b/modules/examples/src/com/worxbend/codeberg4s/examples/SharingABackend.scala @@ -1,19 +1,14 @@ package com.worxbend.codeberg4s.examples -import com.worxbend.codeberg4s.BaseUri -import com.worxbend.codeberg4s.CodebergClient -import com.worxbend.codeberg4s.CodebergConfig import com.worxbend.codeberg4s.auth.Auth import com.worxbend.codeberg4s.syntax.discard import com.worxbend.codeberg4s.transport.SttpHttpPort +import com.worxbend.codeberg4s.{BaseUri, CodebergClient, CodebergConfig} import sttp.client4.Backend -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.concurrent.duration.DurationInt -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{DurationInt, FiniteDuration} +import scala.concurrent.{Await, ExecutionContext, Future} /** One HTTP connection pool, two clients, and an explicit answer to "who closes what". * diff --git a/modules/examples/src/com/worxbend/codeberg4s/examples/WalkingPages.scala b/modules/examples/src/com/worxbend/codeberg4s/examples/WalkingPages.scala index 6aec874..cc20283 100644 --- a/modules/examples/src/com/worxbend/codeberg4s/examples/WalkingPages.scala +++ b/modules/examples/src/com/worxbend/codeberg4s/examples/WalkingPages.scala @@ -1,23 +1,12 @@ package com.worxbend.codeberg4s.examples -import com.worxbend.codeberg4s.CodebergClient -import com.worxbend.codeberg4s.CodebergConfig -import com.worxbend.codeberg4s.Owner -import com.worxbend.codeberg4s.RepoName -import com.worxbend.codeberg4s.ValidationError import com.worxbend.codeberg4s.auth.Auth -import com.worxbend.codeberg4s.issues.Issue -import com.worxbend.codeberg4s.issues.IssueQuery -import com.worxbend.codeberg4s.paging.Page -import com.worxbend.codeberg4s.paging.PageNumber -import com.worxbend.codeberg4s.paging.PageParams -import com.worxbend.codeberg4s.paging.PageSize - -import scala.concurrent.Await -import scala.concurrent.ExecutionContext -import scala.concurrent.Future -import scala.concurrent.duration.DurationInt -import scala.concurrent.duration.FiniteDuration +import com.worxbend.codeberg4s.issues.{Issue, IssueQuery} +import com.worxbend.codeberg4s.paging.{Page, PageNumber, PageParams, PageSize} +import com.worxbend.codeberg4s.{CodebergClient, CodebergConfig, Owner, RepoName, ValidationError} + +import scala.concurrent.duration.{DurationInt, FiniteDuration} +import scala.concurrent.{Await, ExecutionContext, Future} /** Walking a paginated listing correctly, and the one mistake that makes a walk silently wrong. * diff --git a/modules/it/src/com/worxbend/codeberg4s/it/ForgejoBootstrap.scala b/modules/it/src/com/worxbend/codeberg4s/it/ForgejoBootstrap.scala index e437013..0bbf9f6 100644 --- a/modules/it/src/com/worxbend/codeberg4s/it/ForgejoBootstrap.scala +++ b/modules/it/src/com/worxbend/codeberg4s/it/ForgejoBootstrap.scala @@ -2,18 +2,10 @@ package com.worxbend.codeberg4s.it import com.worxbend.codeberg4s.BaseUri import com.worxbend.codeberg4s.auth.ApiToken -import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.codec.JsonValue +import com.worxbend.codeberg4s.codec.{Json, JsonValue} -import sttp.client4.DefaultSyncBackend -import sttp.client4.Request -import sttp.client4.Response -import sttp.client4.SyncBackend -import sttp.client4.asStringAlways -import sttp.client4.basicRequest -import sttp.model.HeaderNames -import sttp.model.MediaType -import sttp.model.Uri +import sttp.client4.{DefaultSyncBackend, Request, Response, SyncBackend, asStringAlways, basicRequest} +import sttp.model.{HeaderNames, MediaType, Uri} /** The few calls that put a freshly started Forgejo into a state worth testing against. * diff --git a/modules/it/src/com/worxbend/codeberg4s/it/IntegrationConfig.scala b/modules/it/src/com/worxbend/codeberg4s/it/IntegrationConfig.scala index 5656658..c90b66b 100644 --- a/modules/it/src/com/worxbend/codeberg4s/it/IntegrationConfig.scala +++ b/modules/it/src/com/worxbend/codeberg4s/it/IntegrationConfig.scala @@ -1,14 +1,11 @@ package com.worxbend.codeberg4s.it -import com.worxbend.codeberg4s.BaseUri -import com.worxbend.codeberg4s.CodebergConfig -import com.worxbend.codeberg4s.UserAgent import com.worxbend.codeberg4s.auth.Auth import com.worxbend.codeberg4s.paging.PageSize import com.worxbend.codeberg4s.retry.RetryPolicy +import com.worxbend.codeberg4s.{BaseUri, CodebergConfig, UserAgent} -import scala.concurrent.duration.DurationInt -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{DurationInt, FiniteDuration} /** The client configuration both integration suites are built on. * diff --git a/modules/it/src/com/worxbend/codeberg4s/it/LiveSmoke.scala b/modules/it/src/com/worxbend/codeberg4s/it/LiveSmoke.scala index d480817..c8708b1 100644 --- a/modules/it/src/com/worxbend/codeberg4s/it/LiveSmoke.scala +++ b/modules/it/src/com/worxbend/codeberg4s/it/LiveSmoke.scala @@ -1,10 +1,8 @@ package com.worxbend.codeberg4s.it -import com.worxbend.codeberg4s.BaseUri -import com.worxbend.codeberg4s.CodebergConfig -import com.worxbend.codeberg4s.auth.ApiToken -import com.worxbend.codeberg4s.auth.Auth +import com.worxbend.codeberg4s.auth.{ApiToken, Auth} import com.worxbend.codeberg4s.retry.RetryPolicy +import com.worxbend.codeberg4s.{BaseUri, CodebergConfig} /** The switch and the configuration for the opt-in smoke suite against the public `codeberg.org`. * diff --git a/modules/transport/src/com/worxbend/codeberg4s/transport/SttpHttpPort.scala b/modules/transport/src/com/worxbend/codeberg4s/transport/SttpHttpPort.scala index 3521931..f6e8b11 100644 --- a/modules/transport/src/com/worxbend/codeberg4s/transport/SttpHttpPort.scala +++ b/modules/transport/src/com/worxbend/codeberg4s/transport/SttpHttpPort.scala @@ -1,52 +1,49 @@ package com.worxbend.codeberg4s.transport -import com.worxbend.codeberg4s.CodebergConfig -import com.worxbend.codeberg4s.ContentType -import com.worxbend.codeberg4s.TransportCause import com.worxbend.codeberg4s.auth.Auth -import com.worxbend.codeberg4s.core.BinaryHttpPort -import com.worxbend.codeberg4s.core.BinaryResponse -import com.worxbend.codeberg4s.core.CodebergRequest -import com.worxbend.codeberg4s.core.CodebergResponse -import com.worxbend.codeberg4s.core.HttpPort -import com.worxbend.codeberg4s.core.RequestBody -import com.worxbend.codeberg4s.core.ResponseBody -import com.worxbend.codeberg4s.core.TransportFailure - -import sttp.capabilities.Effect -import sttp.capabilities.StreamMaxLengthExceededException -import sttp.client4.Backend -import sttp.client4.BackendOptions -import sttp.client4.GenericRequest -import sttp.client4.PartialRequest -import sttp.client4.Request -import sttp.client4.Response -import sttp.client4.asByteArrayAlways -import sttp.client4.basicRequest +import com.worxbend.codeberg4s.core.{ + BinaryHttpPort, + BinaryResponse, + CodebergRequest, + CodebergResponse, + HttpPort, + RequestBody, + ResponseBody, + TransportFailure +} +import com.worxbend.codeberg4s.{CodebergConfig, ContentType, TransportCause} + +import sttp.capabilities.{Effect, StreamMaxLengthExceededException} import sttp.client4.httpclient.HttpClientFutureBackend -import sttp.client4.multipart import sttp.client4.wrappers.DelegateBackend -import sttp.model.Header -import sttp.model.HeaderNames -import sttp.model.MediaType -import sttp.model.Method -import sttp.model.Uri +import sttp.client4.{ + Backend, + BackendOptions, + GenericRequest, + PartialRequest, + Request, + Response, + asByteArrayAlways, + basicRequest, + multipart +} +import sttp.model.{Header, HeaderNames, MediaType, Method, Uri} import scala.annotation.tailrec -import scala.concurrent.ExecutionContext -import scala.concurrent.Future import scala.concurrent.duration.FiniteDuration +import scala.concurrent.{ExecutionContext, Future} import scala.jdk.DurationConverters.ScalaDurationOps import scala.util.control.NonFatal -import java.net.Authenticator -import java.net.ConnectException -import java.net.PasswordAuthentication -import java.net.SocketException -import java.net.SocketTimeoutException -import java.net.UnknownHostException -import java.net.http.HttpClient -import java.net.http.HttpTimeoutException +import java.net.http.{HttpClient, HttpTimeoutException} +import java.net.{ + Authenticator, + ConnectException, + PasswordAuthentication, + SocketException, + SocketTimeoutException, + UnknownHostException +} import java.util.Locale import java.util.concurrent.Executor From 760fd3df17d28ea51ad47703991e27cb1b3a65ec Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 22:53:17 +0300 Subject: [PATCH 08/15] build: re-record the duplication baseline at 161 groups MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `verify.sh --with-slow` was failing: 408 groups against a baseline of 363. It now measures 161 and passes. The comment block explains what the number means and, more importantly, what it cannot be compared to. The drop was not earned by deleting code. Most of the 408 was file preamble — 324 of those groups held nothing but a package clause and imports, because one-per-line imports gave 108 codec files an identical seven-line header and PMD counts that as duplication. Merging same-prefix imports collapsed it. The part that *was* earned is recorded too: duplication containing real code fell from 222 groups to 183 across the refactor, measured at both commits with the same tool. That is the number the gate was always trying to watch, and it moved the right way. The old measurements stay below as history, with a line saying they form a series only among themselves. Without it, the next reader sees 363 -> 161 and banks a win that half belongs to a formatter setting. --- verify.sh | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/verify.sh b/verify.sh index 283ba9b..5eef167 100755 --- a/verify.sh +++ b/verify.sh @@ -53,6 +53,29 @@ readonly COVERED_MODULES=(modules.domain modules.core modules.codec) # change that adds one group fails, and a change that removes ten is told to # bank the win by lowering this number. # +# MEASURED, NOT RECALLED: `scripts/cpd.sh --report` on 2026-08-31 against +# modules/{domain,core,codec,transport,client}/src with PMD 7.26.0 at 40 +# tokens — 161 groups over 615 locations (448 in codec, 129 in client, 35 in +# domain, 3 in core, none in transport). +# +# THIS NUMBER IS NOT COMPARABLE TO ANY MEASUREMENT BELOW, and the drop from +# 363 was not earned by deleting code alone. `.scalafix.conf` used to set +# `groupedImports = Explode`, one import per line. Promoting the shared codec +# helpers gave 108 files in `codec` the same seven-line preamble, and PMD has +# no import filter for Scala, so it counted every pair of those preambles as +# duplication. The raw count reached 408 while duplication that contains real +# code fell from 222 groups to 183 — measured at both commits with the same +# tool. 324 of the 408 held nothing but a package clause and imports. +# +# Switching to `groupedImports = Merge` collapses each preamble to one line +# per package, and what is left is duplication of code rather than of file +# headers. So the count below is specific to `Merge` as well as to PMD 7.26.0 +# at 40 tokens: re-exploding imports would push it back over 300 without a +# line of logic being copied anywhere. +# +# Earlier measurements, kept as history — read them as a series only among +# themselves, not against the number above: +# # MEASURED, NOT RECALLED: `scripts/cpd.sh --report` on 2026-08-09 against # modules/{domain,core,codec,transport,client}/src with PMD 7.26.0 at 40 # tokens — 363 groups over 1342 locations (762 in codec, 535 in client, 39 in @@ -84,7 +107,7 @@ readonly COVERED_MODULES=(modules.domain modules.core modules.codec) # # Deliberately not overridable from the environment: moving the baseline has to # appear in a diff, with a commit message saying why. -readonly CPD_BASELINE_GROUPS=363 +readonly CPD_BASELINE_GROUPS=161 with_slow=false nightly=false From e4316807894358d0f3632fc9395e97ca97749a24 Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 22:55:16 +0300 Subject: [PATCH 09/15] build(transport): drop the unused codec dependency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `modules/transport` declared `moduleDeps = Seq(core, codec)` and never referenced codec: grepping the module's source and tests for "codec" returns nothing. ADR-0003 states the rule as a fact — the transport reads every response body as a `String` and hands it to the codec module, precisely so the JSON library stays out of the transport. With the dependency edge left in place, that rule was enforced by nothing but a grep in verify.sh step 6, which matches `^import com.github.plokhotnyuk…` and so misses a fully-qualified `com.github.plokhotnyuk.jsoniter_scala.core.readFromString` written inline. Every other module in this build gets its boundary from the dependency graph and therefore from the compiler. Removing the edge makes the compiler the enforcement, the same way it already is for domain and core, which declare no `mvnDeps` at all. The grep becomes a second line of defence rather than the only one. It also corrects the published POM: `codeberg4s-transport` made consumers pull `codeberg4s-codec` and jsoniter for a module that uses neither. After 0.1.0 that edge would read as a commitment. --- build.mill | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/build.mill b/build.mill index 3ab5feb..64afce6 100644 --- a/build.mill +++ b/build.mill @@ -203,10 +203,16 @@ object modules extends Module: ) object test extends Codeberg4sTests - /** The only module importing sttp. Implements core's `HttpPort`. */ + /** The only module importing sttp. Implements core's `HttpPort`. + * + * It does not depend on `codec`, and that absence is the boundary ADR-0003 describes: the transport reads every + * response body as a `String` and hands it on, so the JSON library stays out of it. Leaving the edge in place made + * that a promise kept only by a grep in `verify.sh` step 6, which an import-free fully-qualified call would walk + * straight past — and it put jsoniter on the published POM of an artifact that never calls it. + */ object transport extends Codeberg4sPublishModule: def artifactName = "codeberg4s-transport" - def moduleDeps = Seq(core, codec) + def moduleDeps = Seq(core) def mvnDeps = Seq( mvn"com.softwaremill.sttp.client4::core:${Versions.sttp}", From b7f66c08688856e0c044f17458d6758a42c41b11 Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 22:56:45 +0300 Subject: [PATCH 10/15] docs(model): repoint the Scaladoc links left behind by PathSegment's move MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `PathSegment` moved to the package root, but nine Scaladoc references in eight files still spelled `com.worxbend.codeberg4s.repositories.PathSegment`. These are the links that explain why an identifier's validation is a security boundary rather than a convenience — the reader who follows one is the reader trying to understand why they cannot build an `Owner` from an arbitrary string. They resolved to nothing. The build cannot catch this: `scalaDocOptions` deliberately strips `-Werror` so an unresolved link cannot fail `docJar`, because Maven Central rejects a bundle with no Javadoc jar. That decision is left alone. The warnings it still prints were used instead to confirm the fix is complete — `./mill __.docJar` now reports no unresolvable member links anywhere in the tree. --- .../src/com/worxbend/codeberg4s/issues/FilterToken.scala | 2 +- .../worxbend/codeberg4s/repositories/access/AccessNames.scala | 2 +- .../codeberg4s/repositories/actions/ActionNames.scala | 2 +- .../com/worxbend/codeberg4s/repositories/admin/AdminIds.scala | 2 +- .../worxbend/codeberg4s/repositories/gitdata/RefName.scala | 2 +- .../com/worxbend/codeberg4s/repositories/hooks/HookIds.scala | 2 +- .../codeberg4s/repositories/hooks/RepositoryFlag.scala | 2 +- .../worxbend/codeberg4s/repositories/hooks/WikiPageName.scala | 4 ++-- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/FilterToken.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/FilterToken.scala index 188409d..1f0d2d9 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/FilterToken.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/FilterToken.scala @@ -7,7 +7,7 @@ import com.worxbend.codeberg4s.ValidationError * `GET /repos/{owner}/{repo}/issues` takes `labels` and `milestones` as one string holding several values joined by * commas. That encoding has no escape: a value containing a comma is silently read as two filters, so * `labels=needs,triage` asks for the labels `needs` and `triage` rather than for `needs,triage`. It is the - * query-string cousin of the path forging [[com.worxbend.codeberg4s.repositories.PathSegment]] rejects, and it is + * query-string cousin of the path forging [[com.worxbend.codeberg4s.PathSegment]] rejects, and it is * rejected the same way — at construction, once, rather than at each call site. * * Only '''input''' types are validated this way. [[Label.name]] is a plain `String`, because the instance may already diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala index acf36b5..c623e7a 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala @@ -40,7 +40,7 @@ object BranchRuleName: /** Parses a branch protection rule name. * * Trims surrounding whitespace. Rejects an empty or blank name, a name containing `/`, a name containing a control - * character, and the traversal segments `.` and `..` — see [[com.worxbend.codeberg4s.repositories.PathSegment]] for + * character, and the traversal segments `.` and `..` — see [[com.worxbend.codeberg4s.PathSegment]] for * why that is a security boundary and not a convenience, and the type's own note for why the slash is rejected * rather than encoded. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala index 085a746..fe91c16 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala @@ -18,7 +18,7 @@ object RunnerId: * * Trims surrounding whitespace. Rejects an empty or blank value, a value containing `/`, a value containing a * control character, and the traversal segments `.` and `..` — see - * [[com.worxbend.codeberg4s.repositories.PathSegment]] for why that is a security boundary and not a convenience. + * [[com.worxbend.codeberg4s.PathSegment]] for why that is a security boundary and not a convenience. * * @return * the identifier, or a [[ValidationError]] on the `"runnerId"` field diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala index 6f32917..39b7fe8 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala @@ -72,7 +72,7 @@ object ActivityId: * [[PushMirror.remoteName]] is where a caller gets one. * * Validated as a single URI path segment, so it cannot forge a path — see - * [[com.worxbend.codeberg4s.repositories.PathSegment]]. + * [[com.worxbend.codeberg4s.PathSegment]]. */ opaque type MirrorName = String diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala index 66fca34..245be89 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala @@ -14,7 +14,7 @@ import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} * is what the request builder appends, one segment at a time, so the slashes reach the wire as real separators. * * Validation is therefore a security boundary rather than a formality — see - * [[com.worxbend.codeberg4s.repositories.PathSegment]]. A `..` segment survives percent-encoding untouched and would + * [[com.worxbend.codeberg4s.PathSegment]]. A `..` segment survives percent-encoding untouched and would * let a caller climb out of the route it was meant for, so it is rejected at construction and cannot reach a request. */ opaque type RefName = String diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala index 0ba5829..250f629 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala @@ -50,7 +50,7 @@ object GitHookName: * * Trims surrounding whitespace. Rejects an empty or blank value, a value containing `/`, a value containing a * control character, and the traversal segments `.` and `..` — see - * [[com.worxbend.codeberg4s.repositories.PathSegment]] for why that is a security boundary and not a convenience. + * [[com.worxbend.codeberg4s.PathSegment]] for why that is a security boundary and not a convenience. * * @return * the name, or a [[ValidationError]] on the `"gitHookName"` field diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala index 6b9e4ca..6252a3e 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala @@ -26,7 +26,7 @@ object RepositoryFlag: * * Trims surrounding whitespace. Rejects an empty or blank value, a value containing `/`, a value containing a * control character, and the traversal segments `.` and `..` — see - * [[com.worxbend.codeberg4s.repositories.PathSegment]] for why that is a security boundary and not a convenience. + * [[com.worxbend.codeberg4s.PathSegment]] for why that is a security boundary and not a convenience. * Nothing else is checked: the vocabulary belongs to the instance, and a flag this library refused would be one the * caller could not set. * diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala index 6790f94..4dedbfa 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala @@ -9,8 +9,8 @@ import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} * A wiki page is a file in a Git repository whose name is its title, so `Getting Started` and `Deployment/Kubernetes` * are both perfectly good names — the first because Forgejo maps spaces to dashes itself when it stores the file, the * second because a wiki has sub-pages. The slash is the reason this validates with - * [[com.worxbend.codeberg4s.repositories.PathSegment.segmented]] rather than - * [[com.worxbend.codeberg4s.repositories.PathSegment.from]], and the reason [[segments]] exists: exactly as for + * [[com.worxbend.codeberg4s.PathSegment.segmented]] rather than + * [[com.worxbend.codeberg4s.PathSegment.from]], and the reason [[segments]] exists: exactly as for * [[com.worxbend.codeberg4s.repositories.BranchName]], a slashed name has to reach the wire as a real separator, and a * name percent-encoded whole into one segment would address a page that does not exist. * From c70851958f737a4505352035c3d7a278b3e98d36 Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 23:04:56 +0300 Subject: [PATCH 11/15] refactor(model)!: close the validation bypass on command types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thirteen command and query types paired a validating smart constructor with a fully public case-class constructor, so the validation was optional. Demonstrated against the built library, from outside it: AddTrackedTime.of(1500.millis) // Left(spent, must be a whole // number of seconds) AddTrackedTime(1500.millis, None, None) // constructs, no complaint CreateIssue.of(" ") // Left(title, must not be blank) goodIssue.copy(title = "") // constructs, no complaint That second `AddTrackedTime` is not merely unvalidated, it is silently wrong on the wire: `AddTimeOptionDto` renders `command.spent.toSeconds`, and its own comment explains that truncation is safe *because* `AddTrackedTime` refuses a sub-second duration. It did not. 1500ms was sent as 1 second. The site's front page promises "Illegal requests are unrepresentable". For these thirteen types that was not true, and every Scaladoc saying a field is "validated by [[X.of]]" was describing one of several ways to build the value rather than the only one. The constructors are now `private[codeberg4s]`, which is the modifier all 131 response models already carry, so there is one convention across model types rather than two. The generated `apply` and `copy` become inaccessible outside the library while `of` and the in-class `with…` builders — which call `copy` from inside the class — are untouched. Nothing in the library constructs these types, so nothing internal changes; `modules/codec` only reads their fields. The types: AddTrackedTime, CreateComment, CreateIssue, CreateMilestone, EditComment, CreatePullRequest, BranchProtectionSettings, CreateDeployKey, DeployKeyQuery, CreateWikiPage, EditWikiPage, ActivityFeedQuery, TrackedTimeWindow. BREAKING CHANGE: the public `apply` and `copy` of the thirteen command and query types listed above are no longer accessible outside the library. Build them with the companion's `of`, which returns `Either[ValidationError, A]`, and adjust them with the `with…` builders the types already provide. Code that used the generated constructor was skipping validation the Scaladoc promised, and in the `AddTrackedTime` case was sending a truncated duration. --- .../com/worxbend/codeberg4s/issues/AddTrackedTime.scala | 6 +++++- .../com/worxbend/codeberg4s/issues/CreateComment.scala | 2 +- .../src/com/worxbend/codeberg4s/issues/CreateIssue.scala | 2 +- .../com/worxbend/codeberg4s/issues/CreateMilestone.scala | 2 +- .../src/com/worxbend/codeberg4s/issues/EditComment.scala | 2 +- .../src/com/worxbend/codeberg4s/issues/FilterToken.scala | 4 ++-- .../com/worxbend/codeberg4s/pulls/CreatePullRequest.scala | 2 +- .../codeberg4s/repositories/access/AccessNames.scala | 6 +++--- .../repositories/access/BranchProtectionSettings.scala | 2 +- .../repositories/access/DeployKeyCommands.scala | 4 ++-- .../codeberg4s/repositories/actions/ActionNames.scala | 4 ++-- .../worxbend/codeberg4s/repositories/admin/AdminIds.scala | 3 +-- .../codeberg4s/repositories/gitdata/RefName.scala | 6 +++--- .../codeberg4s/repositories/hooks/CreateWikiPage.scala | 4 ++-- .../worxbend/codeberg4s/repositories/hooks/HookIds.scala | 4 ++-- .../codeberg4s/repositories/hooks/RepositoryFlag.scala | 7 +++---- .../codeberg4s/repositories/hooks/WikiPageName.scala | 8 ++++---- .../worxbend/codeberg4s/users/social/SocialFilters.scala | 4 ++-- 18 files changed, 37 insertions(+), 35 deletions(-) diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/AddTrackedTime.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/AddTrackedTime.scala index 73d4a34..7a993a0 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/AddTrackedTime.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/AddTrackedTime.scala @@ -26,7 +26,11 @@ import java.time.Instant * @param createdAt * when the entry should be recorded as having been made, for an import that is replaying history */ -final case class AddTrackedTime(spent: FiniteDuration, userName: Option[String], createdAt: Option[Instant]): +final case class AddTrackedTime private[codeberg4s] ( + spent: FiniteDuration, + userName: Option[String], + createdAt: Option[Instant] +): /** Attributes the time to `login` rather than to the authenticated account. */ def attributedTo(login: String): AddTrackedTime = copy(userName = Some(login)) diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/CreateComment.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/CreateComment.scala index 6b0f0d6..53c25be 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/CreateComment.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/CreateComment.scala @@ -12,7 +12,7 @@ import com.worxbend.codeberg4s.ValidationError * @param body * the comment text as Markdown source; the only thing Forgejo requires, validated by [[CreateComment.of]] */ -final case class CreateComment(body: String) +final case class CreateComment private[codeberg4s] (body: String) object CreateComment: diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/CreateIssue.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/CreateIssue.scala index e3e7c6b..5412b15 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/CreateIssue.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/CreateIssue.scala @@ -33,7 +33,7 @@ import java.time.Instant * than an enum because it is a property of the issue being created, not an argument a reader has to decode at a call * site — see [[CreateIssue.createdClosed]] */ -final case class CreateIssue( +final case class CreateIssue private[codeberg4s] ( title: String, body: Option[String], assignees: Vector[String], diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/CreateMilestone.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/CreateMilestone.scala index 7e4b3e7..91cebbc 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/CreateMilestone.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/CreateMilestone.scala @@ -26,7 +26,7 @@ import java.time.Instant * whether to create the milestone already closed; absent leaves the instance's default of open. See * [[IssueStateChange]], which is the same two-valued transition and is shared rather than duplicated */ -final case class CreateMilestone( +final case class CreateMilestone private[codeberg4s] ( title: String, description: Option[String], dueOn: Option[Instant], diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/EditComment.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/EditComment.scala index e88ca11..37cfbb8 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/EditComment.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/EditComment.scala @@ -19,7 +19,7 @@ import java.time.Instant * the timestamp to record the edit under. The spec notes it "needs admin or repository owner permission"; an * ordinary token that sends it has it ignored rather than rejected */ -final case class EditComment(body: String, updatedAt: Option[Instant]): +final case class EditComment private[codeberg4s] (body: String, updatedAt: Option[Instant]): /** Records the edit as having happened at `moment`; see [[updatedAt]]. */ def recordedAt(moment: Instant): EditComment = copy(updatedAt = Some(moment)) diff --git a/modules/domain/src/com/worxbend/codeberg4s/issues/FilterToken.scala b/modules/domain/src/com/worxbend/codeberg4s/issues/FilterToken.scala index 1f0d2d9..6e00f15 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/issues/FilterToken.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/issues/FilterToken.scala @@ -7,8 +7,8 @@ import com.worxbend.codeberg4s.ValidationError * `GET /repos/{owner}/{repo}/issues` takes `labels` and `milestones` as one string holding several values joined by * commas. That encoding has no escape: a value containing a comma is silently read as two filters, so * `labels=needs,triage` asks for the labels `needs` and `triage` rather than for `needs,triage`. It is the - * query-string cousin of the path forging [[com.worxbend.codeberg4s.PathSegment]] rejects, and it is - * rejected the same way — at construction, once, rather than at each call site. + * query-string cousin of the path forging [[com.worxbend.codeberg4s.PathSegment]] rejects, and it is rejected the same + * way — at construction, once, rather than at each call site. * * Only '''input''' types are validated this way. [[Label.name]] is a plain `String`, because the instance may already * hold a name this validation refuses and refusing to decode it would cost the caller a whole page of labels. diff --git a/modules/domain/src/com/worxbend/codeberg4s/pulls/CreatePullRequest.scala b/modules/domain/src/com/worxbend/codeberg4s/pulls/CreatePullRequest.scala index a38fe20..c2b743c 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/pulls/CreatePullRequest.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/pulls/CreatePullRequest.scala @@ -35,7 +35,7 @@ import java.time.Instant * @param dueDate * a deadline for the pull request */ -final case class CreatePullRequest( +final case class CreatePullRequest private[codeberg4s] ( title: String, head: PullRequestHead, base: BranchName, diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala index c623e7a..6121eb1 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/AccessNames.scala @@ -40,9 +40,9 @@ object BranchRuleName: /** Parses a branch protection rule name. * * Trims surrounding whitespace. Rejects an empty or blank name, a name containing `/`, a name containing a control - * character, and the traversal segments `.` and `..` — see [[com.worxbend.codeberg4s.PathSegment]] for - * why that is a security boundary and not a convenience, and the type's own note for why the slash is rejected - * rather than encoded. + * character, and the traversal segments `.` and `..` — see [[com.worxbend.codeberg4s.PathSegment]] for why that is a + * security boundary and not a convenience, and the type's own note for why the slash is rejected rather than + * encoded. * * Glob characters are '''not''' rejected: `*` and `?` are what a rule name is made of, and they are legal in a URI * path segment. diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/BranchProtectionSettings.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/BranchProtectionSettings.scala index 1f61d36..c617e0c 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/BranchProtectionSettings.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/BranchProtectionSettings.scala @@ -90,7 +90,7 @@ object ApprovalCount: * whether repository administrators are bound by the rule as well. Off, the rule is advisory for anyone who can turn * it off */ -final case class BranchProtectionSettings( +final case class BranchProtectionSettings private[codeberg4s] ( enablePush: Option[Boolean], enablePushWhitelist: Option[Boolean], pushWhitelistUsernames: Option[Vector[Username]], diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/DeployKeyCommands.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/DeployKeyCommands.scala index ccd382f..0064906 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/access/DeployKeyCommands.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/access/DeployKeyCommands.scala @@ -30,7 +30,7 @@ import com.worxbend.codeberg4s.ValidationError * @param isReadOnly * whether the key may fetch but not push */ -final case class CreateDeployKey( +final case class CreateDeployKey private[codeberg4s] ( title: String, key: String, isReadOnly: Boolean, @@ -78,7 +78,7 @@ object CreateDeployKey: * the instance's fingerprint of the key, matched exactly. The usual source is [[DeployKey.fingerprint]] or * `ssh-keygen -lf` */ -final case class DeployKeyQuery(keyId: Option[Long], fingerprint: Option[String]): +final case class DeployKeyQuery private[codeberg4s] (keyId: Option[Long], fingerprint: Option[String]): /** Restricts the listing to the deploy key backed by the SSH key row `value`; see [[keyId]]. */ def forKeyId(value: Long): DeployKeyQuery = copy(keyId = Some(value)) diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala index fe91c16..ba733fd 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/actions/ActionNames.scala @@ -17,8 +17,8 @@ object RunnerId: /** Parses a runner identifier from its string spelling. * * Trims surrounding whitespace. Rejects an empty or blank value, a value containing `/`, a value containing a - * control character, and the traversal segments `.` and `..` — see - * [[com.worxbend.codeberg4s.PathSegment]] for why that is a security boundary and not a convenience. + * control character, and the traversal segments `.` and `..` — see [[com.worxbend.codeberg4s.PathSegment]] for why + * that is a security boundary and not a convenience. * * @return * the identifier, or a [[ValidationError]] on the `"runnerId"` field diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala index 39b7fe8..9a368df 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/admin/AdminIds.scala @@ -71,8 +71,7 @@ object ActivityId: * address the mirror afterwards. It is '''not''' the mirror's remote address and not the mirrored repository's name; * [[PushMirror.remoteName]] is where a caller gets one. * - * Validated as a single URI path segment, so it cannot forge a path — see - * [[com.worxbend.codeberg4s.PathSegment]]. + * Validated as a single URI path segment, so it cannot forge a path — see [[com.worxbend.codeberg4s.PathSegment]]. */ opaque type MirrorName = String diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala index 245be89..dfc1827 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/gitdata/RefName.scala @@ -13,9 +13,9 @@ import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} * segment produces `refs%2Fheads%2Fmain` and a `404`, because Forgejo matches the route with a wildcard. [[segments]] * is what the request builder appends, one segment at a time, so the slashes reach the wire as real separators. * - * Validation is therefore a security boundary rather than a formality — see - * [[com.worxbend.codeberg4s.PathSegment]]. A `..` segment survives percent-encoding untouched and would - * let a caller climb out of the route it was meant for, so it is rejected at construction and cannot reach a request. + * Validation is therefore a security boundary rather than a formality — see [[com.worxbend.codeberg4s.PathSegment]]. A + * `..` segment survives percent-encoding untouched and would let a caller climb out of the route it was meant for, so + * it is rejected at construction and cannot reach a request. */ opaque type RefName = String diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/CreateWikiPage.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/CreateWikiPage.scala index 4084d79..4b4b2ba 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/CreateWikiPage.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/CreateWikiPage.scala @@ -23,7 +23,7 @@ import com.worxbend.codeberg4s.repositories.FileContent * @param message * the commit message for the revision this creates, absent to let Forgejo write its own */ -final case class CreateWikiPage( +final case class CreateWikiPage private[codeberg4s] ( title: WikiPageName, content: FileContent, message: Option[String], @@ -72,7 +72,7 @@ object CreateWikiPage: * @param message * the commit message for the revision this creates, absent to let Forgejo write its own */ -final case class EditWikiPage( +final case class EditWikiPage private[codeberg4s] ( renamedTo: Option[WikiPageName], content: FileContent, message: Option[String], diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala index 250f629..fd51ebe 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/HookIds.scala @@ -49,8 +49,8 @@ object GitHookName: /** Parses a Git hook name. * * Trims surrounding whitespace. Rejects an empty or blank value, a value containing `/`, a value containing a - * control character, and the traversal segments `.` and `..` — see - * [[com.worxbend.codeberg4s.PathSegment]] for why that is a security boundary and not a convenience. + * control character, and the traversal segments `.` and `..` — see [[com.worxbend.codeberg4s.PathSegment]] for why + * that is a security boundary and not a convenience. * * @return * the name, or a [[ValidationError]] on the `"gitHookName"` field diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala index 6252a3e..a004662 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/RepositoryFlag.scala @@ -25,10 +25,9 @@ object RepositoryFlag: /** Parses a flag name. * * Trims surrounding whitespace. Rejects an empty or blank value, a value containing `/`, a value containing a - * control character, and the traversal segments `.` and `..` — see - * [[com.worxbend.codeberg4s.PathSegment]] for why that is a security boundary and not a convenience. - * Nothing else is checked: the vocabulary belongs to the instance, and a flag this library refused would be one the - * caller could not set. + * control character, and the traversal segments `.` and `..` — see [[com.worxbend.codeberg4s.PathSegment]] for why + * that is a security boundary and not a convenience. Nothing else is checked: the vocabulary belongs to the + * instance, and a flag this library refused would be one the caller could not set. * * @return * the flag, or a [[ValidationError]] on the `"repositoryFlag"` field diff --git a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala index 4dedbfa..b68b58b 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/repositories/hooks/WikiPageName.scala @@ -9,10 +9,10 @@ import com.worxbend.codeberg4s.{PathSegment, SegmentLiteral, ValidationError} * A wiki page is a file in a Git repository whose name is its title, so `Getting Started` and `Deployment/Kubernetes` * are both perfectly good names — the first because Forgejo maps spaces to dashes itself when it stores the file, the * second because a wiki has sub-pages. The slash is the reason this validates with - * [[com.worxbend.codeberg4s.PathSegment.segmented]] rather than - * [[com.worxbend.codeberg4s.PathSegment.from]], and the reason [[segments]] exists: exactly as for - * [[com.worxbend.codeberg4s.repositories.BranchName]], a slashed name has to reach the wire as a real separator, and a - * name percent-encoded whole into one segment would address a page that does not exist. + * [[com.worxbend.codeberg4s.PathSegment.segmented]] rather than [[com.worxbend.codeberg4s.PathSegment.from]], and the + * reason [[segments]] exists: exactly as for [[com.worxbend.codeberg4s.repositories.BranchName]], a slashed name has + * to reach the wire as a real separator, and a name percent-encoded whole into one segment would address a page that + * does not exist. * * That makes the validation a security boundary rather than a formality. A name is decomposed into segments here, and * the `.` and `..` segments that would climb out of the wiki route are rejected before any request is built. diff --git a/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialFilters.scala b/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialFilters.scala index 8a07d47..c55fc62 100644 --- a/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialFilters.scala +++ b/modules/domain/src/com/worxbend/codeberg4s/users/social/SocialFilters.scala @@ -59,7 +59,7 @@ object RemoteFollowTarget: * `yyyy-MM-dd`, so a [[java.time.LocalDate]] is exactly the right amount of information — an [[java.time.Instant]] * here would carry a time of day the endpoint discards */ -final case class ActivityFeedQuery(onlyPerformedBy: Option[Boolean], date: Option[LocalDate]): +final case class ActivityFeedQuery private[codeberg4s] (onlyPerformedBy: Option[Boolean], date: Option[LocalDate]): /** Restricts the feed to actions the account performed itself. */ def performedByTheAccount: ActivityFeedQuery = copy(onlyPerformedBy = Some(true)) @@ -94,7 +94,7 @@ object ActivityFeedQuery: * @param before * only entries updated at or before this instant */ -final case class TrackedTimeWindow(since: Option[Instant], before: Option[Instant]): +final case class TrackedTimeWindow private[codeberg4s] (since: Option[Instant], before: Option[Instant]): /** Restricts the listing to entries updated at or after `moment`. */ def updatedSince(moment: Instant): TrackedTimeWindow = copy(since = Some(moment)) From fdf3a2f99957a308aefb9a6959cbe5410fdad612 Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 23:09:17 +0300 Subject: [PATCH 12/15] test(client): check that every Attempt mirror calls its own rail operation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `AttemptParitySuite` promises in its own Scaladoc that "the convenience rail and its hand-written `Attempt` mirror cannot disagree". Every check it makes is structural — same method name, same erased parameters, the return type with `Either[CodebergError, _]` spliced in. Nothing it does invokes a mirror, so the one line inside each mirror is unchecked. A mirror that delegates to the wrong rail method passes all of it, provided the target shares the parameter list and element type. Several pairs do: `IssueSubscriptionApi.Attempt.subscribe` and `.unsubscribe` both read `(Owner, RepoName, IssueNumber, Owner)` returning `Future[Either[CodebergError, Unit]]`, and the same shape recurs across the follow/unfollow and star/unstar families. Measured rather than argued. With `unsubscribe` edited to delegate to `rail.subscribe`, `AttemptParitySuite` passed all six of its tests and the full 3604-test suite stayed green — a caller asking to unsubscribe would have subscribed. This check fails, naming the file and the line. It lives in verify.sh step 6 beside the other source-level invariants because that is what this is: the mirrors are hand-written by design, so the property is a property of the source. The alternative — invoking all 437 mirrors reflectively and comparing the operation id each reports — needs a synthesised argument for every parameter type in the library, which is a larger and more brittle mechanism than the bug it catches. The check fails loudly if it matches no mirrors at all, so the pattern going stale cannot turn it into a silent pass. --- verify.sh | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/verify.sh b/verify.sh index 5eef167..6fbfb88 100755 --- a/verify.sh +++ b/verify.sh @@ -310,6 +310,52 @@ boundary_violation 'modules/domain/src modules/core/src modules/codec/src module $boundaries_ok || fail "architecture boundaries" echo " boundaries clean" +# Every `Attempt` mirror must delegate to the rail method of the SAME NAME. +# +# AttemptParitySuite already checks the two rails structurally — same names, +# same erased parameters, the return type wrapped in Either. What it cannot +# check is the one line inside each mirror, because nothing it does invokes +# one. A mirror that delegates to the wrong rail method passes every check it +# makes, as long as the target shares the parameter list and element type. +# +# That is not hypothetical. `IssueSubscriptionApi.Attempt.subscribe` and +# `.unsubscribe` both read `(Owner, RepoName, IssueNumber, Owner)` returning +# `Future[Either[CodebergError, Unit]]`, and the same shape recurs across the +# follow/unfollow and star/unstar families. Editing a copied neighbour is how +# a new operation gets written here, so swapping one word is the likeliest +# mistake in the likeliest change. +# +# MEASURED: with `unsubscribe` delegating to `subscribe`, AttemptParitySuite +# passed all six of its tests and the whole 3604-test suite stayed green. This +# check failed, naming the file and line. It is a grep because the invariant is +# a source-level one — the mirrors are hand-written by design — and because +# invoking 437 mirrors reflectively would need a synthesised argument for every +# parameter type in the library, which is a larger and more brittle thing than +# the bug it would catch. +mirrors_checked=0 +mirror_violations="" +while IFS= read -r line; do + file=${line%%:*} + rest=${line#*:} + lineno=${rest%%:*} + target=$(sed -n "${lineno}p" "$file" | sed -E 's/.*exec\.attempt\(rail\.([A-Za-z0-9_]+).*/\1/') + # The nearest `def` at or above this line is the mirror this call belongs to. + owner=$(sed -n "1,${lineno}p" "$file" | grep -oE '^[[:space:]]*(override )?def [A-Za-z0-9_]+' | tail -1 | + sed -E 's/.*def //') + mirrors_checked=$((mirrors_checked + 1)) + if [[ "$owner" != "$target" ]]; then + mirror_violations+=" $file:$lineno: Attempt.$owner delegates to rail.$target"$'\n' + fi +done < <(grep -rInE 'exec\.attempt\(rail\.' modules/client/src --include='*.scala') + +if [[ -n "$mirror_violations" ]]; then + printf '\033[31m %s\033[0m\n' 'an Attempt mirror delegates to a differently named rail operation' + printf '%s' "$mirror_violations" + fail "Attempt rail delegation" +fi +(( mirrors_checked > 0 )) || fail "Attempt delegation check found no mirrors — the pattern is stale" +echo " $mirrors_checked Attempt mirrors delegate to their own rail operation" + # --------------------------------------------------------------------------- announce "Coverage" for module in "${COVERED_MODULES[@]}"; do From 635c0c4763a6c51b79e963da54d0f6aeb90d8ad5 Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 23:13:34 +0300 Subject: [PATCH 13/15] refactor(model)!: collapse the duplicated BlockedUser onto one owner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `GET /user/list_blocked` and `GET /orgs/{org}/list_blocked` return the same Forgejo `BlockedUser` — two properties, `block_id` and `created_at`. The library modelled it twice: two `BlockedUser` case classes, two `opaque type BlockId = Long` whose companions both read `PositiveId.from("blockId", value)`, two DTOs differing only in whether the field was called `createdAt` or `created`, and two test suites asserting the same conversions. docs/LEDGER.md already forbids this in its own words — "the first wave that needs a shared model owns it. Later waves import it and must not redefine, fork, or 'temporarily' copy it. A duplicated model is a review-blocking defect — and it is what PMD CPD catches." It was not caught, because the duplication gate was at the time mostly counting identical import blocks rather than identical models. `users.social` keeps the pair, being wave 1; `organizations` imports it. The organizations copies of the model, the DTO and their tests are deleted. No coverage is lost. The organizations suite tested three cases the social suite did not — the Go zero-time sentinel decoding as absence, the "at least 1" wording on a non-positive `block_id`, and an empty listing decoding as an empty vector — and those three moved into `SocialDtoSuite` rather than leaving with the file. BREAKING CHANGE: `com.worxbend.codeberg4s.organizations.BlockedUser` and `com.worxbend.codeberg4s.organizations.BlockId` are gone. Import `com.worxbend.codeberg4s.users.social.BlockedUser` and `BlockId` instead; the type is identical, so no other code changes. `OrganizationApi.blockedUsers` keeps its name, its signature shape and its operation id. --- docs/LEDGER.md | 16 +++++ .../organizations/OrganizationApi.scala | 1 + .../organizations/OrganizationDecoders.scala | 3 +- .../organizations/wire/BlockedUserDto.scala | 56 --------------- .../wire/OrganizationAdminDtoSuite.scala | 71 ++----------------- .../users/social/wire/SocialDtoSuite.scala | 20 ++++++ .../organizations/BlockedUser.scala | 54 -------------- .../OrganizationCommandsSuite.scala | 9 --- 8 files changed, 46 insertions(+), 184 deletions(-) delete mode 100644 modules/codec/src/com/worxbend/codeberg4s/organizations/wire/BlockedUserDto.scala delete mode 100644 modules/domain/src/com/worxbend/codeberg4s/organizations/BlockedUser.scala diff --git a/docs/LEDGER.md b/docs/LEDGER.md index dac7e9b..4d93472 100644 --- a/docs/LEDGER.md +++ b/docs/LEDGER.md @@ -40,6 +40,22 @@ done, in the same commit that introduces the model. | `Organization` | `com.worxbend.codeberg4s.organizations` | wave 5 | — | | `Team` | `com.worxbend.codeberg4s.organizations` | wave 5 | — | | `NotificationThread` | `com.worxbend.codeberg4s.notifications` | wave 6 | — | +| `BlockedUser`, `BlockId` | `com.worxbend.codeberg4s.users.social` | wave 1 | organizations (see the collapse below) | + +`BlockedUser` was a duplicate, not a prediction. `GET /user/list_blocked` and +`GET /orgs/{org}/list_blocked` return the same two-property model, and each +group had modelled it separately: two `BlockedUser` case classes, two +`opaque type BlockId = Long` with byte-identical `PositiveId.from("blockId", …)` +bodies, two DTOs and two test suites. That is exactly what the rule at the top +of this file calls a review-blocking defect, and it survived because nothing +checked for it — the duplication gate that was supposed to catch it was, at the +time, mostly counting import blocks. + +`users.social` keeps them, per the first-wave rule; `organizations` imports +them. The three test cases the organizations suite had and the social one +lacked — the Go zero-time sentinel, the "at least 1" message on a non-positive +id, and the empty listing — were moved into `SocialDtoSuite` rather than +dropped with the file. Two rows of that table were written before the waves ran and predicted a reuse that did not happen. Both are corrected rather than deleted, because the diff --git a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationApi.scala b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationApi.scala index 155387f..f03ac5c 100644 --- a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationApi.scala +++ b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationApi.scala @@ -9,6 +9,7 @@ import com.worxbend.codeberg4s.repositories.Repository import com.worxbend.codeberg4s.repositories.admin.wire.RepositoryOptionDto import com.worxbend.codeberg4s.repositories.admin.{CreateRepository, RepositoryActivity} import com.worxbend.codeberg4s.users.account.AvatarImage +import com.worxbend.codeberg4s.users.social.BlockedUser import com.worxbend.codeberg4s.users.{User, Username} import com.worxbend.codeberg4s.{CodebergError, HttpMethod} diff --git a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationDecoders.scala b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationDecoders.scala index ce206b1..da2f7c2 100644 --- a/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationDecoders.scala +++ b/modules/client/src/com/worxbend/codeberg4s/organizations/OrganizationDecoders.scala @@ -7,7 +7,6 @@ import com.worxbend.codeberg4s.core.Decode import com.worxbend.codeberg4s.issues.Label import com.worxbend.codeberg4s.issues.wire.LabelDto import com.worxbend.codeberg4s.organizations.wire.{ - BlockedUserDto, OrganizationDto, OrganizationPermissionsDto, QuotaArtifactDto, @@ -23,6 +22,8 @@ import com.worxbend.codeberg4s.repositories.hooks.Webhook import com.worxbend.codeberg4s.repositories.hooks.wire.WebhookDto import com.worxbend.codeberg4s.repositories.wire.RepositoryDto import com.worxbend.codeberg4s.users.User +import com.worxbend.codeberg4s.users.social.BlockedUser +import com.worxbend.codeberg4s.users.social.wire.BlockedUserDto import com.worxbend.codeberg4s.users.wire.UserDto import com.worxbend.codeberg4s.wire.SearchEnvelopeDto diff --git a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/BlockedUserDto.scala b/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/BlockedUserDto.scala deleted file mode 100644 index e23555c..0000000 --- a/modules/codec/src/com/worxbend/codeberg4s/organizations/wire/BlockedUserDto.scala +++ /dev/null @@ -1,56 +0,0 @@ -package com.worxbend.codeberg4s.organizations.wire - -import com.worxbend.codeberg4s.JsonPath -import com.worxbend.codeberg4s.codec.{ArrayElements, JsonDecoder, JsonFields, Timestamps, Wire} -import com.worxbend.codeberg4s.core.DecodeFailure -import com.worxbend.codeberg4s.organizations.{BlockId, BlockedUser} - -/** Forgejo's `BlockedUser` model, field for field — both of its fields. - * - * '''Derived from `spec/swagger.v1.json`, not from a captured response.''' `GET /orgs/{org}/list_blocked` needs a - * token and `modules/codec/test/resources/golden` was harvested anonymously. - * - * The model names no account; see [[com.worxbend.codeberg4s.organizations.BlockedUser]] for why that is reported as-is - * rather than patched over. There is no `login`, `user` or `username` key to read, so this DTO has no field for one — - * adding a speculative field would be exactly the invention `docs/HAZARDS.md` warns against. - * - * @param blockId - * the `block_id` key - * @param createdAt - * the `created_at` key as a raw string; parsed during conversion - */ -final case class BlockedUserDto(blockId: Option[Long], createdAt: Option[String]): - - /** Converts to the domain, reporting failure paths relative to `at`. - * - * `block_id` is required and goes through [[com.worxbend.codeberg4s.organizations.BlockId.from]], because it is the - * only thing that tells two entries of the listing apart — an entry with neither an id nor an account would be - * indistinguishable from every other one, which is worse than a decoding failure naming the field. - * - * `created_at` that is blank, unparseable or the Go zero-time sentinel becomes `None`; see - * [[com.worxbend.codeberg4s.codec.Timestamps]]. - */ - def toDomainAt(at: JsonPath): Either[DecodeFailure, BlockedUser] = - Wire - .validated(at, "block_id", blockId)(BlockId.from) - .map(identifier => BlockedUser(blockId = identifier, createdAt = Timestamps.parseOptional(createdAt))) - - /** [[toDomainAt]] for a payload that is the whole response body. */ - def toDomain: Either[DecodeFailure, BlockedUser] = - toDomainAt(JsonPath.Root) - -object BlockedUserDto: - - /** Reads a `BlockedUser` object. Absent and `null` are the same thing for every field; see - * [[com.worxbend.codeberg4s.codec.JsonFields]]. - */ - given JsonDecoder[BlockedUserDto] = - JsonFields.reader(fromFields) - - /** Projects an already-decoded object, so the field spellings exist in exactly one place. */ - def fromFields(fields: JsonFields): BlockedUserDto = - BlockedUserDto(blockId = fields.number("block_id"), createdAt = fields.text("created_at")) - - /** Converts a decoded array of entries, reporting the position of whichever element failed. */ - def toDomainAll(base: JsonPath, dtos: Vector[BlockedUserDto]): Either[DecodeFailure, Vector[BlockedUser]] = - ArrayElements.convert(base, dtos)((dto, path) => dto.toDomainAt(path)) diff --git a/modules/codec/test/src/com/worxbend/codeberg4s/organizations/wire/OrganizationAdminDtoSuite.scala b/modules/codec/test/src/com/worxbend/codeberg4s/organizations/wire/OrganizationAdminDtoSuite.scala index 5ee40e6..068ceb1 100644 --- a/modules/codec/test/src/com/worxbend/codeberg4s/organizations/wire/OrganizationAdminDtoSuite.scala +++ b/modules/codec/test/src/com/worxbend/codeberg4s/organizations/wire/OrganizationAdminDtoSuite.scala @@ -2,18 +2,18 @@ package com.worxbend.codeberg4s.organizations.wire import com.worxbend.codeberg4s.JsonPath import com.worxbend.codeberg4s.codec.Json -import com.worxbend.codeberg4s.organizations.BlockedUser import com.worxbend.codeberg4s.organizations.OrganizationPermissions import munit.FunSuite -import java.time.Instant - -/** `OrganizationPermissions` and `BlockedUser` on the wire. +/** `OrganizationPermissions` on the wire. + * + * '''The payload is derived from `spec/swagger.v1.json`, not captured.''' `GET /users/{u}/orgs/{org}/permissions` + * needs a token and the golden harvest was anonymous, so the bodies below were written by hand to match the spec's + * definition and are not evidence that Forgejo sends exactly this. * - * '''Both payloads are derived from `spec/swagger.v1.json`, not captured.''' `GET /users/{u}/orgs/{org}/permissions` - * and `GET /orgs/{org}/list_blocked` each need a token and the golden harvest was anonymous, so the bodies below were - * written by hand to match the spec's definitions and are not evidence that Forgejo sends exactly this. + * The block-list entries `GET /orgs/{org}/list_blocked` returns are the same `BlockedUser` model `/user/list_blocked` + * sends, and are tested once, in [[com.worxbend.codeberg4s.users.social.wire.SocialDtoSuite]]. * * Each field is exercised three ways — present, JSON `null`, and absent — because * [[com.worxbend.codeberg4s.codec.WireConventions]] rule 2 says the last two must be indistinguishable, and because @@ -55,66 +55,9 @@ final class OrganizationAdminDtoSuite extends FunSuite: case Left(failure) => assertEquals(failure.path.render, "$") case Right(value) => fail(s"expected a decoding failure, got $value") - // --- BlockedUser ---------------------------------------------------------- - - test("a block entry decodes its two keys"): - val entry = domainBlock("""{"block_id":41,"created_at":"2026-02-09T10:11:12Z"}""") - - assertEquals(entry.blockId.value, 41L) - assertEquals(entry.createdAt, Some(Instant.parse("2026-02-09T10:11:12Z"))) - - test("a block entry whose created_at is JSON null keeps its identifier and loses the timestamp"): - val entry = domainBlock("""{"block_id":41,"created_at":null}""") - - assertEquals(entry.blockId.value, 41L) - assertEquals(entry.createdAt, None) - - test("an absent created_at decodes identically to one sent as null"): - assertEquals(domainBlock("""{"block_id":41}"""), domainBlock("""{"block_id":41,"created_at":null}""")) - - test("the Go zero-time sentinel is absence, not a timestamp in the year one"): - assertEquals(domainBlock("""{"block_id":41,"created_at":"0001-01-01T00:00:00Z"}""").createdAt, None) - - test("a block entry without block_id fails, because nothing else tells two entries apart"): - failureOf("""{"created_at":"2026-02-09T10:11:12Z"}""") match - case (path, _) => assertEquals(path, "$.block_id") - - test("a block_id sent as null fails exactly as a missing one does"): - assertEquals(failureOf("""{"block_id":null}""")._1, failureOf("{}")._1) - - test("a non-positive block_id is refused during conversion, at the field's own path"): - val (path, message) = failureOf("""{"block_id":0}""") - - assertEquals(path, "$.block_id") - assert(message.contains("at least 1"), s"the failure did not explain the bound: $message") - - test("a bad element of a block listing reports its own index"): - val dtos = Json.decode[Vector[BlockedUserDto]]("""[{"block_id":1},{"block_id":0}]""") match - case Right(decoded) => decoded - case Left(failure) => fail(s"the array did not decode: ${failure.path.render} ${failure.message}") - - BlockedUserDto.toDomainAll(JsonPath.Root, dtos) match - case Left(failure) => assertEquals(failure.path.render, "$[1].block_id") - case Right(value) => fail(s"expected a conversion failure, got $value") - - test("an empty block listing is an empty vector, not a failure"): - Json.decode[Vector[BlockedUserDto]]("[]").flatMap(dtos => BlockedUserDto.toDomainAll(JsonPath.Root, dtos)) match - case Right(entries) => assertEquals(entries, Vector.empty[BlockedUser]) - case Left(failure) => fail(s"an empty array failed: ${failure.path.render} ${failure.message}") - // --- helpers -------------------------------------------------------------- private def domainPermissions(body: String): OrganizationPermissions = Json.decode[OrganizationPermissionsDto](body).flatMap(_.toDomain) match case Right(permissions) => permissions case Left(failure) => fail(s"$body did not decode: ${failure.path.render} ${failure.message}") - - private def domainBlock(body: String): BlockedUser = - Json.decode[BlockedUserDto](body).flatMap(_.toDomain) match - case Right(entry) => entry - case Left(failure) => fail(s"$body did not decode: ${failure.path.render} ${failure.message}") - - private def failureOf(body: String): (String, String) = - Json.decode[BlockedUserDto](body).flatMap(_.toDomain) match - case Left(failure) => (failure.path.render, failure.message) - case Right(value) => fail(s"expected a failure, got $value") diff --git a/modules/codec/test/src/com/worxbend/codeberg4s/users/social/wire/SocialDtoSuite.scala b/modules/codec/test/src/com/worxbend/codeberg4s/users/social/wire/SocialDtoSuite.scala index 0301513..0f04e6b 100644 --- a/modules/codec/test/src/com/worxbend/codeberg4s/users/social/wire/SocialDtoSuite.scala +++ b/modules/codec/test/src/com/worxbend/codeberg4s/users/social/wire/SocialDtoSuite.scala @@ -50,6 +50,26 @@ final class SocialDtoSuite extends FunSuite: case Left(problem) => assertEquals(problem.path.render, "$[1].block_id") case Right(items) => fail(s"expected the second element to fail, got $items") + // Ported from OrganizationAdminDtoSuite when `/orgs/{org}/list_blocked` and + // `/user/list_blocked` were collapsed onto this one DTO: the org copy tested + // these three and this one did not, so they moved rather than being deleted. + + test("the Go zero-time sentinel is absence, not a timestamp in the year one"): + assertEquals(blocked("""{"block_id": 99, "created_at": "0001-01-01T00:00:00Z"}""").createdAt, None) + + test("a non-positive block_id is refused during conversion, and the failure explains the bound"): + val problem = blockedFailure("""{"block_id": 0}""") + + assertEquals(problem.path.render, "$.block_id") + assert(problem.message.contains("at least 1"), s"the failure did not explain the bound: ${problem.message}") + + test("an empty block listing is an empty vector, not a failure"): + val outcome = Json + .decode[Vector[BlockedUserDto]]("[]") + .flatMap(BlockedUserDto.toDomainAll(JsonPath.Root, _)) + + assertEquals(outcome, Right(Vector.empty[BlockedUser])) + // --- stopwatches ---------------------------------------------------------- test("a stopwatch decodes and converts field for field"): diff --git a/modules/domain/src/com/worxbend/codeberg4s/organizations/BlockedUser.scala b/modules/domain/src/com/worxbend/codeberg4s/organizations/BlockedUser.scala deleted file mode 100644 index 2ca7511..0000000 --- a/modules/domain/src/com/worxbend/codeberg4s/organizations/BlockedUser.scala +++ /dev/null @@ -1,54 +0,0 @@ -package com.worxbend.codeberg4s.organizations - -import com.worxbend.codeberg4s.{PositiveId, ValidationError} - -import java.time.Instant - -/** The identifier of one block record — the `block_id` of Forgejo's `BlockedUser`. - * - * A database row id for the block itself, not for the blocked account. Nothing in the API takes it as a path segment: - * a block is lifted by naming the account again, through [[OrganizationApi.unblockUser]]. It exists as a type anyway - * because it is the only thing on [[BlockedUser]] that distinguishes two entries, and because a bare `Long` in a model - * whose other field is a timestamp invites being read as a user id — which it is not. - */ -opaque type BlockId = Long - -object BlockId: - - /** Parses a block identifier. - * - * Rejects anything below `1`: Forgejo's identifiers are database row ids and start at one. - * - * @return - * the identifier, or a [[ValidationError]] on the `"blockId"` field - */ - def from(value: Long): Either[ValidationError, BlockId] = - PositiveId.from("blockId", value) - - extension (id: BlockId) - - /** The identifier as a `Long`. */ - def value: Long = id - -/** One entry of an organisation's block list — Forgejo's `BlockedUser`, as `GET /orgs/{org}/list_blocked` reports it. - * - * '''Derived from `spec/swagger.v1.json`, not from a captured response.''' The route needs a token and - * `modules/codec/test/resources/golden` was harvested anonymously, so no fixture backs this shape. - * - * ==It does not say who was blocked, and that is the model's own shortcoming== - * - * `BlockedUser` declares exactly two properties — `block_id` and `created_at` — and neither one names an account. The - * type is called `BlockedUser` and carries no user. This library reports what the endpoint sends rather than inventing - * a login for it: correlating a block with an account is not possible from this payload alone on the pinned spec, and - * a field guessed at here would be a field that quietly disagreed with a future Forgejo release. If a capture ever - * shows an instance sending more, the capture wins and this model grows. - * - * Practically, that makes the listing useful for counting and auditing timestamps, and [[OrganizationApi.blockUser]] / - * [[OrganizationApi.unblockUser]] the operations that actually name people. - * - * @param blockId - * the block record's identifier; see [[BlockId]] - * @param createdAt - * when the block was recorded, absent when the instance sent no timestamp or the Go zero-time sentinel - */ -final case class BlockedUser private[codeberg4s] (blockId: BlockId, createdAt: Option[Instant]) diff --git a/modules/domain/test/src/com/worxbend/codeberg4s/organizations/OrganizationCommandsSuite.scala b/modules/domain/test/src/com/worxbend/codeberg4s/organizations/OrganizationCommandsSuite.scala index a64b4e6..8ed48e1 100644 --- a/modules/domain/test/src/com/worxbend/codeberg4s/organizations/OrganizationCommandsSuite.scala +++ b/modules/domain/test/src/com/worxbend/codeberg4s/organizations/OrganizationCommandsSuite.scala @@ -186,15 +186,6 @@ final class OrganizationCommandsSuite extends FunSuite: test("label ordering parsing trims and ignores case"): assertEquals(OrganizationLabelSort.parse(" MostIssues "), Some(OrganizationLabelSort.MostIssues)) - // --- BlockId -------------------------------------------------------------- - - test("a block id is a positive row id"): - assertEquals(orFail(BlockId.from(7L)).value, 7L) - - test("a non-positive block id is refused on the blockId field"): - assertEquals(fieldOf(BlockId.from(0L)), "blockId") - assertEquals(fieldOf(BlockId.from(-1L)), "blockId") - // --- helpers -------------------------------------------------------------- private def orFail[A](result: Either[ValidationError, A]): A = From 1cf447252fa8269d24fa387f3572079bd106aa69 Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 23:14:54 +0300 Subject: [PATCH 14/15] docs(changelog): record the validation and BlockedUser breaking changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both land before the tag freezes the surface, so they belong in the same "Changed" section as the renames: the thirteen command types whose constructors became `private[codeberg4s]`, and the removal of the duplicated `organizations.BlockedUser` and `BlockId`. The `AddTrackedTime` case is spelled out rather than summarised, because a caller who used the public constructor was not merely skipping a check — they were sending a silently truncated duration. --- CHANGELOG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e9d9f8..5b57a89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -101,6 +101,23 @@ changed deliberately *before* the freeze, and anyone who built against a Every item here is a breaking change against the `0.1.0-SNAPSHOT` builds, taken now because the tag is what freezes the surface. +- **Command and query types can no longer be built without validation.** + Thirteen types paired a validating `of` with a public case-class + constructor, so `apply` and `copy` bypassed the check the Scaladoc + promised — `AddTrackedTime(1500.millis, …)` was accepted and then sent as + one second, because the codec truncates on the stated assumption that the + domain type refuses sub-second durations. Their constructors are now + `private[codeberg4s]`, matching the 131 response models. Build them with + `of` and adjust them with the `with…` builders. The types: + `AddTrackedTime`, `CreateComment`, `CreateIssue`, `CreateMilestone`, + `EditComment`, `CreatePullRequest`, `BranchProtectionSettings`, + `CreateDeployKey`, `DeployKeyQuery`, `CreateWikiPage`, `EditWikiPage`, + `ActivityFeedQuery`, `TrackedTimeWindow`. +- **`organizations.BlockedUser` and `organizations.BlockId` are gone.** The + organisation and account block lists return the same two-property Forgejo + model, and it was declared twice. Import + `com.worxbend.codeberg4s.users.social.BlockedUser` and `BlockId`; the type + is identical. `OrganizationApi.blockedUsers` is unchanged. - **`Owner` and `RepoName` moved to the package root.** They were in `com.worxbend.codeberg4s.repositories`, which meant the two types needed before *any* request could be made lived in a sub-package a caller had no From 9efb3259e06333bd5f026360c5d231a873a20498 Mon Sep 17 00:00:00 2001 From: w0rxbend Date: Mon, 31 Aug 2026 23:16:48 +0300 Subject: [PATCH 15/15] build: lower the duplication baseline to 156 Collapsing the duplicated `BlockedUser` model removed five groups, and the gate's own rule is to bank a reduction rather than leave headroom that a future copy-paste could grow into. --- verify.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/verify.sh b/verify.sh index 6fbfb88..dac01c6 100755 --- a/verify.sh +++ b/verify.sh @@ -55,8 +55,9 @@ readonly COVERED_MODULES=(modules.domain modules.core modules.codec) # # MEASURED, NOT RECALLED: `scripts/cpd.sh --report` on 2026-08-31 against # modules/{domain,core,codec,transport,client}/src with PMD 7.26.0 at 40 -# tokens — 161 groups over 615 locations (448 in codec, 129 in client, 35 in -# domain, 3 in core, none in transport). +# tokens — 156 groups, after collapsing the duplicated BlockedUser model. The +# 161 it read a few commits earlier was the same tree with that duplicate still +# in it. # # THIS NUMBER IS NOT COMPARABLE TO ANY MEASUREMENT BELOW, and the drop from # 363 was not earned by deleting code alone. `.scalafix.conf` used to set @@ -107,7 +108,7 @@ readonly COVERED_MODULES=(modules.domain modules.core modules.codec) # # Deliberately not overridable from the environment: moving the baseline has to # appear in a diff, with a commit message saying why. -readonly CPD_BASELINE_GROUPS=161 +readonly CPD_BASELINE_GROUPS=156 with_slow=false nightly=false