Skip to content
Snippets Groups Projects
Select Git revision
  • 4c6e3f79327d1dca19f9965d547e05f22b421330
  • main default protected
  • feat/gnupg
  • next
  • fix/36615b-branch-reuse-no-cache
  • renovate/main-redis-5.x
  • chore/punycode
  • refactor/pin-new-value
  • feat/36219--git-x509-signing
  • feat/structured-logger
  • hotfix/39.264.1
  • feat/skip-dangling
  • gh-readonly-queue/next/pr-36034-7a061c4ca1024a19e2c295d773d9642625d1c2be
  • hotfix/39.238.3
  • refactor/gitlab-auto-approve
  • feat/template-strings
  • gh-readonly-queue/next/pr-35654-137d934242c784e0c45d4b957362214f0eade1d7
  • fix/32307-global-extends-merging
  • fix/32307-global-extends-repositories
  • gh-readonly-queue/next/pr-35009-046ebf7cb84ab859f7fefceb5fa53a54ce9736f8
  • gh-readonly-queue/next/pr-35009-9d5e583b7d7251148ab0d11ee8dd38149618d162
  • 41.43.5
  • 41.43.4
  • 41.43.3
  • 41.43.2
  • 41.43.1
  • 41.43.0
  • 41.42.12
  • 41.42.11
  • 41.42.10
  • 41.42.9
  • 41.42.8
  • 41.42.7
  • 41.42.6
  • 41.42.5
  • 41.42.4
  • 41.42.3
  • 41.42.2
  • 41.42.1
  • 41.42.0
  • 41.41.0
41 results

commit.js

Blame
  • user avatar
    Rhys Arkins authored and GitHub committed
    This PR adds the capability to renovate more than one base branch at a time. For instance, a project may have their released `3.x` version on `master`, while an upcoming `4.x` is being prepared using branch `next`. `4.x` might have a quite different set of dependencies (e.g. some removed or some added) so it's not appropriate to only target `master` and keep rebasing, as it will get messy. Instead, it's necessary to target both `master` and `next` to keep both updated.
    
    Closes #1279
    dba57495
    History
    commit.js 1.26 KiB
    const handlebars = require('handlebars');
    
    module.exports = {
      commitFilesToBranch,
    };
    
    async function commitFilesToBranch(config) {
      const updatedFiles = config.updatedPackageFiles.concat(
        config.updatedLockFiles
      );
      if (updatedFiles.length) {
        logger.debug(`${updatedFiles.length} file(s) to commit`);
        let commitMessage = handlebars.compile(config.commitMessage)(config);
        if (config.semanticCommits) {
          const splitMessage = commitMessage.split('\n');
          splitMessage[0] = splitMessage[0].toLowerCase();
          let semanticPrefix = config.semanticCommitType;
          if (config.semanticCommitScope) {
            semanticPrefix += `(${config.semanticCommitScope})`;
          }
          commitMessage = `${semanticPrefix}: ${splitMessage.join('\n')}`;
        }
        if (config.commitBody) {
          commitMessage = `${commitMessage}\n\n${handlebars.compile(
            config.commitBody
          )(config)}`;
        }
        // API will know whether to create new branch or not
        await platform.commitFilesToBranch(
          config.branchName,
          updatedFiles,
          commitMessage,
          config.parentBranch || config.baseBranch || undefined,
          config.gitAuthor,
          config.gitPrivateKey
        );
      } else {
        logger.debug(`No files to commit`);
        return false;
      }
      return true;
    }