Merge pull request #200 from mikepenz/feature/exclude_merge_commits

Exclude specific commits from changelog in commit mode
This commit is contained in:
Mike Penz
2021-02-26 12:16:31 +01:00
committed by GitHub
5 changed files with 75 additions and 61 deletions
Generated Vendored
+33 -28
View File
@@ -39,7 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod }; return (mod && mod.__esModule) ? mod : { "default": mod };
}; };
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Commits = void 0; exports.filterCommits = exports.Commits = void 0;
const moment_1 = __importDefault(__nccwpck_require__(9623)); const moment_1 = __importDefault(__nccwpck_require__(9623));
const core = __importStar(__nccwpck_require__(2186)); const core = __importStar(__nccwpck_require__(2186));
class Commits { class Commits {
@@ -111,6 +111,29 @@ class Commits {
} }
} }
exports.Commits = Commits; exports.Commits = Commits;
/**
* Filters out all commits which match the exclude pattern
*/
function filterCommits(commits, excludeMergeBranches) {
const filteredCommits = [];
for (const commit of commits) {
if (excludeMergeBranches) {
let matched = false;
for (const excludeMergeBranch of excludeMergeBranches) {
if (commit.summary.includes(excludeMergeBranch)) {
matched = true;
break;
}
}
if (matched) {
continue;
}
}
filteredCommits.push(commit);
}
return filteredCommits;
}
exports.filterCommits = filterCommits;
/***/ }), /***/ }),
@@ -498,28 +521,6 @@ class PullRequests {
return sortPullRequests(mergedPRs, true); return sortPullRequests(mergedPRs, true);
}); });
} }
/**
* Filters out all commits which match the exclude pattern
*/
filterCommits(commits, excludeMergeBranches) {
const filteredCommits = [];
for (const commit of commits) {
if (excludeMergeBranches) {
let matched = false;
for (const excludeMergeBranch of excludeMergeBranches) {
if (commit.summary.includes(excludeMergeBranch)) {
matched = true;
break;
}
}
if (matched) {
continue;
}
}
filteredCommits.push(commit);
}
return filteredCommits;
}
} }
exports.PullRequests = PullRequests; exports.PullRequests = PullRequests;
function sortPullRequests(pullRequests, ascending) { function sortPullRequests(pullRequests, ascending) {
@@ -665,7 +666,7 @@ class ReleaseNotes {
const pullRequestsApi = new pullRequests_1.PullRequests(octokit); const pullRequestsApi = new pullRequests_1.PullRequests(octokit);
const pullRequests = yield pullRequestsApi.getBetweenDates(owner, repo, fromDate, toDate, configuration.max_pull_requests || configuration_1.DefaultConfiguration.max_pull_requests); const pullRequests = yield pullRequestsApi.getBetweenDates(owner, repo, fromDate, toDate, configuration.max_pull_requests || configuration_1.DefaultConfiguration.max_pull_requests);
core.info(`️ Retrieved ${pullRequests.length} merged PRs for ${owner}/${repo}`); core.info(`️ Retrieved ${pullRequests.length} merged PRs for ${owner}/${repo}`);
const prCommits = pullRequestsApi.filterCommits(commits, configuration.exclude_merge_branches || const prCommits = commits_1.filterCommits(commits, configuration.exclude_merge_branches ||
configuration_1.DefaultConfiguration.exclude_merge_branches); configuration_1.DefaultConfiguration.exclude_merge_branches);
core.info(`️ Retrieved ${prCommits.length} release commits for ${owner}/${repo}`); core.info(`️ Retrieved ${prCommits.length} release commits for ${owner}/${repo}`);
// create array of commits for this release // create array of commits for this release
@@ -680,11 +681,15 @@ class ReleaseNotes {
} }
generateCommitPRs(octokit) { generateCommitPRs(octokit) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
const { owner, repo, configuration } = this.options;
const commits = yield this.getCommitHistory(octokit); const commits = yield this.getCommitHistory(octokit);
if (commits.length === 0) { if (commits.length === 0) {
return []; return [];
} }
return commits.map(function (commit) { const prCommits = commits_1.filterCommits(commits, configuration.exclude_merge_branches ||
configuration_1.DefaultConfiguration.exclude_merge_branches);
core.info(`️ Retrieved ${prCommits.length} commits for ${owner}/${repo}`);
return prCommits.map(function (commit) {
return { return {
number: 0, number: 0,
title: commit.summary, title: commit.summary,
@@ -1070,7 +1075,7 @@ function buildChangelog(prs, config, options) {
if (extractor.pattern != null) { if (extractor.pattern != null) {
for (const pr of prs) { for (const pr of prs) {
const label = pr.body.replace(extractor.pattern, extractor.target); const label = pr.body.replace(extractor.pattern, extractor.target);
if (label !== "") { if (label !== '') {
pr.labels.push(label); pr.labels.push(label);
} }
} }
@@ -5740,7 +5745,7 @@ const Endpoints = {
} }
}; };
const VERSION = "4.12.0"; const VERSION = "4.12.2";
function endpointsToMethods(octokit, endpointsMap) { function endpointsToMethods(octokit, endpointsMap) {
const newMethods = {}; const newMethods = {};
@@ -6066,7 +6071,7 @@ var pluginRequestLog = __nccwpck_require__(8883);
var pluginPaginateRest = __nccwpck_require__(4193); var pluginPaginateRest = __nccwpck_require__(4193);
var pluginRestEndpointMethods = __nccwpck_require__(3044); var pluginRestEndpointMethods = __nccwpck_require__(3044);
const VERSION = "18.2.0"; const VERSION = "18.2.1";
const Octokit = core.Octokit.plugin(pluginRequestLog.requestLog, pluginRestEndpointMethods.restEndpointMethods, pluginPaginateRest.paginateRest).defaults({ const Octokit = core.Octokit.plugin(pluginRequestLog.requestLog, pluginRestEndpointMethods.restEndpointMethods, pluginPaginateRest.paginateRest).defaults({
userAgent: `octokit-rest.js/${VERSION}` userAgent: `octokit-rest.js/${VERSION}`
Generated Vendored
+1 -1
View File
File diff suppressed because one or more lines are too long
+28
View File
@@ -93,3 +93,31 @@ export class Commits {
return commitsResult return commitsResult
} }
} }
/**
* Filters out all commits which match the exclude pattern
*/
export function filterCommits(
commits: CommitInfo[],
excludeMergeBranches: string[]
): CommitInfo[] {
const filteredCommits = []
for (const commit of commits) {
if (excludeMergeBranches) {
let matched = false
for (const excludeMergeBranch of excludeMergeBranches) {
if (commit.summary.includes(excludeMergeBranch)) {
matched = true
break
}
}
if (matched) {
continue
}
}
filteredCommits.push(commit)
}
return filteredCommits
}
-29
View File
@@ -1,7 +1,6 @@
import {Octokit, RestEndpointMethodTypes} from '@octokit/rest' import {Octokit, RestEndpointMethodTypes} from '@octokit/rest'
import moment from 'moment' import moment from 'moment'
import {CommitInfo} from './commits'
import * as core from '@actions/core' import * as core from '@actions/core'
export interface PullRequestInfo { export interface PullRequestInfo {
@@ -129,34 +128,6 @@ export class PullRequests {
return sortPullRequests(mergedPRs, true) return sortPullRequests(mergedPRs, true)
} }
/**
* Filters out all commits which match the exclude pattern
*/
filterCommits(
commits: CommitInfo[],
excludeMergeBranches: string[]
): CommitInfo[] {
const filteredCommits = []
for (const commit of commits) {
if (excludeMergeBranches) {
let matched = false
for (const excludeMergeBranch of excludeMergeBranches) {
if (commit.summary.includes(excludeMergeBranch)) {
matched = true
break
}
}
if (matched) {
continue
}
}
filteredCommits.push(commit)
}
return filteredCommits
}
} }
export function sortPullRequests( export function sortPullRequests(
+13 -3
View File
@@ -1,5 +1,5 @@
import {Octokit} from '@octokit/rest' import {Octokit} from '@octokit/rest'
import {Commits, CommitInfo} from './commits' import {Commits, CommitInfo, filterCommits} from './commits'
import {PullRequestInfo, PullRequests} from './pullRequests' import {PullRequestInfo, PullRequests} from './pullRequests'
import {buildChangelog} from './transform' import {buildChangelog} from './transform'
import * as core from '@actions/core' import * as core from '@actions/core'
@@ -113,7 +113,7 @@ export class ReleaseNotes {
`️ Retrieved ${pullRequests.length} merged PRs for ${owner}/${repo}` `️ Retrieved ${pullRequests.length} merged PRs for ${owner}/${repo}`
) )
const prCommits = pullRequestsApi.filterCommits( const prCommits = filterCommits(
commits, commits,
configuration.exclude_merge_branches || configuration.exclude_merge_branches ||
DefaultConfiguration.exclude_merge_branches DefaultConfiguration.exclude_merge_branches
@@ -137,12 +137,22 @@ export class ReleaseNotes {
private async generateCommitPRs( private async generateCommitPRs(
octokit: Octokit octokit: Octokit
): Promise<PullRequestInfo[]> { ): Promise<PullRequestInfo[]> {
const {owner, repo, configuration} = this.options
const commits = await this.getCommitHistory(octokit) const commits = await this.getCommitHistory(octokit)
if (commits.length === 0) { if (commits.length === 0) {
return [] return []
} }
return commits.map(function (commit) { const prCommits = filterCommits(
commits,
configuration.exclude_merge_branches ||
DefaultConfiguration.exclude_merge_branches
)
core.info(`️ Retrieved ${prCommits.length} commits for ${owner}/${repo}`)
return prCommits.map(function (commit) {
return { return {
number: 0, number: 0,
title: commit.summary, title: commit.summary,