Commit 1355ede49d02e2a7b1715a3ed6bd7389bfedf6bc

Authored by Dmitriy Zaporozhets
1 parent a5cbb4cb

Wipe wall notes feature

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
CHANGELOG
... ... @@ -33,6 +33,7 @@ v 7.0.0
33 33 - Overall performance improvements
34 34 - Skip init script check on omnibus-gitlab
35 35 - Be more selective when killing stray Sidekiqs
  36 + - Remove wall feature (no data loss - you can take it from database)
36 37  
37 38 v 6.9.2
38 39 - Revert the commit that broke the LDAP user filter
... ...
app/assets/javascripts/dispatcher.js.coffee
... ... @@ -34,8 +34,6 @@ class Dispatcher
34 34 new Activities()
35 35 when 'projects:new', 'projects:edit'
36 36 new Project()
37   - when 'projects:walls:show'
38   - new Wall(project_id)
39 37 when 'projects:teams:members:index'
40 38 new TeamMembers()
41 39 when 'groups:members'
... ...
app/assets/javascripts/wall.js.coffee
... ... @@ -1,85 +0,0 @@
1   -class Wall
2   - constructor: (project_id) ->
3   - @project_id = project_id
4   - @note_ids = []
5   - @getContent()
6   - @initRefresh()
7   - @initForm()
8   -
9   - #
10   - # Gets an initial set of notes.
11   - #
12   - getContent: ->
13   - Api.notes @project_id, (notes) =>
14   - $.each notes, (i, note) =>
15   - # render note if it not present in loaded list
16   - # or skip if rendered
17   - if $.inArray(note.id, @note_ids) == -1
18   - @note_ids.push(note.id)
19   - @renderNote(note)
20   - @scrollDown()
21   - $("abbr.timeago").timeago()
22   -
23   - initRefresh: ->
24   - setInterval =>
25   - @refresh()
26   - , 10000
27   -
28   - refresh: ->
29   - @getContent()
30   -
31   - scrollDown: ->
32   - notes = $('ul.notes')
33   - $('body, html').scrollTop(notes.height())
34   -
35   - initForm: ->
36   - form = $('.wall-note-form')
37   - form.find("#target_type").val('wall')
38   -
39   - form.on 'ajax:success', =>
40   - @refresh()
41   - form.find(".js-note-text").val("").trigger("input")
42   -
43   - form.on 'ajax:complete', ->
44   - form.find(".js-comment-button").removeAttr('disabled')
45   - form.find(".js-comment-button").removeClass('disabled')
46   -
47   - form.on "click", ".js-choose-note-attachment-button", ->
48   - form.find(".js-note-attachment-input").click()
49   -
50   - form.on "change", ".js-note-attachment-input", ->
51   - filename = $(this).val().replace(/^.*[\\\/]/, '')
52   - form.find(".js-attachment-filename").text(filename)
53   -
54   - form.find('.note_text').keydown (e) ->
55   - if e.ctrlKey && e.keyCode == 13
56   - form.find('.js-comment-button').submit()
57   -
58   - form.show()
59   -
60   - renderNote: (note) ->
61   - template = @noteTemplate()
62   - template = template.replace('{{author_name}}', note.author.name)
63   - template = template.replace(/{{created_at}}/g, note.created_at)
64   - template = template.replace('{{text}}', simpleFormat(note.body))
65   -
66   - if note.attachment
67   - file = '<i class="icon-paper-clip"/><a href="' + gon.relative_url_root + '/files/note/' + note.id + '/' + note.attachment + '">' + note.attachment + '</a>'
68   - else
69   - file = ''
70   - template = template.replace('{{file}}', file)
71   -
72   -
73   - $('ul.notes').append(template)
74   -
75   - noteTemplate: ->
76   - return '<li>
77   - <strong class="wall-author">{{author_name}}</strong>
78   - <span class="wall-text">
79   - {{text}}
80   - <span class="wall-file">{{file}}</span>
81   - </span>
82   - <abbr class="timeago" title="{{created_at}}">{{created_at}}</abbr>
83   - </li>'
84   -
85   -@Wall = Wall
app/assets/stylesheets/sections/wall.scss
... ... @@ -1,55 +0,0 @@
1   -.wall-page {
2   - .wall-note-form {
3   - @extend .col-md-12;
4   -
5   - margin: 0;
6   - height: 140px;
7   - background: #F9F9F9;
8   - position: fixed;
9   - bottom: 0px;
10   - padding: 3px;
11   - padding-bottom: 25px;
12   - border: 1px solid #DDD;
13   - }
14   -
15   - .notes {
16   - margin-bottom: 160px;
17   - background: #FFE;
18   - border: 1px solid #EED;
19   -
20   - > li {
21   - @extend .clearfix;
22   - border-bottom: 1px solid #EED;
23   - padding: 10px;
24   - }
25   -
26   - .wall-author {
27   - color: #666;
28   - float: left;
29   - font-size: 12px;
30   - width: 120px;
31   - text-overflow: ellipsis;
32   - white-space: nowrap;
33   - overflow: hidden;
34   - }
35   -
36   - .wall-text {
37   - border-left: 1px solid #CCC;
38   - margin-left: 10px;
39   - padding-left: 10px;
40   - float: left;
41   - width: 75%;
42   - }
43   -
44   - .wall-file {
45   - margin-left: 8px;
46   - background: #EEE;
47   - }
48   -
49   - abbr {
50   - float: right;
51   - color: #AAA;
52   - border: none;
53   - }
54   - }
55   -}
app/controllers/projects/walls_controller.rb
... ... @@ -1,20 +0,0 @@
1   -class Projects::WallsController < Projects::ApplicationController
2   - before_filter :module_enabled
3   -
4   - respond_to :js, :html
5   -
6   - def show
7   - @note = @project.notes.new
8   -
9   - respond_to do |format|
10   - format.html
11   - end
12   - end
13   -
14   - protected
15   -
16   - def module_enabled
17   - return render_404 unless @project.wall_enabled
18   - end
19   -end
20   -
app/helpers/events_helper.rb
... ... @@ -109,8 +109,6 @@ module EventsHelper
109 109 "#{event.note_target_type} ##{truncate event.note_target_iid}"
110 110 end
111 111 end
112   - elsif event.wall_note?
113   - link_to 'wall', project_wall_path(event.project)
114 112 else
115 113 content_tag :strong do
116 114 "(deleted)"
... ...
app/helpers/projects_helper.rb
... ... @@ -139,7 +139,7 @@ module ProjectsHelper
139 139 nav_tabs << :settings
140 140 end
141 141  
142   - [:issues, :wiki, :wall, :snippets].each do |feature|
  142 + [:issues, :wiki, :snippets].each do |feature|
143 143 nav_tabs << feature if project.send :"#{feature}_enabled"
144 144 end
145 145  
... ...
app/helpers/search_helper.rb
... ... @@ -61,7 +61,6 @@ module SearchHelper
61 61 { label: "#{prefix} - Milestones", url: project_milestones_path(@project) },
62 62 { label: "#{prefix} - Snippets", url: project_snippets_path(@project) },
63 63 { label: "#{prefix} - Team", url: project_team_index_path(@project) },
64   - { label: "#{prefix} - Wall", url: project_wall_path(@project) },
65 64 { label: "#{prefix} - Wiki", url: project_wikis_path(@project) },
66 65 ]
67 66 else
... ...
app/mailers/emails/notes.rb
... ... @@ -32,14 +32,5 @@ module Emails
32 32 cc: recipient(recipient_id),
33 33 subject: subject("#{@merge_request.title} (##{@merge_request.iid})"))
34 34 end
35   -
36   - def note_wall_email(recipient_id, note_id)
37   - @note = Note.find(note_id)
38   - @project = @note.project
39   - @target_url = project_wall_url(@note.project, anchor: "note_#{@note.id}")
40   - mail(from: sender(@note.author_id),
41   - cc: recipient(recipient_id),
42   - subject: subject("Note on wall"))
43   - end
44 35 end
45 36 end
... ...
app/models/event.rb
... ... @@ -286,10 +286,6 @@ class Event &lt; ActiveRecord::Base
286 286 end.to_s
287 287 end
288 288  
289   - def wall_note?
290   - target.noteable_type.blank?
291   - end
292   -
293 289 def note_target_type
294 290 if target.noteable_type.present?
295 291 target.noteable_type.titleize
... ...
app/models/note.rb
... ... @@ -251,10 +251,6 @@ class Note &lt; ActiveRecord::Base
251 251 for_merge_request? && for_diff_line?
252 252 end
253 253  
254   - def for_wall?
255   - noteable_type.blank?
256   - end
257   -
258 254 # override to return commits, which are not active record
259 255 def noteable
260 256 if for_commit?
... ... @@ -295,8 +291,6 @@ class Note &lt; ActiveRecord::Base
295 291 def noteable_type_name
296 292 if noteable_type.present?
297 293 noteable_type.downcase
298   - else
299   - "wall"
300 294 end
301 295 end
302 296  
... ...
app/models/project.rb
... ... @@ -31,7 +31,6 @@ class Project &lt; ActiveRecord::Base
31 31  
32 32 default_value_for :archived, false
33 33 default_value_for :issues_enabled, true
34   - default_value_for :wall_enabled, true
35 34 default_value_for :merge_requests_enabled, true
36 35 default_value_for :wiki_enabled, true
37 36 default_value_for :snippets_enabled, true
... ... @@ -39,7 +38,7 @@ class Project &lt; ActiveRecord::Base
39 38 ActsAsTaggableOn.strict_case_match = true
40 39  
41 40 attr_accessible :name, :path, :description, :issues_tracker, :label_list,
42   - :issues_enabled, :wall_enabled, :merge_requests_enabled, :snippets_enabled, :issues_tracker_id,
  41 + :issues_enabled, :merge_requests_enabled, :snippets_enabled, :issues_tracker_id,
43 42 :wiki_enabled, :visibility_level, :import_url, :last_activity_at, as: [:default, :admin]
44 43  
45 44 attr_accessible :namespace_id, :creator_id, as: :admin
... ... @@ -98,7 +97,7 @@ class Project &lt; ActiveRecord::Base
98 97 exclusion: { in: Gitlab::Blacklist.path },
99 98 format: { with: Gitlab::Regex.path_regex,
100 99 message: "only letters, digits & '_' '-' '.' allowed. Letter or digit should be first" }
101   - validates :issues_enabled, :wall_enabled, :merge_requests_enabled,
  100 + validates :issues_enabled, :merge_requests_enabled,
102 101 :wiki_enabled, inclusion: { in: [true, false] }
103 102 validates :issues_tracker_id, length: { maximum: 255 }, allow_blank: true
104 103 validates :namespace, presence: true
... ...
app/observers/note_observer.rb
... ... @@ -3,12 +3,9 @@ class NoteObserver &lt; BaseObserver
3 3 notification.new_note(note)
4 4  
5 5 # Skip system notes, like status changes and cross-references.
6   - # Skip wall notes to prevent spamming of dashboard
7   - if note.noteable_type.present? && !note.system
  6 + unless note.system
8 7 event_service.leave_note(note, note.author)
9   - end
10 8  
11   - unless note.system?
12 9 # Create a cross-reference note if this Note contains GFM that names an
13 10 # issue, merge request, or commit.
14 11 note.references.each do |mentioned|
... ...
app/services/notification_service.rb
... ... @@ -106,7 +106,6 @@ class NotificationService
106 106 # TODO: split on methods and refactor
107 107 #
108 108 def new_note(note)
109   - # ignore wall messages
110 109 return true unless note.noteable_type.present?
111 110  
112 111 # ignore gitlab service messages
... ...
app/services/projects/create_service.rb
... ... @@ -19,7 +19,6 @@ module Projects
19 19 default_opts = {
20 20 issues_enabled: default_features.issues,
21 21 wiki_enabled: default_features.wiki,
22   - wall_enabled: default_features.wall,
23 22 snippets_enabled: default_features.snippets,
24 23 merge_requests_enabled: default_features.merge_requests,
25 24 visibility_level: default_features.visibility_level
... ...
app/views/layouts/nav/_project.html.haml
... ... @@ -36,10 +36,6 @@
36 36 = nav_link(controller: :wikis) do
37 37 = link_to 'Wiki', project_wiki_path(@project, :home)
38 38  
39   - - if project_nav_tab? :wall
40   - = nav_link(controller: :walls) do
41   - = link_to 'Wall', project_wall_path(@project)
42   -
43 39 - if project_nav_tab? :snippets
44 40 = nav_link(controller: :snippets) do
45 41 = link_to 'Snippets', project_snippets_path(@project)
... ...
app/views/notify/note_wall_email.html.haml
... ... @@ -1 +0,0 @@
1   -= render 'note_message'
app/views/notify/note_wall_email.text.erb
... ... @@ -1,9 +0,0 @@
1   -New message on the project wall <%= @note.project %>
2   -
3   -<%= url_for(project_wall_url(@note.project, anchor: "note_#{@note.id}")) %>
4   -
5   -
6   -<%= @note.author_name %>
7   -
8   -<%= @note.note %>
9   -
app/views/projects/edit.html.haml
... ... @@ -74,13 +74,6 @@
74 74 %span.descr Pages for project documentation
75 75  
76 76 .form-group
77   - = f.label :wall_enabled, "Wall", class: 'control-label'
78   - .col-sm-10
79   - .checkbox
80   - = f.check_box :wall_enabled
81   - %span.descr Simple chat system for broadcasting inside project
82   -
83   - .form-group
84 77 = f.label :snippets_enabled, "Snippets", class: 'control-label'
85 78 .col-sm-10
86 79 .checkbox
... ...
app/views/projects/walls/show.html.haml
... ... @@ -1,23 +0,0 @@
1   -%div.wall-page
2   - %ul.notes
3   -
4   - - if can? current_user, :write_note, @project
5   - .note-form-holder
6   - = form_for [@project, @note], remote: true, html: { multipart: true, id: nil, class: "new_note wall-note-form" }, authenticity_token: true do |f|
7   - = note_target_fields
8   - .note_text_and_preview
9   - = f.text_area :note, size: 255, class: 'note_text js-note-text js-gfm-input turn-on'
10   - .note-form-actions
11   - .buttons
12   - = f.submit 'Add Comment', class: "btn comment-btn btn-grouped js-comment-button"
13   -
14   - .note-form-option
15   - %a.choose-btn.btn.btn-small.js-choose-note-attachment-button
16   - %i.icon-paper-clip
17   - %span Choose File ...
18   - &nbsp;
19   - %span.file_name.js-attachment-filename File name...
20   - = f.file_field :attachment, class: "js-note-attachment-input hidden"
21   -
22   - .hint.pull-right CTRL + Enter to send message
23   - .clearfix
config/gitlab.yml.example
... ... @@ -73,7 +73,6 @@ production: &amp;base
73 73 issues: true
74 74 merge_requests: true
75 75 wiki: true
76   - wall: false
77 76 snippets: false
78 77 visibility_level: "private" # can be "private" | "internal" | "public"
79 78  
... ...
config/initializers/1_settings.rb
... ... @@ -95,7 +95,6 @@ Settings.gitlab[&#39;default_projects_features&#39;] ||= {}
95 95 Settings.gitlab.default_projects_features['issues'] = true if Settings.gitlab.default_projects_features['issues'].nil?
96 96 Settings.gitlab.default_projects_features['merge_requests'] = true if Settings.gitlab.default_projects_features['merge_requests'].nil?
97 97 Settings.gitlab.default_projects_features['wiki'] = true if Settings.gitlab.default_projects_features['wiki'].nil?
98   -Settings.gitlab.default_projects_features['wall'] = false if Settings.gitlab.default_projects_features['wall'].nil?
99 98 Settings.gitlab.default_projects_features['snippets'] = false if Settings.gitlab.default_projects_features['snippets'].nil?
100 99 Settings.gitlab.default_projects_features['visibility_level'] = Settings.send(:verify_constant, Gitlab::VisibilityLevel, Settings.gitlab.default_projects_features['visibility_level'], Gitlab::VisibilityLevel::PRIVATE)
101 100 Settings.gitlab['repository_downloads_path'] = File.absolute_path(Settings.gitlab['repository_downloads_path'] || 'tmp/repositories', Rails.root)
... ...
config/routes.rb
... ... @@ -209,12 +209,6 @@ Gitlab::Application.routes.draw do
209 209 end
210 210 end
211 211  
212   - resource :wall, only: [:show], constraints: {id: /\d+/} do
213   - member do
214   - get 'notes'
215   - end
216   - end
217   -
218 212 resource :repository, only: [:show] do
219 213 member do
220 214 get "stats"
... ...
doc/api/notes.md
1 1 # Notes
2 2  
3   -Notes can be wall notes or comments on snippets, issues or merge requests.
4   -
5   -## Wall
6   -
7   -### List project wall notes
8   -
9   -Get a list of project wall notes.
10   -
11   -```
12   -GET /projects/:id/notes
13   -```
14   -
15   -Parameters:
16   -
17   -+ `id` (required) - The ID of a project
18   -
19   -```json
20   -[
21   - {
22   - "id": 522,
23   - "body": "The solution is rather tricky",
24   - "attachment": null,
25   - "author": {
26   - "id": 1,
27   - "username": "john_smith",
28   - "email": "john@example.com",
29   - "name": "John Smith",
30   - "state": "active",
31   - "created_at": "2012-05-23T08:00:58Z"
32   - },
33   - "created_at": "2012-11-27T19:16:44Z"
34   - }
35   -]
36   -```
37   -
38   -### Get single wall note
39   -
40   -Returns a single wall note.
41   -
42   -```
43   -GET /projects/:id/notes/:note_id
44   -```
45   -
46   -Parameters:
47   -
48   -+ `id` (required) - The ID of a project
49   -+ `note_id` (required) - The ID of a wall note
50   -
51   -
52   -### Create new wall note
53   -
54   -Creates a new wall note.
55   -
56   -```
57   -POST /projects/:id/notes
58   -```
59   -
60   -Parameters:
61   -
62   -+ `id` (required) - The ID of a project
63   -+ `body` (required) - The content of a note
64   -
  3 +Notes are comments on snippets, issues or merge requests.
65 4  
66 5 ## Issues
67 6  
... ...
doc/api/projects.md
... ... @@ -30,7 +30,6 @@ GET /projects
30 30 "path_with_namespace": "diaspora/diaspora-client",
31 31 "issues_enabled": true,
32 32 "merge_requests_enabled": true,
33   - "wall_enabled": false,
34 33 "wiki_enabled": true,
35 34 "snippets_enabled": false,
36 35 "created_at": "2013-09-30T13: 46: 02Z",
... ... @@ -66,7 +65,6 @@ GET /projects
66 65 "path_with_namespace": "brightbox/puppet",
67 66 "issues_enabled": true,
68 67 "merge_requests_enabled": true,
69   - "wall_enabled": false,
70 68 "wiki_enabled": true,
71 69 "snippets_enabled": false,
72 70 "created_at": "2013-09-30T13:46:02Z",
... ... @@ -136,7 +134,6 @@ Parameters:
136 134 "path_with_namespace": "diaspora/diaspora-project-site",
137 135 "issues_enabled": true,
138 136 "merge_requests_enabled": true,
139   - "wall_enabled": false,
140 137 "wiki_enabled": true,
141 138 "snippets_enabled": false,
142 139 "created_at": "2013-09-30T13: 46: 02Z",
... ... @@ -252,7 +249,6 @@ Parameters:
252 249 + `namespace_id` (optional) - namespace for the new project (defaults to user)
253 250 + `description` (optional) - short project description
254 251 + `issues_enabled` (optional)
255   -+ `wall_enabled` (optional)
256 252 + `merge_requests_enabled` (optional)
257 253 + `wiki_enabled` (optional)
258 254 + `snippets_enabled` (optional)
... ... @@ -276,7 +272,6 @@ Parameters:
276 272 + `description` (optional) - short project description
277 273 + `default_branch` (optional) - 'master' by default
278 274 + `issues_enabled` (optional)
279   -+ `wall_enabled` (optional)
280 275 + `merge_requests_enabled` (optional)
281 276 + `wiki_enabled` (optional)
282 277 + `snippets_enabled` (optional)
... ...
doc/markdown/markdown.md
... ... @@ -48,7 +48,6 @@ You can use GFM in
48 48  
49 49 - commit messages
50 50 - comments
51   -- wall posts
52 51 - issues
53 52 - merge requests
54 53 - milestones
... ...
doc/permissions/permissions.md
... ... @@ -13,7 +13,6 @@ If a user is a GitLab administrator they receive all permissions.
13 13 |---------------------------------------|---------|------------|-------------|----------|--------|
14 14 | Create new issue | ✓ | ✓ | ✓ | ✓ | ✓ |
15 15 | Leave comments | ✓ | ✓ | ✓ | ✓ | ✓ |
16   -| Write on project wall | ✓ | ✓ | ✓ | ✓ | ✓ |
17 16 | Pull project code | | ✓ | ✓ | ✓ | ✓ |
18 17 | Download project | | ✓ | ✓ | ✓ | ✓ |
19 18 | Create code snippets | | ✓ | ✓ | ✓ | ✓ |
... ...
doc/workflow/project_features.md
... ... @@ -26,12 +26,6 @@ This is a separate system for documentation, built right into GitLab.
26 26  
27 27 It is source controlled and is very convenient if you don't want to keep you documentation in your source code, but you do want to keep it in your GitLab project.
28 28  
29   -## Wall
30   -
31   -For simple, project specific conversations, the wall can be used.
32   -
33   -It's very lightweight and simple and works well if you're not interested in using issues, but still want to occasionally communicate within a project.
34   -
35 29 ## Snippets
36 30  
37 31 Snippets are little bits of code or text.
... ...
lib/api/entities.rb
... ... @@ -48,7 +48,7 @@ module API
48 48 expose :owner, using: Entities::UserBasic, unless: ->(project, options) { project.group }
49 49 expose :name, :name_with_namespace
50 50 expose :path, :path_with_namespace
51   - expose :issues_enabled, :merge_requests_enabled, :wall_enabled, :wiki_enabled, :snippets_enabled, :created_at, :last_activity_at
  51 + expose :issues_enabled, :merge_requests_enabled, :wiki_enabled, :snippets_enabled, :created_at, :last_activity_at
52 52 expose :namespace
53 53 expose :forked_from_project, using: Entities::ForkedFromProject, :if => lambda{ | project, options | project.forked? }
54 54 end
... ...
lib/api/notes.rb
... ... @@ -6,55 +6,6 @@ module API
6 6 NOTEABLE_TYPES = [Issue, MergeRequest, Snippet]
7 7  
8 8 resource :projects do
9   - # Get a list of project wall notes
10   - #
11   - # Parameters:
12   - # id (required) - The ID of a project
13   - # Example Request:
14   - # GET /projects/:id/notes
15   - get ":id/notes" do
16   - @notes = user_project.notes.common
17   -
18   - # Get recent notes if recent = true
19   - @notes = @notes.order('id DESC') if params[:recent]
20   -
21   - present paginate(@notes), with: Entities::Note
22   - end
23   -
24   - # Get a single project wall note
25   - #
26   - # Parameters:
27   - # id (required) - The ID of a project
28   - # note_id (required) - The ID of a note
29   - # Example Request:
30   - # GET /projects/:id/notes/:note_id
31   - get ":id/notes/:note_id" do
32   - @note = user_project.notes.common.find(params[:note_id])
33   - present @note, with: Entities::Note
34   - end
35   -
36   - # Create a new project wall note
37   - #
38   - # Parameters:
39   - # id (required) - The ID of a project
40   - # body (required) - The content of a note
41   - # Example Request:
42   - # POST /projects/:id/notes
43   - post ":id/notes" do
44   - required_attributes! [:body]
45   -
46   - @note = user_project.notes.new(note: params[:body])
47   - @note.author = current_user
48   -
49   - if @note.save
50   - present @note, with: Entities::Note
51   - else
52   - # :note is exposed as :body, but :note is set on error
53   - bad_request!(:note) if @note.errors[:note].any?
54   - not_found!
55   - end
56   - end
57   -
58 9 NOTEABLE_TYPES.each do |noteable_type|
59 10 noteables_str = noteable_type.to_s.underscore.pluralize
60 11 noteable_id_str = "#{noteable_type.to_s.underscore}_id"
... ...
lib/api/projects.rb
... ... @@ -71,7 +71,6 @@ module API
71 71 # name (required) - name for new project
72 72 # description (optional) - short project description
73 73 # issues_enabled (optional)
74   - # wall_enabled (optional)
75 74 # merge_requests_enabled (optional)
76 75 # wiki_enabled (optional)
77 76 # snippets_enabled (optional)
... ... @@ -86,7 +85,6 @@ module API
86 85 :path,
87 86 :description,
88 87 :issues_enabled,
89   - :wall_enabled,
90 88 :merge_requests_enabled,
91 89 :wiki_enabled,
92 90 :snippets_enabled,
... ... @@ -114,7 +112,6 @@ module API
114 112 # description (optional) - short project description
115 113 # default_branch (optional) - 'master' by default
116 114 # issues_enabled (optional)
117   - # wall_enabled (optional)
118 115 # merge_requests_enabled (optional)
119 116 # wiki_enabled (optional)
120 117 # snippets_enabled (optional)
... ... @@ -129,7 +126,6 @@ module API
129 126 :description,
130 127 :default_branch,
131 128 :issues_enabled,
132   - :wall_enabled,
133 129 :merge_requests_enabled,
134 130 :wiki_enabled,
135 131 :snippets_enabled,
... ...