小编edd*_*uld的帖子

如果存在该SHA1的构建,则阻止TeamCity构建快速合并到master

使用TeamCity与git组合.
目前,TeamCity设置为" master"作为默认分支.

通常,开发发生在另一个分支(例如" dev")上 - TeamCity设置为监视" dev"的更改并自动构建.

如果DEADBEEF-SOME-SHA已经由TeamCity构建和标记为" dev"的构建1.2.3.4 并且我们快速将git SHA1合并到" master",则TeamCity仍然执行构建 - 因此我们最终DEADBEEF-SOME-SHA被标记为1.2.3.4和1.2. 3.5.

据我所知,制作" dev"默认分支会阻止这种情况.
如果构建已成功完成相同的SHA1,是否有另一种方法可以阻止TeamCity执行构建?

请注意,如果我们直接推送master(并且SHA1在其他分支上不存在/尚未构建)我仍然希望看到构建.

如果可能的话,我想在TeamCity中完全实现这一点 - 没有额外的脚本/文件写入等.

git teamcity triggers

12
推荐指数
2
解决办法
296
查看次数

如何将子上下文的管理委托给父级

假设我们有一个类“A”,它本身就充当上下文管理器,因此它实现了

def __enter__()
def __exit__()
Run Code Online (Sandbox Code Playgroud)

界面。客户端代码直接使用with语句创建“A”对象是有效的。

现在,我们还有另一个类“B”,它封装了其他功能,并使用了“A”对象。

如果我们还想让“B”充当上下文管理器,那么管理它的“A”实例的正确方法是什么?

如若实施__enter__,并__exit__于“B”的呼叫__enter__,并__exit__在其上的一个对象实例(分别)?或者,还有更好的方法?

举一个具体的例子(这不是我在我的应用程序中使用的,这只是我想到的第一个非抽象例子)考虑两个类

  • DatabaseConnection
  • DatabaseConnectionPool

单独使用单个是有效DatabaseConnection的,因此DatabaseConnection实现了上下文管理器接口。

DatabaseConnectionPool使用几个DatabaseConnections以及其他位和鲍勃。使用DatabaseConnectionPool(即“with”)应该对它的DatabaseConnection实例进行设置和拆除(以及它可能想做的任何其他事情)

更新: 我写了一些测试代码,我希望能给出以下输出:

在外部调用输入
在内部调用输入
在外部环境中...
do_foo 调用了!
还在用外...
在内部调用退出
在外部调用退出
使用外部完成

但我得到了以下信息:

在外部调用输入
在内部调用输入
在内部调用退出
在外部环境中...
do_foo 调用了!
还在用外...
在外部调用退出
使用外部完成

代码:


class Inner(object):
  def __enter__(self):
    print "Enter invoked on Inner"
    return self

  def __exit__(self, typ, val, tb):
    print "Exit invoked on inner" …
Run Code Online (Sandbox Code Playgroud)

python contextmanager

7
推荐指数
1
解决办法
678
查看次数

如何确保写入的所有文件都在给定路径下(阻止目录访问)

我们有一个C#应用程序,它将文件写入可配置的位置.文件集(和相对路径)在运行时确定.

我们希望确保它不能在配置的位置之外写入文件.

例如,配置的位置可能是c:\ Stuff\Export,程序在C:\ Stuff \下写入任何内容都是错误的

真的,我认为我们可以通过两种方式实现这一点:1)断言没有相关路径(要写入的文件)指定'父目录'(通常为"../") - System.Path没有指定"父"目录"路径组件虽然(就像它有路径分离,即System.Path.PathSeparator).我觉得在字符串中检查"../"有点笨拙.

2)断言生成的所有最终绝对路径(通过将输出位置与文件相对路径组合)相对于输出位置下方.我不确定如何解决这个问题.

Example usage:
Output directory: c:\Stuff\Export
Output path 1: "foo\bar\important.xls"
Output path 2: "foo\boo\something.csv"
Output path 3: "../../io.sys"

Expected final files
1. c:\Stuff\Export\foo\bar\important.xls
2. c:\Stuff\Export\foo\boo\something.csv
3. Should throw exception
Run Code Online (Sandbox Code Playgroud)

c# directory parent

5
推荐指数
2
解决办法
1508
查看次数

如何使用 Azure AD / OpenId 进行身份验证但使用基于实体框架的用户/角色数据

我正在尝试改进旧版 ASPNet MVC/OWIN 应用程序的身份验证故事 - 目前,它使用 AspNetUsers / AspNetRoles / Claims 等表以及基于表单 + cookie 的身份验证。

我想使用 Azure AD / OpenID Connect 进行身份验证,然后像当前一样从数据库加载用户配置文件/角色。基本上,应用程序内不再有密码管理。用户本身仍然需要在应用程序中存在/创建。

该应用程序非常依赖于与这些用户关联的一些自定义数据,因此简单地使用 Active Directory 中的角色并不是一种选择。

OpenID 身份验证可以工作,但是我不确定如何将现有的 Identityuser / IdentityUserRole / RoleManager 管道与其结合使用。

基本上,一旦用户使用 Open ID 进行身份验证,我们就会希望从数据库加载相应的用户(与电子邮件地址匹配)并继续使用该用户配置文件/角色。

特别是,AuthorizeAttribute(指定了特定角色)应继续像以前一样发挥作用。

这是我到目前为止所拥有的:

public class IdentityConfig
{
    public void Configuration(IAppBuilder app)
    {
        app.CreatePerOwinContext(AppIdentityDbContext.Create);
        app.CreatePerOwinContext<AppUserManager>(AppUserManager.Create);
        app.CreatePerOwinContext<AppRoleManager>(AppRoleManager.Create);

        ConfigureAuth(app);
    }

    /// <summary>
    /// Configures OpenIDConnect Authentication & Adds Custom Application Authorization Logic on User Login.
    /// </summary>
    /// <param name="app">The application represented by a <see cref="IAppBuilder"/> …
Run Code Online (Sandbox Code Playgroud)

entity-framework owin asp.net-identity azure-active-directory openid-connect

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

如何使用 AgGrid 自定义幽灵文本(拖动项名称)

根据标题,有没有办法通过 API在AgGrid 中使用(非托管)行拖动实现来自定义“幽灵文本” ?

拖动幽灵文本

drag-and-drop ag-grid

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

运行python脚本,就好像它位于其他位置一样

是否可以从一个位置运行python脚本,但让脚本执行就像它位于其他位置一样(因此导入等都按预期工作).

我的情况是这样的:

  • 应用程序位于/ opt/foo/bin下,应用程序主入口点是 foo.py
  • /opt/foo那里有一堆包/模块foo.py然后导入
  • 我们运行应用程序 cd /opt/foo/bin && python foo.py

我希望能够复制只是 foo.py/tmp与运行它cd /tmp && python foo.py.我希望它能像foo.py生活在下面一样执行/opt/foo/bin.如果需要,我可以修改foo.pyunder /tmp.

希望这对某人有意义.修改foo.pyunder /opt/foo/bin不是一个选项.一种可能性可能是在/tmpie 下创建一个文件夹,/tmp/foo除了符号之外的所有内容foo.py,但是我希望有一种更简单的方法来实现我想要的!

python import module path

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

os.close(0)和sys.stdin.close()之间的区别

我正在处理一些Python代码,这是从Apache调用的CGI脚本。

代码要做的第一件事是(我相信)尝试使用以下命令关闭stdin / stdout / stderr:

    for fd in [0, 1, 2]:
    try:
        os.close(fd)
    except Exception:
        pass
Run Code Online (Sandbox Code Playgroud)

通常,这可以正常工作,但是,如果它们没有打开,则会出现“ python.exe已停止工作”,“导致程序无法正常工作的问题”错误消息(Win32异常)。

几个问题:

  • 通过os.close(descriptor number)和sys.stdin.close()等关闭之间有什么区别?
  • 假设我应该通过两种机制关闭,如何检查描述符是否真正打开(即,调用os.close不会导致Python崩溃)

python stdin cgi file-descriptor sys

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