Publishing to Packagist
Publish your public-facing Fern PHP SDK to the Packagist registry. After following the steps on this page, you’ll have a versioned package published on Packagist.

fern
folder on
your local machine. See Set up the fern
folder for more
details.Set up your GitHub integration
- Create a new GitHub repository called
company-php
(or something similar) for your SDK, if you haven’t done so already.Your repository must:
- Have public visibility. You can configure this in your repository’s Settings.
- Have a
composer.json
file in your main branch that adheres to Packagist’s requirements. See Packagist’s Getting Started and Naming Conventions documentation.
- Install the Fern GitHub App: Select Configure, then scroll down to Repository Access. Select Only select repositories and in the dropdown select the repository for your SDK. Click Save.
Configure generators.yml
Run fern add <generator>
Navigate to your generators.yml
on your local machine. Your generators.yml
lives inside of your fern
folder and contains all the configuration for your Fern generators.
Add a new generator to generators.yml
:
Once the command completes, you’ll see a new group created in your generators.yml
:
Set up Packagist publishing authentication
Submit the Repository URL
- Click Submit.
- Input the full URL of the repository where you generated your PHP SDK, then click Check.
- Fix any errors Packagist finds in your repository, then click Submit.

Configure the GitHub Hook
Once you’ve submitted your URL, you’ll be prompted to set up the GitHub Hook.
- In to your repository, go to Settings > Webhooks.
- Select “Add webhook”
- Set the Payload URL as
https://packagist.org/api/github?username=<your.packagist.username>
- Set the content type as
application/json
- Packagist autogenerates API Tokens. To find yours, go to your Profile. Then, add your token to the Secret field.
- Set the trigger events as Just the
push
event - Click “Add Webhook”

Release your SDK to Packagist
At this point, you’re ready to regenerate your SDK and publish it on Packagist:
Local machine output will verify that the release is pushed to your repository and tagged with the version you specified. Log back into Packagist, click on your username, and select My packages to see your new release.