{"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"push-remote-content-using-github-actions","__idx":0},"children":["Push remote content using GitHub Actions"]},{"$$mdtype":"Tag","name":"ConfigOptionRequirements","attributes":{"products":["Redoc","Revel","Reef","Realm"],"plans":["Enterprise","Enterprise+"]},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use a GitHub Action for pushing remote content to the Redocly Reunite project."," ","Your projects can be hosted in your own GitHub accounts without the Redocly GitHub application installed."," ","In that case, use this action in the repository that holds the remote content to push your changes to the Reunite platform."," ","This action has some advantages over using the push command because it also sets corresponding commit statuses for project deployments and scorecards."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"First steps"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The best way to get started with the GitHub action is to copy the code snippet."," ","The snippet is presented to you when you add a remote content source to your project."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you add a new Remote from CI/CD, you'll be presented with a starter template for the action that you can use."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"options","__idx":1},"children":["Options"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["organization"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["REQUIRED"]},"."," ","Your Redocly organization slug."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["project"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["REQUIRED"]},"."," ","Your Redocly project slug."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["mountPath"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["REQUIRED"]},"."," ","Path to folder where you files should be pushed."," ","For example: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["src/docs/api"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["files"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["REQUIRED"]},"."," ","Files/folders list within your repo, separated by spaces."," ","For example: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["openapi-files src/redocly-museum.yaml"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["defaultBranch"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The name of the default branch."," ","If not provided, the action uses the repository's default branch."," ","This is useful if you want to use a production branch with a different name than the repository's default (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["main"]},")."," ","For example: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["main"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["githubToken"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["GitHub token for setting commit status."," ","By default the existing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["${{ github.token }}"]}," is used."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["domain"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["URL"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Redocly domain (if your Redocly app is hosted somewhere other than the default at ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://app.cloud.redocly.com"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["maxExecutionTime"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["integer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Max execution time in seconds."," ","If the deployment is not successful within this time, the action will fail."," ","Default: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1200"]}," (20 minutes)."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"authorization","__idx":2},"children":["Authorization"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This action requires authorization using an API key for your organization."," ","See ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/realm/reunite/organization/api-keys"},"children":["Manage organization-wide API keys"]}," to obtain and update your API key."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Store the API key as an environment variable called ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REDOCLY_AUTHORIZATION"]},"."," ","The action will read this secret value from the environment when it executes."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To use this in workflow, add the API key as a Secret in your GitHub repository:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Navigate to your repository on GitHub."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Go to Settings > Secrets and variables > Actions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create a New repository secret named ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REDOCLY_AUTHORIZATION"]},"."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"permissions","__idx":3},"children":["Permissions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This action requires:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contents: read"]}," - for reading files for push."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["statuses: write"]}," - for writing commit statuses."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"examples","__idx":4},"children":["Examples"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following example shows a GitHub workflow that pushes a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["src/redocly-museum.yaml"]}," file."," ","The file goes from the remote content repo to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["src/docs/museum"]}," folder inside an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["example-project"]}," in Reunite."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The action will run for pushes to any branch."," ","But Redocly API will detect pushes to main branch and non main branch and triggers corresponding preview or production deployments."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","data-title":".github/workflows/redocly-push.yaml","header":{"title":".github/workflows/redocly-push.yaml","controls":{"copy":{}}},"source":"name: Push to Redocly Reunite (GH Workflow Example)\n\non:\n  push:\n    branches:\n      - '**'\n\njobs:\n  reunite-push:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      statuses: write\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n      - name: Redocly Reunite push\n        uses: redocly/reunite-push-action@v1\n        with:\n          organization: 'example-org'\n          project: 'example-project'\n          mountPath: 'src/docs/museum'\n          files: 'src/redocly-museum.yaml'\n        env:\n          REDOCLY_AUTHORIZATION: ${{ secrets.REDOCLY_AUTHORIZATION }}\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When the action runs, it updates with the build statuses of any scorecards and the project itself."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"resources","__idx":5},"children":["Resources"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/realm/reunite/project/remote-content"},"children":["Add remote files with one-way sync"]}]}," - Comprehensive guide to integrate various types of remote content sources into your Reunite projects for centralized documentation management"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/cli/commands/push"},"children":["Push CLI command"]}]}," - Alternative method for sending remote content to Reunite projects using the Redocly CLI for non-GitHub users and custom workflows"]}]}]},"frontmatter":{"products":["Redoc","Revel","Reef","Realm"],"plans":["Enterprise","Enterprise+"]},"tagList":["admonition","configOptionRequirements","table"],"title":"Push remote content using GitHub Actions","lastModified":"2026-10-01T23:00:57.000Z"}