|
Size: 3630
Comment: Fixed the 'heling the project' section
|
Size: 4539
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| = Creating a new data source = Any Debian Developer can create and manage data sources. To do so, login into [[http://contributors.debian.org]] using your [[DebianSingleSignOn|web password]]. '''FIXME''': due to a misconfiguration, login using contributors.debian.org does not work at the moment. You can work around it logging in at [[http://nm.debian.org]]: you will then be also logged into contributors.debian.org. Once you are logged in, you can go to [[https://contributors.debian.org/sources/|Data Sources]] details and see "Edit" links and a "Create new data source" link. The editing forms contain extensive documentation. ('''FIXME''': this is currently a lie, but I'm going to work on it next thing; delete this comment once it's done) For each data source you need to configure one of more contribution types, to define the various types of contributors that you have in your team. |
Creating a new data source
Any Debian Developer can create and manage data sources. To do so, login into http://contributors.debian.org using your web password.
FIXME: due to a misconfiguration, login using contributors.debian.org does not work at the moment. You can work around it logging in at http://nm.debian.org: you will then be also logged into contributors.debian.org.
Once you are logged in, you can go to Data Sources details and see "Edit" links and a "Create new data source" link. The editing forms contain extensive documentation. (FIXME: this is currently a lie, but I'm going to work on it next thing; delete this comment once it's done)
For each data source you need to configure one of more contribution types, to define the various types of contributors that you have in your team.
Implementation notes
JSON structure of a submission
A submission is an array of Records:
Submission := [ Record ]
A Record is an object with the identity of the contributor and a list of contributions:
Record := { id: [ Identifier ], contributions: [ Contribution ] }There can be more than one Identifier per Record, but there usually is only one. There can be one or more Contribution per Record.
An Identifier is an object identifying the contributor in one of many possible ways:
Identifier := { type: IdentifierType, id: string, desc: optional_string }
IdentifierType := "login"|"email"|"fpr"Currently only debian.org or alioth login names, emails and OpenPGP key fingerprints are supported.
A Contribution is an object detailing one kind of contribution over time:
Contribution := { type: string, begin: optional_Date, end: optional_Date, url: optional_string }
Date := "yyyy-mm-dd"type is the string configured as a contribution type name in the source configuration on contributors.debian.org
begin is when one started contributing. If missing, the server will use the previously reported begin date. If no previous contribution has been seem, the server will use today's date.
end is the time of the last known contribution. If missing, the server will use today's date.
url is a URL pointing to a page that will list details of this kind of contributions for this person, if available. If missing, the server will just render the contribution details with plain text instead of a hyperlink.
Examples
A minimal submission:
[
{ id: [ { type: "login", id: "enrico" } ],
contributions: [
{ type: "talking" }
]
},
{ id: [ { type: "login", id: "93sam" } ],
contributions: [
{ type: "talking" }
]
}
]A more detailed submission:
[
{ id: [ { type: "login", id: "enrico" } ],
contributions: [
{ type: "talking", begin: "2010-01-01", end: "2013-11-16",
url: "http://talks.debian.org/enrico"
}
]
},
{ id: [ { type: "login", id: "93sam" } ],
contributions: [
{ type: "talking", begin: "1990-05-01", end: "2013-11-16",
url: "http://talks.debian.org/93sam"
}
]
}
]
Posting a submission
Submission are sent via a multipart/form-data HTTP POST to https://contributors.debian.org/contributors/post
The JSON data is sent as a file field called 'data', so you will need an HTTP client capable of file uploads.
The other fields uploaded are:
source is the source name as configured in the site
auth_token is the authentication token configured in the site
data_compression (optional) is the data compression used for the JSON data (by default, no compression; gzip and xz are supported.
Examples
Submission, with compression:
curl https://contributors.debian.org/contributors/post \
-F source="Debian Talkers" -F auth_token="foobarbaz1234" \
-F data_compression=gzip -F data=@filename.json.gzPlain submission:
curl https://contributors.debian.org/contributors/post \
-F source="Debian Talkers" -F auth_token="foobarbaz1234" \
-F data=@filename.json
Helping the project
If you want to help, see the todo-list page. If you like to work with Python and Django, this can be a very good way to get more involved in Debian.
