heptapod issueshttps://foss.heptapod.net/groups/heptapod/-/issues2023-01-12T10:15:50Zhttps://foss.heptapod.net/heptapod/heptapod/-/issues/7232 pipelines for 1 merge request2023-01-12T10:15:50ZCédric Kriercedric.krier@b2ck.com2 pipelines for 1 merge requestWithout `workflow`, Heptapod triggers 2 pipelines, 1 that does not seem to detect the changed files and another with the merge request content as modified files.
Here is an example: https://foss.heptapod.net/tryton/tryton/-/merge_reques...Without `workflow`, Heptapod triggers 2 pipelines, 1 that does not seem to detect the changed files and another with the merge request content as modified files.
Here is an example: https://foss.heptapod.net/tryton/tryton/-/merge_requests/152/pipelines
I cancelled the first one because it runs all the jobs which is resource consuming.
I tried to remove the workflow as it does not trigger a pipeline when:
* push directly to the protected branches
* when publish changeset from command line
The problem is that it is not clear how to use the CI variables in the Heptapod context because the documentation is based on Git design with fork.
But basically we could expect from a usage without `workflow`, Heptapod will trigger only 1 pipeline for a merge request and only another pipeline when the merge request is published.
It seems that `workflow` like this:
```
workflow:
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
when: never
- if: $CI_COMMIT_BRANCH =~ /^branch\/.*/
```
does not work when pushing directly or make changeset public from command line.https://foss.heptapod.net/heptapod/heptapod/-/issues/372403 Forbidden with the Upload File button2020-11-26T14:42:09ZSimon Sapin403 Forbidden with the Upload File button### Summary
Using the Upload File button in the web UI fails with an error message.
### Steps to reproduce
* Navigate to https://heptapod.octobus.net/Octobus/website/-/tree/branch/default/img#
* Click the "+" button near the top of th...### Summary
Using the Upload File button in the web UI fails with an error message.
### Steps to reproduce
* Navigate to https://heptapod.octobus.net/Octobus/website/-/tree/branch/default/img#
* Click the "+" button near the top of the page
* In the menu, click Upload File
* Select a JPEG file in the modal UI
* Write a commit message
* Click the green Upload File button
<!-- Describe how one can reproduce the issue - this is very important. Please use an ordered list. -->
### What is the current *bug* behavior?
“Error uploading file: Invalid JSON response from server.” appears on a red background. The browser devtools show a POST request to https://heptapod.octobus.net/Octobus/website/-/create/branch/default/img with a `403 Forbidden` response.
<!-- Describe what actually happens. -->
### What is the expected *correct* behavior?
Create a commit with the new file. Or if write privileges are missing, show an error message that explains this.
Better: check privileges before submission
Better still: have the web UI offer to create a Merge Request insteadhttps://foss.heptapod.net/heptapod/heptapod/-/issues/563500 error on imported from "GitLab Cluster Management" template2021-11-04T16:45:12ZArthur Lutz500 error on imported from "GitLab Cluster Management" templateWe're trying to migrate from "Gitlab Managed Apps" as described in https://forge.extranet.logilab.fr/help/user/clusters/migrating_from_gma_to_project_template.md but we're getting a 500 error when creating the repo from the template.
...We're trying to migrate from "Gitlab Managed Apps" as described in https://forge.extranet.logilab.fr/help/user/clusters/migrating_from_gma_to_project_template.md but we're getting a 500 error when creating the repo from the template.
```
Started GET "/cubicweb/scaleway-cluster-management" for 82.65.202.15 at 2021-11-04 13:13:24 +0000
Started GET "/api/v4/projects/cubicweb%2Fcubes%2Ftreeview/pipelines?page=1&per_page=1&ref=cubicweb-treeview-version-0.1
.0" for 92.154.88.244 at 2021-11-04 13:13:24 +0000
Processing by ProjectsController#show as HTML
Parameters: {"namespace_id"=>"cubicweb", "id"=>"scaleway-cluster-management"}
Started GET "/logilab/infra/sysadmin/noteable/issue/6127/notes" for 89.0.49.110 at 2021-11-04 13:13:25 +0000
Completed 304 Not Modified in 0ms (Allocations: 5)
Rendered layout layouts/project.html.haml (Duration: 528.0ms | Allocations: 21644)
Completed 500 Internal Server Error in 644ms (ActiveRecord: 23.1ms | Elasticsearch: 0.0ms | Allocations: 37118)
ActionView::Template::Error (No route matches {:action=>"show", :controller=>"projects/tree", :id=>nil, :namespace_id=>
#<Group id:23 @cubicweb>, :project_id=>#<Project id:727 cubicweb/scaleway-cluster-management>>}, possible unmatched con
straints: [:id]
Did you mean? namespace_project_tree_url):
51: - if @project.empty_repo?
52: = render 'stat_anchor_list', anchors: @project.empty_repo_statistics_anchors
53: - else
54: = render 'stat_anchor_list', anchors: @project.statistics_anchors(show_auto_devops_callout: show_au
to_devops_callout)
55:
56: .home-panel-home-desc.mt-1
57: - if @project.description.present?
app/helpers/routing/projects_helper.rb:6:in `project_tree_path'
app/presenters/project_presenter.rb:183:in `files_anchor_data'
app/presenters/project_presenter.rb:29:in `statistics_anchors'
app/views/projects/_home_panel.html.haml:54
app/views/projects/_home_panel.html.haml:48
app/views/projects/show.html.haml:14
app/controllers/application_controller.rb:124:in `render'
app/controllers/application_controller.rb:552:in `block in allow_gitaly_ref_name_caching'
lib/gitlab/gitaly_client.rb:377:in `allow_ref_name_caching'
app/controllers/application_controller.rb:551:in `allow_gitaly_ref_name_caching'
app/controllers/application_controller.rb:501:in `set_current_admin'
lib/gitlab/session.rb:11:in `with_session'
app/controllers/application_controller.rb:492:in `set_session_storage'
lib/gitlab/i18n.rb:99:in `with_locale'
lib/gitlab/i18n.rb:105:in `with_user_locale'
app/controllers/application_controller.rb:486:in `set_locale'
app/controllers/application_controller.rb:480:in `set_current_context'
lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call'
lib/gitlab/middleware/rails_queue_duration.rb:33:in `call'
lib/gitlab/metrics/rack_middleware.rb:16:in `block in call'
lib/gitlab/metrics/web_transaction.rb:21:in `run'
lib/gitlab/metrics/rack_middleware.rb:16:in `call'
lib/gitlab/middleware/speedscope.rb:13:in `call'
lib/gitlab/request_profiler/middleware.rb:17:in `call'
lib/gitlab/jira/middleware.rb:19:in `call'
lib/gitlab/middleware/go.rb:20:in `call'
lib/gitlab/etag_caching/middleware.rb:21:in `call'
lib/gitlab/middleware/multipart.rb:172:in `call'
lib/gitlab/middleware/read_only/controller.rb:50:in `call'
lib/gitlab/middleware/read_only.rb:18:in `call'
lib/gitlab/middleware/same_site_cookies.rb:27:in `call'
lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'
lib/gitlab/middleware/basic_health_check.rb:25:in `call'
lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'
lib/gitlab/middleware/request_context.rb:21:in `call'
config/initializers/fix_local_cache_middleware.rb:11:in `call'
lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:74:in `call'
lib/gitlab/middleware/release_env.rb:12:in `call'
```
Creating the repo as a personnal project seems to work, but we then can't transfer it to the group.https://foss.heptapod.net/heptapod/heptapod/-/issues/453500 Error - possibly related to wild heads.2021-05-13T09:39:20ZMichael McNeil Forbes500 Error - possibly related to wild heads.### Summary
When attempting to view commits, branches, or files for the following repo, we get a 500 error:
* https://hg.iscimath.org/mforbes/forbes_group_website/-/commits/branch/default
* https://hg.iscimath.org/mforbes/forbes_group_...### Summary
When attempting to view commits, branches, or files for the following repo, we get a 500 error:
* https://hg.iscimath.org/mforbes/forbes_group_website/-/commits/branch/default
* https://hg.iscimath.org/mforbes/forbes_group_website/-/branches
Cloning also fails.
### Details
This is a self-hosted version of Heptapod running as a Docker image on AWS and the repo was imported from Bitbucket (hence, a little hard to reproduce since Bitbucket has stopped hosting!)
I suspect that the issue is due to the presence of wild heads that were in the original repo, but do not know how to delve deeper to see if this is actually the issue underneath, nor how to clone, close the wild heads, and fix the underlying repo.
### Example Project
* https://hg.iscimath.org/mforbes/forbes_group_website/
### What is the current *bug* behavior?
The following return 500 errors (with any branch)
* https://hg.iscimath.org/mforbes/forbes_group_website/-/commits/branch/default (Any branch)
* https://hg.iscimath.org/mforbes/forbes_group_website/-/branches
* https://hg.iscimath.org/mforbes/forbes_group_website/-/blob/branch/default/README.md (Any file)
Cloning fails:
```bash
$ hg clone ssh://git@hg.iscimath.org:11022/mforbes/forbes_group_website
abort: no suitable response from remote hg!
$ hg clone https://hg.iscimath.org/mforbes/forbes_group_website
abort: HTTP Error 404: Not Found
```
### What is the expected *correct* behavior?
Able to access the files, for example, as with other projects on the server:
* https://hg.iscimath.org/mforbes/super_hydro/-/commits/branch/default
* https://hg.iscimath.org/mforbes/super_hydro/-/branches
* https://hg.iscimath.org/mforbes/super_hydro/-/blob/branch/default/README.md
Able to clone:
```bash
$ hg clone ssh://git@hg.iscimath.org:11022/mforbes/super_hydro
destination directory: super_hydro
requesting all changes
adding changesets
adding manifests
adding file changes
added 213 changesets with 881 changes to 228 files
34 new obsolescence markers
new changesets e11e307ed831:cc8237504acc
updating to branch default
65 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg clone https://hg.iscimath.org/mforbes/super_hydrodestination directory: super_hydro
requesting all changes
adding changesets
adding manifests
adding file changes
added 213 changesets with 881 changes to 228 files
34 new obsolescence markers
new changesets e11e307ed831:cc8237504acc
updating to branch default
65 files updated, 0 files merged, 0 files removed, 0 files unresolved
```
### Relevant logs and/or screenshots
Logs reported with `docker exec -it ${heptapod_id} gitlab-ctl tail` on the AWS host while attempting to load https://hg.iscimath.org/mforbes/forbes_group_website/-/commits/branch/default:
<p>
<details>
<summary>Detailed Log Reports.</summary>
```bash
==> /var/log/gitlab/gitlab-rails/production.log <==
Started GET "/mforbes/forbes_group_website/-/commits/branch/default" for 134.121.19.154 at 2021-03-24 22:01:44 +0000
Processing by Projects::CommitsController#show as HTML
Parameters: {"namespace_id"=>"mforbes", "project_id"=>"forbes_group_website", "id"=>"branch/default"}
==> /var/log/gitlab/gitaly/current <==
{"correlation_id":"01F1K4400Y16G9M0J1XE8S30VC","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-web","grpc.meta.deadline_type":"regular","grpc.method":"FindAllTagNames","grpc.request.deadline":"2021-03-24T22:01:54.005Z","grpc.request.fullMethod":"/gitaly.RefService/FindAllTagNames","grpc.request.glProjectPath":"mforbes/forbes_group_website","grpc.request.glRepository":"project-56","grpc.request.repoPath":"@hashed/76/88/7688b6ef52555962d008fff894223582c484517cea7da49ee67800adc7fc8866.git","grpc.request.repoStorage":"default","grpc.request.topLevelGroup":"@hashed","grpc.service":"gitaly.RefService","grpc.start_time":"2021-03-24T22:01:44.835Z","grpc.time_ms":59.494,"level":"info","msg":"finished streaming call with code OK","peer.address":"@","pid":2096,"remote_ip":"134.121.19.154","span.kind":"server","system":"grpc","time":"2021-03-24T22:01:44.895Z","username":"mforbes"}
{"correlation_id":"01F1K4400Y16G9M0J1XE8S30VC","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-web","grpc.meta.deadline_type":"regular","grpc.method":"FindCommit","grpc.request.deadline":"2021-03-24T22:02:14.097Z","grpc.request.fullMethod":"/gitaly.CommitService/FindCommit","grpc.request.glProjectPath":"mforbes/forbes_group_website","grpc.request.glRepository":"project-56","grpc.request.repoPath":"@hashed/76/88/7688b6ef52555962d008fff894223582c484517cea7da49ee67800adc7fc8866.git","grpc.request.repoStorage":"default","grpc.request.topLevelGroup":"@hashed","grpc.service":"gitaly.CommitService","grpc.start_time":"2021-03-24T22:01:44.897Z","grpc.time_ms":69.954,"level":"info","msg":"finished unary call with code OK","peer.address":"@","pid":2096,"remote_ip":"134.121.19.154","span.kind":"server","system":"grpc","time":"2021-03-24T22:01:44.967Z","username":"mforbes"}
{"correlation_id":"01F1K4400Y16G9M0J1XE8S30VC","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-web","grpc.meta.deadline_type":"regular","grpc.method":"FindCommits","grpc.request.deadline":"2021-03-24T22:02:14.078Z","grpc.request.fullMethod":"/gitaly.CommitService/FindCommits","grpc.request.glProjectPath":"mforbes/forbes_group_website","grpc.request.glRepository":"project-56","grpc.request.repoPath":"@hashed/76/88/7688b6ef52555962d008fff894223582c484517cea7da49ee67800adc7fc8866.git","grpc.request.repoStorage":"default","grpc.request.topLevelGroup":"@hashed","grpc.service":"gitaly.CommitService","grpc.start_time":"2021-03-24T22:01:44.978Z","grpc.time_ms":45.31,"level":"info","msg":"finished streaming call with code OK","peer.address":"@","pid":2096,"remote_ip":"134.121.19.154","span.kind":"server","system":"grpc","time":"2021-03-24T22:01:45.023Z","username":"mforbes"}
{"correlation_id":"01F1K4400Y16G9M0J1XE8S30VC","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-web","grpc.meta.deadline_type":"regular","grpc.method":"RepositoryExists","grpc.request.deadline":"2021-03-24T22:01:55.008Z","grpc.request.fullMethod":"/gitaly.RepositoryService/RepositoryExists","grpc.request.glProjectPath":"mforbes/forbes_group_website","grpc.request.glRepository":"project-56","grpc.request.repoPath":"@hashed/76/88/7688b6ef52555962d008fff894223582c484517cea7da49ee67800adc7fc8866.git","grpc.request.repoStorage":"default","grpc.request.topLevelGroup":"@hashed","grpc.service":"gitaly.RepositoryService","grpc.start_time":"2021-03-24T22:01:45.299Z","grpc.time_ms":0.129,"level":"info","msg":"finished unary call with code OK","peer.address":"@","pid":2096,"remote_ip":"134.121.19.154","span.kind":"server","system":"grpc","time":"2021-03-24T22:01:45.299Z","username":"mforbes"}
==> /var/log/gitlab/gitlab-rails/production.log <==
Completed 500 Internal Server Error in 503ms (ActiveRecord: 15.7ms | Elasticsearch: 0.0ms | Allocations: 130236)
==> /var/log/gitlab/gitlab-rails/production_json.log <==
{"method":"GET","path":"/mforbes/forbes_group_website/-/commits/branch/default","format":"html","controller":"Projects::CommitsController","action":"show","status":500,"time":"2021-03-24T22:01:45.303Z","params":[{"key":"namespace_id","value":"mforbes"},{"key":"project_id","value":"forbes_group_website"},{"key":"id","value":"branch/default"}],"remote_ip":"134.121.19.154","user_id":2,"username":"mforbes","ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15","correlation_id":"01F1K4400Y16G9M0J1XE8S30VC","meta.user":"mforbes","meta.project":"mforbes/forbes_group_website","meta.root_namespace":"mforbes","meta.caller_id":"Projects::CommitsController#show","meta.remote_ip":"134.121.19.154","meta.feature_category":"source_code_management","gitaly_calls":4,"gitaly_duration_s":0.186025,"redis_calls":58,"redis_duration_s":0.027582,"redis_read_bytes":5723,"redis_write_bytes":7193,"redis_cache_calls":57,"redis_cache_duration_s":0.027215,"redis_cache_read_bytes":5540,"redis_cache_write_bytes":6322,"redis_shared_state_calls":1,"redis_shared_state_duration_s":0.000367,"redis_shared_state_read_bytes":183,"redis_shared_state_write_bytes":871,"db_count":14,"db_write_count":0,"db_cached_count":1,"cpu_s":0.279139,"queue_duration_s":0.043445,"exception.class":"ActionView::Template::Error","exception.message":"undefined method `[]' for nil:NilClass","exception.backtrace":["app/models/commit.rb:80:in `truncate_sha'","app/models/commit.rb:208:in `hpd_short_display_id'","app/views/projects/commits/_commit.html.haml:20","app/views/projects/commits/_commits.html.haml:17","app/models/commit_collection.rb:23:in `<<'","app/models/commit_collection.rb:23:in `each'","app/models/commit_collection.rb:23:in `each'","app/views/projects/commits/_commits.html.haml:10:in `each'","app/views/projects/commits/_commits.html.haml:10:in `each'","app/views/projects/commits/_commits.html.haml:10","app/views/projects/commits/show.html.haml:36","app/controllers/application_controller.rb:125:in `render'","app/controllers/application_controller.rb:555:in `block in allow_gitaly_ref_name_caching'","lib/gitlab/gitaly_client.rb:375:in `allow_ref_name_caching'","app/controllers/application_controller.rb:554:in `allow_gitaly_ref_name_caching'","app/controllers/application_controller.rb:500:in `set_current_admin'","lib/gitlab/session.rb:11:in `with_session'","app/controllers/application_controller.rb:491:in `set_session_storage'","lib/gitlab/i18n.rb:73:in `with_locale'","lib/gitlab/i18n.rb:79:in `with_user_locale'","app/controllers/application_controller.rb:485:in `set_locale'","lib/gitlab/error_tracking.rb:52:in `with_context'","app/controllers/application_controller.rb:550:in `sentry_context'","app/controllers/application_controller.rb:478:in `block in set_current_context'","lib/gitlab/application_context.rb:56:in `block in use'","lib/gitlab/application_context.rb:56:in `use'","lib/gitlab/application_context.rb:22:in `with_context'","app/controllers/application_controller.rb:469:in `set_current_context'","lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call'","lib/gitlab/middleware/rails_queue_duration.rb:33:in `call'","lib/gitlab/metrics/rack_middleware.rb:16:in `block in call'","lib/gitlab/metrics/transaction.rb:56:in `run'","lib/gitlab/metrics/rack_middleware.rb:16:in `call'","lib/gitlab/request_profiler/middleware.rb:17:in `call'","lib/gitlab/jira/middleware.rb:19:in `call'","lib/gitlab/middleware/go.rb:20:in `call'","lib/gitlab/etag_caching/middleware.rb:21:in `call'","lib/gitlab/middleware/multipart.rb:172:in `call'","lib/gitlab/middleware/read_only/controller.rb:50:in `call'","lib/gitlab/middleware/read_only.rb:18:in `call'","lib/gitlab/middleware/same_site_cookies.rb:27:in `call'","lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'","lib/gitlab/middleware/basic_health_check.rb:25:in `call'","lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'","lib/gitlab/middleware/request_context.rb:21:in `call'","config/initializers/fix_local_cache_middleware.rb:11:in `call'","lib/gitlab/metrics/requests_rack_middleware.rb:76:in `call'","lib/gitlab/middleware/release_env.rb:12:in `call'"],"db_duration_s":0.01574,"view_duration_s":0.0,"duration_s":0.50345}
==> /var/log/gitlab/gitlab-rails/production.log <==
!n
ActionView::Template::Error (undefined method `[]' for nil:NilClass):
17:
18: - show_project_name = local_assigns.fetch(:show_project_name, false)
19:
20: %li{ class: ["commit flex-row", ("js-toggle-container" if collapsible)], id: "commit-#{commit.hpd_short_display_id}" }
21:
22: .avatar-cell.d-none.d-sm-block
23: = author_avatar(commit, size: 40, has_tooltip: false)
app/models/commit.rb:80:in `truncate_sha'
app/models/commit.rb:208:in `hpd_short_display_id'
app/views/projects/commits/_commit.html.haml:20
app/views/projects/commits/_commits.html.haml:17
app/models/commit_collection.rb:23:in `<<'
app/models/commit_collection.rb:23:in `each'
app/models/commit_collection.rb:23:in `each'
app/views/projects/commits/_commits.html.haml:10:in `each'
app/views/projects/commits/_commits.html.haml:10:in `each'
app/views/projects/commits/_commits.html.haml:10
app/views/projects/commits/show.html.haml:36
app/controllers/application_controller.rb:125:in `render'
app/controllers/application_controller.rb:555:in `block in allow_gitaly_ref_name_caching'
lib/gitlab/gitaly_client.rb:375:in `allow_ref_name_caching'
app/controllers/application_controller.rb:554:in `allow_gitaly_ref_name_caching'
app/controllers/application_controller.rb:500:in `set_current_admin'
lib/gitlab/session.rb:11:in `with_session'
app/controllers/application_controller.rb:491:in `set_session_storage'
lib/gitlab/i18n.rb:73:in `with_locale'
lib/gitlab/i18n.rb:79:in `with_user_locale'
app/controllers/application_controller.rb:485:in `set_locale'
lib/gitlab/error_tracking.rb:52:in `with_context'
app/controllers/application_controller.rb:550:in `sentry_context'
app/controllers/application_controller.rb:478:in `block in set_current_context'
lib/gitlab/application_context.rb:56:in `block in use'
lib/gitlab/application_context.rb:56:in `use'
lib/gitlab/application_context.rb:22:in `with_context'
app/controllers/application_controller.rb:469:in `set_current_context'
lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call'
lib/gitlab/middleware/rails_queue_duration.rb:33:in `call'
lib/gitlab/metrics/rack_middleware.rb:16:in `block in call'
lib/gitlab/metrics/transaction.rb:56:in `run'
lib/gitlab/metrics/rack_middleware.rb:16:in `call'
lib/gitlab/request_profiler/middleware.rb:17:in `call'
lib/gitlab/jira/middleware.rb:19:in `call'
lib/gitlab/middleware/go.rb:20:in `call'
lib/gitlab/etag_caching/middleware.rb:21:in `call'
lib/gitlab/middleware/multipart.rb:172:in `call'
lib/gitlab/middleware/read_only/controller.rb:50:in `call'
lib/gitlab/middleware/read_only.rb:18:in `call'
lib/gitlab/middleware/same_site_cookies.rb:27:in `call'
lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'
lib/gitlab/middleware/basic_health_check.rb:25:in `call'
lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'
lib/gitlab/middleware/request_context.rb:21:in `call'
config/initializers/fix_local_cache_middleware.rb:11:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:76:in `call'
lib/gitlab/middleware/release_env.rb:12:in `call'
==> /var/log/gitlab/nginx/gitlab_access.log <==
134.121.19.154 - - [24/Mar/2021:22:01:45 +0000] "GET /mforbes/forbes_group_website/-/commits/branch/default HTTP/2.0" 500 12146 "https://hg.iscimath.org/mforbes/forbes_group_website/-/tree/branch/default" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15" -
==> /var/log/gitlab/gitlab-workhorse/current <==
{"content_type":"text/html; charset=utf-8","correlation_id":"01F1K4400Y16G9M0J1XE8S30VC","duration_ms":575,"host":"hg.iscimath.org","level":"info","method":"GET","msg":"access","proto":"HTTP/1.1","referrer":"https://hg.iscimath.org/mforbes/forbes_group_website/-/tree/branch/default","remote_addr":"134.121.19.154:0","remote_ip":"134.121.19.154","route":"","status":500,"system":"http","time":"2021-03-24T22:01:45Z","ttfb_ms":575,"uri":"/mforbes/forbes_group_website/-/commits/branch/default","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15","written_bytes":12146}
==> /var/log/gitlab/gitaly/gitaly_ruby_json.log <==
{"type":"gitaly-ruby","grpc.start_time":"2021-03-24T22:01:45Z","grpc.time_ms":0.148,"grpc.code":"OK","grpc.method":"Check","grpc.service":"grpc.health.v1.Health","pid":9721,"correlation_id":"c4c935dace0fb5a5d5b7c9821428cc3e","time":"2021-03-24T22:01:45.368Z"}
{"type":"gitaly-ruby","grpc.start_time":"2021-03-24T22:01:45Z","grpc.time_ms":0.284,"grpc.code":"OK","grpc.method":"Check","grpc.service":"grpc.health.v1.Health","pid":23077,"correlation_id":"5ac3fe29fc48552e20a82c2ff11200ea","time":"2021-03-24T22:01:45.369Z"}
```
</details>
</p>
#### Details about the Heptapod instance where the bug occurs
* https://hg.iscimath.org/mforbes/forbes_group_website/
Omnibus docker image octobus/heptapod:0.20.0 running on an AWS instance:
```bash
Heptapod = 0.20.0
Mercuria= l5.6.1
hg-evolve = 10.2.0.post1
hg-git = 0.9.0 (dulwich 0.20.19)
GitLab = 13.9.1
Heptapod Shell = 13.16.0
Heptapod Workhorse = 0.20.0
GitLab API = v4
Python = 3.8.8
Ruby = 2.7.2p137
Rails = 6.0.3.4
PostgreSQL = 12.5
Redis = 6.0.10
```
The following configuration changes have been applied:
```ruby
#gitlab.rb
external_url "https://hg.iscimath.org"
gitlab_rails['gitlab_shell_ssh_port'] = 11022
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp..."
gitlab_rails['smtp_port'] = 25 #465
gitlab_rails['smtp_domain'] = "smtp..."
gitlab_rails['smtp_enable_starttls_auto'] = true
nginx['redirect_http_to_https'] = true
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ["m...@..."] # This should be an array of email addresses to add as contacts
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = 0
letsencrypt['auto_renew_minute'] = nil # Should be a number or cron expression, if specified.
letsencrypt['auto_renew_day_of_month'] = "*/4"
```
```python
#heptapod.hgrc
[heptapod]
allow-multiple-heads = yes
[logging]
# Does not seem to produce any output... I saw this in
# https://foss.heptapod.net/heptapod/heptapod/-/issues/76#note_927
# and thought it might help me figure out what is causing a problem.
file = /var/log/gitlab/hgserve/mercurial.log
```Georges RacinetGeorges Racinethttps://foss.heptapod.net/heptapod/foss.heptapod.net/-/issues/85500 Error while editing wiki page2020-10-08T14:34:52ZEli Collins500 Error while editing wiki pageFor the past few days, I've been getting a 500 error when trying to save changes to https://foss.heptapod.net/python-libs/passlib/-/wikis/home using the web interface. It's been a few months since I last made an edit to a wiki page, so ...For the past few days, I've been getting a 500 error when trying to save changes to https://foss.heptapod.net/python-libs/passlib/-/wikis/home using the web interface. It's been a few months since I last made an edit to a wiki page, so not sure how long it's been going on.https://foss.heptapod.net/heptapod/heptapod/-/issues/741about.heptapod.host needs „sign in“ button2023-04-13T07:34:18ZHartmut Goebelabout.heptapod.host needs „sign in“ buttonabout.heptapod.host is lacking a „sign in” button. Thus if one for any reason ended on about.haptapos.host, is not easy to sign in.
Please add some „sign in” button.
Gitlab: ![Sign in button at about.gitlab.com](/uploads/362c5f437dd8e20...about.heptapod.host is lacking a „sign in” button. Thus if one for any reason ended on about.haptapos.host, is not easy to sign in.
Please add some „sign in” button.
Gitlab: ![Sign in button at about.gitlab.com](/uploads/362c5f437dd8e20e229944d3c24c023a/grafik.png)
Github: ![Sign in button at github.com](/uploads/cee8db2d53381c4060aa7b2bb1c108cb/grafik.png)https://foss.heptapod.net/heptapod/heptapod/-/issues/481Accessing closed branches is difficult with Heptapod2021-05-12T08:56:47ZMichael McNeil ForbesAccessing closed branches is difficult with Heptapod### Summary
Closed branches are not easily accessible from Heptapod since the related issue #93 was resolved. In particular:
1. It appears not to be possible to download closed branches. For example, the following fail since branch 0...### Summary
Closed branches are not easily accessible from Heptapod since the related issue #93 was resolved. In particular:
1. It appears not to be possible to download closed branches. For example, the following fail since branch 0.9 was closed by [commit 93981e1c](https://hg.iscimath.org/forbes-group/persist/-/commit/93981e1cfccf8278de9498c199046f090abeed87)
* https://hg.iscimath.org/forbes-group/persist/-/tree/branch/0.9
* https://hg.iscimath.org/forbes-group/persist/-/archive/branch/0.9/persist-branch-0.9.tar.bz2
This works for branches that have not been closed:
* https://hg.iscimath.org/forbes-group/persist/-/tree/branch/2.0
* https://hg.iscimath.org/forbes-group/persist/-/archive/branch/2.0/persist-branch-2.0.tar.bz2
The difficulty this causes for us is that these tarballs were available on Bitbucket, and we were relying on this to provide version-specific access through a URL and the pip `--find-links` option. Now this fails.
2. These branches are invisible in the Heptapod UI. This is probably fine, but it would be useful if they could be explicitly referenced i.e. with https://hg.iscimath.org/forbes-group/persist/-/tree/branch/0.9.
3. Mirroring does not push these branch tags to git, so, although the commits exist in the mirrored git repo (e.g. [github commit 93981e1c](https://github.com/forbes-group/persist/commit/93981e1cfccf8278de9498c199046f090abeed87)), there is no way to refer to them from the cloned git repo like there is from the cloned mercurial repo. `hg update --closed 0.9` for example.
4. I don't see an easy workaround to re-open these branches so that our previous `--find-links` usage will work with Heptapod.
Our previous workflow is obviously not in tune with the current Heptapod workflow: we should probably have just left the branches open as dangling heads. Still, it seems like it could be useful if thinks like the direct tarball downloads could work and maybe if the branch names could somehow be pushed to git. (Is there an equivalent to `--closed` for git branches? Sorry: don't know that much about git internally.)
Any suggestions for how to easily repair these repos would be appreciated.https://foss.heptapod.net/heptapod/heptapod/-/issues/327Adapt empty tags page for Mercurial2020-08-04T16:55:49ZGeorges RacinetAdapt empty tags page for MercurialCurrently, it says:
> Use git tag command to add a new one:
> `git tag -a v1.4 -m 'version 1.4'`
It should be rework to display proper instructions if the Project is Mercurial
Extracted from #20 (catch-all issues for such questions)Currently, it says:
> Use git tag command to add a new one:
> `git tag -a v1.4 -m 'version 1.4'`
It should be rework to display proper instructions if the Project is Mercurial
Extracted from #20 (catch-all issues for such questions)https://foss.heptapod.net/heptapod/heptapod-runner/-/issues/19Adapt fileArchiver command helper to Mercurial2022-01-18T13:54:05ZGeorges RacinetAdapt fileArchiver command helper to MercurialThe internal `fileArchiver` object has a mode of operation to work on untracked files of the surrounding repository, of course assuming the latter to be a Git repository. This is [older than Heptapod](bcff59843121).
The main problem wil...The internal `fileArchiver` object has a mode of operation to work on untracked files of the surrounding repository, of course assuming the latter to be a Git repository. This is [older than Heptapod](bcff59843121).
The main problem will be to convey the information that we are working for a Mercurial project all the way down to there.https://foss.heptapod.net/heptapod/heptapod-tests/-/issues/11Adapt for docker client 4.3.x2020-08-22T11:45:50ZGeorges RacinetAdapt for docker client 4.3.xHere's an example, showing that we're creating the client object too early, which now requires having a working server around:
Job [#91924](https://foss.heptapod.net/heptapod/heptapod-tests/-/jobs/91924).
Obvious quick fix to validate o...Here's an example, showing that we're creating the client object too early, which now requires having a working server around:
Job [#91924](https://foss.heptapod.net/heptapod/heptapod-tests/-/jobs/91924).
Obvious quick fix to validate our current tests is to require version 4.2.xhttps://foss.heptapod.net/heptapod/heptapod-tests/-/issues/21Adapt for Mercurial 5.9 on the client side2021-10-23T17:26:42ZGeorges RacinetAdapt for Mercurial 5.9 on the client sideLots of error messages that were dumped to stdout by Mercurial 5.7 are written to stderr with 5.9. This is purely a client-side issue, independently of the version on the server.
Job [#256798](https://foss.heptapod.net/heptapod/heptapod...Lots of error messages that were dumped to stdout by Mercurial 5.7 are written to stderr with 5.9. This is purely a client-side issue, independently of the version on the server.
Job [#256798](https://foss.heptapod.net/heptapod/heptapod-tests/-/jobs/256798) is an example of that.https://foss.heptapod.net/heptapod/heptapod-tests/-/issues/20Adapt to Selenium 4.0.02022-10-12T11:51:52ZGeorges RacinetAdapt to Selenium 4.0.0With the `selenium/standalone-chrome` image with id `sha256:201110c834d393a2919c2ac0250dea2e05b79b7259c39262e3a383f08a53f3dd` that was built today (2021-10-13T15:33:05.339520033Z), our tests all fail, see for instance job [#253322](https...With the `selenium/standalone-chrome` image with id `sha256:201110c834d393a2919c2ac0250dea2e05b79b7259c39262e3a383f08a53f3dd` that was built today (2021-10-13T15:33:05.339520033Z), our tests all fail, see for instance job [#253322](https://foss.heptapod.net/heptapod/heptapod-tests/-/jobs/253322).
The error log diplays a `4.0.0` version that was indeed [released today](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0).
I did retry an older passing job that also failed to double check that the failure is not due to heptapod-tests nor Heptapod itself.https://foss.heptapod.net/heptapod/heptapod/-/issues/603Add a Heptapod version check on help and admin pages2022-01-04T17:38:53ZElouan MartinetAdd a Heptapod version check on help and admin pagesOn vanilla GitLab, the help and admin pages display an image from `version.gitlab.com` that tells if the instance is running the latest version.
To add a similar feature on Heptapod, it would require a service that can receive the curre...On vanilla GitLab, the help and admin pages display an image from `version.gitlab.com` that tells if the instance is running the latest version.
To add a similar feature on Heptapod, it would require a service that can receive the currently running version and compare it to the latest available release. Unfortunately, the underlying service used by GitLab doesn't seem to be open source (or I haven't found it). Depending to how this is implemented, the release process will need to store the release number in some place.
NB: GitLab also [records stats](https://about.gitlab.com/handbook/sales/process/version-check/) using that service. This can be discussed too.
This issue has four parts:
* [ ] discuss how to implement the version check service and how to introduce it in the release process
* [ ] implement that service
* [ ] deploy it
* [ ] display the images from that service in Heptapod (like it is done on GitLab)https://foss.heptapod.net/heptapod/foss.heptapod.net/-/issues/34add a link to request developer status2020-02-17T16:35:36ZMatti Picusadd a link to request developer statusUntil there are personal forks, only developers can issue merge requests which increases drive-by contributor's friction: they need to find the "request access" link on the pypy group to get access to the pypy project.
We would like to p...Until there are personal forks, only developers can issue merge requests which increases drive-by contributor's friction: they need to find the "request access" link on the pypy group to get access to the pypy project.
We would like to publish a link in our external documentation to the "request access" link, currently https://foss.heptapod.net/groups/pypy/-/group_members/request_access, but it needs some authentication to work.https://foss.heptapod.net/heptapod/heptapod/-/issues/725Add simple tool for 'gitlab-hg' for on server repository maintenance.2023-02-06T22:51:31ZJoshua PedrickAdd simple tool for 'gitlab-hg' for on server repository maintenance.Occasionally, I need to do repository maintenance(e.g. repo mirrors get out of sync and commits need to be stripped). On the [FAQ](https://heptapod.net/pages/faq.html), there's warning about using the wrong mercurial version/configuratio...Occasionally, I need to do repository maintenance(e.g. repo mirrors get out of sync and commits need to be stripped). On the [FAQ](https://heptapod.net/pages/faq.html), there's warning about using the wrong mercurial version/configuration.
I propose a small simplification that parses the `config/gitlab.yml` for the correct configuration, like the following:
```
#!/opt/gitlab/embedded/bin/python3
import yaml
import subprocess
import os
import sys
gitlab_yml = yaml.safe_load( open('/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml', 'r') )
production = gitlab_yml.get('production')
hgrc = production.get('mercurial').get('hgrc')
hg_bin = production.get('mercurial').get('bin_path')
os.environ['HGRCPATH'] = ':'.join(hgrc)
subprocess.run([ hg_bin ] + sys.argv[1:])
```
If this is installed in the /opt/gitlab/embedded/bin directory the paths could be relative to the location of the script itself.https://foss.heptapod.net/heptapod/testing-projects/test-393/-/issues/3AI-Generated Content in the Real World: Success Stories and Challenges2023-08-30T04:24:17ZQuinn SmithAI-Generated Content in the Real World: Success Stories and ChallengesIn a world driven by technological advancements, artificial intelligence (AI) has permeated various aspects of our lives, transforming the way we work, communicate, and even create content. One of the intriguing applications of AI is in ...In a world driven by technological advancements, artificial intelligence (AI) has permeated various aspects of our lives, transforming the way we work, communicate, and even create content. One of the intriguing applications of AI is in generating written content, which has given rise to terms like "AI essay writer," "bot writing," and "content generator." This blog explores the realm of AI-generated content, focusing on its success stories, challenges, and impact on domains like [report writing] https://getallpapers.com/report-writing-service and essay composition for university admission.
![image](/uploads/7a7c75b4c634ca0bbfb67a6f77824e72/image.png)
**AI-Powered Writing: Revolutionizing Content Creation**
AI-powered writing tools have revolutionized content creation by providing an efficient and innovative approach to generating written material. These tools utilize sophisticated algorithms, natural language processing (NLP), and machine learning to produce text that resembles human-written content. The use of AI in writing encompasses various domains, including blog posts, product descriptions, marketing copy, and even academic essays.
**Read More:** [Beyond the Words: Understanding the Role of AI in Crafting Persuasive Admission Essays](https://blog.udn.com/e3650ebf/179758872)
**Success Stories**
Enhanced Productivity: [AI-generated content](https://botwriting.ai/ai-choose) has significantly enhanced productivity for businesses and individuals alike. With the ability to produce high-quality content at a rapid pace, professionals can focus on more strategic tasks, while AI handles routine writing. This streamlined process has led to increased efficiency and reduced time-to-market for many companies.
Language Translation: AI has been instrumental in breaking down language barriers through instant translation. It enables seamless communication and collaboration among individuals from different linguistic backgrounds. Businesses can expand their global reach and connect with a broader audience, thereby fostering international relationships.
Personalized Content: AI-driven writing tools can analyze user preferences and create personalized content recommendations. This level of customization enhances user experience and engagement. Retailers, for instance, use AI-generated product descriptions tailored to individual customer preferences, leading to improved customer satisfaction and sales.
**Challenges and Ethical Considerations**
Quality Control: While [bot writing](https://botwriting.ai/) has come a long way, maintaining consistent quality remains a challenge. The output can sometimes lack the depth, nuance, and creativity of human-authored content. Striking the right balance between efficiency and quality is an ongoing endeavor.
Plagiarism Concerns: The ease of generating content raises concerns about plagiarism. Striking the right balance between originality and AI assistance is crucial. Proper citation and verification mechanisms are essential to ensure the ethical use of AI-generated content.
Unintended Bias: AI models trained on large datasets may inadvertently perpetuate biases present in the data, leading to biased or insensitive content. Addressing this challenge requires continuous refinement of algorithms and conscious efforts to ensure fairness and inclusivity.
**AI in Essay Writing for University Admission**
One area where AI-generated content has gained attention is in [essay writing](https://botwriting.ai/essay-writing-service) for university admission. Prospective students often face the daunting task of crafting compelling essays that showcase their personality, achievements, and aspirations. AI-powered writing tools offer valuable assistance in this process.
These tools can help with structuring essays, suggesting relevant content, and even refining grammar and style. However, it's essential for applicants to use AI-generated content as a supplement rather than a replacement for genuine self-expression. Admissions committees value authenticity, and a well-written personal essay remains a pivotal component of the application process.
**Conclusion**
AI-generated content has undeniably made significant strides in transforming content creation across various domains. From enhancing productivity to aiding students in [essay writing for university admissions](https://getallpapers.com/admission-essay-writing-service), AI's impact is undeniable. However, challenges related to quality, bias, and authenticity persist. The key lies in harnessing AI as a tool that complements human creativity and expertise, rather than a replacement. As technology continues to evolve, finding the right balance between AI assistance and human ingenuity will be crucial in shaping the future of content generation.
**Frequently Asked Questions (FAQs)**
Q: Can AI completely replace human writers?
A: AI-generated content is a valuable tool, but it cannot replicate the depth of human creativity and perspective.
Q: Are AI-generated essays considered authentic in university admissions?
A: Admissions committees value authenticity; while AI can aid in essay refinement, personal input is crucial.
Q: How do AI tools ensure content originality?
A: AI tools often include plagiarism detection mechanisms to ensure the generated content is original.
Q: Can AI-generated content understand context and emotions?
A: AI has made strides in understanding context, but true emotional comprehension remains a complex challenge.
Q: What's the role of human oversight in AI-generated content?
A: Human oversight is essential to review, refine, and ensure the suitability of AI-generated content for specific purposes.
**For More Information:**
1. [Transforming Writing Experiences: The Evolution of AI-Powered Essay Writing Tools](https://quinnsmith33.full-design.com/transforming-writing-experiences-the-evolution-of-ai-powered-essay-writing-tools-63819037)
2. [Beyond Red Squiggles: Unveiling the Magic of AI Spell Checker Tools](https://beyond-red-squiggles.konfeo.com/en/groups)
3. [Decoding Excellence: The Traits of the Best Coursework Writing Services](https://wiwonder.com/read-blog/30544)
4. [Crafting Your Path to MBA: Writing Powerful Essays for Admissions Success](https://essay-writer-1.gitbook.io/crafting-your-path-to-mba/)https://foss.heptapod.net/heptapod/heptapod/-/issues/185Allow bookmark deletions2023-07-25T05:58:25ZPierre AugierAllow bookmark deletionsRepositories imported can contain bookmarks (see #143) and since they are protected, they are not going to move. It is quite inconvenient, especially for bookmarks as meaningful as master.
https://foss.heptapod.net/fluiddyn/fluidsim/bra...Repositories imported can contain bookmarks (see #143) and since they are protected, they are not going to move. It is quite inconvenient, especially for bookmarks as meaningful as master.
https://foss.heptapod.net/fluiddyn/fluidsim/branches
I'd like to delete the bookmark master, but:
```
pierre@kth ~/t/fluidsim> hg bookmarks
master 1264:e37c77fc8020
pierre@kth ~/t/fluidsim> hg book master -d
pierre@kth ~/t/fluidsim> hg bookmarks
no bookmarks set
pierre@kth ~/t/fluidsim> hg push -B master
pushing to ssh://hg@foss.heptapod.net/fluiddyn/fluidsim
searching for changes
no changes found
remote: Creating or updating bookmarks is forbidden by default in Heptapod. See https://heptapod.net/pages/faq.html#bookmarks to learn why and how to partially lift that restriction
abort: push failed on remote
```https://foss.heptapod.net/heptapod/heptapod/-/issues/191Allow the use of the `lfs` extensions2023-11-14T13:44:01ZPierre-Yves DavidAllow the use of the `lfs` extensionsGitlab comes with `git-lfs` fonctionnality, so making them work with the mercurial `lfs` extensions should not be too hard.
(This task is here to track discussion and progress on this issue, but does not comes with any actual plan to im...Gitlab comes with `git-lfs` fonctionnality, so making them work with the mercurial `lfs` extensions should not be too hard.
(This task is here to track discussion and progress on this issue, but does not comes with any actual plan to implement it at a given date)https://foss.heptapod.net/heptapod/hgitaly/-/issues/177AnalysisService: implement CheckBlobGenerated2024-03-28T21:15:36ZGeorges RacinetAnalysisService: implement CheckBlobGeneratedThe`AnalysisService` appears in Gitaly 16.7, spotted by the [upstream merge process](heptapod#1377).
```protobuf
// AnalysisService is a gRPC service providing RPCs that analyze objects in a repository.
service AnalysisService {
// C...The`AnalysisService` appears in Gitaly 16.7, spotted by the [upstream merge process](heptapod#1377).
```protobuf
// AnalysisService is a gRPC service providing RPCs that analyze objects in a repository.
service AnalysisService {
// CheckBlobsGenerated checks a provided set of blobs in a specified repository to determine
// whether the file is considered generated. This RPC supports bidirectional streaming because the
// client may specify any number of files to check across multiple request messages and the server
// responds to each request with a separate set of response messages.
//
// Each provided blob in the request is validated when received. Improperly formatted requests
// result in RPC termination and an error being returned to the client. The RPC also aborts and
// returns an error if requests are made that list Git revisions which do not resolve to a blob
// and/or cannot be found in the repository.
rpc CheckBlobsGenerated(stream CheckBlobsGeneratedRequest) returns (stream CheckBlobsGeneratedResponse) {
option (op_type) = {
op: ACCESSOR
};
}
}
```
The meaning of "generated" here turns out to be as in "generated code". The implementation in Gitaly relies on `enry.IsGenerated`, which is described in [this GitHub issue](https://github.com/src-d/enry/issues/213), itself referring after existence check to [implementation in Ruby linguist](https://github.com/github-linguist/linguist/blob/bf95666fc15e49d556f2def4d0a85338423c25f3/lib/linguist/generated.rb#L53):
```ruby
def generated?
xcode_file? ||
cocoapods? ||
carthage_build? ||
generated_graphql_relay? ||
generated_net_designer_file? ||
generated_net_specflow_feature_file? ||
composer_lock? ||
cargo_lock? ||
node_modules? ||
go_vendor? ||
go_lock? ||
npm_shrinkwrap_or_package_lock? ||
godeps? ||
generated_by_zephir? ||
minified_files? ||
has_source_map? ||
source_map? ||
compiled_coffeescript? ||
generated_parser? ||
generated_net_docfile? ||
generated_postscript? ||
compiled_cython_file? ||
generated_go? ||
generated_protocol_buffer? ||
generated_javascript_protocol_buffer? ||
generated_apache_thrift? ||
generated_jni_header? ||
vcr_cassette? ||
generated_module? ||
generated_unity3d_meta? ||
generated_racc? ||
generated_jflex? ||
generated_grammarkit? ||
generated_roxygen2? ||
generated_pkgdown? ||
generated_jison? ||
generated_grpc_cpp? ||
generated_dart? ||
generated_perl_ppport_header? ||
generated_gamemakerstudio?
end
# Internal: Is the blob an Xcode file?
#
# Generated if the file extension is an Xcode
# file extension.
#
# Returns true or false.
def xcode_file?
['.nib', '.xcworkspacedata', '.xcuserstate'].include?(extname)
end
# (NdGR many more such methods based on file name)
```
We could at least implement the file name based cases, if Tokei does not also provide it. An implementation in Rust, to avoid bothering the heavy Python implementation could be done right away.
The client-side service appears first in GitLab 16.8, together with the higher level `Git::Repository#detect_generated_files` and `Git::Compare#generated_files` and apparently exposition in Merge Requests (see `app/models/merge_request_diff.rb`).Heptapod 1.4https://foss.heptapod.net/heptapod/heptapod/-/issues/478API error when trying to get branches information for hg native repos2021-04-29T08:47:13ZArthur LutzAPI error when trying to get branches information for hg native reposWe started using https://github.com/mvisonneau/gitlab-ci-pipelines-exporter to monitor our pipeline and jobs in heptapod. It's not fully working yet, but it's pretty promising. While testing it, we found some issues and hope to report th...We started using https://github.com/mvisonneau/gitlab-ci-pipelines-exporter to monitor our pipeline and jobs in heptapod. It's not fully working yet, but it's pretty promising. While testing it, we found some issues and hope to report them to the project so that future users can easily set it up with heptapod.
One of them is related to hg native repos. They seem to serve a 500 error when the software queries for branches :
```
{"error":"GET https://forge.extranet.logilab.fr/api/v4/projects/open-source/gitlab-ci-templates/repository/branches: 500 {message: 500 Internal Server Error}","level":"warning","msg":"pulling refs from project","project-name":"open-source/gitlab-ci-templates","time":"2021-04-29T06:23:25Z"}
```
If you check https://forge.extranet.logilab.fr/open-source/gitlab-ci-templates it shows it's a `hg (native)` repo.
I can dig further in the logs if needed.
If you want to use the project, you have to customize which refs it looks for (since there is no `main` or `master` :
```
[snip]
project_defaults:
pull:
refs:
regexp: "^main|master|default$"
```
(might try to get that into the default value...)