| Conditions | 7 |
| Total Lines | 69 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 12 | ||
| Bugs | 0 | Features | 2 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | # -*- coding: utf-8 -*- |
||
| 97 | def create_changelog(repo=None, |
||
| 98 | username=None, |
||
| 99 | password=None, |
||
| 100 | token=None, |
||
| 101 | milestone=None, |
||
| 102 | since_tag=None, |
||
| 103 | until_tag=None, |
||
| 104 | branch=None, |
||
| 105 | output_format='changelog', |
||
| 106 | issue_label_regex='', |
||
| 107 | pr_label_regex='', |
||
| 108 | template_file=None, |
||
| 109 | issue_label_groups=None): |
||
| 110 | """Create changelog data.""" |
||
| 111 | # Instantiate Github API |
||
| 112 | gh = GitHubRepo( |
||
| 113 | username=username, |
||
| 114 | password=password, |
||
| 115 | token=token, |
||
| 116 | repo=repo, ) |
||
| 117 | |||
| 118 | version = until_tag or None |
||
| 119 | milestone_number = None |
||
| 120 | closed_at = None |
||
| 121 | since = None |
||
| 122 | until = None |
||
| 123 | version_tag_prefix = 'v' |
||
| 124 | |||
| 125 | # Set milestone or from tag |
||
| 126 | if milestone and not since_tag: |
||
| 127 | milestone_data = gh.milestone(milestone) |
||
| 128 | milestone_number = milestone_data['number'] |
||
| 129 | closed_at = milestone_data['closed_at'] |
||
| 130 | version = milestone |
||
| 131 | |||
| 132 | if version.startswith(version_tag_prefix): |
||
| 133 | version = version[len(version_tag_prefix):] |
||
| 134 | |||
| 135 | elif not milestone and since_tag: |
||
| 136 | since = gh.tag(since_tag)['tagger']['date'] |
||
| 137 | if until_tag: |
||
| 138 | until = gh.tag(until_tag)['tagger']['date'] |
||
| 139 | closed_at = until |
||
| 140 | |||
| 141 | # This returns issues and pull requests |
||
| 142 | issues = gh.issues( |
||
| 143 | milestone=milestone_number, |
||
| 144 | state='closed', |
||
| 145 | since=since, |
||
| 146 | until=until, |
||
| 147 | branch=branch, ) |
||
| 148 | |||
| 149 | # Filter by regex if available |
||
| 150 | filtered_prs = filter_prs_by_regex(issues, pr_label_regex) |
||
| 151 | filtered_issues = filter_issues_by_regex(issues, issue_label_regex) |
||
| 152 | |||
| 153 | # If issue label grouping, filter issues |
||
| 154 | new_filtered_issues, issue_label_groups = filter_issue_label_groups( |
||
| 155 | filtered_issues, issue_label_groups) |
||
| 156 | |||
| 157 | return format_changelog( |
||
| 158 | repo, |
||
| 159 | new_filtered_issues, |
||
| 160 | filtered_prs, |
||
| 161 | version, |
||
| 162 | closed_at=closed_at, |
||
| 163 | output_format=output_format, |
||
| 164 | template_file=template_file, |
||
| 165 | issue_label_groups=issue_label_groups) |
||
| 166 | |||
| 225 |