小编Flo*_*ian的帖子

在 GitHub Actions 中查找拉取请求的共同祖先

我试图找到 GitHub Action 中一个分支与另一个分支分离的提交的 SHA。

在本地,我可以通过运行来实现这一点git merge-base <commit> <commit>。我正在尝试在工作流程中实现相同的目标。

我有以下内容workflow.yaml

name: "Find common ancestor"

on:
  pull_request:
    branches:
      - master

jobs:
  find:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0     

      - name: Find common ancestor
        run: git merge-base "$GITHUB_HEAD_REF" "$GITHUB_BASE_REF"
Run Code Online (Sandbox Code Playgroud)

当工作流在打开分支“dev”到“master”的拉取请求时运行时,工作流会报告以下错误:

2021-08-14T19:17:04.5732118Z fatal: Not a valid object name dev
Run Code Online (Sandbox Code Playgroud)

我所有的研究都表明需要设置获取深度。据我了解,如果不将 fetch-depth 设置为 0,则只会获取浅克隆。不幸的是,即使将 fetch-depth 设置为 0,工作流程也无法找到必要的引用,而且我也没有想法。

有谁知道为什么 merge-base 无法识别引用,或者知道寻找共同祖先的替代方法?

编辑:

运行时git branch -a,我发现 refs 前面带有remote/origin/*,这解释了为什么在调用时找不到它们merge-base。为什么我退房后无法访问当地分行?

git github github-actions

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

在 Racket 中动态加载模块

对于一个项目,我正在创建一个类driver%,它应该是提供相同过程的不同模块的抽象层。该类将使用指定要使用的模块的参数进行初始化。

此外,我想driver%公开相同的过程但没有副作用,以方便使用驱动程序的单元测试类。

考虑以下:

module_one.rkt
#lang racket
(provide foo)
(define (foo)
  (display "called from "module one"))
Run Code Online (Sandbox Code Playgroud) module_two.rkt
#lang racket
(provide foo)
(define (foo)
  (display "called from "module two"))
Run Code Online (Sandbox Code Playgroud) driver.rkt
#lang racket
(require (prefix-in one: "module_one.rkt")
         (prefix-in two: "module_two.rkt"))

(provide driver%)

(define driver%
  (class object%
         (super-new)
         (init driver-choice)
         (define choice driver-choice)
         (define/public (foo)
           (case choice
             [(1) (one:foo)]
             [(2) (two:foo)]
             [else void]))))       
Run Code Online (Sandbox Code Playgroud)

这满足了上述要求,但不是很优雅:对于每个公开的过程,必须添加另一个 case 表达式。这似乎没有必要,因为 API 的选择是在类实例化时做出的,所以选择在任何地方都是相同的。

对于这个问题,什么是更可接受的解决方案?我已经研究过使用local-require,但这似乎不起作用define/public

非常感谢!

racket

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

标签 统计

git ×1

github ×1

github-actions ×1

racket ×1