Skip to content

.github/workflows/pr_lint has no file extension, so GitHub Actions never loads it #4865

Description

@CaduAzeredo

AGENTS.md:154 says "Our CI validates semantic PR titles (see .github/workflows/pr_lint)".

The file is valid, complete YAML — name: lint | PR, amannn/action-semantic-pull-request@v5 with the full type list, and a release-drafter/release-drafter@v6 step. But it has no .yml or .yaml extension, and GitHub Actions only picks up workflows that do.

The API confirms it server-side: the repository has 74 registered workflows and none whose path contains pr_lint, while a control (basic_tests.yml) shows up as active.

ls -1 .github/workflows/ | grep -vE '\.(yml|yaml)$'
# disable_independent_workflows.sh
# pr_lint

gh api "repos/topoteretes/cognee/actions/workflows?per_page=100" --jq '.total_count'
# 74
gh api "repos/topoteretes/cognee/actions/workflows?per_page=100" \
  --jq '[.workflows[] | select(.path | test("pr_lint"))] | length'
# 0

The path was created without an extension in fbc9cefda (2025-01-10), so it looks like it never ran rather than having regressed. require-linear-issue.yml checks for a Linear key, which is a different rule, so semantic PR titles appear to be unenforced today. The release-drafter step in the same file would be inactive for the same reason.

Observed at 8b86f868fcab8d688b41f430e4cc7be1d8427e11.

Possible fix: rename to pr_lint.yml. Worth a look at whether the current PR titles would pass the configured type list before turning it on.

Activity

  1. bounce12340 commented on Sep 3, 2026

    @bounce12340

    Working on this.

  2. bounce12340 commented on Sep 3, 2026

    @bounce12340

    Renamed .github/workflows/pr_lint to .github/workflows/pr_lint.yml so GitHub Actions can load the existing semantic PR title lint and release-drafter workflow. YAML is unchanged; AGENTS.md now points at the new path.

    PR: #4900 (against dev).

    Heads-up: some currently open PR titles would not pass the configured type list (chore, ci, docs, feat, fix, perf, refactor, revert, test, break) once this runs. Linear-prefix-first titles like COG-6341 feat: … fail this check even when require-linear-issue.yml is satisfied via the branch.

  3. ArmagedonFlamer commented on Sep 21, 2026

    @ArmagedonFlamer
    Contributor

    Thanks for flagging this - it's been seen and noted. It's a smaller one, so it may be a while before it's addressed, but we'll update you here.

  4. chenhz01 commented on Sep 30, 2026

    @chenhz01

    这个 CI 缺口很隐蔽——pr_lint 没有 .yml/.yaml 扩展名,GitHub Actions 根本不加载,于是语义化 PR 标题(和里面的 release-drafter)其实一直没生效。改名 pr_lint.yml 是对的,但在打开之前最好先本地自检一遍现有标题会不会过。
    下面这段扫缺扩展名的工作流文件、并按配置的类型列表校验标题:

    import os, re, sys
    
    # Local guard for the CI gap in #4865: flag extensionless workflow files and
    # validate PR titles against the semantic type list before re-enabling.
    # Plug in: run in pre-commit or a one-off check.
    
    WORKFLOWS_DIR = ".github/workflows"
    TYPE_LIST = ("feat", "fix", "docs", "style", "refactor", "perf",
                 "test", "build", "ci", "chore", "revert")
    TITLE_RE = re.compile(r"^(" + "|".join(TYPE_LIST) + r")(\(.+\))?!?: .+")
    
    def find_extensionless():
        bad = []
        for f in os.listdir(WORKFLOWS_DIR):
            if not re.search(r"\.(ya?ml)$", f):
                bad.append(f)   # e.g. 'pr_lint' -> rename to pr_lint.yml
        return bad
    
    def validate_title(title):
        return bool(TITLE_RE.match(title.strip()))
    
    if __name__ == "__main__":
        bad = find_extensionless()
        if bad:
            print("extensionless workflows (rename to .yml):", bad)
        title = sys.argv[1] if len(sys.argv) > 1 else "fix: rename pr_lint workflow"
        print("title ok:", validate_title(title))

    如果你们想把它接进 pre-commit,我可以把类型列表从你们 PR 里读出来自动同步。

  5. added a commit that references this issue on Oct 4, 2026
    b61de85
  6. dexters1 commented on Oct 4, 2026

    @dexters1
    Collaborator

    @CaduAzeredo thank you for raising this with us, we have merged a fix for the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions