github-app-installation-token
Version:
npm/script and binary 📦 to get a token from a GitHub App
39 lines (37 loc) • 1.51 kB
text/typescript
/**
* Default permission level members have for organization repositories:
* \* `read` - can pull, but not push to or administer this repository.
* \* `write` - can pull and push, but not administer this repository.
* \* `admin` - can pull, push, and administer this repository.
* \* `none` - no permissions granted by default.
*/
type DefaultRepositoryPermission = 'read' | 'write' | 'admin' | 'none';
export interface AppsCreateInstallationAccessTokenResponse {
type: string;
tokenType: string;
token: string;
installationId: number;
permissions: {
actions: DefaultRepositoryPermission;
administration: DefaultRepositoryPermission;
checks: DefaultRepositoryPermission;
contents: DefaultRepositoryPermission;
issues: DefaultRepositoryPermission;
metadata: DefaultRepositoryPermission;
pull_requests: DefaultRepositoryPermission;
statuses: DefaultRepositoryPermission;
};
createdAt: string;
expiresAt: string;
repositorySelection: 'all' | 'selected';
}
export const isObject = (value: unknown): value is Record<string, unknown> => {
return !!value && typeof value === 'object';
};
export const isString = (value: unknown): value is string => typeof value === 'string';
export const isAppsCreateInstallationAccessTokenResponse = (
response: unknown
): response is AppsCreateInstallationAccessTokenResponse => {
return isObject(response) && typeof response?.token === 'string';
};
export const isError = (e: unknown): e is Error => e instanceof Error;