# Usage

Using pagure should come fairly easily, especially to people already used to forges such as GitHub or GitLab. There are however some tips and tricks which can be useful to know and that this section of the doc covers.

One of the major difference with GitHub and GitLab is that for each project on pagure, four git repositories are made available:

- A git repository containing the source code, displayed in the main section of the pagure project.

- A git repository for the documentation

- A git repository for the issues and their metadata

- A git repository for the metadata for pull-requests

Issues and pull-requests repositories contain the meta-data (comments, notifications, assignee…) from the issues and pull-request. They are are not public and only available to admins and committers of the project, since they may contain private information.

You can use these repositories for offline access to your tickets or pull-requests (the pag-off project for example relies on a local copy of the issue git repository). They are designed to allow you to have full access to all the data about your project. One of the original idea was also to allow syncing a project between multiple pagure instances by syncing these git repositories between the instances.

You can find the URLs to access or clone these git repositories on the overview page of the project. On the top right of the page, in the drop-down menu entitled `Clone`. Beware that if documentation, the issue tracker or the pull-requests are disabled on the project, the corresponding URL will not be shown.

Contents:

- First Steps on pagure
  - Login to pagure or create your account
  - Upload your SSH key
  - Configure the default email address
- Forks
  - Create a Fork on Pagure
  - Configure your Local Git Repository
  - Pushing Changes
- Understanding Read Only Mode of projects
  - Actions that put the project in read only mode
- HTTP PUSH
  - Git push over http with API token
  - Git push over http with Username & Password
  - Storing the password/token
- Pull Requests
  - Open a Pull Request
  - Updating Your Pull Request
  - Working with Pull Requests
- Using Markdown in Pagure
  - Styling
  - Quoting
  - Code
  - Hyperlinks
  - Lists
  - Tagging users
  - Tagging issues or pull requests
  - Emoji
  - Improve this documentation!
- Project settings
  - Always merge
  - Comment editing
  - Enforce signed-off commits in pull-request
  - Issue tracker
  - Minimum score to merge pull-request
  - Only assignee can merge pull-request
  - Project documentation
  - Pull requests
  - Web-hooks
  - Tags
  - Deploy keys
- Project Level Access Control
  - Add/Update Access
  - Points to be noted
- Using the roadmap feature
  - Example
- Flags
  - Add a flag
  - Example of two flags on a commit:
  - Example of two flags on a pull-request:
- Magic Words
  - Enabling magic words
  - Using magic words
- Using the doc repository of your project
  - Example
- Using web-hooks
  - Activating web-hooks notifications
  - Authenticating the notifications
- Templates for ticket input
  - Example
- Customize the PR page
  - Example
- Theming Guide
  - Setting a theme
  - Theme contents
- Upgrade a database
- Pagure CI
  - Jenkins with Pagure-ci
  - Tips and tricks
- Quick replies
  - Using quick replies
  - Creating and modifying quick replies
- Troubleshooting
  - Inaccessible pull-requests
- Tips and tricks
  - Place image onto your overview page
  - Pre-fill issue using the URL
  - Pre-fill issue template using the URL
  - Filter for issues not having a certain tag
  - Local user creation without email verification
  - Filter an user’s projects by their access
  - Filter issues by (custom) fields
  - Search the comments of issues

## Pagure API

The API documentation can be found at https://pagure.io/api/0/ or in `/api/0/` of you local pagure instance.