gcb-client 0.8.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.
- package/CHANGELOG.md +27 -0
- package/lib/commands/host-submit.d.ts +1 -1
- package/lib/commands/host-submit.d.ts.map +1 -1
- package/lib/commands/host-submit.js +11 -8
- package/lib/commands/host-submit.js.map +1 -1
- package/lib/commands/push.d.ts +19 -0
- package/lib/commands/push.d.ts.map +1 -0
- package/lib/commands/push.js +270 -0
- package/lib/commands/push.js.map +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# gcb-client
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#142](https://github.com/code-vaults/git-credential-broker/pull/142) [`d26ea16`](https://github.com/code-vaults/git-credential-broker/commit/d26ea16a5c0df22e4865ee3947009a3be1266297) Thanks [@i1stG](https://github.com/i1stG)! - Allow host-broker requests made outside a checkout to use the shared
|
|
8
|
+
`~/.gcb-host/channel`; they still require an explicit `--repo` and the same allowlist and account
|
|
9
|
+
checks. The channel is a pre-created, host-owned 0700 directory; the broker validates it and does
|
|
10
|
+
not create or chmod it.
|
|
11
|
+
|
|
12
|
+
- [#136](https://github.com/code-vaults/git-credential-broker/pull/136) [`bcc1373`](https://github.com/code-vaults/git-credential-broker/commit/bcc1373cedabeca2d267bd07ab85db15e98895a2) Thanks [@JounQin](https://github.com/JounQin)! - Add `gcb push` (explicit host-executed push; a deliberate exception to native Git): the host broker pushes an exact commit with its own gh account, or its SSH
|
|
13
|
+
agent/key when the selected remote uses SSH. A destination fork is allowed when `allowForkPush` verifies its parent/source against the allowlist;
|
|
14
|
+
the command takes a git-style remote and branch, and the request carries the repository, remote,
|
|
15
|
+
branch, exact commit, optional force/lease expectation, account and proxy; `--force` and `--force-with-lease` are explicit. Other push arguments are not passed through; no token or container-controlled remote URL enters the host push.
|
|
16
|
+
The container runs its own `pre-push` hook; the host never runs container-owned hooks.
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- Updated dependencies [[`d26ea16`](https://github.com/code-vaults/git-credential-broker/commit/d26ea16a5c0df22e4865ee3947009a3be1266297), [`bcc1373`](https://github.com/code-vaults/git-credential-broker/commit/bcc1373cedabeca2d267bd07ab85db15e98895a2)]:
|
|
21
|
+
- gcb-core@0.9.0
|
|
22
|
+
|
|
23
|
+
## 0.8.1
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- Updated dependencies []:
|
|
28
|
+
- gcb-core@0.8.1
|
|
29
|
+
|
|
3
30
|
## 0.8.0
|
|
4
31
|
|
|
5
32
|
### Minor Changes
|
|
@@ -16,7 +16,7 @@ export declare function noAnswerMessage(dir: string, id: string, noun: string, t
|
|
|
16
16
|
* @param success - Formats the success line from the answer.
|
|
17
17
|
* @returns 0 after the answer is reported.
|
|
18
18
|
*/
|
|
19
|
-
export declare function submitToHostBroker(request: HostRequest, success: (answer: HostResult) => string): Promise<number>;
|
|
19
|
+
export declare function submitToHostBroker(request: HostRequest, success: (answer: HostResult) => string, claimedTimeoutMs?: number): Promise<number>;
|
|
20
20
|
/**
|
|
21
21
|
* Run one catalogued action through the host broker and forward its output.
|
|
22
22
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-submit.d.ts","sourceRoot":"","sources":["../../src/commands/host-submit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"host-submit.d.ts","sourceRoot":"","sources":["../../src/commands/host-submit.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE1E;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAehG;AA8GD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,EACvC,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAa1F"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { existsSync } from 'node:fs';
|
|
8
8
|
import { join } from 'node:path';
|
|
9
|
-
import { ANSWER_TIMEOUT_MS, channelDir, findGitDir, readHostBroker, readResult, removeResult, requestProblems, waitForResult, writeRequest, fail, getGhAction, say, } from 'gcb-core';
|
|
9
|
+
import { ANSWER_TIMEOUT_MS, channelDir, findGitDir, globalChannelDir, readHostBroker, readResult, removeResult, requestProblems, waitForResult, writeRequest, fail, getGhAction, say, } from 'gcb-core';
|
|
10
10
|
/**
|
|
11
11
|
* Explain why a host-broker request produced no answer.
|
|
12
12
|
*
|
|
@@ -26,7 +26,7 @@ export function noAnswerMessage(dir, id, noun, timeoutMs) {
|
|
|
26
26
|
const elapsed = timeoutMs >= 1_000 ? `${Math.round(timeoutMs / 1_000)}s` : `${timeoutMs}ms`;
|
|
27
27
|
return (`the host broker did not answer ${id} within ${elapsed}\n` +
|
|
28
28
|
' it may still be working: the request is not cancelled, and the host broker removes it only once\n' +
|
|
29
|
-
` it has
|
|
29
|
+
` it has completed the ${noun} or failed. Check the result before asking again.`);
|
|
30
30
|
}
|
|
31
31
|
const KINDS = {
|
|
32
32
|
'pull-request': { noun: 'pull request' },
|
|
@@ -35,6 +35,7 @@ const KINDS = {
|
|
|
35
35
|
edit: { noun: 'edit', needed: 'edit' },
|
|
36
36
|
review: { noun: 'review', needed: 'review' },
|
|
37
37
|
action: { noun: 'action', needed: 'action' },
|
|
38
|
+
push: { noun: 'push', needed: 'push' },
|
|
38
39
|
};
|
|
39
40
|
/** Write, wait for and return one host-broker answer. */
|
|
40
41
|
async function exchange(request, timeoutMs = ANSWER_TIMEOUT_MS, claimedTimeoutMs) {
|
|
@@ -44,14 +45,16 @@ async function exchange(request, timeoutMs = ANSWER_TIMEOUT_MS, claimedTimeoutMs
|
|
|
44
45
|
}
|
|
45
46
|
const { noun, needed } = KINDS[request.kind ?? 'pull-request'];
|
|
46
47
|
const gitDir = findGitDir(process.cwd());
|
|
47
|
-
if (gitDir === undefined) {
|
|
48
|
-
fail('--as-user needs a git
|
|
48
|
+
if (gitDir === undefined && request.repo === undefined) {
|
|
49
|
+
fail('--as-user needs --repo outside a git checkout');
|
|
49
50
|
}
|
|
50
|
-
const dir = channelDir(gitDir);
|
|
51
|
+
const dir = gitDir === undefined ? globalChannelDir() : channelDir(gitDir);
|
|
51
52
|
const hostBroker = readHostBroker(dir);
|
|
52
53
|
if (hostBroker === undefined) {
|
|
53
54
|
fail(`no host broker is watching ${dir}\n` +
|
|
54
|
-
|
|
55
|
+
(gitDir === undefined
|
|
56
|
+
? ' start one on the host in root-serving mode: gcb host\n'
|
|
57
|
+
: ' start one on the host: gcb host --repo <that checkout>\n') +
|
|
55
58
|
' if one is already running, restart it from this gcb-host version\n' +
|
|
56
59
|
' or drop --as-user to do it as the app instead');
|
|
57
60
|
}
|
|
@@ -120,8 +123,8 @@ async function waitForAnswer(dir, id, queueTimeoutMs, claimedTimeoutMs) {
|
|
|
120
123
|
* @param success - Formats the success line from the answer.
|
|
121
124
|
* @returns 0 after the answer is reported.
|
|
122
125
|
*/
|
|
123
|
-
export async function submitToHostBroker(request, success) {
|
|
124
|
-
const answer = await exchange(request);
|
|
126
|
+
export async function submitToHostBroker(request, success, claimedTimeoutMs) {
|
|
127
|
+
const answer = await exchange(request, ANSWER_TIMEOUT_MS, claimedTimeoutMs);
|
|
125
128
|
if (answer.error !== undefined) {
|
|
126
129
|
fail(`the host broker could not do it: ${answer.error}`);
|
|
127
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-submit.js","sourceRoot":"","sources":["../../src/commands/host-submit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,GAAG,GACJ,MAAM,UAAU,CAAA;AAGjB;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,EAAU,EAAE,IAAY,EAAE,SAAiB;IACtF,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAA;IAC3D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,CACL,wBAAwB,EAAE,qCAAqC;YAC/D,qCAAqC,IAAI,kDAAkD,CAC5F,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAA;IAC3F,OAAO,CACL,kCAAkC,EAAE,WAAW,OAAO,IAAI;QAC1D,qGAAqG;QACrG,
|
|
1
|
+
{"version":3,"file":"host-submit.js","sourceRoot":"","sources":["../../src/commands/host-submit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Update the local remote-tracking ref only when the fetch remote maps this branch and repo. */
|
|
2
|
+
export declare function updateTrackingRef(remote: string, branch: string, commit: string, pushedRepo: string, cwd?: string): void;
|
|
3
|
+
export declare const PUSH_USAGE = "Usage: gcb push [<remote> [<branch>]] [options]\n\nPush a branch from the host, using the host's account. The token never crosses into this\ncontainer. The default remote is origin, and the default branch is the current one.\n\n --force Overwrite the remote branch\n --force-with-lease Overwrite only if the remote branch still matches the tracking ref\n --as-user Use the host broker's own gh account\n --as-user=<login> Use ~/.config/gh-<login> on the host\n --proxy <url> Use this proxy for the host git call\n --no-proxy Reach GitHub directly for the host git call\n -h, --help Show this help\n";
|
|
4
|
+
/**
|
|
5
|
+
* Parse `gcb push` and submit one host-side push request.
|
|
6
|
+
*
|
|
7
|
+
* @param argv - Arguments after `push`.
|
|
8
|
+
* @returns The process exit code.
|
|
9
|
+
*/
|
|
10
|
+
/** The normalized argv plus the --as-user spelling it contained. */
|
|
11
|
+
export interface AsUserScan {
|
|
12
|
+
readonly argv: readonly string[];
|
|
13
|
+
readonly account?: string;
|
|
14
|
+
readonly bare: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** Scan --as-user before parseArgs can consume the following positional as its value. */
|
|
17
|
+
export declare function scanAsUser(argv: readonly string[]): AsUserScan;
|
|
18
|
+
export declare function runPush(argv: readonly string[]): Promise<number>;
|
|
19
|
+
//# sourceMappingURL=push.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AA4BA,iGAAiG;AACjG,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAsB,GAC1B,IAAI,CAoCN;AAyED,eAAO,MAAM,UAAU,0pBAYtB,CAAA;AAkBD;;;;;GAKG;AACH,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACvB;AAED,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAuB9D;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4FtE"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `push` — push a branch from the host, without a token entering the container.
|
|
3
|
+
*
|
|
4
|
+
* The container owns the checkout and its commits; the host broker owns the credentials. The
|
|
5
|
+
* request therefore names only a repository and a branch, and the host rebuilds the HTTPS URL and
|
|
6
|
+
* runs git with its own gh account. No remote URL or refspec from the container is trusted.
|
|
7
|
+
*/
|
|
8
|
+
import { execFileSync, spawnSync } from 'node:child_process';
|
|
9
|
+
import { accessSync, constants as fsConstants, existsSync } from 'node:fs';
|
|
10
|
+
import { resolve } from 'node:path';
|
|
11
|
+
import { ANSWER_TIMEOUT_MS, BRANCH, LOGIN, fail, parseArgs, say } from 'gcb-core';
|
|
12
|
+
import { submitToHostBroker } from './host-submit.js';
|
|
13
|
+
import { remoteRepo } from './remotes.js';
|
|
14
|
+
/** The local remote-tracking ref, or undefined when the branch was never fetched. */
|
|
15
|
+
function trackingRef(remote, branch) {
|
|
16
|
+
try {
|
|
17
|
+
return execFileSync('git', ['rev-parse', '--verify', `refs/remotes/${remote}/${branch}`], {
|
|
18
|
+
encoding: 'utf8',
|
|
19
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
20
|
+
}).trim();
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** Update the local remote-tracking ref only when the fetch remote maps this branch and repo. */
|
|
27
|
+
export function updateTrackingRef(remote, branch, commit, pushedRepo, cwd = process.cwd()) {
|
|
28
|
+
const fetched = remoteRepo(remote, cwd);
|
|
29
|
+
if (fetched === undefined || `${fetched.owner}/${fetched.repo}` !== pushedRepo) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
let specs;
|
|
33
|
+
try {
|
|
34
|
+
specs = execFileSync('git', ['config', '--get-all', `remote.${remote}.fetch`], {
|
|
35
|
+
cwd,
|
|
36
|
+
encoding: 'utf8',
|
|
37
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
38
|
+
})
|
|
39
|
+
.trim()
|
|
40
|
+
.split('\n')
|
|
41
|
+
.map(line => line.trim())
|
|
42
|
+
.filter(line => line !== '');
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
for (const spec of specs) {
|
|
48
|
+
const [source, destination] = spec.replace(/^\+/, '').split(':');
|
|
49
|
+
if (source === undefined || destination === undefined) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (source !== 'refs/heads/*' || !destination.startsWith(`refs/remotes/${remote}/`)) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const tracking = destination.replace('*', branch);
|
|
56
|
+
if (!tracking.includes('*')) {
|
|
57
|
+
try {
|
|
58
|
+
execFileSync('git', ['update-ref', tracking, commit], { cwd, stdio: 'ignore' });
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// A read-only or missing tracking ref is not a reason to fail a completed push.
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/** The executable container pre-push hook, when there is one. */
|
|
67
|
+
function prePushPath() {
|
|
68
|
+
let hook;
|
|
69
|
+
try {
|
|
70
|
+
hook = execFileSync('git', ['rev-parse', '--git-path', 'hooks/pre-push'], {
|
|
71
|
+
encoding: 'utf8',
|
|
72
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
73
|
+
}).trim();
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
const path = resolve(hook);
|
|
79
|
+
if (!existsSync(path)) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
accessSync(path, fsConstants.X_OK);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
return path;
|
|
89
|
+
}
|
|
90
|
+
/** Run the container hook; the host never runs container-owned hooks. */
|
|
91
|
+
function runPrePush(path, remote, repo, branch, commit, host, tip) {
|
|
92
|
+
let url = `https://${host}/${repo}.git`;
|
|
93
|
+
try {
|
|
94
|
+
url =
|
|
95
|
+
execFileSync('git', ['remote', 'get-url', '--push', remote], {
|
|
96
|
+
encoding: 'utf8',
|
|
97
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
98
|
+
}).trim() || url;
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Use the rebuilt URL when the remote has no readable push URL.
|
|
102
|
+
}
|
|
103
|
+
let root = process.cwd();
|
|
104
|
+
try {
|
|
105
|
+
root = execFileSync('git', ['rev-parse', '--show-toplevel'], {
|
|
106
|
+
encoding: 'utf8',
|
|
107
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
108
|
+
}).trim();
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// Keep the caller's directory when there is no work tree.
|
|
112
|
+
}
|
|
113
|
+
const result = spawnSync(path, [remote, url], {
|
|
114
|
+
cwd: root,
|
|
115
|
+
encoding: 'utf8',
|
|
116
|
+
input: `refs/heads/${branch} ${commit} refs/heads/${branch} ${tip}\n`,
|
|
117
|
+
});
|
|
118
|
+
if (result.status !== 0) {
|
|
119
|
+
const reason = (result.stderr || result.stdout || 'pre-push hook refused').trim();
|
|
120
|
+
fail(reason.slice(0, 300));
|
|
121
|
+
}
|
|
122
|
+
if (result.stdout) {
|
|
123
|
+
process.stdout.write(result.stdout);
|
|
124
|
+
}
|
|
125
|
+
if (result.stderr) {
|
|
126
|
+
process.stderr.write(result.stderr);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
const KNOWN_FLAGS = new Set(['help', 'as-user', 'force', 'force-with-lease', 'proxy', 'no-proxy']);
|
|
130
|
+
export const PUSH_USAGE = `Usage: gcb push [<remote> [<branch>]] [options]
|
|
131
|
+
|
|
132
|
+
Push a branch from the host, using the host's account. The token never crosses into this
|
|
133
|
+
container. The default remote is origin, and the default branch is the current one.
|
|
134
|
+
|
|
135
|
+
--force Overwrite the remote branch
|
|
136
|
+
--force-with-lease Overwrite only if the remote branch still matches the tracking ref
|
|
137
|
+
--as-user Use the host broker's own gh account
|
|
138
|
+
--as-user=<login> Use ~/.config/gh-<login> on the host
|
|
139
|
+
--proxy <url> Use this proxy for the host git call
|
|
140
|
+
--no-proxy Reach GitHub directly for the host git call
|
|
141
|
+
-h, --help Show this help
|
|
142
|
+
`;
|
|
143
|
+
/** The checked-out branch, refusing a detached HEAD rather than guessing a ref. */
|
|
144
|
+
function currentBranch() {
|
|
145
|
+
try {
|
|
146
|
+
const branch = execFileSync('git', ['symbolic-ref', '--short', 'HEAD'], {
|
|
147
|
+
encoding: 'utf8',
|
|
148
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
149
|
+
}).trim();
|
|
150
|
+
if (branch !== '') {
|
|
151
|
+
return branch;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// Fall through to the refusal.
|
|
156
|
+
}
|
|
157
|
+
fail('no current branch: pass a branch positional, or check out a branch');
|
|
158
|
+
}
|
|
159
|
+
/** Scan --as-user before parseArgs can consume the following positional as its value. */
|
|
160
|
+
export function scanAsUser(argv) {
|
|
161
|
+
let account;
|
|
162
|
+
let bare = false;
|
|
163
|
+
const normalized = [];
|
|
164
|
+
for (const argument of argv) {
|
|
165
|
+
if (argument === '--as-user') {
|
|
166
|
+
bare = true;
|
|
167
|
+
}
|
|
168
|
+
else if (argument.startsWith('--as-user=')) {
|
|
169
|
+
if (account !== undefined) {
|
|
170
|
+
fail('--as-user=<login> may only be given once');
|
|
171
|
+
}
|
|
172
|
+
account = argument.slice('--as-user='.length);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
normalized.push(argument);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (bare && account !== undefined) {
|
|
179
|
+
fail('--as-user cannot be both bare and given a login');
|
|
180
|
+
}
|
|
181
|
+
if (bare || account !== undefined) {
|
|
182
|
+
normalized.push('--as-user');
|
|
183
|
+
}
|
|
184
|
+
return { argv: normalized, account, bare };
|
|
185
|
+
}
|
|
186
|
+
export async function runPush(argv) {
|
|
187
|
+
const scan = scanAsUser(argv);
|
|
188
|
+
const { account, bare: bareAsUser } = scan;
|
|
189
|
+
const normalized = scan.argv;
|
|
190
|
+
const args = parseArgs(normalized, {
|
|
191
|
+
booleans: ['help', 'as-user', 'no-proxy', 'force', 'force-with-lease'],
|
|
192
|
+
});
|
|
193
|
+
if (args.has('help')) {
|
|
194
|
+
say(PUSH_USAGE);
|
|
195
|
+
return 0;
|
|
196
|
+
}
|
|
197
|
+
for (const name of args.names) {
|
|
198
|
+
if (!KNOWN_FLAGS.has(name)) {
|
|
199
|
+
fail('unknown option --' + name + ' for gcb push');
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (account !== undefined && !LOGIN.test(account)) {
|
|
203
|
+
fail(`--as-user must be a GitHub login or no value, got ${JSON.stringify(account)}`);
|
|
204
|
+
}
|
|
205
|
+
if (args.has('force') && args.has('force-with-lease')) {
|
|
206
|
+
fail('--force and --force-with-lease are mutually exclusive');
|
|
207
|
+
}
|
|
208
|
+
const proxyValues = args.values('proxy');
|
|
209
|
+
if (args.has('proxy') && (proxyValues.length === 0 || args.value('proxy') === '')) {
|
|
210
|
+
fail('--proxy needs a value');
|
|
211
|
+
}
|
|
212
|
+
if (args.has('no-proxy') && (args.has('proxy') || proxyValues.length > 0)) {
|
|
213
|
+
fail('--proxy and --no-proxy are mutually exclusive');
|
|
214
|
+
}
|
|
215
|
+
const proxy = args.has('no-proxy') ? null : args.value('proxy');
|
|
216
|
+
if (args.positionals.length > 2) {
|
|
217
|
+
fail('usage: gcb push [<remote> [<branch>]]');
|
|
218
|
+
}
|
|
219
|
+
const remote = args.positionals[0] ?? 'origin';
|
|
220
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(remote)) {
|
|
221
|
+
fail(`not a usable remote name: ${JSON.stringify(remote)}`);
|
|
222
|
+
}
|
|
223
|
+
const found = remoteRepo(remote, process.cwd(), true);
|
|
224
|
+
if (found === undefined) {
|
|
225
|
+
fail(`remote ${JSON.stringify(remote)} does not name an owner/repository; configure a canonical remote` +
|
|
226
|
+
(bareAsUser && LOGIN.test(remote) ? ` (for an account use --as-user=${remote})` : ''));
|
|
227
|
+
}
|
|
228
|
+
const repo = `${found.owner}/${found.repo}`;
|
|
229
|
+
const host = found.host;
|
|
230
|
+
const branch = args.positionals[1] ?? currentBranch();
|
|
231
|
+
if (!BRANCH.test(branch) || branch.includes('..') || branch.includes(':')) {
|
|
232
|
+
fail(`branch is not usable: ${JSON.stringify(branch)}`);
|
|
233
|
+
}
|
|
234
|
+
let commit;
|
|
235
|
+
try {
|
|
236
|
+
commit = execFileSync('git', ['rev-parse', '--verify', `refs/heads/${branch}^{commit}`], {
|
|
237
|
+
encoding: 'utf8',
|
|
238
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
239
|
+
}).trim();
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
fail(`cannot resolve ${branch} to a commit`);
|
|
243
|
+
}
|
|
244
|
+
const tracked = trackingRef(remote, branch);
|
|
245
|
+
const tip = tracked ?? '0'.repeat(commit.length);
|
|
246
|
+
const expected = args.has('force-with-lease') ? tip : undefined;
|
|
247
|
+
const hook = prePushPath();
|
|
248
|
+
if (hook !== undefined) {
|
|
249
|
+
runPrePush(hook, remote, repo, branch, commit, host, tip);
|
|
250
|
+
}
|
|
251
|
+
const code = await submitToHostBroker({
|
|
252
|
+
kind: 'push',
|
|
253
|
+
repo,
|
|
254
|
+
host,
|
|
255
|
+
branch,
|
|
256
|
+
remote,
|
|
257
|
+
commit,
|
|
258
|
+
...(args.has('force') ? { force: true } : {}),
|
|
259
|
+
...(expected === undefined ? {} : { forceWithLease: true, expected }),
|
|
260
|
+
session: 'push',
|
|
261
|
+
pid: process.pid,
|
|
262
|
+
...(account === undefined ? {} : { account }),
|
|
263
|
+
...(proxy === undefined ? {} : { proxy }),
|
|
264
|
+
}, answer => `pushed ${branch} to ${repo}${answer.url === undefined ? '' : `: ${answer.url}`}${account === undefined ? '' : ` as ${account}`}`, ANSWER_TIMEOUT_MS);
|
|
265
|
+
if (code === 0) {
|
|
266
|
+
updateTrackingRef(remote, branch, commit, repo);
|
|
267
|
+
}
|
|
268
|
+
return code;
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=push.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAkBvC,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAkBvC,eAAO,MAAM,WAAW,QA0B2C,CAAA;AAcnE,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAgE3F;AAED,eAAO,MAAM,aAAa,EAAE,cAK3B,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -32,6 +32,7 @@ Commands
|
|
|
32
32
|
${cataloguedSubcommands('pr')}
|
|
33
33
|
run Run a workflow run action: ${cataloguedSubcommands('run')}
|
|
34
34
|
issue Run an issue action: ${cataloguedSubcommands('issue')}
|
|
35
|
+
push Push the current branch from the host, without a token here
|
|
35
36
|
repo Create a fork as a person: fork
|
|
36
37
|
gh Run a catalogued GitHub action through the broker
|
|
37
38
|
|
|
@@ -102,6 +103,8 @@ export async function runClient(argv, primary) {
|
|
|
102
103
|
return (await import('./commands/gh.js')).runGh(['issue', ...rest]);
|
|
103
104
|
}
|
|
104
105
|
return (await choose()).run(['issue', ...rest]);
|
|
106
|
+
case 'push':
|
|
107
|
+
return (await import('./commands/push.js')).runPush(rest);
|
|
105
108
|
case 'repo':
|
|
106
109
|
return (await import('./commands/repo.js')).runRepo(rest);
|
|
107
110
|
case 'gh':
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAKtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC;;;;;;;;GAQG;AACH,SAAS,qBAAqB,CAAC,MAAc;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;SAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;SAC9C,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAChC,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;eASZ,qBAAqB,CAAC,IAAI,CAAC;0CACA,qBAAqB,CAAC,KAAK,CAAC;oCAClC,qBAAqB,CAAC,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gcb-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Container-side gcb client: credential helper, setup, and socket-backed commands.",
|
|
6
6
|
"repository": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"lib"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"gcb-core": "0.
|
|
30
|
+
"gcb-core": "0.9.0"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public",
|