declastruct-github 1.1.1 → 1.2.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.
- package/dist/access/daos/DeclaredGithubOrgDao.d.ts +10 -0
- package/dist/access/daos/DeclaredGithubOrgDao.js +44 -0
- package/dist/access/daos/DeclaredGithubOrgDao.js.map +1 -0
- package/dist/access/daos/DeclaredGithubOrgMemberPrivilegesDao.d.ts +10 -0
- package/dist/access/daos/DeclaredGithubOrgMemberPrivilegesDao.js +44 -0
- package/dist/access/daos/DeclaredGithubOrgMemberPrivilegesDao.js.map +1 -0
- package/dist/access/daos/DeclaredGithubOrgSecretDao.d.ts +10 -0
- package/dist/access/daos/DeclaredGithubOrgSecretDao.js +47 -0
- package/dist/access/daos/DeclaredGithubOrgSecretDao.js.map +1 -0
- package/dist/access/daos/DeclaredGithubOrgVariableDao.d.ts +9 -0
- package/dist/access/daos/DeclaredGithubOrgVariableDao.js +46 -0
- package/dist/access/daos/DeclaredGithubOrgVariableDao.js.map +1 -0
- package/dist/contract/sdks/index.d.ts +4 -0
- package/dist/contract/sdks/index.js +10 -1
- package/dist/contract/sdks/index.js.map +1 -1
- package/dist/domain.objects/DeclaredGithubAppPermissions.d.ts +6 -2
- package/dist/domain.objects/DeclaredGithubAppPermissions.js.map +1 -1
- package/dist/domain.objects/DeclaredGithubOrg.d.ts +59 -0
- package/dist/domain.objects/DeclaredGithubOrg.js +15 -0
- package/dist/domain.objects/DeclaredGithubOrg.js.map +1 -0
- package/dist/domain.objects/DeclaredGithubOrgMemberPrivileges.d.ts +85 -0
- package/dist/domain.objects/DeclaredGithubOrgMemberPrivileges.js +13 -0
- package/dist/domain.objects/DeclaredGithubOrgMemberPrivileges.js.map +1 -0
- package/dist/domain.objects/DeclaredGithubOrgSecret.d.ts +63 -0
- package/dist/domain.objects/DeclaredGithubOrgSecret.js +14 -0
- package/dist/domain.objects/DeclaredGithubOrgSecret.js.map +1 -0
- package/dist/domain.objects/DeclaredGithubOrgVariable.d.ts +54 -0
- package/dist/domain.objects/DeclaredGithubOrgVariable.js +13 -0
- package/dist/domain.objects/DeclaredGithubOrgVariable.js.map +1 -0
- package/dist/domain.objects/DeclaredGithubRepo.d.ts +1 -0
- package/dist/domain.objects/DeclaredGithubRepo.js +1 -0
- package/dist/domain.objects/DeclaredGithubRepo.js.map +1 -1
- package/dist/domain.objects/DeclastructGithubProvider.d.ts +8 -0
- package/dist/domain.operations/app/castToDeclaredGithubApp.js +2 -1
- package/dist/domain.operations/app/castToDeclaredGithubApp.js.map +1 -1
- package/dist/domain.operations/org/castToDeclaredGithubOrg.d.ts +12 -0
- package/dist/domain.operations/org/castToDeclaredGithubOrg.js +29 -0
- package/dist/domain.operations/org/castToDeclaredGithubOrg.js.map +1 -0
- package/dist/domain.operations/org/getOneOrg.d.ts +14 -0
- package/dist/domain.operations/org/getOneOrg.js +31 -0
- package/dist/domain.operations/org/getOneOrg.js.map +1 -0
- package/dist/domain.operations/org/setOrg.d.ts +17 -0
- package/dist/domain.operations/org/setOrg.js +50 -0
- package/dist/domain.operations/org/setOrg.js.map +1 -0
- package/dist/domain.operations/orgMemberPrivileges/castToDeclaredGithubOrgMemberPrivileges.d.ts +15 -0
- package/dist/domain.operations/orgMemberPrivileges/castToDeclaredGithubOrgMemberPrivileges.js +47 -0
- package/dist/domain.operations/orgMemberPrivileges/castToDeclaredGithubOrgMemberPrivileges.js.map +1 -0
- package/dist/domain.operations/orgMemberPrivileges/getOneOrgMemberPrivileges.d.ts +14 -0
- package/dist/domain.operations/orgMemberPrivileges/getOneOrgMemberPrivileges.js +36 -0
- package/dist/domain.operations/orgMemberPrivileges/getOneOrgMemberPrivileges.js.map +1 -0
- package/dist/domain.operations/orgMemberPrivileges/setOrgMemberPrivileges.d.ts +16 -0
- package/dist/domain.operations/orgMemberPrivileges/setOrgMemberPrivileges.js +64 -0
- package/dist/domain.operations/orgMemberPrivileges/setOrgMemberPrivileges.js.map +1 -0
- package/dist/domain.operations/orgSecret/castToDeclaredGithubOrgSecret.d.ts +17 -0
- package/dist/domain.operations/orgSecret/castToDeclaredGithubOrgSecret.js +28 -0
- package/dist/domain.operations/orgSecret/castToDeclaredGithubOrgSecret.js.map +1 -0
- package/dist/domain.operations/orgSecret/delOrgSecret.d.ts +11 -0
- package/dist/domain.operations/orgSecret/delOrgSecret.js +27 -0
- package/dist/domain.operations/orgSecret/delOrgSecret.js.map +1 -0
- package/dist/domain.operations/orgSecret/getAllOrgSecrets.d.ts +14 -0
- package/dist/domain.operations/orgSecret/getAllOrgSecrets.js +27 -0
- package/dist/domain.operations/orgSecret/getAllOrgSecrets.js.map +1 -0
- package/dist/domain.operations/orgSecret/getOneOrgSecret.d.ts +15 -0
- package/dist/domain.operations/orgSecret/getOneOrgSecret.js +35 -0
- package/dist/domain.operations/orgSecret/getOneOrgSecret.js.map +1 -0
- package/dist/domain.operations/orgSecret/setOrgSecret.d.ts +17 -0
- package/dist/domain.operations/orgSecret/setOrgSecret.js +123 -0
- package/dist/domain.operations/orgSecret/setOrgSecret.js.map +1 -0
- package/dist/domain.operations/orgVariable/castToDeclaredGithubOrgVariable.d.ts +16 -0
- package/dist/domain.operations/orgVariable/castToDeclaredGithubOrgVariable.js +26 -0
- package/dist/domain.operations/orgVariable/castToDeclaredGithubOrgVariable.js.map +1 -0
- package/dist/domain.operations/orgVariable/delOrgVariable.d.ts +11 -0
- package/dist/domain.operations/orgVariable/delOrgVariable.js +27 -0
- package/dist/domain.operations/orgVariable/delOrgVariable.js.map +1 -0
- package/dist/domain.operations/orgVariable/getAllOrgVariables.d.ts +13 -0
- package/dist/domain.operations/orgVariable/getAllOrgVariables.js +28 -0
- package/dist/domain.operations/orgVariable/getAllOrgVariables.js.map +1 -0
- package/dist/domain.operations/orgVariable/getOneOrgVariable.d.ts +14 -0
- package/dist/domain.operations/orgVariable/getOneOrgVariable.js +34 -0
- package/dist/domain.operations/orgVariable/getOneOrgVariable.js.map +1 -0
- package/dist/domain.operations/orgVariable/setOrgVariable.d.ts +12 -0
- package/dist/domain.operations/orgVariable/setOrgVariable.js +69 -0
- package/dist/domain.operations/orgVariable/setOrgVariable.js.map +1 -0
- package/dist/domain.operations/provider/getDeclastructGithubProvider.js +9 -0
- package/dist/domain.operations/provider/getDeclastructGithubProvider.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { UniDateTime } from '@ehmpathy/uni-time';
|
|
2
|
+
import { DomainEntity, RefByUnique } from 'domain-objects';
|
|
3
|
+
import type { DeclaredGithubOrg } from './DeclaredGithubOrg';
|
|
4
|
+
/**
|
|
5
|
+
* .what = a declarative structure representing a GitHub Organization variable
|
|
6
|
+
* .why = enables declarative management of org-level GitHub Actions variables
|
|
7
|
+
*/
|
|
8
|
+
export interface DeclaredGithubOrgVariable {
|
|
9
|
+
/**
|
|
10
|
+
* .what = reference to the organization
|
|
11
|
+
*/
|
|
12
|
+
org: RefByUnique<typeof DeclaredGithubOrg>;
|
|
13
|
+
/**
|
|
14
|
+
* .what = variable name
|
|
15
|
+
* .note = must be unique per org
|
|
16
|
+
*/
|
|
17
|
+
name: string;
|
|
18
|
+
/**
|
|
19
|
+
* .what = variable value
|
|
20
|
+
* .note = stored in plain text (not encrypted)
|
|
21
|
+
*/
|
|
22
|
+
value: string;
|
|
23
|
+
/**
|
|
24
|
+
* .what = visibility scope for the variable
|
|
25
|
+
* .note = 'all' = all repos, 'private' = private repos only, 'selected' = specific repos
|
|
26
|
+
*/
|
|
27
|
+
visibility: 'all' | 'private' | 'selected';
|
|
28
|
+
/**
|
|
29
|
+
* .what = repository names when visibility is 'selected'
|
|
30
|
+
* .note = only repo names, not full owner/repo format
|
|
31
|
+
*/
|
|
32
|
+
selectedRepositoryNames?: string[];
|
|
33
|
+
/**
|
|
34
|
+
* .what = when the variable was created
|
|
35
|
+
* .note = is @metadata -> may be undefined
|
|
36
|
+
*/
|
|
37
|
+
createdAt?: UniDateTime;
|
|
38
|
+
/**
|
|
39
|
+
* .what = when the variable was last updated
|
|
40
|
+
* .note = is @metadata -> may be undefined
|
|
41
|
+
*/
|
|
42
|
+
updatedAt?: UniDateTime;
|
|
43
|
+
}
|
|
44
|
+
export declare class DeclaredGithubOrgVariable extends DomainEntity<DeclaredGithubOrgVariable> implements DeclaredGithubOrgVariable {
|
|
45
|
+
static unique: readonly ["org", "name"];
|
|
46
|
+
static readonly: readonly ["createdAt", "updatedAt"];
|
|
47
|
+
static nested: {
|
|
48
|
+
org: {
|
|
49
|
+
new (props: RefByUnique<typeof DeclaredGithubOrg, any, any, any>): RefByUnique<typeof DeclaredGithubOrg, any, any, any>;
|
|
50
|
+
build<TDobj extends import("domain-objects").Refable<TShape, TPrimary, TUnique>, TShape extends import("domain-objects/dist/reference/Refable").DomainObjectShape = any, TPrimary extends readonly string[] = any, TUnique extends readonly string[] = any>(props: RefByUnique<TDobj, TShape, TPrimary, TUnique>): RefByUnique<TDobj, TShape, TPrimary, TUnique>;
|
|
51
|
+
as<TDobj_1 extends import("domain-objects").Refable<TShape_1, TPrimary_1, TUnique_1>, TShape_1 extends import("domain-objects/dist/reference/Refable").DomainObjectShape = any, TPrimary_1 extends readonly string[] = any, TUnique_1 extends readonly string[] = any>(props: RefByUnique<TDobj_1, TShape_1, TPrimary_1, TUnique_1>): RefByUnique<TDobj_1, TShape_1, TPrimary_1, TUnique_1>;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeclaredGithubOrgVariable = void 0;
|
|
4
|
+
const domain_objects_1 = require("domain-objects");
|
|
5
|
+
class DeclaredGithubOrgVariable extends domain_objects_1.DomainEntity {
|
|
6
|
+
}
|
|
7
|
+
exports.DeclaredGithubOrgVariable = DeclaredGithubOrgVariable;
|
|
8
|
+
DeclaredGithubOrgVariable.unique = ['org', 'name'];
|
|
9
|
+
DeclaredGithubOrgVariable.readonly = ['createdAt', 'updatedAt'];
|
|
10
|
+
DeclaredGithubOrgVariable.nested = {
|
|
11
|
+
org: (domain_objects_1.RefByUnique),
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=DeclaredGithubOrgVariable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeclaredGithubOrgVariable.js","sourceRoot":"","sources":["../../src/domain.objects/DeclaredGithubOrgVariable.ts"],"names":[],"mappings":";;;AACA,mDAA2D;AAmD3D,MAAa,yBACX,SAAQ,6BAAuC;;AADjD,8DASC;AALe,gCAAM,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;AAClC,kCAAQ,GAAG,CAAC,WAAW,EAAE,WAAW,CAAU,CAAC;AAC/C,gCAAM,GAAG;IACrB,GAAG,EAAE,CAAA,4BAAqC,CAAA;CAC3C,CAAC"}
|
|
@@ -55,5 +55,6 @@ export interface DeclaredGithubRepo {
|
|
|
55
55
|
archived?: boolean;
|
|
56
56
|
}
|
|
57
57
|
export declare class DeclaredGithubRepo extends DomainEntity<DeclaredGithubRepo> implements DeclaredGithubRepo {
|
|
58
|
+
static primary: readonly ["id"];
|
|
58
59
|
static unique: readonly ["owner", "name"];
|
|
59
60
|
}
|
|
@@ -5,5 +5,6 @@ const domain_objects_1 = require("domain-objects");
|
|
|
5
5
|
class DeclaredGithubRepo extends domain_objects_1.DomainEntity {
|
|
6
6
|
}
|
|
7
7
|
exports.DeclaredGithubRepo = DeclaredGithubRepo;
|
|
8
|
+
DeclaredGithubRepo.primary = ['id'];
|
|
8
9
|
DeclaredGithubRepo.unique = ['owner', 'name'];
|
|
9
10
|
//# sourceMappingURL=DeclaredGithubRepo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeclaredGithubRepo.js","sourceRoot":"","sources":["../../src/domain.objects/DeclaredGithubRepo.ts"],"names":[],"mappings":";;;AACA,mDAA8C;AAkE9C,MAAa,kBACX,SAAQ,6BAAgC;;AAD1C,
|
|
1
|
+
{"version":3,"file":"DeclaredGithubRepo.js","sourceRoot":"","sources":["../../src/domain.objects/DeclaredGithubRepo.ts"],"names":[],"mappings":";;;AACA,mDAA8C;AAkE9C,MAAa,kBACX,SAAQ,6BAAgC;;AAD1C,gDAMC;AAFe,0BAAO,GAAG,CAAC,IAAI,CAAU,CAAC;AAC1B,yBAAM,GAAG,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC"}
|
|
@@ -5,6 +5,10 @@ import type { DeclaredGithubApp } from './DeclaredGithubApp';
|
|
|
5
5
|
import type { DeclaredGithubAppInstallation } from './DeclaredGithubAppInstallation';
|
|
6
6
|
import type { DeclaredGithubBranch } from './DeclaredGithubBranch';
|
|
7
7
|
import type { DeclaredGithubBranchProtection } from './DeclaredGithubBranchProtection';
|
|
8
|
+
import type { DeclaredGithubOrg } from './DeclaredGithubOrg';
|
|
9
|
+
import type { DeclaredGithubOrgMemberPrivileges } from './DeclaredGithubOrgMemberPrivileges';
|
|
10
|
+
import type { DeclaredGithubOrgSecret } from './DeclaredGithubOrgSecret';
|
|
11
|
+
import type { DeclaredGithubOrgVariable } from './DeclaredGithubOrgVariable';
|
|
8
12
|
import type { DeclaredGithubRepo } from './DeclaredGithubRepo';
|
|
9
13
|
import type { DeclaredGithubRepoConfig } from './DeclaredGithubRepoConfig';
|
|
10
14
|
/**
|
|
@@ -18,4 +22,8 @@ export type DeclastructGithubProvider = DeclastructProvider<{
|
|
|
18
22
|
DeclaredGithubBranchProtection: DeclastructDao<typeof DeclaredGithubBranchProtection, ContextGithubApi & ContextLogTrail>;
|
|
19
23
|
DeclaredGithubApp: DeclastructDao<typeof DeclaredGithubApp, ContextGithubApi & ContextLogTrail>;
|
|
20
24
|
DeclaredGithubAppInstallation: DeclastructDao<typeof DeclaredGithubAppInstallation, ContextGithubApi & ContextLogTrail>;
|
|
25
|
+
DeclaredGithubOrg: DeclastructDao<typeof DeclaredGithubOrg, ContextGithubApi & ContextLogTrail>;
|
|
26
|
+
DeclaredGithubOrgMemberPrivileges: DeclastructDao<typeof DeclaredGithubOrgMemberPrivileges, ContextGithubApi & ContextLogTrail>;
|
|
27
|
+
DeclaredGithubOrgVariable: DeclastructDao<typeof DeclaredGithubOrgVariable, ContextGithubApi & ContextLogTrail>;
|
|
28
|
+
DeclaredGithubOrgSecret: DeclastructDao<typeof DeclaredGithubOrgSecret, ContextGithubApi & ContextLogTrail>;
|
|
21
29
|
}, ContextGithubApi & ContextLogTrail>;
|
|
@@ -101,7 +101,8 @@ const castPermissions = (input) => {
|
|
|
101
101
|
organization_custom_properties: 'customProperties',
|
|
102
102
|
organization_user_blocking: 'userBlocking',
|
|
103
103
|
organization_hooks: 'hooks',
|
|
104
|
-
organization_secrets: '
|
|
104
|
+
organization_secrets: 'actionsSecrets',
|
|
105
|
+
organization_actions_variables: 'actionsVariables',
|
|
105
106
|
organization_projects: 'projects',
|
|
106
107
|
organization_self_hosted_runners: 'selfHostedRunners',
|
|
107
108
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"castToDeclaredGithubApp.js","sourceRoot":"","sources":["../../../src/domain.operations/app/castToDeclaredGithubApp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"castToDeclaredGithubApp.js","sourceRoot":"","sources":["../../../src/domain.operations/app/castToDeclaredGithubApp.ts"],"names":[],"mappings":";;;AAAA,iDAAmD;AAEnD,mDAAyD;AAGzD,8EAA2E;AAC3E,oGAI2D;AAC3D,kFAA+E;AAI/E;;;GAGG;AACI,MAAM,uBAAuB,GAAG,CACrC,KAAwB,EACxB,OAAsC,EACN,EAAE;IAClC,6BAA6B;IAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,wCAAuB,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,kCAAkC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,wCAAuB,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,MAAM,SAAS,GAAG,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,wCAAuB,CAAC,KAAK,CAC3B,4CAA4C,EAC5C;YACE,KAAK;YACL,SAAS;SACV,CACF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,yCAAmB,CAAC;QACpC,IAAI,EAAE,SAAS,CAAC,WAAW,EAA6B;QACxD,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,wCAAuB,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,sEAAsE;IACtE,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAE7D,OAAO,qCAAiB,CAAC,EAAE,CAAC;QAC1B,EAAE;QACF,IAAI;QACJ,KAAK;QACL,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;QACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC5B,CAAC,CAAC,KAAK,CAAC,WAAW;iBACd,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,yCAAyC;iBACvE,IAAI,CAAC,IAAI,CAAC;iBACV,IAAI,EAAE,CAAC,wCAAwC;YACpD,CAAC,CAAC,IAAI;QACR,MAAM,EAAE,CAAC,GAAG,EAAE;YACZ,gCAAgC;YAChC,IAAI,QAAQ,IAAI,KAAK;gBACnB,OAAO,OAAO,CAAE,KAA8B,CAAC,MAAM,CAAC,CAAC;YACzD,iCAAiC;YACjC,IAAI,OAAO,EAAE,cAAc,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,cAAc,CAAC;YACzE,4BAA4B;YAC5B,MAAM,IAAI,wCAAuB,CAC/B,4DAA4D,EAC5D,EAAE,KAAK,EAAE,CACV,CAAC;QACJ,CAAC,CAAC,EAAE;QACJ,WAAW;QACX,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;QAC1B,WAAW,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;QACvC,UAAU,EAAE,IAAI,EAAE,qCAAqC;QACvD,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;QACzE,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;KAC1E,CAAmC,CAAC;AACvC,CAAC,CAAC;AAvEW,QAAA,uBAAuB,2BAuElC;AAEF;;;GAGG;AACH,MAAM,eAAe,GAAG,CACtB,KAAyC,EACX,EAAE;IAChC,8DAA8D;IAC9D,MAAM,gBAAgB,GAGlB;QACF,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,cAAc;QAC7B,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAClB,cAAc,EAAE,gBAAgB;QAChC,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,aAAa;QAC1B,MAAM,EAAE,QAAQ;QAChB,aAAa,EAAE,cAAc;QAC7B,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,WAAW;QACtB,YAAY,EAAE,cAAc;QAC5B,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,UAAU;QACpB,gBAAgB,EAAE,OAAO;KAC1B,CAAC;IAEF,gEAAgE;IAChE,MAAM,kBAAkB,GAGpB;QACF,2BAA2B,EAAE,gBAAgB;QAC7C,OAAO,EAAE,SAAS;QAClB,8BAA8B,EAAE,kBAAkB;QAClD,0BAA0B,EAAE,cAAc;QAC1C,kBAAkB,EAAE,OAAO;QAC3B,oBAAoB,EAAE,gBAAgB;QACtC,8BAA8B,EAAE,kBAAkB;QAClD,qBAAqB,EAAE,UAAU;QACjC,gCAAgC,EAAE,mBAAmB;KACtD,CAAC;IAEF,0CAA0C;IAC1C,MAAM,UAAU,GAAkC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtB,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,MAAM,YAAY,GAAkC,EAAE,CAAC;IACvD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtB,YAAY,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,2DAA4B,CAAC;QACtC,UAAU,EACR,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;YAChC,CAAC,CAAE,UAAgE;YACnE,CAAC,CAAC,IAAI;QACV,YAAY,EACV,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;YAClC,CAAC,CAAE,YAAoE;YACvE,CAAC,CAAC,IAAI;KACX,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Endpoints } from '@octokit/types';
|
|
2
|
+
import { type HasMetadata } from 'type-fns';
|
|
3
|
+
import { DeclaredGithubOrg } from '../../domain.objects/DeclaredGithubOrg';
|
|
4
|
+
type GithubOrgResponse = Endpoints['GET /orgs/{org}']['response']['data'];
|
|
5
|
+
/**
|
|
6
|
+
* .what = casts GitHub API org response to DeclaredGithubOrg
|
|
7
|
+
* .why = transforms external API shape to our domain model with type safety and validation
|
|
8
|
+
*/
|
|
9
|
+
export declare const castToDeclaredGithubOrg: (input: {
|
|
10
|
+
data: GithubOrgResponse;
|
|
11
|
+
}) => HasMetadata<DeclaredGithubOrg>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.castToDeclaredGithubOrg = void 0;
|
|
4
|
+
const uni_time_1 = require("@ehmpathy/uni-time");
|
|
5
|
+
const type_fns_1 = require("type-fns");
|
|
6
|
+
const DeclaredGithubOrg_1 = require("../../domain.objects/DeclaredGithubOrg");
|
|
7
|
+
/**
|
|
8
|
+
* .what = casts GitHub API org response to DeclaredGithubOrg
|
|
9
|
+
* .why = transforms external API shape to our domain model with type safety and validation
|
|
10
|
+
*/
|
|
11
|
+
const castToDeclaredGithubOrg = (input) => {
|
|
12
|
+
return DeclaredGithubOrg_1.DeclaredGithubOrg.as({
|
|
13
|
+
id: (0, type_fns_1.assure)(input.data.id, type_fns_1.isPresent),
|
|
14
|
+
login: (0, type_fns_1.assure)(input.data.login, type_fns_1.isPresent),
|
|
15
|
+
name: input.data.name ?? null,
|
|
16
|
+
description: input.data.description ?? null,
|
|
17
|
+
billingEmail: undefined, // write-only: not read back from API
|
|
18
|
+
twoFactorRequirementEnabled: input.data.two_factor_requirement_enabled ?? undefined,
|
|
19
|
+
publicRepos: input.data.public_repos ?? undefined,
|
|
20
|
+
createdAt: input.data.created_at
|
|
21
|
+
? (0, uni_time_1.asUniDateTime)(input.data.created_at)
|
|
22
|
+
: undefined,
|
|
23
|
+
updatedAt: input.data.updated_at
|
|
24
|
+
? (0, uni_time_1.asUniDateTime)(input.data.updated_at)
|
|
25
|
+
: undefined,
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
exports.castToDeclaredGithubOrg = castToDeclaredGithubOrg;
|
|
29
|
+
//# sourceMappingURL=castToDeclaredGithubOrg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"castToDeclaredGithubOrg.js","sourceRoot":"","sources":["../../../src/domain.operations/org/castToDeclaredGithubOrg.ts"],"names":[],"mappings":";;;AAAA,iDAAmD;AAEnD,uCAA+D;AAE/D,8EAA2E;AAI3E;;;GAGG;AACI,MAAM,uBAAuB,GAAG,CAAC,KAEvC,EAAkC,EAAE;IACnC,OAAO,qCAAiB,CAAC,EAAE,CAAC;QAC1B,EAAE,EAAE,IAAA,iBAAM,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAS,CAAC;QACpC,KAAK,EAAE,IAAA,iBAAM,EAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAS,CAAC;QAC1C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI;QAC7B,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI;QAC3C,YAAY,EAAE,SAAS,EAAE,qCAAqC;QAC9D,2BAA2B,EACzB,KAAK,CAAC,IAAI,CAAC,8BAA8B,IAAI,SAAS;QACxD,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,SAAS;QACjD,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YAC9B,CAAC,CAAC,IAAA,wBAAa,EAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACtC,CAAC,CAAC,SAAS;QACb,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YAC9B,CAAC,CAAC,IAAA,wBAAa,EAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACtC,CAAC,CAAC,SAAS;KACd,CAAmC,CAAC;AACvC,CAAC,CAAC;AAnBW,QAAA,uBAAuB,2BAmBlC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { RefByUnique } from 'domain-objects';
|
|
2
|
+
import type { HasMetadata, PickOne } from 'type-fns';
|
|
3
|
+
import type { VisualogicContext } from 'visualogic';
|
|
4
|
+
import type { ContextGithubApi } from '../../domain.objects/ContextGithubApi';
|
|
5
|
+
import type { DeclaredGithubOrg } from '../../domain.objects/DeclaredGithubOrg';
|
|
6
|
+
/**
|
|
7
|
+
* .what = gets a GitHub Organization's settings
|
|
8
|
+
* .why = retrieves current state of org for declarative management
|
|
9
|
+
*/
|
|
10
|
+
export declare const getOneOrg: (input: {
|
|
11
|
+
by: PickOne<{
|
|
12
|
+
unique: RefByUnique<typeof DeclaredGithubOrg>;
|
|
13
|
+
}>;
|
|
14
|
+
}, context: ContextGithubApi & VisualogicContext) => Promise<HasMetadata<DeclaredGithubOrg> | null>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOneOrg = void 0;
|
|
4
|
+
const as_procedure_1 = require("as-procedure");
|
|
5
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
6
|
+
const getGithubClient_1 = require("../../access/sdks/getGithubClient");
|
|
7
|
+
const castToDeclaredGithubOrg_1 = require("./castToDeclaredGithubOrg");
|
|
8
|
+
/**
|
|
9
|
+
* .what = gets a GitHub Organization's settings
|
|
10
|
+
* .why = retrieves current state of org for declarative management
|
|
11
|
+
*/
|
|
12
|
+
exports.getOneOrg = (0, as_procedure_1.asProcedure)(async (input, context) => {
|
|
13
|
+
const github = (0, getGithubClient_1.getGithubClient)({}, context);
|
|
14
|
+
const login = (() => {
|
|
15
|
+
if (input.by.unique)
|
|
16
|
+
return input.by.unique.login;
|
|
17
|
+
helpful_errors_1.UnexpectedCodePathError.throw('not referenced by unique', { input });
|
|
18
|
+
})();
|
|
19
|
+
try {
|
|
20
|
+
const response = await github.orgs.get({ org: login });
|
|
21
|
+
return (0, castToDeclaredGithubOrg_1.castToDeclaredGithubOrg)({ data: response.data });
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (!(error instanceof Error))
|
|
25
|
+
throw error;
|
|
26
|
+
if (error.message.includes('Not Found'))
|
|
27
|
+
return null;
|
|
28
|
+
throw new helpful_errors_1.HelpfulError('github.getOrg error', { cause: error });
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=getOneOrg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOneOrg.js","sourceRoot":"","sources":["../../../src/domain.operations/org/getOneOrg.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAE3C,mDAAuE;AAIvE,uEAAoE;AAGpE,uEAAoE;AAEpE;;;GAGG;AACU,QAAA,SAAS,GAAG,IAAA,0BAAW,EAClC,KAAK,EACH,KAIC,EACD,OAA6C,EACG,EAAE;IAClD,MAAM,MAAM,GAAG,IAAA,iCAAe,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE;QAClB,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;QAClD,wCAAuB,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,OAAO,IAAA,iDAAuB,EAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,MAAM,IAAI,6BAAY,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { HasMetadata, PickOne } from 'type-fns';
|
|
2
|
+
import type { VisualogicContext } from 'visualogic';
|
|
3
|
+
import type { ContextGithubApi } from '../../domain.objects/ContextGithubApi';
|
|
4
|
+
import type { DeclaredGithubOrg } from '../../domain.objects/DeclaredGithubOrg';
|
|
5
|
+
/**
|
|
6
|
+
* .what = sets GitHub Organization profile settings
|
|
7
|
+
* .why = enables declarative management of org profile
|
|
8
|
+
*
|
|
9
|
+
* AUTOMATION BOUNDARIES:
|
|
10
|
+
* - AUTOMATED: Profile settings via PATCH /orgs/{org}
|
|
11
|
+
* - NOTE: Cannot create organizations via API (only update existing)
|
|
12
|
+
* - NOTE: Member privileges are managed via DeclaredGithubOrgMemberPrivileges
|
|
13
|
+
*/
|
|
14
|
+
export declare const setOrg: (input: PickOne<{
|
|
15
|
+
finsert: DeclaredGithubOrg;
|
|
16
|
+
upsert: DeclaredGithubOrg;
|
|
17
|
+
}>, context: ContextGithubApi & VisualogicContext) => Promise<HasMetadata<DeclaredGithubOrg>>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setOrg = void 0;
|
|
4
|
+
const as_procedure_1 = require("as-procedure");
|
|
5
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
6
|
+
const getGithubClient_1 = require("../../access/sdks/getGithubClient");
|
|
7
|
+
const castToDeclaredGithubOrg_1 = require("./castToDeclaredGithubOrg");
|
|
8
|
+
const getOneOrg_1 = require("./getOneOrg");
|
|
9
|
+
/**
|
|
10
|
+
* .what = sets GitHub Organization profile settings
|
|
11
|
+
* .why = enables declarative management of org profile
|
|
12
|
+
*
|
|
13
|
+
* AUTOMATION BOUNDARIES:
|
|
14
|
+
* - AUTOMATED: Profile settings via PATCH /orgs/{org}
|
|
15
|
+
* - NOTE: Cannot create organizations via API (only update existing)
|
|
16
|
+
* - NOTE: Member privileges are managed via DeclaredGithubOrgMemberPrivileges
|
|
17
|
+
*/
|
|
18
|
+
exports.setOrg = (0, as_procedure_1.asProcedure)(async (input, context) => {
|
|
19
|
+
const desired = input.finsert ?? input.upsert;
|
|
20
|
+
const github = (0, getGithubClient_1.getGithubClient)({}, context);
|
|
21
|
+
// Check if org exists
|
|
22
|
+
const before = await (0, getOneOrg_1.getOneOrg)({ by: { unique: { login: desired.login } } }, context);
|
|
23
|
+
// Cannot create orgs via API - must exist
|
|
24
|
+
if (!before) {
|
|
25
|
+
throw new helpful_errors_1.HelpfulError('GitHub Organization does not exist and cannot be created via API.\n' +
|
|
26
|
+
'Organizations must be created manually via the GitHub UI.', {
|
|
27
|
+
createUrl: 'https://github.com/organizations/plan',
|
|
28
|
+
desiredOrg: desired,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
// If finsert and found, return as-is (no changes)
|
|
32
|
+
if (before && input.finsert)
|
|
33
|
+
return before;
|
|
34
|
+
// Apply profile updates via PATCH
|
|
35
|
+
try {
|
|
36
|
+
const response = await github.orgs.update({
|
|
37
|
+
org: desired.login,
|
|
38
|
+
name: desired.name ?? undefined,
|
|
39
|
+
description: desired.description ?? undefined,
|
|
40
|
+
billing_email: desired.billingEmail ?? undefined,
|
|
41
|
+
});
|
|
42
|
+
return (0, castToDeclaredGithubOrg_1.castToDeclaredGithubOrg)({ data: response.data });
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
if (!(error instanceof Error))
|
|
46
|
+
throw error;
|
|
47
|
+
throw new helpful_errors_1.HelpfulError('github.setOrg.update error', { cause: error });
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=setOrg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setOrg.js","sourceRoot":"","sources":["../../../src/domain.operations/org/setOrg.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,mDAA8C;AAI9C,uEAAoE;AAGpE,uEAAoE;AACpE,2CAAwC;AAExC;;;;;;;;GAQG;AACU,QAAA,MAAM,GAAG,IAAA,0BAAW,EAC/B,KAAK,EACH,KAGE,EACF,OAA6C,EACJ,EAAE;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAA,iCAAe,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAE5C,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAS,EAC5B,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,EAC5C,OAAO,CACR,CAAC;IAEF,0CAA0C;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,6BAAY,CACpB,qEAAqE;YACnE,2DAA2D,EAC7D;YACE,SAAS,EAAE,uCAAuC;YAClD,UAAU,EAAE,OAAO;SACpB,CACF,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAE3C,kCAAkC;IAClC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACxC,GAAG,EAAE,OAAO,CAAC,KAAK;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;YAC/B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS;YAC7C,aAAa,EAAE,OAAO,CAAC,YAAY,IAAI,SAAS;SACjD,CAAC,CAAC;QAEH,OAAO,IAAA,iDAAuB,EAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;QAC3C,MAAM,IAAI,6BAAY,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC,CACF,CAAC"}
|
package/dist/domain.operations/orgMemberPrivileges/castToDeclaredGithubOrgMemberPrivileges.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Endpoints } from '@octokit/types';
|
|
2
|
+
import type { RefByUnique } from 'domain-objects';
|
|
3
|
+
import type { HasMetadata } from 'type-fns';
|
|
4
|
+
import type { DeclaredGithubOrg } from '../../domain.objects/DeclaredGithubOrg';
|
|
5
|
+
import { DeclaredGithubOrgMemberPrivileges } from '../../domain.objects/DeclaredGithubOrgMemberPrivileges';
|
|
6
|
+
type GithubOrgResponse = Endpoints['GET /orgs/{org}']['response']['data'];
|
|
7
|
+
/**
|
|
8
|
+
* .what = casts GitHub API org response to DeclaredGithubOrgMemberPrivileges
|
|
9
|
+
* .why = extracts member privilege fields from org API response
|
|
10
|
+
*/
|
|
11
|
+
export declare const castToDeclaredGithubOrgMemberPrivileges: (input: {
|
|
12
|
+
data: GithubOrgResponse;
|
|
13
|
+
org: RefByUnique<typeof DeclaredGithubOrg>;
|
|
14
|
+
}) => HasMetadata<DeclaredGithubOrgMemberPrivileges>;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.castToDeclaredGithubOrgMemberPrivileges = void 0;
|
|
4
|
+
const uni_time_1 = require("@ehmpathy/uni-time");
|
|
5
|
+
const DeclaredGithubOrgMemberPrivileges_1 = require("../../domain.objects/DeclaredGithubOrgMemberPrivileges");
|
|
6
|
+
/**
|
|
7
|
+
* .what = casts GitHub API org response to DeclaredGithubOrgMemberPrivileges
|
|
8
|
+
* .why = extracts member privilege fields from org API response
|
|
9
|
+
*/
|
|
10
|
+
const castToDeclaredGithubOrgMemberPrivileges = (input) => {
|
|
11
|
+
return DeclaredGithubOrgMemberPrivileges_1.DeclaredGithubOrgMemberPrivileges.as({
|
|
12
|
+
org: input.org,
|
|
13
|
+
updatedAt: input.data.updated_at
|
|
14
|
+
? (0, uni_time_1.asUniDateTime)(input.data.updated_at)
|
|
15
|
+
: undefined,
|
|
16
|
+
// Repository creation
|
|
17
|
+
membersCanCreateRepositories: input.data.members_can_create_repositories ?? true,
|
|
18
|
+
membersCanCreatePublicRepositories: input.data.members_can_create_public_repositories ?? true,
|
|
19
|
+
membersCanCreatePrivateRepositories: input.data.members_can_create_private_repositories ?? true,
|
|
20
|
+
membersCanCreateInternalRepositories: (() => {
|
|
21
|
+
// internal repos only available for enterprise orgs
|
|
22
|
+
const isEnterprise = input.data.plan?.name
|
|
23
|
+
?.toLowerCase()
|
|
24
|
+
.includes('enterprise');
|
|
25
|
+
if (!isEnterprise)
|
|
26
|
+
return null;
|
|
27
|
+
return input.data.members_can_create_internal_repositories ?? null;
|
|
28
|
+
})(),
|
|
29
|
+
// Repository management (KEY SECURITY)
|
|
30
|
+
membersCanDeleteRepositories:
|
|
31
|
+
// Note: GitHub API uses 'members_can_delete_repositories' field
|
|
32
|
+
input.data
|
|
33
|
+
.members_can_delete_repositories ?? true,
|
|
34
|
+
membersCanChangeRepoVisibility: input.data
|
|
35
|
+
.members_can_change_repo_visibility ?? true,
|
|
36
|
+
membersCanForkPrivateRepositories: input.data.members_can_fork_private_repositories ?? false,
|
|
37
|
+
// Collaboration
|
|
38
|
+
membersCanInviteOutsideCollaborators: true, // Not directly exposed in API
|
|
39
|
+
// GitHub Pages
|
|
40
|
+
membersCanCreatePages: input.data.members_can_create_pages ?? true,
|
|
41
|
+
membersCanCreatePublicPages: input.data.members_can_create_public_pages ?? true,
|
|
42
|
+
membersCanCreatePrivatePages: input.data.members_can_create_private_pages ?? true,
|
|
43
|
+
defaultRepositoryPermission: input.data.default_repository_permission ?? 'read',
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
exports.castToDeclaredGithubOrgMemberPrivileges = castToDeclaredGithubOrgMemberPrivileges;
|
|
47
|
+
//# sourceMappingURL=castToDeclaredGithubOrgMemberPrivileges.js.map
|
package/dist/domain.operations/orgMemberPrivileges/castToDeclaredGithubOrgMemberPrivileges.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"castToDeclaredGithubOrgMemberPrivileges.js","sourceRoot":"","sources":["../../../src/domain.operations/orgMemberPrivileges/castToDeclaredGithubOrgMemberPrivileges.ts"],"names":[],"mappings":";;;AAAA,iDAAmD;AAMnD,8GAA2G;AAI3G;;;GAGG;AACI,MAAM,uCAAuC,GAAG,CAAC,KAGvD,EAAkD,EAAE;IACnD,OAAO,qEAAiC,CAAC,EAAE,CAAC;QAC1C,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YAC9B,CAAC,CAAC,IAAA,wBAAa,EAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACtC,CAAC,CAAC,SAAS;QAEb,sBAAsB;QACtB,4BAA4B,EAC1B,KAAK,CAAC,IAAI,CAAC,+BAA+B,IAAI,IAAI;QACpD,kCAAkC,EAChC,KAAK,CAAC,IAAI,CAAC,sCAAsC,IAAI,IAAI;QAC3D,mCAAmC,EACjC,KAAK,CAAC,IAAI,CAAC,uCAAuC,IAAI,IAAI;QAC5D,oCAAoC,EAAE,CAAC,GAAG,EAAE;YAC1C,oDAAoD;YACpD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI;gBACxC,EAAE,WAAW,EAAE;iBACd,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC1B,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC;YAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,wCAAwC,IAAI,IAAI,CAAC;QACrE,CAAC,CAAC,EAAE;QAEJ,uCAAuC;QACvC,4BAA4B;QAC1B,gEAAgE;QAC9D,KAAK,CAAC,IAAgC;aACrC,+BAA2C,IAAI,IAAI;QACxD,8BAA8B,EAC1B,KAAK,CAAC,IAAgC;aACrC,kCAA8C,IAAI,IAAI;QAC3D,iCAAiC,EAC/B,KAAK,CAAC,IAAI,CAAC,qCAAqC,IAAI,KAAK;QAE3D,gBAAgB;QAChB,oCAAoC,EAAE,IAAI,EAAE,8BAA8B;QAE1E,eAAe;QACf,qBAAqB,EAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI;QAClE,2BAA2B,EACzB,KAAK,CAAC,IAAI,CAAC,+BAA+B,IAAI,IAAI;QACpD,4BAA4B,EAC1B,KAAK,CAAC,IAAI,CAAC,gCAAgC,IAAI,IAAI;QAErD,2BAA2B,EACxB,KAAK,CAAC,IAAI,CAAC,6BAID,IAAI,MAAM;KACxB,CAAmD,CAAC;AACvD,CAAC,CAAC;AAtDW,QAAA,uCAAuC,2CAsDlD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { RefByUnique } from 'domain-objects';
|
|
2
|
+
import type { HasMetadata, PickOne } from 'type-fns';
|
|
3
|
+
import type { VisualogicContext } from 'visualogic';
|
|
4
|
+
import type { ContextGithubApi } from '../../domain.objects/ContextGithubApi';
|
|
5
|
+
import type { DeclaredGithubOrgMemberPrivileges } from '../../domain.objects/DeclaredGithubOrgMemberPrivileges';
|
|
6
|
+
/**
|
|
7
|
+
* .what = gets GitHub Organization member privileges
|
|
8
|
+
* .why = retrieves current security settings for declarative management
|
|
9
|
+
*/
|
|
10
|
+
export declare const getOneOrgMemberPrivileges: (input: {
|
|
11
|
+
by: PickOne<{
|
|
12
|
+
unique: RefByUnique<typeof DeclaredGithubOrgMemberPrivileges>;
|
|
13
|
+
}>;
|
|
14
|
+
}, context: ContextGithubApi & VisualogicContext) => Promise<HasMetadata<DeclaredGithubOrgMemberPrivileges> | null>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOneOrgMemberPrivileges = void 0;
|
|
4
|
+
const as_procedure_1 = require("as-procedure");
|
|
5
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
6
|
+
const getGithubClient_1 = require("../../access/sdks/getGithubClient");
|
|
7
|
+
const castToDeclaredGithubOrgMemberPrivileges_1 = require("./castToDeclaredGithubOrgMemberPrivileges");
|
|
8
|
+
/**
|
|
9
|
+
* .what = gets GitHub Organization member privileges
|
|
10
|
+
* .why = retrieves current security settings for declarative management
|
|
11
|
+
*/
|
|
12
|
+
exports.getOneOrgMemberPrivileges = (0, as_procedure_1.asProcedure)(async (input, context) => {
|
|
13
|
+
const github = (0, getGithubClient_1.getGithubClient)({}, context);
|
|
14
|
+
const org = (() => {
|
|
15
|
+
if (input.by.unique)
|
|
16
|
+
return input.by.unique.org;
|
|
17
|
+
helpful_errors_1.UnexpectedCodePathError.throw('not referenced by unique', { input });
|
|
18
|
+
})();
|
|
19
|
+
try {
|
|
20
|
+
const response = await github.orgs.get({ org: org.login });
|
|
21
|
+
return (0, castToDeclaredGithubOrgMemberPrivileges_1.castToDeclaredGithubOrgMemberPrivileges)({
|
|
22
|
+
data: response.data,
|
|
23
|
+
org,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
if (!(error instanceof Error))
|
|
28
|
+
throw error;
|
|
29
|
+
if (error.message.includes('Not Found'))
|
|
30
|
+
return null;
|
|
31
|
+
throw new helpful_errors_1.HelpfulError('github.getOrgMemberPrivileges error', {
|
|
32
|
+
cause: error,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=getOneOrgMemberPrivileges.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOneOrgMemberPrivileges.js","sourceRoot":"","sources":["../../../src/domain.operations/orgMemberPrivileges/getOneOrgMemberPrivileges.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAE3C,mDAAuE;AAIvE,uEAAoE;AAGpE,uGAAoG;AAEpG;;;GAGG;AACU,QAAA,yBAAyB,GAAG,IAAA,0BAAW,EAClD,KAAK,EACH,KAIC,EACD,OAA6C,EACmB,EAAE;IAClE,MAAM,MAAM,GAAG,IAAA,iCAAe,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAE5C,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE;QAChB,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;QAChD,wCAAuB,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3D,OAAO,IAAA,iFAAuC,EAAC;YAC7C,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,MAAM,IAAI,6BAAY,CAAC,qCAAqC,EAAE;YAC5D,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { HasMetadata, PickOne } from 'type-fns';
|
|
2
|
+
import type { VisualogicContext } from 'visualogic';
|
|
3
|
+
import type { ContextGithubApi } from '../../domain.objects/ContextGithubApi';
|
|
4
|
+
import type { DeclaredGithubOrgMemberPrivileges } from '../../domain.objects/DeclaredGithubOrgMemberPrivileges';
|
|
5
|
+
/**
|
|
6
|
+
* .what = sets GitHub Organization member privileges
|
|
7
|
+
* .why = enables declarative management of org security settings
|
|
8
|
+
*
|
|
9
|
+
* KEY SECURITY SETTINGS:
|
|
10
|
+
* - membersCanDeleteRepositories: false -> only owners can delete/transfer repos
|
|
11
|
+
* - membersCanChangeRepoVisibility: false -> only owners can change visibility
|
|
12
|
+
*/
|
|
13
|
+
export declare const setOrgMemberPrivileges: (input: PickOne<{
|
|
14
|
+
finsert: DeclaredGithubOrgMemberPrivileges;
|
|
15
|
+
upsert: DeclaredGithubOrgMemberPrivileges;
|
|
16
|
+
}>, context: ContextGithubApi & VisualogicContext) => Promise<HasMetadata<DeclaredGithubOrgMemberPrivileges>>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setOrgMemberPrivileges = void 0;
|
|
4
|
+
const as_procedure_1 = require("as-procedure");
|
|
5
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
6
|
+
const getGithubClient_1 = require("../../access/sdks/getGithubClient");
|
|
7
|
+
const castToDeclaredGithubOrgMemberPrivileges_1 = require("./castToDeclaredGithubOrgMemberPrivileges");
|
|
8
|
+
const getOneOrgMemberPrivileges_1 = require("./getOneOrgMemberPrivileges");
|
|
9
|
+
/**
|
|
10
|
+
* .what = sets GitHub Organization member privileges
|
|
11
|
+
* .why = enables declarative management of org security settings
|
|
12
|
+
*
|
|
13
|
+
* KEY SECURITY SETTINGS:
|
|
14
|
+
* - membersCanDeleteRepositories: false -> only owners can delete/transfer repos
|
|
15
|
+
* - membersCanChangeRepoVisibility: false -> only owners can change visibility
|
|
16
|
+
*/
|
|
17
|
+
exports.setOrgMemberPrivileges = (0, as_procedure_1.asProcedure)(async (input, context) => {
|
|
18
|
+
const desired = input.finsert ?? input.upsert;
|
|
19
|
+
const github = (0, getGithubClient_1.getGithubClient)({}, context);
|
|
20
|
+
// Check current state
|
|
21
|
+
const before = await (0, getOneOrgMemberPrivileges_1.getOneOrgMemberPrivileges)({ by: { unique: { org: desired.org } } }, context);
|
|
22
|
+
// Org must exist
|
|
23
|
+
if (!before) {
|
|
24
|
+
throw new helpful_errors_1.HelpfulError('GitHub Organization does not exist.', {
|
|
25
|
+
desiredPrivileges: desired,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
// If finsert and found, return as-is (no changes)
|
|
29
|
+
if (before && input.finsert)
|
|
30
|
+
return before;
|
|
31
|
+
// Apply member privilege updates via PATCH
|
|
32
|
+
try {
|
|
33
|
+
const response = await github.orgs.update({
|
|
34
|
+
org: desired.org.login,
|
|
35
|
+
// Repository creation
|
|
36
|
+
members_can_create_repositories: desired.membersCanCreateRepositories,
|
|
37
|
+
members_can_create_public_repositories: desired.membersCanCreatePublicRepositories,
|
|
38
|
+
members_can_create_private_repositories: desired.membersCanCreatePrivateRepositories,
|
|
39
|
+
members_can_create_internal_repositories: desired.membersCanCreateInternalRepositories ?? undefined,
|
|
40
|
+
// KEY SECURITY SETTINGS
|
|
41
|
+
// Note: These fields may not be directly settable via the standard API
|
|
42
|
+
// They are typically org settings that require admin permissions
|
|
43
|
+
members_can_fork_private_repositories: desired.membersCanForkPrivateRepositories,
|
|
44
|
+
// GitHub Pages
|
|
45
|
+
members_can_create_pages: desired.membersCanCreatePages,
|
|
46
|
+
members_can_create_public_pages: desired.membersCanCreatePublicPages,
|
|
47
|
+
members_can_create_private_pages: desired.membersCanCreatePrivatePages,
|
|
48
|
+
// Other
|
|
49
|
+
default_repository_permission: desired.defaultRepositoryPermission,
|
|
50
|
+
});
|
|
51
|
+
return (0, castToDeclaredGithubOrgMemberPrivileges_1.castToDeclaredGithubOrgMemberPrivileges)({
|
|
52
|
+
data: response.data,
|
|
53
|
+
org: desired.org,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (!(error instanceof Error))
|
|
58
|
+
throw error;
|
|
59
|
+
throw new helpful_errors_1.HelpfulError('github.setOrgMemberPrivileges.update error', {
|
|
60
|
+
cause: error,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=setOrgMemberPrivileges.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setOrgMemberPrivileges.js","sourceRoot":"","sources":["../../../src/domain.operations/orgMemberPrivileges/setOrgMemberPrivileges.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,mDAA8C;AAI9C,uEAAoE;AAGpE,uGAAoG;AACpG,2EAAwE;AAExE;;;;;;;GAOG;AACU,QAAA,sBAAsB,GAAG,IAAA,0BAAW,EAC/C,KAAK,EACH,KAGE,EACF,OAA6C,EACY,EAAE;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAA,iCAAe,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAE5C,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAC5C,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EACxC,OAAO,CACR,CAAC;IAEF,iBAAiB;IACjB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,6BAAY,CAAC,qCAAqC,EAAE;YAC5D,iBAAiB,EAAE,OAAO;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAClD,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAE3C,2CAA2C;IAC3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACxC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;YACtB,sBAAsB;YACtB,+BAA+B,EAAE,OAAO,CAAC,4BAA4B;YACrE,sCAAsC,EACpC,OAAO,CAAC,kCAAkC;YAC5C,uCAAuC,EACrC,OAAO,CAAC,mCAAmC;YAC7C,wCAAwC,EACtC,OAAO,CAAC,oCAAoC,IAAI,SAAS;YAC3D,wBAAwB;YACxB,uEAAuE;YACvE,iEAAiE;YACjE,qCAAqC,EACnC,OAAO,CAAC,iCAAiC;YAC3C,eAAe;YACf,wBAAwB,EAAE,OAAO,CAAC,qBAAqB;YACvD,+BAA+B,EAAE,OAAO,CAAC,2BAA2B;YACpE,gCAAgC,EAAE,OAAO,CAAC,4BAA4B;YACtE,QAAQ;YACR,6BAA6B,EAAE,OAAO,CAAC,2BAA2B;SACnE,CAAC,CAAC;QAEH,OAAO,IAAA,iFAAuC,EAAC;YAC7C,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;QAC3C,MAAM,IAAI,6BAAY,CAAC,4CAA4C,EAAE;YACnE,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Endpoints } from '@octokit/types';
|
|
2
|
+
import type { RefByUnique } from 'domain-objects';
|
|
3
|
+
import type { HasMetadata } from 'type-fns';
|
|
4
|
+
import type { DeclaredGithubOrg } from '../../domain.objects/DeclaredGithubOrg';
|
|
5
|
+
import { DeclaredGithubOrgSecret } from '../../domain.objects/DeclaredGithubOrgSecret';
|
|
6
|
+
type GithubOrgSecretResponse = Endpoints['GET /orgs/{org}/actions/secrets/{secret_name}']['response']['data'];
|
|
7
|
+
type GithubOrgSecretListItem = Endpoints['GET /orgs/{org}/actions/secrets']['response']['data']['secrets'][number];
|
|
8
|
+
/**
|
|
9
|
+
* .what = casts GitHub API secret response to DeclaredGithubOrgSecret
|
|
10
|
+
* .why = transforms external API shape to our domain model
|
|
11
|
+
* .note = value is NEVER returned - secrets are write-only
|
|
12
|
+
*/
|
|
13
|
+
export declare const castToDeclaredGithubOrgSecret: (input: {
|
|
14
|
+
data: GithubOrgSecretResponse | GithubOrgSecretListItem;
|
|
15
|
+
org: RefByUnique<typeof DeclaredGithubOrg>;
|
|
16
|
+
}) => HasMetadata<DeclaredGithubOrgSecret>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.castToDeclaredGithubOrgSecret = void 0;
|
|
4
|
+
const uni_time_1 = require("@ehmpathy/uni-time");
|
|
5
|
+
const DeclaredGithubOrgSecret_1 = require("../../domain.objects/DeclaredGithubOrgSecret");
|
|
6
|
+
/**
|
|
7
|
+
* .what = casts GitHub API secret response to DeclaredGithubOrgSecret
|
|
8
|
+
* .why = transforms external API shape to our domain model
|
|
9
|
+
* .note = value is NEVER returned - secrets are write-only
|
|
10
|
+
*/
|
|
11
|
+
const castToDeclaredGithubOrgSecret = (input) => {
|
|
12
|
+
return DeclaredGithubOrgSecret_1.DeclaredGithubOrgSecret.as({
|
|
13
|
+
org: input.org,
|
|
14
|
+
name: input.data.name,
|
|
15
|
+
// value is NEVER returned from API - secrets are write-only
|
|
16
|
+
value: undefined,
|
|
17
|
+
visibility: input.data.visibility,
|
|
18
|
+
// selectedRepositoryNames not set - not returned in API response
|
|
19
|
+
createdAt: input.data.created_at
|
|
20
|
+
? (0, uni_time_1.asUniDateTime)(input.data.created_at)
|
|
21
|
+
: undefined,
|
|
22
|
+
updatedAt: input.data.updated_at
|
|
23
|
+
? (0, uni_time_1.asUniDateTime)(input.data.updated_at)
|
|
24
|
+
: undefined,
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
exports.castToDeclaredGithubOrgSecret = castToDeclaredGithubOrgSecret;
|
|
28
|
+
//# sourceMappingURL=castToDeclaredGithubOrgSecret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"castToDeclaredGithubOrgSecret.js","sourceRoot":"","sources":["../../../src/domain.operations/orgSecret/castToDeclaredGithubOrgSecret.ts"],"names":[],"mappings":";;;AAAA,iDAAmD;AAMnD,0FAAuF;AAQvF;;;;GAIG;AACI,MAAM,6BAA6B,GAAG,CAAC,KAG7C,EAAwC,EAAE;IACzC,OAAO,iDAAuB,CAAC,EAAE,CAAC;QAChC,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;QACrB,4DAA4D;QAC5D,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAA4C;QACnE,iEAAiE;QACjE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YAC9B,CAAC,CAAC,IAAA,wBAAa,EAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACtC,CAAC,CAAC,SAAS;QACb,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YAC9B,CAAC,CAAC,IAAA,wBAAa,EAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACtC,CAAC,CAAC,SAAS;KACd,CAAyC,CAAC;AAC7C,CAAC,CAAC;AAlBW,QAAA,6BAA6B,iCAkBxC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Ref } from 'domain-objects';
|
|
2
|
+
import type { VisualogicContext } from 'visualogic';
|
|
3
|
+
import type { ContextGithubApi } from '../../domain.objects/ContextGithubApi';
|
|
4
|
+
import type { DeclaredGithubOrgSecret } from '../../domain.objects/DeclaredGithubOrgSecret';
|
|
5
|
+
/**
|
|
6
|
+
* .what = deletes a GitHub Organization secret
|
|
7
|
+
* .why = enables declarative management of org-level secrets
|
|
8
|
+
*/
|
|
9
|
+
export declare const delOrgSecret: (input: {
|
|
10
|
+
secret: Ref<typeof DeclaredGithubOrgSecret>;
|
|
11
|
+
}, context: ContextGithubApi & VisualogicContext) => Promise<void>;
|