cumulusci.tasks.release_notes package

Submodules

exception cumulusci.tasks.release_notes.exceptions.GithubIssuesError[source]

Bases: cumulusci.core.exceptions.CumulusCIException

exception cumulusci.tasks.release_notes.exceptions.LastReleaseTagNotFoundError[source]

Bases: cumulusci.core.exceptions.CumulusCIException

class cumulusci.tasks.release_notes.generator.BaseReleaseNotesGenerator[source]

Bases: object

init_change_notes()[source]
init_parsers()[source]

Initializes the parser instances as the list self.parsers

render()[source]

Returns the rendered release notes from all parsers as a string

class cumulusci.tasks.release_notes.generator.DirectoryReleaseNotesGenerator(directory)[source]

Bases: cumulusci.tasks.release_notes.generator.BaseReleaseNotesGenerator

class cumulusci.tasks.release_notes.generator.GithubReleaseNotesGenerator(github, github_info, parser_config, current_tag, last_tag=None, link_pr=False, publish=False, has_issues=True, include_empty=False)[source]

Bases: cumulusci.tasks.release_notes.generator.BaseReleaseNotesGenerator

get_repo()[source]
class cumulusci.tasks.release_notes.generator.ParentPullRequestNotesGenerator(github, repo, project_config)[source]

Bases: cumulusci.tasks.release_notes.generator.BaseReleaseNotesGenerator

Aggregates notes from child pull requests in to a parent pull request

UNAGGREGATED_SECTION_HEADER = '\r\n\r\n# Unaggregated Pull Requests'
aggregate_child_change_notes(pull_request)[source]

Given a pull request, aggregate all change notes from child pull requests. Child pull requests are pull requests that have a base branch equal to the the given pull request’s head.

class cumulusci.tasks.release_notes.generator.StaticReleaseNotesGenerator(change_notes)[source]

Bases: cumulusci.tasks.release_notes.generator.BaseReleaseNotesGenerator

cumulusci.tasks.release_notes.generator.render_empty_pr_section(empty_change_notes)[source]
class cumulusci.tasks.release_notes.parser.BaseChangeNotesParser(title)[source]

Bases: object

parse()[source]
render()[source]
class cumulusci.tasks.release_notes.parser.ChangeNotesLinesParser(release_notes_generator, title)[source]

Bases: cumulusci.tasks.release_notes.parser.BaseChangeNotesParser

parse(change_note)[source]

Returns True if a line was added to self._add_line was called, False otherwise

render()[source]
class cumulusci.tasks.release_notes.parser.GithubIssuesParser(release_notes_generator, title, issue_regex=None)[source]

Bases: cumulusci.tasks.release_notes.parser.IssuesParser

ISSUE_COMMENT = {'beta': 'Included in beta release', 'prod': 'Included in production release'}
class cumulusci.tasks.release_notes.parser.GithubLinesParser(release_notes_generator, title)[source]

Bases: cumulusci.tasks.release_notes.parser.ChangeNotesLinesParser

class cumulusci.tasks.release_notes.parser.IssuesParser(release_notes_generator, title, issue_regex=None)[source]

Bases: cumulusci.tasks.release_notes.parser.ChangeNotesLinesParser

class cumulusci.tasks.release_notes.provider.BaseChangeNotesProvider(release_notes_generator)[source]

Bases: object

class cumulusci.tasks.release_notes.provider.DirectoryChangeNotesProvider(release_notes_generator, directory)[source]

Bases: cumulusci.tasks.release_notes.provider.BaseChangeNotesProvider

class cumulusci.tasks.release_notes.provider.GithubChangeNotesProvider(release_notes_generator, current_tag, last_tag=None)[source]

Bases: cumulusci.tasks.release_notes.provider.BaseChangeNotesProvider

Provides changes notes by finding all merged pull requests to the default branch between two tags.

Expects the passed release_notes_generator instance to have a github_info property that contains a dictionary of settings for accessing Github:

  • github_repo
  • github_owner
  • github_username
  • github_password

Will optionally use the following if provided by release_notes_generator:

  • master_branch: Name of the default branch. Defaults to ‘master’
  • prefix_prod: Tag prefix for production release tags. Defaults to ‘prod/’
current_tag_info
end_date
last_tag
last_tag_info
start_date
class cumulusci.tasks.release_notes.provider.StaticChangeNotesProvider(release_notes_generator, change_notes)[source]

Bases: cumulusci.tasks.release_notes.provider.BaseChangeNotesProvider

class cumulusci.tasks.release_notes.task.GithubReleaseNotes(project_config, task_config, org_config=None, flow=None, name=None, stepnum=None, **kwargs)[source]

Bases: cumulusci.tasks.github.base.BaseGithubTask

task_options = {'include_empty': {'description': 'If True, include links to PRs that have no release notes (default=False)'}, 'last_tag': {'description': 'Override the last release tag. This is useful to generate release notes if you skipped one or more releases.'}, 'link_pr': {'description': 'If True, insert link to source pull request at end of each line.'}, 'publish': {'description': 'Publish to GitHub release if True (default=False)'}, 'tag': {'description': 'The tag to generate release notes for. Ex: release/1.2', 'required': True}}
class cumulusci.tasks.release_notes.task.ParentPullRequestNotes(project_config, task_config, org_config=None, flow=None, name=None, stepnum=None, **kwargs)[source]

Bases: cumulusci.tasks.github.base.BaseGithubTask

UNAGGREGATED_PR_HEADER = '\r\n\r\n# Unaggregated Pull Requests'
task_docs = '\n Aggregate change notes from child pull request(s) to its corresponding\n parent\'s pull request.\n\n When given the branch_name option, this task will: (1) check if the base branch\n of the corresponding pull request starts with the feature branch prefix and if so (2) attempt\n to query for a pull request corresponding to this parent feature branch. (3) if a pull request\n isn\'t found, the task exits and no actions are taken.\n\n If the build_notes_label is present on the pull request, then all notes from the\n child pull request are aggregated into the parent pull request. if the build_notes_label\n is not detected on the parent pull request then a link to the child pull request\n is placed under the "Unaggregated Pull Requests" header.\n\n When given the parent_branch_name option, this task will query for a corresponding pull request.\n If a pull request is not found, the task exits. If a pull request is found, then all notes\n from child pull requests are re-aggregated and the body of the parent is replaced entirely.\n '
task_options = {'branch_name': {'description': 'Name of branch to check for parent status, and if so, reaggregate change notes from child branches.', 'required': True}, 'build_notes_label': {'description': 'Name of the label that indicates that change notes on parent pull requests should be reaggregated when a child branch pull request is created.', 'required': True}, 'force': {'description': 'force rebuilding of change notes from child branches in the given branch.', 'required': False}}

Module contents