2017-05-05 2 views
2

So finde ich mich muss ein "benutzerdefiniertes" Feld (eine externe ticket ref) zum gitlab Problemmodell hinzufügen.hacken gitlab - Hinzufügen eines Felds zum Ausgabemodell

Da ich kein rubinischer Typ bin, habe ich ein bisschen dagegen gekämpft und bin so weit gekommen, aber habe eine Mauer getroffen.

Ich habe eine Migrationsdatei hinzugefügt

class AddExternalRefToIssues < ActiveRecord::Migration 
    def change 
    add_column :issues, :external_ref, :string 
    add_index :issues, :external_ref 
    end 
end 

und verwaltet, dass in die Datenbank geladen werden, indem Sie diese Befehle ausführen

rm /var/opt/gitlab/gitlab-rails/upgrade-status/* 
gitlab-ctl reconfigure 

ich die Postgres-Tabelle

id | [snip] | external_ref 
----+-------+-------------- 
    1 |  | 
(1 row) 

so geprüft Die Spalte ist da. Tatsächlich ist, wie ich lesen kann & schreiben die external_ref Attribut in der Schienen-Konsole

irb(main):018:0> i = Issue.find(1) 
=> #<Issue id: 1, title: "demo", ...[snip]..., external_ref: "123"> 

aber jetzt ich ratlos bin von dem, was als nächstes zu tun, wie der API-Aufruf api/v4/projects/1/issues/1 kehrt

{"id":1,"iid":1,"project_id":1,"title":"demo",[snip] , "subscribed":true} 

dh mein external_ref Feld wird nicht angezeigt

Ich habe versucht, herum zu hacken, ein paar Dateien wie app/serializers/issue_entity.rb zu ändern und expose :external_ref hinzuzufügen und gitlab ohne Wirkung neu zu starten

Kann mir jemand in die richtige Richtung zeigen, wie man & einen Wert für dieses neue Attribut setzt?

Ich würde auch schätzen, dass jemand mir sagt, wie man eine API hinzufügt, die mir erlauben würde, auf diesem Feld zu suchen.

danke

+0

Rückverweis auf [relevant Gitlab Ausgabe] (https://gitlab.com/gitlab-org/ gitlab-ee/issues/1906 # note_28952232). – Wildcard

Antwort

0

Also habe ich es schließlich ausgearbeitet.

eine neue Datei erstellen genannt /opt/gitlab/embedded/service/gitlab-rails/db/migrate/20170505102713_add_external_ref_to_issues.rb

mit folgendem Inhalt:

class AddExternalRefToIssues < ActiveRecord::Migration 
    def change 
    add_column :issues, :external_ref, :string 
    add_index :issues, :external_ref 
    end 
end 

machen die folgende Änderungen an

/opt/gitlab/embedded/service/gitlab-rails/lib/api/entities.rb

class IssueBasic < ProjectEntity 
    expose :external_ref 

/opt/gitlab/eingebettet/service/gitlab-rails/lib/api/entities.rb

params :issues_params do 
    optional :external_ref, type: String, desc: 'external reference' 

    params :issue_params do 
    optional :external_ref, type: String, desc: 'external reference' 

rm /var/opt/gitlab/gitlab-rails/upgrade-status/* 
gitlab-ctl reconfigure 
gitlab-ctl restart 

ausführen und jetzt können Sie schreiben und lesen Sie die external_ref Spalte

Verwandte Themen