Project settings ================ Each project have a number of options that can be tweaked in the settings page of the project which is accessible to the person having full commits to the project. This page presents the different settings and there effect. `Always merge` ------------------------ This Boolean enables or disables always making a merge commit when merging a pull-request. When merging a pull-request in pagure there are three states: * fast-forward: when the commits in the pull-request can be fast-forwarded pagure signals it and just fast-forward the commit, keeping the history linear. * merge: when the commits in the pull-request cannot be merged without a merge commit, pagure signals it and performs this merge commit. * conflicts: when the commits in the pull-request cannot be merged at all automatically due to one or more conflicts. Then pagure signals it and prevent merging. If the `Always merge` option is on, then the `fast-forward` option above is disabled in favor of the `merge` option. `Comment editing` -------------------------- This Boolean enables or disables editing comments. After commenting on a ticket or a pull-request, the admins of the project and the author of the comment may be allowed to edit the comment. This allows them to adjust the wording or the style as they wish. .. note:: notification about a comment is only sent once with the original text, changes performed later will not trigger a new notification. Some project may not want to allow editing comments after they were posted and this setting allows turning it on or off. `Enforce signed-off commits in pull-request` ----------------------------------------------------- This Boolean enables or disables checking for a 'Signed-off-by' line (case insensitive) in the commit messages of the pull-requests. If this line is missing, pagure will display a message near the `Merge` button, allowing project admin to request the PR to be updated. .. note:: This setting does not prevent commits without this 'signed-off-by' line to be pushed directly, it only work at the pull-request level. `Issue tracker` ------------------------ This Boolean simply enables or disables the issue tracker for the project. So if you are tracking your ticket on a different system, you can simply disable reporting issue on pagure by un-checking this option. `Minimum score to merge pull-request` ---------------------------------------------- This option can be used for project wishing to enforce having a minimum number of people reviewing a pull-request before it can be merged. If this option is enabled, anyone can vote in favor or against a pull-request and the sum of the votes in favor minus the sum of the votes against give the pull-request a score that should be equal or greater than the value entered in this option for the pull-request to be allowed to be merged. .. note:: Only the main comments (i.e.: not in-line) are taken into account to calculate the score of the pull-request. To vote in favor of a pull-request, use either: * ``+1`` * ``:thumbsup:`` To vote against a pull-request, use either: * ``-1`` * ``:thumbsdown:`` .. note:: Pull-Request not reaching the minimum score are not automatically merged .. note:: Anyone can vote on the pull-request, not only the contributors. .. note:: Only one vote per person is taken into account to compute the final score. `Only assignee can merge pull-request` ----------------------------------------------- This option can be used for project wishing to institute a strong review workflow where pull-request are first assigned then merged. If this option is enabled, only the person assigned to the pull-request can merge it. `Project documentation` -------------------------------- Pagure offers the option to have a git repository specific for the documentation of the project. This repository is then accessible under the ``Docs`` tab in the menu of the project. If you prefer to store your documentation elsewhere or maybe even within the sources of the project, you can disable the ``Docs`` tab by un-checking this option. `Pull requests` ------------------------ Pagure offers the option to fork a project, make changes to it and then ask the developer to merge these changes into the project. This is similar to the pull-request mechanism on GitHub or GitLab. However, some projects may prefer receiving patches by email on their list or via another hosting platform or simply do not wish to use the pull-request mechanism at all. Un-checking this option will therefore prevent anyone from opening a pull-request against this project. .. note:: disabling pull-requests does *not* disable forking the projects. `Web-hooks` -------------------- Pagure offers the option of sending notification about event happening on a project via [web-hooks|https://en.wikipedia.org/wiki/Webhook]. This option is off by default and can be turned on for a pagure instance in its configuration file. The URL of the web-hooks can be entered in this field. .. note:: See the ``notifications`` documentation to learn more about web-hooks in pagure and how to use them. `Tags` ------ Pagure allows you to define "tags" that can be added to Issues. Tags are unique to each project, and they can only be defined in the project settings page. The Tag color can also be customized for a more robust visual representation of the tag. `Deploy keys` ------------- Deploy keys are SSH keys that have access to pull/push only to a single project. Upon creation, admins can determine whether this particular key has read/write access or read-only.