Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save zhouqiang-cl/9f9adef926b0898d90a65ed02fe5d780 to your computer and use it in GitHub Desktop.
Save zhouqiang-cl/9f9adef926b0898d90a65ed02fe5d780 to your computer and use it in GitHub Desktop.
create_tag.py
import re
import logging
from github import Github
fmt="%(levelname)s: %(asctime)s: %(filename)s:%(lineno)d * %(thread)d %(message)s"
datefmt="%m-%d %H:%M:%S"
logging.basicConfig(level=logging.INFO, format=fmt, datefmt=datefmt)
logger = logging.getLogger()
g = Github("xxx")
class repo_info(object):
def __init__(self, repo_name, repo_addr, release_name_prefix, tag_githash='', version='', possible_title=[]):
self.repo_name = repo_name
self.repo_addr = repo_addr
self.release_name_prefix = release_name_prefix
self.version = version
self.tag_githash = tag_githash
self.possible_title = possible_title
def release_name(self):
return self.release_name_prefix + self.version
def __str__(self):
return "name: [%s], repo: [%s], release_name: [%s], tag_githash: [%s]" % (self.repo_name, self.repo_addr, self.release_name(), self.tag_githash)
repo_list = [
repo_info(
repo_name='TiKV',
repo_addr='tikv/tikv',
release_name_prefix='tikv-server ',
tag_githash='',
version='',
possible_title=['TiKV']),
repo_info(
repo_name='TiDB',
repo_addr='pingcap/tidb',
release_name_prefix='tidb-server ',
tag_githash='',
version='',
possible_title=['TiDB']),
repo_info(
repo_name='PD',
repo_addr='tikv/pd',
release_name_prefix='pd-server ',
tag_githash='',
version='',
possible_title=['PD']),
repo_info(
repo_name='TiFlash',
repo_addr='pingcap/tics',
release_name_prefix='TiFlash ',
tag_githash='',
version='',
possible_title=['TiFlash']),
repo_info(
repo_name='BR',
repo_addr='pingcap/br',
release_name_prefix='br ',
tag_githash='',
version='',
possible_title=['Backup & Restore (BR)', 'Backup and Restore (BR)']),
repo_info(
repo_name='binlog',
repo_addr='pingcap/tidb-binlog',
release_name_prefix='',
tag_githash='',
version='',
possible_title=['Binlog', 'TiDB Binlog']),
repo_info(
repo_name='lightning',
repo_addr='pingcap/tidb-lightning',
release_name_prefix='',
tag_githash='',
version='',
possible_title=['TiDB Lightning']),
repo_info(
repo_name='importer',
repo_addr='tikv/importer',
release_name_prefix='',
tag_githash='',
version='',
possible_title=['Importer']),
repo_info(
repo_name='tidb-tools',
repo_addr='pingcap/tidb-tools',
release_name_prefix='',
tag_githash='',
version='',
possible_title=[]),
repo_info(
repo_name='ticdc',
repo_addr='pingcap/ticdc',
release_name_prefix='ticdc ',
tag_githash='',
version='',
possible_title=['TiCDC']),
repo_info(
repo_name='dumpling',
repo_addr='pingcap/dumpling',
release_name_prefix='',
tag_githash='',
version='',
possible_title=['Dumpling']),
]
def get_repo_tags():
for repo_obj in repo_list:
repo_obj.tag_githash = get_githash(repo_obj.repo_addr)
def get_githash(repo):
r = g.get_repo(repo).get_branch("release-5.0")
return r.commit
def create_git_tag():
for repo_info in repo_list:
repo = g.get_repo(repo_info.repo_addr)
name = repo_info.repo_name
release_message = 'There is no release note for this version.'
logger.info("creating release tag:%s %s %s",repo_info.repo_name, repo_info.version, repo_info.tag_githash)
ret = repo.create_git_ref('refs/tags/{}'.format("v5.0.0-nightly"),repo_info.tag_githash.sha)
logger.info("done creating release: %s", ret)
if __name__ == '__main__':
g = Github("xxx") # personal token
get_repo_tags()
g = Github("xxx") # bot token
create_git_tag()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment