Ir al contenido

GitHub

Publicá los archivos publicados de tu artifact en un repositorio de GitHub. Los tokens se guardan por artifact. Accedé vía sdk.github.

const sdk = await ShareOut.create();
if (!await sdk.github.isConnected()) {
await sdk.github.authorize();
}
const result = await sdk.github.export({
repo: 'octocat/my-site',
commitMessage: 'Update from ShareOut',
});
console.log(result.repoUrl); // https://github.com/octocat/my-site
console.log(result.filesCommitted); // 3
authorize(returnUrl?): Promise<boolean>
isConnected(): Promise<boolean>
getStatus(): Promise<{ connected: boolean; username?: string; artifactId: string }>
disconnect(): Promise<void>
listRepos(options?): Promise<{ repos: Repo[]; page: number; perPage: number }>
export(options): Promise<ExportResult>
CampoRequeridoDescripción
repoUno de repo o newRepoRepo existente en formato owner/repo
newRepo.nameUno de repo o newRepoNombre para un nuevo repo a crear
newRepo.descriptionNoDescripción del repositorio
newRepo.privateNoRepo privado (por defecto: false)
branchNoRama destino (por defecto: main)
commitMessageNoMensaje de commit (por defecto: "ShareOut export v{version}")
includeReadmeNoGenerar un README con info del artifact (por defecto: true)
pathPrefixNoPrefijo para todos los paths de archivos, ej. "dist/"

Estos endpoints también están disponibles directamente desde agentes o código del servidor.

EndpointMétodoDescripción
/v1/data/{artifactIdOrSlug}/github/auth-urlGETDevuelve una URL de OAuth de GitHub
/v1/data/{artifactIdOrSlug}/github/token-statusGETEstado de conexión y nombre de usuario
/v1/data/{artifactIdOrSlug}/github/disconnectPOSTEliminar el token de GitHub guardado
/v1/data/{artifactIdOrSlug}/github/reposGETListar repositorios del usuario
/v1/data/{artifactIdOrSlug}/github/exportPOSTExportar archivos a un repositorio

{artifactIdOrSlug} acepta tanto art_2ce7… como un slug de deployment como my-site.

ParámetroRequeridoDescripción
returnNoURL a redirigir tras el OAuth; el callback agrega ?github_connected=true
  • Los tokens se guardan por artifact, no por usuario de ShareOut.
  • Los tokens de GitHub no expiran a menos que se revoquen.
  • El scope de OAuth es repo (acceso completo al repositorio).
  • El OAuth retorna por https://shareout.site/auth/callback; ShareOut detecta los callbacks de GitHub desde el parámetro state.
CódigoSignificado
GITHUB_NOT_CONNECTEDNo hay token guardado — llamá a authorize() primero
REPO_NOT_FOUNDRepositorio no encontrado o no accesible
NO_DEPLOYMENTNo existe una versión publicada para exportar
NO_ASSETSNo se encontraron archivos en el deployment
INVALID_REQUESTFaltan tanto repo como newRepo en el body de export
EXPORT_ERRORError de la API de GitHub durante la exportación