# Contribution Workflow for Engineers

***

## Git workflow: Fork and Clone repository

**Step 1:** Head over to the the ***repository URL*** i.e. the GitHub repository for that project.

{% hint style="warning" %}
Get the ***repository URL*** link to the GitHub repository for a project from ***Project local development instructions***, through the sidebar.&#x20;
{% endhint %}

**Step 2:** Fork the repository. Then clone the forked repository unto your local computer. Clone URL options explained below:

* **HTTPS url option:** If you are using `https` ***clone url***, the clone command with your url will look like this:

```
git clone https://github.com/your-github-user-name-here-instead/the-repo-name.git
```

* **SSH url option:** [See GitHub documentation for SSH configuration](https://docs.github.com/en/authentication/connecting-to-github-with-ssh) incase you wish to be able to work with SSH url for git operations (that is, if you have not set it up before). If you are using `SSH` ***clone url***, the clone command with your url will look like this:

```
git clone git@github.com:your-github-user-name-here-instead/the-repo-name.git
```

{% hint style="warning" %}
You can get the url to clone the project with, through the green code button in the repository on Github as shown below in the screenshot.
{% endhint %}

<figure><img src="/files/osHloTPl27M1Ah1OMN05" alt=""><figcaption><p>Position of the Green Code button and the popup to copy clone URL on GitHub</p></figcaption></figure>

***

## Installing dependencies and running the project locally

{% hint style="warning" %}
Every project may have different instructions for how to install dependencies and how to run the project locally. See ***Project local development instructions*** from the ***sidebar*** of this documentation page to get specific instructions for that project.
{% endhint %}

***

## Git workflow: Create new branch to make your changes in

Except you are requested to create your branch from another branch, always create your new branch from the `develop` branch:

```
git checkout develop
```

Create your branch using the our branch naming convention:

```
git checkout -b @GH-replaceThisPartWithYourGitHubIssueTicketNumber
```

For example, if your issue ticket number is `62` on GitHub, you would create the branch like so:

```
git checkout -b @GH-62
```

{% hint style="warning" %}
`@GH` simply means the issue ticket is on GitHub. Making use of the ticket's issue number in the branch name, makes it easy to identify and associate the fix you are submitting to the issue ticket.
{% endhint %}

***

## Git workflow: Add, commit and push changes to remote

**Make the desired changes** you wish to submit to the project, add, commit and push your changes:

```
git add .
```

```
git commit -m "replace this part with a commit message that describes your changes"
```

```
git push origin replace-this-part-with-the-name-of-your-branch
```

Then **send a pull request**. See page below for the **guidelines for submitting pull requests to any repository**:

{% content-ref url="/spaces/kz0h3jWUEnMa4Mjjkort" %}
[Pull Request Guidelines](https://resources.collabocate.community/pull-request-guidelines/)
{% endcontent-ref %}

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://resources.collabocate.community/software-engineering/contribution-workflow-for-engineers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
