小编And*_*dyP的帖子

在某些条件下使用钩子自动将一个分支合并到另一个分支?

我的 github 存储库中有两个分支 -masterdev分支。我有一个要求,需要在以下条件下将master分支合并到dev分支:

  • 一旦 PR 直接合并到 master 分支,那么我需要自动将 master 分支合并回 dev 分支。
  • 每当有人直接将提交添加到主分支时,我就需要自动master将分支合并回dev分支。

这有可能做到吗?我相信我们可以使用 git Hooks 来完成这项工作,但我不知道该怎么做。有人可以提供一个如何实现这一目标的例子吗?

我在线阅读它,看起来我可以使用包含以下内容的钩子,但我很困惑,只有当有人向分支添加提交或任何 PR 合并到主分支post-receive时,如何执行此操作?master这也是正确的方法吗?

  git checkout master
  git pull

  git checkout dev
  git pull

  git merge master --no-ff --no-edit
  git push
Run Code Online (Sandbox Code Playgroud)

我明白,由于合并冲突,这可能并不总是可能的,但如果可能的话,我们希望它自动发生。

更新

阅读更多有关Github Actions- 我在 git 存储库的根文件夹中创建了一个这样的文件,.github/workflows/merge-back-to-dev.yml内容如下。这看起来合适吗?我需要所有这些字段吗runs-on

  name: 'Nightly Merge'

  on:
    push:
      branches:
        - master

  jobs:
    nightly-merge:

      runs-on: ubuntu-latest

      steps: …
Run Code Online (Sandbox Code Playgroud)

git github githooks gitlab

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

使用 c# http 客户端时,请求标头必须仅包含 ASCII 字符吗?

我正在使用HttpClient通过传递标头进行 POST 调用,但在某些时候我收到如下错误:

Request headers must contain only ASCII characters.
Run Code Online (Sandbox Code Playgroud)

使用堆栈跟踪:

at System.Net.Http.HttpConnection.WriteStringAsync(String s)
   at System.Net.Http.HttpConnection.WriteHeadersAsync(HttpHeaders headers, String cookiesFromContainer)
   at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

public HttpWrapper(string endpoint, Func<IDictionary<string, string>> NewHeader)
{
    _httpClient = new HttpClient();
    _httpClient.BaseAddress = new Uri(endpoint);

    if (NewHeader != …
Run Code Online (Sandbox Code Playgroud)

c# dotnet-httpclient

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

在流上使用 SeekOrigin.Begin 时不支持指定的方法

StreamReader稍后将使用它来反序列化我的请求,如下所示 -

sStream对象 -

using (var reader = new StreamReader(s))
{
    using (var jsonReader = new JsonTextReader(reader))
    {
        var ser = new JsonSerializer();
        return ser.Deserialize<T>(jsonReader);
    }
}
Run Code Online (Sandbox Code Playgroud)

一切正常,但现在我试图在控制台上打印实际的请求正文,所以我尝试这样做,但它给了我一个错误 -

using (var reader = new StreamReader(s))
{
    string body = reader.ReadToEnd();
    // print body on the console which is what I am trying to do
    // reset to start of stream
    // this line gives me error
    s.Seek(0, SeekOrigin.Begin);
    using (var jsonReader = new JsonTextReader(reader)) …
Run Code Online (Sandbox Code Playgroud)

c# streamreader

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

通过错误组处理 goroutine 终止和错误处理?

我试图以这种方式并行读取多个文件,以便每个读取文件的 go 例程将其数据写入该通道,然后有一个 go 例程监听该通道并将数据添加到映射中。这是我的玩法

下面是剧中的例子:

package main

import (
    "fmt"
    "sync"
)

func main() {
    var myFiles = []string{"file1", "file2", "file3"}
    var myMap = make(map[string][]byte)
    dataChan := make(chan fileData, len(myFiles))
    wg := sync.WaitGroup{}
    defer close(dataChan)
    // we create a wait group of N
    wg.Add(len(myFiles))
    for _, file := range myFiles {
        // we create N go-routines, one per file, each one will return a struct containing their filename and bytes from
        // the file via the dataChan …
Run Code Online (Sandbox Code Playgroud)

channel go goroutine

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

如何避免在多个地方使用 BuildServiceProvider 方法?

我有一个Asp.net Core 3.1使用Kestrel服务器的遗留应用程序,我们所有的GETPOST调用都可以正常工作。我们的遗留应用程序上已经有一堆中间件,我们根据端点的不同将每个中间件用于不同的目的。

这就是我们的旧应用程序的设置方式,如下所示。我试图通过只保留重要的事情来使事情变得简单。

下面是我们的BaseMiddleware类,它由我们拥有的一堆其他中间件扩展。大约我们有 10 多个中间件扩展BaseMiddleware类 -

基础中间件.cs

public abstract class BaseMiddleware {
  protected static ICatalogService catalogService;
  protected static ICustomerService customerService;
  private static IDictionary <string, Object> requiredServices;

  private readonly RequestDelegate _next;

  public abstract bool IsCorrectEndpoint(HttpContext context);
  public abstract string GetEndpoint(HttpContext context);
  public abstract Task HandleRequest(HttpContext context);

  public BaseMiddleware(RequestDelegate next) {
    var builder = new StringBuilder("");
    var isMissingService = false;
    foreach(var service in requiredServices) {
      if (service.Value == …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection inversion-of-control asp.net-core

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