小编Kev*_*chs的帖子

Eloquent hasOne vs belongs如果指定了两个键,则退化为相同的函数?

对于一对一关系的情况,如果我在方法调用中完全指定键,那么hasOnebelongsTo关系之间是否存在差异?或者,换句话说,如果我hasOne在关系的两边使用,它会是相同的结果吗?

laravel eloquent laravel-4

15
推荐指数
1
解决办法
3928
查看次数

PyQt4名称在eclipse中显示为未定义,但运行正常

我正在使用Eclipse 3.7.1和Python编码的最新PyDev插件.我正在使用PyQt4.在我的文件的顶部,我有:

from PyQt4.QtCore import *
from PyQt4.QtGui import *
Run Code Online (Sandbox Code Playgroud)

另外,我有Project Explorer列表中包含的PyQt4树.然而,eclipse仍然认为像QMainWindow这样的名字是未定义的.代码运行正常.我怎么能让eclipse识别这些名字.

谢谢

python eclipse pydev pyqt4 python-2.7

11
推荐指数
1
解决办法
5223
查看次数

Jenkins声明性管道 - 如何获取正在使用的Jenkinsfile的路径?

我们有一系列相同的Jenkinsfile脚本,除了每个脚本配置一个环境项以指向包含Jenkinsfile的SCM结账中的目录.它用于引用同一目录中的文件.SCM repo将所有这些Jenkinsfile脚本放在不同的目录中.如果我只能检索包含Jenkinsfile的目录的路径,我会看到一个简单的开头,使管道脚本在每种情况下都相同.

我试过几个不同的东西,比如包含的步骤

script {
    println __FILE__
}
Run Code Online (Sandbox Code Playgroud)

script { 
    scriptDir = new File(getClass().protectionDomain.codeSource.location.path).parent
    println scriptDir
}
Run Code Online (Sandbox Code Playgroud)

两者都没有运行(在__FILE__案例中给出了不存在的变量,在第二种情况下违反了权限).我试过"${__FILE__}"和其他变种.

我需要在step-sh块中使用该目录,所以我认为它需要在一个环境项中.

现在,Jenkins作业配置提供了Jenkins文件的路径,但我不想重复这一点以在该级别创建另一个环境变量.

已经咨询过:

感谢帮助.

groovy jenkins jenkins-groovy jenkins-pipeline

7
推荐指数
2
解决办法
3669
查看次数

创建在 Windows 主机上运行 Powershell 脚本的 GitHub Action

我的 GitHub Actions 工作流程“在” windows-latest上运行。我想要一个执行 PowerShell(核心或旧版都可以)脚本的自定义操作。我有一个在 Linux 和 MacOS 上运行的并行操作。所以,我的 .github/actions/install-tf-win 目录包含这个 action.yml

name: install_tf_win
description: installs Terraform/TerraGrunt for Windows
runs:
  using: "composite"
  steps:
    - run: install-tf-win\install-tf-win.ps1
      shell: pwsh
Run Code Online (Sandbox Code Playgroud)

该目录还包含 install-tf-win.ps1。我已经尝试了该运行语句的各种变体。以“&”开头和不带“&”开头,使用正斜杠和反斜杠的路径变化。我最初从 $GITHUB_ACTION_PATH/install-tf-win.ps1 (适用于 Linux/MacOS)开始,但是似乎 GITHUB_ACTION_PATH 被评估为空字符串,然后有人抱怨 /install-tf-win.ps1 不被发现。我尝试了 pwsh 和 powershell 来获取 shell 键值。

上面显示的表格会导致此错误:

Run ./.github/actions/install-tf-win
install-tf-win\install-tf-win.ps1: D:\a\_temp\c1d3d7fa-074b-4f90-ade0-799dcebd84ec.ps1:2
Line |
   2 |  install-tf-win\install-tf-win.ps1
     |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | The module 'install-tf-win' could not be loaded. For more information, run 'Import-Module
     | install-tf-win'.
Run Code Online (Sandbox Code Playgroud)

显然,我可以通过将 PowerShell 语句放入一个步骤中来解决这个问题。但是,文档表明这应该可行。https://docs.github.com/en/free-pro-team@latest/actions/creating-actions/metadata-syntax-for-github-actions#runsstepsshell

那么,我该如何让它发挥作用呢?

windows powershell github-actions

5
推荐指数
1
解决办法
8699
查看次数

真的,如何抑制 PowerShell 分析器规则

MS 文档在这里:抑制规则,但在使用 VS Code 时它实际上并不像文档那样工作。我的脚本顶部有以下内容:

# Supress some analyzer (linter) diagnostics:
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingCmdletAliases','')]
Run Code Online (Sandbox Code Playgroud)

但是,分析器本身正在抱怨该声明“意外属性”。看起来像这样:

错误扩大

而且,谁愿意看到这一切红色!

未展开的

有趣的是,当我添加第二个类似的语句时,如下所示:

# Supress some analyzer (linter) diagnostics:
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSProvideCommentHelp','')]
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingCmdletAliases','')]
Run Code Online (Sandbox Code Playgroud)

第一个语句不再被标记为错误,只有第二个语句被标记为错误。

但是,最重要的是,我试图压制这些消息是行不通的。

我在这里阅读了 .NET 文档

我什至尝试添加

Add-Type -Path 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.Build.Workflow.dll'
Run Code Online (Sandbox Code Playgroud)

正如对这个问题的回答所建议的那样,但这没有什么区别。

我使用的是 PS Core 7.3.7,使用的是带有 .NET 7.0.5 的 Windows 10 Pro。和 VS 代码 1.82.1

powershell visual-studio-code powershell-core

5
推荐指数
1
解决办法
161
查看次数

基于环境变量的Jenkins流水线条件阶段

我想创建一个 Jenkins (v2.126) 声明性语法管道,它具有使用 when() 子句检查环境变量值的阶段。具体来说,我想设置一个 Jenkins 作业参数(因此“使用参数构建”,而不是管道参数)并确定是否执行了一个阶段。

我有这样的阶段代码:

stage('plan') {
  when {
     environment name: ExecuteAction, value: 'plan'
  }
  steps {
     sh 'cd $dir && $tf plan'
  }
}
Run Code Online (Sandbox Code Playgroud)

参数名称是 ExecuteAction。但是,当 ExecuteAction 通过作业“选择”参数设置为:计划时,此阶段不会运行。通过添加此调试阶段,我可以看到通过环境变量输入了适当的值:

stage('debug') {
  steps {
     sh 'echo "ExecuteAction = $ExecuteAction"'
     sh 'env'
  }
}
Run Code Online (Sandbox Code Playgroud)

我得到这样的控制台输出:

[Pipeline] stage
[Pipeline] { (debug)
[Pipeline] sh
[workspace] Running shell script
+ echo 'ExecuteAction = plan'
ExecuteAction = plan
[Pipeline] sh
[workspace] Running shell script
+ env
...
ExecuteAction=plan
...
Run Code Online (Sandbox Code Playgroud)

我正在使用Jenkins 书籍管道语法中 …

jenkins jenkins-pipeline

4
推荐指数
2
解决办法
1万
查看次数

Python ssl 标准库 load_cert_chain - 加载 PEM 证书链失败

运行 Python3.6。

我有一个pem格式的证书包,即服务器证书及其 CA 证书。ssl 上下文 load_cert_chain('aws-bundle.pem') 抛出 SSL 错误。其他库,如 urllib,在验证来自 HTTPS 事务的证书时遇到问题。

这是捆绑文件的样子(省略了几行):

-----BEGIN CERTIFICATE----- 
MIIESTCCAzGgAwIBAgITBn+UV4WH6Kx33rJTMlu8mYtWDTANBgkqhkiG9w0BAQsF
. . .
yLyKQXhw2W2Xs0qLeC1etA+jTGDK4UfLeC0SF7FSi8o5LL21L8IzApar2pR/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- 
MIIEkjCCA3qgAwIBAgITBn+USionzfP6wq4rAfkI7rnExjANBgkqhkiG9w0BAQsF
. . . 
akcjMS9cmvqtmg5iUaQqqcT5NJ0hGA==
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

以下是我的 ipython 成绩单的摘录:

In [33]: import ssl

In [34]: context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)

In [35]: context.load_cert_chain('aws-bundle.pem')
---------------------------------------------------------------------------
SSLError                                  Traceback (most recent call last)
<ipython-input-38-c955611be04f> in <module>
----> 1 context.load_cert_chain('aws-bundle.pem')

SSLError: [SSL] PEM lib (_ssl.c:3520)
Run Code Online (Sandbox Code Playgroud)

顺便说一句,openssl 命令行工具能够很好地处理该包 - 将元数据转储为文本。

顺便说一句,我也愿意打赌 requests 库可以满足我的需求,但我正在处理一个不需要安装额外软件包的上下文。

python ssl openssl python-3.x tls1.2

3
推荐指数
1
解决办法
5649
查看次数

VS Code 调试提示输入参数并设置工作目录

我知道如何在 launch.json 中传递固定参数,例如在 Visual Studio Code 中,如何在 launch.json 中传递参数。我真正需要的是一个提示,我可以在其中为发生变化的参数给出一个值。

另外,我的论点是一个(数据)目录,其中有一个非常丑陋的长绝对路径。我真的希望能够将工作目录设置为包含每个单独数据目录的路径,因此我只需要提供相对目录路径,即仅提供目录名称。

我正在使用 Python,在 Windows(不是我的选择)上使用 VS Code 1.55.2(也不是我的选择)。

python debugging command-line-arguments visual-studio-code

3
推荐指数
1
解决办法
3081
查看次数

在Go中传递文件指针

好的,我已经在Go中编程了几天,所以我可以算是一个新手,但是我不知道如何导入File结构的定义。我想将* File传递给函数,但似乎无法定义File。我要导入“ os”并在主目录中调用os.Create。如何导入正确的项目或在func定义中声明参数以传递文件指针?

import "os"
func testfunc(fp *File) { ... }
fp := os.Create("myfile")
testfunc(fp)
Run Code Online (Sandbox Code Playgroud)

go

2
推荐指数
1
解决办法
3628
查看次数

Azure 写入 Key Vault 机密的最小权限角色,特定于特定的保管库,甚至特定的机密名称(或通配符)

我想最终得到一个服务帐户/委托人,它具有尽可能窄的最低权限。它需要将新的/更新的机密写入特定的 Azure Key Vault。所以,我想为此创建一个自定义角色并将该角色分配给服务帐户。我已经能够找到足够的文档来知道我需要一个类似的角色:

{
  "Name": "Vault-Secret-Write",
  "Description": "Allow writing new secrets to a particular Key Vault",
  "Actions": [ "Microsoft.KeyVault/vaults/secrets/write" ],
  "AssignableScopes": [ "MAGIC-GOES-HERE" ]
}
Run Code Online (Sandbox Code Playgroud)

我一直无法找到帮助我确定范围应该是什么的文档。如上所述,它应该尽可能窄,至少指向特定的 Key Vault 甚至与全局通配符匹配的机密(例如 keyprefix*)。

azure azure-role-environment azure-keyvault

-1
推荐指数
1
解决办法
1337
查看次数