mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-16 11:58:51 +00:00
Use PyPI Trusted Publishing to publish langchain packages. (#9467)
Trusted Publishing is the current best practice for publishing Python packages. Rather than long-lived secret keys, it uses OpenID Connect (OIDC) to allow our GitHub runner to directly authenticate itself to PyPI and get a short-lived publishing token. This locks down publishing quite a bit: - There's no long-lived publish key to steal anymore. - Publishing is *only* allowed via the *specifically designated* GitHub workflow in the designated repo. It also is operationally easier: no keys means there's nothing that needs to be periodically rotated, nothing to worry about leaking, and nobody can accidentally publish a release from their laptop because they happened to have PyPI keys set up. After this gets merged, we'll need to configure PyPI to start expecting trusted publishing. It's only a few clicks and should only take a minute; instructions are here: https://docs.pypi.org/trusted-publishers/adding-a-publisher/ More info: - https://blog.pypi.org/posts/2023-04-20-introducing-trusted-publishers/ - https://github.com/pypa/gh-action-pypi-publish
This commit is contained in:
parent
249752e8ee
commit
9f08d29bc8
18
.github/workflows/_release.yml
vendored
18
.github/workflows/_release.yml
vendored
@ -16,6 +16,13 @@ jobs:
|
|||||||
# Disallow publishing from branches that aren't `master`.
|
# Disallow publishing from branches that aren't `master`.
|
||||||
if: github.ref == 'refs/heads/master'
|
if: github.ref == 'refs/heads/master'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
# This permission is used for trusted publishing:
|
||||||
|
# https://blog.pypi.org/posts/2023-04-20-introducing-trusted-publishers/
|
||||||
|
#
|
||||||
|
# Trusted publishing has to also be configured on PyPI for each package:
|
||||||
|
# https://docs.pypi.org/trusted-publishers/adding-a-publisher/
|
||||||
|
id-token: write
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ${{ inputs.working-directory }}
|
working-directory: ${{ inputs.working-directory }}
|
||||||
@ -44,8 +51,9 @@ jobs:
|
|||||||
generateReleaseNotes: true
|
generateReleaseNotes: true
|
||||||
tag: v${{ steps.check-version.outputs.version }}
|
tag: v${{ steps.check-version.outputs.version }}
|
||||||
commit: master
|
commit: master
|
||||||
- name: Publish to PyPI
|
- name: Publish package distributions to PyPI
|
||||||
env:
|
uses: pypa/gh-action-pypi-publish@release/v1
|
||||||
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }}
|
with:
|
||||||
run: |
|
packages-dir: ${{ inputs.working-directory }}/dist/
|
||||||
poetry publish
|
verbose: true
|
||||||
|
print-hash: true
|
||||||
|
Loading…
Reference in New Issue
Block a user