Commit Graph

487 Commits

Author SHA1 Message Date
Jonathan Dahan 6f77e68622 Add GET /export endpoint, which dumps important tables in json.
Meant to be used in tandem with the manage.py import command.
The following sensitive data is scrubbed:

  * user api keys
  * user password hashes
  * stream email keys
  * invite-only streams
  * messages from invite-only streams
  * messages from users from other domains

(imported from commit 8e58dcdcb80ef1c7127d3ab15accf40c6187633f)
2015-08-19 15:31:08 -07:00
Zev Benjamin 4e1d86f775 Handle platform.system() throwing an IOError
This can happen if the calling process is handling SIGCHLD.  See
http://bugs.python.org/issue9127

We ran into this in the zephyr_mirror.

(imported from commit 80fade2274714b7c2c4b9fe38c66a1db8cc63234)
2014-05-20 17:29:29 -07:00
Jason Michalski 672603d6cd Add missing logger
(imported from commit e27d78f04fb8cb60b0cbdf4a544a047265abf9d5)
2014-04-28 19:51:04 -04:00
Zev Benjamin 1e7994d97d api: Add an option to backoff classes for making the passage of time count as a success
The idea here is that for usages like in the zephyr mirror bot:

  backoff = RandomExponentialBackoff()
  while backoff.keep_going():
      print "Starting zephyr mirroring bot"
      try:
          subprocess.call(args)
      except:
          traceback.print_exc()
      backoff.fail()

we want it to be the case that the mirror bot running for a while counts as a
success so that the bot doesn't have a finite number of crashes over its entire
lifetime.  We only want the mirror bot to stop retrying if it fails too many
times in a row.

(imported from commit 7b10704d3ce9a5ffb3472cbb4dfa168c9c05ae7a)
2014-04-23 11:31:04 -07:00
Zev Benjamin 7ed182c08f Move backoff classes to the Zulip API
(imported from commit 76c5d499874f0397c505ab3fcda631a1a46847b6)
2014-04-23 11:31:03 -07:00
Jessica McKellar fa1333c026 integrations: make Codebase dependency on python-dateutil explicit.
requests is already required generally by the API bindings.

(imported from commit 216c7031def710aac415cca755dbe2454514decb)
2014-03-14 20:48:48 -04:00
Jessica McKellar fa461e86fd integrations: make Asana dependency on python-dateutil explicit.
(imported from commit 354b42f68e3d1f980649993bad4dbe4ff79a11d6)
2014-03-14 20:48:48 -04:00
Zev Benjamin 4fbe78d037 api: Expose function for getting the default Zulip config file
(imported from commit 89d6b48f9393670429aa960ad0ff27f030166e34)
2014-03-03 17:30:58 -05:00
Zev Benjamin 64b0550f58 api: Add get_subscribers method
(imported from commit 801021768431a04cfecf146b58f4d118e1dc7508)
2014-03-03 17:29:54 -05:00
Zev Benjamin 5ba0b6b633 api: Disambiguate the names of Zulip options
(imported from commit 67525764cc2f2a26081640063e2d78852f6229ca)
2014-03-03 17:29:52 -05:00
Zev Benjamin 213c0b49bc api: Let generate_option_group prepend a prefix to added options
(imported from commit 41cdd90a83914139c92cb3ea649cb5653f56d4ca)
2014-03-03 17:29:52 -05:00
Zev Benjamin 5696ff5ce6 api: Clarify that the API option group is for the Zulip API
(imported from commit e471fb60c04c4cf8d5e1ceb8cbd639dc3460fc48)
2014-03-03 17:29:52 -05:00
Jessica McKellar da757b7195 Update copyright to 2014.
(imported from commit 733baed61e26be0c07a7e7a605618087df6b0866)
2014-02-04 15:51:53 -05:00
Luke Faraone a9faaecb97 API release 0.2.4
(imported from commit 42145c829f5bd2282b72c2658f19766cf2346a2b)
2014-01-11 15:52:21 -05:00
Jessica McKellar aa36b7fb5f Document our RSS integration.
(imported from commit 61e956705b526b4bbeb3a0908d00ebd92d216395)
2014-01-02 13:39:32 -05:00
Tim Abbott 71ad82b6aa Add support for event queues with an included narrow.
This will allow us to substantially decrease the server-side work that
we do to support our Mirroring systems (since the personal mirrors can
request only messages that user sent) and also is what we need to
support a single-stream Zulip widget that we embed in webpages.

(imported from commit 055f2e9a523920719815181f8fdb44d3384e4a34)
2013-12-12 17:36:39 -05:00
Waseem Daher 419a3d3098 Shorter topics for git/svn integration.
(imported from commit 6c9822f6ba383d885e48d3bb64c30e49ea8cf1e5)
2013-12-11 12:20:42 -05:00
Tim Abbott 6721c465c9 Add admin API endpoint for creating users.
(imported from commit a8b919c7d21b28dfd75b6b95736a375874ead15f)
2013-12-10 13:21:33 -05:00
Luke Faraone dc6ae6dc15 Specify client in User-agent in our Jira integration.
(imported from commit e436478c6fd2836c06faa90ddb1ca5641d3f61e4)
2013-12-09 11:47:54 -05:00
Luke Faraone 1b5c1ac021 Update style of client strings.
(imported from commit 1516461cf53b2715de68e01f16bb8a8cc33c48ad)
2013-12-09 11:47:52 -05:00
Luke Faraone 663d7483f2 Add a version number to our Perforce integration.
(imported from commit 402f7a1e57aa1c77255cdc5c58a081a8b209a65d)
2013-12-09 11:47:20 -05:00
Luke Faraone a49c48a53b api: Let users of init_from_options specify a default client.
This way command-line scripts that use our `optparse` populator can
still specify a custom client without munging their `parser` object.

(imported from commit df8d28a46a4d4574523b106030dbfed2d9ac931e)
2013-12-09 11:47:20 -05:00
Luke Faraone bb3c6ce173 api: Specify a default client of ZulipPython/version
(imported from commit 366d0e81a67f6a993fb0e9539d51e593c7863299)
2013-12-09 11:47:20 -05:00
Luke Faraone a119a22988 api: Provide an informative User-agent instead of a client parameter
We previously sent our client type to the server as a GET/POST parameter
of "client=<something>", most commonly "client=API: Python".

We switch here to providing the same information as a User-agent header
sent on each request, which is more standards-compliant.

Also added is some data about the platform the user is using. If your
client string was set to "MyLittleZulip/1.0", the resultant string could
look something like this:
    MyLittleZulip/1.0 (Ubuntu; 12.04)

(imported from commit 39fd187a8f9d4b3c9b63fc623e0836e57a4099ca)
2013-12-09 11:47:20 -05:00
Luke Faraone 479e3bfbd0 Perforce integration.
This is designed to be run as a "change-commit" trigger. See [Perforce's
documentation][1] on how to set up a trigger for your platform.

[1]: http://www.perforce.com/perforce/r12.1/manuals/cmdref/triggers.html

Closes trac #1034.

(imported from commit d94fa4e50637ade2847a96eab8c5514de3811c24)
2013-12-06 11:54:38 -05:00
Luke Faraone 08973733a7 [third] Disable git_p4's usage of git configuration
Since we're using the module outside of a git repository context we
don't have a git config to reference. Instead, we'll just use the
environment variables we're passed.

(imported from commit 8ae707d5d60eb700052e0ee89e7d36c660e00bb6)
2013-12-06 11:54:38 -05:00
Luke Faraone a0595e8c60 [third] Import git's P4 command.
From github.com/git/git@34022ba

License: Expat

(imported from commit 995439bf2fc458ef7ed73fd7ea9add77abacbc53)
2013-12-06 11:54:38 -05:00
Waseem Daher b815203b0b Add "client" string to Nagios integration.
(imported from commit 0e42d297b5be668da9b28c9970621a1f9a4229ca)
2013-12-05 18:06:13 -05:00
Waseem Daher a4111a2426 Add 'client' string to our missing integrations.
Not done: Jira, Nagios

(imported from commit 3e2505653b377f8c307745e507bdc40e980dca05)
2013-12-05 17:51:21 -05:00
Tim Abbott 5d454afb74 api: Add support for setting site in mercurial integration.
(imported from commit 697f4697af27be6f4eddd6ddbf7affbc8739cffe)
2013-12-04 16:30:57 -05:00
Tim Abbott 44386b3615 api: Document options required for use with Zulip Enterprise.
(imported from commit 59f136cf0f1a5d9509bec054b060ab44695b77e0)
2013-12-04 16:30:51 -05:00
Tim Abbott 4e52ecce0f api: Update documentation on ZULIP_SITE option.
(imported from commit 82109dc08847240440f90524343c0f9562e4a0bf)
2013-12-04 15:14:15 -05:00
Tim Abbott 02304ca4a0 Remove api/examples/curl-examples.
It's out of date and we've never distributed it anyway.

(imported from commit 884e302ea4f55f9b3f986694a786cc5c17128e71)
2013-12-04 15:10:54 -05:00
Waseem Daher ca85e5bc51 Link to our API page from the Github repo README.md
(imported from commit 2dfa7a3bf27a15f1f43ee2ecef5d501c17669bde)
2013-12-02 13:18:04 -05:00
Jessica McKellar 3459962e69 API release 0.2.3.
(imported from commit 80591f61785b492b2ec8897bb2a2e5eff8e089fc)
2013-11-27 13:15:21 -05:00
Luke Faraone 1202cacffd setup.cfg to run install_data on API install
Previously, users of setuptools would get our data embedded in eggs.
Eggs are horrible things, but more importantly our package data should
be free, in a well-known albeit system-dependant path that is
independent of the package.

By specifying [install_data][1] as an alias of install, we assure that
our data (examples, integrations, etc) are placed in $data/share as
$DEITY intended.

Alternative suggestions included force-adding "--old-and-unmanageable",
which would invoke the distutils-style install command, but that had the
unfortunate side effect of turning off eggs and dependency resolution
altogether.

We could also use "--single-version-externally-managed", but I think
that was designed to be used by package managers, not by us.

In any case, both of the above were fragile and might break if the user
specified additional options to setup.py.

In closing, Python module management is horrible. See [this][2],
[this][3], and [this][4] for info about the status quo, and [this][5]
for information about crack to be smoked later down the road. Don't even
get me started about [PEP 427 -- Python wheels][6].

[1]: http://docs.python.org/2/distutils/commandref.html#install-data
[2]: http://lucumr.pocoo.org/2012/6/22/hate-hate-hate-everywhere/
[3]: http://stackoverflow.com/a/6522905/90777
[4]: http://python-notes.boredomandlaziness.org/en/latest/pep_ideas/core_packaging_api.html
[5]: https://python-packaging-user-guide.readthedocs.org/en/latest/future.html
[6]: http://www.python.org/dev/peps/pep-0427/

(imported from commit 6cf1bd2b8f5a60b2f02f5d11094e4a41cc5e48aa)
2013-11-26 13:26:31 -05:00
Jessica McKellar 5b01dadfd3 rss-bot: handle feeds that don't have a title.
(imported from commit 2d95ee0cd85ac25a7c0241ce1747509e2f9c6be6)
2013-11-22 11:28:19 -05:00
Tim Abbott 630cfd72f1 Deregister event queues when done in our Nagios scripts.
(imported from commit a1f73403163323e1dd9eda2f5269e94c60abdd1a)
2013-11-20 18:34:16 -05:00
Tim Abbott 968c393826 Use the new !avatar syntax in our git integration.
(imported from commit e00bc63f6fb1944ed206b3ede5431ac2b1ae1ac2)
2013-11-20 13:10:43 -05:00
Jessica McKellar 1e1a0ee0e9 Add basic Asana integration.
Due to limitations in their API, we have to poll and check for
creation and completion events.

(imported from commit be65e507fac16a7f8ad3dc57b2af9c4b98aacf39)
2013-11-19 13:30:34 -05:00
Tim Abbott be48e6ab15 Update paths to rss-bot.
(imported from commit ab6ea5e881593c8533680323bf525faacc2ddfec)
2013-11-18 08:11:06 -05:00
Tim Abbott 6971a0f4cc Fix rss-bot parsing of feeds that don't specify a post ID.
(imported from commit 67fdb8b92b39fc14c81b87b7fa8089964c07be8b)
2013-11-18 08:11:06 -05:00
Tim Abbott fce97df972 api: Fix our handling of the --site option.
Tested that the following all do the same thing after this patch:

--site=https://ls-dev.zulip.net
--site=https://ls-dev.zulip.net/
--site=https://ls-dev.zulip.net/api
--site=https://ls-dev.zulip.net/api/

(imported from commit 785c005e4b4be3621d7d330a0173023ab2c77a4d)
2013-11-15 11:10:25 -05:00
Tim Abbott 68dcc760c3 Clean up some unused imports.
(imported from commit 0c5d8e2a55ba1b8909ba807fee3afe863dcdc226)
2013-11-04 11:51:17 -05:00
Luke Faraone c71166f116 api: Include MANIFEST.in
This should have been included in an earlier commit.

(imported from commit 683f3dbbe8730cc588836b7b27a881a50caa284d)
2013-11-01 12:08:04 -04:00
Luke Faraone 7b6e584336 Remove accidentally left-in import of zulip in setup.py.
This is **actually** 0.2.2 :)

(imported from commit 4ae69809b550d76b7c3bdf7b1420b25b6e41f73b)
2013-10-31 16:27:59 -04:00
Luke Faraone 3be10e50ef API 0.2.2 release.
(imported from commit 891ab7549e96c30dceb70bb18add1cd533fafd36)
2013-10-31 16:23:03 -04:00
Luke Faraone e872cae552 Increment copyright year.
(imported from commit d42dfd080807a11d898a1c7b96b9f048e20bccf8)
2013-10-31 16:23:03 -04:00
Luke Faraone de42c2a86c Switch to four-spaces indentation in setup.py
(imported from commit 621e5755e8cfd7117e012f4245de0916e45060bb)
2013-10-31 16:23:03 -04:00
Luke Faraone 8f6e4c4163 Update support email address
(imported from commit 3265ea2ec037093bd883a440fe9f8c6d72642a31)
2013-10-31 16:22:51 -04:00