我似乎无法屏蔽 Gitlab CI 上的变量 -
我正在尝试上传 ssh 私钥,无论我做什么,它都拒绝屏蔽它。
那是我试图在 Gitlab 上存储一个私钥,供我的生产服务器具有公钥的 Gitlab运行器使用。我不是在问如何在构建过程中将它介绍给跑步者,如这个问题的答案中所述
我使用的是 ed25519 密钥,因此字符开始时并非都是 base 64。
所以在生成密钥之后
$ cat gitlab
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmU....etc etc
-----END OPENSSH PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
我通过管道将它传输到 base64
$ cat gitlab|base64
Run Code Online (Sandbox Code Playgroud)
没有喜悦。
Gitlab 似乎也将换行符引入粘贴的文本/变量字段
所以我做了
$ cat gitlab|base64|tr -d '\r'
Run Code Online (Sandbox Code Playgroud)
乃至
$ cat gitlab|base64|tr -d '\r'|xclip
Run Code Online (Sandbox Code Playgroud)
我找到了这个人 ,这到底是怎么回事
$ cat gitlab|base64|base32|tr -d '\r'|xclip
Run Code Online (Sandbox Code Playgroud)
都没有快乐。
任何人得到这个工作?
尝试修改具有多个值的 ldap 属性,似乎无法弄清楚语法。
我正在将ldap3库与 python3 一起使用。
文档给出了一个修改条目的两个属性的示例- 但每个属性只有一个值。
该示例中的字典是我遇到的问题:
c.modify('cn=user1,ou=users,o=company',
{'givenName': [(MODIFY_REPLACE, [<what do I put here>])]})
Run Code Online (Sandbox Code Playgroud)
我想修改 memberuid 属性,而不是只有一个值的“givenname”,该属性显然会有许多名称作为条目。
因此,我将所有 memberuid 放入一个列表中,进行修改,然后尝试将新的用户名/memberuid 列表提供给 MODIFY 命令。就像这样:
oldval = 'super.man'
newval = 'clark.kent'
existingmembers = ['super.man', 'the.hulk', 'bat.man']
newmemberlist = [newval if x==oldval else x for x in existingmembers]
# newmemberlist = ", ".join(str(x) for x in newmemberlist)
Run Code Online (Sandbox Code Playgroud)
我尝试过将 newmemberlist 作为列表传递
'memberuid': [(MODIFY_REPLACE, ['clark.kent', 'the.hulk','bat.man'])]
Run Code Online (Sandbox Code Playgroud)
这给了我TypeError: 'str' object cannot be interpreted as an …
我正在尝试使用 pytest 为类方法开发一个测试,该方法从字符串列表中随机选择一个字符串。
它看起来本质上类似于下面的 givemeannumber 方法:
import os.path
from random import choice
class Bob(object):
def getssh():
return os.path.join(os.path.expanduser("~admin"), '.ssh')
def givemeanumber():
nos = [1, 2, 3, 4]
chosen = choice(nos)
return chosen
Run Code Online (Sandbox Code Playgroud)
第一种方法,getssh,在 Bob 类中只是pytest 文档中的例子
我的生产代码从数据库中获取字符串列表,然后随机选择一个。所以我希望我的测试获取字符串,然后选择第一个字符串而不是随机选择。这样我就可以针对已知字符串进行测试。
根据我的阅读,我认为我需要使用monkeypatching 来伪造随机化。
这是我到目前为止所得到的
import os.path
from random import choice
from _pytest.monkeypatch import MonkeyPatch
from bob import Bob
class Testbob(object):
monkeypatch = MonkeyPatch()
def test_getssh(self):
def mockreturn(path):
return '/abc'
Testbob.monkeypatch.setattr(os.path, 'expanduser', mockreturn)
x = Bob.getssh()
assert x == '/abc/.ssh'
def test_givemeanumber(self):
Testbob.monkeypatch.setattr('random.choice', …
Run Code Online (Sandbox Code Playgroud)