Skip to content
Snippets Groups Projects
Commit f3dd9e6b authored by Amir MOHAMMADI's avatar Amir MOHAMMADI
Browse files

Allow changing the server in badges

parent 53cccaf1
No related branches found
No related tags found
1 merge request!170Don't update conda first in bootstrap and Allow changing the server in badges
......@@ -18,12 +18,12 @@ logger = get_logger(__name__)
PROJECT_BADGES = [
{
"name": "Docs (stable)",
"link_url": "https://www.idiap.ch/software/{group}/docs/%{{project_path}}/stable/index.html",
"link_url": "{idiap_server}/docs/%{{project_path}}/stable/index.html",
"image_url": "https://img.shields.io/badge/docs-stable-yellow.svg",
},
{
"name": "Docs (latest)",
"link_url": "https://www.idiap.ch/software/{group}/docs/%{{project_path}}/%{{default_branch}}/index.html",
"link_url": "{idiap_server}/docs/%{{project_path}}/%{{default_branch}}/index.html",
"image_url": "https://img.shields.io/badge/docs-latest-orange.svg",
},
{
......@@ -47,9 +47,14 @@ PROJECT_BADGES = [
# These show on the README and will be visible in PyPI
README_BADGES = [
{
"name": "Docs (current)",
"link_url": "https://www.idiap.ch/software/{group}/docs/{group}/{name}/master/index.html",
"image_url": "https://img.shields.io/badge/docs-available-orange.svg",
"name": "Docs (stable)",
"link_url": "{idiap_server}/docs/{group}/{name}/stable/index.html",
"image_url": "https://img.shields.io/badge/docs-stable-yellow.svg",
},
{
"name": "Docs (latest)",
"link_url": "{idiap_server}/docs/{group}/{name}/master/index.html",
"image_url": "https://img.shields.io/badge/docs-latest-orange.svg",
},
{
"name": "Pipeline (current)",
......@@ -99,6 +104,11 @@ Examples:
"""
)
@click.argument("package")
@click.option(
"--update-readme/--no-update-readme",
default=True,
help="Whether to update badges in the readme or not.",
)
@click.option(
"-d",
"--dry-run/--no-dry-run",
......@@ -107,9 +117,14 @@ Examples:
"(combine with the verbosity flags - e.g. ``-vvv``) to enable "
"printing to help you understand what will be done",
)
@click.option(
"-s",
"--server",
help="The documentation server. Default value is https://www.idiap.ch/software/{group}",
)
@verbosity_option()
@bdt.raise_on_error
def badges(package, dry_run):
def badges(package, update_readme, dry_run, server):
"""Creates stock badges for a project repository"""
# if we are in a dry-run mode, let's let it be known
......@@ -144,27 +159,33 @@ def badges(package, dry_run):
# creates all stock badges, preserve positions
info = dict(zip(("group", "name"), package.split("/", 1)))
if not server:
server = f"https://www.idiap.ch/software/{group}"
info["idiap_server"] = server[:-1] if server.endswith("/") else server
for position, badge in enumerate(PROJECT_BADGES):
data = dict([(k, v.format(**info)) for (k, v) in badge.items()])
data["position"] = position
logger.info(
"Creating badge '%s' => '%s'", data["name"], data["link_url"],
"Creating badge '%s' => '%s'",
data["name"],
data["link_url"],
)
if not dry_run:
use_package.badges.create(data)
# download and edit README to setup badges
readme_file = use_package.files.get(file_path="README.rst", ref="master")
readme_content = readme_file.decode().decode()
readme_content = _update_readme(readme_content, info)
# commit and push changes
logger.info("Changing README.rst badges...")
update_files_at_master(
use_package,
{"README.rst": readme_content},
"Updated badges section [ci skip]",
dry_run,
)
if update_readme:
readme_file = use_package.files.get(file_path="README.rst", ref="master")
readme_content = readme_file.decode().decode()
readme_content = _update_readme(readme_content, info)
# commit and push changes
logger.info("Changing README.rst badges...")
update_files_at_master(
use_package,
{"README.rst": readme_content},
"Updated badges section [ci skip]",
dry_run,
)
logger.info("All done.")
except gitlab.GitlabGetError:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment