|  | 
| 1 | 1 | # Bazel Central Registry publication | 
| 2 | 2 | 
 | 
| 3 |  | -The [Publish to BCR GitHub app](https://github.com/bazel-contrib/publish-to-bcr) | 
| 4 |  | -uses these configuration files for publishing Bazel modules to the [Bazel | 
| 5 |  | -Central Registry (BCR)](https://registry.bazel.build/). | 
|  | 3 | +[.github/workflows/publish-to-bcr.yml](../.github/workflows/publish-to-bcr.yml) | 
|  | 4 | +uses these files to configure the [Publish to BCR]( | 
|  | 5 | +https://github.com/bazel-contrib/publish-to-bcr) workflow for publishing to the | 
|  | 6 | +[Bazel Central Registry (BCR)](https://registry.bazel.build/). | 
| 6 | 7 | 
 | 
| 7 | 8 | - [Publish to BCR workflow setup]( | 
| 8 |  | -    https://github.com/bazel-contrib/publish-to-bcr/tree/main/README.md#setup) | 
|  | 9 | +    https://github.com/bazel-contrib/publish-to-bcr?tab=readme-ov-file#setup) | 
| 9 | 10 | - [.bcr/ templates]( | 
| 10 | 11 |     https://github.com/bazel-contrib/publish-to-bcr/tree/main/templates) | 
|  | 12 | +- [.github/workflows/publish.yaml reusable workflow]( | 
|  | 13 | +    https://github.com/bazel-contrib/publish-to-bcr/blob/main/.github/workflows/publish.yaml) | 
| 11 | 14 | 
 | 
| 12 |  | -Related documentation: | 
|  | 15 | +Notice that the setup instructions suggest saving the Personal Access Token as | 
|  | 16 | +`PUBLISH_TOKEN`. We save it as `BCR_PUBLISH_TOKEN` instead, as inspired by | 
|  | 17 | +aspect-build/rules_lint#529, to make this value more self documenting. | 
|  | 18 | + | 
|  | 19 | +## Provenance attestations | 
|  | 20 | + | 
|  | 21 | +This workflow also produces attestations required by the [Supply chain Levels | 
|  | 22 | +for Software Artifacts (SLSA)](https://slsa.dev/) framework for secure supply | 
|  | 23 | +chain provenance. | 
|  | 24 | + | 
|  | 25 | +Examples: | 
|  | 26 | + | 
|  | 27 | +<!-- Replace these with rules_scala examples once they're available. --> | 
|  | 28 | +- [aspect-build/rules_lint v1.3.4 release and publish run with attestations]( | 
|  | 29 | +    https://github.com/aspect-build/rules_lint/actions/runs/14410869652/attempts/1) | 
|  | 30 | +- [aspect-build/rules_lint v1.3.4 attestations]( | 
|  | 31 | +    https://github.com/aspect-build/rules_lint/attestations/6280291) | 
|  | 32 | +- [aspect-build/rules_lint attestations]( | 
|  | 33 | +    https://github.com/aspect-build/rules_lint/attestations) | 
|  | 34 | + | 
|  | 35 | +## Related documentation | 
| 13 | 36 | 
 | 
| 14 | 37 | - [bazelbuild/bazel-central-registry]( | 
| 15 | 38 |     https://github.com/bazelbuild/bazel-central-registry) | 
|  | 39 | +- [SLSA: Provenance](https://slsa.dev/spec/v1.0/provenance) | 
|  | 40 | +- [in-toto](https://in-toto.io/) | 
| 16 | 41 | - [GitHub Actions](https://docs.github.com/actions) | 
|  | 42 | +  - [Security for GitHub Actions]( | 
|  | 43 | +      https://docs.github.com/en/actions/security-for-github-actions) | 
|  | 44 | +    - [Using secrets in a workflow]( | 
|  | 45 | +          https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions#using-secrets-in-a-workflow) | 
|  | 46 | +    - [Using artifact attestations]( | 
|  | 47 | +          https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations) | 
|  | 48 | +  - [Writing Workflows]( | 
|  | 49 | +      https://docs.github.com/en/actions/writing-workflows) | 
|  | 50 | +    - [Accessing contextual information about workflow runs: 'secrets' context]( | 
|  | 51 | +          https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs#secrets-context) | 
|  | 52 | +    - [Workflow syntax for GitHub Action: 'on.workflow_call.secrets']( | 
|  | 53 | +          https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#onworkflow_callsecrets) | 
|  | 54 | +  - [Sharing automations](https://docs.github.com/en/actions/sharing-automations) | 
|  | 55 | +    - [Passing inputs and secrets to a reusable workflow]( | 
|  | 56 | +          https://docs.github.com/en/actions/sharing-automations/reusing-workflows#passing-inputs-and-secrets-to-a-reusable-workflow) | 
|  | 57 | +- [actions/attest-build-provenance]( | 
|  | 58 | +    https://github.com/actions/attest-build-provenance) | 
|  | 59 | +- [in-toto/attestation](https://github.com/in-toto/attestation) | 
|  | 60 | +- [slsa-framework/slsa-verifier]( | 
|  | 61 | +    https://github.com/slsa-framework/slsa-verifier) | 
|  | 62 | + | 
|  | 63 | +## Inspiration | 
|  | 64 | + | 
|  | 65 | +Originally based on the examples from aspect-build/rules_lint#498 and | 
|  | 66 | +aspect-build/rules_lint#501. See also: | 
|  | 67 | + | 
|  | 68 | +- bazelbuild/bazel-central-registry#4060 | 
|  | 69 | +- bazelbuild/bazel-central-registry#4146 | 
|  | 70 | +- slsa-framework/slsa-verifier#840 | 
0 commit comments