{"action":"closed","issue":{"url":"https://api.github.com/repos/vimeo/psalm/issues/2465","repository_url":"https://api.github.com/repos/vimeo/psalm","labels_url":"https://api.github.com/repos/vimeo/psalm/issues/2465/labels{/name}","comments_url":"https://api.github.com/repos/vimeo/psalm/issues/2465/comments","events_url":"https://api.github.com/repos/vimeo/psalm/issues/2465/events","html_url":"https://github.com/vimeo/psalm/issues/2465","id":537429586,"node_id":"MDU6SXNzdWU1Mzc0Mjk1ODY=","number":2465,"title":"\"Permission denied\" (//lost+found) when using psalm with github actions","user":{"login":"SpazzMarticus","id":5716457,"node_id":"MDQ6VXNlcjU3MTY0NTc=","avatar_url":"https://avatars0.githubusercontent.com/u/5716457?v=4","gravatar_id":"","url":"https://api.github.com/users/SpazzMarticus","html_url":"https://github.com/SpazzMarticus","followers_url":"https://api.github.com/users/SpazzMarticus/followers","following_url":"https://api.github.com/users/SpazzMarticus/following{/other_user}","gists_url":"https://api.github.com/users/SpazzMarticus/gists{/gist_id}","starred_url":"https://api.github.com/users/SpazzMarticus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SpazzMarticus/subscriptions","organizations_url":"https://api.github.com/users/SpazzMarticus/orgs","repos_url":"https://api.github.com/users/SpazzMarticus/repos","events_url":"https://api.github.com/users/SpazzMarticus/events{/privacy}","received_events_url":"https://api.github.com/users/SpazzMarticus/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2019-12-13T09:07:17Z","updated_at":"2019-12-13T09:39:40Z","closed_at":"2019-12-13T09:39:39Z","author_association":"NONE","body":"When using psalm with Github Actions it failed with:\r\n\r\n```bash\r\nPHP Fatal error:  Uncaught UnexpectedValueException: RecursiveDirectoryIterator::__construct(//lost+found): failed to open dir: Permission denied in /home/runner/work/tus/tus/vendor/vimeo/psalm/src/Psalm/Config/FileFilter.php:208\r\n```\r\n\r\n```bash\r\nStack trace:\r\n#0 [internal function]: RecursiveDirectoryIterator->__construct()\r\n#1 [internal function]: RecursiveDirectoryIterator->getChildren()\r\n#2 /home/runner/work/<package>/vendor/vimeo/psalm/src/Psalm/Config/FileFilter.php(208): RecursiveIteratorIterator->next()\r\n#3 /home/runner/work/<package>/vendor/vimeo/psalm/src/Psalm/Config/ProjectFileFilter.php(27): Psalm\\Config\\FileFilter::loadFromXMLElement()\r\n#4 /home/runner/work/<package>/vendor/vimeo/psalm/src/Psalm/Config.php(789): Psalm\\Config\\ProjectFileFilter::loadFromXMLElement()\r\n#5 /home/runner/work/<package>/vendor/vimeo/psalm/src/Psalm/Config.php(610): Psalm\\Config::fromXmlAndPaths()\r\n#6 /home/runner/work/<package>/vendor/vimeo/psalm/src/Psalm/Config.php(580): Psalm\\Config::loadFromXML()\r\n#7 /home/runner/work/<package>/vendor/vimeo/psalm/src/Psalm/Config.php(52 in /home/runner/work/tus/tus/vendor/vimeo/psalm/src/Psalm/Config/FileFilter.php on line 208\r\n```\r\n\r\n(The `//lost+found` directory does not exist in my repository.)\r\n\r\nPsalm was installed as a composer dev-dependency and was run with `vendor/bin/psalm`.\r\n\r\nProject files where defined like:\r\n\r\n```xml\r\n<projectFiles>\r\n        <directory name=\"/\" />\r\n        <ignoreFiles>\r\n            <directory name=\"vendor\" />\r\n        </ignoreFiles>\r\n</projectFiles>\r\n```\r\n\r\nIgnoring the directory did not work:\r\n\r\n```xml\r\n<projectFiles>\r\n        <directory name=\"/\" />\r\n        <ignoreFiles>\r\n            <directory name=\"vendor\" />\r\n            <directory name=\"lost+found\" />\r\n            <directory name=\"/lost+found\" />\r\n            <directory name=\"//lost+found\" />\r\n            <directory name=\"lost\\+found\" />\r\n            <directory name=\"/lost\\+found\" />\r\n            <directory name=\"//lost\\+found\" />\r\n        </ignoreFiles>\r\n</projectFiles>\r\n```\r\n\r\n**Workaround:** When changing the project files to specific folders the exception is not thrown:\r\n\r\n```xml\r\n<projectFiles>\r\n        <directory name=\"src\" />\r\n        <directory name=\"example\" />\r\n        <directory name=\"tests\" />\r\n        <ignoreFiles>\r\n            <directory name=\"vendor\" />\r\n        </ignoreFiles>\r\n</projectFiles>\r\n```\r\n\r\nIf checking for permissions is out of scope for psalm, you can close the issue.\r\n\r\nCheers!"}}
{"actor":{"display_login":"SpazzMarticus"}}