renovate 44.83.3 → 44.85.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/presets/forgejo/index.js +3 -2
- package/dist/config/presets/forgejo/index.js.map +1 -1
- package/dist/config/presets/gitea/index.js +10 -3
- package/dist/config/presets/gitea/index.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +1 -1
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/github-actions/extract.js +1 -33
- package/dist/modules/manager/github-actions/extract.js.map +1 -1
- package/dist/modules/manager/github-actions/{community.js → known-actions.js} +62 -5
- package/dist/modules/manager/github-actions/known-actions.js.map +1 -0
- package/dist/modules/manager/github-actions/schema.js +2 -2
- package/dist/modules/manager/github-actions/schema.js.map +1 -1
- package/dist/modules/platform/api.js +6 -6
- package/dist/modules/platform/forgejo/index.js +21 -587
- package/dist/modules/platform/forgejo/index.js.map +1 -1
- package/dist/modules/platform/gitea/gitea-helper.js +90 -74
- package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +561 -529
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/labels.js +42 -0
- package/dist/modules/platform/gitea/labels.js.map +1 -0
- package/dist/modules/platform/gitea/pr-cache.js +66 -28
- package/dist/modules/platform/gitea/pr-cache.js.map +1 -1
- package/dist/modules/platform/gitea/schema.js +141 -5
- package/dist/modules/platform/gitea/schema.js.map +1 -1
- package/dist/modules/platform/gitea/utils.js +10 -8
- package/dist/modules/platform/gitea/utils.js.map +1 -1
- package/dist/util/cache/repository/types.d.ts +13 -8
- package/dist/util/http/forgejo.js +6 -35
- package/dist/util/http/forgejo.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/forgejo/index.js +1 -1
- package/dist/workers/repository/update/pr/changelog/forgejo/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/gitea/index.js +3 -3
- package/dist/workers/repository/update/pr/changelog/gitea/index.js.map +1 -1
- package/package.json +1 -1
- package/renovate-schema.json +2 -2
- package/dist/modules/manager/github-actions/community.js.map +0 -1
- package/dist/modules/platform/forgejo/forgejo-helper.js +0 -235
- package/dist/modules/platform/forgejo/forgejo-helper.js.map +0 -1
- package/dist/modules/platform/forgejo/pr-cache.js +0 -114
- package/dist/modules/platform/forgejo/pr-cache.js.map +0 -1
- package/dist/modules/platform/forgejo/schema.js +0 -149
- package/dist/modules/platform/forgejo/schema.js.map +0 -1
- package/dist/modules/platform/forgejo/utils.js +0 -115
- package/dist/modules/platform/forgejo/utils.js.map +0 -1
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { CONFIG_GIT_URL_UNAVAILABLE } from "../../../constants/error-messages.js";
|
|
2
|
-
import { regEx } from "../../../util/regex.js";
|
|
3
|
-
import { coerceArray } from "../../../util/array.js";
|
|
4
|
-
import { logger } from "../../../logger/index.js";
|
|
5
|
-
import { parseUrl } from "../../../util/url.js";
|
|
6
|
-
import { find } from "../../../util/host-rules.js";
|
|
7
|
-
import { getPrBodyStruct } from "../pr-body.js";
|
|
8
|
-
import { isNonEmptyArray } from "@sindresorhus/is";
|
|
9
|
-
//#region lib/modules/platform/forgejo/utils.ts
|
|
10
|
-
function smartLinks(body) {
|
|
11
|
-
return body?.replace(regEx(/\]\(\.\.\/issues\//g), "](issues/").replace(regEx(/\]\(\.\.\/pull\//g), "](pulls/");
|
|
12
|
-
}
|
|
13
|
-
function trimTrailingApiPath(url) {
|
|
14
|
-
return url?.replace(regEx(/api\/v1\/?$/g), "");
|
|
15
|
-
}
|
|
16
|
-
function getRepoUrl(repo, gitUrl, endpoint) {
|
|
17
|
-
if (gitUrl === "ssh") {
|
|
18
|
-
if (!repo.ssh_url) throw new Error(CONFIG_GIT_URL_UNAVAILABLE);
|
|
19
|
-
logger.debug(`Using SSH URL: ${repo.ssh_url}`);
|
|
20
|
-
return repo.ssh_url;
|
|
21
|
-
}
|
|
22
|
-
const opts = find({
|
|
23
|
-
hostType: "forgejo",
|
|
24
|
-
url: endpoint
|
|
25
|
-
});
|
|
26
|
-
if (gitUrl === "endpoint") {
|
|
27
|
-
const url = parseUrl(endpoint);
|
|
28
|
-
if (!url) throw new Error(CONFIG_GIT_URL_UNAVAILABLE);
|
|
29
|
-
url.username = opts.token ?? "";
|
|
30
|
-
url.pathname = `${url.pathname}${repo.full_name}.git`;
|
|
31
|
-
logger.debug({ url: url.toString() }, "using URL based on configured endpoint");
|
|
32
|
-
return url.toString();
|
|
33
|
-
}
|
|
34
|
-
if (!repo.clone_url) throw new Error(CONFIG_GIT_URL_UNAVAILABLE);
|
|
35
|
-
logger.debug(`Using HTTP URL: ${repo.clone_url}`);
|
|
36
|
-
const repoUrl = parseUrl(repo.clone_url);
|
|
37
|
-
if (!repoUrl) throw new Error(CONFIG_GIT_URL_UNAVAILABLE);
|
|
38
|
-
repoUrl.username = opts.token ?? "";
|
|
39
|
-
return repoUrl.toString();
|
|
40
|
-
}
|
|
41
|
-
function getMergeMethod(strategy) {
|
|
42
|
-
switch (strategy) {
|
|
43
|
-
case "fast-forward": return "rebase";
|
|
44
|
-
case "merge-commit": return "merge";
|
|
45
|
-
case "rebase": return "rebase-merge";
|
|
46
|
-
case "squash": return strategy;
|
|
47
|
-
default: return null;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
const API_PATH = "/api/v1";
|
|
51
|
-
const DRAFT_PREFIX = "WIP: ";
|
|
52
|
-
const reconfigurePrRegex = regEx(/reconfigure$/);
|
|
53
|
-
function toRenovatePR(data, author) {
|
|
54
|
-
if (!data.base?.ref || !data.head?.label || !data.head?.sha || !data.head?.repo?.full_name) {
|
|
55
|
-
logger.trace(`Skipping Pull Request #${data.number} due to missing base and/or head branch`);
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
const createdBy = data.user?.login;
|
|
59
|
-
if (createdBy && author && !reconfigurePrRegex.test(data.head.label) && createdBy !== author) return null;
|
|
60
|
-
let title = data.title;
|
|
61
|
-
let isDraft = false;
|
|
62
|
-
if (title.startsWith("WIP: ")) {
|
|
63
|
-
title = title.substring(5);
|
|
64
|
-
isDraft = true;
|
|
65
|
-
}
|
|
66
|
-
return {
|
|
67
|
-
labels: coerceArray(data.labels).map((l) => l.name),
|
|
68
|
-
number: data.number,
|
|
69
|
-
state: data.merged ? "merged" : data.state,
|
|
70
|
-
title,
|
|
71
|
-
isDraft,
|
|
72
|
-
bodyStruct: getPrBodyStruct(data.body),
|
|
73
|
-
sha: data.head.sha,
|
|
74
|
-
sourceBranch: data.head.label,
|
|
75
|
-
targetBranch: data.base.ref,
|
|
76
|
-
sourceRepo: data.head.repo.full_name,
|
|
77
|
-
createdAt: data.created_at,
|
|
78
|
-
cannotMergeReason: data.mergeable ? void 0 : `pr.mergeable="${data.mergeable}"`,
|
|
79
|
-
hasAssignees: !!(data.assignee?.login ?? isNonEmptyArray(data.assignees))
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Check if a repository is usable.
|
|
84
|
-
* A repo isn't usable if one of the following conditions is met:
|
|
85
|
-
* - The repo is a `mirror`
|
|
86
|
-
* - We don't have pull or push permissions
|
|
87
|
-
* - Pull requests are disabled
|
|
88
|
-
* @param repo Repo to check
|
|
89
|
-
* @returns `true` if the repository is usable, `false` otherwise
|
|
90
|
-
*/
|
|
91
|
-
function usableRepo(repo) {
|
|
92
|
-
if (repo.mirror === true) return false;
|
|
93
|
-
if (repo.permissions.pull === false || repo.permissions.push === false) {
|
|
94
|
-
logger.debug(`Skipping repository ${repo.full_name} because of missing pull or push permissions`);
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
if (repo.has_pull_requests === false) {
|
|
98
|
-
logger.debug(`Skipping repository ${repo.full_name} because pull requests are disabled`);
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
function isAllowed(style, repo) {
|
|
104
|
-
switch (style) {
|
|
105
|
-
case "merge": return repo.allow_merge_commits;
|
|
106
|
-
case "rebase": return repo.allow_rebase;
|
|
107
|
-
case "rebase-merge": return repo.allow_rebase_explicit;
|
|
108
|
-
case "squash": return repo.allow_squash_merge;
|
|
109
|
-
case "fast-forward-only": return repo.allow_fast_forward_only_merge;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
//#endregion
|
|
113
|
-
export { API_PATH, DRAFT_PREFIX, getMergeMethod, getRepoUrl, isAllowed, smartLinks, toRenovatePR, trimTrailingApiPath, usableRepo };
|
|
114
|
-
|
|
115
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["hostRules.find"],"sources":["../../../../lib/modules/platform/forgejo/utils.ts"],"sourcesContent":["import { isNonEmptyArray } from '@sindresorhus/is';\nimport type { MergeStrategy } from '../../../config/types.ts';\nimport { CONFIG_GIT_URL_UNAVAILABLE } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { parseUrl } from '../../../util/url.ts';\nimport { getPrBodyStruct } from '../pr-body.ts';\nimport type { GitUrlOption, Pr } from '../types.ts';\nimport type { PR, PRMergeMethod, Repo } from './schema.ts';\n\nexport function smartLinks(body: string): string {\n return body\n ?.replace(regEx(/\\]\\(\\.\\.\\/issues\\//g), '](issues/')\n .replace(regEx(/\\]\\(\\.\\.\\/pull\\//g), '](pulls/');\n}\n\nexport function trimTrailingApiPath(url: string): string {\n return url?.replace(regEx(/api\\/v1\\/?$/g), '');\n}\n\nexport function getRepoUrl(\n repo: Repo,\n gitUrl: GitUrlOption | undefined,\n endpoint: string,\n): string {\n if (gitUrl === 'ssh') {\n if (!repo.ssh_url) {\n throw new Error(CONFIG_GIT_URL_UNAVAILABLE);\n }\n logger.debug(`Using SSH URL: ${repo.ssh_url}`);\n return repo.ssh_url;\n }\n\n // Find options for current host and determine Git endpoint\n const opts = hostRules.find({\n hostType: 'forgejo',\n url: endpoint,\n });\n\n if (gitUrl === 'endpoint') {\n const url = parseUrl(endpoint);\n if (!url) {\n throw new Error(CONFIG_GIT_URL_UNAVAILABLE);\n }\n url.username = opts.token ?? '';\n url.pathname = `${url.pathname}${repo.full_name}.git`;\n logger.debug(\n { url: url.toString() },\n 'using URL based on configured endpoint',\n );\n return url.toString();\n }\n\n if (!repo.clone_url) {\n throw new Error(CONFIG_GIT_URL_UNAVAILABLE);\n }\n\n logger.debug(`Using HTTP URL: ${repo.clone_url}`);\n const repoUrl = parseUrl(repo.clone_url);\n if (!repoUrl) {\n throw new Error(CONFIG_GIT_URL_UNAVAILABLE);\n }\n repoUrl.username = opts.token ?? '';\n return repoUrl.toString();\n}\n\nexport function getMergeMethod(\n strategy: MergeStrategy | undefined,\n): PRMergeMethod | null {\n switch (strategy) {\n case 'fast-forward':\n return 'rebase';\n case 'merge-commit':\n return 'merge';\n case 'rebase':\n return 'rebase-merge';\n case 'squash':\n return strategy;\n case 'auto':\n default:\n return null;\n }\n}\n\nexport const API_PATH = '/api/v1';\n\nexport const DRAFT_PREFIX = 'WIP: ';\nconst reconfigurePrRegex = regEx(/reconfigure$/);\n\nexport function toRenovatePR(data: PR, author: string | null): Pr | null {\n if (\n !data.base?.ref ||\n !data.head?.label ||\n !data.head?.sha ||\n !data.head?.repo?.full_name\n ) {\n logger.trace(\n `Skipping Pull Request #${data.number} due to missing base and/or head branch`,\n );\n return null;\n }\n\n const createdBy = data.user?.login;\n if (\n createdBy &&\n author &&\n !reconfigurePrRegex.test(data.head.label) &&\n createdBy !== author\n ) {\n return null;\n }\n\n let title = data.title;\n let isDraft = false;\n if (title.startsWith(DRAFT_PREFIX)) {\n title = title.substring(DRAFT_PREFIX.length);\n isDraft = true;\n }\n const labels = coerceArray(data.labels).map((l) => l.name);\n\n return {\n labels,\n number: data.number,\n state: data.merged ? 'merged' : data.state,\n title,\n isDraft,\n bodyStruct: getPrBodyStruct(data.body),\n sha: data.head.sha,\n sourceBranch: data.head.label,\n targetBranch: data.base.ref,\n sourceRepo: data.head.repo.full_name,\n createdAt: data.created_at,\n cannotMergeReason: data.mergeable\n ? undefined\n : `pr.mergeable=\"${data.mergeable}\"`,\n hasAssignees: !!(data.assignee?.login ?? isNonEmptyArray(data.assignees)),\n };\n}\n\n/**\n * Check if a repository is usable.\n * A repo isn't usable if one of the following conditions is met:\n * - The repo is a `mirror`\n * - We don't have pull or push permissions\n * - Pull requests are disabled\n * @param repo Repo to check\n * @returns `true` if the repository is usable, `false` otherwise\n */\nexport function usableRepo(repo: Repo): boolean {\n if (repo.mirror === true) {\n return false;\n }\n\n if (repo.permissions.pull === false || repo.permissions.push === false) {\n logger.debug(\n `Skipping repository ${repo.full_name} because of missing pull or push permissions`,\n );\n return false;\n }\n\n if (repo.has_pull_requests === false) {\n logger.debug(\n `Skipping repository ${repo.full_name} because pull requests are disabled`,\n );\n return false;\n }\n return true;\n}\n\nexport function isAllowed(style: PRMergeMethod, repo: Repo): boolean {\n switch (style) {\n case 'merge':\n return repo.allow_merge_commits;\n case 'rebase':\n return repo.allow_rebase;\n case 'rebase-merge':\n return repo.allow_rebase_explicit;\n case 'squash':\n return repo.allow_squash_merge;\n case 'fast-forward-only':\n return repo.allow_fast_forward_only_merge;\n }\n}\n"],"mappings":"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"}
|