@effected/github 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,47 @@ import { Context, Effect, Layer, Schema } from "effect";
5
5
 
6
6
  //#region src/GitHubRepository.ts
7
7
  /**
8
+ * A {@link RepositoryPatch} from a draft, dropping every explicitly-`undefined`
9
+ * field.
10
+ *
11
+ * @remarks
12
+ * The supported spelling for "apply only what was configured" — the natural
13
+ * shape for a sync action, and the one the checker cannot follow on its own.
14
+ * Without it a consumer under the recommended tsconfig is quietly pushed toward
15
+ * `as`, which is a real cost in a package whose stated design property is that
16
+ * the route is the key and there are no casts.
17
+ *
18
+ * Dropping the key rather than sending `undefined` is what the wire needs:
19
+ * `PATCH` treats an absent field as "leave it alone", while an explicit `null`
20
+ * or `undefined` is a value.
21
+ *
22
+ * A key-by-key loop still defeats TypeScript's correlation between two indexed
23
+ * accesses (`draft[key] = source[key]` over a union `key`), which no helper can
24
+ * fix — build the draft as a literal where you can.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import { repositoryPatch } from "@effected/github";
29
+ *
30
+ * // `config.has_issues` is `boolean | undefined`; absent fields drop out.
31
+ * const patch = repositoryPatch({
32
+ * has_issues: config.has_issues,
33
+ * has_wiki: config.has_wiki,
34
+ * description: config.description,
35
+ * });
36
+ * ```
37
+ *
38
+ * @param draft - The fields to apply, any of which may be `undefined`.
39
+ * @returns A patch carrying only the fields that were actually set.
40
+ *
41
+ * @public
42
+ */
43
+ const repositoryPatch = (draft) => {
44
+ const out = {};
45
+ for (const [key, value] of Object.entries(draft)) if (value !== void 0) out[key] = value;
46
+ return out;
47
+ };
48
+ /**
8
49
  * Fields in the user-facing `security_and_analysis` block that GitHub accepts
9
50
  * as `{ status: "enabled" | "disabled" }`.
10
51
  *
@@ -234,4 +275,4 @@ const make = (client) => {
234
275
  };
235
276
 
236
277
  //#endregion
237
- export { GRAPHQL_ONLY_SETTINGS, GitHubRepository, SECURITY_ANALYSIS_STATUS_FIELDS, transformSecurityAndAnalysis };
278
+ export { GRAPHQL_ONLY_SETTINGS, GitHubRepository, SECURITY_ANALYSIS_STATUS_FIELDS, repositoryPatch, transformSecurityAndAnalysis };
package/README.md CHANGED
@@ -189,6 +189,19 @@ const program = Effect.gen(function* () {
189
189
  // GitHub would reject, which is what a person reading a dry run is checking for.
190
190
  ```
191
191
 
192
+ `updateSettings` takes octokit's own generated params, and those spell an optional field as `has_issues?: boolean` rather than `has_issues?: boolean | undefined` — so under `exactOptionalPropertyTypes` a `Partial<T>` built from your own settings schema does not assign to it at all. `repositoryPatch` is the supported way out, and it exists so the answer is never a cast:
193
+
194
+ ```ts
195
+ import { repositoryPatch } from "@effected/github";
196
+
197
+ declare const config: { has_issues?: boolean | undefined; description?: string | undefined };
198
+
199
+ const patch = repositoryPatch({ has_issues: config.has_issues, description: config.description });
200
+ // a RepositoryPatch carrying only the fields that were actually set
201
+ ```
202
+
203
+ Dropping the key is what the wire needs: `PATCH` reads an absent field as "leave it alone", while an explicit `null` is a value. `RepositoryPatchDraft` is the input type — the same fields, each allowed to be an explicit `undefined`. Build the draft as an object literal where you can: a key-by-key loop defeats TypeScript's correlation between two indexed accesses, which no helper can repair.
204
+
192
205
  `security_and_analysis` accepts both the bare `"enabled"` a human writes in a config file and the `{ status: "enabled" }` GitHub's own parameter type declares. A map touching neither GraphQL-only setting never reads the node id, so the common case stays one request. `ownerType` answers `"User"` or `"Organization"` for the repository in `Repo`, which is how a shared settings template drops the fields GitHub accepts only on an organization-owned repository before applying itself to a personal one.
193
206
 
194
207
  ## GitHub App authentication
@@ -268,6 +281,7 @@ const TestClient = GitHubClient.layerFixture(fixtures);
268
281
  - `GitHubClient` — the typed transport: `request`, `requestDecoded` (a mandatory-schema escape hatch for routes outside the generated map), `paginate` / `paginateStream`, `graphql`, and `rateLimit` (observation only — nothing here throttles on your behalf).
269
282
  - `Repo` / `RepoRef` — the `{ owner, repo }` coordinate, resolved per call through `R`, with `Repo.provide` for multi-repository programs.
270
283
  - `GitHubRepository` — the repository's settings as GitHub's own generated type, plus `defaultBranch`, `nodeId`, `ownerType` for gating organization-only fields, and `applySettings` reporting the keys it actually sent.
284
+ - `repositoryPatch` / `RepositoryPatchDraft` — build an `updateSettings` patch from fields that may be `undefined`, under `exactOptionalPropertyTypes`, without a cast.
271
285
  - `GitHubError` / `GitHubGraphQLError` — one error per transport, `kind`-routed with `hasKind` for `Effect.catchIf`.
272
286
  - `RetryPolicy` — the client's one retry policy: full-jitter backoff, server-advised delays honored up to a ceiling.
273
287
  - `GitHubApp` — App JWT signing, installation token minting/revocation, app and installation identity, and `clientLayer` for an App-authenticated `GitHubClient`.
package/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import { Config, Context, Duration, Effect, Layer, Option, Redacted, Result, Sch
3
3
  import { PaginatingEndpoints } from "@octokit/plugin-paginate-rest";
4
4
  import { Endpoints, RequestHeaders } from "@octokit/types";
5
5
  import { SemVer } from "@effected/semver";
6
+ //#endregion
6
7
  //#region src/GitHubError.d.ts
7
8
  /**
8
9
  * Why a GitHub call failed, as a value you can branch on.
@@ -17,7 +18,7 @@ import { SemVer } from "@effected/semver";
17
18
  *
18
19
  * @public
19
20
  */
20
- declare const GitHubErrorKind: Schema.Literals<readonly ["notFound", "alreadyExists", "rejected", "unauthorized", "rateLimited", "transport", "decode"]>;
21
+ export declare const GitHubErrorKind: Schema.Literals<readonly ["notFound", "alreadyExists", "rejected", "unauthorized", "rateLimited", "transport", "decode"]>;
21
22
  declare const GitHubError_base: Schema.Class<GitHubError, Schema.TaggedStruct<"GitHubError", {
22
23
  /** Structural routing. Branch on this, never on the rendered message. */
23
24
  readonly kind: Schema.Literals<readonly ["notFound", "alreadyExists", "rejected", "unauthorized", "rateLimited", "transport", "decode"]>;
@@ -57,7 +58,7 @@ declare const GitHubError_base: Schema.Class<GitHubError, Schema.TaggedStruct<"G
57
58
  *
58
59
  * @public
59
60
  */
60
- declare class GitHubError extends GitHubError_base {
61
+ export declare class GitHubError extends GitHubError_base {
61
62
  /** `"GitBranch.upsert failed (422): Reference already exists"`. */
62
63
  get message(): string;
63
64
  /**
@@ -122,7 +123,7 @@ declare const GraphQLErrorEntry_base: Schema.Class<GraphQLErrorEntry, Schema.Str
122
123
  *
123
124
  * @public
124
125
  */
125
- declare class GraphQLErrorEntry extends GraphQLErrorEntry_base {}
126
+ export declare class GraphQLErrorEntry extends GraphQLErrorEntry_base {}
126
127
  declare const GitHubGraphQLError_base: Schema.Class<GitHubGraphQLError, Schema.TaggedStruct<"GitHubGraphQLError", {
127
128
  /**
128
129
  * Structural routing, mirroring `GitHubError`'s.
@@ -155,7 +156,7 @@ declare const GitHubGraphQLError_base: Schema.Class<GitHubGraphQLError, Schema.T
155
156
  *
156
157
  * @public
157
158
  */
158
- declare class GitHubGraphQLError extends GitHubGraphQLError_base {
159
+ export declare class GitHubGraphQLError extends GitHubGraphQLError_base {
159
160
  get message(): string;
160
161
  /** Whether retrying could plausibly succeed. Derived, like the REST error's. */
161
162
  get retryable(): boolean;
@@ -201,7 +202,7 @@ declare class GitHubGraphQLError extends GitHubGraphQLError_base {
201
202
  *
202
203
  * @public
203
204
  */
204
- declare class GraphQLDocument<A, V extends Record<string, unknown>> {
205
+ export declare class GraphQLDocument<A, V extends Record<string, unknown>> {
205
206
  /** Names the span and the error's `operation`. */
206
207
  readonly name: string;
207
208
  /** The document text sent to GitHub. */
@@ -260,7 +261,7 @@ declare const RateLimitSnapshot_base: Schema.Class<RateLimitSnapshot, Schema.Str
260
261
  *
261
262
  * @public
262
263
  */
263
- declare class RateLimitSnapshot extends RateLimitSnapshot_base {
264
+ export declare class RateLimitSnapshot extends RateLimitSnapshot_base {
264
265
  /** Milliseconds until the window resets, relative to `nowMillis`, floored at zero. */
265
266
  millisUntilReset(nowMillis: number): number;
266
267
  /** True when the budget is spent. */
@@ -319,7 +320,7 @@ declare const RetryPolicy_base: Schema.Class<RetryPolicy, Schema.Struct<{
319
320
  *
320
321
  * @public
321
322
  */
322
- declare class RetryPolicy extends RetryPolicy_base {
323
+ export declare class RetryPolicy extends RetryPolicy_base {
323
324
  /** Four retries, 1s base, 30s cap, honoring server-advised delays up to a minute. */
324
325
  static readonly default: RetryPolicy;
325
326
  /** Retries nothing; every failure surfaces on the first attempt. */
@@ -361,8 +362,9 @@ declare class RetryPolicy extends RetryPolicy_base {
361
362
  */
362
363
  schedule<E extends RetryableFailure>(): Schedule.Schedule<number, E>;
363
364
  }
364
- //#endregion
365
- //#region src/Rest.d.ts
365
+ declare namespace Rest_d_exports {
366
+ export { Data, Item, PageOptions, PaginatingRoute, Params, RequestExtras, Response, Route };
367
+ }
366
368
  /**
367
369
  * Every REST route GitHub documents, as a `"<METHOD> <path>"` literal — for
368
370
  * example `"GET /repos/{owner}/{repo}"`.
@@ -470,7 +472,7 @@ declare const PageOptions_base: Schema.Class<PageOptions, Schema.Struct<{
470
472
  *
471
473
  * @public
472
474
  */
473
- declare class PageOptions extends PageOptions_base {
475
+ export declare class PageOptions extends PageOptions_base {
474
476
  /** Reads every page, 100 at a time — GitHub's maximum page size. */
475
477
  static readonly all: PageOptions;
476
478
  /**
@@ -685,7 +687,7 @@ declare const GitHubClient_base: Context.ServiceClass<GitHubClient, "@effected/g
685
687
  *
686
688
  * @public
687
689
  */
688
- declare class GitHubClient extends GitHubClient_base {
690
+ export declare class GitHubClient extends GitHubClient_base {
689
691
  /**
690
692
  * A client authenticated with a token you already hold.
691
693
  *
@@ -759,7 +761,7 @@ declare const InvalidRepoRefError_base: Schema.Class<InvalidRepoRefError, Schema
759
761
  *
760
762
  * @public
761
763
  */
762
- declare class InvalidRepoRefError extends InvalidRepoRefError_base {
764
+ export declare class InvalidRepoRefError extends InvalidRepoRefError_base {
763
765
  get message(): string;
764
766
  }
765
767
  declare const RepoRef_base: Schema.Class<RepoRef, Schema.Struct<{
@@ -773,7 +775,7 @@ declare const RepoRef_base: Schema.Class<RepoRef, Schema.Struct<{
773
775
  *
774
776
  * @public
775
777
  */
776
- declare class RepoRef extends RepoRef_base {
778
+ export declare class RepoRef extends RepoRef_base {
777
779
  /**
778
780
  * Parse `"owner/repo"`, synchronously.
779
781
  *
@@ -826,7 +828,7 @@ declare const Repo_base: Context.ServiceClass<Repo, "@effected/github/Repo", Rep
826
828
  *
827
829
  * @public
828
830
  */
829
- declare class Repo extends Repo_base {
831
+ export declare class Repo extends Repo_base {
830
832
  /** The repository, as a value you already have. */
831
833
  static readonly layer: (ref: RepoRef) => Layer.Layer<Repo>;
832
834
  /** The repository, from an `"owner/repo"` slug. */
@@ -872,7 +874,7 @@ declare const StorageRecordInput_base: Schema.Class<StorageRecordInput, Schema.S
872
874
  *
873
875
  * @public
874
876
  */
875
- declare class StorageRecordInput extends StorageRecordInput_base {}
877
+ export declare class StorageRecordInput extends StorageRecordInput_base {}
876
878
  /**
877
879
  * Organization-level artifact metadata.
878
880
  *
@@ -895,7 +897,7 @@ declare const ArtifactMetadata_base: Context.ServiceClass<ArtifactMetadata, "@ef
895
897
  *
896
898
  * @public
897
899
  */
898
- declare class ArtifactMetadata extends ArtifactMetadata_base {
900
+ export declare class ArtifactMetadata extends ArtifactMetadata_base {
899
901
  static readonly layer: Layer.Layer<ArtifactMetadata, never, GitHubClient>;
900
902
  /** An in-memory double; unstubbed members die naming themselves. */
901
903
  static readonly makeTest: (overrides?: Partial<ArtifactMetadataShape>) => ArtifactMetadataShape;
@@ -915,7 +917,7 @@ declare const AttestationRecord_base: Schema.Class<AttestationRecord, Schema.Str
915
917
  *
916
918
  * @public
917
919
  */
918
- declare class AttestationRecord extends AttestationRecord_base {}
920
+ export declare class AttestationRecord extends AttestationRecord_base {}
919
921
  declare const AttestationListEntry_base: Schema.Class<AttestationListEntry, Schema.Struct<{
920
922
  /** Where the bundle lives. */
921
923
  readonly url: Schema.String;
@@ -927,7 +929,7 @@ declare const AttestationListEntry_base: Schema.Class<AttestationListEntry, Sche
927
929
  *
928
930
  * @public
929
931
  */
930
- declare class AttestationListEntry extends AttestationListEntry_base {}
932
+ export declare class AttestationListEntry extends AttestationListEntry_base {}
931
933
  /**
932
934
  * The attestation REST surface.
933
935
  *
@@ -960,7 +962,7 @@ declare const Attestation_base: Context.ServiceClass<Attestation, "@effected/git
960
962
  *
961
963
  * @public
962
964
  */
963
- declare class Attestation extends Attestation_base {
965
+ export declare class Attestation extends Attestation_base {
964
966
  static readonly layer: Layer.Layer<Attestation, never, GitHubClient>;
965
967
  /** An in-memory double; unstubbed members die naming themselves. */
966
968
  static readonly makeTest: (overrides?: Partial<AttestationShape>) => AttestationShape;
@@ -970,9 +972,9 @@ declare class Attestation extends Attestation_base {
970
972
  //#endregion
971
973
  //#region src/CheckRun.d.ts
972
974
  /** How a check run finished. @public */
973
- declare const CheckConclusion: Schema.Literals<readonly ["success", "failure", "neutral", "cancelled", "timed_out", "action_required", "skipped"]>;
975
+ export declare const CheckConclusion: Schema.Literals<readonly ["success", "failure", "neutral", "cancelled", "timed_out", "action_required", "skipped"]>;
974
976
  /** How serious an annotation is. @public */
975
- declare const AnnotationLevel: Schema.Literals<readonly ["notice", "warning", "failure"]>;
977
+ export declare const AnnotationLevel: Schema.Literals<readonly ["notice", "warning", "failure"]>;
976
978
  declare const Annotation_base: Schema.Class<Annotation, Schema.Struct<{
977
979
  /** Repository-relative path. */
978
980
  readonly path: Schema.String;
@@ -989,7 +991,7 @@ declare const Annotation_base: Schema.Class<Annotation, Schema.Struct<{
989
991
  *
990
992
  * @public
991
993
  */
992
- declare class Annotation extends Annotation_base {}
994
+ export declare class Annotation extends Annotation_base {}
993
995
  declare const CheckRunOutput_base: Schema.Class<CheckRunOutput, Schema.Struct<{
994
996
  readonly title: Schema.String;
995
997
  /** Markdown shown under the title. Capped at 65535 **bytes**. */
@@ -1011,7 +1013,7 @@ declare const CheckRunOutput_base: Schema.Class<CheckRunOutput, Schema.Struct<{
1011
1013
  *
1012
1014
  * @public
1013
1015
  */
1014
- declare class CheckRunOutput extends CheckRunOutput_base {
1016
+ export declare class CheckRunOutput extends CheckRunOutput_base {
1015
1017
  /** GitHub's cap on `summary` and `text`, in UTF-8 bytes. */
1016
1018
  static readonly LIMIT_BYTES = 65535;
1017
1019
  /** GitHub's cap on annotations per request. */
@@ -1040,7 +1042,7 @@ declare const CheckRunRef_base: Schema.Class<CheckRunRef, Schema.Struct<{
1040
1042
  *
1041
1043
  * @public
1042
1044
  */
1043
- declare class CheckRunRef extends CheckRunRef_base {}
1045
+ export declare class CheckRunRef extends CheckRunRef_base {}
1044
1046
  /**
1045
1047
  * Conclude the surrounding {@link CheckRunShape.withCheckRun} explicitly.
1046
1048
  *
@@ -1119,7 +1121,7 @@ declare const CheckRun_base: Context.ServiceClass<CheckRun, "@effected/github/Ch
1119
1121
  *
1120
1122
  * @public
1121
1123
  */
1122
- declare class CheckRun extends CheckRun_base {
1124
+ export declare class CheckRun extends CheckRun_base {
1123
1125
  static readonly layer: Layer.Layer<CheckRun, never, GitHubClient>;
1124
1126
  /** An in-memory double; unstubbed members die naming themselves. */
1125
1127
  static readonly makeTest: (overrides?: Partial<CheckRunShape>) => CheckRunShape;
@@ -1194,7 +1196,7 @@ declare const CodeScanning_base: Context.ServiceClass<CodeScanning, "@effected/g
1194
1196
  *
1195
1197
  * @public
1196
1198
  */
1197
- declare class CodeScanning extends CodeScanning_base {
1199
+ export declare class CodeScanning extends CodeScanning_base {
1198
1200
  /**
1199
1201
  * @remarks
1200
1202
  * The callback is written `(client) => make(client)` rather than passed as
@@ -1256,7 +1258,7 @@ declare const DeploymentEnvironment_base: Context.ServiceClass<DeploymentEnviron
1256
1258
  *
1257
1259
  * @public
1258
1260
  */
1259
- declare class DeploymentEnvironment extends DeploymentEnvironment_base {
1261
+ export declare class DeploymentEnvironment extends DeploymentEnvironment_base {
1260
1262
  /**
1261
1263
  * @remarks
1262
1264
  * `(client) => make(client)` rather than `make`: a static initializer runs
@@ -1353,7 +1355,7 @@ declare const GitBranch_base: Context.ServiceClass<GitBranch, "@effected/github/
1353
1355
  *
1354
1356
  * @public
1355
1357
  */
1356
- declare class GitBranch extends GitBranch_base {
1358
+ export declare class GitBranch extends GitBranch_base {
1357
1359
  /**
1358
1360
  * @remarks
1359
1361
  * The callback is written `(client) => make(client)` rather than passed as
@@ -1376,7 +1378,7 @@ declare class GitBranch extends GitBranch_base {
1376
1378
  *
1377
1379
  * @public
1378
1380
  */
1379
- declare const FileMode: Schema.Literals<readonly ["100644", "100755", "120000"]>;
1381
+ export declare const FileMode: Schema.Literals<readonly ["100644", "100755", "120000"]>;
1380
1382
  declare const FileContent_base: Schema.Class<FileContent, Schema.TaggedStruct<"FileContent", {
1381
1383
  /** Repository-relative path. */
1382
1384
  readonly path: Schema.NonEmptyString;
@@ -1390,7 +1392,7 @@ declare const FileContent_base: Schema.Class<FileContent, Schema.TaggedStruct<"F
1390
1392
  *
1391
1393
  * @public
1392
1394
  */
1393
- declare class FileContent extends FileContent_base {}
1395
+ export declare class FileContent extends FileContent_base {}
1394
1396
  declare const FileDeletion_base: Schema.Class<FileDeletion, Schema.TaggedStruct<"FileDeletion", {
1395
1397
  /** Repository-relative path. */
1396
1398
  readonly path: Schema.NonEmptyString;
@@ -1400,15 +1402,15 @@ declare const FileDeletion_base: Schema.Class<FileDeletion, Schema.TaggedStruct<
1400
1402
  *
1401
1403
  * @public
1402
1404
  */
1403
- declare class FileDeletion extends FileDeletion_base {}
1405
+ export declare class FileDeletion extends FileDeletion_base {}
1404
1406
  /**
1405
1407
  * One change in a commit.
1406
1408
  *
1407
1409
  * @public
1408
1410
  */
1409
- declare const FileChange: Schema.Union<readonly [typeof FileContent, typeof FileDeletion]>;
1411
+ export declare const FileChange: Schema.Union<readonly [typeof FileContent, typeof FileDeletion]>;
1410
1412
  /** One change in a commit. @public */
1411
- type FileChange = FileContent | FileDeletion;
1413
+ export type FileChange = FileContent | FileDeletion;
1412
1414
  declare const CommitRef_base: Schema.Class<CommitRef, Schema.Struct<{
1413
1415
  /** The commit's own sha. */
1414
1416
  readonly sha: Schema.String;
@@ -1428,7 +1430,7 @@ declare const CommitRef_base: Schema.Class<CommitRef, Schema.Struct<{
1428
1430
  *
1429
1431
  * @public
1430
1432
  */
1431
- declare class CommitRef extends CommitRef_base {}
1433
+ export declare class CommitRef extends CommitRef_base {}
1432
1434
  /**
1433
1435
  * Commits and trees in GitHub's Git Database API.
1434
1436
  *
@@ -1482,7 +1484,7 @@ declare const GitCommit_base: Context.ServiceClass<GitCommit, "@effected/github/
1482
1484
  *
1483
1485
  * @public
1484
1486
  */
1485
- declare class GitCommit extends GitCommit_base {
1487
+ export declare class GitCommit extends GitCommit_base {
1486
1488
  static readonly layer: Layer.Layer<GitCommit, never, GitHubClient>;
1487
1489
  /** An in-memory double; unstubbed members die naming themselves. */
1488
1490
  static readonly makeTest: (overrides?: Partial<GitCommitShape>) => GitCommitShape;
@@ -1510,7 +1512,7 @@ declare const GitHubAppError_base: Schema.Class<GitHubAppError, Schema.TaggedStr
1510
1512
  *
1511
1513
  * @public
1512
1514
  */
1513
- declare class GitHubAppError extends GitHubAppError_base {
1515
+ export declare class GitHubAppError extends GitHubAppError_base {
1514
1516
  get message(): string;
1515
1517
  /** @internal */
1516
1518
  static of(kind: GitHubAppError["kind"], reason: string, cause?: unknown): GitHubAppError;
@@ -1588,7 +1590,7 @@ declare const InstallationToken_base: Schema.Class<InstallationToken, Schema.Str
1588
1590
  *
1589
1591
  * @public
1590
1592
  */
1591
- declare class InstallationToken extends InstallationToken_base {
1593
+ export declare class InstallationToken extends InstallationToken_base {
1592
1594
  /**
1593
1595
  * Whether this token is spent, `skew` before its stated expiry.
1594
1596
  *
@@ -1618,7 +1620,7 @@ declare const BotIdentity_base: Schema.Class<BotIdentity, Schema.Struct<{
1618
1620
  *
1619
1621
  * @public
1620
1622
  */
1621
- declare class BotIdentity extends BotIdentity_base {
1623
+ export declare class BotIdentity extends BotIdentity_base {
1622
1624
  /** The identity for an app, given whatever of its identity is known. */
1623
1625
  static forApp(source: {
1624
1626
  readonly appSlug: string;
@@ -1654,7 +1656,7 @@ declare const AppIdentity_base: Schema.Class<AppIdentity, Schema.Struct<{
1654
1656
  *
1655
1657
  * @public
1656
1658
  */
1657
- declare class AppIdentity extends AppIdentity_base {
1659
+ export declare class AppIdentity extends AppIdentity_base {
1658
1660
  /** The committer identity for this app. */
1659
1661
  botIdentity(): BotIdentity;
1660
1662
  }
@@ -1669,7 +1671,7 @@ declare const Installation_base: Schema.Class<Installation, Schema.Struct<{
1669
1671
  *
1670
1672
  * @public
1671
1673
  */
1672
- declare class Installation extends Installation_base {}
1674
+ export declare class Installation extends Installation_base {}
1673
1675
  /**
1674
1676
  * Transport settings for the app's own API calls.
1675
1677
  *
@@ -1709,7 +1711,7 @@ declare const GitHubApp_base: Context.ServiceClass<GitHubApp, "@effected/github/
1709
1711
  *
1710
1712
  * @public
1711
1713
  */
1712
- declare class GitHubApp extends GitHubApp_base {
1714
+ export declare class GitHubApp extends GitHubApp_base {
1713
1715
  /** The default transport. Bind it once; layers are memoized by reference. */
1714
1716
  static readonly layer: Layer.Layer<GitHubApp>;
1715
1717
  /**
@@ -1824,7 +1826,7 @@ declare const CommitSummary_base: Schema.Class<CommitSummary, Schema.Struct<{
1824
1826
  *
1825
1827
  * @public
1826
1828
  */
1827
- declare class CommitSummary extends CommitSummary_base {
1829
+ export declare class CommitSummary extends CommitSummary_base {
1828
1830
  /** The message's first line. */
1829
1831
  get subject(): string;
1830
1832
  }
@@ -1833,7 +1835,7 @@ declare class CommitSummary extends CommitSummary_base {
1833
1835
  *
1834
1836
  * @public
1835
1837
  */
1836
- declare const FileStatus: Schema.Literals<readonly ["added", "removed", "modified", "renamed", "copied", "changed", "unchanged"]>;
1838
+ export declare const FileStatus: Schema.Literals<readonly ["added", "removed", "modified", "renamed", "copied", "changed", "unchanged"]>;
1837
1839
  declare const CommitFile_base: Schema.Class<CommitFile, Schema.Struct<{
1838
1840
  /** Repository-relative path, after any rename. */
1839
1841
  readonly path: Schema.String;
@@ -1851,7 +1853,7 @@ declare const CommitFile_base: Schema.Class<CommitFile, Schema.Struct<{
1851
1853
  *
1852
1854
  * @public
1853
1855
  */
1854
- declare class CommitFile extends CommitFile_base {}
1856
+ export declare class CommitFile extends CommitFile_base {}
1855
1857
  declare const CommitComparison_base: Schema.Class<CommitComparison, Schema.Struct<{
1856
1858
  /** How head relates to base. */
1857
1859
  readonly status: Schema.Literals<readonly ["diverged", "ahead", "behind", "identical"]>;
@@ -1869,7 +1871,7 @@ declare const CommitComparison_base: Schema.Class<CommitComparison, Schema.Struc
1869
1871
  *
1870
1872
  * @public
1871
1873
  */
1872
- declare class CommitComparison extends CommitComparison_base {}
1874
+ export declare class CommitComparison extends CommitComparison_base {}
1873
1875
  /**
1874
1876
  * Reading commits.
1875
1877
  *
@@ -1905,7 +1907,7 @@ declare const GitHubCommit_base: Context.ServiceClass<GitHubCommit, "@effected/g
1905
1907
  *
1906
1908
  * @public
1907
1909
  */
1908
- declare class GitHubCommit extends GitHubCommit_base {
1910
+ export declare class GitHubCommit extends GitHubCommit_base {
1909
1911
  static readonly layer: Layer.Layer<GitHubCommit, never, GitHubClient>;
1910
1912
  /** An in-memory double; unstubbed members die naming themselves. */
1911
1913
  static readonly makeTest: (overrides?: Partial<GitHubCommitShape>) => GitHubCommitShape;
@@ -1938,7 +1940,7 @@ declare const GitHubContent_base: Context.ServiceClass<GitHubContent, "@effected
1938
1940
  *
1939
1941
  * @public
1940
1942
  */
1941
- declare class GitHubContent extends GitHubContent_base {
1943
+ export declare class GitHubContent extends GitHubContent_base {
1942
1944
  static readonly layer: Layer.Layer<GitHubContent, never, GitHubClient>;
1943
1945
  /** An in-memory double; unstubbed members die naming themselves. */
1944
1946
  static readonly makeTest: (overrides?: Partial<GitHubContentShape>) => GitHubContentShape;
@@ -1965,7 +1967,7 @@ declare const CommentMarker_base: Schema.Class<CommentMarker, Schema.Struct<{
1965
1967
  *
1966
1968
  * @public
1967
1969
  */
1968
- declare class CommentMarker extends CommentMarker_base {
1970
+ export declare class CommentMarker extends CommentMarker_base {
1969
1971
  /** The HTML comment appended to a body so the comment can be found again. */
1970
1972
  get html(): string;
1971
1973
  /** Does this body carry the marker? */
@@ -1981,7 +1983,7 @@ declare const CommentRecord_base: Schema.Class<CommentRecord, Schema.Struct<{
1981
1983
  *
1982
1984
  * @public
1983
1985
  */
1984
- declare class CommentRecord extends CommentRecord_base {}
1986
+ export declare class CommentRecord extends CommentRecord_base {}
1985
1987
  /**
1986
1988
  * Sticky comments on a pull request or issue.
1987
1989
  *
@@ -2017,7 +2019,7 @@ declare const PullRequestComment_base: Context.ServiceClass<PullRequestComment,
2017
2019
  *
2018
2020
  * @public
2019
2021
  */
2020
- declare class PullRequestComment extends PullRequestComment_base {
2022
+ export declare class PullRequestComment extends PullRequestComment_base {
2021
2023
  static readonly layer: Layer.Layer<PullRequestComment, never, GitHubClient>;
2022
2024
  /** An in-memory double; unstubbed members die naming themselves. */
2023
2025
  static readonly makeTest: (overrides?: Partial<PullRequestCommentShape>) => PullRequestCommentShape;
@@ -2041,7 +2043,7 @@ declare const IssueInfo_base: Schema.Class<IssueInfo, Schema.Struct<{
2041
2043
  *
2042
2044
  * @public
2043
2045
  */
2044
- declare class IssueInfo extends IssueInfo_base {}
2046
+ export declare class IssueInfo extends IssueInfo_base {}
2045
2047
  declare const LinkedIssue_base: Schema.Class<LinkedIssue, Schema.Struct<{
2046
2048
  readonly number: Schema.Int;
2047
2049
  readonly title: Schema.String;
@@ -2065,7 +2067,7 @@ declare const LinkedIssue_base: Schema.Class<LinkedIssue, Schema.Struct<{
2065
2067
  *
2066
2068
  * @public
2067
2069
  */
2068
- declare class LinkedIssue extends LinkedIssue_base {}
2070
+ export declare class LinkedIssue extends LinkedIssue_base {}
2069
2071
  declare const CommentOnceResult_base: Schema.Class<CommentOnceResult, Schema.Struct<{
2070
2072
  /** Did this call post the comment (`true`), or find it already there (`false`)? */
2071
2073
  readonly wrote: Schema.Boolean;
@@ -2082,7 +2084,7 @@ declare const CommentOnceResult_base: Schema.Class<CommentOnceResult, Schema.Str
2082
2084
  *
2083
2085
  * @public
2084
2086
  */
2085
- declare class CommentOnceResult extends CommentOnceResult_base {}
2087
+ export declare class CommentOnceResult extends CommentOnceResult_base {}
2086
2088
  /**
2087
2089
  * Issues.
2088
2090
  *
@@ -2150,7 +2152,7 @@ declare const GitHubIssue_base: Context.ServiceClass<GitHubIssue, "@effected/git
2150
2152
  *
2151
2153
  * @public
2152
2154
  */
2153
- declare class GitHubIssue extends GitHubIssue_base {
2155
+ export declare class GitHubIssue extends GitHubIssue_base {
2154
2156
  static readonly layer: Layer.Layer<GitHubIssue, never, GitHubClient>;
2155
2157
  /** An in-memory double; unstubbed members die naming themselves. */
2156
2158
  static readonly makeTest: (overrides?: Partial<GitHubIssueShape>) => GitHubIssueShape;
@@ -2176,7 +2178,7 @@ declare const ReleaseInfo_base: Schema.Class<ReleaseInfo, Schema.Struct<{
2176
2178
  *
2177
2179
  * @public
2178
2180
  */
2179
- declare class ReleaseInfo extends ReleaseInfo_base {}
2181
+ export declare class ReleaseInfo extends ReleaseInfo_base {}
2180
2182
  declare const ReleaseAsset_base: Schema.Class<ReleaseAsset, Schema.Struct<{
2181
2183
  readonly id: Schema.Int;
2182
2184
  readonly name: Schema.String;
@@ -2190,7 +2192,7 @@ declare const ReleaseAsset_base: Schema.Class<ReleaseAsset, Schema.Struct<{
2190
2192
  *
2191
2193
  * @public
2192
2194
  */
2193
- declare class ReleaseAsset extends ReleaseAsset_base {}
2195
+ export declare class ReleaseAsset extends ReleaseAsset_base {}
2194
2196
  /**
2195
2197
  * Releases and their assets.
2196
2198
  *
@@ -2249,7 +2251,7 @@ declare const GitHubRelease_base: Context.ServiceClass<GitHubRelease, "@effected
2249
2251
  *
2250
2252
  * @public
2251
2253
  */
2252
- declare class GitHubRelease extends GitHubRelease_base {
2254
+ export declare class GitHubRelease extends GitHubRelease_base {
2253
2255
  static readonly layer: Layer.Layer<GitHubRelease, never, GitHubClient>;
2254
2256
  /** An in-memory double; unstubbed members die naming themselves. */
2255
2257
  static readonly makeTest: (overrides?: Partial<GitHubReleaseShape>) => GitHubReleaseShape;
@@ -2277,6 +2279,59 @@ type RepositorySettings = Data<"GET /repos/{owner}/{repo}">;
2277
2279
  * @public
2278
2280
  */
2279
2281
  type RepositoryPatch = Omit<Params<"PATCH /repos/{owner}/{repo}">, "owner" | "repo">;
2282
+ /**
2283
+ * A {@link RepositoryPatch} under construction, where an absent field may be
2284
+ * spelled as an explicit `undefined`.
2285
+ *
2286
+ * @remarks
2287
+ * The shape you actually have when you are applying only what a user
2288
+ * configured. Octokit's generated params spell an optional field as
2289
+ * `has_issues?: boolean`, **not** `has_issues?: boolean | undefined`, so under
2290
+ * `exactOptionalPropertyTypes` — on in this repo and in the silk tsconfig base
2291
+ * — a `Partial<T>` built from your own settings schema does not assign to
2292
+ * `RepositoryPatch` at all. This type does, and {@link repositoryPatch} turns
2293
+ * it into one.
2294
+ *
2295
+ * @public
2296
+ */
2297
+ type RepositoryPatchDraft = { readonly [K in keyof RepositoryPatch]?: RepositoryPatch[K] | undefined; };
2298
+ /**
2299
+ * A {@link RepositoryPatch} from a draft, dropping every explicitly-`undefined`
2300
+ * field.
2301
+ *
2302
+ * @remarks
2303
+ * The supported spelling for "apply only what was configured" — the natural
2304
+ * shape for a sync action, and the one the checker cannot follow on its own.
2305
+ * Without it a consumer under the recommended tsconfig is quietly pushed toward
2306
+ * `as`, which is a real cost in a package whose stated design property is that
2307
+ * the route is the key and there are no casts.
2308
+ *
2309
+ * Dropping the key rather than sending `undefined` is what the wire needs:
2310
+ * `PATCH` treats an absent field as "leave it alone", while an explicit `null`
2311
+ * or `undefined` is a value.
2312
+ *
2313
+ * A key-by-key loop still defeats TypeScript's correlation between two indexed
2314
+ * accesses (`draft[key] = source[key]` over a union `key`), which no helper can
2315
+ * fix — build the draft as a literal where you can.
2316
+ *
2317
+ * @example
2318
+ * ```ts
2319
+ * import { repositoryPatch } from "@effected/github";
2320
+ *
2321
+ * // `config.has_issues` is `boolean | undefined`; absent fields drop out.
2322
+ * const patch = repositoryPatch({
2323
+ * has_issues: config.has_issues,
2324
+ * has_wiki: config.has_wiki,
2325
+ * description: config.description,
2326
+ * });
2327
+ * ```
2328
+ *
2329
+ * @param draft - The fields to apply, any of which may be `undefined`.
2330
+ * @returns A patch carrying only the fields that were actually set.
2331
+ *
2332
+ * @public
2333
+ */
2334
+ export declare const repositoryPatch: (draft: RepositoryPatchDraft) => RepositoryPatch;
2280
2335
  /**
2281
2336
  * Whether an account is a user or an organization.
2282
2337
  *
@@ -2292,7 +2347,7 @@ type OwnerType = "User" | "Organization";
2292
2347
  *
2293
2348
  * @public
2294
2349
  */
2295
- declare const SECURITY_ANALYSIS_STATUS_FIELDS: ReadonlySet<string>;
2350
+ export declare const SECURITY_ANALYSIS_STATUS_FIELDS: ReadonlySet<string>;
2296
2351
  /**
2297
2352
  * Settings reachable **only** through the GraphQL `updateRepository` mutation,
2298
2353
  * mapped from snake_case keys to camelCase GraphQL input fields.
@@ -2311,7 +2366,7 @@ declare const SECURITY_ANALYSIS_STATUS_FIELDS: ReadonlySet<string>;
2311
2366
  *
2312
2367
  * @public
2313
2368
  */
2314
- declare const GRAPHQL_ONLY_SETTINGS: Readonly<Record<string, string>>;
2369
+ export declare const GRAPHQL_ONLY_SETTINGS: Readonly<Record<string, string>>;
2315
2370
  /**
2316
2371
  * Translate a user-facing `security_and_analysis` block into the shape
2317
2372
  * `PATCH /repos/{owner}/{repo}` expects.
@@ -2334,7 +2389,7 @@ declare const GRAPHQL_ONLY_SETTINGS: Readonly<Record<string, string>>;
2334
2389
  *
2335
2390
  * @public
2336
2391
  */
2337
- declare const transformSecurityAndAnalysis: (value: unknown) => Record<string, unknown> | undefined;
2392
+ export declare const transformSecurityAndAnalysis: (value: unknown) => Record<string, unknown> | undefined;
2338
2393
  /**
2339
2394
  * What {@link GitHubRepositoryShape.applySettings} actually sent.
2340
2395
  *
@@ -2426,7 +2481,7 @@ declare const GitHubRepository_base: Context.ServiceClass<GitHubRepository, "@ef
2426
2481
  *
2427
2482
  * @public
2428
2483
  */
2429
- declare class GitHubRepository extends GitHubRepository_base {
2484
+ export declare class GitHubRepository extends GitHubRepository_base {
2430
2485
  static readonly layer: Layer.Layer<GitHubRepository, never, GitHubClient>;
2431
2486
  /** An in-memory double; unstubbed members die naming themselves. */
2432
2487
  static readonly makeTest: (overrides?: Partial<GitHubRepositoryShape>) => GitHubRepositoryShape;
@@ -2446,7 +2501,7 @@ declare const TagRef_base: Schema.Class<TagRef, Schema.Struct<{
2446
2501
  *
2447
2502
  * @public
2448
2503
  */
2449
- declare class TagRef extends TagRef_base {}
2504
+ export declare class TagRef extends TagRef_base {}
2450
2505
  declare const SemverTag_base: Schema.Class<SemverTag, Schema.Struct<{
2451
2506
  /** The tag name as GitHub has it. */
2452
2507
  readonly tag: Schema.NonEmptyString;
@@ -2460,7 +2515,7 @@ declare const SemverTag_base: Schema.Class<SemverTag, Schema.Struct<{
2460
2515
  *
2461
2516
  * @public
2462
2517
  */
2463
- declare class SemverTag extends SemverTag_base {}
2518
+ export declare class SemverTag extends SemverTag_base {}
2464
2519
  /**
2465
2520
  * Read a version out of a tag name.
2466
2521
  *
@@ -2474,7 +2529,7 @@ declare class SemverTag extends SemverTag_base {}
2474
2529
  */
2475
2530
  type VersionFromTag = (tag: string) => Option.Option<string>;
2476
2531
  /** The default {@link VersionFromTag}. @public */
2477
- declare const versionFromTag: VersionFromTag;
2532
+ export declare const versionFromTag: VersionFromTag;
2478
2533
  /**
2479
2534
  * How to pick the newest version-shaped tag.
2480
2535
  *
@@ -2542,7 +2597,7 @@ declare const GitTag_base: Context.ServiceClass<GitTag, "@effected/github/GitTag
2542
2597
  *
2543
2598
  * @public
2544
2599
  */
2545
- declare class GitTag extends GitTag_base {
2600
+ export declare class GitTag extends GitTag_base {
2546
2601
  static readonly layer: Layer.Layer<GitTag, never, GitHubClient>;
2547
2602
  /** An in-memory double; unstubbed members die naming themselves. */
2548
2603
  static readonly makeTest: (overrides?: Partial<GitTagShape>) => GitTagShape;
@@ -2552,7 +2607,7 @@ declare class GitTag extends GitTag_base {
2552
2607
  //#endregion
2553
2608
  //#region src/PullRequest.d.ts
2554
2609
  /** How a pull request is merged. @public */
2555
- declare const MergeMethod: Schema.Literals<readonly ["merge", "squash", "rebase"]>;
2610
+ export declare const MergeMethod: Schema.Literals<readonly ["merge", "squash", "rebase"]>;
2556
2611
  declare const PullRequestInfo_base: Schema.Class<PullRequestInfo, Schema.Struct<{
2557
2612
  /** The number in `#123`. */
2558
2613
  readonly number: Schema.Int;
@@ -2601,7 +2656,7 @@ declare const PullRequestInfo_base: Schema.Class<PullRequestInfo, Schema.Struct<
2601
2656
  *
2602
2657
  * @public
2603
2658
  */
2604
- declare class PullRequestInfo extends PullRequestInfo_base {}
2659
+ export declare class PullRequestInfo extends PullRequestInfo_base {}
2605
2660
  /** What {@link PullRequestShape.upsert} did. @public */
2606
2661
  interface UpsertedPullRequest {
2607
2662
  readonly pullRequest: PullRequestInfo;
@@ -2713,7 +2768,7 @@ declare const PullRequest_base: Context.ServiceClass<PullRequest, "@effected/git
2713
2768
  *
2714
2769
  * @public
2715
2770
  */
2716
- declare class PullRequest extends PullRequest_base {
2771
+ export declare class PullRequest extends PullRequest_base {
2717
2772
  static readonly layer: Layer.Layer<PullRequest, never, GitHubClient>;
2718
2773
  /** An in-memory double; unstubbed members die naming themselves. */
2719
2774
  static readonly makeTest: (overrides?: Partial<PullRequestShape>) => PullRequestShape;
@@ -2785,7 +2840,7 @@ declare const RepositorySecret_base: Context.ServiceClass<RepositorySecret, "@ef
2785
2840
  *
2786
2841
  * @public
2787
2842
  */
2788
- declare class RepositorySecret extends RepositorySecret_base {
2843
+ export declare class RepositorySecret extends RepositorySecret_base {
2789
2844
  /**
2790
2845
  * @remarks
2791
2846
  * `(client) => make(client)` rather than `make`: a static initializer runs
@@ -2846,7 +2901,7 @@ declare const RepositorySecurity_base: Context.ServiceClass<RepositorySecurity,
2846
2901
  *
2847
2902
  * @public
2848
2903
  */
2849
- declare class RepositorySecurity extends RepositorySecurity_base {
2904
+ export declare class RepositorySecurity extends RepositorySecurity_base {
2850
2905
  /**
2851
2906
  * @remarks
2852
2907
  * `(client) => make(client)` rather than `make`: a static initializer runs
@@ -2934,7 +2989,7 @@ declare const RepositoryVariable_base: Context.ServiceClass<RepositoryVariable,
2934
2989
  *
2935
2990
  * @public
2936
2991
  */
2937
- declare class RepositoryVariable extends RepositoryVariable_base {
2992
+ export declare class RepositoryVariable extends RepositoryVariable_base {
2938
2993
  /**
2939
2994
  * @remarks
2940
2995
  * `(client) => make(client)` rather than `make`: a static initializer runs
@@ -3036,7 +3091,7 @@ declare const Ruleset_base: Context.ServiceClass<Ruleset, "@effected/github/Rule
3036
3091
  *
3037
3092
  * @public
3038
3093
  */
3039
- declare class Ruleset extends Ruleset_base {
3094
+ export declare class Ruleset extends Ruleset_base {
3040
3095
  /**
3041
3096
  * @remarks
3042
3097
  * `(client) => make(client)` rather than `make`: a static initializer runs
@@ -3056,9 +3111,9 @@ declare class Ruleset extends Ruleset_base {
3056
3111
  *
3057
3112
  * @public
3058
3113
  */
3059
- declare const PermissionLevel: Schema.Literals<readonly ["read", "write", "admin"]>;
3114
+ export declare const PermissionLevel: Schema.Literals<readonly ["read", "write", "admin"]>;
3060
3115
  /** How much access a permission grants. @public */
3061
- type PermissionLevel = (typeof PermissionLevel.literals)[number];
3116
+ export type PermissionLevel = (typeof PermissionLevel.literals)[number];
3062
3117
  declare const PermissionGap_base: Schema.Class<PermissionGap, Schema.Struct<{
3063
3118
  /** The permission's name, e.g. `"contents"`. */
3064
3119
  readonly permission: Schema.String;
@@ -3072,7 +3127,7 @@ declare const PermissionGap_base: Schema.Class<PermissionGap, Schema.Struct<{
3072
3127
  *
3073
3128
  * @public
3074
3129
  */
3075
- declare class PermissionGap extends PermissionGap_base {}
3130
+ export declare class PermissionGap extends PermissionGap_base {}
3076
3131
  declare const ExtraPermission_base: Schema.Class<ExtraPermission, Schema.Struct<{
3077
3132
  readonly permission: Schema.String;
3078
3133
  readonly granted: Schema.Literals<readonly ["read", "write", "admin"]>;
@@ -3084,7 +3139,7 @@ declare const ExtraPermission_base: Schema.Class<ExtraPermission, Schema.Struct<
3084
3139
  *
3085
3140
  * @public
3086
3141
  */
3087
- declare class ExtraPermission extends ExtraPermission_base {}
3142
+ export declare class ExtraPermission extends ExtraPermission_base {}
3088
3143
  declare const PermissionResult_base: Schema.Class<PermissionResult, Schema.Struct<{
3089
3144
  /** Permissions that are missing or too weak. */
3090
3145
  readonly missing: Schema.$Array<typeof PermissionGap>;
@@ -3096,7 +3151,7 @@ declare const PermissionResult_base: Schema.Class<PermissionResult, Schema.Struc
3096
3151
  *
3097
3152
  * @public
3098
3153
  */
3099
- declare class PermissionResult extends PermissionResult_base {
3154
+ export declare class PermissionResult extends PermissionResult_base {
3100
3155
  /** Nothing missing. */
3101
3156
  get satisfied(): boolean;
3102
3157
  /** Nothing missing and nothing spare. */
@@ -3113,7 +3168,7 @@ declare const TokenPermissionError_base: Schema.Class<TokenPermissionError, Sche
3113
3168
  *
3114
3169
  * @public
3115
3170
  */
3116
- declare class TokenPermissionError extends TokenPermissionError_base {
3171
+ export declare class TokenPermissionError extends TokenPermissionError_base {
3117
3172
  get message(): string;
3118
3173
  }
3119
3174
  declare const TokenPermissions_base: Schema.Class<TokenPermissions, Schema.Struct<{
@@ -3151,7 +3206,7 @@ declare const TokenPermissions_base: Schema.Class<TokenPermissions, Schema.Struc
3151
3206
  *
3152
3207
  * @public
3153
3208
  */
3154
- declare class TokenPermissions extends TokenPermissions_base {
3209
+ export declare class TokenPermissions extends TokenPermissions_base {
3155
3210
  /**
3156
3211
  * Read GitHub's permission map, ignoring anything unrecognized.
3157
3212
  *
@@ -3189,7 +3244,7 @@ declare const WorkflowRunStatus_base: Schema.Class<WorkflowRunStatus, Schema.Str
3189
3244
  *
3190
3245
  * @public
3191
3246
  */
3192
- declare class WorkflowRunStatus extends WorkflowRunStatus_base {
3247
+ export declare class WorkflowRunStatus extends WorkflowRunStatus_base {
3193
3248
  /** Has the run finished, whatever the outcome? */
3194
3249
  get isDone(): boolean;
3195
3250
  }
@@ -3271,7 +3326,7 @@ declare const WorkflowDispatch_base: Context.ServiceClass<WorkflowDispatch, "@ef
3271
3326
  *
3272
3327
  * @public
3273
3328
  */
3274
- declare class WorkflowDispatch extends WorkflowDispatch_base {
3329
+ export declare class WorkflowDispatch extends WorkflowDispatch_base {
3275
3330
  static readonly layer: Layer.Layer<WorkflowDispatch, never, GitHubClient>;
3276
3331
  /** An in-memory double; unstubbed members die naming themselves. */
3277
3332
  static readonly makeTest: (overrides?: Partial<WorkflowDispatchShape>) => WorkflowDispatchShape;
@@ -3279,5 +3334,5 @@ declare class WorkflowDispatch extends WorkflowDispatch_base {
3279
3334
  static readonly layerTest: (overrides?: Partial<WorkflowDispatchShape>) => Layer.Layer<WorkflowDispatch>;
3280
3335
  }
3281
3336
  //#endregion
3282
- export { Annotation, AnnotationLevel, type AppCredentials, AppIdentity, type AppliedSettings, ArtifactMetadata, type ArtifactMetadataShape, Attestation, AttestationListEntry, AttestationRecord, type AttestationShape, type BareLineReference, BotIdentity, type BranchOutcome, CLOSING_KEYWORDS, CheckConclusion, CheckRun, CheckRunOutput, CheckRunRef, type CheckRunShape, type ClosingKeyword, CodeScanning, type CodeScanningSetup, type CodeScanningShape, CommentMarker, CommentOnceResult, CommentRecord, CommitComparison, CommitFile, CommitRef, CommitSummary, type ConcludeCheckRun, DeploymentEnvironment, type DeploymentEnvironmentInfo, type DeploymentEnvironmentShape, ExtraPermission, FileChange, FileContent, FileDeletion, FileMode, FileStatus, GRAPHQL_ONLY_SETTINGS, GitBranch, type GitBranchShape, GitCommit, type GitCommitShape, GitHubApp, GitHubAppError, type GitHubAppOptions, type GitHubAppShape, GitHubClient, type GitHubClientOptions, type GitHubClientShape, GitHubCommit, type GitHubCommitShape, GitHubContent, type GitHubContentShape, GitHubError, GitHubErrorKind, type GitHubFixtures, GitHubGraphQLError, GitHubIssue, type GitHubIssueShape, GitHubRelease, type GitHubReleaseShape, GitHubRepository, type GitHubRepositoryShape, GitTag, type GitTagShape, GraphQLDocument, GraphQLErrorEntry, Installation, InstallationToken, InvalidRepoRefError, IssueInfo, type IssueReference, type LatestSemverOptions, LinkedIssue, MergeMethod, type OwnerType, PageOptions, PermissionGap, PermissionLevel, PermissionResult, type PollOptions, PullRequest, PullRequestComment, type PullRequestCommentShape, PullRequestInfo, type PullRequestShape, RateLimitSnapshot, type RecordedCall, ReleaseAsset, ReleaseInfo, Repo, RepoRef, type RepositoryPatch, RepositorySecret, type RepositorySecretShape, RepositorySecurity, type RepositorySecurityShape, type RepositorySettings, RepositoryVariable, type RepositoryVariableShape, type Data as RestData, type RequestExtras as RestExtras, type Item as RestItem, type PaginatingRoute as RestPaginatingRoute, type Params as RestParams, type Response as RestResponse, type Route as RestRoute, RetryPolicy, type RetryableFailure, Ruleset, type RulesetInfo, type RulesetPayload, type RulesetShape, SECURITY_ANALYSIS_STATUS_FIELDS, type SecretInfo, type SecretScope, SemverTag, StorageRecordInput, TagRef, TokenPermissionError, TokenPermissions, type TokenRequest, type UpsertedPullRequest, type VariableInfo, type VersionFromTag, WorkflowDispatch, type WorkflowDispatchShape, type WorkflowInfo, WorkflowRunStatus, harvestIssueReferences, parseBareLineReference, transformSecurityAndAnalysis, versionFromTag };
3337
+ export { type AppCredentials, type AppliedSettings, type ArtifactMetadataShape, type AttestationShape, type BareLineReference, type BranchOutcome, CLOSING_KEYWORDS, type CheckRunShape, type ClosingKeyword, type CodeScanningSetup, type CodeScanningShape, type ConcludeCheckRun, type DeploymentEnvironmentInfo, type DeploymentEnvironmentShape, type GitBranchShape, type GitCommitShape, type GitHubAppOptions, type GitHubAppShape, type GitHubClientOptions, type GitHubClientShape, type GitHubCommitShape, type GitHubContentShape, type GitHubFixtures, type GitHubIssueShape, type GitHubReleaseShape, type GitHubRepositoryShape, type GitTagShape, type IssueReference, type LatestSemverOptions, type OwnerType, type PollOptions, type PullRequestCommentShape, type PullRequestShape, type RecordedCall, type RepositoryPatch, type RepositoryPatchDraft, type RepositorySecretShape, type RepositorySecurityShape, type RepositorySettings, type RepositoryVariableShape, type Data as RestData, type RequestExtras as RestExtras, type Item as RestItem, type PaginatingRoute as RestPaginatingRoute, type Params as RestParams, type Response as RestResponse, type Route as RestRoute, type RetryableFailure, type RulesetInfo, type RulesetPayload, type RulesetShape, type SecretInfo, type SecretScope, type TokenRequest, type UpsertedPullRequest, type VariableInfo, type VersionFromTag, type WorkflowDispatchShape, type WorkflowInfo, harvestIssueReferences, parseBareLineReference };
3283
3338
  //# sourceMappingURL=index.d.ts.map
package/index.js CHANGED
@@ -16,7 +16,7 @@ import { GitHubContent } from "./GitHubContent.js";
16
16
  import { CommentMarker, CommentRecord, PullRequestComment } from "./PullRequestComment.js";
17
17
  import { CommentOnceResult, GitHubIssue, IssueInfo, LinkedIssue } from "./GitHubIssue.js";
18
18
  import { GitHubRelease, ReleaseAsset, ReleaseInfo } from "./GitHubRelease.js";
19
- import { GRAPHQL_ONLY_SETTINGS, GitHubRepository, SECURITY_ANALYSIS_STATUS_FIELDS, transformSecurityAndAnalysis } from "./GitHubRepository.js";
19
+ import { GRAPHQL_ONLY_SETTINGS, GitHubRepository, SECURITY_ANALYSIS_STATUS_FIELDS, repositoryPatch, transformSecurityAndAnalysis } from "./GitHubRepository.js";
20
20
  import { GitTag, SemverTag, TagRef, versionFromTag } from "./GitTag.js";
21
21
  import { PageOptions } from "./Rest.js";
22
22
  import { MergeMethod, PullRequest, PullRequestInfo } from "./PullRequest.js";
@@ -28,4 +28,4 @@ import { ExtraPermission, PermissionGap, PermissionLevel, PermissionResult, Toke
28
28
  import { WorkflowDispatch, WorkflowRunStatus } from "./WorkflowDispatch.js";
29
29
  import { CLOSING_KEYWORDS, harvestIssueReferences, parseBareLineReference } from "@effected/github-references";
30
30
 
31
- export { Annotation, AnnotationLevel, AppIdentity, ArtifactMetadata, Attestation, AttestationListEntry, AttestationRecord, BotIdentity, CLOSING_KEYWORDS, CheckConclusion, CheckRun, CheckRunOutput, CheckRunRef, CodeScanning, CommentMarker, CommentOnceResult, CommentRecord, CommitComparison, CommitFile, CommitRef, CommitSummary, DeploymentEnvironment, ExtraPermission, FileChange, FileContent, FileDeletion, FileMode, FileStatus, GRAPHQL_ONLY_SETTINGS, GitBranch, GitCommit, GitHubApp, GitHubAppError, GitHubClient, GitHubCommit, GitHubContent, GitHubError, GitHubErrorKind, GitHubGraphQLError, GitHubIssue, GitHubRelease, GitHubRepository, GitTag, GraphQLDocument, GraphQLErrorEntry, Installation, InstallationToken, InvalidRepoRefError, IssueInfo, LinkedIssue, MergeMethod, PageOptions, PermissionGap, PermissionLevel, PermissionResult, PullRequest, PullRequestComment, PullRequestInfo, RateLimitSnapshot, ReleaseAsset, ReleaseInfo, Repo, RepoRef, RepositorySecret, RepositorySecurity, RepositoryVariable, RetryPolicy, Ruleset, SECURITY_ANALYSIS_STATUS_FIELDS, SemverTag, StorageRecordInput, TagRef, TokenPermissionError, TokenPermissions, WorkflowDispatch, WorkflowRunStatus, harvestIssueReferences, parseBareLineReference, transformSecurityAndAnalysis, versionFromTag };
31
+ export { Annotation, AnnotationLevel, AppIdentity, ArtifactMetadata, Attestation, AttestationListEntry, AttestationRecord, BotIdentity, CLOSING_KEYWORDS, CheckConclusion, CheckRun, CheckRunOutput, CheckRunRef, CodeScanning, CommentMarker, CommentOnceResult, CommentRecord, CommitComparison, CommitFile, CommitRef, CommitSummary, DeploymentEnvironment, ExtraPermission, FileChange, FileContent, FileDeletion, FileMode, FileStatus, GRAPHQL_ONLY_SETTINGS, GitBranch, GitCommit, GitHubApp, GitHubAppError, GitHubClient, GitHubCommit, GitHubContent, GitHubError, GitHubErrorKind, GitHubGraphQLError, GitHubIssue, GitHubRelease, GitHubRepository, GitTag, GraphQLDocument, GraphQLErrorEntry, Installation, InstallationToken, InvalidRepoRefError, IssueInfo, LinkedIssue, MergeMethod, PageOptions, PermissionGap, PermissionLevel, PermissionResult, PullRequest, PullRequestComment, PullRequestInfo, RateLimitSnapshot, ReleaseAsset, ReleaseInfo, Repo, RepoRef, RepositorySecret, RepositorySecurity, RepositoryVariable, RetryPolicy, Ruleset, SECURITY_ANALYSIS_STATUS_FIELDS, SemverTag, StorageRecordInput, TagRef, TokenPermissionError, TokenPermissions, WorkflowDispatch, WorkflowRunStatus, harvestIssueReferences, parseBareLineReference, repositoryPatch, transformSecurityAndAnalysis, versionFromTag };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effected/github",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "private": false,
5
5
  "description": "Typed GitHub REST and GraphQL services over the octokit core request surface, with app auth and resource helpers.",
6
6
  "keywords": [
@@ -38,8 +38,8 @@
38
38
  "./package.json": "./package.json"
39
39
  },
40
40
  "dependencies": {
41
- "@effected/github-references": "^0.1.0",
42
- "@effected/semver": "^0.5.0",
41
+ "@effected/github-references": "^0.2.0",
42
+ "@effected/semver": "^0.6.0",
43
43
  "@octokit/core": "^7.0.6",
44
44
  "@octokit/plugin-paginate-rest": "^15.0.0",
45
45
  "@octokit/types": "^17.0.0",
@@ -48,7 +48,7 @@
48
48
  "universal-github-app-jwt": "^2.2.2"
49
49
  },
50
50
  "peerDependencies": {
51
- "effect": "4.0.0-rc.109"
51
+ "effect": "4.0.0-rc.112"
52
52
  },
53
53
  "engines": {
54
54
  "node": ">=24.11.0"
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.58.12"
8
+ "packageVersion": "7.59.0"
9
9
  }
10
10
  ]
11
11
  }