Netlify's gateway to hosted git APIs.
Implementation
for File Management System API based on Api
.
Api
and Implementation
from backend-github/gitlab/bitbacket extended with Netlify-specific LargeMedia(LFS)
and JWT
auth.
AuthenticationPage
- uses lib-auth and implements Netlify Identity authentication flow.
PKCEAuthenticationPage
= uses lib-auth and implements OAuth2 PKCE authentication flow. Enabled if the config.auth_type is set to pkce
.
Look at tests or types for more info.
When debugging the CMS with Git Gateway you must:
-
Have a Netlify site with Git Gateway and Netlify Identity enabled. An easy way to create such a site is to use a template, for example the Gatsby template
-
Tell the CMS the URL of your Netlify site using a local storage item. To do so:
- Open
http://localhost:8080/
in the browser - Write the below command and press enter:
localStorage.setItem('netlifySiteURL', 'https://yourwebsiteurl.netlify.app/')
- To be sure, you can run this command as well:
localStorage.getItem('netlifySiteURL')
- Refresh the page
- You should be able to log in via your Netlify Identity email/password
- Open
To use a custom Git-Gateway implementation with PKCE authentication, use a configuration similar to the following:
backend:
name: git-gateway
# Enables PKCE authentication with the git-gateway backend. After auth,
# sends the access_token for all requests to the git-gateway host.
auth_type: pkce
# The base OAuth2 URL. Here is an obfuscated AWS Cognito example.
base_url: https://your-cognito-instance.auth.us-east-1.amazoncognito.com
# If you need to customize the authorize or token endpoints for PKCE, do that here
#auth_endpoint: oauth2/authorize
#auth_token_endpoint: oauth2/token
# The OAuth2 client ID
app_id: your-oauth2-client-id
# The base URL of your custom git-gateway. Note that the last part of the path
# should be "bitbucket", "gitlab", or "github", so the implementation can automatically
# determine which backend API to use when making requests.
gateway_url: https://your.gitgateway.host/git-gateway/bitbucket/
# Override the Netlify git-gateway status check
status_endpoint: https://your.gitgateway.host/api/v2/components.json
# Optional: defaults to "master"
branch: main