@colony2/gitvend 0.0.2 → 0.0.3
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/README.md +13 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Implemented for GitHub and GitHub Enterprise-compatible APIs. Client and upstrea
|
|
|
6
6
|
|
|
7
7
|
This guide takes an operator from configuring a gateway to giving an agent a credential, cloning a repository, and pushing an allowed branch.
|
|
8
8
|
|
|
9
|
-
[Install](#install) · [Set up the gateway](#set-up-the-gateway) · [Issue a credential](#issue-an-agent-credential) · [Agent usage](#use-gitvend-as-an-agent) · [Permissions](#permission-strings) · [Operations](#provisioning-and-audit) · [Troubleshooting](#troubleshooting) · [CLI reference](#cli-reference)
|
|
9
|
+
[Install](#install) · [Docker Compose](docs/docker-compose.md) · [Set up the gateway](#set-up-the-gateway) · [Issue a credential](#issue-an-agent-credential) · [Agent usage](#use-gitvend-as-an-agent) · [Permissions](#permission-strings) · [Operations](#provisioning-and-audit) · [Troubleshooting](#troubleshooting) · [CLI reference](#cli-reference)
|
|
10
10
|
|
|
11
11
|
## How credentials and permissions fit together
|
|
12
12
|
|
|
@@ -42,6 +42,15 @@ gitvend version
|
|
|
42
42
|
|
|
43
43
|
For a Go installation, add `$(go env GOPATH)/bin` to your `PATH` if needed. The npm wrapper requires Node 22+ and `tar`. Install scripts must be enabled so it can download the binary from GitHub Releases. Release builds report their release version; local builds report their Git revision when available.
|
|
44
44
|
|
|
45
|
+
### Docker Compose
|
|
46
|
+
|
|
47
|
+
The [Compose deployment guide](docs/docker-compose.md) covers a container image,
|
|
48
|
+
automatic signing-key initialization on persistent volumes, a mounted GitHub
|
|
49
|
+
token, and on-demand JWT issuance. Only the gateway stays running; the private
|
|
50
|
+
signing key is available to initialization and issuer containers, never mounted
|
|
51
|
+
into the gateway. The default stack binds HTTP to host loopback for use behind
|
|
52
|
+
an HTTPS reverse proxy.
|
|
53
|
+
|
|
45
54
|
## Build and verify
|
|
46
55
|
|
|
47
56
|
Requires Go 1.25+ and Git for the integration tests. Supported server platforms are Linux and macOS. Run these commands from the source checkout's root:
|
|
@@ -362,7 +371,7 @@ For commands that take flags, use `-h` to list them, for example `gitvend sign -
|
|
|
362
371
|
| --- | --- |
|
|
363
372
|
| `gitvend version` | Show the release version or development build identity. |
|
|
364
373
|
| `gitvend serve -config gitvend.json` | Start the gateway. |
|
|
365
|
-
| `gitvend keygen -private signing.key -public signing.pub` | Generate a new issuer key pair without overwriting existing files. |
|
|
374
|
+
| `gitvend keygen -private signing.key -public signing.pub` | Generate a new issuer key pair without overwriting existing files. Add `-if-missing` to validate/reuse persistent keys or recover a missing public key. Parent directories must exist. |
|
|
366
375
|
| `gitvend sign` | Issue a JWT; requires `-key`, `-kid`, `-issuer`, `-subject` and a grant. Use repeated `-permission` **or** `-grant`, not both; `-output` writes an atomic token file. |
|
|
367
376
|
| `gitvend credential` | Git helper; specify `-host` and exactly one of `-token-file` or `-token-env`, followed by `get`, `store` or `erase`. |
|
|
368
377
|
| `gitvend explain` | Explain explicit `-permission` rules for a `-repo`, optional `-ref`, and `-action`. Ref values are fully qualified, such as `refs/heads/main`. |
|
|
@@ -381,12 +390,12 @@ The original requirements and implementation tradeoffs are in [the design](docs/
|
|
|
381
390
|
|
|
382
391
|
## Release automation
|
|
383
392
|
|
|
384
|
-
The [release workflow](.github/workflows/release.yaml) follows [c2j's release pattern](https://github.com/colony-2/c2j/blob/main/.github/workflows/release.yaml). Successful pushes to `main` in the `colony-2` organization run the test suite, automatically bump and push a version tag (patch by default), build four binaries, and publish GitHub release archives and checksums. It then publishes `@colony2/gitvend` to npm after installing and smoke-testing the packed wrapper against the published assets.
|
|
393
|
+
The [release workflow](.github/workflows/release.yaml) follows [c2j's release pattern](https://github.com/colony-2/c2j/blob/main/.github/workflows/release.yaml). Successful pushes to `main` in the `colony-2` organization run the test suite, automatically bump and push a version tag (patch by default), build four binaries, and publish GitHub release archives and checksums. It then publishes `@colony2/gitvend` to npm after installing and smoke-testing the packed wrapper against the published assets. It also publishes Linux amd64/arm64 container images to `ghcr.io/colony-2/gitvend` with the release tag and `latest`, using `GITHUB_TOKEN` with package-write permission.
|
|
385
394
|
|
|
386
395
|
GitHub release/tag publication uses the workflow's `GITHUB_TOKEN`. Configure npm trusted publishing for `colony-2/gitvend`, workflow `release.yaml`, or provide an `NPM_TOKEN` with publishing access to `@colony2/gitvend`. The npm package must exist and its trusted publisher must be configured before token-free publication can work; bootstrap it with a token if needed.
|
|
387
396
|
|
|
388
397
|
macOS signing/notarization is optional. Set all five secrets to enable it: `MACOS_SIGN_P12`, `MACOS_SIGN_PASSWORD`, `APPLE_API_ISSUER`, `APPLE_API_KEY_ID`, and `APPLE_API_KEY`. No signing secrets skips this step; a partial configuration fails the build. Signing requires the matching Apple certificate and notarization credentials.
|
|
389
398
|
|
|
390
|
-
The reusable [test workflow](.github/workflows/test.yml) runs Go race tests, vet, parser fuzzing
|
|
399
|
+
The reusable [test workflow](.github/workflows/test.yml) runs Go race tests, vet, parser fuzzing, npm installer tests, and the Docker Compose smoke test. Run the installer tests locally with `npm test --prefix npm/gitvend` and the container checks with `make test-compose`. Release archive smoke tests also check all checksums and run the native binary's `version` command before upload.
|
|
391
400
|
|
|
392
401
|
Copied release tooling retains its upstream Apache-2.0 license and attribution in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). This repository does not yet declare a project-wide license; npm metadata uses `UNLICENSED`.
|
package/package.json
CHANGED