export type * from './types.ts'
export {
DEFAULT_GITLAB_API_BASE_URL,
DEFAULT_GITLAB_API_HOST,
DEFAULT_GITLAB_INSTANCE_URL,
DEFAULT_GITLAB_INTEGRATION_NAME,
DEFAULT_GITLAB_SECRET_NAME,
GITLAB_APPLICATIONS_URL,
GITLAB_OAUTH_AUTHORIZE_URL,
GITLAB_OAUTH_CONNECT_URL,
GITLAB_OAUTH_TOKEN_URL,
GITLAB_PAT_CREATE_URL,
GITLAB_PAT_SETUP_URL,
GitlabRequestError,
READ_ONLY_GITLAB_OAUTH_SCOPES,
SUGGESTED_GITLAB_OAUTH_SCOPES,
accounts,
buildOauthConnectUrl,
buildPatSetupUrl,
getCurrentUser,
paginate,
request,
resolveGitlabAuth,
} from './core.ts'
import {
DEFAULT_GITLAB_INTEGRATION_NAME,
GITLAB_OAUTH_CONNECT_URL,
GITLAB_PAT_SETUP_URL,
accounts,
} from './core.ts'
/**
* Describe the GitLab package and its documented export surface.
*/
export default async function describeGitlabPackage() {
return {
package: '@kody/gitlab',
kodyId: 'gitlab',
publicUrl: 'https://kody.codes/@kody/gitlab',
purpose:
'GitLab REST helpers for projects, issues, merge requests, pipelines, and generic API requests, using OAuth or a personal access token.',
defaultIntegrationName: DEFAULT_GITLAB_INTEGRATION_NAME,
oauthConnectUrl: GITLAB_OAUTH_CONNECT_URL,
patSetupUrl: GITLAB_PAT_SETUP_URL,
accounts: accounts(),
exports: {
request: 'Make a normalized GitLab REST request.',
paginate: 'Follow GitLab REST pagination for array endpoints.',
getCurrentUser: 'Verify which GitLab identity the selected integration or PAT uses.',
accounts: 'List OAuth vs PAT lanes and selection guidance.',
'projects/list': 'List projects visible to the selected identity.',
'projects/get': 'Fetch one project by id, path, or URL.',
'issues/list': 'List issues for a project or the current user.',
'issues/get': 'Fetch one issue.',
'issues/create': 'Create an issue (dryRun or confirm).',
'issues/update': 'Update an issue (dryRun or confirm).',
'merge-requests/list': 'List merge requests for a project.',
'merge-requests/get': 'Fetch one merge request.',
'merge-requests/create': 'Create a merge request (dryRun or confirm).',
'merge-requests/update': 'Update a merge request (dryRun or confirm).',
'merge-requests/merge': 'Merge a merge request (dryRun or confirm).',
'pipelines/list': 'List pipelines for a project.',
'pipelines/get': 'Fetch one pipeline.',
'pipelines/create': 'Create a pipeline (dryRun or confirm).',
'pipelines/retry': 'Retry a pipeline (dryRun or confirm).',
'pipelines/cancel': 'Cancel a pipeline (dryRun or confirm).',
},
}
}