Skip to content

Repository.getFilesChanged(start, end) contains the empty path filename and breaks Actions paths filter #23919

@ChristopherHX

Description

@ChristopherHX
Contributor

Description

I wondered why this Gitea Actions workflow is triggered while changing the workflow file

Enable Gitea Actions and add the following file
Add .github/workflows/main.yml

on:
  push:
    paths-ignore:
    - '**.yml'
jobs:
  _:
    runs-on: ubuntu-latest
    steps:
    - run: exit 0

I expect that the workflow doesn't trigger unless I add a file without .yml extension

Workaround exclude the empty filepath

on:
  push:
    paths-ignore:
    - ''
    - '**.yml'
jobs:
  _:
    runs-on: ubuntu-latest
    steps:
    - run: exit 0

I tracked the bug down to this function:

return strings.Split(string(stdout), "\n"), nil

Callstack

Based on comment in another very similar function (without this bug)

// Because Git will always emit filenames with a terminal NUL ignore the last entry in the split - which will always be empty.

the empty filepath should be removed by the function before returning the path.

Furthermore it looks like these functions are duplicated, one bugfree and the other not.

Gitea Version

1.19.0+53-gdff3ce089

Can you reproduce the bug on the Gitea demo site?

No

Log Gist

No response

Screenshots

No response

Git Version

2.17.1

Operating System

Linux

How are you running Gitea?

I just downloaded https://dl.gitea.com/gitea/1.19/gitea-1.19-linux-arm64.xz and enabled actions for testing purposes.

Database

SQLite

Activity

added this to the 1.19.1 milestone on Apr 4, 2023
added a commit that references this issue on Apr 7, 2023
17623bb
added a commit that references this issue on Apr 7, 2023
7da06da
added a commit that references this issue on Apr 8, 2023
a00e473
locked as resolved and limited conversation to collaborators on May 23, 2023
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

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Participants

      @lunny@ChristopherHX

      Issue actions

        Repository.getFilesChanged(start, end) contains the empty path filename and breaks Actions `paths` filter · Issue #23919 · go-gitea/gitea