Cannot write QA files due to insufficient permissions.
Permission Issues Detected
The following QA files cannot be {{ 'created' if files_missing else 'modified' }}:
| Path |
Owner |
Group |
Current Mode |
Needed |
{% for file_info in file_issues %}
{{ file_info.full_path }} {{ file_info.message }} |
{{ file_info.owner }} |
{{ file_info.group }} |
{{ file_info.mode_symbolic }} ({{ file_info.mode_octal }}) |
{{ file_info.needed }} |
{% endfor %}
You are logged in as: {{ current_user }}
How to Fix
{% set owned_issues = file_issues | selectattr('user_is_owner') | list %}
{% set not_owned_issues = file_issues | rejectattr('user_is_owner') | list %}
{% set in_group_issues = not_owned_issues | selectattr('user_in_group') | list %}
{% set no_access_issues = not_owned_issues | rejectattr('user_in_group') | list %}
{% set wrong_perm_issues = file_issues | selectattr('status', 'equalto', 'wrong-permissions') | list %}
{% set chgrp_eligible = no_access_issues | selectattr('group_has_write') | list %}
{% if owned_issues %}
Grant write permission (you own these files, no sudo needed):
{% for f in owned_issues %}chmod u+w "{{ f.full_path }}"
{% endfor %}
{% endif %}
{% set in_group_writable = in_group_issues | rejectattr('status', 'equalto', 'wrong-permissions') | list %}
{% if in_group_writable %}
Grant group write permission (you are in the group but not the owner — requires sudo):
{% for f in in_group_writable %}sudo chmod g+w "{{ f.full_path }}"
{% endfor %}
{% endif %}
{% if no_access_issues %}
Change ownership (you are neither the owner nor in the group — requires sudo):
sudo chown $(whoami){% for f in no_access_issues %} "{{ f.full_path }}"{% endfor %}
{% if chgrp_eligible %}
Alternative: Change the group instead (preserves current owner, works because these already have group write permission):
sudo chgrp $(id -gn){% for f in chgrp_eligible %} "{{ f.full_path }}"{% endfor %}
{% endif %}
{% endif %}
{% if wrong_perm_issues %}
Fix file permissions (requires sudo or ask the file owner to run this):
{% for f in wrong_perm_issues %}sudo chmod 770 "{{ f.full_path }}"
{% endfor %}
{% endif %}