小编ama*_*ert的帖子

本地git配置不会覆盖项目的全局用户

我配置了一个全局git用户,但是想为一个git项目使用不同的用户.

在该项目中,我使用git config --local user.name "localuser"git config --local user.email "localuser@example.com"设置了本地项目的用户和电子邮件.

但是,当我尝试在github上推送到我的遥控器时,我收到此错误:

remote: Permission to localuser/repo.git denied to globaluser.
fatal: unable to access 'https://github.com/localuser/repo.git/': The requested URL returned error: 403
Run Code Online (Sandbox Code Playgroud)

以下是一些可能有助于诊断的输出:

git remote -v:

github  https://github.com/localuser/repo.git (fetch)
github  https://github.com/localuser/repo.git (push)
Run Code Online (Sandbox Code Playgroud)

git config --list:

user.name=globaluser
user.email=globaluser@example.com
...
Run Code Online (Sandbox Code Playgroud)

git config --local --list:

user.name=localuser
user.email=localuser@example.com
...
Run Code Online (Sandbox Code Playgroud)

git config user.name:

localuser
Run Code Online (Sandbox Code Playgroud)

git github git-config

36
推荐指数
3
解决办法
5880
查看次数

退出MySQL而不重新启动El Capitan

我正在运行OS X 10.11 El Capitan及其内置服务器堆栈(Apache 2.4.16,MySQL 5.6.26).

我需要退出mysql,但是立即终止它会重启它.

这是我到目前为止所尝试的:


杀死这个过程

$ ps aux | grep mysql 获得PID返回

74 49484     1   0 10:23AM ??         0:00.46 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --port=3307
Run Code Online (Sandbox Code Playgroud)

然后,$ sudo kill -9 49484杀死进程,但它会立即以更高的PID重新启动.


从launchd卸载mysqld

$ launchctl list | grep mysql 什么都不返回,所以什么也没有 $ launchctl unload


停止mysql服务器

$ /usr/local/mysql/support-files/mysql.server stop失败并显示"错误!无法找到MySQL服务器PID文件!" 尽管mysql正在运行并且PID文件在/usr/local/mysql/data/mysqld.local.pid中是最新的.


以上是我在Stack Overflow上找到的所有建议的解决方案,这些解决方案都不适用于El Capitan.在优胜美地,简单地杀死进程就足够了,但是随着El Capitan的更新,mysql会立即重新启动.

谢谢.

mysql apache macos osx-elcapitan

20
推荐指数
4
解决办法
6113
查看次数

如何在 Jenkins 声明式管道中使用 Throttle 并发构建

我有 Jenkins 声明性管道,用于触发数据库刷新的几个不同存储库,以及依赖于数据库的单元测试。这些 Jenkins 作业由 GitHub 中的拉取请求触发。

为了避免资源冲突,我需要防止这些作业同时运行——无论是在每个项目内还是跨项目。

“Throttle Concurrent Builds”插件似乎是为此而构建的。

我已经安装了插件并配置了一个类别,如下所示:

TCB系统配置

我在应限制其构建的存储库之一中的 Jenkinsfile 中添加了“限制”选项:

pipeline {

    agent any

    options {
        throttle(['ci_database_build'])
    }

    stages {
        stage('Build') {
            parallel {
                stage('Build source') {
                    steps {

                        // etc etc...
Run Code Online (Sandbox Code Playgroud)

但是,这似乎并没有阻止 2 个作业同时执行。作为证据,以下是同时执行的 2 个作业(均包含上述 Jenkisfile 更改):

同时运行的两个受限制的作业

我错过了什么?

jenkins jenkins-plugins jenkins-pipeline jenkins-declarative-pipeline

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

在 Dockerfile 中,复制当前目录除一个目录之外的所有内容

在我的 Dockerfile 中,我有以下内容:

COPY . /var/task
Run Code Online (Sandbox Code Playgroud)

...它将我的应用程序代码复制到图像中。

vendor/执行此复制时我需要排除该目录。

  • 我无法添加vendor/.dockerignore,因为当使用RUN composer install.
  • 我无法指定复制的每个文件和目录,因为它们可能会更改,并且我不能依赖其他开发人员来保持列表更新。

我已尝试以下操作,但出现以下错误:

COPY [^vendor$]* /var/task
Run Code Online (Sandbox Code Playgroud)

当对多个源文件使用 COPY 时,目标必须是一个目录并以 / 结尾

COPY [^vendor$]*/ /var/task
Run Code Online (Sandbox Code Playgroud)

复制失败:未指定源文件

docker dockerfile

6
推荐指数
1
解决办法
6339
查看次数

无法将某个团队添加为 GitHub 环境保护规则的审核者

我在 GitHub 上有一个名为“team-core”的团队。

该团队拥有对某个私有存储库的写入权限

“团队核心”具有对存储库的写入权限

我在 GitHub 中为此存储库设置了一个环境“qa”。

我想向该环境添加一条保护规则,需要团队核心上的任何人进行审核。

然而,尽管“团队核心”具有写入权限(文档说他们只需要读取权限),但他们没有出现在该规则的可能审阅者列表中。

“团队核心”未出现在可能的列表中

其他 4 个团队确实出现在该菜单中(1 个具有读取权限,2 个具有写入权限,1 个具有存储库的管理员角色)。

如何让Team core成为环保规则的审核者?

其他发现

可以为同一存储库的分支保护规则中的选项添加此团队,允许您输入团队(“限制谁可以驳回拉取请求审查”、“允许指定参与者绕过所需的拉取请求”和“限制谁可以推送到匹配的分支”)。

github github-actions

6
推荐指数
1
解决办法
883
查看次数

如何在 Jenkins 声明式管道中获取 Github Webhook 有效负载数据?

我有一个使用 Github webhooks 触发的 Jenkins 声明性管道。

Jenkins 作业可以在拉取请求或合并时触发。

我希望每次都运行 3 个步骤(构建和测试)中的 2 个 - 合并和 PR。

我希望最后一步 Deploy 仅在合并到“开发”分支时触发。

为此,我相信我需要访问触发作业的 github webhook 有效负载(包括其正文和请求标头)。如何从声明性管道访问这些数据?

这是我想要的要点:

pipeline {

    agent any

    stages {
        stage ('Build') {
            steps {
                sh 'build.sh'
            }
        }

        stage ('Test') {
            steps {
                sh 'test.sh'
            }
        }

        stage ('Deploy to QA') {
            when {
                branch 'development'
                // AND the github webhook header "X-GitHub-Event" == "pull_request"
                // AND the github webhook json payload body.merged == true
            }
            steps {
                sh …
Run Code Online (Sandbox Code Playgroud)

github webhooks jenkins jenkins-declarative-pipeline github-webhook

5
推荐指数
0
解决办法
305
查看次数

CloudWatch Insights 查询:格式化日期时间字符串以进行分组

我有 json 格式的 CloudWatch 日志,其条目类似于以下内容:

{
    "message": "resource_liked",
    "context": {
        "date": {
            "date": "2021-05-07 16:52:11.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
    ...
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个 CloudWatch Insights 查询来制作一个简单的直方图:每小时日志中的事件数。

但是,我无法使用@timestamp日志条目的属性。我需要context.date.date在条目的消息正文中使用。

使用以下命令编写此查询@timestamp非常简单:

stats count(*) by datefloor(@timestamp, 1h)
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何使用该消息context.date.date

我认为我需要将日期时间格式化2021-05-07 16:52:11.000000为 aws 理解的日期时间,但我找不到如何操作。


到目前为止我尝试过的

stats count(*) by datefloor(context.date.date, 1h)->“无效日期”

stats count(*) by datefloor(toMillis(context.date.date), 1h)->“无效日期”

stats count(*) by datefloor(substr(context.date.date, 0, 19), 1h)->“无效日期”

stats count(*) by datefloor(concat(replace(substr(context.date.date, 0, 23), ' ', 'T'), '-00:00'), 1h)-> …

amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights

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

PHPStan 不使用自定义实体存储库

我正在使用 PHPStan 及其 Doctrine 扩展。

我有一个使用 doc 块调用的自定义实体存储App\Repository\Doctrine\UserRepository@extends

/**
 * @extends \Doctrine\ORM\EntityRepository<\App\Entity\User>
 */
class UserRepository extends EntityRepository implements IUserRepository
{
    public function customRepositoryMethod()
    {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

在控制器中,这段代码:

    public function getUserMatches(EntityManager $em)
    {
        $userRepo = $em->getRepository(\App\Entity\User::class);
        $userRepo->customRepositoryMethod();
    }
Run Code Online (Sandbox Code Playgroud)

...导致此 PHPStan 错误:

Call to an undefined method Doctrine\ORM\EntityRepository<meQ\Entity\User>::customRepositoryMethod().
Run Code Online (Sandbox Code Playgroud)

感谢 phpstan-doctrine,静态分析知道$em->getRepository(User::class)返回一个EntityRepository<User>.

但是,它不知道将自定义存储库类UserRepository视为该泛型类型的实现。

如何 DocBlock UserRepository 类,或以其他方式配置 PHPStan,以便它解释UserRepository为 的实现EntityRepository<User>

我还尝试过什么

我也尝试过这个 DocBlock,但UserRepository没有成功:

Call to an undefined …
Run Code Online (Sandbox Code Playgroud)

php doctrine static-analysis symfony phpstan

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

无服务器框架不会在使用队列触发器的 Lambda 之前创建 SQS 队列

使用无服务器框架,如何使我的 Lambda 函数依赖于该resources部分中的 SQS 队列,因为它是函数本身的触发器?

在我的 中serverless.yaml,我定义了一个新的队列和 Lambda 函数。

然后,我想使用该队列作为 Lambda 函数的事件源(触发器)。

我通过手动创建队列 ARN 来做到这一点:

functions:
  consumer:
    handler: App\Service\Consumer
    events:
      - sqs:
          arn:
            Fn::Join:
              - ':'
              - arn:aws:sqs
              - Ref: AWS::Region
              - Ref: AWS::AccountId
              - ${opt:stage}-skill-assigner
Run Code Online (Sandbox Code Playgroud)

并在资源中创建队列:

resources:
  Resources:
    SkillAssignerQueue:
      Type: AWS::SQS::Queue
      Properties:
        QueueName: ${opt:stage}-skill-assigner
Run Code Online (Sandbox Code Playgroud)

如果我在将队列用作函数触发器之前在部署中创建队列,则效果很好。

但是,如果我尝试部署它们,当它尝试创建事件源映射时,它会失败并出现此错误:

提供的请求无效:接收消息时发生错误。SQS 错误代码:AWS.SimpleQueueService.NonExistentQueue。SQS 错误消息:此 wsdl 版本的指定队列不存在。

amazon-sqs amazon-web-services aws-lambda serverless-framework

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

如何在 Moment.js 中格式化日期

我在 Moment.js 中正确格式化日期时遇到问题。我正在使用格式为“LLL D,YYYY”的格式函数,因此它应该返回类似“2016 年 9 月 15 日”的内容。

相反,它以一种奇怪的格式返回日期,例如“2016 年 9 月 15 日 12:00 2016 年 15 月 15 日”。

这是我的代码,下面是调试信息。

moment.locale(picker.options.language);

console.log('picker.options.language:');
console.log(picker.options.language);

formatted = moment(picker.date).format(picker.format);

console.log('picker.date:');
console.log(picker.date);

console.log('picker.format:');
console.log(picker.format);

console.log('formatted:');
console.log(formatted);
Run Code Online (Sandbox Code Playgroud)

上面代码的控制台输出:

调试输出

javascript momentjs angular-moment

0
推荐指数
1
解决办法
3385
查看次数