UNPKG

n8n-nodes-base

Version:

Base nodes of n8n

109 lines 4.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUsers = getUsers; exports.getRepositories = getRepositories; exports.getWorkflows = getWorkflows; exports.getRefs = getRefs; const GenericFunctions_1 = require("./GenericFunctions"); async function getUsers(filter, paginationToken) { const page = paginationToken ? +paginationToken : 1; const per_page = 100; let responseData = { items: [], total_count: 0, }; try { responseData = await GenericFunctions_1.githubApiRequest.call(this, 'GET', '/search/users', {}, { q: filter, page, per_page }); } catch { // will fail if the owner does not have any users } const results = responseData.items.map((item) => ({ name: item.login, value: item.login, url: item.html_url, })); const nextPaginationToken = page * per_page < responseData.total_count ? page + 1 : undefined; return { results, paginationToken: nextPaginationToken }; } async function getRepositories(filter, paginationToken) { const owner = this.getCurrentNodeParameter('owner', { extractValue: true }); const page = paginationToken ? +paginationToken : 1; const per_page = 100; const q = `${filter ?? ''} user:${owner} fork:true`; let responseData = { items: [], total_count: 0, }; try { responseData = await GenericFunctions_1.githubApiRequest.call(this, 'GET', '/search/repositories', {}, { q, page, per_page }); } catch { // will fail if the owner does not have any repositories } const results = responseData.items.map((item) => ({ name: item.name, value: item.name, url: item.html_url, })); const nextPaginationToken = page * per_page < responseData.total_count ? page + 1 : undefined; return { results, paginationToken: nextPaginationToken }; } async function getWorkflows(paginationToken) { const owner = this.getCurrentNodeParameter('owner', { extractValue: true }); const repository = this.getCurrentNodeParameter('repository', { extractValue: true }); const page = paginationToken ? +paginationToken : 1; const per_page = 100; const endpoint = `/repos/${owner}/${repository}/actions/workflows`; let responseData = { workflows: [], total_count: 0, }; try { responseData = await GenericFunctions_1.githubApiRequest.call(this, 'GET', endpoint, {}, { page, per_page }); } catch { // will fail if the repository does not have any workflows } const results = responseData.workflows.map((workflow) => ({ name: workflow.name, value: workflow.id, })); const nextPaginationToken = page * per_page < responseData.total_count ? page + 1 : undefined; return { results, paginationToken: nextPaginationToken }; } async function getRefs(filter, paginationToken) { const owner = this.getCurrentNodeParameter('owner', { extractValue: true }); const repository = this.getCurrentNodeParameter('repository', { extractValue: true }); const page = paginationToken ? +paginationToken : 1; const per_page = 100; const responseData = await GenericFunctions_1.githubApiRequest.call(this, 'GET', `/repos/${owner}/${repository}/git/refs`, {}, { page, per_page }); const refs = []; for (const ref of responseData) { const refPath = ref.ref.split('/'); const refType = refPath[1]; const refName = refPath.slice(2).join('/'); let description = ''; if (refType === 'heads') { description = `Branch: ${refName}`; } else if (refType === 'tags') { description = `Tag: ${refName}`; } else { description = `${refType}: ${refName}`; } refs.push({ name: refName, value: refName, description, }); } if (filter) { const filteredRefs = refs.filter((ref) => ref.name.toLowerCase().includes(filter.toLowerCase())); return { results: filteredRefs }; } const nextPaginationToken = responseData.length === per_page ? page + 1 : undefined; return { results: refs, paginationToken: nextPaginationToken }; } //# sourceMappingURL=SearchFunctions.js.map