renovate 42.19.9 → 42.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/migrate-validate.js +1 -2
- package/dist/config/migrate-validate.js.map +1 -1
- package/dist/config/migration.js +0 -1
- package/dist/config/migration.js.map +1 -1
- package/dist/config/options/index.js +1 -1
- package/dist/config/options/index.js.map +1 -1
- package/dist/instrumentation/index.js +3 -4
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/modules/datasource/crate/index.js +1 -1
- package/dist/modules/datasource/crate/index.js.map +1 -1
- package/dist/modules/datasource/docker/common.js +6 -0
- package/dist/modules/datasource/docker/common.js.map +1 -1
- package/dist/modules/datasource/docker/schema.js +1 -1
- package/dist/modules/datasource/docker/schema.js.map +1 -1
- package/dist/modules/datasource/go/index.js +1 -2
- package/dist/modules/datasource/go/index.js.map +1 -1
- package/dist/modules/datasource/maven/index.js +2 -2
- package/dist/modules/datasource/maven/index.js.map +1 -1
- package/dist/modules/datasource/maven/util.js +2 -2
- package/dist/modules/datasource/maven/util.js.map +1 -1
- package/dist/modules/manager/bazel/artifacts.js +2 -2
- package/dist/modules/manager/bazel/artifacts.js.map +1 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js +2 -2
- package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/package-file.js +2 -2
- package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
- package/dist/modules/manager/npm/extract/yarn.js +2 -2
- package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
- package/dist/modules/manager/npm/post-update/index.js +14 -18
- package/dist/modules/manager/npm/post-update/index.js.map +1 -1
- package/dist/modules/manager/npm/post-update/npm.js +4 -4
- package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/pnpm.js +4 -4
- package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js +6 -6
- package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
- package/dist/modules/manager/npm/update/dependency/index.js +3 -4
- package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
- package/dist/modules/manager/npm/update/dependency/pnpm.js +2 -2
- package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/update/index.js +1 -0
- package/dist/modules/manager/npm/update/index.js.map +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/common/parent-version.js +8 -8
- package/dist/modules/manager/npm/update/locked-dependency/common/parent-version.js.map +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/package-lock/dep-constraints.js +2 -2
- package/dist/modules/manager/npm/update/locked-dependency/package-lock/dep-constraints.js.map +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/package-lock/index.js +5 -5
- package/dist/modules/manager/npm/update/locked-dependency/package-lock/index.js.map +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/get-locked.js +4 -4
- package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/get-locked.js.map +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/index.js +2 -2
- package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/index.js.map +1 -1
- package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/replace.js +2 -2
- package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/replace.js.map +1 -1
- package/dist/modules/manager/npm/update/package-version/index.js +1 -2
- package/dist/modules/manager/npm/update/package-version/index.js.map +1 -1
- package/dist/modules/manager/npm/utils.js +8 -8
- package/dist/modules/manager/npm/utils.js.map +1 -1
- package/dist/modules/platform/azure/azure-helper.js +2 -2
- package/dist/modules/platform/azure/azure-helper.js.map +1 -1
- package/dist/modules/platform/azure/index.js +14 -14
- package/dist/modules/platform/azure/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/comments.js +4 -4
- package/dist/modules/platform/bitbucket/comments.js.map +1 -1
- package/dist/modules/platform/bitbucket/index.js +31 -31
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/utils.js +2 -2
- package/dist/modules/platform/bitbucket/utils.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/index.js +32 -34
- package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/utils.js +2 -4
- package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
- package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
- package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
- package/dist/modules/platform/codecommit/index.js +24 -24
- package/dist/modules/platform/codecommit/index.js.map +1 -1
- package/dist/modules/platform/forgejo/forgejo-helper.d.ts +1 -0
- package/dist/modules/platform/forgejo/forgejo-helper.js +26 -0
- package/dist/modules/platform/forgejo/forgejo-helper.js.map +1 -1
- package/dist/modules/platform/forgejo/index.js +35 -20
- package/dist/modules/platform/forgejo/index.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +4 -4
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/github/index.js +68 -68
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/github/massage-markdown-links.js +2 -2
- package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
- package/dist/modules/platform/github/pr.js +2 -2
- package/dist/modules/platform/github/pr.js.map +1 -1
- package/dist/modules/platform/github/schema.js +1 -2
- package/dist/modules/platform/github/schema.js.map +1 -1
- package/dist/modules/platform/gitlab/index.js +29 -30
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/platform/utils/pr-body.js +7 -3
- package/dist/modules/platform/utils/pr-body.js.map +1 -1
- package/dist/proxy.js +1 -2
- package/dist/proxy.js.map +1 -1
- package/dist/util/cache/package/index.js +2 -2
- package/dist/util/cache/package/index.js.map +1 -1
- package/dist/util/cache/package/namespaces.js +1 -1
- package/dist/util/cache/package/namespaces.js.map +1 -1
- package/dist/util/cache/repository/types.d.ts +1 -0
- package/dist/util/cache/repository/types.js.map +1 -1
- package/dist/util/git/error.js +5 -4
- package/dist/util/git/error.js.map +1 -1
- package/dist/util/git/index.js +10 -12
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/private-key.js +2 -0
- package/dist/util/git/private-key.js.map +1 -1
- package/dist/util/http/bitbucket.js +1 -2
- package/dist/util/http/bitbucket.js.map +1 -1
- package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
- package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
- package/dist/util/http/http.js +1 -1
- package/dist/util/http/http.js.map +1 -1
- package/dist/util/stats.js +1 -1
- package/dist/util/stats.js.map +1 -1
- package/dist/workers/global/config/parse/codespaces.js +1 -2
- package/dist/workers/global/config/parse/codespaces.js.map +1 -1
- package/dist/workers/repository/update/branch/auto-replace.js +4 -2
- package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
- package/dist/workers/repository/update/branch/automerge.js +4 -1
- package/dist/workers/repository/update/branch/automerge.js.map +1 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +1 -0
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/dist/workers/repository/update/branch/index.js +16 -8
- package/dist/workers/repository/update/branch/index.js.map +1 -1
- package/package.json +3 -2
- package/renovate-schema.json +3 -3
|
@@ -317,23 +317,23 @@ async function updatePr({ number: prNo, prTitle: title, prBody: body, state, })
|
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
319
|
// Auto-Merge not supported currently.
|
|
320
|
-
/* v8 ignore
|
|
320
|
+
/* v8 ignore next */
|
|
321
321
|
async function mergePr({ branchName, id: prNo, strategy, }) {
|
|
322
322
|
logger_1.logger.debug(`mergePr(${prNo}, ${branchName})`);
|
|
323
323
|
await client.getPr(`${prNo}`);
|
|
324
324
|
return Promise.resolve(false);
|
|
325
325
|
//
|
|
326
|
-
// /* v8 ignore
|
|
326
|
+
// /* v8 ignore next */
|
|
327
327
|
// if (!prOut) {
|
|
328
328
|
// return false;
|
|
329
|
-
// }
|
|
329
|
+
// }
|
|
330
330
|
// const pReq = prOut.pullRequest;
|
|
331
331
|
// const targets = pReq?.pullRequestTargets;
|
|
332
332
|
//
|
|
333
|
-
// /* v8 ignore
|
|
333
|
+
// /* v8 ignore next */
|
|
334
334
|
// if (!targets) {
|
|
335
335
|
// return false;
|
|
336
|
-
// }
|
|
336
|
+
// }
|
|
337
337
|
//
|
|
338
338
|
// if (strategy === 'rebase') {
|
|
339
339
|
// logger.warn('CodeCommit does not support a "rebase" strategy.');
|
|
@@ -388,7 +388,7 @@ async function mergePr({ branchName, id: prNo, strategy, }) {
|
|
|
388
388
|
// logger.debug({ err }, 'Failed to set the PR as Closed.');
|
|
389
389
|
// return false;
|
|
390
390
|
// }
|
|
391
|
-
}
|
|
391
|
+
}
|
|
392
392
|
async function addReviewers(prNo, reviewers) {
|
|
393
393
|
const numberOfApprovers = reviewers.length;
|
|
394
394
|
const approvalRuleContents = `{"Version":"2018-11-08","Statements": [{"Type": "Approvers","NumberOfApprovalsNeeded":${numberOfApprovers},"ApprovalPoolMembers": ${JSON.stringify(reviewers)}}]}`;
|
|
@@ -398,52 +398,52 @@ async function addReviewers(prNo, reviewers) {
|
|
|
398
398
|
logger_1.logger.debug({ approvalRule }, `Approval Rule Added to PR #${prNo}:`);
|
|
399
399
|
}
|
|
400
400
|
}
|
|
401
|
-
/* v8 ignore
|
|
401
|
+
/* v8 ignore next */
|
|
402
402
|
function addAssignees(iid, assignees) {
|
|
403
403
|
// CodeCommit does not support adding reviewers
|
|
404
404
|
return Promise.resolve();
|
|
405
|
-
}
|
|
406
|
-
/* v8 ignore
|
|
405
|
+
}
|
|
406
|
+
/* v8 ignore next */
|
|
407
407
|
function findIssue(title) {
|
|
408
408
|
// CodeCommit does not have issues
|
|
409
409
|
return Promise.resolve(null);
|
|
410
|
-
}
|
|
411
|
-
/* v8 ignore
|
|
410
|
+
}
|
|
411
|
+
/* v8 ignore next */
|
|
412
412
|
function ensureIssue({ title, }) {
|
|
413
413
|
// CodeCommit does not have issues
|
|
414
414
|
return Promise.resolve(null);
|
|
415
|
-
}
|
|
416
|
-
/* v8 ignore
|
|
415
|
+
}
|
|
416
|
+
/* v8 ignore next */
|
|
417
417
|
function getIssueList() {
|
|
418
418
|
// CodeCommit does not have issues
|
|
419
419
|
return Promise.resolve([]);
|
|
420
|
-
}
|
|
421
|
-
/* v8 ignore
|
|
420
|
+
}
|
|
421
|
+
/* v8 ignore next */
|
|
422
422
|
function ensureIssueClosing(title) {
|
|
423
423
|
// CodeCommit does not have issues
|
|
424
424
|
return Promise.resolve();
|
|
425
|
-
}
|
|
426
|
-
/* v8 ignore
|
|
425
|
+
}
|
|
426
|
+
/* v8 ignore next */
|
|
427
427
|
function deleteLabel(prNumber, label) {
|
|
428
428
|
return Promise.resolve();
|
|
429
|
-
}
|
|
429
|
+
}
|
|
430
430
|
// Returns the combined status for a branch.
|
|
431
|
-
/* v8 ignore
|
|
431
|
+
/* v8 ignore next */
|
|
432
432
|
function getBranchStatus(branchName) {
|
|
433
433
|
logger_1.logger.debug(`getBranchStatus(${branchName})`);
|
|
434
434
|
logger_1.logger.debug('returning branch status yellow, because getBranchStatus isnt supported on aws yet');
|
|
435
435
|
return Promise.resolve('yellow');
|
|
436
|
-
}
|
|
437
|
-
/* v8 ignore
|
|
436
|
+
}
|
|
437
|
+
/* v8 ignore next */
|
|
438
438
|
function getBranchStatusCheck(branchName, context) {
|
|
439
439
|
logger_1.logger.debug(`getBranchStatusCheck(${branchName}, context=${context})`);
|
|
440
440
|
logger_1.logger.debug('returning null, because getBranchStatusCheck is not supported on aws yet');
|
|
441
441
|
return Promise.resolve(null);
|
|
442
|
-
}
|
|
443
|
-
/* v8 ignore
|
|
442
|
+
}
|
|
443
|
+
/* v8 ignore next */
|
|
444
444
|
function setBranchStatus({ branchName, context, description, state, url: targetUrl, }) {
|
|
445
445
|
return Promise.resolve();
|
|
446
|
-
}
|
|
446
|
+
}
|
|
447
447
|
async function ensureComment({ number, topic, content, }) {
|
|
448
448
|
logger_1.logger.debug(`ensureComment(${number}, ${topic}, content)`);
|
|
449
449
|
const header = topic ? `### ${topic}\n\n` : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/codecommit/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from 'node:buffer';\nimport type {\n GetCommentsForPullRequestOutput,\n ListRepositoriesOutput,\n} from '@aws-sdk/client-codecommit';\nimport { PullRequestStatusEnum } from '@aws-sdk/client-codecommit';\nimport {\n PLATFORM_BAD_CREDENTIALS,\n REPOSITORY_EMPTY,\n REPOSITORY_NOT_FOUND,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { BranchStatus, PrState } from '../../../types';\nimport { coerceArray } from '../../../util/array';\nimport { parseJson } from '../../../util/common';\nimport { getEnv } from '../../../util/env';\nimport * as git from '../../../util/git';\nimport { regEx } from '../../../util/regex';\nimport { sanitize } from '../../../util/sanitize';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types';\nimport { getNewBranchName, repoFingerprint } from '../util';\nimport { smartTruncate } from '../utils/pr-body';\nimport * as client from './codecommit-client';\n\nexport interface CodeCommitPr extends Pr {\n body: string;\n destinationCommit: string;\n sourceCommit: string;\n}\n\ninterface Config {\n repository?: string;\n defaultBranch?: string;\n region?: string;\n prList?: CodeCommitPr[];\n}\n\nexport const id = 'codecommit';\n\nlet config: Config = {} as any;\n\nexport async function initPlatform({\n endpoint,\n username,\n password,\n token: awsToken,\n}: PlatformParams): Promise<PlatformResult> {\n const accessKeyId = username;\n const secretAccessKey = password;\n const env = getEnv();\n let region: string | undefined;\n\n if (accessKeyId) {\n env.AWS_ACCESS_KEY_ID = accessKeyId;\n }\n if (secretAccessKey) {\n env.AWS_SECRET_ACCESS_KEY = secretAccessKey;\n }\n if (awsToken) {\n env.AWS_SESSION_TOKEN = awsToken;\n }\n\n if (endpoint) {\n const regionReg = regEx(/.*codecommit\\.(?<region>.+)\\.amazonaws\\.com/);\n const codeCommitMatch = regionReg.exec(endpoint);\n region = codeCommitMatch?.groups?.region;\n if (region) {\n env.AWS_REGION = region;\n } else {\n logger.warn(\"Can't parse region, make sure your endpoint is correct\");\n }\n }\n\n // If any of the below fails, it will throw an exception stopping the program.\n client.buildCodeCommitClient();\n // To check if we have permission to codecommit, throws exception if failed.\n await client.listRepositories();\n\n const platformConfig: PlatformResult = {\n endpoint:\n endpoint ??\n `https://git-codecommit.${env.AWS_REGION ?? 'us-east-1'}.amazonaws.com/`,\n };\n return Promise.resolve(platformConfig);\n}\n\nexport async function initRepo({\n repository,\n endpoint,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(\"${repository}\")`);\n\n config = { repository } as Config;\n\n let repo;\n try {\n repo = await client.getRepositoryInfo(repository);\n } catch (err) {\n logger.error({ err }, 'Could not find repository');\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n\n if (!repo?.repositoryMetadata) {\n logger.error({ repository }, 'Could not find repository');\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n logger.debug({ repositoryDetails: repo }, 'Repository details');\n const metadata = repo.repositoryMetadata;\n\n const url = client.getCodeCommitUrl(metadata, repository);\n try {\n await git.initRepo({\n url,\n });\n } catch (err) {\n logger.debug({ err }, 'Failed to git init');\n throw new Error(PLATFORM_BAD_CREDENTIALS);\n }\n\n if (!metadata.defaultBranch || !metadata.repositoryId) {\n logger.debug('Repo is empty');\n throw new Error(REPOSITORY_EMPTY);\n }\n\n const defaultBranch = metadata.defaultBranch;\n config.defaultBranch = defaultBranch;\n logger.debug(`${repository} default branch = ${defaultBranch}`);\n\n return {\n repoFingerprint: repoFingerprint(metadata.repositoryId, endpoint),\n defaultBranch,\n isFork: false,\n };\n}\n\nexport async function getPrList(): Promise<CodeCommitPr[]> {\n logger.debug('getPrList()');\n\n if (config.prList) {\n return config.prList;\n }\n\n const listPrsResponse = await client.listPullRequests(config.repository!);\n const fetchedPrs: CodeCommitPr[] = [];\n\n if (listPrsResponse && !listPrsResponse.pullRequestIds) {\n return fetchedPrs;\n }\n\n const prIds = coerceArray(listPrsResponse.pullRequestIds);\n\n for (const prId of prIds) {\n const prRes = await client.getPr(prId);\n\n if (!prRes?.pullRequest) {\n continue;\n }\n const prInfo = prRes.pullRequest;\n const pr: CodeCommitPr = {\n targetBranch: prInfo.pullRequestTargets![0].destinationReference!,\n sourceBranch: prInfo.pullRequestTargets![0].sourceReference!,\n destinationCommit: prInfo.pullRequestTargets![0].destinationCommit!,\n sourceCommit: prInfo.pullRequestTargets![0].sourceCommit!,\n state:\n prInfo.pullRequestStatus === PullRequestStatusEnum.OPEN\n ? 'open'\n : 'closed',\n number: Number.parseInt(prId),\n title: prInfo.title!,\n body: prInfo.description!,\n };\n fetchedPrs.push(pr);\n }\n\n config.prList = fetchedPrs;\n\n logger.debug(`Retrieved Pull Requests, count: ${fetchedPrs.length}`);\n return fetchedPrs;\n}\n\nexport async function findPr({\n branchName,\n prTitle,\n state = 'all',\n}: FindPRConfig): Promise<CodeCommitPr | null> {\n let prsFiltered: CodeCommitPr[] = [];\n try {\n const prs = await getPrList();\n const refsHeadBranchName = getNewBranchName(branchName);\n prsFiltered = prs.filter(\n (item) => item.sourceBranch === refsHeadBranchName,\n );\n\n if (prTitle) {\n prsFiltered = prsFiltered.filter(\n (item) => item.title.toUpperCase() === prTitle.toUpperCase(),\n );\n }\n\n switch (state) {\n case 'all':\n break;\n case '!open':\n prsFiltered = prsFiltered.filter((item) => item.state !== 'open');\n break;\n default:\n prsFiltered = prsFiltered.filter((item) => item.state === 'open');\n break;\n }\n } catch (err) {\n logger.error({ err }, 'findPr error');\n }\n if (prsFiltered.length === 0) {\n return null;\n }\n return prsFiltered[0];\n}\n\nexport async function getBranchPr(\n branchName: string,\n): Promise<CodeCommitPr | null> {\n logger.debug(`getBranchPr(${branchName})`);\n const existingPr = await findPr({\n branchName,\n state: 'open',\n });\n return existingPr ? getPr(existingPr.number) : null;\n}\n\nexport async function getPr(\n pullRequestId: number,\n): Promise<CodeCommitPr | null> {\n logger.debug(`getPr(${pullRequestId})`);\n const prRes = await client.getPr(`${pullRequestId}`);\n\n if (!prRes?.pullRequest) {\n return null;\n }\n\n const prInfo = prRes.pullRequest;\n let prState: PrState;\n if (prInfo.pullRequestTargets![0].mergeMetadata?.isMerged) {\n prState = 'merged';\n } else {\n prState =\n prInfo.pullRequestStatus === PullRequestStatusEnum.OPEN\n ? 'open'\n : 'closed';\n }\n\n return {\n sourceBranch: prInfo.pullRequestTargets![0].sourceReference!,\n sourceCommit: prInfo.pullRequestTargets![0].sourceCommit!,\n state: prState,\n number: pullRequestId,\n title: prInfo.title!,\n targetBranch: prInfo.pullRequestTargets![0].destinationReference!,\n destinationCommit: prInfo.pullRequestTargets![0].destinationCommit!,\n body: prInfo.description!,\n };\n}\n\nexport async function getRepos(): Promise<string[]> {\n logger.debug('Autodiscovering AWS CodeCommit repositories');\n\n let reposRes: ListRepositoriesOutput;\n try {\n reposRes = await client.listRepositories();\n //todo do we need pagination? maximum number of repos is 1000 without pagination, also the same for free account\n } catch (error) {\n logger.error({ error }, 'Could not retrieve repositories');\n return [];\n }\n\n const res: string[] = [];\n\n const repoNames = coerceArray(reposRes?.repositories);\n\n for (const repo of repoNames) {\n if (repo.repositoryName) {\n res.push(repo.repositoryName);\n }\n }\n\n return res;\n}\n\nexport function massageMarkdown(input: string): string {\n // Remove any HTML we use\n return input\n .replace(\n 'you tick the rebase/retry checkbox',\n 'PR is renamed to start with \"rebase!\"',\n )\n .replace(\n 'checking the rebase/retry box above',\n 'renaming the PR to start with \"rebase!\"',\n )\n .replace(regEx(/<\\/?summary>/g), '**')\n .replace(regEx(/<\\/?details>/g), '')\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/\\]\\(\\.\\.\\/pull\\//g), '](../../pull-requests/')\n .replace(\n regEx(/(?<hiddenComment><!--renovate-(?:debug|config-hash):.*?-->)/g),\n '[//]: # ($<hiddenComment>)',\n );\n}\n\n/**\n * Unsed, no Dashboard\n */\nexport function maxBodyLength(): number {\n return Infinity;\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n const fileRes = await client.getFile(\n repoName ?? config.repository,\n fileName,\n branchOrTag,\n );\n if (!fileRes?.fileContent) {\n return null;\n }\n const buf = Buffer.from(fileRes.fileContent);\n return buf.toString();\n}\n\nconst AMAZON_MAX_BODY_LENGTH = 10239;\n\nexport async function createPr({\n sourceBranch,\n targetBranch,\n prTitle: title,\n prBody: body,\n}: CreatePRConfig): Promise<CodeCommitPr> {\n const description = smartTruncate(sanitize(body), AMAZON_MAX_BODY_LENGTH);\n\n const prCreateRes = await client.createPr(\n title,\n sanitize(description),\n sourceBranch,\n targetBranch,\n config.repository,\n );\n\n if (\n !prCreateRes.pullRequest?.title ||\n !prCreateRes.pullRequest?.pullRequestId ||\n !prCreateRes.pullRequest?.description ||\n !prCreateRes.pullRequest?.pullRequestTargets?.length\n ) {\n throw new Error('Could not create pr, missing PR info');\n }\n\n return {\n number: Number.parseInt(prCreateRes.pullRequest.pullRequestId),\n state: 'open',\n title: prCreateRes.pullRequest.title,\n sourceBranch,\n targetBranch,\n sourceCommit: prCreateRes.pullRequest.pullRequestTargets[0].sourceCommit!,\n destinationCommit:\n prCreateRes.pullRequest.pullRequestTargets[0].destinationCommit!,\n sourceRepo: config.repository,\n body: prCreateRes.pullRequest.description,\n };\n}\n\nexport async function updatePr({\n number: prNo,\n prTitle: title,\n prBody: body,\n state,\n}: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prNo}, ${title}, body)`);\n\n let cachedPr: CodeCommitPr | undefined = undefined;\n const cachedPrs = config.prList ?? [];\n for (const p of cachedPrs) {\n if (p.number === prNo) {\n cachedPr = p;\n }\n }\n\n if (body && cachedPr?.body !== body) {\n await client.updatePrDescription(\n `${prNo}`,\n smartTruncate(sanitize(body), AMAZON_MAX_BODY_LENGTH),\n );\n }\n\n if (title && cachedPr?.title !== title) {\n await client.updatePrTitle(`${prNo}`, title);\n }\n\n const prStatusInput =\n state === 'closed'\n ? PullRequestStatusEnum.CLOSED\n : PullRequestStatusEnum.OPEN;\n if (cachedPr?.state !== prStatusInput) {\n try {\n await client.updatePrStatus(`${prNo}`, prStatusInput);\n } catch {\n // safety check\n // do nothing, it's ok to fail sometimes when trying to update from open to open or from closed to closed.\n }\n }\n}\n\n// Auto-Merge not supported currently.\n/* v8 ignore start */\nexport async function mergePr({\n branchName,\n id: prNo,\n strategy,\n}: MergePRConfig): Promise<boolean> {\n logger.debug(`mergePr(${prNo}, ${branchName!})`);\n await client.getPr(`${prNo}`);\n return Promise.resolve(false);\n //\n // /* v8 ignore start */\n // if (!prOut) {\n // return false;\n // } /* v8 ignore stop */\n // const pReq = prOut.pullRequest;\n // const targets = pReq?.pullRequestTargets;\n //\n // /* v8 ignore start */\n // if (!targets) {\n // return false;\n // } /* v8 ignore stop */\n //\n // if (strategy === 'rebase') {\n // logger.warn('CodeCommit does not support a \"rebase\" strategy.');\n // return false;\n // }\n //\n // try {\n // if (strategy === 'auto' || strategy === 'squash') {\n // await client.squashMerge(\n // targets[0].repositoryName!,\n // targets[0].sourceReference!,\n // targets[0].destinationReference!,\n // pReq?.title\n // );\n // } else if (strategy === 'fast-forward') {\n // await client.fastForwardMerge(\n // targets[0].repositoryName!,\n // targets[0].sourceReference!,\n // targets[0].destinationReference!\n // );\n // } else {\n // logger.debug(`unsupported strategy`);\n // return false;\n // }\n // } catch (err) {\n // logger.debug({ err }, `PR merge error`);\n // logger.info({ pr: prNo }, 'PR automerge failed');\n // return false;\n // }\n //\n // logger.trace(`Updating PR ${prNo} to status ${PullRequestStatusEnum.CLOSED}`);\n //\n // try {\n // const response = await client.updatePrStatus(\n // `${prNo}`,\n // PullRequestStatusEnum.CLOSED\n // );\n // const isClosed =\n // response.pullRequest?.pullRequestStatus === PullRequestStatusEnum.CLOSED;\n //\n // if (!isClosed) {\n // logger.warn(\n // {\n // pullRequestId: prNo,\n // status: response.pullRequest?.pullRequestStatus,\n // },\n // `Expected PR to have status`\n // );\n // }\n // return true;\n // } catch (err) {\n // logger.debug({ err }, 'Failed to set the PR as Closed.');\n // return false;\n // }\n} /* v8 ignore stop */\n\nexport async function addReviewers(\n prNo: number,\n reviewers: string[],\n): Promise<void> {\n const numberOfApprovers = reviewers.length;\n const approvalRuleContents = `{\"Version\":\"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\":${numberOfApprovers},\"ApprovalPoolMembers\": ${JSON.stringify(\n reviewers,\n )}}]}`;\n const res = await client.createPrApprovalRule(\n `${prNo}`,\n approvalRuleContents,\n );\n if (res) {\n const approvalRule = res.approvalRule;\n logger.debug({ approvalRule }, `Approval Rule Added to PR #${prNo}:`);\n }\n}\n\n/* v8 ignore start */\nexport function addAssignees(iid: number, assignees: string[]): Promise<void> {\n // CodeCommit does not support adding reviewers\n return Promise.resolve();\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function findIssue(title: string): Promise<Issue | null> {\n // CodeCommit does not have issues\n return Promise.resolve(null);\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function ensureIssue({\n title,\n}: EnsureIssueConfig): Promise<EnsureIssueResult | null> {\n // CodeCommit does not have issues\n return Promise.resolve(null);\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function getIssueList(): Promise<Issue[]> {\n // CodeCommit does not have issues\n return Promise.resolve([]);\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function ensureIssueClosing(title: string): Promise<void> {\n // CodeCommit does not have issues\n return Promise.resolve();\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function deleteLabel(prNumber: number, label: string): Promise<void> {\n return Promise.resolve();\n} /* v8 ignore stop */\n\n// Returns the combined status for a branch.\n/* v8 ignore start */\nexport function getBranchStatus(branchName: string): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n logger.debug(\n 'returning branch status yellow, because getBranchStatus isnt supported on aws yet',\n );\n return Promise.resolve('yellow');\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n logger.debug(`getBranchStatusCheck(${branchName}, context=${context})`);\n logger.debug(\n 'returning null, because getBranchStatusCheck is not supported on aws yet',\n );\n return Promise.resolve(null);\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: targetUrl,\n}: BranchStatusConfig): Promise<void> {\n return Promise.resolve();\n} /* v8 ignore stop */\n\nexport async function ensureComment({\n number,\n topic,\n content,\n}: EnsureCommentConfig): Promise<boolean> {\n logger.debug(`ensureComment(${number}, ${topic!}, content)`);\n const header = topic ? `### ${topic}\\n\\n` : '';\n const body = `${header}${sanitize(content)}`;\n let prCommentsResponse: GetCommentsForPullRequestOutput;\n try {\n prCommentsResponse = await client.getPrComments(`${number}`);\n } catch (err) {\n logger.debug({ err }, 'Unable to retrieve pr comments');\n return false;\n }\n\n let commentId: string | undefined = undefined;\n let commentNeedsUpdating = false;\n\n if (!prCommentsResponse?.commentsForPullRequestData) {\n return false;\n }\n\n for (const commentObj of prCommentsResponse.commentsForPullRequestData) {\n if (!commentObj?.comments) {\n continue;\n }\n const firstCommentContent = commentObj.comments[0].content;\n if (\n (topic && firstCommentContent?.startsWith(header)) === true ||\n (!topic && firstCommentContent === body)\n ) {\n commentId = commentObj.comments[0].commentId;\n commentNeedsUpdating = firstCommentContent !== body;\n break;\n }\n }\n\n if (!commentId) {\n const prs = await getPrList();\n const thisPr = prs.filter((item) => item.number === number);\n\n if (!thisPr[0].sourceCommit || !thisPr[0].destinationCommit) {\n return false;\n }\n\n await client.createPrComment(\n `${number}`,\n config.repository,\n body,\n thisPr[0].destinationCommit,\n thisPr[0].sourceCommit,\n );\n logger.info(\n { repository: config.repository, prNo: number, topic },\n 'Comment added',\n );\n } else if (commentNeedsUpdating && commentId) {\n await client.updateComment(commentId, body);\n\n logger.debug(\n { repository: config.repository, prNo: number, topic },\n 'Comment updated',\n );\n } else {\n logger.debug(\n { repository: config.repository, prNo: number, topic },\n 'Comment is already update-to-date',\n );\n }\n\n return true;\n}\n\nexport async function ensureCommentRemoval(\n removeConfig: EnsureCommentRemovalConfig,\n): Promise<void> {\n const { number: prNo } = removeConfig;\n const key =\n removeConfig.type === 'by-topic'\n ? removeConfig.topic\n : removeConfig.content;\n logger.debug(`Ensuring comment \"${key}\" in #${prNo} is removed`);\n\n let prCommentsResponse: GetCommentsForPullRequestOutput;\n try {\n prCommentsResponse = await client.getPrComments(`${prNo}`);\n } catch (err) {\n logger.debug({ err }, 'Unable to retrieve pr comments');\n return;\n }\n\n if (!prCommentsResponse?.commentsForPullRequestData) {\n logger.debug('commentsForPullRequestData not found');\n return;\n }\n\n let commentIdToRemove: string | undefined;\n for (const commentObj of prCommentsResponse.commentsForPullRequestData) {\n if (!commentObj?.comments) {\n logger.debug(\n 'comments object not found under commentsForPullRequestData',\n );\n continue;\n }\n\n for (const comment of commentObj.comments) {\n if (\n (removeConfig.type === 'by-topic' &&\n comment.content?.startsWith(`### ${removeConfig.topic}\\n\\n`)) ===\n true ||\n (removeConfig.type === 'by-content' &&\n removeConfig.content === comment.content?.trim())\n ) {\n commentIdToRemove = comment.commentId;\n break;\n }\n }\n if (commentIdToRemove) {\n await client.deleteComment(commentIdToRemove);\n logger.debug(`comment \"${key}\" in PR #${prNo} was removed`);\n break;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/codecommit/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from 'node:buffer';\nimport type {\n GetCommentsForPullRequestOutput,\n ListRepositoriesOutput,\n} from '@aws-sdk/client-codecommit';\nimport { PullRequestStatusEnum } from '@aws-sdk/client-codecommit';\nimport {\n PLATFORM_BAD_CREDENTIALS,\n REPOSITORY_EMPTY,\n REPOSITORY_NOT_FOUND,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { BranchStatus, PrState } from '../../../types';\nimport { coerceArray } from '../../../util/array';\nimport { parseJson } from '../../../util/common';\nimport { getEnv } from '../../../util/env';\nimport * as git from '../../../util/git';\nimport { regEx } from '../../../util/regex';\nimport { sanitize } from '../../../util/sanitize';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types';\nimport { getNewBranchName, repoFingerprint } from '../util';\nimport { smartTruncate } from '../utils/pr-body';\nimport * as client from './codecommit-client';\n\nexport interface CodeCommitPr extends Pr {\n body: string;\n destinationCommit: string;\n sourceCommit: string;\n}\n\ninterface Config {\n repository?: string;\n defaultBranch?: string;\n region?: string;\n prList?: CodeCommitPr[];\n}\n\nexport const id = 'codecommit';\n\nlet config: Config = {} as any;\n\nexport async function initPlatform({\n endpoint,\n username,\n password,\n token: awsToken,\n}: PlatformParams): Promise<PlatformResult> {\n const accessKeyId = username;\n const secretAccessKey = password;\n const env = getEnv();\n let region: string | undefined;\n\n if (accessKeyId) {\n env.AWS_ACCESS_KEY_ID = accessKeyId;\n }\n if (secretAccessKey) {\n env.AWS_SECRET_ACCESS_KEY = secretAccessKey;\n }\n if (awsToken) {\n env.AWS_SESSION_TOKEN = awsToken;\n }\n\n if (endpoint) {\n const regionReg = regEx(/.*codecommit\\.(?<region>.+)\\.amazonaws\\.com/);\n const codeCommitMatch = regionReg.exec(endpoint);\n region = codeCommitMatch?.groups?.region;\n if (region) {\n env.AWS_REGION = region;\n } else {\n logger.warn(\"Can't parse region, make sure your endpoint is correct\");\n }\n }\n\n // If any of the below fails, it will throw an exception stopping the program.\n client.buildCodeCommitClient();\n // To check if we have permission to codecommit, throws exception if failed.\n await client.listRepositories();\n\n const platformConfig: PlatformResult = {\n endpoint:\n endpoint ??\n `https://git-codecommit.${env.AWS_REGION ?? 'us-east-1'}.amazonaws.com/`,\n };\n return Promise.resolve(platformConfig);\n}\n\nexport async function initRepo({\n repository,\n endpoint,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(\"${repository}\")`);\n\n config = { repository } as Config;\n\n let repo;\n try {\n repo = await client.getRepositoryInfo(repository);\n } catch (err) {\n logger.error({ err }, 'Could not find repository');\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n\n if (!repo?.repositoryMetadata) {\n logger.error({ repository }, 'Could not find repository');\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n logger.debug({ repositoryDetails: repo }, 'Repository details');\n const metadata = repo.repositoryMetadata;\n\n const url = client.getCodeCommitUrl(metadata, repository);\n try {\n await git.initRepo({\n url,\n });\n } catch (err) {\n logger.debug({ err }, 'Failed to git init');\n throw new Error(PLATFORM_BAD_CREDENTIALS);\n }\n\n if (!metadata.defaultBranch || !metadata.repositoryId) {\n logger.debug('Repo is empty');\n throw new Error(REPOSITORY_EMPTY);\n }\n\n const defaultBranch = metadata.defaultBranch;\n config.defaultBranch = defaultBranch;\n logger.debug(`${repository} default branch = ${defaultBranch}`);\n\n return {\n repoFingerprint: repoFingerprint(metadata.repositoryId, endpoint),\n defaultBranch,\n isFork: false,\n };\n}\n\nexport async function getPrList(): Promise<CodeCommitPr[]> {\n logger.debug('getPrList()');\n\n if (config.prList) {\n return config.prList;\n }\n\n const listPrsResponse = await client.listPullRequests(config.repository!);\n const fetchedPrs: CodeCommitPr[] = [];\n\n if (listPrsResponse && !listPrsResponse.pullRequestIds) {\n return fetchedPrs;\n }\n\n const prIds = coerceArray(listPrsResponse.pullRequestIds);\n\n for (const prId of prIds) {\n const prRes = await client.getPr(prId);\n\n if (!prRes?.pullRequest) {\n continue;\n }\n const prInfo = prRes.pullRequest;\n const pr: CodeCommitPr = {\n targetBranch: prInfo.pullRequestTargets![0].destinationReference!,\n sourceBranch: prInfo.pullRequestTargets![0].sourceReference!,\n destinationCommit: prInfo.pullRequestTargets![0].destinationCommit!,\n sourceCommit: prInfo.pullRequestTargets![0].sourceCommit!,\n state:\n prInfo.pullRequestStatus === PullRequestStatusEnum.OPEN\n ? 'open'\n : 'closed',\n number: Number.parseInt(prId),\n title: prInfo.title!,\n body: prInfo.description!,\n };\n fetchedPrs.push(pr);\n }\n\n config.prList = fetchedPrs;\n\n logger.debug(`Retrieved Pull Requests, count: ${fetchedPrs.length}`);\n return fetchedPrs;\n}\n\nexport async function findPr({\n branchName,\n prTitle,\n state = 'all',\n}: FindPRConfig): Promise<CodeCommitPr | null> {\n let prsFiltered: CodeCommitPr[] = [];\n try {\n const prs = await getPrList();\n const refsHeadBranchName = getNewBranchName(branchName);\n prsFiltered = prs.filter(\n (item) => item.sourceBranch === refsHeadBranchName,\n );\n\n if (prTitle) {\n prsFiltered = prsFiltered.filter(\n (item) => item.title.toUpperCase() === prTitle.toUpperCase(),\n );\n }\n\n switch (state) {\n case 'all':\n break;\n case '!open':\n prsFiltered = prsFiltered.filter((item) => item.state !== 'open');\n break;\n default:\n prsFiltered = prsFiltered.filter((item) => item.state === 'open');\n break;\n }\n } catch (err) {\n logger.error({ err }, 'findPr error');\n }\n if (prsFiltered.length === 0) {\n return null;\n }\n return prsFiltered[0];\n}\n\nexport async function getBranchPr(\n branchName: string,\n): Promise<CodeCommitPr | null> {\n logger.debug(`getBranchPr(${branchName})`);\n const existingPr = await findPr({\n branchName,\n state: 'open',\n });\n return existingPr ? getPr(existingPr.number) : null;\n}\n\nexport async function getPr(\n pullRequestId: number,\n): Promise<CodeCommitPr | null> {\n logger.debug(`getPr(${pullRequestId})`);\n const prRes = await client.getPr(`${pullRequestId}`);\n\n if (!prRes?.pullRequest) {\n return null;\n }\n\n const prInfo = prRes.pullRequest;\n let prState: PrState;\n if (prInfo.pullRequestTargets![0].mergeMetadata?.isMerged) {\n prState = 'merged';\n } else {\n prState =\n prInfo.pullRequestStatus === PullRequestStatusEnum.OPEN\n ? 'open'\n : 'closed';\n }\n\n return {\n sourceBranch: prInfo.pullRequestTargets![0].sourceReference!,\n sourceCommit: prInfo.pullRequestTargets![0].sourceCommit!,\n state: prState,\n number: pullRequestId,\n title: prInfo.title!,\n targetBranch: prInfo.pullRequestTargets![0].destinationReference!,\n destinationCommit: prInfo.pullRequestTargets![0].destinationCommit!,\n body: prInfo.description!,\n };\n}\n\nexport async function getRepos(): Promise<string[]> {\n logger.debug('Autodiscovering AWS CodeCommit repositories');\n\n let reposRes: ListRepositoriesOutput;\n try {\n reposRes = await client.listRepositories();\n //todo do we need pagination? maximum number of repos is 1000 without pagination, also the same for free account\n } catch (error) {\n logger.error({ error }, 'Could not retrieve repositories');\n return [];\n }\n\n const res: string[] = [];\n\n const repoNames = coerceArray(reposRes?.repositories);\n\n for (const repo of repoNames) {\n if (repo.repositoryName) {\n res.push(repo.repositoryName);\n }\n }\n\n return res;\n}\n\nexport function massageMarkdown(input: string): string {\n // Remove any HTML we use\n return input\n .replace(\n 'you tick the rebase/retry checkbox',\n 'PR is renamed to start with \"rebase!\"',\n )\n .replace(\n 'checking the rebase/retry box above',\n 'renaming the PR to start with \"rebase!\"',\n )\n .replace(regEx(/<\\/?summary>/g), '**')\n .replace(regEx(/<\\/?details>/g), '')\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/\\]\\(\\.\\.\\/pull\\//g), '](../../pull-requests/')\n .replace(\n regEx(/(?<hiddenComment><!--renovate-(?:debug|config-hash):.*?-->)/g),\n '[//]: # ($<hiddenComment>)',\n );\n}\n\n/**\n * Unsed, no Dashboard\n */\nexport function maxBodyLength(): number {\n return Infinity;\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n const fileRes = await client.getFile(\n repoName ?? config.repository,\n fileName,\n branchOrTag,\n );\n if (!fileRes?.fileContent) {\n return null;\n }\n const buf = Buffer.from(fileRes.fileContent);\n return buf.toString();\n}\n\nconst AMAZON_MAX_BODY_LENGTH = 10239;\n\nexport async function createPr({\n sourceBranch,\n targetBranch,\n prTitle: title,\n prBody: body,\n}: CreatePRConfig): Promise<CodeCommitPr> {\n const description = smartTruncate(sanitize(body), AMAZON_MAX_BODY_LENGTH);\n\n const prCreateRes = await client.createPr(\n title,\n sanitize(description),\n sourceBranch,\n targetBranch,\n config.repository,\n );\n\n if (\n !prCreateRes.pullRequest?.title ||\n !prCreateRes.pullRequest?.pullRequestId ||\n !prCreateRes.pullRequest?.description ||\n !prCreateRes.pullRequest?.pullRequestTargets?.length\n ) {\n throw new Error('Could not create pr, missing PR info');\n }\n\n return {\n number: Number.parseInt(prCreateRes.pullRequest.pullRequestId),\n state: 'open',\n title: prCreateRes.pullRequest.title,\n sourceBranch,\n targetBranch,\n sourceCommit: prCreateRes.pullRequest.pullRequestTargets[0].sourceCommit!,\n destinationCommit:\n prCreateRes.pullRequest.pullRequestTargets[0].destinationCommit!,\n sourceRepo: config.repository,\n body: prCreateRes.pullRequest.description,\n };\n}\n\nexport async function updatePr({\n number: prNo,\n prTitle: title,\n prBody: body,\n state,\n}: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prNo}, ${title}, body)`);\n\n let cachedPr: CodeCommitPr | undefined = undefined;\n const cachedPrs = config.prList ?? [];\n for (const p of cachedPrs) {\n if (p.number === prNo) {\n cachedPr = p;\n }\n }\n\n if (body && cachedPr?.body !== body) {\n await client.updatePrDescription(\n `${prNo}`,\n smartTruncate(sanitize(body), AMAZON_MAX_BODY_LENGTH),\n );\n }\n\n if (title && cachedPr?.title !== title) {\n await client.updatePrTitle(`${prNo}`, title);\n }\n\n const prStatusInput =\n state === 'closed'\n ? PullRequestStatusEnum.CLOSED\n : PullRequestStatusEnum.OPEN;\n if (cachedPr?.state !== prStatusInput) {\n try {\n await client.updatePrStatus(`${prNo}`, prStatusInput);\n } catch {\n // safety check\n // do nothing, it's ok to fail sometimes when trying to update from open to open or from closed to closed.\n }\n }\n}\n\n// Auto-Merge not supported currently.\n/* v8 ignore next */\nexport async function mergePr({\n branchName,\n id: prNo,\n strategy,\n}: MergePRConfig): Promise<boolean> {\n logger.debug(`mergePr(${prNo}, ${branchName!})`);\n await client.getPr(`${prNo}`);\n return Promise.resolve(false);\n //\n // /* v8 ignore next */\n // if (!prOut) {\n // return false;\n // }\n // const pReq = prOut.pullRequest;\n // const targets = pReq?.pullRequestTargets;\n //\n // /* v8 ignore next */\n // if (!targets) {\n // return false;\n // }\n //\n // if (strategy === 'rebase') {\n // logger.warn('CodeCommit does not support a \"rebase\" strategy.');\n // return false;\n // }\n //\n // try {\n // if (strategy === 'auto' || strategy === 'squash') {\n // await client.squashMerge(\n // targets[0].repositoryName!,\n // targets[0].sourceReference!,\n // targets[0].destinationReference!,\n // pReq?.title\n // );\n // } else if (strategy === 'fast-forward') {\n // await client.fastForwardMerge(\n // targets[0].repositoryName!,\n // targets[0].sourceReference!,\n // targets[0].destinationReference!\n // );\n // } else {\n // logger.debug(`unsupported strategy`);\n // return false;\n // }\n // } catch (err) {\n // logger.debug({ err }, `PR merge error`);\n // logger.info({ pr: prNo }, 'PR automerge failed');\n // return false;\n // }\n //\n // logger.trace(`Updating PR ${prNo} to status ${PullRequestStatusEnum.CLOSED}`);\n //\n // try {\n // const response = await client.updatePrStatus(\n // `${prNo}`,\n // PullRequestStatusEnum.CLOSED\n // );\n // const isClosed =\n // response.pullRequest?.pullRequestStatus === PullRequestStatusEnum.CLOSED;\n //\n // if (!isClosed) {\n // logger.warn(\n // {\n // pullRequestId: prNo,\n // status: response.pullRequest?.pullRequestStatus,\n // },\n // `Expected PR to have status`\n // );\n // }\n // return true;\n // } catch (err) {\n // logger.debug({ err }, 'Failed to set the PR as Closed.');\n // return false;\n // }\n}\n\nexport async function addReviewers(\n prNo: number,\n reviewers: string[],\n): Promise<void> {\n const numberOfApprovers = reviewers.length;\n const approvalRuleContents = `{\"Version\":\"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\":${numberOfApprovers},\"ApprovalPoolMembers\": ${JSON.stringify(\n reviewers,\n )}}]}`;\n const res = await client.createPrApprovalRule(\n `${prNo}`,\n approvalRuleContents,\n );\n if (res) {\n const approvalRule = res.approvalRule;\n logger.debug({ approvalRule }, `Approval Rule Added to PR #${prNo}:`);\n }\n}\n\n/* v8 ignore next */\nexport function addAssignees(iid: number, assignees: string[]): Promise<void> {\n // CodeCommit does not support adding reviewers\n return Promise.resolve();\n}\n\n/* v8 ignore next */\nexport function findIssue(title: string): Promise<Issue | null> {\n // CodeCommit does not have issues\n return Promise.resolve(null);\n}\n\n/* v8 ignore next */\nexport function ensureIssue({\n title,\n}: EnsureIssueConfig): Promise<EnsureIssueResult | null> {\n // CodeCommit does not have issues\n return Promise.resolve(null);\n}\n\n/* v8 ignore next */\nexport function getIssueList(): Promise<Issue[]> {\n // CodeCommit does not have issues\n return Promise.resolve([]);\n}\n\n/* v8 ignore next */\nexport function ensureIssueClosing(title: string): Promise<void> {\n // CodeCommit does not have issues\n return Promise.resolve();\n}\n\n/* v8 ignore next */\nexport function deleteLabel(prNumber: number, label: string): Promise<void> {\n return Promise.resolve();\n}\n\n// Returns the combined status for a branch.\n/* v8 ignore next */\nexport function getBranchStatus(branchName: string): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n logger.debug(\n 'returning branch status yellow, because getBranchStatus isnt supported on aws yet',\n );\n return Promise.resolve('yellow');\n}\n\n/* v8 ignore next */\nexport function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n logger.debug(`getBranchStatusCheck(${branchName}, context=${context})`);\n logger.debug(\n 'returning null, because getBranchStatusCheck is not supported on aws yet',\n );\n return Promise.resolve(null);\n}\n\n/* v8 ignore next */\nexport function setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: targetUrl,\n}: BranchStatusConfig): Promise<void> {\n return Promise.resolve();\n}\n\nexport async function ensureComment({\n number,\n topic,\n content,\n}: EnsureCommentConfig): Promise<boolean> {\n logger.debug(`ensureComment(${number}, ${topic!}, content)`);\n const header = topic ? `### ${topic}\\n\\n` : '';\n const body = `${header}${sanitize(content)}`;\n let prCommentsResponse: GetCommentsForPullRequestOutput;\n try {\n prCommentsResponse = await client.getPrComments(`${number}`);\n } catch (err) {\n logger.debug({ err }, 'Unable to retrieve pr comments');\n return false;\n }\n\n let commentId: string | undefined = undefined;\n let commentNeedsUpdating = false;\n\n if (!prCommentsResponse?.commentsForPullRequestData) {\n return false;\n }\n\n for (const commentObj of prCommentsResponse.commentsForPullRequestData) {\n if (!commentObj?.comments) {\n continue;\n }\n const firstCommentContent = commentObj.comments[0].content;\n if (\n (topic && firstCommentContent?.startsWith(header)) === true ||\n (!topic && firstCommentContent === body)\n ) {\n commentId = commentObj.comments[0].commentId;\n commentNeedsUpdating = firstCommentContent !== body;\n break;\n }\n }\n\n if (!commentId) {\n const prs = await getPrList();\n const thisPr = prs.filter((item) => item.number === number);\n\n if (!thisPr[0].sourceCommit || !thisPr[0].destinationCommit) {\n return false;\n }\n\n await client.createPrComment(\n `${number}`,\n config.repository,\n body,\n thisPr[0].destinationCommit,\n thisPr[0].sourceCommit,\n );\n logger.info(\n { repository: config.repository, prNo: number, topic },\n 'Comment added',\n );\n } else if (commentNeedsUpdating && commentId) {\n await client.updateComment(commentId, body);\n\n logger.debug(\n { repository: config.repository, prNo: number, topic },\n 'Comment updated',\n );\n } else {\n logger.debug(\n { repository: config.repository, prNo: number, topic },\n 'Comment is already update-to-date',\n );\n }\n\n return true;\n}\n\nexport async function ensureCommentRemoval(\n removeConfig: EnsureCommentRemovalConfig,\n): Promise<void> {\n const { number: prNo } = removeConfig;\n const key =\n removeConfig.type === 'by-topic'\n ? removeConfig.topic\n : removeConfig.content;\n logger.debug(`Ensuring comment \"${key}\" in #${prNo} is removed`);\n\n let prCommentsResponse: GetCommentsForPullRequestOutput;\n try {\n prCommentsResponse = await client.getPrComments(`${prNo}`);\n } catch (err) {\n logger.debug({ err }, 'Unable to retrieve pr comments');\n return;\n }\n\n if (!prCommentsResponse?.commentsForPullRequestData) {\n logger.debug('commentsForPullRequestData not found');\n return;\n }\n\n let commentIdToRemove: string | undefined;\n for (const commentObj of prCommentsResponse.commentsForPullRequestData) {\n if (!commentObj?.comments) {\n logger.debug(\n 'comments object not found under commentsForPullRequestData',\n );\n continue;\n }\n\n for (const comment of commentObj.comments) {\n if (\n (removeConfig.type === 'by-topic' &&\n comment.content?.startsWith(`### ${removeConfig.topic}\\n\\n`)) ===\n true ||\n (removeConfig.type === 'by-content' &&\n removeConfig.content === comment.content?.trim())\n ) {\n commentIdToRemove = comment.commentId;\n break;\n }\n }\n if (commentIdToRemove) {\n await client.deleteComment(commentIdToRemove);\n logger.debug(`comment \"${key}\" in PR #${prNo} was removed`);\n break;\n }\n }\n}\n"]}
|
|
@@ -5,6 +5,7 @@ import type { Branch, CombinedCommitStatus, Comment, CommitStatus, CommitStatusC
|
|
|
5
5
|
export declare const forgejoHttp: ForgejoHttp;
|
|
6
6
|
export declare function getCurrentUser(options?: ForgejoHttpOptions): Promise<User>;
|
|
7
7
|
export declare function getVersion(options?: ForgejoHttpOptions): Promise<string>;
|
|
8
|
+
export declare function isOrg(organization: string): Promise<boolean>;
|
|
8
9
|
export declare function searchRepos(params: RepoSearchParams, options?: ForgejoHttpOptions): Promise<Repo[]>;
|
|
9
10
|
export declare function orgListRepos(organization: string, options?: ForgejoHttpOptions): Promise<Repo[]>;
|
|
10
11
|
export declare function getRepo(repoPath: string, options?: ForgejoHttpOptions): Promise<Repo>;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.renovateToForgejoStatusMapping = exports.forgejoToRenovateStatusMapping = exports.forgejoHttp = void 0;
|
|
4
4
|
exports.getCurrentUser = getCurrentUser;
|
|
5
5
|
exports.getVersion = getVersion;
|
|
6
|
+
exports.isOrg = isOrg;
|
|
6
7
|
exports.searchRepos = searchRepos;
|
|
7
8
|
exports.orgListRepos = orgListRepos;
|
|
8
9
|
exports.getRepo = getRepo;
|
|
@@ -30,7 +31,9 @@ exports.getComments = getComments;
|
|
|
30
31
|
exports.createCommitStatus = createCommitStatus;
|
|
31
32
|
exports.getCombinedCommitStatus = getCombinedCommitStatus;
|
|
32
33
|
exports.getBranch = getBranch;
|
|
34
|
+
const is_1 = require("@sindresorhus/is");
|
|
33
35
|
const logger_1 = require("../../../logger");
|
|
36
|
+
const repository_1 = require("../../../util/cache/repository");
|
|
34
37
|
const forgejo_1 = require("../../../util/http/forgejo");
|
|
35
38
|
const string_1 = require("../../../util/string");
|
|
36
39
|
const url_1 = require("../../../util/url");
|
|
@@ -55,6 +58,29 @@ async function getVersion(options) {
|
|
|
55
58
|
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
|
56
59
|
return res.body.version;
|
|
57
60
|
}
|
|
61
|
+
async function isOrg(organization) {
|
|
62
|
+
const repoCache = (0, repository_1.getCache)();
|
|
63
|
+
repoCache.platform ??= {};
|
|
64
|
+
repoCache.platform.forgejo ??= {};
|
|
65
|
+
repoCache.platform.forgejo.orgs ??= {};
|
|
66
|
+
const cached = repoCache.platform.forgejo.orgs[organization];
|
|
67
|
+
if ((0, is_1.isBoolean)(cached)) {
|
|
68
|
+
return cached;
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
const url = `${utils_1.API_PATH}/orgs/${organization}`;
|
|
72
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url);
|
|
73
|
+
repoCache.platform.forgejo.orgs[organization] = res.statusCode === 200;
|
|
74
|
+
return res.statusCode === 200;
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
if (err.statusCode === 404) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
// throw other errors
|
|
81
|
+
throw err;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
58
84
|
async function searchRepos(params, options) {
|
|
59
85
|
const query = (0, url_1.getQueryString)(params);
|
|
60
86
|
const url = `${utils_1.API_PATH}/repos/search?${query}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgejo-helper.js","sourceRoot":"","sources":["../../../../lib/modules/platform/forgejo/forgejo-helper.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport type { ForgejoHttpOptions } from '../../../util/http/forgejo';\nimport { ForgejoHttp } from '../../../util/http/forgejo';\nimport { fromBase64 } from '../../../util/string';\nimport { getQueryString } from '../../../util/url';\nimport type {\n Branch,\n CombinedCommitStatus,\n Comment,\n CommentCreateParams,\n CommentUpdateParams,\n CommitStatus,\n CommitStatusCreateParams,\n CommitStatusType,\n Issue,\n IssueCreateParams,\n IssueSearchParams,\n IssueUpdateLabelsParams,\n IssueUpdateParams,\n Label,\n PR,\n PRCreateParams,\n PRMergeParams,\n PRUpdateParams,\n PrReviewersParams,\n Repo,\n RepoContents,\n RepoSearchParams,\n RepoSearchResults,\n User,\n} from './types';\nimport { API_PATH } from './utils';\n\nexport const forgejoHttp = new ForgejoHttp();\n\nconst urlEscape = (raw: string): string => encodeURIComponent(raw);\nconst commitStatusStates: CommitStatusType[] = [\n 'unknown',\n 'success',\n 'pending',\n 'warning',\n 'failure',\n 'error',\n];\n\nexport async function getCurrentUser(\n options?: ForgejoHttpOptions,\n): Promise<User> {\n const url = `${API_PATH}/user`;\n const res = await forgejoHttp.getJsonUnchecked<User>(url, options);\n return res.body;\n}\n\nexport async function getVersion(\n options?: ForgejoHttpOptions,\n): Promise<string> {\n const url = `${API_PATH}/version`;\n const res = await forgejoHttp.getJsonUnchecked<{ version: string }>(\n url,\n options,\n );\n return res.body.version;\n}\n\nexport async function searchRepos(\n params: RepoSearchParams,\n options?: ForgejoHttpOptions,\n): Promise<Repo[]> {\n const query = getQueryString(params);\n const url = `${API_PATH}/repos/search?${query}`;\n const res = await forgejoHttp.getJsonUnchecked<RepoSearchResults>(url, {\n ...options,\n paginate: true,\n });\n\n if (!res.body.ok) {\n throw new Error(\n 'Unable to search for repositories, ok flag has not been set',\n );\n }\n\n return res.body.data;\n}\n\nexport async function orgListRepos(\n organization: string,\n options?: ForgejoHttpOptions,\n): Promise<Repo[]> {\n const url = `${API_PATH}/orgs/${organization}/repos`;\n const res = await forgejoHttp.getJsonUnchecked<Repo[]>(url, {\n ...options,\n paginate: true,\n });\n\n return res.body;\n}\n\nexport async function getRepo(\n repoPath: string,\n options?: ForgejoHttpOptions,\n): Promise<Repo> {\n const url = `${API_PATH}/repos/${repoPath}`;\n const res = await forgejoHttp.getJsonUnchecked<Repo>(url, options);\n return res.body;\n}\n\nexport async function getRepoContents(\n repoPath: string,\n filePath: string,\n ref?: string | null,\n options?: ForgejoHttpOptions,\n): Promise<RepoContents> {\n const query = getQueryString(ref ? { ref } : {});\n const url = `${API_PATH}/repos/${repoPath}/contents/${urlEscape(\n filePath,\n )}?${query}`;\n const res = await forgejoHttp.getJsonUnchecked<RepoContents>(url, options);\n\n if (res.body.content) {\n res.body.contentString = fromBase64(res.body.content);\n }\n\n return res.body;\n}\n\nexport async function createPR(\n repoPath: string,\n params: PRCreateParams,\n options?: ForgejoHttpOptions,\n): Promise<PR> {\n const url = `${API_PATH}/repos/${repoPath}/pulls`;\n const res = await forgejoHttp.postJson<PR>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updatePR(\n repoPath: string,\n idx: number,\n params: PRUpdateParams,\n options?: ForgejoHttpOptions,\n): Promise<PR> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}`;\n const res = await forgejoHttp.patchJson<PR>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function closePR(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n await updatePR(repoPath, idx, {\n ...options,\n state: 'closed',\n });\n}\n\nexport async function mergePR(\n repoPath: string,\n idx: number,\n params: PRMergeParams,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}/merge`;\n await forgejoHttp.postJson(url, {\n ...options,\n body: params,\n });\n}\n\nexport async function getPR(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<PR> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}`;\n const res = await forgejoHttp.getJsonUnchecked<PR>(url, options);\n return res.body;\n}\n\nexport async function getPRByBranch(\n repoPath: string,\n base: string,\n head: string,\n options?: ForgejoHttpOptions,\n): Promise<PR | null> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${base}/${head}`;\n try {\n const res = await forgejoHttp.getJsonUnchecked<PR>(url, options);\n return res.body;\n } catch (err) {\n logger.trace({ err }, 'Error while fetching PR');\n if (err.statusCode !== 404) {\n logger.debug({ err }, 'Error while fetching PR');\n }\n return null;\n }\n}\n\nexport async function requestPrReviewers(\n repoPath: string,\n idx: number,\n params: PrReviewersParams,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}/requested_reviewers`;\n await forgejoHttp.postJson(url, {\n ...options,\n body: params,\n });\n}\n\nexport async function createIssue(\n repoPath: string,\n params: IssueCreateParams,\n options?: ForgejoHttpOptions,\n): Promise<Issue> {\n const url = `${API_PATH}/repos/${repoPath}/issues`;\n const res = await forgejoHttp.postJson<Issue>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updateIssue(\n repoPath: string,\n idx: number,\n params: IssueUpdateParams,\n options?: ForgejoHttpOptions,\n): Promise<Issue> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${idx}`;\n const res = await forgejoHttp.patchJson<Issue>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updateIssueLabels(\n repoPath: string,\n idx: number,\n params: IssueUpdateLabelsParams,\n options?: ForgejoHttpOptions,\n): Promise<Label[]> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${idx}/labels`;\n const res = await forgejoHttp.putJson<Label[]>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function closeIssue(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n await updateIssue(repoPath, idx, {\n ...options,\n state: 'closed',\n });\n}\n\nexport async function searchIssues(\n repoPath: string,\n params: IssueSearchParams,\n options?: ForgejoHttpOptions,\n): Promise<Issue[]> {\n const query = getQueryString({ ...params, type: 'issues' });\n const url = `${API_PATH}/repos/${repoPath}/issues?${query}`;\n const res = await forgejoHttp.getJsonUnchecked<Issue[]>(url, {\n ...options,\n paginate: true,\n });\n\n return res.body;\n}\n\nexport async function getIssue(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<Issue> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${idx}`;\n const res = await forgejoHttp.getJsonUnchecked<Issue>(url, options);\n return res.body;\n}\n\nexport async function getRepoLabels(\n repoPath: string,\n options?: ForgejoHttpOptions,\n): Promise<Label[]> {\n const url = `${API_PATH}/repos/${repoPath}/labels`;\n const res = await forgejoHttp.getJsonUnchecked<Label[]>(url, options);\n\n return res.body;\n}\n\nexport async function getOrgLabels(\n orgName: string,\n options?: ForgejoHttpOptions,\n): Promise<Label[]> {\n const url = `${API_PATH}/orgs/${orgName}/labels`;\n const res = await forgejoHttp.getJsonUnchecked<Label[]>(url, options);\n\n return res.body;\n}\n\nexport async function unassignLabel(\n repoPath: string,\n issue: number,\n label: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${issue}/labels/${label}`;\n await forgejoHttp.deleteJson(url, options);\n}\n\nexport async function createComment(\n repoPath: string,\n issue: number,\n body: string,\n options?: ForgejoHttpOptions,\n): Promise<Comment> {\n const params: CommentCreateParams = { body };\n const url = `${API_PATH}/repos/${repoPath}/issues/${issue}/comments`;\n const res = await forgejoHttp.postJson<Comment>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updateComment(\n repoPath: string,\n idx: number,\n body: string,\n options?: ForgejoHttpOptions,\n): Promise<Comment> {\n const params: CommentUpdateParams = { body };\n const url = `${API_PATH}/repos/${repoPath}/issues/comments/${idx}`;\n const res = await forgejoHttp.patchJson<Comment>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function deleteComment(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/issues/comments/${idx}`;\n await forgejoHttp.deleteJson(url, options);\n}\n\nexport async function getComments(\n repoPath: string,\n issue: number,\n options?: ForgejoHttpOptions,\n): Promise<Comment[]> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${issue}/comments`;\n const res = await forgejoHttp.getJsonUnchecked<Comment[]>(url, options);\n\n return res.body;\n}\n\nexport async function createCommitStatus(\n repoPath: string,\n branchCommit: string,\n params: CommitStatusCreateParams,\n options?: ForgejoHttpOptions,\n): Promise<CommitStatus> {\n const url = `${API_PATH}/repos/${repoPath}/statuses/${branchCommit}`;\n const res = await forgejoHttp.postJson<CommitStatus>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport const forgejoToRenovateStatusMapping: Record<\n CommitStatusType,\n BranchStatus | null\n> = {\n unknown: 'yellow',\n success: 'green',\n pending: 'yellow',\n warning: 'red',\n failure: 'red',\n error: 'red',\n};\n\nexport const renovateToForgejoStatusMapping: Record<\n BranchStatus,\n CommitStatusType\n> = {\n green: 'success',\n yellow: 'pending',\n red: 'failure',\n};\n\nfunction filterStatus(data: CommitStatus[]): CommitStatus[] {\n const ret: Record<string, CommitStatus> = {};\n for (const i of data) {\n if (!ret[i.context] || ret[i.context].id < i.id) {\n ret[i.context] = i;\n }\n }\n return Object.values(ret);\n}\n\nexport async function getCombinedCommitStatus(\n repoPath: string,\n branchName: string,\n options?: ForgejoHttpOptions,\n): Promise<CombinedCommitStatus> {\n const url = `${API_PATH}/repos/${repoPath}/commits/${urlEscape(\n branchName,\n )}/statuses`;\n const res = await forgejoHttp.getJsonUnchecked<CommitStatus[]>(url, {\n ...options,\n paginate: true,\n });\n\n let worstState = 0;\n const statuses = filterStatus(res.body);\n for (const cs of statuses) {\n worstState = Math.max(worstState, commitStatusStates.indexOf(cs.status));\n }\n\n return {\n worstStatus: commitStatusStates[worstState],\n statuses,\n };\n}\n\nexport async function getBranch(\n repoPath: string,\n branchName: string,\n options?: ForgejoHttpOptions,\n): Promise<Branch> {\n const url = `${API_PATH}/repos/${repoPath}/branches/${urlEscape(branchName)}`;\n const res = await forgejoHttp.getJsonUnchecked<Branch>(url, options);\n\n return res.body;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"forgejo-helper.js","sourceRoot":"","sources":["../../../../lib/modules/platform/forgejo/forgejo-helper.ts"],"names":[],"mappings":"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","sourcesContent":["import { isBoolean } from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport { getCache } from '../../../util/cache/repository';\nimport type { ForgejoHttpOptions } from '../../../util/http/forgejo';\nimport { ForgejoHttp } from '../../../util/http/forgejo';\nimport { fromBase64 } from '../../../util/string';\nimport { getQueryString } from '../../../util/url';\nimport type {\n Branch,\n CombinedCommitStatus,\n Comment,\n CommentCreateParams,\n CommentUpdateParams,\n CommitStatus,\n CommitStatusCreateParams,\n CommitStatusType,\n Issue,\n IssueCreateParams,\n IssueSearchParams,\n IssueUpdateLabelsParams,\n IssueUpdateParams,\n Label,\n PR,\n PRCreateParams,\n PRMergeParams,\n PRUpdateParams,\n PrReviewersParams,\n Repo,\n RepoContents,\n RepoSearchParams,\n RepoSearchResults,\n User,\n} from './types';\nimport { API_PATH } from './utils';\n\nexport const forgejoHttp = new ForgejoHttp();\n\nconst urlEscape = (raw: string): string => encodeURIComponent(raw);\nconst commitStatusStates: CommitStatusType[] = [\n 'unknown',\n 'success',\n 'pending',\n 'warning',\n 'failure',\n 'error',\n];\n\nexport async function getCurrentUser(\n options?: ForgejoHttpOptions,\n): Promise<User> {\n const url = `${API_PATH}/user`;\n const res = await forgejoHttp.getJsonUnchecked<User>(url, options);\n return res.body;\n}\n\nexport async function getVersion(\n options?: ForgejoHttpOptions,\n): Promise<string> {\n const url = `${API_PATH}/version`;\n const res = await forgejoHttp.getJsonUnchecked<{ version: string }>(\n url,\n options,\n );\n return res.body.version;\n}\n\nexport async function isOrg(organization: string): Promise<boolean> {\n const repoCache = getCache();\n repoCache.platform ??= {};\n repoCache.platform.forgejo ??= {};\n repoCache.platform.forgejo.orgs ??= {};\n const cached = repoCache.platform.forgejo.orgs[organization];\n if (isBoolean(cached)) {\n return cached;\n }\n try {\n const url = `${API_PATH}/orgs/${organization}`;\n const res = await forgejoHttp.getJsonUnchecked(url);\n repoCache.platform.forgejo.orgs[organization] = res.statusCode === 200;\n return res.statusCode === 200;\n } catch (err) {\n if (err.statusCode === 404) {\n return false;\n }\n // throw other errors\n throw err;\n }\n}\n\nexport async function searchRepos(\n params: RepoSearchParams,\n options?: ForgejoHttpOptions,\n): Promise<Repo[]> {\n const query = getQueryString(params);\n const url = `${API_PATH}/repos/search?${query}`;\n const res = await forgejoHttp.getJsonUnchecked<RepoSearchResults>(url, {\n ...options,\n paginate: true,\n });\n\n if (!res.body.ok) {\n throw new Error(\n 'Unable to search for repositories, ok flag has not been set',\n );\n }\n\n return res.body.data;\n}\n\nexport async function orgListRepos(\n organization: string,\n options?: ForgejoHttpOptions,\n): Promise<Repo[]> {\n const url = `${API_PATH}/orgs/${organization}/repos`;\n const res = await forgejoHttp.getJsonUnchecked<Repo[]>(url, {\n ...options,\n paginate: true,\n });\n\n return res.body;\n}\n\nexport async function getRepo(\n repoPath: string,\n options?: ForgejoHttpOptions,\n): Promise<Repo> {\n const url = `${API_PATH}/repos/${repoPath}`;\n const res = await forgejoHttp.getJsonUnchecked<Repo>(url, options);\n return res.body;\n}\n\nexport async function getRepoContents(\n repoPath: string,\n filePath: string,\n ref?: string | null,\n options?: ForgejoHttpOptions,\n): Promise<RepoContents> {\n const query = getQueryString(ref ? { ref } : {});\n const url = `${API_PATH}/repos/${repoPath}/contents/${urlEscape(\n filePath,\n )}?${query}`;\n const res = await forgejoHttp.getJsonUnchecked<RepoContents>(url, options);\n\n if (res.body.content) {\n res.body.contentString = fromBase64(res.body.content);\n }\n\n return res.body;\n}\n\nexport async function createPR(\n repoPath: string,\n params: PRCreateParams,\n options?: ForgejoHttpOptions,\n): Promise<PR> {\n const url = `${API_PATH}/repos/${repoPath}/pulls`;\n const res = await forgejoHttp.postJson<PR>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updatePR(\n repoPath: string,\n idx: number,\n params: PRUpdateParams,\n options?: ForgejoHttpOptions,\n): Promise<PR> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}`;\n const res = await forgejoHttp.patchJson<PR>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function closePR(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n await updatePR(repoPath, idx, {\n ...options,\n state: 'closed',\n });\n}\n\nexport async function mergePR(\n repoPath: string,\n idx: number,\n params: PRMergeParams,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}/merge`;\n await forgejoHttp.postJson(url, {\n ...options,\n body: params,\n });\n}\n\nexport async function getPR(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<PR> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}`;\n const res = await forgejoHttp.getJsonUnchecked<PR>(url, options);\n return res.body;\n}\n\nexport async function getPRByBranch(\n repoPath: string,\n base: string,\n head: string,\n options?: ForgejoHttpOptions,\n): Promise<PR | null> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${base}/${head}`;\n try {\n const res = await forgejoHttp.getJsonUnchecked<PR>(url, options);\n return res.body;\n } catch (err) {\n logger.trace({ err }, 'Error while fetching PR');\n if (err.statusCode !== 404) {\n logger.debug({ err }, 'Error while fetching PR');\n }\n return null;\n }\n}\n\nexport async function requestPrReviewers(\n repoPath: string,\n idx: number,\n params: PrReviewersParams,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}/requested_reviewers`;\n await forgejoHttp.postJson(url, {\n ...options,\n body: params,\n });\n}\n\nexport async function createIssue(\n repoPath: string,\n params: IssueCreateParams,\n options?: ForgejoHttpOptions,\n): Promise<Issue> {\n const url = `${API_PATH}/repos/${repoPath}/issues`;\n const res = await forgejoHttp.postJson<Issue>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updateIssue(\n repoPath: string,\n idx: number,\n params: IssueUpdateParams,\n options?: ForgejoHttpOptions,\n): Promise<Issue> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${idx}`;\n const res = await forgejoHttp.patchJson<Issue>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updateIssueLabels(\n repoPath: string,\n idx: number,\n params: IssueUpdateLabelsParams,\n options?: ForgejoHttpOptions,\n): Promise<Label[]> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${idx}/labels`;\n const res = await forgejoHttp.putJson<Label[]>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function closeIssue(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n await updateIssue(repoPath, idx, {\n ...options,\n state: 'closed',\n });\n}\n\nexport async function searchIssues(\n repoPath: string,\n params: IssueSearchParams,\n options?: ForgejoHttpOptions,\n): Promise<Issue[]> {\n const query = getQueryString({ ...params, type: 'issues' });\n const url = `${API_PATH}/repos/${repoPath}/issues?${query}`;\n const res = await forgejoHttp.getJsonUnchecked<Issue[]>(url, {\n ...options,\n paginate: true,\n });\n\n return res.body;\n}\n\nexport async function getIssue(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<Issue> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${idx}`;\n const res = await forgejoHttp.getJsonUnchecked<Issue>(url, options);\n return res.body;\n}\n\nexport async function getRepoLabels(\n repoPath: string,\n options?: ForgejoHttpOptions,\n): Promise<Label[]> {\n const url = `${API_PATH}/repos/${repoPath}/labels`;\n const res = await forgejoHttp.getJsonUnchecked<Label[]>(url, options);\n\n return res.body;\n}\n\nexport async function getOrgLabels(\n orgName: string,\n options?: ForgejoHttpOptions,\n): Promise<Label[]> {\n const url = `${API_PATH}/orgs/${orgName}/labels`;\n const res = await forgejoHttp.getJsonUnchecked<Label[]>(url, options);\n\n return res.body;\n}\n\nexport async function unassignLabel(\n repoPath: string,\n issue: number,\n label: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${issue}/labels/${label}`;\n await forgejoHttp.deleteJson(url, options);\n}\n\nexport async function createComment(\n repoPath: string,\n issue: number,\n body: string,\n options?: ForgejoHttpOptions,\n): Promise<Comment> {\n const params: CommentCreateParams = { body };\n const url = `${API_PATH}/repos/${repoPath}/issues/${issue}/comments`;\n const res = await forgejoHttp.postJson<Comment>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updateComment(\n repoPath: string,\n idx: number,\n body: string,\n options?: ForgejoHttpOptions,\n): Promise<Comment> {\n const params: CommentUpdateParams = { body };\n const url = `${API_PATH}/repos/${repoPath}/issues/comments/${idx}`;\n const res = await forgejoHttp.patchJson<Comment>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function deleteComment(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/issues/comments/${idx}`;\n await forgejoHttp.deleteJson(url, options);\n}\n\nexport async function getComments(\n repoPath: string,\n issue: number,\n options?: ForgejoHttpOptions,\n): Promise<Comment[]> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${issue}/comments`;\n const res = await forgejoHttp.getJsonUnchecked<Comment[]>(url, options);\n\n return res.body;\n}\n\nexport async function createCommitStatus(\n repoPath: string,\n branchCommit: string,\n params: CommitStatusCreateParams,\n options?: ForgejoHttpOptions,\n): Promise<CommitStatus> {\n const url = `${API_PATH}/repos/${repoPath}/statuses/${branchCommit}`;\n const res = await forgejoHttp.postJson<CommitStatus>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport const forgejoToRenovateStatusMapping: Record<\n CommitStatusType,\n BranchStatus | null\n> = {\n unknown: 'yellow',\n success: 'green',\n pending: 'yellow',\n warning: 'red',\n failure: 'red',\n error: 'red',\n};\n\nexport const renovateToForgejoStatusMapping: Record<\n BranchStatus,\n CommitStatusType\n> = {\n green: 'success',\n yellow: 'pending',\n red: 'failure',\n};\n\nfunction filterStatus(data: CommitStatus[]): CommitStatus[] {\n const ret: Record<string, CommitStatus> = {};\n for (const i of data) {\n if (!ret[i.context] || ret[i.context].id < i.id) {\n ret[i.context] = i;\n }\n }\n return Object.values(ret);\n}\n\nexport async function getCombinedCommitStatus(\n repoPath: string,\n branchName: string,\n options?: ForgejoHttpOptions,\n): Promise<CombinedCommitStatus> {\n const url = `${API_PATH}/repos/${repoPath}/commits/${urlEscape(\n branchName,\n )}/statuses`;\n const res = await forgejoHttp.getJsonUnchecked<CommitStatus[]>(url, {\n ...options,\n paginate: true,\n });\n\n let worstState = 0;\n const statuses = filterStatus(res.body);\n for (const cs of statuses) {\n worstState = Math.max(worstState, commitStatusStates.indexOf(cs.status));\n }\n\n return {\n worstStatus: commitStatusStates[worstState],\n statuses,\n };\n}\n\nexport async function getBranch(\n repoPath: string,\n branchName: string,\n options?: ForgejoHttpOptions,\n): Promise<Branch> {\n const url = `${API_PATH}/repos/${repoPath}/branches/${urlEscape(branchName)}`;\n const res = await forgejoHttp.getJsonUnchecked<Branch>(url, options);\n\n return res.body;\n}\n"]}
|
|
@@ -74,19 +74,21 @@ function getLabelList() {
|
|
|
74
74
|
logger_1.logger.debug(`Retrieved ${labels.length} repo labels`);
|
|
75
75
|
return labels;
|
|
76
76
|
});
|
|
77
|
-
const orgLabels =
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
77
|
+
const orgLabels = config.isOrgRepo
|
|
78
|
+
? helper
|
|
79
|
+
.getOrgLabels(config.orgName, {
|
|
80
|
+
memCache: false,
|
|
81
|
+
})
|
|
82
|
+
.then((labels) => {
|
|
83
|
+
logger_1.logger.debug(`Retrieved ${labels.length} org labels`);
|
|
84
|
+
return labels;
|
|
85
|
+
})
|
|
86
|
+
.catch((err) => {
|
|
87
|
+
// Will fail if owner of repo is not org
|
|
88
|
+
logger_1.logger.debug({ err }, `Unable to fetch organization labels`);
|
|
89
|
+
return [];
|
|
90
|
+
})
|
|
91
|
+
: Promise.resolve([]);
|
|
90
92
|
config.labelList = Promise.all([repoLabels, orgLabels]).then((labels) => [].concat(...labels));
|
|
91
93
|
}
|
|
92
94
|
return config.labelList;
|
|
@@ -134,10 +136,10 @@ const platform = {
|
|
|
134
136
|
botUserID = user.id;
|
|
135
137
|
botUserName = user.username;
|
|
136
138
|
const env = (0, env_1.getEnv)();
|
|
137
|
-
/* v8 ignore
|
|
139
|
+
/* v8 ignore if: experimental feature */
|
|
138
140
|
if (semver_1.default.valid(env.RENOVATE_X_PLATFORM_VERSION)) {
|
|
139
141
|
defaults.version = env.RENOVATE_X_PLATFORM_VERSION;
|
|
140
|
-
}
|
|
142
|
+
}
|
|
141
143
|
else {
|
|
142
144
|
defaults.version = await helper.getVersion({ token });
|
|
143
145
|
}
|
|
@@ -217,6 +219,13 @@ const platform = {
|
|
|
217
219
|
logger_1.logger.debug('Repository has no allowed merge methods - aborting renovation');
|
|
218
220
|
throw new Error(error_messages_1.REPOSITORY_BLOCKED);
|
|
219
221
|
}
|
|
222
|
+
try {
|
|
223
|
+
config.isOrgRepo = await helper.isOrg(repo.owner.username);
|
|
224
|
+
}
|
|
225
|
+
catch (err) {
|
|
226
|
+
logger_1.logger.debug({ err }, 'Forgejo initRepo() error');
|
|
227
|
+
throw err;
|
|
228
|
+
}
|
|
220
229
|
// Determine author email and branches
|
|
221
230
|
config.defaultBranch = repo.default_branch;
|
|
222
231
|
logger_1.logger.debug(`${repository} default branch = ${config.defaultBranch}`);
|
|
@@ -230,6 +239,7 @@ const platform = {
|
|
|
230
239
|
config.issueList = null;
|
|
231
240
|
config.labelList = null;
|
|
232
241
|
config.hasIssuesEnabled = !repo.external_tracker && repo.has_issues;
|
|
242
|
+
config.orgName = repo.owner.username;
|
|
233
243
|
return {
|
|
234
244
|
defaultBranch: config.defaultBranch,
|
|
235
245
|
isFork: !!repo.fork,
|
|
@@ -525,10 +535,10 @@ const platform = {
|
|
|
525
535
|
body,
|
|
526
536
|
};
|
|
527
537
|
}
|
|
528
|
-
catch (err)
|
|
538
|
+
catch (err) {
|
|
529
539
|
logger_1.logger.debug({ err, number }, 'Error getting issue');
|
|
530
540
|
return null;
|
|
531
|
-
}
|
|
541
|
+
}
|
|
532
542
|
},
|
|
533
543
|
async findIssue(title) {
|
|
534
544
|
const issueList = await platform.getIssueList();
|
|
@@ -727,10 +737,15 @@ const platform = {
|
|
|
727
737
|
async addReviewers(number, reviewers) {
|
|
728
738
|
logger_1.logger.debug(`Adding reviewers '${reviewers?.join(', ')}' to #${number}`);
|
|
729
739
|
try {
|
|
730
|
-
const teamReviewers = new Set(reviewers
|
|
740
|
+
const teamReviewers = new Set(reviewers
|
|
741
|
+
.filter((r) => r.startsWith('team:'))
|
|
742
|
+
.map((r) => r.substring(5)));
|
|
743
|
+
const userReviewers = new Set(reviewers.filter((r) => !r.startsWith('team:')));
|
|
731
744
|
await helper.requestPrReviewers(config.repository, number, {
|
|
732
|
-
reviewers:
|
|
733
|
-
...(teamReviewers.size && {
|
|
745
|
+
reviewers: [...userReviewers],
|
|
746
|
+
...(teamReviewers.size && {
|
|
747
|
+
team_reviewers: [...teamReviewers],
|
|
748
|
+
}),
|
|
734
749
|
});
|
|
735
750
|
}
|
|
736
751
|
catch (err) {
|