<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-ce.git/doc/development/api_graphql_styleguide.md, branch docs/refactor-pgloader</title>
<subtitle>gitlab.com: gitlab-org/gitlab-ce.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/'/>
<entry>
<title>Improve GraphQL Authorization DSL</title>
<updated>2019-02-25T21:22:12+00:00</updated>
<author>
<name>Luke Duncalfe</name>
<email>lduncalfe@eml.cc</email>
</author>
<published>2019-02-18T01:19:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=ccb4edbca1aa7e94a76a5a8d361af02fd093e1b9'/>
<id>ccb4edbca1aa7e94a76a5a8d361af02fd093e1b9</id>
<content type='text'>
Previously GraphQL field authorization happened like this:

    class ProjectType
      field :my_field, MyFieldType do
        authorize :permission
      end
    end

This change allowed us to authorize like this instead:

    class ProjectType
      field :my_field, MyFieldType, authorize: :permission
    end

A new initializer registers the `authorize` metadata keyword on GraphQL
Schema Objects and Fields, and we can collect this data within the
context of Instrumentation like this:

    field.metadata[:authorize]

The previous functionality of authorize is still being used for
mutations, as the #authorize method here is called at during the code
that executes during the mutation, rather than when a field resolves.

https://gitlab.com/gitlab-org/gitlab-ce/issues/57828
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously GraphQL field authorization happened like this:

    class ProjectType
      field :my_field, MyFieldType do
        authorize :permission
      end
    end

This change allowed us to authorize like this instead:

    class ProjectType
      field :my_field, MyFieldType, authorize: :permission
    end

A new initializer registers the `authorize` metadata keyword on GraphQL
Schema Objects and Fields, and we can collect this data within the
context of Instrumentation like this:

    field.metadata[:authorize]

The previous functionality of authorize is still being used for
mutations, as the #authorize method here is called at during the code
that executes during the mutation, rather than when a field resolves.

https://gitlab.com/gitlab-org/gitlab-ce/issues/57828
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix typos in comments and specs</title>
<updated>2018-11-01T06:59:20+00:00</updated>
<author>
<name>George Tsiolis</name>
<email>tsiolis.g@gmail.com</email>
</author>
<published>2018-10-30T10:53:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=733ae9492129e835f183902a97ee0886e2dbdc9b'/>
<id>733ae9492129e835f183902a97ee0886e2dbdc9b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add mutation toggling WIP state of merge requests</title>
<updated>2018-07-25T16:37:12+00:00</updated>
<author>
<name>Bob Van Landuyt</name>
<email>bob@vanlanduyt.co</email>
</author>
<published>2018-07-10T14:19:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=3bcb04f100f5e982379fbeae37a30a191581d1ef'/>
<id>3bcb04f100f5e982379fbeae37a30a191581d1ef</id>
<content type='text'>
This is mainly the setup of mutations for GraphQL. Including
authorization and basic return type-structure.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is mainly the setup of mutations for GraphQL. Including
authorization and basic return type-structure.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add pipeline lists to GraphQL</title>
<updated>2018-07-04T08:53:39+00:00</updated>
<author>
<name>Bob Van Landuyt</name>
<email>bob@vanlanduyt.co</email>
</author>
<published>2018-06-26T16:31:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=04b046587fe609cd889f3fa518f08299abc61267'/>
<id>04b046587fe609cd889f3fa518f08299abc61267</id>
<content type='text'>
This adds Keyset pagination to GraphQL lists. PoC for that is
pipelines on merge requests and projects.

When paginating a list, the base-64 encoded id of the ordering
field (in most cases the primary key) can be passed in the `before` or
`after` GraphQL argument.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds Keyset pagination to GraphQL lists. PoC for that is
pipelines on merge requests and projects.

When paginating a list, the base-64 encoded id of the ordering
field (in most cases the primary key) can be passed in the `before` or
`after` GraphQL argument.
</pre>
</div>
</content>
</entry>
<entry>
<title>Expose permissions on types in GraphQL</title>
<updated>2018-06-28T11:50:17+00:00</updated>
<author>
<name>Bob Van Landuyt</name>
<email>bob@vanlanduyt.co</email>
</author>
<published>2018-06-25T08:59:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=54b56f20b7a70d3e6284c8105eb3d4a568e255b0'/>
<id>54b56f20b7a70d3e6284c8105eb3d4a568e255b0</id>
<content type='text'>
This adds a reusable way to expose permissions for a user to types in
GraphQL.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a reusable way to expose permissions for a user to types in
GraphQL.
</pre>
</div>
</content>
</entry>
<entry>
<title>Initial setup GraphQL using graphql-ruby 1.8</title>
<updated>2018-06-06T08:58:54+00:00</updated>
<author>
<name>Bob Van Landuyt</name>
<email>bob@vanlanduyt.co</email>
</author>
<published>2018-05-23T07:55:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=9b65d4bb417fb4939289eab94487c894f0a62db6'/>
<id>9b65d4bb417fb4939289eab94487c894f0a62db6</id>
<content type='text'>
- All definitions have been replaced by classes:
  http://graphql-ruby.org/schema/class_based_api.html
- Authorization &amp; Presentation have been refactored to work in the
  class based system
- Loaders have been replaced by resolvers
- Times are now coersed as ISO 8601
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- All definitions have been replaced by classes:
  http://graphql-ruby.org/schema/class_based_api.html
- Authorization &amp; Presentation have been refactored to work in the
  class based system
- Loaders have been replaced by resolvers
- Times are now coersed as ISO 8601
</pre>
</div>
</content>
</entry>
<entry>
<title>Add `present_using` to types</title>
<updated>2018-06-05T18:47:42+00:00</updated>
<author>
<name>Bob Van Landuyt</name>
<email>bob@vanlanduyt.co</email>
</author>
<published>2018-05-21T07:52:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=aa4b1ae71260720b47695b8a256134f20280f61a'/>
<id>aa4b1ae71260720b47695b8a256134f20280f61a</id>
<content type='text'>
By specifying a presenter for the object type, we can keep the logic
out of `GitlabSchema`.

The presenter gets initialized using the object being presented, and
the context (including the `current_user`).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By specifying a presenter for the object type, we can keep the logic
out of `GitlabSchema`.

The presenter gets initialized using the object being presented, and
the context (including the `current_user`).
</pre>
</div>
</content>
</entry>
</feed>
