From patchwork Mon Jun 17 05:21:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Sangorrin X-Patchwork-Id: 10997977 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A327419A2 for ; Mon, 17 Jun 2019 05:21:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8676E284E8 for ; Mon, 17 Jun 2019 05:21:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7A08528814; Mon, 17 Jun 2019 05:21:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id CFE84284E8 for ; Mon, 17 Jun 2019 05:21:45 +0000 (UTC) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id A976EA5E; Mon, 17 Jun 2019 05:21:45 +0000 (UTC) X-Original-To: cip-dev@lists.cip-project.org Delivered-To: cip-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 7AD31A5E for ; Mon, 17 Jun 2019 05:21:44 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mo-csw.securemx.jp (mo-csw1115.securemx.jp [210.130.202.157]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 8CEB72C3 for ; Mon, 17 Jun 2019 05:21:43 +0000 (UTC) Received: by mo-csw.securemx.jp (mx-mo-csw1115) id x5H5LUAF028803; Mon, 17 Jun 2019 14:21:30 +0900 X-Iguazu-Qid: 2wHHcpwUutsh0vKO80 X-Iguazu-QSIG: v=2; s=0; t=1560748890; q=2wHHcpwUutsh0vKO80; m=SOgl3W9ihUBpxsfvfvIHB8++lyBXvQ79ieekKL7G2UU= Received: from imx2.toshiba.co.jp (imx2.toshiba.co.jp [106.186.93.51]) by relay.securemx.jp (mx-mr1110) id x5H5LTV5004676; Mon, 17 Jun 2019 14:21:29 +0900 Received: from enc01.localdomain ([106.186.93.100]) by imx2.toshiba.co.jp with ESMTP id x5H5LTvn013808; Mon, 17 Jun 2019 14:21:29 +0900 (JST) Received: from hop001.toshiba.co.jp ([133.199.164.63]) by enc01.localdomain with ESMTP id x5H5LSej008325; Mon, 17 Jun 2019 14:21:28 +0900 From: Daniel Sangorrin To: ben.hutchings@codethink.co.uk Date: Mon, 17 Jun 2019 14:21:26 +0900 X-TSB-HOP: ON Message-Id: <20190617052127.9571-1-daniel.sangorrin@toshiba.co.jp> X-Mailer: git-send-email 2.17.1 Cc: cip-dev@lists.cip-project.org Subject: [cip-dev] [cip-kernel-sec 1/2] remotes: automatically add remotes from configuration file X-BeenThere: cip-dev@lists.cip-project.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: cip-dev-bounces@lists.cip-project.org Errors-To: cip-dev-bounces@lists.cip-project.org X-Virus-Scanned: ClamAV using ClamSMTP Currently the user is required to create its own remotes by hand. This should not be necessary, because the information is already collected in conf/remotes.yml. For that reason, if we detect that any remote has not been added to the local repo then we will add those. Signed-off-by: Daniel Sangorrin --- README.md | 5 +++-- conf/remotes.yml | 9 ++++++--- scripts/import_stable.py | 9 +++++++++ scripts/templates/issue.html | 7 ++++--- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4c5808f..dda94a8 100644 --- a/README.md +++ b/README.md @@ -77,8 +77,9 @@ These files, if they exist, contain a mapping where the keys are default git remote names. The values are also mappings, with the keys: -* `commit_url_prefix`: URL prefix for browsing a commit on a - branch from this remote. +* `git_repo_url`: URL of the remote repository. +* `commit_url_suffix`: URL suffix that gets appended to `git_repo_url` + for browsing a commit on a branch from this remote. * `git_name`: (optional) The name actually used for this git remote, if it's different from the default. diff --git a/conf/remotes.yml b/conf/remotes.yml index 51c523d..446bb15 100644 --- a/conf/remotes.yml +++ b/conf/remotes.yml @@ -1,6 +1,9 @@ torvalds: - commit_url_prefix: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id= + git_repo_url: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git + commit_url_suffix: /commit/?id= stable: - commit_url_prefix: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit?id= + git_repo_url: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git + commit_url_suffix: /commit?id= cip: - commit_url_prefix: https://git.kernel.org/pub/scm/linux/kernel/git/cip/linux-cip.git/commit?id= + git_repo_url: https://git.kernel.org/pub/scm/linux/kernel/git/cip/linux-cip.git + commit_url_suffix: /commit?id= diff --git a/scripts/import_stable.py b/scripts/import_stable.py index b3261cf..26e45a9 100755 --- a/scripts/import_stable.py +++ b/scripts/import_stable.py @@ -35,6 +35,9 @@ def update(git_repo, remote_name): subprocess.check_call(['git', 'remote', 'update', remote_name], cwd=git_repo) +def add(git_repo, remote_name, remote_url): + subprocess.check_call(['git', 'remote', 'add', remote_name, remote_url], + cwd=git_repo) def get_backports(git_repo, remotes, branches, debug=False): backports = {} @@ -140,6 +143,12 @@ def main(git_repo, remotes, debug=False): remote_names = set(branch['git_remote'] for branch in branches) for remote_name in remote_names: + import sys + current_remotes = subprocess.check_output(['git', 'remote', 'show'], + cwd=git_repo).decode(sys.stdout.encoding).strip().split('\n') + if remote_name not in current_remotes: + add(git_repo, remotes[remote_name]['git_name'], + remotes[remote_name]['git_repo_url']) update(git_repo, remotes[remote_name]['git_name']) backports = get_backports(git_repo, remotes, branches, debug) c_b_map = kernel_sec.branch.CommitBranchMap(git_repo, remotes, branches) diff --git a/scripts/templates/issue.html b/scripts/templates/issue.html index a3286e1..de42753 100644 --- a/scripts/templates/issue.html +++ b/scripts/templates/issue.html @@ -75,7 +75,8 @@ Status {% for branch, affected in branches %} {% set name = branch.short_name %} - {% set url_prefix = remotes[branch.git_remote].commit_url_prefix %} + {% set git_repo_url = remotes[branch.git_remote].git_repo_url %} + {% set url_suffix = remotes[branch.git_remote].commit_url_suffix %} {{ name }} @@ -84,7 +85,7 @@ {% if issue['fixed-by'] and issue['fixed-by'][name] and issue['fixed-by'][name] != 'never' %} fixed by {% for commit in issue['fixed-by'][name] %} - {{ commit[:12] }}{% if not loop.last %},{% endif %} + {{ commit[:12] }}{% if not loop.last %},{% endif %} {% endfor %} {% else %} never affected @@ -98,7 +99,7 @@ {% if issue['introduced-by'] and issue['introduced-by'][name] and issue['introduced-by'][name] != 'never' %} - introduced by {% for commit in issue['introduced-by'][name] %} - {{ commit[:12] }}{% if not loop.last %},{% endif %} + {{ commit[:12] }}{% if not loop.last %},{% endif %} {% endfor %} {% endif %} {% endif %}