Create a GitHub release draft.
(rl_version: str, rl_release_notes: str)
| 113 | |
| 114 | |
| 115 | def create_github_release_draft(rl_version: str, rl_release_notes: str): |
| 116 | """Create a GitHub release draft.""" |
| 117 | url = f'https://api.github.com/repos/{REPO}/releases' |
| 118 | headers = {'Authorization': f'token {GITHUB_TOKEN}'} |
| 119 | data = { |
| 120 | 'tag_name': f'v{rl_version}', |
| 121 | 'name': f'v{rl_version}', |
| 122 | 'body': rl_release_notes, |
| 123 | 'draft': True, |
| 124 | 'prerelease': False, |
| 125 | } |
| 126 | response = requests.post(url, json=data, headers=headers, timeout=10) |
| 127 | try: |
| 128 | response.raise_for_status() |
| 129 | except requests.exceptions.HTTPError as e: |
| 130 | print(f'HTTP error occurred: {e}') |
| 131 | print(f'Response content: {response.content.decode()}') |
| 132 | raise e |
| 133 | release_url = response.json()['html_url'] |
| 134 | # Publishing happens in the edit page |
| 135 | edit_url = release_url.replace('/releases/tag/', '/releases/edit/') |
| 136 | return edit_url |
| 137 | |
| 138 | |
| 139 | if __name__ == '__main__': |