You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You can use the [slsa-verifier](#verify-provenance)to verify the provenance.
93
97
94
98
### Hall of Fame
95
99
@@ -101,26 +105,23 @@ Below is a non-exhaustive list of projects that use the builders in this reposit
101
105
102
106
#### Builder Creation
103
107
104
-
Several builders have been built using the "Build Your Own Builder" (BYOB):
108
+
Several builders have been built using the ["Build Your Own Builder" (BYOB) framework](#build-your-own-builder):
105
109
106
110
1.[nodejs builder](https://github.com/slsa-framework/slsa-github-generator/tree/main/internal/builders/nodejs#readme), by @ianlewis
107
111
2.[JReleaser builder](https://github.com/jreleaser/release-action/tree/java#slsa-builder), by @aalmiray
108
112
3.[Maven builder](https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/maven/README.md), by @AdamKorcz
109
113
4.[Gradle builder](https://github.com/slsa-framework/slsa-github-generator/tree/main/internal/builders/gradle/README.md), by @AdamKorcz
110
114
5. Coming soon! [Bazel builder](https://github.com/slsa-framework/slsa-github-generator/tree/main/internal/builders/bazel/README.md), by @enteraga6
111
115
112
-
## Roadmap
116
+
## Generate provenance
113
117
114
-
The project roadmap is tracked via milestones. You can track progress and open
115
-
issues via the [milestones page](https://github.com/slsa-framework/slsa-github-generator/milestones?direction=asc&sort=due_date&state=open).
116
-
Each milestone includes a description of what is being worked on and a rough
117
-
timeline for completion.
118
-
119
-
## Generation of provenance
120
-
121
-
Below we describe the various builders and generators in this repository. They let you build and / or generate non-forgeable provenance
118
+
Below we describe the various [builders](#builders) and [generators](#generators) in this repository. They build and / or generate non-forgeable provenance
122
119
using a trusted / isolated re-usable workflow. You can read up on the design in our [technical design document](#technical-design).
123
120
121
+
To select the right option to geneate provenance for your use case, take into account the programming language and build toolchain you already use, e.g. `go`, `mvn`, `bazel`, etc. Select a [builder](#builders) for your ecosystem.
122
+
For example, if you use Go, use the [Go builder](internal/builders/go/README.md). If you use Java and build Maven packages, use the [Maven builder](internal/builders/maven/README.md), and so on.
123
+
If your release scripts are more complex than what the builder supports; or if there is no builder for your ecosystem, use a provenance [generator](#generators) instead.
124
+
124
125
### Referencing SLSA builders and generators
125
126
126
127
At present, the GitHub Actions provided in this repository as builders and generators **MUST** be referenced
@@ -134,54 +135,50 @@ For guidance on how to configure renovate see [RENOVATE.md](RENOVATE.md).
134
135
135
136
### Builders
136
137
137
-
Build platforms build and generate provenance. They let you meet the
138
+
Builders build and generate provenance. They let you meet the
138
139
[provenance generation](https://slsa.dev/spec/v1.0/requirements#provenance-generation) and
requirements for [SLSA Build level 3 and above](https://slsa.dev/spec/v1.0/levels).
141
142
142
143
This repository hosts the following builders:
143
144
144
-
1.[Go Builder](internal/builders/go/README.md). **Status**: [available since v1.0.0](https://github.com/slsa-framework/slsa-github-generator/milestone/1). This builder builds and generates provenance for your [Go](https://go.dev/) projects.
**Status**: [Beta since v1.6.0](https://github.com/slsa-framework/slsa-github-generator/milestone/8).
147
-
[Expected GA release Sept 2023](https://github.com/slsa-framework/slsa-github-generator/milestone/17).
148
-
3.[Container-based Builder](internal/builders/docker/README.md). **Status**: [Beta release since v1.7.0](https://github.com/slsa-framework/slsa-github-generator/milestone/4). This builder builds arbitrary artifacts by executing a user-supplied container image.
149
-
4.[Maven builder](internal/builders/maven/README.md). **Status**: [Beta since v1.8.0](https://github.com/slsa-framework/slsa-github-generator/milestone/14). This builder builds [Maven](https://maven.apache.org/) packages. The package and its attestations can be uploaded to [Maven central](https://search.maven.org).
150
-
5.[Gradle builder](internal/builders/gradle/README.md). **Status**: [Beta since v1.8.0](https://github.com/slsa-framework/slsa-github-generator/milestone/15). This builder builds [Gradle](https://gradle.org/) projects. The Maven package and its attestations can be uploaded to Maven central.
|[Go](https://go.dev/) projects |[Go Builder](internal/builders/go/README.md)| Builds and generates provenance for Go projects |[available since v1.0.0](https://github.com/slsa-framework/slsa-github-generator/milestone/1)|
148
+
| [Node.js](https://nodejs.org) projects | [Node.js Builder](internal/builders/nodejs/README.md) | Builds and generates provenance for npm packages | [Beta since v1.6.0](https://github.com/slsa-framework/slsa-github-generator/milestone/8). [Expected GA release Sept 2023](https://github.com/slsa-framework/slsa-github-generator/milestone/17)
149
+
|[Maven](https://maven.apache.org/) projects |[Maven builder](internal/builders/maven/README.md)| Build Maven packages and generates provenance. Can be uploaded to [Maven central](https://search.maven.org)|[Beta since v1.8.0](https://github.com/slsa-framework/slsa-github-generator/milestone/14)|
150
+
|[Gradle](https://gradle.org/) projects |[Gradle builder](internal/builders/gradle/README.md)| Build Gradle projects and generates provenance. Can be uploaded to [Maven central](https://search.maven.org)|[Beta since v1.8.0](https://github.com/slsa-framework/slsa-github-generator/milestone/15)|
151
+
|[Bazel](https://bazel.build/) projects |[Bazel builder](internal/builders/bazel/README.md)| Builds [Bazel](https://bazel.build/) projects and generates provenance |[Beta release August 2023](https://github.com/slsa-framework/slsa-github-generator/milestone/16)|
152
+
|[docker](https://www.docker.com/) images | Container Builder | Builds docker containers and generates provenance. The generated provenance is compatible with [cosign](https://github.com/sigstore/cosign)'s attestation format |[WIP](https://github.com/slsa-framework/slsa-github-generator/milestone/5)|
153
+
| Any |[Container-based Builder](internal/builders/docker/README.md)| Builds projects whose build pipeline is defined with a Dockerfile |[Beta since v1.7.0](https://github.com/slsa-framework/slsa-github-generator/milestone/16)|
156
154
157
155
There are other available builders using this repository's [BYOB framework](#build-your-own-builder) and not hosted in this repository:
158
156
159
-
1.[JReleaser builder](https://github.com/jreleaser/release-action/tree/java#slsa-builder). Lets you build and generate provenance using [JReleaser](https://jreleaser.org/).
|[JReleaser](https://jreleaser.org/) projects |[JReleaser builder](https://github.com/jreleaser/release-action/tree/java#slsa-builder)| Builds and generates provenance using [JReleaser](https://jreleaser.org/)|[Beta since v1.8.0](https://github.com/slsa-framework/slsa-github-generator/milestone/16)|
160
160
161
-
If you would rather build your project yourself, use the generators instead as explained in the next section.
161
+
If none of these options fit your needs, use a [generator](#generators)as described below:
162
162
163
-
### Provenance-only generators
163
+
### Generators
164
164
165
-
Provenance-only generators let you build your artifact, and only generate provenance for you.
166
-
They let you meet the [provenance generation](https://slsa.dev/spec/v1.0/requirements#provenance-generation) requirements
167
-
for [SLSA Build level 3](https://slsa.dev/spec/v1.0/levels).
165
+
Generators only generate provenance for you. They let you meet the
166
+
[provenance generation](https://slsa.dev/spec/v1.0/requirements#provenance-generation) and
| file (binary, package tarball etc.) |[Generic generator](internal/builders/generic/README.md)| Generates provenance for arbitrary file-based artifacts, for any ecosystem and programming language |[available since v1.2.0](https://github.com/slsa-framework/slsa-github-generator/milestone/2)|
177
+
| container | [Container generator](internal/builders/container/README.md) | Generate provenance for container images. The generated provenance is compatible with [cosign](https://github.com/sigstore/cosign)'s attestation format. | [available since v1.4.0](https://github.com/slsa-framework/slsa-github-generator/milestone/3)
181
178
182
-
## Verification of provenance
179
+
## Verify provenance
183
180
184
-
To verify the provenance, use the [github.com/slsa-framework/slsa-verifier](https://github.com/slsa-framework/slsa-verifier) project.
181
+
To verify provenance created by any of the builders in this repository, use the [github.com/slsa-framework/slsa-verifier](https://github.com/slsa-framework/slsa-verifier) project.
185
182
186
183
### Installation
187
184
@@ -197,7 +194,16 @@ A command line example is provided in [slsa-framework/slsa-verifier#example](htt
197
194
198
195
## Build Your Own Builder
199
196
200
-
If you want to build your own builder, use the [BYOB framework](BYOB.md). The framework lets you create your own SLSA3 builder on GitHub. For example, you can wrap an existing GitHub Action into a SLSA3 builder. For verification, your users can use the [slsa-verifier](#verification-of-provenance).
197
+
Use the [BYOB framework](BYOB.md) to create your own SLSA builder on GitHub. If you have an existing GitHub Action, you can use the BYOB framework to wrap it into a SLSA builder.
198
+
This will harden the build process by runing the Action in an isolated environment. Generated artifacts will meet Build Level 3 expectations and produce Build Level 3 provenance.
199
+
To verify the provenance, your users can use the [slsa-verifier](#verification-of-provenance).
200
+
201
+
## Project Roadmap
202
+
203
+
The project roadmap is tracked via milestones. You can track progress and open
204
+
issues via the [milestones page](https://github.com/slsa-framework/slsa-github-generator/milestones?direction=asc&sort=due_date&state=open).
205
+
Each milestone includes a description of what is being worked on and a rough
0 commit comments