From 2bcbe6d1560e98b9e33e97801c28f35884ee88be Mon Sep 17 00:00:00 2001 From: ffirmanff <103191403+ffirmanff@users.noreply.github.com> Date: Wed, 4 Jan 2023 23:07:18 -0500 Subject: [PATCH 1/8] Add support for username and password for svn source --- conda_build/metadata.py | 2 ++ conda_build/source.py | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/conda_build/metadata.py b/conda_build/metadata.py index 99f1b423d9..88db7b0b26 100644 --- a/conda_build/metadata.py +++ b/conda_build/metadata.py @@ -446,6 +446,8 @@ def parse(data, config, path=None): "svn_url": str, "svn_rev": None, "svn_ignore_externals": None, + "svn_username": None, + "svn_password": None, "folder": None, "no_hoist": None, "patches": list, diff --git a/conda_build/source.py b/conda_build/source.py index 5dbaa59d52..5c93a6a2af 100644 --- a/conda_build/source.py +++ b/conda_build/source.py @@ -440,10 +440,16 @@ def parse_bool(s): os.makedirs(svn_cache) svn_dn = svn_url.split(':', 1)[-1].replace('/', '_').replace(':', '_') cache_repo = join(svn_cache, svn_dn) + extra_args = [] if svn_ignore_externals: - extra_args = ['--ignore-externals'] - else: - extra_args = [] + extra_args.append('--ignore-externals') + if 'svn_username' in source_dict and 'svn_password' in source_dict: + extra_args.extend([ + '--non-interactive', + '--no-auth-cache', + '--username', source_dict.get('svn_username'), + '--password', source_dict.get('svn_password') + ]) if isdir(cache_repo): check_call_env(['svn', 'up', '-r', svn_revision] + extra_args, cwd=cache_repo, stdout=stdout, stderr=stderr) From aebafe1a9ed16d4f865c990b50f19258d96e505f Mon Sep 17 00:00:00 2001 From: ffirmanff <103191403+ffirmanff@users.noreply.github.com> Date: Wed, 4 Jan 2023 23:26:36 -0500 Subject: [PATCH 2/8] Additional documentation as required --- docs/source/resources/define-metadata.rst | 5 ++++- news/????-add-svn-source-credential-support | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 news/????-add-svn-source-credential-support diff --git a/docs/source/resources/define-metadata.rst b/docs/source/resources/define-metadata.rst index 13981d868c..0a1a6ff46f 100644 --- a/docs/source/resources/define-metadata.rst +++ b/docs/source/resources/define-metadata.rst @@ -162,9 +162,12 @@ Source from svn source: svn_url: https://github.com/ilanschnell/bsdiff - svn_rev: 1.1.4 + svn_rev: 1.1.4 # (defaults to head) svn_ignore_externals: True # (defaults to False) + svn_username: username # Optional, if set must also have svn_password + svn_password: password # Optional, if set must also have svn_username +Specify svn_username and svn_password if credential is required for your svn repository. Source from a local path ------------------------- diff --git a/news/????-add-svn-source-credential-support b/news/????-add-svn-source-credential-support new file mode 100644 index 0000000000..95580c1f2b --- /dev/null +++ b/news/????-add-svn-source-credential-support @@ -0,0 +1,19 @@ +### Enhancements + +* Add support for svn source credential (svn_username and svn_password) + +### Bug fixes + +* + +### Deprecations + +* + +### Docs + +* + +### Other + +* From 57498753d11a678415c30501189d709684d90bfa Mon Sep 17 00:00:00 2001 From: ffirmanff <103191403+ffirmanff@users.noreply.github.com> Date: Wed, 4 Jan 2023 23:30:51 -0500 Subject: [PATCH 3/8] Rename ????-add-svn-source-credential-support to 4692-add-svn-source-credential-support --- ...-credential-support => 4692-add-svn-source-credential-support} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename news/{????-add-svn-source-credential-support => 4692-add-svn-source-credential-support} (100%) diff --git a/news/????-add-svn-source-credential-support b/news/4692-add-svn-source-credential-support similarity index 100% rename from news/????-add-svn-source-credential-support rename to news/4692-add-svn-source-credential-support From 9b8991036b5f43f490e31f4af6a42d5c3d709728 Mon Sep 17 00:00:00 2001 From: Ferry Firmansjah <103191403+ffirmanff@users.noreply.github.com> Date: Tue, 17 Jan 2023 09:22:21 -0500 Subject: [PATCH 4/8] Update 4692-add-svn-source-credential-support --- news/4692-add-svn-source-credential-support | 1 + 1 file changed, 1 insertion(+) diff --git a/news/4692-add-svn-source-credential-support b/news/4692-add-svn-source-credential-support index 95580c1f2b..3f7e46c5fa 100644 --- a/news/4692-add-svn-source-credential-support +++ b/news/4692-add-svn-source-credential-support @@ -17,3 +17,4 @@ ### Other * + From af3664ad620908f31f0c64398aa95d13167422fc Mon Sep 17 00:00:00 2001 From: Ferry Firmansjah <103191403+ffirmanff@users.noreply.github.com> Date: Thu, 19 Jan 2023 22:15:27 -0500 Subject: [PATCH 5/8] Update 4692-add-svn-source-credential-support --- news/4692-add-svn-source-credential-support | 1 - 1 file changed, 1 deletion(-) diff --git a/news/4692-add-svn-source-credential-support b/news/4692-add-svn-source-credential-support index 3f7e46c5fa..95580c1f2b 100644 --- a/news/4692-add-svn-source-credential-support +++ b/news/4692-add-svn-source-credential-support @@ -17,4 +17,3 @@ ### Other * - From 43420ba7ccbccfedba70fc2f99d064263963d073 Mon Sep 17 00:00:00 2001 From: Ken Odegard Date: Tue, 11 Apr 2023 23:31:38 -0500 Subject: [PATCH 6/8] Warning about storing credentials as plaintext --- docs/source/resources/define-metadata.rst | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/source/resources/define-metadata.rst b/docs/source/resources/define-metadata.rst index 0a1a6ff46f..19cb8891a8 100644 --- a/docs/source/resources/define-metadata.rst +++ b/docs/source/resources/define-metadata.rst @@ -164,10 +164,20 @@ Source from svn svn_url: https://github.com/ilanschnell/bsdiff svn_rev: 1.1.4 # (defaults to head) svn_ignore_externals: True # (defaults to False) - svn_username: username # Optional, if set must also have svn_password - svn_password: password # Optional, if set must also have svn_username + svn_username: username # Optional, if set must also have svn_password + svn_password: password # Optional, if set must also have svn_username -Specify svn_username and svn_password if credential is required for your svn repository. +To access a restricted SVN repository, specify both ``svn_username`` and ``svn_password``. + +.. caution:: + Storing credentials in plaintext carries risks. Alternatively, consider + using environment variables: + + ... code-block:: yaml + + source: + svn_username: {{ environ["SVN_USERNAME"] }} + svn_password: {{ environ["SVN_PASSWORD"] }} Source from a local path ------------------------- From 6173bdb6b2c284c4b555617a62c2e62808cb2b56 Mon Sep 17 00:00:00 2001 From: Ken Odegard Date: Tue, 11 Apr 2023 23:34:50 -0500 Subject: [PATCH 7/8] Correct code block in docs --- docs/source/resources/define-metadata.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/resources/define-metadata.rst b/docs/source/resources/define-metadata.rst index 17284cfc82..891dd759ef 100644 --- a/docs/source/resources/define-metadata.rst +++ b/docs/source/resources/define-metadata.rst @@ -173,11 +173,11 @@ To access a restricted SVN repository, specify both ``svn_username`` and ``svn_p Storing credentials in plaintext carries risks. Alternatively, consider using environment variables: - ... code-block:: yaml + .. code-block:: yaml - source: - svn_username: {{ environ["SVN_USERNAME"] }} - svn_password: {{ environ["SVN_PASSWORD"] }} + source: + svn_username: {{ environ["SVN_USERNAME"] }} + svn_password: {{ environ["SVN_PASSWORD"] }} Source from a local path ------------------------- From be13a8a1d0c5624feb81ef10c5a6509312b1dc77 Mon Sep 17 00:00:00 2001 From: Ken Odegard Date: Tue, 11 Apr 2023 23:35:50 -0500 Subject: [PATCH 8/8] Update news/4692-add-svn-source-credential-support --- news/4692-add-svn-source-credential-support | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/news/4692-add-svn-source-credential-support b/news/4692-add-svn-source-credential-support index 95580c1f2b..d8ac4c37d8 100644 --- a/news/4692-add-svn-source-credential-support +++ b/news/4692-add-svn-source-credential-support @@ -1,6 +1,6 @@ ### Enhancements -* Add support for svn source credential (svn_username and svn_password) +* Add support for svn source credential (`svn_username` and `svn_password`). (#4692) ### Bug fixes