Skip to content

Built for people who want to own their automations. Join the waitlist for an invite.

Package listing

@kody/gitlab

src/index.ts

70 lines · 2.5 KB · TypeScript
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).',
		},
	}
}