Problem/Motivation

drupal.org recently enabled a new read-only REST interface that opened up data from the site to external bots and tools on a read-only basis. This interface can also support POST events that bots and tools could use to modify data on the site. Before this is done, it needs (a) testing, and (b) a set of policies guiding acceptable uses for this new feature.

This post addresses the second concern. This is an updated/edited version of the policies originally proposed.

Proposed resolutions

Separate policies are proposed for bots that post under a human user account, and system bots that perform automated tasks without human review.

Proposed Policies for Bots/Tools that Post on Behalf of a Human User Account:

  1. An external service that modifies content on drupal.org MUST authenticate as the drupal.org user that triggered the operation, so as to associate all affected resources with that user.
  2. The tool MUST include all code resources on drupal.org; it MUST NOT link to code stored on external servers.
  3. The tool SHOULD NOT increase fragmentation of discussion, e.g. by creating a situation where comments on a single topic or issue may be posted in separate locations.
  4. The tool SHOULD NOT link to non-code external resources, but should instead copy data to drupal.org whenever possible. The tool MAY link to non-code external resources when necessary, e.g. due to Copyright / License issues (non-GPL resources).
  5. The tool MAY aggregate content from other users if the aggregation is part of a refinement or collaboration between multiple users, where earlier iterations of the collaboration are also stored on drupal.org--for example, to build a commit comment that includes all collaborators on an issue, and submit it with the latest additions from the user running the tool.
  6. The tool MUST NOT aggregate content from multiple users on an external service--for example, to combine multiple GitHub PRs from different users into a single patch on drupal.org. Each piece of content MUST be submitted to drupal.org under the drupal.org user corresponding to the owner of the data on the external source, per [1].

Proposed Minimum Policies for System Bots:

  1. System bots that perform an automated service (no human-generated content involved) MUST do so from a system account; it MUST NOT use not a (human) user account.
  2. System bots should only be enabled to post into the issue queue of projects where the maintainer has given explicit permission for the bot to operate.
  3. Other sorts of system bots MUST be approved by the drupal.org infrastructure team on a case-by-case basis.

How these rules apply to known cases

Drush iq-submit and iq-release provide a more efficient commandline equivalent of operations that are already done by users today via the web browser (add patches with interdiffs to issues, and create new project releases from git tags, respectively). They do not alter any existing workflow on drupal.org, and comply with the current proposed policies for tools/bots that act on behalf of a drupal.org.

The github sync tool was previously rejected for use on drupal.org. The previous discussion on this topic was at #2172149: Disable the Github Sync user account: it's confusing. This particular tool could post all information as the drupal.org user who was running it, but if it were to be modified to also include comments and related PRs from other github collaborators -- so that the drupal.org issue was complete, and contained all comments and commits available on github, it would have to either submit this information under a single user's account, with the other participants only identified via label (text in the comment), or multiple runs would be needed, one for each participant (so their collaboration could be posted under their drupal.org username). The later model is probably not feasible, so, if the decision on the github sync tool were to be revisited, then policy [1] above would need to be relaxed to allow it.

The PA Robot is a bot that makes automatic modifications to issues in the project applications issue queue. It is running with the permission of the maintainers of that project.

hubdrop.io is a tool to allow easy cloning of drupal.org projects on GitHub. Currently, there are some hundreds of cloned projects, but no one seems to be using PRs or the GitHub issue queue with any of these. The HubDrop about page says: "Plans for the future include allowing projects to move to GitHub as the primary repo, with mirroring or releases being sent back to drupal.org."

There are other tools mentioned in #1710850: Deploy RestWS for D7 project issue JSON that might also wish to use a POST interface.

Remaining tasks

Proposal must be reviewed and discussed until a set of policies acceptable to the drupal.org infrastructure team are established.

Comments

greggles’s picture

Issue summary: View changes

I added some more separation to show where the guidelines end and where the application of the proposed guidelines to recent situations starts.

One part I disagree with, but that I didn't change is:

That user must provide their username and password to the tool, which must then log in to drupal.org with the provided credentials, so that all modifications are done under the name and permissions of the responsible user.

This seems overly prescriptive. How about just saying that the user must provide the ability for the bot/tool to log in as them. Whether that's done with username/password or a session cookie or oauth is up to the maker of the bot/tool.

klausi’s picture

Issue summary: View changes

I'm the maintainer of PA robot, who automatically reviews drupal.org project applications.

That robot posts a lot of comments and I would not want to run it under my user name, as it would pollute my track record, notifications etc. So that robot user account is in direct conflict with the policies proposed here, since it does not post on behalf of humans. Maybe we consider it on the same level as the test bot?

So while these policies might make sense for use cases such as the Github Sync robot, where content is posted on behalf of users, they might not make sense for robots in general.

klausi’s picture

Issue summary: View changes
greg.1.anderson’s picture

Issue summary: View changes
sun’s picture

Issue summary: View changes

FWIW, the Druplicon bot theoretically falls into this bucket, too. (It interacts with drupal.org pages and stores logs.)

Depending on how you interpret the text, the policy could even apply to Dreditor.

Use of the tool should not increase the fragmentation of content, e.g. by scattering information that should be consolidated in one place, or by placing important related content on external sites where it may be lost.

Not sure how this is related to the policy. Sounds off-topic to me.

Polluting/Duplicating information somewhere else may be necessary to make a new/experimental alpha/beta-quality service possible in the first place. We should not be afraid of that.

Instead, the necessity/existence should be interpreted as a constructive sign that we're lacking web service APIs. However, the apparent non-existence of such fragmentation is a testament to drupal.org's APIs and willingness of service/tool designers to work and collaborate on solutions that resolve issues for the community at glance.

In any case, I don't see how it's related here and I think that sentence should be removed.

2. That user must provide their username and password to the tool, which must then log in to drupal.org with the provided credentials, so that all modifications are done under the name and permissions of the responsible user.

I agree with @greggles in #1.

FWIW, the lack of an authentication system for third-party services on drupal.org (e.g., OAuth) is the fundamental root cause for the exaggeration in #2172149: Disable the Github Sync user account: it's confusing, and also the reason for why we need to think about a policy like this in the first place.

So, to some extent, circling back into the previous point.

3. Any information related to the modification must be included in the modification. Files related to the modified content must be attached to the node/issue/etc. they are related to; it is not sufficient to include a link to a file hosted elsewhere.

It's not really clear to me what is being meant by this.

Drupal.org should track all modifications by itself already, so why should the bot/tool/service duplicate that?

add patches with interdiffs to issues

Interdiffs are not a requirement. Some people would like to make it a requirement, but I couldn't disagree more. Interdiffs are posted for pure convenience. Not long ago, not a single issue ever contained an interdiff. If we always want interdiffs, then that is not to be enforced on contributors, but to be automated on drupal.org. (related)

sun’s picture

Issue summary: View changes

Reverting bogus Conflict module conflict resolution.

greg.1.anderson’s picture

Issue summary: View changes
drumm’s picture

Project: Drupal.org customizations » Drupal Technical Working Group
Version: 7.x-3.x-dev »

Sending to the Technical working group queue, since https://www.drupal.org/node/2172149#comment-8420497 was sent there.

drumm’s picture

Technically, the path of least resistance at the moment looks like it will be lifting POST restrictions placed in front of the RestWS-generated pages, after testing. That would come with whatever authentication is baked in, or is straightforward to set up.

greg.1.anderson’s picture

#1: You are correct; I should not have specified username and password as the credentials, as there are other options. I made this part of the proposal more generic.

#2: Yes, the starting policies are rather slanted toward drush_iq; they may be applicable to some other tools, but they are not applicable to all possible tools. I think that additional policies for other kinds of bots should be considered. In terms of the PA robot, perhaps a general policy related to "maintainers" of projects may set policies on bots that run in their issue queues only. If there was a bot similar to the PA robot that made certain automated posts on issues in any project queue, my thought is that such a tool would be prohibited by policy unless explicitly allowed by name, on a case-by-case basis. It would be helpful if folks could add or suggest additional policies to allow other desirable tools that do not fit within the bounds of my original proposal.

#5: "Drupal.org should track all modifications by itself already, so why should the bot/tool/service duplicate that?" What I mean here is that if someone writes a kittenbot that uploads pictures of kittens to issues, then the kitten picture should be uploaded as an attachment to the node, so that the image could be sourced from the attachment on drupal.org rather than via an external url to cutekittenoftheday.com. If this policy is overly restrictive, it could be relaxed or removed. The thought I have is that folks were historically opposed to cross-linking to external services that might disappear, rendering the links useless and the surrounding comments incomplete.

#5: "Interdiffs are not a requirement." The phrase you quoted was taken from a paragraph that is an example of what drush_iq does; this paragraph was not intended to be part of the requirements. Klausi edited the proposal to make it clear where the policies end, and where the example begins. We could just remove the example if it is more confusing than helpful.

#5: "the Druplicon bot theoretically falls into this bucket, too." The intention of this policy page is only to cover bots that post to drupal.org. As near as I can tell, the Druplicon bot stores its logs on another site.

#5: "Depending on how you interpret the text, the policy could even apply to Dreditor." The intention was only to apply to tools that post directly to drupal.org. Dreditor, I believe, only modifies content in the web browser; the user posts that content to drupal.org when they save their content using the web browser. I think this counts as using the web browser, not using an external tool. The policy could be modified to clarify this, if this is unclear or confusing.

#5: "Use of the tool should not increase the fragmentation of content..." I agree with your comments on this part of the policy. The "general guidelines" were confusing, and didn't add anything to the proposed policy anyway. I just deleted the whole paragraph.

sun’s picture

Thanks a lot for clarifications and adjustments, @greg.1.anderson!

re: kittens:

Looks like I was generally confused by the term "modification" (repeated 3x) ;) whereas it only presents the interaction context…

To some good extent, that topic is covered by filter.module + filter_html_image_secure.module already. What isn't covered are links to original art on external hosts (instead of attaching them), possibly including links to e.g. GitHub PRs (without attaching a patch).

For non-code interactions, there might be legit reasons for not attaching something but linking to it instead (e.g., licensing; all data on drupal.org is licensed under the GPL).

Your point that external services might disappear is a good one though. Perhaps we should rephrase it to say it's RECOMMENDED to attach data instead of linking to it?

(Every policy should follow RFC 2119.)


The oversimplified bottom line of this policy appears to be a single message:

An external service that performs non-idempotent operations on drupal.org MUST authenticate as the drupal.org user that triggered the operation, so as to associate all affected resources with that user. Non-compliant services will be blocked/banned from drupal.org without prior notice.

greg.1.anderson’s picture

Issue summary: View changes
greg.1.anderson’s picture

Wait, did you mean to say "Every policy SHOULD follow RFC 2119?" :)

I substantially rewrote the proposal based on the feedback received above; not sure we're quite there yet, further commentary welcome.

greg.1.anderson’s picture

Issue summary: View changes

I meant to use the exact text from Sun's comment in the policy--adjusted the summary to do so.

webchick’s picture

Thanks a lot for taking this on, Greg! Here's some feedback on the current issue summary (haven't read the comments so I can come in "fresh"). Since there are multiple 1s and 2s, I'm calling "Proposed Policies for Bots/Tools that Post on Behalf of a Human User Account" A and "Proposed Minimum Policies for System Bots" B for clarity.

A1. Can we please not use jargon like "idempotent"? :)

A2. If we're going to have such a rule, we should explain why. It forces developers to license their third-party tools as GPLv2+ which might drive developers away. (But maybe licensing is the reason this rule exists?)

But as a side note, it also seems fairly unrealistic; I highly doubt you're ever going to get Dreditor / Drush (two of the biggest potential consumers of such an API) to move back from Github to D.o, for example. At best, d.o will be a mirror of code that's primarily developed elsewhere. And if primary development happens elsewhere, most likely the server running the code for the bot is going to pull from elsewhere as well, and Drupal.org may only be updated on an "Oh, right, I should update Drupal.org" basis, so users actually get less visibility into what these bots are actually doing. :\

A3. This one seems like it's treading on dangerous ground. There's nothing in https://www.drupal.org/licensing/faq that says anything about linking to non-GPL "resources" absolves you from licensing issues (that word is way too broad). I would either eliminate this item entirely, or change it to simply state that the code must adhere to the standard d.o contributor agreement and link off to a canonical place for that info.

A4. I had to read this four times and I still don't understand it. Can we just say something like that the data you use in your script from Drupal.org can only be information that's publicly available? Or maybe cut to the chase and explain what are we trying to prevent here..?

A5. This seems overly specific to one particular use case (klausi's github script). Can we get to the root desire here? Is it to make sure you're not forging the identity or copying content of other users and posting it as your own? If so, say that.

B1. I get the gist of this rule, and agree, but don't understand how as a script author I would do that. Forge my author as "System message"? If so, say that. If not, it sounds like I need to make up my own user called "System foo" or whatever, but I'm sure that's not what you want. (Since that's what klausi originally tried and people freaked the hell out. ;))

B2. Specific permission from whom?

In general, I guess I feel like we're missing a "preamble" to this to provide some context (some of which is in the "how the rules apply" footnote). There's a lot of "insider baseball" in these rules as they currently sit. It'd therefore be helpful to "set the stage" a bit at the beginning, of some specific things we are trying to enable and actively discouraging to happen, but in general terms.

Maybe it helps to think along the lines of "personas" for who would be writing these kinds of scripts. Something like:

a) Hardcore D.o dev persona: This is someone who lives, eats, breathes, and sleeps on Drupal.org and is looking to write tools to speed up their workflow. drush iq, Dreditor, and alexpott's dopatchutils seem like suitable candidates.

b) External site dev persona: Someone who eats, lives, breathes, and sleeps on Github or StackExchange or Reddit. They want to integrate their service of choice with Drupal.org, but are more comfortable using external tools.

c) Vendor-neutral aggregator persona: Not sure what to call this persona, really. But picture you're someone from http://openhatch.org who is not affiliated with Drupal whatsoever, but is trying to come up with a central index of good open source issues for newbies, and wants to pull data from/push data to our API. Maybe that's just a variation of "External site" persona, not sure.

It sounds like what this policy is trying to do is encourage a lot of a), totally discourage any and all of b), and ??? on c). Though I'm not sure that's what's the most strategic for the project as a whole...

greg.1.anderson’s picture

Issue summary: View changes

Thanks for the great feedback, webchick. I agree that we need to take a step back and look at what the policies are trying to accomplish. You are correct that the policy is encouraging (a) and discouraging (b). As for (c), that is out of scope for this policy, which only covers tools that want to post data to drupal.org.

A1. Okay.

A2. There were objections to the github sync tool, because folks did not want issues on drupal.org linking to distributed GitHub PRs (potentially multiple PRs from multiple people).

A3. Yes. It gets a little difficult to try to codify into policy what was objectionable about github sync without blocking other reasonable actions. Maybe there are better policies that would express the desires vis-a-vis github sync without preventing tools from creating embedded links.

A4. Again, just trying to codify ideas from the github sync discussion without limiting other reasonable actions. I don't know if this part is even necessary to put into policy.

A5. Yeah, the only useful part of this is a restatement of A1, so this should just be removed.

B1. No one wanted the GitHub sync tool to post under an account other than the patch submitter's username; however, the PA bot has a separate username to operate under, similar to the "System message" account. For this sort of tool, it seems that this *is* what folks want--at least, it seems that the PA bot is acceptable and useful.

B2. The idea here is that the maintainers of a project should be able to stipulate what happens in their queue. For example, the maintainers of the project application queue are finding the PA bot to be helpful, and the PA bot does not run anywhere other than in their queue, so it seems that this should be an allowable activity. Perhaps there is some way to rephrase the policy to make this clearer?

I removed a bunch of policies that did not seem to be adding much. Are they too permissive now, or does it look okay? Is it clear enough what the difference between "post on behalf of a human" vs. "no human-generated content", or do we need to better define which policy any given tool or bot will fall under?

Regarding a preamble, earlier versions of this page had one, but it was more confusing than the policies, so I took it out. :) I can give it another go once there's clarity on what we want to accomplish.

webchick’s picture

Ok, so let's get to the bottom of what people found objectionable about Klausi's script, since we seem to want to make avoiding those a focal point of this policy.

Here's what I remember of people freaking out about with github sync (feel free to correct any of my memories ;)):

a) Github sync "forked" developer activity into two places: drupal.org and Github. In order to get the "full picture" of what was happening on a given issue, you needed two accounts on two different services, or at least to manually click to some off-site URL. People feel strongly that Drupal.org should instead be the "hub" of development, and all development activity centralized here.

b) And it might've been one thing if it was only ephemeral in-progress code in throwaway branches that was over there, and once complete patches were synced over to Drupal.org (along with interdiffs), but there were also important "talky" bits as well; code reviews and the like, since Github's superior patch review interface is very enticing for people to use. In this respect it acted as a draw *away* from Drupal.org because it repeatedly drove traffic back to the external site.

c) Initially, the bot was acting like a human (posting comments, uploading code) but was doing so under a "system" account with no clearly identifiable information as to who was behind it and on whose behalf these comments/code were being posted. (This was subsequently changed to where it was posting as the actual d.o user of the person running the script (klausi).

c) I think is pretty adequately covered by the above policy. It makes a distinction between scripts automating tasks to make a human's work easier, and scripts automating "system" tasks.

For b) we could add something like a "no advertising" clause to forbid links to third-party services on behalf of bots? If there was no link back to the Github PR to comment on it, and it was posting as klausi the whole time, I don't know that anyone would've even put 2 and 2 together. (He could be doing this right now for all his d.o patches for all I know. :D) I dunno though. I feel like that might box us in too much... For something like drupalmentoring.org or PAReview, we might *want* that cross-promotion there.

a) Is definitely the most political / controversial of these things. It operates under the premise that Drupal.org "owns" Drupal development. However, that is not, in my estimation, correct. At least not anymore. And I don't know that "forcing" people to the mothership is going to materially improve the current situation, which is that D.o's dev tools have simply not evolved fast enough to keep apace of what places that have 80 devs and bazillions of dollars in funding to do nothing but write awesome VCS tools can do. And looking at the types of things the D.o tech team is taking on, which spans the gamut of everything *.Drupal.org does, not just dev tools, I don't really see that changing anytime soon. (There are still d.o sub-sites that are on Drupal 6, for example.)

So my concern with a) is it feels short-sighted to me, and out of touch with the way development actually works in the mid-2010s, and not something I'm totally comfortable with being enshrined in policy. It feels like a defensive throwback to "yesteryear" when Drupal.org *was* the central place where all development occurred. But nowadays, in many cases, Drupal.org is actually the last stop on the development train; a quick project publish at the end of a long development cycle in a Github repo, and external sites like Github and StackExchange is where most developers spend the vast majority of their time, whether on Drupal projects or otherwise.

So what is it exactly about a) that got peoples' hackles up? Was it having to have two accounts, one on an external service? The requirement to click to an external site? If so, then "aggregator"-like behavior actually seems like it would be a *welcome* thing to explicitly allow, rather than something we'd try and steer people away from. It would keep Drupal.org the "home" of Drupal development, but give people the freedom to work wherever they're most comfortable/productive.

^^ above barfing is personal musing only, not reflective of any of my other various hats, or even possibly my own personal opinion. :P

greg.1.anderson’s picture

If I was going to set policy on drupal.org, I would allow github sync (provided that it posts as the user who wrote the PR when it converts to a patch). Our experience with moving Drush to Github has been a mixed bad, issue-queue-wise. It is a bit of a bummer when multiple collaborators make multiple PRs, and comments are spread between several pages, but it doesn't make the system unusable or unuseful. If folks who make commits to the PR add the original Github issue number to the commit, then all of the commits are visibly cross-referenced in the issue, so that works fairly well, as there are then pointers, all in one place, to all of the places where there are other collaborative efforts going on. It does seem that github sync could foster a similar experience on drupal.org, for folks who want to use PRs.

I think, perhaps, the larger concern is that github sync might lead to some situations where one or two users are sync'ing their commits back to the drupal.org issue queue, but many others are forking on github and NOT syncing back to drupal.org. Perhaps those who had reservations initially might chime in again & say if anything has changed, or perhaps suggest policies that would prevent the kind of behavior that was of the greatest concern.

sun’s picture

Next to the obvious user/masquerading/authentication concern (which doesn't require any further mentioning/discussion)…

From my perspective, the biggest concern was that there can be unlimited forks on GitHub and you are not able to track or follow them in any way - even though they may try to resolve the same canonical issue on d.o.

In other words, I think it's perfectly fine to use GitHub/Whatever/Whatnot for development purposes, and I even think it's fine to offload some level of reviews (especially nitpicks) onto such a service — whereas you should be prepared for late pushback in case you fail to communicate your work/progress "upstream".

However, the exact point where it melts down is that there can be forks of forks and PRs against PRs in an unlimited amount of arbitrary user repositories that you can't subscribe to ('cos you're not aware) - also, because there's no canonical Drupal GH repo you could subscribe to. (I'd strongly recommend to not subscribe to the current, because it's a mess. ;))

So, in the abstract, such usage ought to be fine, as long as you & others don't "overuse" it.

Unless I misinterpreted the original policy text, it tried to address that topic by establishing some rules about "fragmentation."

webchick’s picture

Hm. We already have that problem on Drupal.org with our own forks (sandboxes), though. There's absolutely no way anyone but someone with d.o DB access can tell you how many forks of core (or any other project) are floating around out there, unless they're advertised heavily. So not sure why Github would make that more or less bad.

webchick’s picture

Although. Quick shout-out to #1451668: Provide better integration of sandboxes and parent projects. ;)

Anyway, sorry, I got us off-topic and focused on one specific thing, which is the basic crux that we don't want discussions "forked" on multiple sites, because it creates a usability problem. So maybe we should make the rule more about that.

The only other thing I'd throw out there is we should challenge ourselves to think broadly about the use of this API, beyond just the issue queue. Here are some other possible use cases:

- Robot to automatically cross-post post Indeed/Monster/etc. Drupal jobs to jobs.drupal.org
- Robot to automatically cross-post d.o documentation pages for "answered" questions on stack exchange
- Robot to automatically cross-post themes that are created on Github under a certain user.
- etc.

Are these other "edge cases" adequately covered by the above policy?

greg.1.anderson’s picture

Issue summary: View changes

The fragmentation issue is a little difficult to address in a way that can be applied non-ambiguously, but I gave it a shot:

The tool SHOULD NOT increase fragmentation of discussion, e.g. by creating a situation where comments on a single topic or issue may be posted in separate locations.

This is, at least, simpler than what we had before. Further refinements / improvements welcome.

Regarding the examples of bots that replicate information from other sources, I think these are already covered by the current proposed policies in the issue summary. These sorts of services do not post information generated by a single drupal.org username, so they are subject to the second set of policies on bots. If the bot does not post to a single issue queue, then it must be approved by the drupal.org infrastructure team on a case-by-case basis.

I don't think that we need additional policies to block spam-like content, as such uses should already be covered by the Drupal.org Terms of Use and Privacy Policy. One note of interest is that the ToS does seem to ban service accounts, although it does seem that there are a couple that exist and are tolerated.

webchick’s picture

Cool, I like that wording. Thanks, Greg!

greg.1.anderson’s picture

Issue summary: View changes

I added a mention of hubdrop.io in the issue summary.

DamienMcKenna’s picture

FYI mglaman has a rather nifty little Chrome-based app that lets you monitor issues:

mglaman is planning to add Kanban support to it, which would partially match what I've been doing in Trello (e.g. Panelizer issue list). Right now I have to manually curate all lists, but it'd be really awesome if it could ultimately control tags (or parent-child relationships).

Maybe access could be limited to e.g. people with specific roles, or only maintainers of a project could integrate with the data for that project?

Anyway, I wanted to share the above project and (hopeful) use case so they could also be kept in mind.

markhalliwell’s picture

Issue summary: View changes

The tool MUST include all code resources on drupal.org; it MUST NOT link to code stored on external servers.

There are several issues with this "MUST":

  1. Forces code to be open source, even if it uses licensed/proprietary code.
  2. Forces code to be on d.o's infrastructure. Let's face it, d.o only has real support for PHP based "tools" and hell, we still don't even have testing for our themes...
  3. Implicitly implies that there is going to be people "reviewing" code to ensure that it doesn't "abuse" something. Question, who's going to do that and isn't that a rather arbitrary notion in and of itself? Do we need to create another project review problem?

The reality is this: we'd simply block a user when we notice abuse is or has happened since they'd already have to be authenticated anyway using said tool.

So this means that if someone creates a user specifically for said tool and then everyone uses said user, that user would eventually get blocked. This would force the user to either rethink their tool/app, or force content to be created/modified by real users. Problem solved.

Yes, we may risk blocking valid users due to either bad or malicious apps/tools, however they can easily explain this and get their account reinstated with the promise that they'll stop using the app/tool or file a bug with said app/tool and wait for it to be fixed.

I would also say that we should require apps/tools to provide a unique user agent value.

This way, if too many users were to get "blocked" to no fault of their own, we can just blacklist requests from a specific user agent entirely and effectively kill an app/tool.

hestenet’s picture

Assigned: Unassigned » hestenet
Status: Active » Needs review

This is an exceptionally old issue to be necro-ing. However, it's relevant to a page I just put together...

As we start doing more with GitLabCI we want to enable people to do more with Peronal Access Tokens, which is more API access. This is a subset of all the ways people could automate/script/use bots on Drupal.org, but it's a concrete one I was at least able to write an initial policy for.

We should keep updating as specific use cases arise, and not be afraid to iterate on it if the language isn't perfect.

Also - the requirement to open an issue for approving an automation allows us to request things like a unique user agent string and some of the other requirements discussed above, where appropriate.

https://www.drupal.org/docs/develop/git/using-gitlab-to-contribute-to-dr...