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.
Files changed (129) hide show
  1. package/dist/config/migrate-validate.js +1 -2
  2. package/dist/config/migrate-validate.js.map +1 -1
  3. package/dist/config/migration.js +0 -1
  4. package/dist/config/migration.js.map +1 -1
  5. package/dist/config/options/index.js +1 -1
  6. package/dist/config/options/index.js.map +1 -1
  7. package/dist/instrumentation/index.js +3 -4
  8. package/dist/instrumentation/index.js.map +1 -1
  9. package/dist/modules/datasource/crate/index.js +1 -1
  10. package/dist/modules/datasource/crate/index.js.map +1 -1
  11. package/dist/modules/datasource/docker/common.js +6 -0
  12. package/dist/modules/datasource/docker/common.js.map +1 -1
  13. package/dist/modules/datasource/docker/schema.js +1 -1
  14. package/dist/modules/datasource/docker/schema.js.map +1 -1
  15. package/dist/modules/datasource/go/index.js +1 -2
  16. package/dist/modules/datasource/go/index.js.map +1 -1
  17. package/dist/modules/datasource/maven/index.js +2 -2
  18. package/dist/modules/datasource/maven/index.js.map +1 -1
  19. package/dist/modules/datasource/maven/util.js +2 -2
  20. package/dist/modules/datasource/maven/util.js.map +1 -1
  21. package/dist/modules/manager/bazel/artifacts.js +2 -2
  22. package/dist/modules/manager/bazel/artifacts.js.map +1 -1
  23. package/dist/modules/manager/maven-wrapper/artifacts.js +2 -2
  24. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  25. package/dist/modules/manager/npm/extract/common/package-file.js +2 -2
  26. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  27. package/dist/modules/manager/npm/extract/yarn.js +2 -2
  28. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  29. package/dist/modules/manager/npm/post-update/index.js +14 -18
  30. package/dist/modules/manager/npm/post-update/index.js.map +1 -1
  31. package/dist/modules/manager/npm/post-update/npm.js +4 -4
  32. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  33. package/dist/modules/manager/npm/post-update/pnpm.js +4 -4
  34. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  35. package/dist/modules/manager/npm/post-update/yarn.js +6 -6
  36. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  37. package/dist/modules/manager/npm/update/dependency/index.js +3 -4
  38. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  39. package/dist/modules/manager/npm/update/dependency/pnpm.js +2 -2
  40. package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
  41. package/dist/modules/manager/npm/update/index.js +1 -0
  42. package/dist/modules/manager/npm/update/index.js.map +1 -1
  43. package/dist/modules/manager/npm/update/locked-dependency/common/parent-version.js +8 -8
  44. package/dist/modules/manager/npm/update/locked-dependency/common/parent-version.js.map +1 -1
  45. package/dist/modules/manager/npm/update/locked-dependency/package-lock/dep-constraints.js +2 -2
  46. package/dist/modules/manager/npm/update/locked-dependency/package-lock/dep-constraints.js.map +1 -1
  47. package/dist/modules/manager/npm/update/locked-dependency/package-lock/index.js +5 -5
  48. package/dist/modules/manager/npm/update/locked-dependency/package-lock/index.js.map +1 -1
  49. package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/get-locked.js +4 -4
  50. package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/get-locked.js.map +1 -1
  51. package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/index.js +2 -2
  52. package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/index.js.map +1 -1
  53. package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/replace.js +2 -2
  54. package/dist/modules/manager/npm/update/locked-dependency/yarn-lock/replace.js.map +1 -1
  55. package/dist/modules/manager/npm/update/package-version/index.js +1 -2
  56. package/dist/modules/manager/npm/update/package-version/index.js.map +1 -1
  57. package/dist/modules/manager/npm/utils.js +8 -8
  58. package/dist/modules/manager/npm/utils.js.map +1 -1
  59. package/dist/modules/platform/azure/azure-helper.js +2 -2
  60. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  61. package/dist/modules/platform/azure/index.js +14 -14
  62. package/dist/modules/platform/azure/index.js.map +1 -1
  63. package/dist/modules/platform/bitbucket/comments.js +4 -4
  64. package/dist/modules/platform/bitbucket/comments.js.map +1 -1
  65. package/dist/modules/platform/bitbucket/index.js +31 -31
  66. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  67. package/dist/modules/platform/bitbucket/utils.js +2 -2
  68. package/dist/modules/platform/bitbucket/utils.js.map +1 -1
  69. package/dist/modules/platform/bitbucket-server/index.js +32 -34
  70. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  71. package/dist/modules/platform/bitbucket-server/utils.js +2 -4
  72. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  73. package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
  74. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  75. package/dist/modules/platform/codecommit/index.js +24 -24
  76. package/dist/modules/platform/codecommit/index.js.map +1 -1
  77. package/dist/modules/platform/forgejo/forgejo-helper.d.ts +1 -0
  78. package/dist/modules/platform/forgejo/forgejo-helper.js +26 -0
  79. package/dist/modules/platform/forgejo/forgejo-helper.js.map +1 -1
  80. package/dist/modules/platform/forgejo/index.js +35 -20
  81. package/dist/modules/platform/forgejo/index.js.map +1 -1
  82. package/dist/modules/platform/gitea/index.js +4 -4
  83. package/dist/modules/platform/gitea/index.js.map +1 -1
  84. package/dist/modules/platform/github/index.js +68 -68
  85. package/dist/modules/platform/github/index.js.map +1 -1
  86. package/dist/modules/platform/github/massage-markdown-links.js +2 -2
  87. package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
  88. package/dist/modules/platform/github/pr.js +2 -2
  89. package/dist/modules/platform/github/pr.js.map +1 -1
  90. package/dist/modules/platform/github/schema.js +1 -2
  91. package/dist/modules/platform/github/schema.js.map +1 -1
  92. package/dist/modules/platform/gitlab/index.js +29 -30
  93. package/dist/modules/platform/gitlab/index.js.map +1 -1
  94. package/dist/modules/platform/utils/pr-body.js +7 -3
  95. package/dist/modules/platform/utils/pr-body.js.map +1 -1
  96. package/dist/proxy.js +1 -2
  97. package/dist/proxy.js.map +1 -1
  98. package/dist/util/cache/package/index.js +2 -2
  99. package/dist/util/cache/package/index.js.map +1 -1
  100. package/dist/util/cache/package/namespaces.js +1 -1
  101. package/dist/util/cache/package/namespaces.js.map +1 -1
  102. package/dist/util/cache/repository/types.d.ts +1 -0
  103. package/dist/util/cache/repository/types.js.map +1 -1
  104. package/dist/util/git/error.js +5 -4
  105. package/dist/util/git/error.js.map +1 -1
  106. package/dist/util/git/index.js +10 -12
  107. package/dist/util/git/index.js.map +1 -1
  108. package/dist/util/git/private-key.js +2 -0
  109. package/dist/util/git/private-key.js.map +1 -1
  110. package/dist/util/http/bitbucket.js +1 -2
  111. package/dist/util/http/bitbucket.js.map +1 -1
  112. package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
  113. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  114. package/dist/util/http/http.js +1 -1
  115. package/dist/util/http/http.js.map +1 -1
  116. package/dist/util/stats.js +1 -1
  117. package/dist/util/stats.js.map +1 -1
  118. package/dist/workers/global/config/parse/codespaces.js +1 -2
  119. package/dist/workers/global/config/parse/codespaces.js.map +1 -1
  120. package/dist/workers/repository/update/branch/auto-replace.js +4 -2
  121. package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
  122. package/dist/workers/repository/update/branch/automerge.js +4 -1
  123. package/dist/workers/repository/update/branch/automerge.js.map +1 -1
  124. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +1 -0
  125. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  126. package/dist/workers/repository/update/branch/index.js +16 -8
  127. package/dist/workers/repository/update/branch/index.js.map +1 -1
  128. package/package.json +3 -2
  129. 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 start */
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 start */
326
+ // /* v8 ignore next */
327
327
  // if (!prOut) {
328
328
  // return false;
329
- // } /* v8 ignore stop */
329
+ // }
330
330
  // const pReq = prOut.pullRequest;
331
331
  // const targets = pReq?.pullRequestTargets;
332
332
  //
333
- // /* v8 ignore start */
333
+ // /* v8 ignore next */
334
334
  // if (!targets) {
335
335
  // return false;
336
- // } /* v8 ignore stop */
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
- } /* v8 ignore stop */
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 start */
401
+ /* v8 ignore next */
402
402
  function addAssignees(iid, assignees) {
403
403
  // CodeCommit does not support adding reviewers
404
404
  return Promise.resolve();
405
- } /* v8 ignore stop */
406
- /* v8 ignore start */
405
+ }
406
+ /* v8 ignore next */
407
407
  function findIssue(title) {
408
408
  // CodeCommit does not have issues
409
409
  return Promise.resolve(null);
410
- } /* v8 ignore stop */
411
- /* v8 ignore start */
410
+ }
411
+ /* v8 ignore next */
412
412
  function ensureIssue({ title, }) {
413
413
  // CodeCommit does not have issues
414
414
  return Promise.resolve(null);
415
- } /* v8 ignore stop */
416
- /* v8 ignore start */
415
+ }
416
+ /* v8 ignore next */
417
417
  function getIssueList() {
418
418
  // CodeCommit does not have issues
419
419
  return Promise.resolve([]);
420
- } /* v8 ignore stop */
421
- /* v8 ignore start */
420
+ }
421
+ /* v8 ignore next */
422
422
  function ensureIssueClosing(title) {
423
423
  // CodeCommit does not have issues
424
424
  return Promise.resolve();
425
- } /* v8 ignore stop */
426
- /* v8 ignore start */
425
+ }
426
+ /* v8 ignore next */
427
427
  function deleteLabel(prNumber, label) {
428
428
  return Promise.resolve();
429
- } /* v8 ignore stop */
429
+ }
430
430
  // Returns the combined status for a branch.
431
- /* v8 ignore start */
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
- } /* v8 ignore stop */
437
- /* v8 ignore start */
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
- } /* v8 ignore stop */
443
- /* v8 ignore start */
442
+ }
443
+ /* v8 ignore next */
444
444
  function setBranchStatus({ branchName, context, description, state, url: targetUrl, }) {
445
445
  return Promise.resolve();
446
- } /* v8 ignore stop */
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 = helper
78
- .getOrgLabels(config.repository.split('/')[0], {
79
- memCache: false,
80
- })
81
- .then((labels) => {
82
- logger_1.logger.debug(`Retrieved ${labels.length} org labels`);
83
- return labels;
84
- })
85
- .catch((err) => {
86
- // Will fail if owner of repo is not org or Forgejo version < 1.12
87
- logger_1.logger.debug(`Unable to fetch organization labels`);
88
- return [];
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 start: experimental feature */
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
- } /* v8 ignore stop */
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) /* v8 ignore start */ {
538
+ catch (err) {
529
539
  logger_1.logger.debug({ err, number }, 'Error getting issue');
530
540
  return null;
531
- } /* v8 ignore stop */
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.filter((r) => r.includes('/')));
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: reviewers.filter((r) => !teamReviewers.has(r)),
733
- ...(teamReviewers.size && { team_reviewers: [...teamReviewers] }),
745
+ reviewers: [...userReviewers],
746
+ ...(teamReviewers.size && {
747
+ team_reviewers: [...teamReviewers],
748
+ }),
734
749
  });
735
750
  }
736
751
  catch (err) {