Utilise GraphQL over HAML dataset
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=519755)
</details>
<!--IssueSummary end-->
## Context
We want to minimise the data we pass through the HAML and inject into Vue components. [Here's the spreadsheet with analysis (internal-only)](https://docs.google.com/spreadsheets/d/1yF4HYaIiK62YdjqMwnJYNqEaTbzF10hpvG7RbUmwRVg/edit?usp=sharing) of what we need and what is or is not exposed.
## Needed changes
### Independent from backend
| field name in HAML | is in GraphQL | Ruby reference | GraphQL reference | To do |
|----------|-------|--|--|----------------------------------------------------------------------------------------------------------------------------|
| ref_type | FALSE | | | [Previously taken from `this.$route.meta.refType OR this.$route.query.ref_type`](https://gitlab.com/gitlab-org/gitlab/-/blob/e15c6baffac313bf5c822852907569c9af895017/app/assets/javascripts/repository/index.js#L150). Remove from vue_blob_header_app_data helper and use `this.$route.meta.refType OR this.$route.query.ref_type` |
| ssh_url | TRUE | [ssh_url](https://gitlab.com/gitlab-org/gitlab/-/blob/f36ba81ab3ab83f80e0827a6751cffe52568b9ec/app/helpers/tree_helper.rb#L169) | [sshUrlToRepo](https://gitlab.com/gitlab-org/gitlab/-/blob/226a0be9c4c8ec595b577aa4171c260d72af7a75/app/graphql/types/project_type.rb#L92) | Add to app/assets/javascripts/repository/queries/project_info.query.graphql |
| http_url | TRUE | [http_url](https://gitlab.com/gitlab-org/gitlab/-/blob/f36ba81ab3ab83f80e0827a6751cffe52568b9ec/app/helpers/tree_helper.rb#L170) | [httpUrlToRepo](https://gitlab.com/gitlab-org/gitlab/-/blob/226a0be9c4c8ec595b577aa4171c260d72af7a75/app/graphql/types/project_type.rb#L88) | Add to app/assets/javascripts/repository/queries/project_info.query.graphql |
| blob_path | TRUE | [getBlobControls](https://gitlab.com/gitlab-org/gitlab/-/blob/29f210e5934f44b45536c1f3d731d9e82940715a/app/assets/javascripts/repository/queries/blob_controls.query.graphql) [path](https://gitlab.com/gitlab-org/gitlab/-/blob/7945cdd4ecb7246b2922da59785dc92d79764707/app/graphql/types/repository/blob_type.rb#L17) | [Already in use](https://gitlab.com/gitlab-org/gitlab/-/blob/c5af509ef855a555c498795de49d4ddafd30503f/app/assets/javascripts/repository/components/header_area/blob_button_group.vue). Remove from vue_blob_header_app_data helper. |
| history_link | FALSE | [history_link](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/helpers/blob_helper.rb?ref_type=heads#L312) | [RepositoryBlob historyPath](https://gitlab.com/gitlab-org/gitlab/-/blob/7945cdd4ecb7246b2922da59785dc92d79764707/app/graphql/types/repository/blob_type.rb#L95) | Remove. We don't even need it for the header app. |
### Dependent on backend
Here's a list of backend work that will need to be addressed on frontend once completed:
| field name in HAML | is in GraphQL | Ruby reference | GraphQL reference | To do |
|--------------|-------|--------------|---------------|-----------------------------------------------------------------------------|
| project_root_path | FALSE | [project_root_path](https://gitlab.com/gitlab-org/gitlab/-/blob/061d101fcd29f3ab1b08177416986041ac78754f/app/views/projects/_files.html.haml#L24) | | Needed on `refSelector` change. Expose on `Project`. |
| xcode_url | FALSE | [xcode_ur](https://gitlab.com/gitlab-org/gitlab/-/blob/f36ba81ab3ab83f80e0827a6751cffe52568b9ec/app/helpers/tree_helper.rb#L171)l | | Expose on `Project` |
| kerberos_url | FALSE | [kerberos_url](https://gitlab.com/gitlab-org/gitlab/-/blob/f6524fdd92ad5f6780c47619ff83451ef7532b93/ee/app/helpers/ee/tree_helper.rb#L11)| | Expose on `Project` |
| is_binary | FALSE | [def binary?](https://gitlab.com/gitlab-org/gitlab/-/blob/e7faf55c710462e5e8edfee38e59b591323f5a20/app/models/blob.rb#L169) | [SnippetBlob binary](https://gitlab.com/gitlab-org/gitlab/-/blob/55672eee98188c2e08416d5438d4b30ac21260cf/app/graphql/types/snippets/blob_type.rb#L33) | Expose on `RepositoryBlob` |
issue